From 40047bdb17d658c1776d78581daedb6bc30b7145 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 11 Feb 2026 16:15:12 +0800 Subject: [PATCH 001/239] [Feature] Add easi library - Phase 1 implementation Implement the easi Python library for orchestrating simulator-based embodied reasoning evaluation. Includes subprocess isolation via filesystem IPC, versioned simulator management (conda+uv), agent interface, task/benchmark framework, and CLI. Components: core abstractions, dummy/AI2-THOR simulators, dummy task, dummy agent, LLM client + dummy server, full test suite (44 tests). --- .gitignore | 6 +- CLAUDE.md | 75 +++++ easi/__init__.py | 0 easi/agents/__init__.py | 0 easi/agents/dummy_agent.py | 49 ++++ easi/cli.py | 261 ++++++++++++++++++ easi/communication/__init__.py | 0 easi/communication/filesystem.py | 221 +++++++++++++++ easi/communication/schemas.py | 96 +++++++ easi/core/__init__.py | 0 easi/core/base_agent.py | 121 ++++++++ easi/core/base_env_manager.py | 205 ++++++++++++++ easi/core/base_simulator.py | 111 ++++++++ easi/core/base_task.py | 190 +++++++++++++ easi/core/episode.py | 33 +++ easi/core/exceptions.py | 37 +++ easi/core/protocols.py | 74 +++++ easi/llm/__init__.py | 0 easi/llm/api_client.py | 84 ++++++ easi/llm/dummy_server.py | 155 +++++++++++ easi/simulators/__init__.py | 0 easi/simulators/ai2thor/__init__.py | 1 + easi/simulators/ai2thor/manifest.yaml | 14 + easi/simulators/ai2thor/v2_1_0/__init__.py | 6 + easi/simulators/ai2thor/v2_1_0/bridge.py | 116 ++++++++ easi/simulators/ai2thor/v2_1_0/conda_env.yaml | 6 + easi/simulators/ai2thor/v2_1_0/env_manager.py | 38 +++ .../ai2thor/v2_1_0/requirements.txt | 3 + easi/simulators/ai2thor/v2_1_0/simulator.py | 25 ++ easi/simulators/ai2thor/v5_0_0/__init__.py | 6 + easi/simulators/ai2thor/v5_0_0/bridge.py | 122 ++++++++ easi/simulators/ai2thor/v5_0_0/conda_env.yaml | 6 + easi/simulators/ai2thor/v5_0_0/env_manager.py | 39 +++ .../ai2thor/v5_0_0/requirements.txt | 3 + easi/simulators/ai2thor/v5_0_0/simulator.py | 22 ++ easi/simulators/dummy/__init__.py | 1 + easi/simulators/dummy/manifest.yaml | 9 + easi/simulators/dummy/v1/__init__.py | 6 + easi/simulators/dummy/v1/bridge.py | 166 +++++++++++ easi/simulators/dummy/v1/conda_env.yaml | 5 + easi/simulators/dummy/v1/env_manager.py | 48 ++++ easi/simulators/dummy/v1/requirements.txt | 2 + easi/simulators/dummy/v1/simulator.py | 26 ++ easi/simulators/registry.py | 136 +++++++++ easi/simulators/subprocess_runner.py | 199 +++++++++++++ easi/tasks/__init__.py | 0 easi/tasks/dataset.py | 95 +++++++ easi/tasks/dummy_task/__init__.py | 5 + easi/tasks/dummy_task/task.py | 76 +++++ easi/tasks/dummy_task/task.yaml | 24 ++ easi/tasks/registry.py | 112 ++++++++ easi/utils/__init__.py | 0 easi/utils/locking.py | 42 +++ easi/utils/logging.py | 44 +++ easi/utils/paths.py | 42 +++ easi/utils/system_deps.py | 91 ++++++ pyproject.toml | 38 +++ tests/__init__.py | 0 tests/test_dummy_agent.py | 54 ++++ tests/test_dummy_llm.py | 76 +++++ tests/test_dummy_simulator.py | 99 +++++++ tests/test_dummy_task.py | 91 ++++++ tests/test_filesystem_comm.py | 124 +++++++++ 63 files changed, 3735 insertions(+), 1 deletion(-) create mode 100644 CLAUDE.md create mode 100644 easi/__init__.py create mode 100644 easi/agents/__init__.py create mode 100644 easi/agents/dummy_agent.py create mode 100644 easi/cli.py create mode 100644 easi/communication/__init__.py create mode 100644 easi/communication/filesystem.py create mode 100644 easi/communication/schemas.py create mode 100644 easi/core/__init__.py create mode 100644 easi/core/base_agent.py create mode 100644 easi/core/base_env_manager.py create mode 100644 easi/core/base_simulator.py create mode 100644 easi/core/base_task.py create mode 100644 easi/core/episode.py create mode 100644 easi/core/exceptions.py create mode 100644 easi/core/protocols.py create mode 100644 easi/llm/__init__.py create mode 100644 easi/llm/api_client.py create mode 100644 easi/llm/dummy_server.py create mode 100644 easi/simulators/__init__.py create mode 100644 easi/simulators/ai2thor/__init__.py create mode 100644 easi/simulators/ai2thor/manifest.yaml create mode 100644 easi/simulators/ai2thor/v2_1_0/__init__.py create mode 100644 easi/simulators/ai2thor/v2_1_0/bridge.py create mode 100644 easi/simulators/ai2thor/v2_1_0/conda_env.yaml create mode 100644 easi/simulators/ai2thor/v2_1_0/env_manager.py create mode 100644 easi/simulators/ai2thor/v2_1_0/requirements.txt create mode 100644 easi/simulators/ai2thor/v2_1_0/simulator.py create mode 100644 easi/simulators/ai2thor/v5_0_0/__init__.py create mode 100644 easi/simulators/ai2thor/v5_0_0/bridge.py create mode 100644 easi/simulators/ai2thor/v5_0_0/conda_env.yaml create mode 100644 easi/simulators/ai2thor/v5_0_0/env_manager.py create mode 100644 easi/simulators/ai2thor/v5_0_0/requirements.txt create mode 100644 easi/simulators/ai2thor/v5_0_0/simulator.py create mode 100644 easi/simulators/dummy/__init__.py create mode 100644 easi/simulators/dummy/manifest.yaml create mode 100644 easi/simulators/dummy/v1/__init__.py create mode 100644 easi/simulators/dummy/v1/bridge.py create mode 100644 easi/simulators/dummy/v1/conda_env.yaml create mode 100644 easi/simulators/dummy/v1/env_manager.py create mode 100644 easi/simulators/dummy/v1/requirements.txt create mode 100644 easi/simulators/dummy/v1/simulator.py create mode 100644 easi/simulators/registry.py create mode 100644 easi/simulators/subprocess_runner.py create mode 100644 easi/tasks/__init__.py create mode 100644 easi/tasks/dataset.py create mode 100644 easi/tasks/dummy_task/__init__.py create mode 100644 easi/tasks/dummy_task/task.py create mode 100644 easi/tasks/dummy_task/task.yaml create mode 100644 easi/tasks/registry.py create mode 100644 easi/utils/__init__.py create mode 100644 easi/utils/locking.py create mode 100644 easi/utils/logging.py create mode 100644 easi/utils/paths.py create mode 100644 easi/utils/system_deps.py create mode 100644 pyproject.toml create mode 100644 tests/__init__.py create mode 100644 tests/test_dummy_agent.py create mode 100644 tests/test_dummy_llm.py create mode 100644 tests/test_dummy_simulator.py create mode 100644 tests/test_dummy_task.py create mode 100644 tests/test_filesystem_comm.py diff --git a/.gitignore b/.gitignore index df1a13b..dc084eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -/logs \ No newline at end of file +/logs +*.pyc +__pycache__/ +*.pyo +*.egg-info \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..241a481 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,75 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +EASI (Holistic Evaluation of Multimodal LLMs on Spatial Intelligence) is a unified evaluation suite for benchmarking multimodal LLMs on spatial intelligence tasks. It is an **orchestration project** — it does not contain evaluation code itself but wraps two external backends via git submodules. + +## Architecture + +EASI uses a **dual-backend architecture**: + +- **VLMEvalKit** (`VLMEvalKit/` submodule) — Feature-rich backend with built-in model zoo and LLM-based answer judging. Entry point: `VLMEvalKit/run.py`. +- **lmms-eval** (`lmms-eval/` submodule) — Lightweight, accelerate-based backend with multi-GPU distributed inference. Entry point: `lmms-eval` CLI command after `pip install -e ./lmms-eval`. + +Both submodules point to EvolvingLMMs-Lab forks. Submodules must be initialized before use: +```bash +git submodule update --init --recursive +``` + +The root repository contains: +- `examples/` — Shell scripts demonstrating evaluation invocations (lmms-eval backend) +- `dockerfiles/` — Docker configs for EASI, VLM3R, and Cambrains runtime environments +- `docs/` — Changelog, benchmark verification data, supported models/benchmarks matrix + +## Setup & Installation + +**VLMEvalKit backend:** +```bash +git clone --recursive https://github.com/EvolvingLMMs-Lab/EASI.git +cd EASI && pip install -e ./VLMEvalKit +``` + +**lmms-eval backend:** +```bash +git clone --recursive https://github.com/EvolvingLMMs-Lab/EASI.git +cd EASI && pip install -e ./lmms-eval spacy +pip install flash-attn --no-build-isolation +``` + +**Docker:** +```bash +bash dockerfiles/EASI/build_runtime_docker.sh +``` + +## Running Evaluations + +**VLMEvalKit:** +```bash +cd VLMEvalKit/ +python run.py --data {BENCHMARK} --model {MODEL} --judge {JUDGE_MODE} --verbose --reuse +``` +Judge modes: `extract_matching` (regex), `gpt-4o-1120` (LLM-based, needs OPENAI_API_KEY). + +**lmms-eval (single GPU):** +```bash +lmms-eval --model {MODEL_TYPE} --model_args pretrained={MODEL_PATH} \ + --tasks {TASK} --batch_size 1 --log_samples --output_path ./logs/ +``` + +**lmms-eval (multi-GPU):** +```bash +CUDA_VISIBLE_DEVICES=0,1,2,3 accelerate launch --num_processes=4 \ + -m lmms_eval --model {MODEL_TYPE} --model_args pretrained={MODEL_PATH} \ + --tasks {TASK} --batch_size 1 --log_samples --output_path ./logs/ +``` + +List available tasks: `lmms-eval --tasks list` + +## Key References + +- There is no test suite, linter, or build system in the root project — those live in the submodules. +- Evaluation logs go to `./logs/` (gitignored). +- Supported models (23) and benchmarks (25) are documented in `docs/Support_bench_models.md`. +- Benchmark verification against official scores is in `docs/Benchmark_Verification.md`. diff --git a/easi/__init__.py b/easi/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/agents/__init__.py b/easi/agents/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/agents/dummy_agent.py b/easi/agents/dummy_agent.py new file mode 100644 index 0000000..2582b4c --- /dev/null +++ b/easi/agents/dummy_agent.py @@ -0,0 +1,49 @@ +"""Dummy agent for testing — returns random actions without calling an LLM.""" + +from __future__ import annotations + +import random + +from easi.core.base_agent import BaseAgent +from easi.core.episode import Action, Observation + + +class DummyAgent(BaseAgent): + """Agent that picks random actions from the action space. + + Does not call the LLM client. Useful for testing the full pipeline + without needing a running LLM server. + """ + + def __init__(self, action_space: list[str], seed: int | None = None): + super().__init__(llm_client=None, action_space=action_space) + self._rng = random.Random(seed) + + def _build_system_prompt(self, task_description: str) -> str: + return "" # no system prompt needed + + def _build_step_prompt(self, observation: Observation) -> str: + return "Choose an action." + + def _parse_action(self, llm_response: str) -> Action: + """Pick a random action from the action space.""" + action_name = self._rng.choice(self.action_space) + return Action(action_name=action_name) + + def act(self, observation: Observation, task_description: str) -> Action: + """Override to skip LLM call entirely.""" + self._step_count += 1 + + action = self._parse_action("") + + # Still maintain chat history for compatibility + self._chat_history.append({ + "role": "user", + "content": f"Step {self._step_count}. Observation at {observation.rgb_path}", + }) + self._chat_history.append({ + "role": "assistant", + "content": f"Action: {action.action_name}", + }) + + return action diff --git a/easi/cli.py b/easi/cli.py new file mode 100644 index 0000000..d719ff5 --- /dev/null +++ b/easi/cli.py @@ -0,0 +1,261 @@ +"""EASI CLI entry point. + +Usage: + easi env list|install|check + easi task list|info|download + easi sim test + easi llm-server [--port PORT] [--mode MODE] +""" + +import argparse +import sys + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser( + prog="easi", + description="EASI - Embodied Reasoning Evaluation for Spatial Intelligence", + ) + parser.add_argument( + "--verbose", "-v", action="store_true", help="Enable INFO logging" + ) + parser.add_argument("--debug", action="store_true", help="Enable DEBUG logging") + + subparsers = parser.add_subparsers(dest="command") + + # --- env command group --- + env_parser = subparsers.add_parser("env", help="Manage simulator environments") + env_sub = env_parser.add_subparsers(dest="env_action") + + env_sub.add_parser("list", help="List available simulators and versions") + + env_install = env_sub.add_parser("install", help="Install a simulator environment") + env_install.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'") + + env_check = env_sub.add_parser("check", help="Check if environment is ready") + env_check.add_argument("simulator", type=str) + + # --- task command group --- + task_parser = subparsers.add_parser("task", help="Manage tasks (benchmarks)") + task_sub = task_parser.add_subparsers(dest="task_action") + + task_sub.add_parser("list", help="List available tasks") + + task_info = task_sub.add_parser("info", help="Show task details") + task_info.add_argument("task", type=str, help="e.g., 'dummy_task'") + + task_download = task_sub.add_parser("download", help="Download task dataset") + task_download.add_argument("task", type=str) + + # --- sim command group --- + sim_parser = subparsers.add_parser("sim", help="Control simulators") + sim_sub = sim_parser.add_subparsers(dest="sim_action") + + sim_test = sim_sub.add_parser("test", help="Run a smoke test (reset + N steps)") + sim_test.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v5_0_0'") + sim_test.add_argument("--steps", type=int, default=5, help="Number of steps") + + # --- llm-server command --- + llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server") + llm_parser.add_argument("--port", type=int, default=8000) + llm_parser.add_argument("--host", type=str, default="127.0.0.1") + llm_parser.add_argument("--mode", choices=["fixed", "random"], default="random") + llm_parser.add_argument( + "--action-space", type=str, nargs="+", + default=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + ) + + return parser + + +# --- Command handlers --- + +def cmd_env_list() -> None: + from easi.simulators.registry import get_simulator_entry, list_simulators + + sims = list_simulators() + if not sims: + print("No simulators found.") + return + + # Deduplicate: show each name:version pair once + seen = set() + for key in sims: + entry = get_simulator_entry(key) + pair = f"{entry.name}:{entry.version}" + if pair in seen: + continue + seen.add(pair) + default_marker = " (default)" if key == entry.name else "" + print(f" {pair}{default_marker} — {entry.description}") + + +def cmd_env_install(simulator: str) -> None: + from easi.simulators.registry import load_env_manager_class + + EnvManagerClass = load_env_manager_class(simulator) + env_manager = EnvManagerClass() + print(f"Installing environment: {env_manager.get_env_name()}") + env_manager.install() + print("Done.") + + +def cmd_env_check(simulator: str) -> None: + from easi.simulators.registry import load_env_manager_class + + EnvManagerClass = load_env_manager_class(simulator) + env_manager = EnvManagerClass() + + missing = env_manager.check_system_deps() + if missing: + print(f"Missing system deps: {missing}") + + if env_manager.env_is_ready(): + print(f"Environment {env_manager.get_env_name()} is ready.") + print(f"Python: {env_manager.get_python_executable()}") + else: + print(f"Environment {env_manager.get_env_name()} is NOT ready.") + print("Run: easi env install " + simulator) + + +def cmd_task_list() -> None: + from easi.tasks.registry import get_task_entry, list_tasks + + tasks = list_tasks() + if not tasks: + print("No tasks found.") + return + + for name in tasks: + entry = get_task_entry(name) + print(f" {name} — {entry.display_name} (simulator: {entry.simulator_key})") + + +def cmd_task_info(task_name: str) -> None: + from easi.tasks.registry import get_task_entry + + entry = get_task_entry(task_name) + print(f"Task: {entry.display_name}") + print(f" Name: {entry.name}") + print(f" Description: {entry.description}") + print(f" Simulator: {entry.simulator_key}") + print(f" Actions: {', '.join(entry.action_space)}") + print(f" Max steps: {entry.max_steps}") + + +def cmd_task_download(task_name: str) -> None: + from easi.tasks.registry import load_task_class + + TaskClass = load_task_class(task_name) + task = TaskClass() + path = task.download_dataset() + if path and str(path): + print(f"Dataset ready at: {path}") + else: + print("Task uses built-in episodes (no download needed).") + + +def cmd_sim_test(simulator: str, steps: int) -> None: + from easi.core.episode import Action + from easi.simulators.registry import load_env_manager_class, load_simulator_class + from easi.simulators.subprocess_runner import SubprocessRunner + + EnvManagerClass = load_env_manager_class(simulator) + SimClass = load_simulator_class(simulator) + + env_manager = EnvManagerClass() + sim = SimClass() + + print(f"Testing {simulator}...") + print(f" Python: {env_manager.get_python_executable()}") + + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + needs_display=env_manager.needs_display, + xvfb_screen_config=env_manager.xvfb_screen_config, + ) + + try: + runner.launch() + sim.set_runner(runner) + + print(" Reset... ", end="", flush=True) + obs = sim.reset("smoke_test_001") + print(f"OK (rgb: {obs.rgb_path})") + + for i in range(steps): + action = Action(action_name="MoveAhead") + result = sim.step(action) + print(f" Step {i+1}: done={result.done}, reward={result.reward}") + if result.done: + break + + print(" Closing... ", end="", flush=True) + sim.close() + print("OK") + print("Smoke test passed!") + + except Exception as e: + print(f"\nSmoke test FAILED: {e}") + sim.close() + sys.exit(1) + + +def cmd_llm_server(host: str, port: int, mode: str, action_space: list[str]) -> None: + from easi.llm.dummy_server import run_server + + run_server(host=host, port=port, mode=mode, action_space=action_space) + + +# --- Main --- + +def main() -> None: + parser = build_parser() + args = parser.parse_args() + + # Set up logging + if args.debug: + from easi.utils.logging import setup_logging + setup_logging("DEBUG") + elif args.verbose: + from easi.utils.logging import setup_logging + setup_logging("INFO") + + if args.command is None: + parser.print_help() + sys.exit(0) + + # Dispatch commands + if args.command == "env": + if args.env_action == "list": + cmd_env_list() + elif args.env_action == "install": + cmd_env_install(args.simulator) + elif args.env_action == "check": + cmd_env_check(args.simulator) + else: + parser.parse_args(["env", "--help"]) + + elif args.command == "task": + if args.task_action == "list": + cmd_task_list() + elif args.task_action == "info": + cmd_task_info(args.task) + elif args.task_action == "download": + cmd_task_download(args.task) + else: + parser.parse_args(["task", "--help"]) + + elif args.command == "sim": + if args.sim_action == "test": + cmd_sim_test(args.simulator, args.steps) + else: + parser.parse_args(["sim", "--help"]) + + elif args.command == "llm-server": + cmd_llm_server(args.host, args.port, args.mode, args.action_space) + + +if __name__ == "__main__": + main() diff --git a/easi/communication/__init__.py b/easi/communication/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/communication/filesystem.py b/easi/communication/filesystem.py new file mode 100644 index 0000000..59d26e8 --- /dev/null +++ b/easi/communication/filesystem.py @@ -0,0 +1,221 @@ +"""Filesystem-based IPC for command/response exchange between parent and bridge subprocess. + +All writes use the atomic write pattern: write to a .tmp file, then os.rename() to the +final path. This guarantees readers never see partial files (rename is atomic on Linux +when source and dest are on the same filesystem). + +The parent deletes response.json before writing a new command.json to avoid stale reads. +""" + +from __future__ import annotations + +import json +import logging +import os +import tempfile +import time +from pathlib import Path + +from easi.core.exceptions import SimulatorTimeoutError + +logger = logging.getLogger("easi.communication") + +# Default filenames used in the IPC workspace +COMMAND_FILE = "command.json" +RESPONSE_FILE = "response.json" +STATUS_FILE = "status.json" + + +def create_workspace(prefix: str = "easi_") -> Path: + """Create a unique temporary workspace directory for IPC. + + Each EASI process/episode gets its own workspace, so concurrent processes + never collide on file paths. + """ + workspace = Path(tempfile.mkdtemp(prefix=prefix)) + logger.debug("Created IPC workspace: %s", workspace) + return workspace + + +def cleanup_workspace(workspace: Path) -> None: + """Remove the IPC workspace directory and all contents.""" + import shutil + + if workspace.exists(): + shutil.rmtree(workspace, ignore_errors=True) + logger.debug("Cleaned up IPC workspace: %s", workspace) + + +def atomic_write_json(path: Path, data: dict) -> None: + """Write JSON data atomically using write-to-tmp + rename pattern. + + This ensures readers never see a partially written file. + """ + tmp_path = path.with_suffix(".tmp") + tmp_path.write_text(json.dumps(data, indent=2)) + os.rename(str(tmp_path), str(path)) + + +def read_json(path: Path) -> dict | None: + """Read a JSON file, returning None if it doesn't exist or is invalid. + + Uses try/except instead of exists-then-read to avoid TOCTOU races. + """ + try: + return json.loads(path.read_text()) + except (FileNotFoundError, json.JSONDecodeError): + return None + + +def delete_file(path: Path) -> None: + """Delete a file if it exists, ignoring FileNotFoundError.""" + try: + path.unlink() + except FileNotFoundError: + pass + + +def write_command(workspace: Path, command: dict) -> None: + """Write a command for the bridge subprocess to read. + + Deletes any existing response first to prevent stale reads. + """ + response_path = workspace / RESPONSE_FILE + command_path = workspace / COMMAND_FILE + + delete_file(response_path) + atomic_write_json(command_path, command) + logger.debug("Wrote command: %s", command.get("type", "unknown")) + + +def poll_for_response( + workspace: Path, + poll_interval: float = 0.1, + timeout: float = 60.0, + process: object | None = None, +) -> dict: + """Poll the workspace for a response.json file from the bridge subprocess. + + Args: + workspace: IPC workspace directory. + poll_interval: Seconds between poll attempts. + timeout: Maximum seconds to wait before raising SimulatorTimeoutError. + process: Optional subprocess.Popen instance. If provided, checks whether + the subprocess has exited (crashed) during polling. + + Returns: + Parsed response dict. + + Raises: + SimulatorTimeoutError: If timeout is exceeded. + SimulatorError: If the subprocess has exited unexpectedly. + """ + from easi.core.exceptions import SimulatorError + + response_path = workspace / RESPONSE_FILE + deadline = time.monotonic() + timeout + + while time.monotonic() < deadline: + # Check if subprocess has crashed + if process is not None and hasattr(process, "poll"): + if process.poll() is not None: + raise SimulatorError( + f"Bridge subprocess exited with code {process.returncode} " + f"while waiting for response" + ) + + data = read_json(response_path) + if data is not None: + logger.debug("Received response: status=%s", data.get("status", "unknown")) + return data + + time.sleep(poll_interval) + + raise SimulatorTimeoutError( + f"Timed out waiting for response after {timeout}s", + timeout=timeout, + ) + + +def poll_for_status( + workspace: Path, + poll_interval: float = 0.1, + timeout: float = 30.0, + process: object | None = None, +) -> dict: + """Poll the workspace for a status.json file (bridge startup health check). + + Same semantics as poll_for_response but reads status.json instead. + """ + from easi.core.exceptions import SimulatorError + + status_path = workspace / STATUS_FILE + deadline = time.monotonic() + timeout + + while time.monotonic() < deadline: + if process is not None and hasattr(process, "poll"): + if process.poll() is not None: + raise SimulatorError( + f"Bridge subprocess exited with code {process.returncode} " + f"during startup" + ) + + data = read_json(status_path) + if data is not None: + logger.debug("Received status: ready=%s", data.get("ready", False)) + return data + + time.sleep(poll_interval) + + raise SimulatorTimeoutError( + f"Bridge subprocess did not report ready within {timeout}s", + timeout=timeout, + ) + + +def poll_for_command( + workspace: Path, + poll_interval: float = 0.1, + timeout: float = 60.0, +) -> dict: + """Poll the workspace for a command.json file (bridge-side). + + Used by the bridge subprocess to wait for commands from the parent. + + Returns: + Parsed command dict. + + Raises: + SimulatorTimeoutError: If timeout is exceeded. + """ + command_path = workspace / COMMAND_FILE + deadline = time.monotonic() + timeout + + while time.monotonic() < deadline: + data = read_json(command_path) + if data is not None: + # Delete the command file after reading to signal we've consumed it + delete_file(command_path) + logger.debug("Bridge received command: %s", data.get("type", "unknown")) + return data + + time.sleep(poll_interval) + + raise SimulatorTimeoutError( + f"No command received within {timeout}s", + timeout=timeout, + ) + + +def write_response(workspace: Path, response: dict) -> None: + """Write a response for the parent process to read (bridge-side).""" + response_path = workspace / RESPONSE_FILE + atomic_write_json(response_path, response) + logger.debug("Bridge wrote response: status=%s", response.get("status", "unknown")) + + +def write_status(workspace: Path, ready: bool) -> None: + """Write a status file to signal bridge readiness (bridge-side).""" + status_path = workspace / STATUS_FILE + atomic_write_json(status_path, {"ready": ready}) + logger.debug("Bridge wrote status: ready=%s", ready) diff --git a/easi/communication/schemas.py b/easi/communication/schemas.py new file mode 100644 index 0000000..1e0efae --- /dev/null +++ b/easi/communication/schemas.py @@ -0,0 +1,96 @@ +"""JSON schemas for command/response exchange between parent and bridge subprocess.""" + +from __future__ import annotations + +import json +from dataclasses import asdict +from pathlib import Path +from typing import Any + +from easi.core.episode import Action, Observation, StepResult + + +# --- Command schemas (parent → child) --- + +def make_reset_command(episode_id: str, reset_config: dict | None = None) -> dict: + return { + "type": "reset", + "episode_id": episode_id, + "reset_config": reset_config or {}, + } + + +def make_step_command(action: Action) -> dict: + return { + "type": "step", + "action": { + "action_name": action.action_name, + "params": action.params, + }, + } + + +def make_close_command() -> dict: + return {"type": "close"} + + +# --- Response schemas (child → parent) --- + +def make_observation_response( + rgb_path: str, + depth_path: str | None = None, + agent_pose: list[float] | None = None, + metadata: dict[str, str] | None = None, + reward: float = 0.0, + done: bool = False, + info: dict[str, float] | None = None, +) -> dict: + return { + "status": "ok", + "observation": { + "rgb_path": rgb_path, + "depth_path": depth_path, + "agent_pose": agent_pose or [], + "metadata": metadata or {}, + }, + "reward": reward, + "done": done, + "info": info or {}, + } + + +def make_error_response(error: str) -> dict: + return {"status": "error", "error": error} + + +def make_status_response(ready: bool) -> dict: + return {"ready": ready} + + +# --- Parsing helpers --- + +def parse_observation(data: dict) -> Observation: + obs = data["observation"] + return Observation( + rgb_path=obs["rgb_path"], + depth_path=obs.get("depth_path"), + agent_pose=obs.get("agent_pose", []), + metadata=obs.get("metadata", {}), + ) + + +def parse_step_result(data: dict) -> StepResult: + return StepResult( + observation=parse_observation(data), + reward=data.get("reward", 0.0), + done=data.get("done", False), + info=data.get("info", {}), + ) + + +def parse_action_from_command(data: dict) -> Action: + action_data = data["action"] + return Action( + action_name=action_data["action_name"], + params=action_data.get("params", {}), + ) diff --git a/easi/core/__init__.py b/easi/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/core/base_agent.py b/easi/core/base_agent.py new file mode 100644 index 0000000..4cde3fb --- /dev/null +++ b/easi/core/base_agent.py @@ -0,0 +1,121 @@ +"""Abstract base class for agents. + +An agent bridges the LLM inference endpoint and the simulator. It manages: +- Chat history across steps +- Prompt building (system prompt, per-step observation prompts) +- Parsing LLM text responses into structured Action objects + +Concrete agents subclass this and implement the three abstract methods: +_build_system_prompt, _build_step_prompt, _parse_action. +""" + +from __future__ import annotations + +import logging +from abc import ABC, abstractmethod + +from easi.core.episode import Action, Observation +from easi.core.exceptions import ActionParseError +from easi.core.protocols import LLMClientProtocol + +logger = logging.getLogger("easi.core.base_agent") + + +class BaseAgent(ABC): + """Abstract base for agents that bridge LLM inference and simulator actions.""" + + def __init__(self, llm_client: LLMClientProtocol | None, action_space: list[str]): + self.llm_client = llm_client + self.action_space = action_space + self._chat_history: list[dict[str, str]] = [] + self._step_count: int = 0 + + @abstractmethod + def _build_system_prompt(self, task_description: str) -> str: + """Build the system prompt describing the task and action space.""" + ... + + @abstractmethod + def _build_step_prompt(self, observation: Observation) -> str: + """Build the user message for a single step (includes observation description).""" + ... + + @abstractmethod + def _parse_action(self, llm_response: str) -> Action: + """Parse the LLM's text response into a structured Action. + + Raises: + ActionParseError: If the response cannot be parsed. + """ + ... + + def reset(self) -> None: + """Clear chat history for a new episode.""" + self._chat_history = [] + self._step_count = 0 + + def act(self, observation: Observation, task_description: str) -> Action: + """Full agent loop for one step. + + 1. Build system prompt on first call + 2. Build step prompt with observation + 3. Collect image paths from observation + 4. Call LLM inference endpoint + 5. Parse response into Action + 6. Append to chat history + """ + # Add system prompt on first step + if self._step_count == 0: + system_prompt = self._build_system_prompt(task_description) + if system_prompt: + self._chat_history.append({ + "role": "system", + "content": system_prompt, + }) + + # Build step prompt + self._step_count += 1 + step_prompt = self._build_step_prompt(observation) + + # Collect images + images = [] + if observation.rgb_path: + images.append(observation.rgb_path) + + # Add user message to history + user_message = {"role": "user", "content": step_prompt} + if images: + user_message["images"] = images + self._chat_history.append(user_message) + + # Call LLM + if self.llm_client is not None: + llm_response = self.llm_client.generate( + messages=self._chat_history, + images=images if images else None, + ) + else: + llm_response = "" + + # Parse action + action = self._parse_action(llm_response) + + # Append assistant response to history + self._chat_history.append({ + "role": "assistant", + "content": llm_response, + }) + + logger.debug( + "Step %d: action=%s params=%s", + self._step_count, + action.action_name, + action.params, + ) + + return action + + @property + def chat_history(self) -> list[dict[str, str]]: + """Return a copy of the chat history.""" + return self._chat_history.copy() diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py new file mode 100644 index 0000000..d51edcf --- /dev/null +++ b/easi/core/base_env_manager.py @@ -0,0 +1,205 @@ +"""Abstract base class for per-simulator-version environment management. + +Each simulator version provides a concrete subclass that declares: +- conda_env.yaml path (conda-channel packages only) +- requirements.txt path (pip-installable Python deps, installed via uv) +- system dependencies (xvfb, EGL, etc.) +- validation import to confirm the env works + +The shared install() logic handles the full sequence: + check_system_deps → conda create → pip install uv → uv pip install → validate +""" + +from __future__ import annotations + +import logging +import subprocess +from abc import ABC, abstractmethod +from pathlib import Path + +from easi.core.exceptions import EnvironmentSetupError +from easi.utils.locking import file_lock +from easi.utils.paths import get_locks_dir +from easi.utils.system_deps import SystemDependencyChecker + +logger = logging.getLogger("easi.core.base_env_manager") + + +class BaseEnvironmentManager(ABC): + """Abstract base for per-simulator-version environment management.""" + + def __init__(self, conda_prefix: Path | None = None): + self.conda_prefix = conda_prefix or self._default_conda_prefix() + self._dep_checker = SystemDependencyChecker() + + @property + @abstractmethod + def simulator_name(self) -> str: + """Name of the simulator (e.g., 'ai2thor').""" + ... + + @property + @abstractmethod + def version(self) -> str: + """Version identifier (e.g., 'v2_1_0').""" + ... + + @abstractmethod + def get_conda_env_yaml_path(self) -> Path: + """Path to the conda environment YAML (conda-only deps).""" + ... + + @abstractmethod + def get_requirements_txt_path(self) -> Path: + """Path to requirements.txt (uv-installed Python deps).""" + ... + + @abstractmethod + def get_system_deps(self) -> list[str]: + """List of required system packages (e.g., ['xvfb', 'conda']).""" + ... + + @abstractmethod + def get_validation_import(self) -> str: + """Python import statement to validate env works. + + Example: "import ai2thor; assert ai2thor.__version__.startswith('2.1')" + """ + ... + + @property + def needs_display(self) -> bool: + """Whether this simulator requires a display (X11/Xvfb). + + Override to return True for simulators that need it (e.g., AI2-THOR). + """ + return False + + @property + def xvfb_screen_config(self) -> str: + """Xvfb screen config. Override for custom resolution/depth.""" + return "1024x768x24" + + def get_env_name(self) -> str: + """Conda environment name for this simulator version.""" + return f"easi_{self.simulator_name}_{self.version}" + + def get_python_executable(self) -> str: + """Return the full path to the Python executable in this conda env.""" + env_path = self.conda_prefix / "envs" / self.get_env_name() + return str(env_path / "bin" / "python") + + def check_system_deps(self) -> list[str]: + """Check system dependencies, returning list of missing ones.""" + return self._dep_checker.check_all(self.get_system_deps()) + + def env_is_ready(self) -> bool: + """Check if the conda environment exists and passes validation.""" + python_exec = self.get_python_executable() + if not Path(python_exec).exists(): + return False + + try: + result = subprocess.run( + [python_exec, "-c", self.get_validation_import()], + capture_output=True, + text=True, + timeout=30, + ) + return result.returncode == 0 + except (subprocess.TimeoutExpired, FileNotFoundError): + return False + + def install(self) -> None: + """Install the conda+uv environment with file-based locking. + + Serializes concurrent installs of the same env across processes. + """ + lock_path = get_locks_dir() / f"{self.get_env_name()}.lock" + with file_lock(lock_path): + if self.env_is_ready(): + logger.info("Environment %s already ready, skipping install", self.get_env_name()) + return + self._do_install() + + def _do_install(self) -> None: + """Execute the full install sequence (called under lock).""" + env_name = self.get_env_name() + logger.info("Installing environment: %s", env_name) + + # Step 1: Check system deps + self._dep_checker.assert_all(self.get_system_deps()) + + # Step 2: Create/update conda env + conda_yaml = self.get_conda_env_yaml_path() + if conda_yaml.exists(): + self._run_conda_create(env_name, conda_yaml) + else: + logger.warning("No conda_env.yaml found at %s, skipping conda setup", conda_yaml) + + # Step 3: Install uv in the conda env + python_exec = self.get_python_executable() + self._run_command([python_exec, "-m", "pip", "install", "uv"], "pip install uv") + + # Step 4: Install Python deps via uv + requirements = self.get_requirements_txt_path() + if requirements.exists(): + self._run_command( + [python_exec, "-m", "uv", "pip", "install", "-r", str(requirements)], + "uv pip install", + ) + else: + logger.warning("No requirements.txt found at %s, skipping uv install", requirements) + + # Step 5: Validate + result = subprocess.run( + [python_exec, "-c", self.get_validation_import()], + capture_output=True, + text=True, + timeout=30, + ) + if result.returncode != 0: + raise EnvironmentSetupError( + f"Environment validation failed for {env_name}:\n{result.stderr}" + ) + + logger.info("Environment %s installed and validated successfully", env_name) + + def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: + """Create or update a conda environment from a YAML file.""" + env_path = self.conda_prefix / "envs" / env_name + + if env_path.exists(): + cmd = ["conda", "env", "update", "-f", str(yaml_path), "-n", env_name] + desc = "conda env update" + else: + cmd = ["conda", "env", "create", "-f", str(yaml_path), "-n", env_name] + desc = "conda env create" + + self._run_command(cmd, desc) + + def _run_command(self, cmd: list[str], description: str) -> None: + """Run a subprocess command, raising on failure.""" + logger.debug("Running %s: %s", description, " ".join(cmd)) + result = subprocess.run(cmd, capture_output=True, text=True, timeout=600) + if result.returncode != 0: + raise EnvironmentSetupError( + f"{description} failed (exit code {result.returncode}):\n{result.stderr}" + ) + + @staticmethod + def _default_conda_prefix() -> Path: + """Determine the conda prefix from the conda executable.""" + try: + result = subprocess.run( + ["conda", "info", "--base"], + capture_output=True, + text=True, + timeout=10, + ) + if result.returncode == 0: + return Path(result.stdout.strip()) + except (subprocess.TimeoutExpired, FileNotFoundError): + pass + # Fallback to common default + return Path.home() / "miniconda3" diff --git a/easi/core/base_simulator.py b/easi/core/base_simulator.py new file mode 100644 index 0000000..03ca9ba --- /dev/null +++ b/easi/core/base_simulator.py @@ -0,0 +1,111 @@ +"""Abstract base class for simulators. + +Concrete simulators subclass this and implement: +- name/version properties +- _get_bridge_script_path() — path to the bridge.py for subprocess execution +- _parse_observation() — convert bridge output into Observation +- _format_action() — convert Action into dict the bridge understands + +The shared template methods (reset, step, close) handle subprocess communication +via the filesystem IPC layer. +""" + +from __future__ import annotations + +import logging +from abc import ABC, abstractmethod +from pathlib import Path + +from easi.communication import filesystem, schemas +from easi.core.episode import Action, Observation, StepResult + +logger = logging.getLogger("easi.core.base_simulator") + + +class BaseSimulator(ABC): + """Abstract base for all simulators. Manages subprocess lifecycle via IPC.""" + + def __init__(self, workspace_dir: Path | None = None): + self._workspace_dir = workspace_dir + self._runner = None # Set when start() is called + + @property + @abstractmethod + def name(self) -> str: + """Simulator name (e.g., 'ai2thor').""" + ... + + @property + @abstractmethod + def version(self) -> str: + """Version identifier (e.g., 'v2_1_0').""" + ... + + @abstractmethod + def _get_bridge_script_path(self) -> Path: + """Return the absolute path to the bridge.py script for subprocess execution.""" + ... + + def _parse_observation(self, data: dict) -> Observation: + """Parse observation from response data. Override for custom parsing.""" + return schemas.parse_observation(data) + + def _format_action(self, action: Action) -> dict: + """Format an Action into the command dict. Override for custom formatting.""" + return schemas.make_step_command(action) + + def reset(self, episode_id: str, reset_config: dict | None = None) -> Observation: + """Reset the simulator for a new episode. + + Sends a reset command to the bridge subprocess and waits for the + observation response. + """ + if self._runner is None: + raise RuntimeError("Simulator not started. Call start() first.") + + command = schemas.make_reset_command(episode_id, reset_config) + response = self._runner.send_command(command) + + if response.get("status") == "error": + from easi.core.exceptions import SimulatorError + raise SimulatorError(f"Reset failed: {response.get('error', 'unknown')}") + + return self._parse_observation(response) + + def step(self, action: Action) -> StepResult: + """Execute one action in the simulator. + + Sends a step command and returns the StepResult. + """ + if self._runner is None: + raise RuntimeError("Simulator not started. Call start() first.") + + command = self._format_action(action) + response = self._runner.send_command(command) + + if response.get("status") == "error": + from easi.core.exceptions import SimulatorError + raise SimulatorError(f"Step failed: {response.get('error', 'unknown')}") + + return schemas.parse_step_result(response) + + def close(self) -> None: + """Shut down the simulator subprocess.""" + if self._runner is not None: + command = schemas.make_close_command() + try: + self._runner.send_command(command, timeout=10.0) + except Exception: + logger.warning("Close command failed, force-killing subprocess") + self._runner.shutdown() + self._runner = None + + def is_running(self) -> bool: + """Check if the bridge subprocess is alive.""" + if self._runner is None: + return False + return self._runner.is_alive() + + def set_runner(self, runner: object) -> None: + """Attach a SubprocessRunner instance (called by orchestration code).""" + self._runner = runner diff --git a/easi/core/base_task.py b/easi/core/base_task.py new file mode 100644 index 0000000..5037700 --- /dev/null +++ b/easi/core/base_task.py @@ -0,0 +1,190 @@ +"""Abstract base class for tasks (benchmarks). + +A task owns: +- Which simulator+version to use (pinned via task.yaml) +- The action space available to the agent +- The dataset (episodes to evaluate on) +- Episode-to-simulator mapping (format_reset_config) +- Success criteria and metrics (evaluate_episode) + +Concrete tasks subclass this and implement: +- get_task_yaml_path() — where the task.yaml lives +- format_reset_config() — adapter from dataset episodes to simulator configs +- evaluate_episode() — compute metrics for a completed episode +""" + +from __future__ import annotations + +import json +import logging +from abc import ABC, abstractmethod +from pathlib import Path + +import yaml + +from easi.core.episode import StepResult +from easi.core.exceptions import DatasetError + +logger = logging.getLogger("easi.core.base_task") + + +class BaseTask(ABC): + """Abstract base for all tasks (benchmarks).""" + + def __init__(self, data_dir: Path | None = None): + self._config = self._load_config() + self._episodes: list[dict] | None = None + self._data_dir = data_dir + + @abstractmethod + def get_task_yaml_path(self) -> Path: + """Return path to this task's task.yaml.""" + ... + + @abstractmethod + def format_reset_config(self, episode: dict) -> dict: + """Translate a dataset episode into simulator reset kwargs. + + This is the core adapter method between dataset format and simulator API. + """ + ... + + @abstractmethod + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Evaluate a completed episode, returning a metric dict. + + Example return: {"success": 1.0, "spl": 0.73, "distance_to_goal": 0.15} + """ + ... + + # --- Shared implementation --- + + @property + def name(self) -> str: + return self._config["name"] + + @property + def simulator_key(self) -> str: + """Returns e.g. 'dummy:v1' — used to look up from simulator registry.""" + return self._config["simulator"] + + @property + def action_space(self) -> list[str]: + return self._config["action_space"] + + @property + def max_steps(self) -> int: + return self._config.get("max_steps", 500) + + def download_dataset(self) -> Path: + """Download dataset if needed. Returns path to local data directory. + + - source=local: validate path exists, return it + - source=huggingface: download via huggingface_hub, cache locally + """ + dataset_config = self._config.get("dataset", {}) + source = dataset_config.get("source", "local") + + if source == "local": + path = dataset_config.get("path") + if path is None: + # Use built-in episodes (no download needed) + return Path() + local_path = Path(path) + if not local_path.exists(): + raise DatasetError(f"Local dataset path does not exist: {local_path}") + return local_path + + elif source == "huggingface": + return self._download_huggingface(dataset_config) + + else: + raise DatasetError(f"Unknown dataset source: {source}") + + def load_episodes(self) -> list[dict]: + """Load and return all episodes from the dataset.""" + if self._episodes is not None: + return self._episodes + + self._episodes = self._load_episodes_from_config() + logger.info("Loaded %d episodes for task %s", len(self._episodes), self.name) + return self._episodes + + def get_episode(self, index: int) -> dict: + """Get a single episode by index.""" + episodes = self.load_episodes() + if index < 0 or index >= len(episodes): + raise IndexError(f"Episode index {index} out of range [0, {len(episodes)})") + return episodes[index] + + def __len__(self) -> int: + """Number of episodes.""" + return len(self.load_episodes()) + + def _load_config(self) -> dict: + """Load task.yaml.""" + yaml_path = self.get_task_yaml_path() + if not yaml_path.exists(): + raise DatasetError(f"Task config not found: {yaml_path}") + return yaml.safe_load(yaml_path.read_text()) + + def _load_episodes_from_config(self) -> list[dict]: + """Load episodes from the dataset directory. + + Subclasses can override this for custom episode loading logic. + Default implementation looks for episodes.json in the data directory. + """ + data_dir = self._data_dir or self.download_dataset() + if not data_dir or data_dir == Path(): + # No data dir — subclass should provide built-in episodes + return self._get_builtin_episodes() + + episodes_file = data_dir / "episodes.json" + if episodes_file.exists(): + return json.loads(episodes_file.read_text()) + + raise DatasetError( + f"No episodes.json found in {data_dir}. " + f"Override _load_episodes_from_config() for custom loading." + ) + + def _get_builtin_episodes(self) -> list[dict]: + """Return built-in episodes when no dataset download is needed. + + Override in subclasses that provide built-in test episodes (e.g., DummyTask). + """ + return [] + + def _download_huggingface(self, config: dict) -> Path: + """Download a dataset from HuggingFace Hub with file-based locking.""" + from easi.utils.locking import file_lock + from easi.utils.paths import get_datasets_dir, get_locks_dir + + repo_id = config["repo_id"] + lock_path = get_locks_dir() / f"dataset_{repo_id.replace('/', '_')}.lock" + + with file_lock(lock_path): + target = get_datasets_dir() / repo_id.replace("/", "_") + if target.exists(): + logger.info("Dataset %s already cached at %s", repo_id, target) + return target + + try: + from huggingface_hub import snapshot_download + + snapshot_download( + repo_id=repo_id, + local_dir=str(target), + repo_type="dataset", + ) + logger.info("Downloaded dataset %s to %s", repo_id, target) + return target + except ImportError: + raise DatasetError( + "huggingface_hub is required for HuggingFace downloads. " + "Install with: pip install huggingface_hub" + ) + except Exception as e: + raise DatasetError(f"Failed to download {repo_id}: {e}") diff --git a/easi/core/episode.py b/easi/core/episode.py new file mode 100644 index 0000000..a7453a1 --- /dev/null +++ b/easi/core/episode.py @@ -0,0 +1,33 @@ +"""Core data structures for observations, actions, and step results.""" + +from __future__ import annotations + +from dataclasses import dataclass, field + + +@dataclass +class Observation: + """Observation produced by a simulator after reset or step.""" + + rgb_path: str + depth_path: str | None = None + agent_pose: list[float] = field(default_factory=list) + metadata: dict[str, str] = field(default_factory=dict) + + +@dataclass +class Action: + """An action to be executed in the simulator.""" + + action_name: str + params: dict[str, float] = field(default_factory=dict) + + +@dataclass +class StepResult: + """Result of executing one step in the simulator.""" + + observation: Observation + reward: float = 0.0 + done: bool = False + info: dict[str, float] = field(default_factory=dict) diff --git a/easi/core/exceptions.py b/easi/core/exceptions.py new file mode 100644 index 0000000..be8a87f --- /dev/null +++ b/easi/core/exceptions.py @@ -0,0 +1,37 @@ +"""Custom exception hierarchy for EASI.""" + + +class EASIError(Exception): + """Base exception for all EASI errors.""" + + +class EnvironmentSetupError(EASIError): + """Raised when a simulator environment fails to install or validate.""" + + def __init__(self, message: str, missing_deps: list[str] | None = None): + super().__init__(message) + self.missing_deps = missing_deps or [] + + +class SimulatorError(EASIError): + """Raised when a simulator encounters an error during operation.""" + + +class SimulatorTimeoutError(SimulatorError): + """Raised when a simulator operation exceeds the configured timeout.""" + + def __init__(self, message: str, timeout: float): + super().__init__(message) + self.timeout = timeout + + +class ActionParseError(EASIError): + """Raised when an LLM response cannot be parsed into a valid Action.""" + + def __init__(self, message: str, raw_response: str): + super().__init__(message) + self.raw_response = raw_response + + +class DatasetError(EASIError): + """Raised when a dataset cannot be loaded or downloaded.""" diff --git a/easi/core/protocols.py b/easi/core/protocols.py new file mode 100644 index 0000000..877c138 --- /dev/null +++ b/easi/core/protocols.py @@ -0,0 +1,74 @@ +"""Protocol classes defining interfaces for EASI components.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Protocol, runtime_checkable + +from easi.core.episode import Action, Observation, StepResult + + +@runtime_checkable +class SimulatorProtocol(Protocol): + """Any simulator must satisfy this interface.""" + + name: str + version: str + + def reset(self, episode_id: str, reset_config: dict | None = None) -> Observation: ... + def step(self, action: Action) -> StepResult: ... + def close(self) -> None: ... + def is_running(self) -> bool: ... + + +@runtime_checkable +class EnvironmentManagerProtocol(Protocol): + """Manages conda+uv environment for a specific simulator version.""" + + simulator_name: str + version: str + + def check_system_deps(self) -> list[str]: ... + def install(self) -> None: ... + def env_is_ready(self) -> bool: ... + def get_python_executable(self) -> str: ... + def get_env_name(self) -> str: ... + + +@runtime_checkable +class LLMClientProtocol(Protocol): + """Calls an LLM inference server.""" + + def generate( + self, messages: list[dict[str, str]], images: list[str] | None = None + ) -> str: ... + + +@runtime_checkable +class AgentProtocol(Protocol): + """An agent that decides actions given observations.""" + + def reset(self) -> None: ... + def act(self, observation: Observation, task_description: str) -> Action: ... + + @property + def chat_history(self) -> list[dict[str, str]]: ... + + +@runtime_checkable +class TaskProtocol(Protocol): + """A benchmark task that maps dataset episodes to simulator configs.""" + + name: str + simulator_key: str + action_space: list[str] + max_steps: int + + def download_dataset(self) -> Path: ... + def load_episodes(self) -> list[dict]: ... + def get_episode(self, index: int) -> dict: ... + def format_reset_config(self, episode: dict) -> dict: ... + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: ... + def __len__(self) -> int: ... diff --git a/easi/llm/__init__.py b/easi/llm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/llm/api_client.py b/easi/llm/api_client.py new file mode 100644 index 0000000..e62f0c1 --- /dev/null +++ b/easi/llm/api_client.py @@ -0,0 +1,84 @@ +"""HTTP client for OpenAI-compatible LLM inference servers. + +Works with vLLM, SGLang, Ollama, and the built-in dummy server — +any server that implements the /v1/chat/completions endpoint. +""" + +from __future__ import annotations + +import logging +from typing import Any + +import requests + +logger = logging.getLogger("easi.llm.api_client") + + +class LLMApiClient: + """Stateless HTTP client for LLM inference endpoints.""" + + def __init__( + self, + base_url: str = "http://127.0.0.1:8000", + model: str = "default", + timeout: float = 120.0, + max_tokens: int = 512, + temperature: float = 0.0, + ): + self.base_url = base_url.rstrip("/") + self.model = model + self.timeout = timeout + self.max_tokens = max_tokens + self.temperature = temperature + + def generate( + self, + messages: list[dict[str, str]], + images: list[str] | None = None, + ) -> str: + """Send a chat completion request and return the assistant's response text. + + Args: + messages: Chat history in OpenAI format. + images: Optional list of image paths (currently passed as metadata; + real multimodal support depends on the server implementation). + + Returns: + The assistant's response text. + """ + payload: dict[str, Any] = { + "model": self.model, + "messages": messages, + "max_tokens": self.max_tokens, + "temperature": self.temperature, + } + + if images: + payload["images"] = images + + url = f"{self.base_url}/v1/chat/completions" + logger.debug("POST %s (messages: %d)", url, len(messages)) + + try: + response = requests.post(url, json=payload, timeout=self.timeout) + response.raise_for_status() + except requests.ConnectionError: + raise ConnectionError( + f"Cannot connect to LLM server at {self.base_url}. " + f"Start one with: easi llm-server" + ) + except requests.Timeout: + raise TimeoutError( + f"LLM server request timed out after {self.timeout}s" + ) + except requests.HTTPError as e: + raise RuntimeError(f"LLM server returned error: {e}") + + data = response.json() + choices = data.get("choices", []) + if not choices: + raise RuntimeError(f"LLM server returned no choices: {data}") + + content = choices[0].get("message", {}).get("content", "") + logger.debug("Response: %s", content[:100]) + return content diff --git a/easi/llm/dummy_server.py b/easi/llm/dummy_server.py new file mode 100644 index 0000000..30a44a9 --- /dev/null +++ b/easi/llm/dummy_server.py @@ -0,0 +1,155 @@ +"""Minimal dummy LLM server for testing. + +Implements OpenAI-compatible /v1/chat/completions endpoint using stdlib +http.server. Returns fixed or random actions. + +Usage: + python -m easi.llm.dummy_server --port 8000 --mode random + # or via CLI: + easi llm-server --port 8000 --mode random +""" + +from __future__ import annotations + +import argparse +import json +import logging +import random +from http.server import BaseHTTPRequestHandler, HTTPServer + +logger = logging.getLogger("easi.llm.dummy_server") + +DEFAULT_ACTION_SPACE = ["MoveAhead", "TurnLeft", "TurnRight", "Stop"] + + +class DummyLLMHandler(BaseHTTPRequestHandler): + """HTTP handler for the dummy LLM server.""" + + # Set by the server factory + mode: str = "random" + action_space: list[str] = DEFAULT_ACTION_SPACE + + def do_POST(self) -> None: + if self.path == "/v1/chat/completions": + self._handle_chat_completions() + else: + self.send_error(404, f"Not found: {self.path}") + + def do_GET(self) -> None: + if self.path == "/health": + self._send_json({"status": "ok"}) + else: + self.send_error(404, f"Not found: {self.path}") + + def _handle_chat_completions(self) -> None: + content_length = int(self.headers.get("Content-Length", 0)) + body = self.rfile.read(content_length) + + try: + request = json.loads(body) + except json.JSONDecodeError: + self.send_error(400, "Invalid JSON") + return + + # Generate response based on mode + if self.mode == "fixed": + action = self.action_space[0] if self.action_space else "MoveAhead" + else: # random + action = random.choice(self.action_space) + + response_text = f"I will take the following action.\nAction: {action}" + + response = { + "id": "dummy-001", + "object": "chat.completion", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": response_text, + }, + "finish_reason": "stop", + } + ], + "usage": { + "prompt_tokens": 0, + "completion_tokens": 0, + "total_tokens": 0, + }, + } + + self._send_json(response) + + def _send_json(self, data: dict) -> None: + body = json.dumps(data).encode("utf-8") + self.send_response(200) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(body))) + self.end_headers() + self.wfile.write(body) + + def log_message(self, format: str, *args) -> None: + logger.debug(format, *args) + + +def create_handler(mode: str, action_space: list[str]) -> type: + """Create a handler class with the given configuration.""" + + class ConfiguredHandler(DummyLLMHandler): + pass + + ConfiguredHandler.mode = mode + ConfiguredHandler.action_space = action_space + return ConfiguredHandler + + +def run_server( + host: str = "127.0.0.1", + port: int = 8000, + mode: str = "random", + action_space: list[str] | None = None, +) -> None: + """Start the dummy LLM server.""" + action_space = action_space or DEFAULT_ACTION_SPACE + handler_class = create_handler(mode, action_space) + + server = HTTPServer((host, port), handler_class) + logger.info("Dummy LLM server starting on %s:%d (mode=%s)", host, port, mode) + logger.info("Action space: %s", action_space) + print(f"Dummy LLM server running on http://{host}:{port}") + print(f"Mode: {mode}, Actions: {action_space}") + print("Press Ctrl+C to stop") + + try: + server.serve_forever() + except KeyboardInterrupt: + print("\nShutting down...") + finally: + server.server_close() + + +def main() -> None: + parser = argparse.ArgumentParser(description="Dummy LLM server") + parser.add_argument("--host", type=str, default="127.0.0.1") + parser.add_argument("--port", type=int, default=8000) + parser.add_argument("--mode", choices=["fixed", "random"], default="random") + parser.add_argument( + "--action-space", + type=str, + nargs="+", + default=DEFAULT_ACTION_SPACE, + ) + args = parser.parse_args() + + logging.basicConfig(level=logging.INFO) + run_server( + host=args.host, + port=args.port, + mode=args.mode, + action_space=args.action_space, + ) + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/__init__.py b/easi/simulators/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/ai2thor/__init__.py b/easi/simulators/ai2thor/__init__.py new file mode 100644 index 0000000..0dfa5a2 --- /dev/null +++ b/easi/simulators/ai2thor/__init__.py @@ -0,0 +1 @@ +"""AI2-THOR simulator package (multiple versions).""" diff --git a/easi/simulators/ai2thor/manifest.yaml b/easi/simulators/ai2thor/manifest.yaml new file mode 100644 index 0000000..ef2039b --- /dev/null +++ b/easi/simulators/ai2thor/manifest.yaml @@ -0,0 +1,14 @@ +name: ai2thor +display_name: "AI2-THOR" +default_version: "v5_0_0" +versions: + v2_1_0: + description: "AI2-THOR 2.1.0 — used by embodiedbench ALFRED track (legacy API)" + simulator_class: "easi.simulators.ai2thor.v2_1_0.simulator.AI2ThorSimulatorV210" + env_manager_class: "easi.simulators.ai2thor.v2_1_0.env_manager.AI2ThorEnvManagerV210" + python_version: "3.8" + v5_0_0: + description: "AI2-THOR 5.0.0 — latest version, modern API" + simulator_class: "easi.simulators.ai2thor.v5_0_0.simulator.AI2ThorSimulatorV500" + env_manager_class: "easi.simulators.ai2thor.v5_0_0.env_manager.AI2ThorEnvManagerV500" + python_version: "3.10" diff --git a/easi/simulators/ai2thor/v2_1_0/__init__.py b/easi/simulators/ai2thor/v2_1_0/__init__.py new file mode 100644 index 0000000..1b7fee8 --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/__init__.py @@ -0,0 +1,6 @@ +"""AI2-THOR v2.1.0 (legacy API for embodiedbench ALFRED).""" + +from easi.simulators.ai2thor.v2_1_0.env_manager import AI2ThorEnvManagerV210 +from easi.simulators.ai2thor.v2_1_0.simulator import AI2ThorSimulatorV210 + +__all__ = ["AI2ThorSimulatorV210", "AI2ThorEnvManagerV210"] diff --git a/easi/simulators/ai2thor/v2_1_0/bridge.py b/easi/simulators/ai2thor/v2_1_0/bridge.py new file mode 100644 index 0000000..a8a3ed7 --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/bridge.py @@ -0,0 +1,116 @@ +"""Bridge subprocess for AI2-THOR v2.1.0 (legacy API). + +This script runs inside the ai2thor v2.1.0 conda environment. +It communicates with the parent via filesystem IPC. + +NOTE: This is a stub. The actual AI2-THOR interaction will be implemented +when integrating with embodiedbench. The structure demonstrates how a real +bridge would work. + +Usage: + python bridge.py --workspace /tmp/easi_xxx +""" + +from __future__ import annotations + +import argparse +import logging +import sys +from pathlib import Path + +# Add repo root to path for easi imports +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, + parse_action_from_command, +) + +logger = logging.getLogger("easi.bridge.ai2thor_v2_1_0") + + +def run_bridge(workspace: Path) -> None: + """Main bridge loop for AI2-THOR v2.1.0.""" + logger.info("AI2-THOR v2.1.0 bridge starting (workspace: %s)", workspace) + + # In a real implementation: + # from ai2thor.controller import Controller + # controller = Controller(scene="FloorPlan28", gridSize=0.25) + + write_status(workspace, ready=True) + + step_count = 0 + + while True: + try: + command = poll_for_command(workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + reset_config = command.get("reset_config", {}) + logger.info("Reset: episode_id=%s, scene=%s", episode_id, reset_config.get("scene", "?")) + + # Stub: In real impl, would call controller.reset(scene=...) + step_count = 0 + + response = make_observation_response( + rgb_path=str(workspace / "rgb_0000.png"), + agent_pose=[0.0, 0.9, 0.0, 0.0, 0.0, 0.0], + metadata={"episode_id": episode_id, "step": "0", "scene": reset_config.get("scene", "unknown")}, + ) + # Stub: write a placeholder image + (workspace / "rgb_0000.png").write_bytes(b"STUB_IMAGE") + write_response(workspace, response) + + elif cmd_type == "step": + step_count += 1 + action = parse_action_from_command(command) + logger.debug("Step %d: action=%s", step_count, action.action_name) + + # Stub: In real impl, would call controller.step(action=action_name, **params) + + rgb_name = f"rgb_{step_count:04d}.png" + (workspace / rgb_name).write_bytes(b"STUB_IMAGE") + + response = make_observation_response( + rgb_path=str(workspace / rgb_name), + agent_pose=[float(step_count) * 0.25, 0.9, 0.0, 0.0, 0.0, 0.0], + metadata={"step": str(step_count)}, + done=action.action_name == "Stop", + ) + write_response(workspace, response) + + elif cmd_type == "close": + logger.info("Close command received") + # Stub: controller.stop() would go here + write_response(workspace, {"status": "ok"}) + break + + else: + write_response(workspace, make_error_response(f"Unknown command: {cmd_type}")) + + +def main() -> None: + parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge") + parser.add_argument("--workspace", type=Path, required=True) + args = parser.parse_args() + + logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s") + run_bridge(workspace=args.workspace) + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/ai2thor/v2_1_0/conda_env.yaml b/easi/simulators/ai2thor/v2_1_0/conda_env.yaml new file mode 100644 index 0000000..6105ae8 --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/conda_env.yaml @@ -0,0 +1,6 @@ +name: easi_ai2thor_v2_1_0 +channels: + - conda-forge + - defaults +dependencies: + - python=3.8 diff --git a/easi/simulators/ai2thor/v2_1_0/env_manager.py b/easi/simulators/ai2thor/v2_1_0/env_manager.py new file mode 100644 index 0000000..aef6e4a --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/env_manager.py @@ -0,0 +1,38 @@ +"""Environment manager for AI2-THOR v2.1.0 (legacy API). + +Used by embodiedbench ALFRED track. Requires Python 3.8 and Xvfb. +""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class AI2ThorEnvManagerV210(BaseEnvironmentManager): + """Environment manager for AI2-THOR 2.1.0.""" + + @property + def simulator_name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v2_1_0" + + @property + def needs_display(self) -> bool: + return True # AI2-THOR Unity requires X11 + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb"] + + def get_validation_import(self) -> str: + return "import ai2thor; assert ai2thor.__version__.startswith('2.1')" diff --git a/easi/simulators/ai2thor/v2_1_0/requirements.txt b/easi/simulators/ai2thor/v2_1_0/requirements.txt new file mode 100644 index 0000000..a482c8d --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/requirements.txt @@ -0,0 +1,3 @@ +ai2thor==2.1.0 +numpy<1.24 +Pillow diff --git a/easi/simulators/ai2thor/v2_1_0/simulator.py b/easi/simulators/ai2thor/v2_1_0/simulator.py new file mode 100644 index 0000000..622ab88 --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/simulator.py @@ -0,0 +1,25 @@ +"""AI2-THOR v2.1.0 simulator (legacy API). + +Stub implementation — the bridge.py handles the actual AI2-THOR interaction. +""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class AI2ThorSimulatorV210(BaseSimulator): + """AI2-THOR 2.1.0 simulator for embodiedbench ALFRED track.""" + + @property + def name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v2_1_0" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/easi/simulators/ai2thor/v5_0_0/__init__.py b/easi/simulators/ai2thor/v5_0_0/__init__.py new file mode 100644 index 0000000..4ed8307 --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/__init__.py @@ -0,0 +1,6 @@ +"""AI2-THOR v5.0.0 (modern API).""" + +from easi.simulators.ai2thor.v5_0_0.env_manager import AI2ThorEnvManagerV500 +from easi.simulators.ai2thor.v5_0_0.simulator import AI2ThorSimulatorV500 + +__all__ = ["AI2ThorSimulatorV500", "AI2ThorEnvManagerV500"] diff --git a/easi/simulators/ai2thor/v5_0_0/bridge.py b/easi/simulators/ai2thor/v5_0_0/bridge.py new file mode 100644 index 0000000..73acd0f --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/bridge.py @@ -0,0 +1,122 @@ +"""Bridge subprocess for AI2-THOR v5.0.0 (modern API). + +This script runs inside the ai2thor v5.0.0 conda environment. +The v5 API is significantly different from v2.1.0. + +NOTE: This is a stub. Structure demonstrates how a real bridge works. + +Usage: + python bridge.py --workspace /tmp/easi_xxx +""" + +from __future__ import annotations + +import argparse +import logging +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, + parse_action_from_command, +) + +logger = logging.getLogger("easi.bridge.ai2thor_v5_0_0") + + +def run_bridge(workspace: Path) -> None: + """Main bridge loop for AI2-THOR v5.0.0.""" + logger.info("AI2-THOR v5.0.0 bridge starting (workspace: %s)", workspace) + + # In a real implementation: + # from ai2thor.controller import Controller + # controller = Controller(width=1280, height=720, renderDepthImage=True) + + write_status(workspace, ready=True) + + step_count = 0 + + while True: + try: + command = poll_for_command(workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + reset_config = command.get("reset_config", {}) + logger.info("Reset: episode_id=%s", episode_id) + + # Stub: controller.reset(scene=scene_id) + # v5 API: controller.step(action="Initialize", ...) + step_count = 0 + + rgb_path = workspace / "rgb_0000.png" + depth_path = workspace / "depth_0000.png" + rgb_path.write_bytes(b"STUB_IMAGE") + depth_path.write_bytes(b"STUB_DEPTH") + + response = make_observation_response( + rgb_path=str(rgb_path), + depth_path=str(depth_path), + agent_pose=[0.0, 0.9, 0.0, 0.0, 0.0, 0.0], + metadata={"episode_id": episode_id, "step": "0"}, + ) + write_response(workspace, response) + + elif cmd_type == "step": + step_count += 1 + action = parse_action_from_command(command) + logger.debug("Step %d: action=%s", step_count, action.action_name) + + # Stub: event = controller.step(action=action_name, **params) + # v5 API returns event with frame, depth, metadata + + rgb_name = f"rgb_{step_count:04d}.png" + depth_name = f"depth_{step_count:04d}.png" + (workspace / rgb_name).write_bytes(b"STUB_IMAGE") + (workspace / depth_name).write_bytes(b"STUB_DEPTH") + + response = make_observation_response( + rgb_path=str(workspace / rgb_name), + depth_path=str(workspace / depth_name), + agent_pose=[float(step_count) * 0.25, 0.9, 0.0, 0.0, 0.0, 0.0], + metadata={"step": str(step_count)}, + done=action.action_name == "Stop", + ) + write_response(workspace, response) + + elif cmd_type == "close": + logger.info("Close command received") + # Stub: controller.stop() + write_response(workspace, {"status": "ok"}) + break + + else: + write_response(workspace, make_error_response(f"Unknown command: {cmd_type}")) + + +def main() -> None: + parser = argparse.ArgumentParser(description="AI2-THOR v5.0.0 bridge") + parser.add_argument("--workspace", type=Path, required=True) + args = parser.parse_args() + + logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s") + run_bridge(workspace=args.workspace) + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/ai2thor/v5_0_0/conda_env.yaml b/easi/simulators/ai2thor/v5_0_0/conda_env.yaml new file mode 100644 index 0000000..6786309 --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/conda_env.yaml @@ -0,0 +1,6 @@ +name: easi_ai2thor_v5_0_0 +channels: + - conda-forge + - defaults +dependencies: + - python=3.10 diff --git a/easi/simulators/ai2thor/v5_0_0/env_manager.py b/easi/simulators/ai2thor/v5_0_0/env_manager.py new file mode 100644 index 0000000..c85e609 --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/env_manager.py @@ -0,0 +1,39 @@ +"""Environment manager for AI2-THOR v5.0.0 (modern API).""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class AI2ThorEnvManagerV500(BaseEnvironmentManager): + """Environment manager for AI2-THOR 5.0.0.""" + + @property + def simulator_name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v5_0_0" + + @property + def needs_display(self) -> bool: + return True # AI2-THOR Unity requires X11 + + @property + def xvfb_screen_config(self) -> str: + return "1280x720x24" # v5 supports higher resolution + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb"] + + def get_validation_import(self) -> str: + return "import ai2thor; assert ai2thor.__version__.startswith('5.')" diff --git a/easi/simulators/ai2thor/v5_0_0/requirements.txt b/easi/simulators/ai2thor/v5_0_0/requirements.txt new file mode 100644 index 0000000..7a6f2b1 --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/requirements.txt @@ -0,0 +1,3 @@ +ai2thor>=5.0.0,<6.0.0 +numpy>=1.24 +Pillow>=10.0 diff --git a/easi/simulators/ai2thor/v5_0_0/simulator.py b/easi/simulators/ai2thor/v5_0_0/simulator.py new file mode 100644 index 0000000..e78ddc4 --- /dev/null +++ b/easi/simulators/ai2thor/v5_0_0/simulator.py @@ -0,0 +1,22 @@ +"""AI2-THOR v5.0.0 simulator (modern API).""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class AI2ThorSimulatorV500(BaseSimulator): + """AI2-THOR 5.0.0 simulator with modern API.""" + + @property + def name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v5_0_0" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/easi/simulators/dummy/__init__.py b/easi/simulators/dummy/__init__.py new file mode 100644 index 0000000..6e85b9a --- /dev/null +++ b/easi/simulators/dummy/__init__.py @@ -0,0 +1 @@ +"""Dummy simulator package.""" diff --git a/easi/simulators/dummy/manifest.yaml b/easi/simulators/dummy/manifest.yaml new file mode 100644 index 0000000..47bcc61 --- /dev/null +++ b/easi/simulators/dummy/manifest.yaml @@ -0,0 +1,9 @@ +name: dummy +display_name: "Dummy Simulator" +default_version: "v1" +versions: + v1: + description: "Dummy simulator for testing the pipeline end-to-end" + simulator_class: "easi.simulators.dummy.v1.simulator.DummySimulator" + env_manager_class: "easi.simulators.dummy.v1.env_manager.DummyEnvManager" + python_version: "3.10" diff --git a/easi/simulators/dummy/v1/__init__.py b/easi/simulators/dummy/v1/__init__.py new file mode 100644 index 0000000..f4da707 --- /dev/null +++ b/easi/simulators/dummy/v1/__init__.py @@ -0,0 +1,6 @@ +"""Dummy simulator v1.""" + +from easi.simulators.dummy.v1.env_manager import DummyEnvManager +from easi.simulators.dummy.v1.simulator import DummySimulator + +__all__ = ["DummySimulator", "DummyEnvManager"] diff --git a/easi/simulators/dummy/v1/bridge.py b/easi/simulators/dummy/v1/bridge.py new file mode 100644 index 0000000..ef9e7a3 --- /dev/null +++ b/easi/simulators/dummy/v1/bridge.py @@ -0,0 +1,166 @@ +"""Bridge subprocess for the dummy simulator. + +This script is launched by SubprocessRunner in a separate process. +It communicates with the parent via filesystem IPC (command.json / response.json). + +The dummy simulator generates placeholder RGB images and responds to +reset/step/close commands with configurable delay. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--step-delay 0.1] +""" + +from __future__ import annotations + +import argparse +import logging +import sys +import time +from pathlib import Path + +# Add the repo root to sys.path so we can import easi modules +# This is needed when the bridge runs in a separate conda env +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, + parse_action_from_command, +) + +logger = logging.getLogger("easi.bridge.dummy") + + +def _generate_dummy_image(workspace: Path, step: int) -> str: + """Generate a small placeholder PNG image. + + Creates a minimal valid PNG file (1x1 pixel, red) to simulate + an observation image without requiring Pillow. + """ + rgb_path = workspace / f"rgb_{step:04d}.png" + + # Minimal valid 1x1 red PNG (67 bytes) + # This avoids requiring Pillow in the dummy simulator + import struct + import zlib + + def _create_minimal_png(width: int = 8, height: int = 8) -> bytes: + """Create a minimal valid PNG with a solid color.""" + + def _chunk(chunk_type: bytes, data: bytes) -> bytes: + c = chunk_type + data + crc = zlib.crc32(c) & 0xFFFFFFFF + return struct.pack(">I", len(data)) + c + struct.pack(">I", crc) + + header = b"\x89PNG\r\n\x1a\n" + ihdr = _chunk(b"IHDR", struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0)) + + # Generate raw pixel data (red-ish gradient based on step) + r = (step * 37) % 256 + g = (step * 73) % 256 + b = (step * 113) % 256 + raw_data = b"" + for _ in range(height): + raw_data += b"\x00" # filter byte + raw_data += bytes([r, g, b]) * width + + idat = _chunk(b"IDAT", zlib.compress(raw_data)) + iend = _chunk(b"IEND", b"") + + return header + ihdr + idat + iend + + rgb_path.write_bytes(_create_minimal_png()) + return str(rgb_path) + + +def run_bridge(workspace: Path, step_delay: float = 0.0) -> None: + """Main bridge loop: read commands, process them, write responses.""" + logger.info("Dummy bridge starting (workspace: %s, step_delay: %.2f)", workspace, step_delay) + + # Signal readiness + write_status(workspace, ready=True) + + step_count = 0 + + while True: + try: + command = poll_for_command(workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + logger.info("Reset: episode_id=%s", episode_id) + + if step_delay > 0: + time.sleep(step_delay) + + step_count = 0 + rgb_path = _generate_dummy_image(workspace, step_count) + + response = make_observation_response( + rgb_path=rgb_path, + agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={"episode_id": episode_id, "step": "0"}, + ) + write_response(workspace, response) + + elif cmd_type == "step": + step_count += 1 + action = parse_action_from_command(command) + logger.debug("Step %d: action=%s", step_count, action.action_name) + + if step_delay > 0: + time.sleep(step_delay) + + rgb_path = _generate_dummy_image(workspace, step_count) + + # Dummy: done after 10 steps or on Stop action + done = step_count >= 10 or action.action_name == "Stop" + + response = make_observation_response( + rgb_path=rgb_path, + agent_pose=[float(step_count), 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={"step": str(step_count)}, + reward=1.0 if done else 0.0, + done=done, + ) + write_response(workspace, response) + + elif cmd_type == "close": + logger.info("Close command received, shutting down") + write_response(workspace, {"status": "ok"}) + break + + else: + logger.warning("Unknown command type: %s", cmd_type) + write_response(workspace, make_error_response(f"Unknown command: {cmd_type}")) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Dummy simulator bridge") + parser.add_argument("--workspace", type=Path, required=True, help="IPC workspace directory") + parser.add_argument("--step-delay", type=float, default=0.0, help="Delay per step in seconds") + args = parser.parse_args() + + logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", + datefmt="%H:%M:%S", + ) + + run_bridge(workspace=args.workspace, step_delay=args.step_delay) + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/dummy/v1/conda_env.yaml b/easi/simulators/dummy/v1/conda_env.yaml new file mode 100644 index 0000000..43106c8 --- /dev/null +++ b/easi/simulators/dummy/v1/conda_env.yaml @@ -0,0 +1,5 @@ +name: easi_dummy_v1 +channels: + - conda-forge +dependencies: + - python=3.10 diff --git a/easi/simulators/dummy/v1/env_manager.py b/easi/simulators/dummy/v1/env_manager.py new file mode 100644 index 0000000..89915fa --- /dev/null +++ b/easi/simulators/dummy/v1/env_manager.py @@ -0,0 +1,48 @@ +"""Environment manager for the dummy simulator. + +The dummy simulator runs in the host Python environment and has no +real dependencies, making it useful for testing the full pipeline. +""" + +from __future__ import annotations + +import sys +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class DummyEnvManager(BaseEnvironmentManager): + """Environment manager for the dummy simulator (no real deps).""" + + @property + def simulator_name(self) -> str: + return "dummy" + + @property + def version(self) -> str: + return "v1" + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return [] # no system deps needed + + def get_validation_import(self) -> str: + return "import json; print('dummy env ok')" + + def get_python_executable(self) -> str: + """Use the current Python interpreter (no conda env needed for dummy).""" + return sys.executable + + def env_is_ready(self) -> bool: + """Dummy env is always ready (uses host Python).""" + return True + + def install(self) -> None: + """No-op for dummy simulator.""" + pass diff --git a/easi/simulators/dummy/v1/requirements.txt b/easi/simulators/dummy/v1/requirements.txt new file mode 100644 index 0000000..d808e03 --- /dev/null +++ b/easi/simulators/dummy/v1/requirements.txt @@ -0,0 +1,2 @@ +# Dummy simulator has no extra Python dependencies +# This file exists to satisfy the BaseEnvironmentManager interface diff --git a/easi/simulators/dummy/v1/simulator.py b/easi/simulators/dummy/v1/simulator.py new file mode 100644 index 0000000..385de3e --- /dev/null +++ b/easi/simulators/dummy/v1/simulator.py @@ -0,0 +1,26 @@ +"""Dummy simulator implementation. + +A simple simulator for testing the full pipeline end-to-end without +requiring any real simulator dependencies. +""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class DummySimulator(BaseSimulator): + """Dummy simulator that generates placeholder observations.""" + + @property + def name(self) -> str: + return "dummy" + + @property + def version(self) -> str: + return "v1" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py new file mode 100644 index 0000000..5a9f40a --- /dev/null +++ b/easi/simulators/registry.py @@ -0,0 +1,136 @@ +"""Simulator registry with manifest-based auto-discovery. + +Scans easi/simulators/*/manifest.yaml at import time to discover available +simulators and their versions. + +Lookup semantics: +- get_simulator("ai2thor") → resolves to default version +- get_simulator("ai2thor:v2_1_0") → resolves to explicit version +- list_simulators() → all registered keys +""" + +from __future__ import annotations + +import importlib +import logging +from dataclasses import dataclass +from pathlib import Path + +import yaml + +logger = logging.getLogger("easi.simulators.registry") + + +@dataclass +class SimulatorEntry: + """Registry entry for a simulator version.""" + + name: str + version: str + description: str + simulator_class: str # fully qualified class name + env_manager_class: str # fully qualified class name + python_version: str + + +# Module-level registry populated on first access +_registry: dict[str, SimulatorEntry] | None = None + + +def _discover_simulators() -> dict[str, SimulatorEntry]: + """Scan simulator directories for manifest.yaml files.""" + simulators_dir = Path(__file__).parent + entries: dict[str, SimulatorEntry] = {} + + for manifest_path in sorted(simulators_dir.glob("*/manifest.yaml")): + try: + manifest = yaml.safe_load(manifest_path.read_text()) + except Exception as e: + logger.warning("Failed to load %s: %s", manifest_path, e) + continue + + sim_name = manifest["name"] + default_ver = manifest.get("default_version") + + for ver_key, ver_info in manifest.get("versions", {}).items(): + entry = SimulatorEntry( + name=sim_name, + version=ver_key, + description=ver_info.get("description", ""), + simulator_class=ver_info["simulator_class"], + env_manager_class=ver_info["env_manager_class"], + python_version=ver_info.get("python_version", "3.10"), + ) + + # Register with explicit key: "ai2thor:v2_1_0" + full_key = f"{sim_name}:{ver_key}" + entries[full_key] = entry + + # Register default alias: "ai2thor" + if ver_key == default_ver: + entries[sim_name] = entry + + logger.debug( + "Discovered simulator %s with versions: %s (default: %s)", + sim_name, + list(manifest.get("versions", {}).keys()), + default_ver, + ) + + return entries + + +def _get_registry() -> dict[str, SimulatorEntry]: + """Get the simulator registry, discovering on first access.""" + global _registry + if _registry is None: + _registry = _discover_simulators() + return _registry + + +def get_simulator_entry(key: str) -> SimulatorEntry: + """Look up a simulator entry by key. + + Args: + key: Either "name" (uses default version) or "name:version" (explicit). + + Raises: + KeyError: If the simulator is not found. + """ + registry = _get_registry() + if key not in registry: + available = list_simulators() + raise KeyError( + f"Simulator '{key}' not found. Available: {available}" + ) + return registry[key] + + +def list_simulators() -> list[str]: + """List all registered simulator keys.""" + return sorted(_get_registry().keys()) + + +def load_simulator_class(key: str): + """Import and return the simulator class for the given key.""" + entry = get_simulator_entry(key) + return _import_class(entry.simulator_class) + + +def load_env_manager_class(key: str): + """Import and return the env manager class for the given key.""" + entry = get_simulator_entry(key) + return _import_class(entry.env_manager_class) + + +def _import_class(fully_qualified_name: str): + """Import a class from its fully qualified name (e.g., 'pkg.mod.ClassName').""" + module_path, class_name = fully_qualified_name.rsplit(".", 1) + module = importlib.import_module(module_path) + return getattr(module, class_name) + + +def refresh() -> None: + """Force re-discovery of simulators (useful after adding new ones at runtime).""" + global _registry + _registry = None diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py new file mode 100644 index 0000000..26962f2 --- /dev/null +++ b/easi/simulators/subprocess_runner.py @@ -0,0 +1,199 @@ +"""Subprocess lifecycle manager for bridge processes. + +Manages the full lifecycle of a simulator bridge subprocess: +- Launch: Spawns the bridge in a new process group (for clean shutdown) +- Health check: Polls status.json with configurable timeout +- Send command: Writes command.json, polls response.json +- Crash recovery: Detects subprocess exit during polling +- Cleanup: SIGTERM → wait → SIGKILL the entire process group; removes temp workspace + +Supports xvfb-run wrapping for simulators that need a display. +""" + +from __future__ import annotations + +import logging +import os +import signal +import subprocess +from pathlib import Path + +from easi.communication.filesystem import ( + cleanup_workspace, + create_workspace, + poll_for_response, + poll_for_status, + write_command, +) +from easi.core.exceptions import SimulatorError, SimulatorTimeoutError + +logger = logging.getLogger("easi.simulators.subprocess_runner") + + +class SubprocessRunner: + """Manages a bridge subprocess for a single simulator instance.""" + + def __init__( + self, + python_executable: str, + bridge_script_path: Path, + needs_display: bool = False, + xvfb_screen_config: str = "1024x768x24", + startup_timeout: float = 30.0, + command_timeout: float = 60.0, + poll_interval: float = 0.1, + ): + self.python_executable = python_executable + self.bridge_script_path = bridge_script_path + self.needs_display = needs_display + self.xvfb_screen_config = xvfb_screen_config + self.startup_timeout = startup_timeout + self.command_timeout = command_timeout + self.poll_interval = poll_interval + + self._process: subprocess.Popen | None = None + self._workspace: Path | None = None + + @property + def workspace(self) -> Path | None: + """The IPC workspace directory for this runner.""" + return self._workspace + + def launch(self) -> None: + """Launch the bridge subprocess and wait for it to report ready.""" + if self._process is not None: + raise RuntimeError("Subprocess already running") + + self._workspace = create_workspace() + cmd = self._build_launch_command() + + logger.info( + "Launching bridge: %s (workspace: %s)", + self.bridge_script_path.name, + self._workspace, + ) + logger.debug("Full command: %s", " ".join(cmd)) + + self._process = subprocess.Popen( + cmd, + preexec_fn=os.setsid, # new session = new process group + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + # Wait for the bridge to signal readiness + try: + status = poll_for_status( + self._workspace, + poll_interval=self.poll_interval, + timeout=self.startup_timeout, + process=self._process, + ) + if not status.get("ready", False): + stderr = self._read_stderr() + raise SimulatorError( + f"Bridge reported not ready. stderr:\n{stderr}" + ) + logger.info("Bridge subprocess ready (PID: %d)", self._process.pid) + except (SimulatorError, SimulatorTimeoutError): + self.shutdown() + raise + + def send_command(self, command: dict, timeout: float | None = None) -> dict: + """Send a command to the bridge and wait for the response. + + Args: + command: The command dict to send. + timeout: Override the default command timeout. + + Returns: + The response dict from the bridge. + """ + if self._process is None or self._workspace is None: + raise RuntimeError("Subprocess not running") + + write_command(self._workspace, command) + + return poll_for_response( + self._workspace, + poll_interval=self.poll_interval, + timeout=timeout or self.command_timeout, + process=self._process, + ) + + def is_alive(self) -> bool: + """Check if the bridge subprocess is still running.""" + if self._process is None: + return False + return self._process.poll() is None + + def shutdown(self) -> None: + """Shut down the bridge subprocess and clean up. + + Kills the entire process group (bridge + any child processes like + Unity binaries) to prevent zombie processes. + """ + self._terminate_process_tree() + self._process = None + + if self._workspace is not None: + cleanup_workspace(self._workspace) + self._workspace = None + + def _build_launch_command(self) -> list[str]: + """Build the command to launch the bridge subprocess.""" + cmd = [ + self.python_executable, + str(self.bridge_script_path), + "--workspace", + str(self._workspace), + ] + + if self.needs_display and not self._has_display(): + # Wrap with xvfb-run for headless environments + cmd = [ + "xvfb-run", "-a", + "-s", f"-screen 0 {self.xvfb_screen_config}", + ] + cmd + + return cmd + + def _has_display(self) -> bool: + """Check if a real display is available.""" + display = os.environ.get("DISPLAY", "") + return bool(display) and not display.startswith(":") + + def _terminate_process_tree(self) -> None: + """Kill the bridge and ALL its child processes.""" + if self._process is None: + return + + try: + pgid = os.getpgid(self._process.pid) + except ProcessLookupError: + return # already dead + + try: + # SIGTERM the entire group first (graceful) + os.killpg(pgid, signal.SIGTERM) + self._process.wait(timeout=10) + except subprocess.TimeoutExpired: + # SIGKILL the entire group (force) + try: + os.killpg(pgid, signal.SIGKILL) + self._process.wait(timeout=5) + except (ProcessLookupError, subprocess.TimeoutExpired): + pass + except ProcessLookupError: + pass # already dead + + logger.debug("Process tree terminated") + + def _read_stderr(self) -> str: + """Read stderr from the subprocess (non-blocking).""" + if self._process is None or self._process.stderr is None: + return "" + try: + return self._process.stderr.read().decode("utf-8", errors="replace") + except Exception: + return "" diff --git a/easi/tasks/__init__.py b/easi/tasks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/dataset.py b/easi/tasks/dataset.py new file mode 100644 index 0000000..af7430a --- /dev/null +++ b/easi/tasks/dataset.py @@ -0,0 +1,95 @@ +"""Dataset downloader supporting local paths and HuggingFace Hub. + +Used by BaseTask.download_dataset() but also available standalone. +""" + +from __future__ import annotations + +import logging +from pathlib import Path + +from easi.core.exceptions import DatasetError +from easi.utils.locking import file_lock +from easi.utils.paths import get_datasets_dir, get_locks_dir + +logger = logging.getLogger("easi.tasks.dataset") + + +class DatasetDownloader: + """Handles dataset acquisition from local paths and HuggingFace.""" + + def __init__(self, cache_dir: Path | None = None): + self.cache_dir = cache_dir or get_datasets_dir() + + def download(self, config: dict) -> Path: + """Download or resolve a dataset given a config block from task.yaml. + + Args: + config: Dataset config dict, e.g.: + {"source": "local", "path": "/data/episodes"} + {"source": "huggingface", "repo_id": "org/dataset", "split": "val"} + + Returns: + Path to the local dataset directory. + """ + source = config.get("source", "local") + + if source == "local": + return self._resolve_local(config) + elif source == "huggingface": + return self._download_huggingface(config) + else: + raise DatasetError(f"Unknown dataset source: {source}") + + def _resolve_local(self, config: dict) -> Path: + """Validate local path exists and return it.""" + path = config.get("path") + if path is None: + return Path() # no path = built-in episodes + + local_path = Path(path) + if not local_path.exists(): + raise DatasetError(f"Local dataset path does not exist: {local_path}") + + logger.info("Using local dataset: %s", local_path) + return local_path + + def _download_huggingface(self, config: dict) -> Path: + """Download from HuggingFace Hub with file-based locking. + + Uses fcntl.flock to prevent concurrent downloads of the same dataset. + """ + repo_id = config["repo_id"] + lock_name = f"dataset_{repo_id.replace('/', '_')}.lock" + lock_path = get_locks_dir() / lock_name + + with file_lock(lock_path): + target = self.cache_dir / repo_id.replace("/", "_") + if target.exists(): + logger.info("Dataset %s already cached at %s", repo_id, target) + return target + + try: + from huggingface_hub import snapshot_download + except ImportError: + raise DatasetError( + f"huggingface_hub is required to download '{repo_id}'. " + f"Install with: pip install huggingface_hub" + ) + + logger.info("Downloading dataset %s from HuggingFace...", repo_id) + try: + snapshot_download( + repo_id=repo_id, + local_dir=str(target), + repo_type="dataset", + ) + except Exception as e: + # Clean up partial download + if target.exists(): + import shutil + shutil.rmtree(target, ignore_errors=True) + raise DatasetError(f"Failed to download {repo_id}: {e}") + + logger.info("Downloaded dataset %s to %s", repo_id, target) + return target diff --git a/easi/tasks/dummy_task/__init__.py b/easi/tasks/dummy_task/__init__.py new file mode 100644 index 0000000..686e138 --- /dev/null +++ b/easi/tasks/dummy_task/__init__.py @@ -0,0 +1,5 @@ +"""Dummy task package.""" + +from easi.tasks.dummy_task.task import DummyTask + +__all__ = ["DummyTask"] diff --git a/easi/tasks/dummy_task/task.py b/easi/tasks/dummy_task/task.py new file mode 100644 index 0000000..8030304 --- /dev/null +++ b/easi/tasks/dummy_task/task.py @@ -0,0 +1,76 @@ +"""Dummy task for testing the pipeline end-to-end. + +Provides built-in episodes that require no dataset download. +Evaluates success based on whether the agent sent a Stop action. +""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult + + +class DummyTask(BaseTask): + """A dummy task for testing the evaluation pipeline.""" + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "task.yaml" + + def format_reset_config(self, episode: dict) -> dict: + """Map a dummy episode to simulator reset config. + + The dummy simulator doesn't need much — just pass through the scene_id. + """ + return { + "scene_id": episode.get("scene_id", "dummy_scene"), + "agent_position": episode.get("start_position", [0.0, 0.0, 0.0]), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Evaluate a completed episode. + + Success criteria: agent sent Stop action within max_steps, OR + the simulator reported done=True in the last step. + """ + if not trajectory: + return {"success": 0.0, "num_steps": 0.0} + + last_step = trajectory[-1] + success = 1.0 if last_step.done else 0.0 + total_reward = sum(step.reward for step in trajectory) + + return { + "success": success, + "num_steps": float(len(trajectory)), + "total_reward": total_reward, + } + + def _get_builtin_episodes(self) -> list[dict]: + """Return built-in dummy episodes for testing.""" + return [ + { + "episode_id": "dummy_ep_001", + "scene_id": "dummy_scene_A", + "start_position": [0.0, 0.0, 0.0], + "goal_position": [5.0, 0.0, 0.0], + "task_description": "Navigate to the goal position.", + }, + { + "episode_id": "dummy_ep_002", + "scene_id": "dummy_scene_B", + "start_position": [1.0, 0.0, 1.0], + "goal_position": [3.0, 0.0, -2.0], + "task_description": "Find and go to the red cube.", + }, + { + "episode_id": "dummy_ep_003", + "scene_id": "dummy_scene_A", + "start_position": [2.0, 0.0, -1.0], + "goal_position": [0.0, 0.0, 0.0], + "task_description": "Return to the starting area.", + }, + ] diff --git a/easi/tasks/dummy_task/task.yaml b/easi/tasks/dummy_task/task.yaml new file mode 100644 index 0000000..206ff3b --- /dev/null +++ b/easi/tasks/dummy_task/task.yaml @@ -0,0 +1,24 @@ +name: dummy_task +display_name: "Dummy Navigation Task" +description: "A dummy task for testing the pipeline end-to-end" + +# Pin to a specific versioned simulator +simulator: "dummy:v1" + +# Action space available to the agent +action_space: + - MoveAhead + - TurnLeft + - TurnRight + - Stop + +# Dataset source +dataset: + source: "local" + path: null # null = use built-in dummy episodes + +# Episode limits +max_steps: 100 + +# Task class to load +task_class: "easi.tasks.dummy_task.task.DummyTask" diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py new file mode 100644 index 0000000..0ed10a7 --- /dev/null +++ b/easi/tasks/registry.py @@ -0,0 +1,112 @@ +"""Task registry with auto-discovery from task.yaml files. + +Scans easi/tasks/*/task.yaml to discover available tasks (benchmarks). + +Usage: + list_tasks() → ["dummy_task", "objectnav_hm3d", ...] + get_task_entry("dummy_task") → TaskEntry(...) + load_task_class("dummy_task") → DummyTask class +""" + +from __future__ import annotations + +import importlib +import logging +from dataclasses import dataclass +from pathlib import Path + +import yaml + +logger = logging.getLogger("easi.tasks.registry") + + +@dataclass +class TaskEntry: + """Registry entry for a task.""" + + name: str + display_name: str + description: str + simulator_key: str + task_class: str # fully qualified class name + action_space: list[str] + max_steps: int + config_path: Path + + +# Module-level registry populated on first access +_registry: dict[str, TaskEntry] | None = None + + +def _discover_tasks() -> dict[str, TaskEntry]: + """Scan task directories for task.yaml files.""" + tasks_dir = Path(__file__).parent + entries: dict[str, TaskEntry] = {} + + for task_yaml_path in sorted(tasks_dir.glob("*/task.yaml")): + try: + config = yaml.safe_load(task_yaml_path.read_text()) + except Exception as e: + logger.warning("Failed to load %s: %s", task_yaml_path, e) + continue + + name = config["name"] + entries[name] = TaskEntry( + name=name, + display_name=config.get("display_name", name), + description=config.get("description", ""), + simulator_key=config["simulator"], + task_class=config["task_class"], + action_space=config.get("action_space", []), + max_steps=config.get("max_steps", 500), + config_path=task_yaml_path, + ) + + logger.debug("Discovered task: %s (simulator: %s)", name, config["simulator"]) + + return entries + + +def _get_registry() -> dict[str, TaskEntry]: + """Get the task registry, discovering on first access.""" + global _registry + if _registry is None: + _registry = _discover_tasks() + return _registry + + +def get_task_entry(name: str) -> TaskEntry: + """Look up a task entry by name. + + Raises: + KeyError: If the task is not found. + """ + registry = _get_registry() + if name not in registry: + available = list_tasks() + raise KeyError(f"Task '{name}' not found. Available: {available}") + return registry[name] + + +def list_tasks() -> list[str]: + """List all registered task names.""" + return sorted(_get_registry().keys()) + + +def load_task_class(name: str): + """Import and return the task class for the given name.""" + entry = get_task_entry(name) + return _import_class(entry.task_class) + + +def _import_class(fully_qualified_name: str): + """Import a class from its fully qualified name.""" + module_path, class_name = fully_qualified_name.rsplit(".", 1) + module = importlib.import_module(module_path) + return getattr(module, class_name) + + +def refresh() -> None: + """Force re-discovery of tasks.""" + global _registry + _registry = None diff --git a/easi/utils/__init__.py b/easi/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/utils/locking.py b/easi/utils/locking.py new file mode 100644 index 0000000..d482e45 --- /dev/null +++ b/easi/utils/locking.py @@ -0,0 +1,42 @@ +"""File-based locking for serializing concurrent operations. + +Used to prevent race conditions when multiple EASI processes try to: +- Install the same conda environment simultaneously +- Download the same dataset simultaneously +""" + +from __future__ import annotations + +import fcntl +import logging +from contextlib import contextmanager +from pathlib import Path +from typing import Generator + +logger = logging.getLogger("easi.utils.locking") + + +@contextmanager +def file_lock(lock_path: Path) -> Generator[None, None, None]: + """Acquire an exclusive file lock, blocking until available. + + Args: + lock_path: Path to the lock file. Parent directories are created automatically. + + Usage:: + + with file_lock(Path("~/.cache/easi/locks/env_install.lock")): + # only one process at a time can execute this block + install_conda_env() + """ + lock_path.parent.mkdir(parents=True, exist_ok=True) + logger.debug("Acquiring lock: %s", lock_path) + + with open(lock_path, "w") as f: + fcntl.flock(f, fcntl.LOCK_EX) + try: + logger.debug("Lock acquired: %s", lock_path) + yield + finally: + fcntl.flock(f, fcntl.LOCK_UN) + logger.debug("Lock released: %s", lock_path) diff --git a/easi/utils/logging.py b/easi/utils/logging.py new file mode 100644 index 0000000..d5ba59d --- /dev/null +++ b/easi/utils/logging.py @@ -0,0 +1,44 @@ +"""Custom easi logger using stdlib logging. + +Library modules should only use get_logger(). The CLI entry point calls +setup_logging() once to configure handlers and level. +""" + +from __future__ import annotations + +import logging + + +def get_logger(name: str) -> logging.Logger: + """Get a namespaced easi logger. + + Usage:: + + from easi.utils.logging import get_logger + logger = get_logger("simulators.subprocess_runner") + logger.info("Launching bridge: %s", bridge_path) + """ + return logging.getLogger(f"easi.{name}") + + +def setup_logging(level: str = "WARNING") -> None: + """Configure the easi logger hierarchy. + + Called once by the CLI entry point. Library code should never call this. + + Args: + level: One of "DEBUG", "INFO", "WARNING", "ERROR". + """ + logger = logging.getLogger("easi") + logger.setLevel(getattr(logging, level.upper())) + + # Avoid adding duplicate handlers if called multiple times + if not logger.handlers: + handler = logging.StreamHandler() + handler.setFormatter( + logging.Formatter( + "%(asctime)s [%(levelname)s] %(name)s: %(message)s", + datefmt="%H:%M:%S", + ) + ) + logger.addHandler(handler) diff --git a/easi/utils/paths.py b/easi/utils/paths.py new file mode 100644 index 0000000..8cd316b --- /dev/null +++ b/easi/utils/paths.py @@ -0,0 +1,42 @@ +"""Workspace and path management utilities.""" + +from __future__ import annotations + +import shutil +import tempfile +from pathlib import Path + +# Default cache directory for datasets, locks, etc. +DEFAULT_CACHE_DIR = Path.home() / ".cache" / "easi" + + +def get_cache_dir() -> Path: + """Return the EASI cache directory, creating it if needed.""" + cache_dir = DEFAULT_CACHE_DIR + cache_dir.mkdir(parents=True, exist_ok=True) + return cache_dir + + +def get_locks_dir() -> Path: + """Return the directory for file-based locks.""" + locks_dir = get_cache_dir() / "locks" + locks_dir.mkdir(parents=True, exist_ok=True) + return locks_dir + + +def get_datasets_dir() -> Path: + """Return the directory for cached datasets.""" + datasets_dir = get_cache_dir() / "datasets" + datasets_dir.mkdir(parents=True, exist_ok=True) + return datasets_dir + + +def create_temp_workspace(prefix: str = "easi_") -> Path: + """Create a unique temporary directory for an IPC workspace.""" + return Path(tempfile.mkdtemp(prefix=prefix)) + + +def cleanup_dir(path: Path) -> None: + """Remove a directory tree, ignoring errors.""" + if path.exists(): + shutil.rmtree(path, ignore_errors=True) diff --git a/easi/utils/system_deps.py b/easi/utils/system_deps.py new file mode 100644 index 0000000..14bad47 --- /dev/null +++ b/easi/utils/system_deps.py @@ -0,0 +1,91 @@ +"""System dependency checker for simulators. + +Verifies that required system-level packages (xvfb, EGL, conda, etc.) are +installed before attempting environment setup. +""" + +from __future__ import annotations + +import logging +import subprocess + +from easi.core.exceptions import EnvironmentSetupError + +logger = logging.getLogger("easi.utils.system_deps") + + +# Known system dependencies and how to check/install them +KNOWN_DEPS: dict[str, dict[str, str | list[str]]] = { + "xvfb": { + "check_command": ["which", "Xvfb"], + "install_hint": "sudo apt-get install -y xvfb", + }, + "egl": { + "check_command": ["ldconfig", "-p"], + "check_grep": "libEGL", + "install_hint": "sudo apt-get install -y libegl1-mesa-dev", + }, + "osmesa": { + "check_command": ["ldconfig", "-p"], + "check_grep": "libOSMesa", + "install_hint": "sudo apt-get install -y libosmesa6-dev", + }, + "conda": { + "check_command": ["which", "conda"], + "install_hint": "Install Miniconda: https://docs.conda.io/en/latest/miniconda.html", + }, +} + + +class SystemDependencyChecker: + """Checks for system-level dependencies.""" + + def check(self, dep_name: str) -> bool: + """Check if a single system dependency is available. + + Returns True if the dependency is found, False otherwise. + """ + dep_info = KNOWN_DEPS.get(dep_name) + if dep_info is None: + logger.warning("Unknown system dependency: %s (skipping check)", dep_name) + return True + + try: + result = subprocess.run( + dep_info["check_command"], + capture_output=True, + text=True, + timeout=10, + ) + # If there's a grep pattern, check stdout for it + check_grep = dep_info.get("check_grep") + if check_grep: + return check_grep in result.stdout + return result.returncode == 0 + except (subprocess.TimeoutExpired, FileNotFoundError): + return False + + def check_all(self, deps: list[str]) -> list[str]: + """Check multiple dependencies, returning list of missing ones.""" + missing = [] + for dep in deps: + if not self.check(dep): + missing.append(dep) + return missing + + def assert_all(self, deps: list[str]) -> None: + """Assert all dependencies are present, raising with install hints if not.""" + missing = self.check_all(deps) + if not missing: + return + + hints = [] + for dep in missing: + dep_info = KNOWN_DEPS.get(dep, {}) + hint = dep_info.get("install_hint", f"Install '{dep}' manually") + hints.append(f" - {dep}: {hint}") + + raise EnvironmentSetupError( + f"Missing system dependencies:\n" + "\n".join(hints), + missing_deps=missing, + ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..14ceb4a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,38 @@ +[build-system] +requires = ["setuptools>=68.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "easi" +version = "0.1.0" +description = "EASI - Embodied Reasoning Evaluation for Spatial Intelligence" +requires-python = ">=3.10" +dependencies = [ + "Pillow>=10.0", + "requests>=2.28", + "pyyaml>=6.0", +] + +[project.optional-dependencies] +hf = [ + "huggingface_hub>=0.20", +] +dev = [ + "pytest>=7.0", + "pytest-timeout>=2.0", +] + +[project.scripts] +easi = "easi.cli:main" + +[tool.setuptools.packages.find] +include = ["easi*"] +exclude = ["VLMEvalKit*", "lmms-eval*"] + +[tool.setuptools.package-data] +"easi" = [ + "simulators/*/manifest.yaml", + "simulators/*/*/conda_env.yaml", + "simulators/*/*/requirements.txt", + "tasks/*/task.yaml", +] diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_dummy_agent.py b/tests/test_dummy_agent.py new file mode 100644 index 0000000..27d7c25 --- /dev/null +++ b/tests/test_dummy_agent.py @@ -0,0 +1,54 @@ +"""Tests for the dummy agent.""" + +import pytest + +from easi.agents.dummy_agent import DummyAgent +from easi.core.episode import Observation + + +class TestDummyAgent: + @pytest.fixture + def agent(self): + return DummyAgent( + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + seed=42, + ) + + def test_act_returns_valid_action(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Go to the goal.") + assert action.action_name in agent.action_space + + def test_deterministic_with_seed(self): + agent1 = DummyAgent(action_space=["A", "B", "C"], seed=123) + agent2 = DummyAgent(action_space=["A", "B", "C"], seed=123) + + obs = Observation(rgb_path="/tmp/rgb.png") + for _ in range(10): + a1 = agent1.act(obs, "test") + a2 = agent2.act(obs, "test") + assert a1.action_name == a2.action_name + + def test_reset_clears_history(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "test") + assert len(agent.chat_history) > 0 + + agent.reset() + assert len(agent.chat_history) == 0 + + def test_chat_history_grows(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "test") + assert len(agent.chat_history) == 2 # user + assistant + + agent.act(obs, "test") + assert len(agent.chat_history) == 4 + + def test_chat_history_is_copy(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "test") + + history = agent.chat_history + history.clear() + assert len(agent.chat_history) == 2 # original unchanged diff --git a/tests/test_dummy_llm.py b/tests/test_dummy_llm.py new file mode 100644 index 0000000..185381f --- /dev/null +++ b/tests/test_dummy_llm.py @@ -0,0 +1,76 @@ +"""Tests for the dummy LLM server and API client.""" + +import json +import threading +import time + +import pytest +import requests + +from easi.llm.api_client import LLMApiClient +from easi.llm.dummy_server import create_handler, run_server + +# Use a non-standard port to avoid conflicts +TEST_PORT = 18765 + + +@pytest.fixture(scope="module") +def llm_server(): + """Start a dummy LLM server in a background thread.""" + from http.server import HTTPServer + + handler = create_handler("random", ["MoveAhead", "TurnLeft", "TurnRight", "Stop"]) + server = HTTPServer(("127.0.0.1", TEST_PORT), handler) + + thread = threading.Thread(target=server.serve_forever, daemon=True) + thread.start() + + # Wait for server to be ready + for _ in range(20): + try: + requests.get(f"http://127.0.0.1:{TEST_PORT}/health", timeout=0.5) + break + except requests.ConnectionError: + time.sleep(0.1) + + yield server + server.shutdown() + + +class TestDummyLLMServer: + def test_health(self, llm_server): + resp = requests.get(f"http://127.0.0.1:{TEST_PORT}/health") + assert resp.status_code == 200 + assert resp.json()["status"] == "ok" + + def test_chat_completions(self, llm_server): + payload = { + "model": "dummy", + "messages": [ + {"role": "user", "content": "Choose an action."}, + ], + } + resp = requests.post( + f"http://127.0.0.1:{TEST_PORT}/v1/chat/completions", + json=payload, + ) + assert resp.status_code == 200 + data = resp.json() + assert "choices" in data + assert len(data["choices"]) == 1 + content = data["choices"][0]["message"]["content"] + assert "Action:" in content + + +class TestLLMApiClient: + def test_generate(self, llm_server): + client = LLMApiClient(base_url=f"http://127.0.0.1:{TEST_PORT}") + response = client.generate( + messages=[{"role": "user", "content": "Choose an action."}] + ) + assert "Action:" in response + + def test_connection_error(self): + client = LLMApiClient(base_url="http://127.0.0.1:19999") + with pytest.raises(ConnectionError): + client.generate(messages=[{"role": "user", "content": "test"}]) diff --git a/tests/test_dummy_simulator.py b/tests/test_dummy_simulator.py new file mode 100644 index 0000000..3efe5ee --- /dev/null +++ b/tests/test_dummy_simulator.py @@ -0,0 +1,99 @@ +"""End-to-end test for the dummy simulator. + +Tests the full vertical slice: SubprocessRunner → bridge.py → filesystem IPC. +""" + +import pytest + +from easi.core.episode import Action +from easi.simulators.dummy.v1.env_manager import DummyEnvManager +from easi.simulators.dummy.v1.simulator import DummySimulator +from easi.simulators.subprocess_runner import SubprocessRunner + + +@pytest.fixture +def dummy_simulator(): + """Create and start a dummy simulator, cleaning up after the test.""" + env_manager = DummyEnvManager() + sim = DummySimulator() + + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + startup_timeout=10.0, + command_timeout=10.0, + ) + runner.launch() + sim.set_runner(runner) + + yield sim + + sim.close() + + +def test_reset(dummy_simulator): + """Test that reset returns a valid observation.""" + obs = dummy_simulator.reset("test_episode_001") + assert obs.rgb_path.endswith(".png") + assert obs.agent_pose is not None + + +def test_step(dummy_simulator): + """Test that step returns a valid StepResult.""" + dummy_simulator.reset("test_episode_002") + + action = Action(action_name="MoveAhead") + result = dummy_simulator.step(action) + + assert result.observation.rgb_path.endswith(".png") + assert isinstance(result.reward, float) + assert isinstance(result.done, bool) + + +def test_multiple_steps(dummy_simulator): + """Test running 5 steps and verifying the results.""" + dummy_simulator.reset("test_episode_003") + + for i in range(5): + action = Action(action_name="MoveAhead") + result = dummy_simulator.step(action) + assert result.observation.rgb_path.endswith(".png") + assert not result.done # dummy is done at step 10 + + # Step 6-9 should still not be done + for i in range(4): + result = dummy_simulator.step(Action(action_name="TurnLeft")) + assert not result.done + + # Step 10 should be done + result = dummy_simulator.step(Action(action_name="MoveAhead")) + assert result.done + + +def test_stop_action(dummy_simulator): + """Test that the Stop action ends the episode.""" + dummy_simulator.reset("test_episode_004") + + result = dummy_simulator.step(Action(action_name="Stop")) + assert result.done + + +def test_is_running(dummy_simulator): + """Test is_running reports correctly.""" + assert dummy_simulator.is_running() + + +def test_registry_discovery(): + """Test that the dummy simulator is discoverable via the registry.""" + from easi.simulators.registry import get_simulator_entry, list_simulators + + sims = list_simulators() + assert "dummy" in sims + assert "dummy:v1" in sims + + entry = get_simulator_entry("dummy") + assert entry.name == "dummy" + assert entry.version == "v1" + + entry_explicit = get_simulator_entry("dummy:v1") + assert entry_explicit.name == "dummy" diff --git a/tests/test_dummy_task.py b/tests/test_dummy_task.py new file mode 100644 index 0000000..c2776bf --- /dev/null +++ b/tests/test_dummy_task.py @@ -0,0 +1,91 @@ +"""Tests for the dummy task and task registry.""" + +import pytest + +from easi.core.episode import Observation, StepResult +from easi.tasks.dummy_task.task import DummyTask +from easi.tasks.registry import get_task_entry, list_tasks, load_task_class + + +class TestDummyTask: + @pytest.fixture + def task(self): + return DummyTask() + + def test_name(self, task): + assert task.name == "dummy_task" + + def test_simulator_key(self, task): + assert task.simulator_key == "dummy:v1" + + def test_action_space(self, task): + assert "MoveAhead" in task.action_space + assert "Stop" in task.action_space + + def test_max_steps(self, task): + assert task.max_steps == 100 + + def test_load_episodes(self, task): + episodes = task.load_episodes() + assert len(episodes) == 3 + assert episodes[0]["episode_id"] == "dummy_ep_001" + + def test_get_episode(self, task): + ep = task.get_episode(1) + assert ep["episode_id"] == "dummy_ep_002" + + def test_len(self, task): + assert len(task) == 3 + + def test_format_reset_config(self, task): + ep = task.get_episode(0) + config = task.format_reset_config(ep) + assert "scene_id" in config + assert config["scene_id"] == "dummy_scene_A" + + def test_evaluate_episode_success(self, task): + ep = task.get_episode(0) + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False), + StepResult(observation=obs, reward=1.0, done=True), + ] + metrics = task.evaluate_episode(ep, trajectory) + assert metrics["success"] == 1.0 + assert metrics["num_steps"] == 2.0 + assert metrics["total_reward"] == 1.0 + + def test_evaluate_episode_failure(self, task): + ep = task.get_episode(0) + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False), + ] + metrics = task.evaluate_episode(ep, trajectory) + assert metrics["success"] == 0.0 + + def test_evaluate_empty_trajectory(self, task): + ep = task.get_episode(0) + metrics = task.evaluate_episode(ep, []) + assert metrics["success"] == 0.0 + assert metrics["num_steps"] == 0.0 + + +class TestTaskRegistry: + def test_list_tasks(self): + tasks = list_tasks() + assert "dummy_task" in tasks + + def test_get_task_entry(self): + entry = get_task_entry("dummy_task") + assert entry.name == "dummy_task" + assert entry.simulator_key == "dummy:v1" + assert "MoveAhead" in entry.action_space + + def test_load_task_class(self): + TaskClass = load_task_class("dummy_task") + assert TaskClass is DummyTask + + def test_unknown_task(self): + with pytest.raises(KeyError): + get_task_entry("nonexistent_task") diff --git a/tests/test_filesystem_comm.py b/tests/test_filesystem_comm.py new file mode 100644 index 0000000..d1dd22a --- /dev/null +++ b/tests/test_filesystem_comm.py @@ -0,0 +1,124 @@ +"""Tests for filesystem-based IPC communication.""" + +import json +import tempfile +from pathlib import Path + +import pytest + +from easi.communication.filesystem import ( + atomic_write_json, + cleanup_workspace, + create_workspace, + delete_file, + read_json, + write_command, +) +from easi.communication.schemas import ( + make_close_command, + make_observation_response, + make_reset_command, + make_step_command, + parse_action_from_command, + parse_observation, + parse_step_result, +) +from easi.core.episode import Action + + +class TestAtomicWriteJson: + def test_write_and_read(self, tmp_path): + path = tmp_path / "test.json" + data = {"key": "value", "num": 42} + atomic_write_json(path, data) + assert read_json(path) == data + + def test_no_tmp_file_left(self, tmp_path): + path = tmp_path / "test.json" + atomic_write_json(path, {"a": 1}) + assert not (tmp_path / "test.tmp").exists() + + def test_read_nonexistent(self, tmp_path): + assert read_json(tmp_path / "nope.json") is None + + +class TestDeleteFile: + def test_delete_existing(self, tmp_path): + path = tmp_path / "test.txt" + path.write_text("hello") + delete_file(path) + assert not path.exists() + + def test_delete_nonexistent(self, tmp_path): + delete_file(tmp_path / "nope.txt") # should not raise + + +class TestWorkspace: + def test_create_and_cleanup(self): + ws = create_workspace() + assert ws.exists() + cleanup_workspace(ws) + assert not ws.exists() + + +class TestSchemas: + def test_reset_command(self): + cmd = make_reset_command("ep_001", {"scene": "A"}) + assert cmd["type"] == "reset" + assert cmd["episode_id"] == "ep_001" + assert cmd["reset_config"] == {"scene": "A"} + + def test_step_command(self): + action = Action(action_name="MoveAhead", params={"distance": 0.25}) + cmd = make_step_command(action) + assert cmd["type"] == "step" + assert cmd["action"]["action_name"] == "MoveAhead" + assert cmd["action"]["params"]["distance"] == 0.25 + + def test_close_command(self): + cmd = make_close_command() + assert cmd["type"] == "close" + + def test_observation_response(self): + resp = make_observation_response( + rgb_path="/tmp/rgb.png", + agent_pose=[1.0, 2.0, 3.0], + reward=0.5, + done=True, + ) + assert resp["status"] == "ok" + assert resp["observation"]["rgb_path"] == "/tmp/rgb.png" + assert resp["reward"] == 0.5 + assert resp["done"] is True + + def test_parse_observation(self): + resp = make_observation_response(rgb_path="/tmp/rgb.png", depth_path="/tmp/depth.png") + obs = parse_observation(resp) + assert obs.rgb_path == "/tmp/rgb.png" + assert obs.depth_path == "/tmp/depth.png" + + def test_parse_step_result(self): + resp = make_observation_response(rgb_path="/tmp/rgb.png", reward=1.0, done=True) + result = parse_step_result(resp) + assert result.reward == 1.0 + assert result.done is True + assert result.observation.rgb_path == "/tmp/rgb.png" + + def test_parse_action_from_command(self): + action = Action(action_name="TurnLeft", params={"angle": 90.0}) + cmd = make_step_command(action) + parsed = parse_action_from_command(cmd) + assert parsed.action_name == "TurnLeft" + assert parsed.params["angle"] == 90.0 + + +class TestWriteCommand: + def test_clears_old_response(self, tmp_path): + # Write a response file + resp_path = tmp_path / "response.json" + resp_path.write_text('{"old": true}') + + # write_command should delete it + write_command(tmp_path, make_reset_command("ep_001")) + assert not resp_path.exists() + assert (tmp_path / "command.json").exists() From cdbf211cff7bf216127d9eb3f7ee4739e1e408b0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Feb 2026 01:22:01 +0800 Subject: [PATCH 002/239] [Feature] Add easi library - Phase 2 implementation Add embodied agent evaluation pipeline with real simulator support: - ReAct agent with multi-action buffering and PromptBuilder protocol - EB-Alfred task support (6 splits via multi-split YAML discovery) - AI2-THOR v2.1.0 bridge with skill-based actions and state tracking - EvaluationRunner with structured output: /// - Per-episode artifacts: result.json, trajectory.jsonl, rgb_*.png - Centralized logging (print -> logger), --verbosity CLI option - Subprocess observability: bridge output streaming, Ctrl+C cleanup - LLM API client (OpenAI-compatible) and dummy LLM server - 106 tests passing --- CLAUDE.md | 51 +- easi/agents/prompt_builder.py | 165 +++ easi/agents/react_agent.py | 168 +++ easi/cli.py | 151 ++- easi/communication/filesystem.py | 4 +- easi/communication/schemas.py | 11 +- easi/core/base_agent.py | 22 +- easi/core/base_env_manager.py | 49 +- easi/core/base_simulator.py | 19 +- easi/core/base_task.py | 204 +++- easi/core/exceptions.py | 2 + easi/core/protocols.py | 7 +- easi/evaluation/__init__.py | 1 + easi/evaluation/metrics.py | 30 + easi/evaluation/runner.py | 270 +++++ easi/llm/api_client.py | 16 +- easi/llm/dummy_server.py | 18 +- easi/simulators/ai2thor/v2_1_0/bridge.py | 1041 ++++++++++++++++- .../ai2thor/v2_1_0/requirements.txt | 1 + easi/simulators/ai2thor/v2_1_0/thor_utils.py | 362 ++++++ easi/simulators/dummy/v1/bridge.py | 25 +- easi/simulators/registry.py | 5 +- easi/simulators/subprocess_runner.py | 82 +- easi/tasks/dataset.py | 4 +- easi/tasks/ebalfred/__init__.py | 1 + easi/tasks/ebalfred/actions.py | 83 ++ easi/tasks/ebalfred/ebalfred_base.yaml | 16 + .../tasks/ebalfred/ebalfred_common_sense.yaml | 16 + .../ebalfred_complex_instruction.yaml | 16 + .../tasks/ebalfred/ebalfred_long_horizon.yaml | 16 + easi/tasks/ebalfred/ebalfred_spatial.yaml | 16 + .../ebalfred/ebalfred_visual_appearance.yaml | 16 + easi/tasks/ebalfred/prompts.py | 109 ++ easi/tasks/ebalfred/task.py | 104 ++ easi/tasks/registry.py | 62 +- easi/utils/import_utils.py | 24 + easi/utils/locking.py | 5 +- easi/utils/logging.py | 11 +- easi/utils/system_deps.py | 4 +- pyproject.toml | 7 +- tests/test_e2e_evaluation.py | 218 ++++ tests/test_ebalfred_task.py | 169 +++ tests/test_evaluation_runner.py | 82 ++ tests/test_filesystem_comm.py | 27 + tests/test_multi_split_task.py | 176 +++ tests/test_react_agent.py | 236 ++++ 46 files changed, 3861 insertions(+), 261 deletions(-) create mode 100644 easi/agents/prompt_builder.py create mode 100644 easi/agents/react_agent.py create mode 100644 easi/evaluation/__init__.py create mode 100644 easi/evaluation/metrics.py create mode 100644 easi/evaluation/runner.py create mode 100644 easi/simulators/ai2thor/v2_1_0/thor_utils.py create mode 100644 easi/tasks/ebalfred/__init__.py create mode 100644 easi/tasks/ebalfred/actions.py create mode 100644 easi/tasks/ebalfred/ebalfred_base.yaml create mode 100644 easi/tasks/ebalfred/ebalfred_common_sense.yaml create mode 100644 easi/tasks/ebalfred/ebalfred_complex_instruction.yaml create mode 100644 easi/tasks/ebalfred/ebalfred_long_horizon.yaml create mode 100644 easi/tasks/ebalfred/ebalfred_spatial.yaml create mode 100644 easi/tasks/ebalfred/ebalfred_visual_appearance.yaml create mode 100644 easi/tasks/ebalfred/prompts.py create mode 100644 easi/tasks/ebalfred/task.py create mode 100644 easi/utils/import_utils.py create mode 100644 tests/test_e2e_evaluation.py create mode 100644 tests/test_ebalfred_task.py create mode 100644 tests/test_evaluation_runner.py create mode 100644 tests/test_multi_split_task.py create mode 100644 tests/test_react_agent.py diff --git a/CLAUDE.md b/CLAUDE.md index 241a481..3157983 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -67,9 +67,56 @@ CUDA_VISIBLE_DEVICES=0,1,2,3 accelerate launch --num_processes=4 \ List available tasks: `lmms-eval --tasks list` +## EASI Library (`easi/`) + +The `easi` package is a Python library for embodied agent evaluation with subprocess-isolated simulators. Install: `pip install -e .` + +### Architecture + +``` +easi/ +├── core/ # Base classes: BaseTask, BaseSimulator, BaseAgent, Episode/Action/StepResult +├── agents/ # DummyAgent, ReActAgent (with multi-action buffering + PromptBuilder) +├── communication/ # Filesystem IPC: atomic JSON read/write, command/response schemas +├── evaluation/ # EvaluationRunner (sequential orchestrator), metrics aggregation +├── llm/ # LLMApiClient (OpenAI-compatible), DummyLLMServer +├── simulators/ # Simulator implementations (subprocess bridges) +│ ├── dummy/v1/ # In-memory dummy bridge for testing +│ └── ai2thor/v2_1_0/ # Real AI2-THOR 2.1.0 bridge for EB-Alfred +├── tasks/ # Task definitions (per-split YAML configs) +│ ├── dummy/ # dummy_task (3 test episodes) +│ └── ebalfred/ # EB-Alfred (6 splits: base, long_horizon, common_sense, etc.) +└── utils/ # import_class(), logging setup +``` + +### Key Patterns + +- **Subprocess isolation**: Each simulator runs in its own conda env (e.g., Python 3.8 for ai2thor). The bridge script communicates via filesystem IPC (JSON files in a temp workspace). +- **Multi-split tasks**: Each task folder has one or more `*.yaml` config files. The registry discovers all YAMLs, each registering as a separate task (e.g., `ebalfred_base`, `ebalfred_spatial`). +- **EB-Alfred skills**: Actions are high-level skill text (e.g., `"find a Cabinet"`, `"pick up the Mug"`), NOT raw THOR API calls. The bridge translates these to THOR API sequences. +- **ReAct agent**: Uses a PromptBuilder protocol for task-specific prompts. Supports multi-action buffering (LLM returns a plan, agent executes one action per step, clears buffer on failure). +- **State tracking**: The AI2-THOR bridge tracks `cleaned_objects`, `cooled_objects`, `heated_objects` for EB-Alfred goal condition evaluation. + +### CLI + +```bash +easi env list|install|check # Manage simulator environments +easi task list|info|download # Manage tasks +easi sim test # Smoke test a simulator +easi run --agent dummy|react # Run evaluation +easi llm-server [--port PORT] # Start dummy LLM server +``` + +### Testing + +```bash +pip install -e ".[dev]" +python -m pytest tests/ -v --timeout=60 # 103 tests, ~60s +``` + ## Key References -- There is no test suite, linter, or build system in the root project — those live in the submodules. -- Evaluation logs go to `./logs/` (gitignored). +- Test suite: `tests/` with pytest (103 tests covering all components) +- Evaluation logs go to `./results/` (configurable via `--output-dir`) - Supported models (23) and benchmarks (25) are documented in `docs/Support_bench_models.md`. - Benchmark verification against official scores is in `docs/Benchmark_Verification.md`. diff --git a/easi/agents/prompt_builder.py b/easi/agents/prompt_builder.py new file mode 100644 index 0000000..12551ef --- /dev/null +++ b/easi/agents/prompt_builder.py @@ -0,0 +1,165 @@ +"""PromptBuilder protocol and default implementation. + +Decision #10: Both methods return OpenAI message format (list[dict]). +This supports interleaved text+image content for vision models, +and also works for text-only models (content is just a string). + +Contributors adding a new task only need to implement these 2 methods. +""" +from __future__ import annotations + +import base64 +from pathlib import Path +from typing import Protocol, runtime_checkable + +from easi.core.episode import Observation +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +def _encode_image_base64(image_path: str) -> str | None: + """Read an image file and return base64-encoded data URL. + + Returns None if file doesn't exist or can't be read. + """ + p = Path(image_path) + if not p.exists(): + logger.warning("Image file not found: %s", image_path) + return None + suffix = p.suffix.lower().lstrip(".") + mime = {"png": "image/png", "jpg": "image/jpeg", "jpeg": "image/jpeg"}.get(suffix, "image/png") + data = base64.b64encode(p.read_bytes()).decode("utf-8") + return f"data:{mime};base64,{data}" + + +@runtime_checkable +class PromptBuilderProtocol(Protocol): + """Interface for task-specific prompt construction. + + Both methods return OpenAI message format: list[dict]. + Each dict has "role" and "content" keys. + Content can be a string (text-only) or a list of content parts + (interleaved text + image_url for vision models). + + Implementations are referenced in task.yaml via: + agent: + prompt_builder: "easi.tasks.my_task.prompts.MyPromptBuilder" + """ + + def build_system_prompt( + self, + action_space: list[str], + task_description: str, + ) -> list[dict]: + """Build system message(s). + + Returns: + List of OpenAI message dicts, e.g.: + [{"role": "system", "content": "You are an agent..."}] + """ + ... + + def build_step_prompt( + self, + observation: Observation, + task_description: str, + action_history: list[tuple[str, str]], + ) -> list[dict]: + """Build user message(s) for a single step, including observation image. + + Returns: + List of OpenAI message dicts with interleaved text+image, e.g.: + [{"role": "user", "content": [ + {"type": "text", "text": "Task: ..."}, + {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} + ]}] + """ + ... + + +class DefaultPromptBuilder: + """Generic prompt builder that works with any task. + + Produces OpenAI-format messages with interleaved text+image. + """ + + SYSTEM_TEMPLATE = """You are an embodied agent operating in a simulated environment. Given a task, you must accomplish it by choosing actions from the available action space. + +## Task +{task_description} + +## Available Actions +{action_list} + +## Output Format +You MUST respond with valid JSON in this exact format: +{{ + "observation": "Describe what you see in the current image", + "reasoning": "Explain your step-by-step reasoning", + "plan": "Your high-level plan", + "executable_plan": [ + {{"action": ""}}, + {{"action": ""}} + ] +}} + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the available action list. +3. If previous actions failed, reason about why and try a different approach. +4. Output at most 10 actions per plan. +""" + + STEP_TEMPLATE = """Task: {task_description} + +{history_section} + +Based on the current observation image, decide your next action(s). Respond with valid JSON.""" + + def build_system_prompt( + self, + action_space: list[str], + task_description: str, + ) -> list[dict]: + action_list = "\n".join( + f" {i}. {name}" for i, name in enumerate(action_space) + ) + text = self.SYSTEM_TEMPLATE.format( + action_list=action_list, + task_description=task_description, + ) + return [{"role": "system", "content": text}] + + def build_step_prompt( + self, + observation: Observation, + task_description: str, + action_history: list[tuple[str, str]], + ) -> list[dict]: + if action_history: + history_lines = [] + for i, (action_name, feedback) in enumerate(action_history): + history_lines.append(f" Step {i+1}: {action_name} → {feedback}") + history_section = "## Action History\n" + "\n".join(history_lines) + else: + history_section = "This is the first step." + + text = self.STEP_TEMPLATE.format( + task_description=task_description, + history_section=history_section, + ) + + # Build interleaved content parts + content_parts: list[dict] = [{"type": "text", "text": text}] + + # Add observation image if available + if observation.rgb_path: + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content_parts.append({ + "type": "image_url", + "image_url": {"url": image_url}, + }) + + return [{"role": "user", "content": content_parts}] diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py new file mode 100644 index 0000000..1099b3b --- /dev/null +++ b/easi/agents/react_agent.py @@ -0,0 +1,168 @@ +"""ReAct agent with multi-action buffering and PromptBuilder delegation. + +Decision #9: LLM returns executable_plan as a list of actions. The agent +buffers all actions, pops one per act() call. While buffer is non-empty, +act() returns next buffered action without calling LLM. On action failure +(reported via add_feedback), buffer is cleared and next act() re-queries LLM. + +Decision #10: PromptBuilder returns OpenAI message format (list[dict]). +The agent appends these directly to chat_history and passes to LLM. +""" +from __future__ import annotations + +import json + +from easi.agents.prompt_builder import DefaultPromptBuilder, PromptBuilderProtocol +from easi.core.base_agent import BaseAgent +from easi.core.episode import Action, Observation +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ReActAgent(BaseAgent): + """ReAct agent with action buffering and pluggable prompt building. + + Flow per LLM call: + 1. PromptBuilder constructs OpenAI messages (with image) + 2. LLM returns JSON with executable_plan: [{action: ...}, ...] + 3. Agent validates ALL actions, buffers valid ones + 4. Returns first action; subsequent act() calls pop from buffer + 5. On failure feedback -> clear buffer -> next act() re-queries LLM + """ + + def __init__( + self, + llm_client, + action_space: list[str], + prompt_builder: PromptBuilderProtocol | None = None, + ): + super().__init__(llm_client=llm_client, action_space=action_space) + self.prompt_builder: PromptBuilderProtocol = prompt_builder or DefaultPromptBuilder() + self._action_buffer: list[Action] = [] + self._action_feedback: list[tuple[str, str]] = [] + self._task_description: str = "" + + def reset(self) -> None: + super().reset() + self._action_buffer = [] + self._action_feedback = [] + self._task_description = "" + + def act(self, observation: Observation, task_description: str) -> Action: + """Return the next action. + + If buffer has pending actions, pop and return (no LLM call). + Otherwise, call LLM, parse executable_plan, buffer all actions, + return the first one. + """ + # Decision #9: return buffered action if available + if self._action_buffer: + return self._action_buffer.pop(0) + + # Store task description for step prompts + self._task_description = task_description + + # Build system prompt on first call + if not self._chat_history: + system_messages = self.prompt_builder.build_system_prompt( + action_space=self.action_space, + task_description=task_description, + ) + self._chat_history.extend(system_messages) + + # Build step prompt (OpenAI message format with image) + step_messages = self.prompt_builder.build_step_prompt( + observation=observation, + task_description=task_description, + action_history=self._action_feedback, + ) + self._chat_history.extend(step_messages) + + # Call LLM + response = self.llm_client.generate(self._chat_history) + self._chat_history.append({"role": "assistant", "content": response}) + + self._step_count += 1 + + # Parse all actions from response + actions = self._parse_actions(response) + if not actions: + # Fallback: Stop or first action + return self._fallback_action() + + # Buffer remaining actions, return first + if len(actions) > 1: + self._action_buffer = actions[1:] + return actions[0] + + def _parse_actions(self, llm_response: str) -> list[Action]: + """Parse JSON response into a list of validated Actions. + + Returns empty list on parse failure (caller handles fallback). + """ + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + action_name = entry.get("action", "") + validated = self._validate_action_name(action_name) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + # Stop processing further actions after an invalid one + break + + return actions + + def _validate_action_name(self, action_name: str) -> str | None: + """Validate action name against action_space. Returns canonical name or None.""" + if action_name in self.action_space: + return action_name + # Case-insensitive fallback + for valid in self.action_space: + if valid.lower() == action_name.lower(): + return valid + return None + + def _fallback_action(self) -> Action: + """Return a safe fallback action when parsing fails.""" + if "Stop" in self.action_space: + return Action(action_name="Stop") + return Action(action_name=self.action_space[0]) + + def add_feedback(self, action_name: str, feedback: str) -> None: + """Record action feedback. Clear buffer on failure (Decision #9).""" + self._action_feedback.append((action_name, feedback)) + # Clear buffer on failure so next act() re-queries LLM + if "fail" in feedback.lower() or "error" in feedback.lower(): + if self._action_buffer: + logger.info("Action '%s' failed, clearing %d buffered actions", + action_name, len(self._action_buffer)) + self._action_buffer.clear() + + # --- BaseAgent abstract methods (not used directly, but required) --- + + def _build_system_prompt(self, task_description: str) -> str: + """Not used — ReActAgent delegates to PromptBuilder.""" + return "" + + def _build_step_prompt(self, observation: Observation) -> str: + """Not used — ReActAgent delegates to PromptBuilder.""" + return "" + + def _parse_action(self, llm_response: str) -> Action: + """Not used — ReActAgent uses _parse_actions instead.""" + return self._fallback_action() diff --git a/easi/cli.py b/easi/cli.py index d719ff5..a2d8022 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -10,53 +10,76 @@ import argparse import sys +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + def build_parser() -> argparse.ArgumentParser: + # Shared parent so --verbosity works at any position in the command + common = argparse.ArgumentParser(add_help=False) + common.add_argument( + "--verbosity", type=str, default="INFO", + choices=["DEBUG", "INFO", "WARNING", "ERROR"], + help="Set logging verbosity (default: INFO)", + ) + parser = argparse.ArgumentParser( prog="easi", description="EASI - Embodied Reasoning Evaluation for Spatial Intelligence", + parents=[common], ) - parser.add_argument( - "--verbose", "-v", action="store_true", help="Enable INFO logging" - ) - parser.add_argument("--debug", action="store_true", help="Enable DEBUG logging") subparsers = parser.add_subparsers(dest="command") # --- env command group --- - env_parser = subparsers.add_parser("env", help="Manage simulator environments") + env_parser = subparsers.add_parser("env", help="Manage simulator environments", parents=[common]) env_sub = env_parser.add_subparsers(dest="env_action") - env_sub.add_parser("list", help="List available simulators and versions") + env_sub.add_parser("list", help="List available simulators and versions", parents=[common]) - env_install = env_sub.add_parser("install", help="Install a simulator environment") + env_install = env_sub.add_parser("install", help="Install a simulator environment", parents=[common]) env_install.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'") - env_check = env_sub.add_parser("check", help="Check if environment is ready") + env_check = env_sub.add_parser("check", help="Check if environment is ready", parents=[common]) env_check.add_argument("simulator", type=str) # --- task command group --- - task_parser = subparsers.add_parser("task", help="Manage tasks (benchmarks)") + task_parser = subparsers.add_parser("task", help="Manage tasks (benchmarks)", parents=[common]) task_sub = task_parser.add_subparsers(dest="task_action") - task_sub.add_parser("list", help="List available tasks") + task_sub.add_parser("list", help="List available tasks", parents=[common]) - task_info = task_sub.add_parser("info", help="Show task details") + task_info = task_sub.add_parser("info", help="Show task details", parents=[common]) task_info.add_argument("task", type=str, help="e.g., 'dummy_task'") - task_download = task_sub.add_parser("download", help="Download task dataset") + task_download = task_sub.add_parser("download", help="Download task dataset", parents=[common]) task_download.add_argument("task", type=str) # --- sim command group --- - sim_parser = subparsers.add_parser("sim", help="Control simulators") + sim_parser = subparsers.add_parser("sim", help="Control simulators", parents=[common]) sim_sub = sim_parser.add_subparsers(dest="sim_action") - sim_test = sim_sub.add_parser("test", help="Run a smoke test (reset + N steps)") + sim_test = sim_sub.add_parser("test", help="Run a smoke test (reset + N steps)", parents=[common]) sim_test.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v5_0_0'") sim_test.add_argument("--steps", type=int, default=5, help="Number of steps") + sim_test.add_argument("--timeout", type=float, default=30.0, + help="Bridge startup timeout in seconds (default: 30)") + + # --- run command --- + run_parser = subparsers.add_parser("run", help="Run a full evaluation", parents=[common]) + run_parser.add_argument("task", type=str, help="Task name (e.g., 'dummy_task', 'ebalfred_base')") + run_parser.add_argument("--agent", type=str, default="dummy", choices=["dummy", "react"]) + run_parser.add_argument("--output-dir", type=str, default="./logs", + help="Base output directory (creates ///)") + run_parser.add_argument("--data-dir", type=str, default="./datasets", + help="Directory for downloading/caching datasets (default: ./datasets)") + run_parser.add_argument("--max-episodes", type=int, default=None) + run_parser.add_argument("--llm-url", type=str, default=None, help="LLM server URL") + run_parser.add_argument("--seed", type=int, default=None) # --- llm-server command --- - llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server") + llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) llm_parser.add_argument("--port", type=int, default=8000) llm_parser.add_argument("--host", type=str, default="127.0.0.1") llm_parser.add_argument("--mode", choices=["fixed", "random"], default="random") @@ -75,7 +98,7 @@ def cmd_env_list() -> None: sims = list_simulators() if not sims: - print("No simulators found.") + logger.info("No simulators found.") return # Deduplicate: show each name:version pair once @@ -87,7 +110,7 @@ def cmd_env_list() -> None: continue seen.add(pair) default_marker = " (default)" if key == entry.name else "" - print(f" {pair}{default_marker} — {entry.description}") + logger.info(" %s%s -- %s", pair, default_marker, entry.description) def cmd_env_install(simulator: str) -> None: @@ -95,9 +118,9 @@ def cmd_env_install(simulator: str) -> None: EnvManagerClass = load_env_manager_class(simulator) env_manager = EnvManagerClass() - print(f"Installing environment: {env_manager.get_env_name()}") + logger.info("Installing environment: %s", env_manager.get_env_name()) env_manager.install() - print("Done.") + logger.info("Done.") def cmd_env_check(simulator: str) -> None: @@ -108,14 +131,14 @@ def cmd_env_check(simulator: str) -> None: missing = env_manager.check_system_deps() if missing: - print(f"Missing system deps: {missing}") + logger.info("Missing system deps: %s", missing) if env_manager.env_is_ready(): - print(f"Environment {env_manager.get_env_name()} is ready.") - print(f"Python: {env_manager.get_python_executable()}") + logger.info("Environment %s is ready.", env_manager.get_env_name()) + logger.info("Python: %s", env_manager.get_python_executable()) else: - print(f"Environment {env_manager.get_env_name()} is NOT ready.") - print("Run: easi env install " + simulator) + logger.info("Environment %s is NOT ready.", env_manager.get_env_name()) + logger.info("Run: easi env install %s", simulator) def cmd_task_list() -> None: @@ -123,24 +146,24 @@ def cmd_task_list() -> None: tasks = list_tasks() if not tasks: - print("No tasks found.") + logger.info("No tasks found.") return for name in tasks: entry = get_task_entry(name) - print(f" {name} — {entry.display_name} (simulator: {entry.simulator_key})") + logger.info(" %s -- %s (simulator: %s)", name, entry.display_name, entry.simulator_key) def cmd_task_info(task_name: str) -> None: from easi.tasks.registry import get_task_entry entry = get_task_entry(task_name) - print(f"Task: {entry.display_name}") - print(f" Name: {entry.name}") - print(f" Description: {entry.description}") - print(f" Simulator: {entry.simulator_key}") - print(f" Actions: {', '.join(entry.action_space)}") - print(f" Max steps: {entry.max_steps}") + logger.info("Task: %s", entry.display_name) + logger.info(" Name: %s", entry.name) + logger.info(" Description: %s", entry.description) + logger.info(" Simulator: %s", entry.simulator_key) + logger.info(" Actions: %s", ", ".join(entry.action_space)) + logger.info(" Max steps: %s", entry.max_steps) def cmd_task_download(task_name: str) -> None: @@ -150,12 +173,12 @@ def cmd_task_download(task_name: str) -> None: task = TaskClass() path = task.download_dataset() if path and str(path): - print(f"Dataset ready at: {path}") + logger.info("Dataset ready at: %s", path) else: - print("Task uses built-in episodes (no download needed).") + logger.info("Task uses built-in episodes (no download needed).") -def cmd_sim_test(simulator: str, steps: int) -> None: +def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: from easi.core.episode import Action from easi.simulators.registry import load_env_manager_class, load_simulator_class from easi.simulators.subprocess_runner import SubprocessRunner @@ -166,42 +189,68 @@ def cmd_sim_test(simulator: str, steps: int) -> None: env_manager = EnvManagerClass() sim = SimClass() - print(f"Testing {simulator}...") - print(f" Python: {env_manager.get_python_executable()}") + logger.info("Testing %s...", simulator) + logger.info(" Python: %s", env_manager.get_python_executable()) runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), needs_display=env_manager.needs_display, xvfb_screen_config=env_manager.xvfb_screen_config, + startup_timeout=timeout, ) try: runner.launch() sim.set_runner(runner) - print(" Reset... ", end="", flush=True) + logger.info(" Reset...") obs = sim.reset("smoke_test_001") - print(f"OK (rgb: {obs.rgb_path})") + logger.info(" Reset OK (rgb: %s)", obs.rgb_path) for i in range(steps): action = Action(action_name="MoveAhead") result = sim.step(action) - print(f" Step {i+1}: done={result.done}, reward={result.reward}") + logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) if result.done: break - print(" Closing... ", end="", flush=True) + logger.info(" Closing...") sim.close() - print("OK") - print("Smoke test passed!") + logger.info(" Close OK") + logger.info("Smoke test passed!") + except KeyboardInterrupt: + logger.info("Interrupted, shutting down bridge...") + sim.close() + logger.info("Bridge process terminated.") + sys.exit(130) except Exception as e: - print(f"\nSmoke test FAILED: {e}") + logger.error("Smoke test FAILED: %s", e) sim.close() sys.exit(1) +def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, llm_url, seed): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner( + task_name=task_name, + agent_type=agent_type, + output_dir=output_dir, + data_dir=data_dir, + llm_base_url=llm_url, + agent_seed=seed, + ) + results = runner.run(max_episodes=max_episodes) + logger.info("Completed %d episodes.", len(results)) + from easi.evaluation.metrics import aggregate_metrics + + summary = aggregate_metrics(results) + for key, value in summary.items(): + logger.info(" %s: %s", key, value) + + def cmd_llm_server(host: str, port: int, mode: str, action_space: list[str]) -> None: from easi.llm.dummy_server import run_server @@ -214,13 +263,7 @@ def main() -> None: parser = build_parser() args = parser.parse_args() - # Set up logging - if args.debug: - from easi.utils.logging import setup_logging - setup_logging("DEBUG") - elif args.verbose: - from easi.utils.logging import setup_logging - setup_logging("INFO") + setup_logging(args.verbosity) if args.command is None: parser.print_help() @@ -249,10 +292,14 @@ def main() -> None: elif args.command == "sim": if args.sim_action == "test": - cmd_sim_test(args.simulator, args.steps) + cmd_sim_test(args.simulator, args.steps, args.timeout) else: parser.parse_args(["sim", "--help"]) + elif args.command == "run": + cmd_run(args.task, args.agent, args.output_dir, args.data_dir, + args.max_episodes, args.llm_url, args.seed) + elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/easi/communication/filesystem.py b/easi/communication/filesystem.py index 59d26e8..e5da74e 100644 --- a/easi/communication/filesystem.py +++ b/easi/communication/filesystem.py @@ -10,15 +10,15 @@ from __future__ import annotations import json -import logging import os import tempfile import time from pathlib import Path from easi.core.exceptions import SimulatorTimeoutError +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.communication") +logger = get_logger(__name__) # Default filenames used in the IPC workspace COMMAND_FILE = "command.json" diff --git a/easi/communication/schemas.py b/easi/communication/schemas.py index 1e0efae..90b3cc4 100644 --- a/easi/communication/schemas.py +++ b/easi/communication/schemas.py @@ -12,12 +12,19 @@ # --- Command schemas (parent → child) --- -def make_reset_command(episode_id: str, reset_config: dict | None = None) -> dict: - return { +def make_reset_command( + episode_id: str, + reset_config: dict | None = None, + episode_output_dir: str | None = None, +) -> dict: + cmd = { "type": "reset", "episode_id": episode_id, "reset_config": reset_config or {}, } + if episode_output_dir is not None: + cmd["episode_output_dir"] = episode_output_dir + return cmd def make_step_command(action: Action) -> dict: diff --git a/easi/core/base_agent.py b/easi/core/base_agent.py index 4cde3fb..85212f5 100644 --- a/easi/core/base_agent.py +++ b/easi/core/base_agent.py @@ -11,14 +11,14 @@ from __future__ import annotations -import logging from abc import ABC, abstractmethod from easi.core.episode import Action, Observation from easi.core.exceptions import ActionParseError from easi.core.protocols import LLMClientProtocol +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.core.base_agent") +logger = get_logger(__name__) class BaseAgent(ABC): @@ -49,6 +49,13 @@ def _parse_action(self, llm_response: str) -> Action: """ ... + def add_feedback(self, action_name: str, feedback: str) -> None: + """Record action feedback from the environment. + + Default: no-op. Subclasses (e.g., ReActAgent) override to track + action history and clear action buffer on failure. + """ + def reset(self) -> None: """Clear chat history for a new episode.""" self._chat_history = [] @@ -77,22 +84,13 @@ def act(self, observation: Observation, task_description: str) -> Action: self._step_count += 1 step_prompt = self._build_step_prompt(observation) - # Collect images - images = [] - if observation.rgb_path: - images.append(observation.rgb_path) - # Add user message to history - user_message = {"role": "user", "content": step_prompt} - if images: - user_message["images"] = images - self._chat_history.append(user_message) + self._chat_history.append({"role": "user", "content": step_prompt}) # Call LLM if self.llm_client is not None: llm_response = self.llm_client.generate( messages=self._chat_history, - images=images if images else None, ) else: llm_response = "" diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index d51edcf..4ab61fe 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -7,22 +7,22 @@ - validation import to confirm the env works The shared install() logic handles the full sequence: - check_system_deps → conda create → pip install uv → uv pip install → validate + check_system_deps -> conda create -> pip install uv -> uv pip install -> validate """ from __future__ import annotations -import logging import subprocess from abc import ABC, abstractmethod from pathlib import Path from easi.core.exceptions import EnvironmentSetupError from easi.utils.locking import file_lock +from easi.utils.logging import get_logger from easi.utils.paths import get_locks_dir from easi.utils.system_deps import SystemDependencyChecker -logger = logging.getLogger("easi.core.base_env_manager") +logger = get_logger(__name__) class BaseEnvironmentManager(ABC): @@ -125,7 +125,7 @@ def install(self) -> None: def _do_install(self) -> None: """Execute the full install sequence (called under lock).""" env_name = self.get_env_name() - logger.info("Installing environment: %s", env_name) + logger.info("[Env Installation] %s", env_name) # Step 1: Check system deps self._dep_checker.assert_all(self.get_system_deps()) @@ -135,7 +135,7 @@ def _do_install(self) -> None: if conda_yaml.exists(): self._run_conda_create(env_name, conda_yaml) else: - logger.warning("No conda_env.yaml found at %s, skipping conda setup", conda_yaml) + logger.warning("[Env Installation] No conda_env.yaml found at %s, skipping conda setup", conda_yaml) # Step 3: Install uv in the conda env python_exec = self.get_python_executable() @@ -149,21 +149,15 @@ def _do_install(self) -> None: "uv pip install", ) else: - logger.warning("No requirements.txt found at %s, skipping uv install", requirements) + logger.warning("[Env Installation] No requirements.txt found at %s, skipping uv install", requirements) - # Step 5: Validate - result = subprocess.run( + # Step 5: Validate (stream output like other commands) + self._run_command( [python_exec, "-c", self.get_validation_import()], - capture_output=True, - text=True, - timeout=30, + "environment validation", ) - if result.returncode != 0: - raise EnvironmentSetupError( - f"Environment validation failed for {env_name}:\n{result.stderr}" - ) - logger.info("Environment %s installed and validated successfully", env_name) + logger.info("[Env Installation] Environment %s installed and validated successfully", env_name) def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: """Create or update a conda environment from a YAML file.""" @@ -179,12 +173,25 @@ def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: self._run_command(cmd, desc) def _run_command(self, cmd: list[str], description: str) -> None: - """Run a subprocess command, raising on failure.""" - logger.debug("Running %s: %s", description, " ".join(cmd)) - result = subprocess.run(cmd, capture_output=True, text=True, timeout=600) - if result.returncode != 0: + """Run a subprocess command, streaming output through the logger.""" + logger.info("[Env Installation] %s", " ".join(cmd)) + process = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, + ) + output_lines = [] + for line in process.stdout: + line = line.rstrip() + output_lines.append(line) + logger.debug(" %s", line) + process.wait() + if process.returncode != 0: raise EnvironmentSetupError( - f"{description} failed (exit code {result.returncode}):\n{result.stderr}" + f"{description} failed (exit {process.returncode}):\n" + + "\n".join(output_lines[-20:]) ) @staticmethod diff --git a/easi/core/base_simulator.py b/easi/core/base_simulator.py index 03ca9ba..81ced52 100644 --- a/easi/core/base_simulator.py +++ b/easi/core/base_simulator.py @@ -12,14 +12,14 @@ from __future__ import annotations -import logging from abc import ABC, abstractmethod from pathlib import Path from easi.communication import filesystem, schemas from easi.core.episode import Action, Observation, StepResult +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.core.base_simulator") +logger = get_logger(__name__) class BaseSimulator(ABC): @@ -54,16 +54,27 @@ def _format_action(self, action: Action) -> dict: """Format an Action into the command dict. Override for custom formatting.""" return schemas.make_step_command(action) - def reset(self, episode_id: str, reset_config: dict | None = None) -> Observation: + def reset( + self, + episode_id: str, + reset_config: dict | None = None, + episode_output_dir: str | None = None, + ) -> Observation: """Reset the simulator for a new episode. Sends a reset command to the bridge subprocess and waits for the observation response. + + Args: + episode_id: Unique identifier for this episode. + reset_config: Task-specific configuration for the episode. + episode_output_dir: Directory where the bridge should save + observation images. If None, the bridge uses its IPC workspace. """ if self._runner is None: raise RuntimeError("Simulator not started. Call start() first.") - command = schemas.make_reset_command(episode_id, reset_config) + command = schemas.make_reset_command(episode_id, reset_config, episode_output_dir) response = self._runner.send_command(command) if response.get("status") == "error": diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 5037700..6216dfc 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -16,7 +16,6 @@ from __future__ import annotations import json -import logging from abc import ABC, abstractmethod from pathlib import Path @@ -24,14 +23,30 @@ from easi.core.episode import StepResult from easi.core.exceptions import DatasetError +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.core.base_task") +logger = get_logger(__name__) + + +def hf_row_to_episode(row: dict) -> dict: + """Convert a HuggingFace dataset row to an episode dict. + + HF dataset rows contain all information for a single episode. + For EB-Alfred_easi: {id, task, repeat_idx, instruction, task_type, trial_id} + This is a passthrough — the row IS the episode. + """ + return dict(row) class BaseTask(ABC): """Abstract base for all tasks (benchmarks).""" - def __init__(self, data_dir: Path | None = None): + def __init__( + self, + data_dir: Path | None = None, + split_yaml_path: Path | None = None, + ): + self._split_yaml_path = split_yaml_path self._config = self._load_config() self._episodes: list[dict] | None = None self._data_dir = data_dir @@ -61,6 +76,14 @@ def evaluate_episode( # --- Shared implementation --- + def get_instruction(self, episode: dict) -> str: + """Return human-readable task instruction for this episode. + + Default tries common field names. Override in subclasses + for benchmarks that use different keys. + """ + return episode.get("instruction", episode.get("task_description", self.name)) + @property def name(self) -> str: return self._config["name"] @@ -124,21 +147,28 @@ def __len__(self) -> int: return len(self.load_episodes()) def _load_config(self) -> dict: - """Load task.yaml.""" - yaml_path = self.get_task_yaml_path() + """Load task config from split yaml (if provided) or default task.yaml.""" + yaml_path = self._split_yaml_path or self.get_task_yaml_path() if not yaml_path.exists(): raise DatasetError(f"Task config not found: {yaml_path}") return yaml.safe_load(yaml_path.read_text()) def _load_episodes_from_config(self) -> list[dict]: - """Load episodes from the dataset directory. + """Load episodes from the dataset. - Subclasses can override this for custom episode loading logic. - Default implementation looks for episodes.json in the data directory. + For HuggingFace datasets: downloads the repo, then loads the split + using the datasets library. Each row = one episode. + For local datasets: looks for episodes.json. """ - data_dir = self._data_dir or self.download_dataset() + dataset_config = self._config.get("dataset", {}) + source = dataset_config.get("source", "local") + + if source == "huggingface": + return self._load_episodes_from_hf(dataset_config) + + # Local source — existing behavior + data_dir = self.download_dataset() if not data_dir or data_dir == Path(): - # No data dir — subclass should provide built-in episodes return self._get_builtin_episodes() episodes_file = data_dir / "episodes.json" @@ -150,6 +180,73 @@ def _load_episodes_from_config(self) -> list[dict]: f"Override _load_episodes_from_config() for custom loading." ) + def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: + """Load episodes from a HuggingFace dataset (subset + split). + + Each row in the dataset = one episode dict. + Downloads all files via snapshot_download, then loads locally. + """ + data_dir = self.download_dataset() + + subset = dataset_config.get("subset") + split_name = dataset_config.get("split") + + try: + from datasets import ( + get_dataset_config_names, + get_dataset_split_names, + load_dataset, + ) + except ImportError: + raise DatasetError( + "The 'datasets' library is required for HF episode loading. " + "Install with: pip install datasets" + ) + + local_path = str(data_dir) + + # Auto-detect subset if not specified + if subset is None: + configs = get_dataset_config_names(local_path) + if len(configs) == 1: + subset = configs[0] + logger.info("Auto-detected single subset: %s", subset) + elif "default" in configs: + subset = "default" + else: + raise DatasetError( + f"Dataset at {local_path} has multiple subsets {configs} — " + f"please specify 'subset' in task yaml." + ) + + # Auto-detect split if not specified + if split_name is None: + splits = get_dataset_split_names(local_path, subset) + if len(splits) == 1: + split_name = splits[0] + logger.info("Auto-detected single split: %s", split_name) + else: + raise DatasetError( + f"Dataset at {local_path} subset={subset} has " + f"multiple splits {splits} — " + f"please specify 'split' in task yaml." + ) + + logger.info( + "Loading episodes from local HF dataset %s subset=%s split=%s", + local_path, subset, split_name, + ) + + ds = load_dataset(local_path, subset, split=split_name) + episodes = [hf_row_to_episode(row) for row in ds] + + for ep in episodes: + ep["_data_dir"] = str(data_dir) + + logger.info("Loaded %d episodes from %s/%s/%s", + len(episodes), local_path, subset, split_name) + return episodes + def _get_builtin_episodes(self) -> list[dict]: """Return built-in episodes when no dataset download is needed. @@ -158,33 +255,78 @@ def _get_builtin_episodes(self) -> list[dict]: return [] def _download_huggingface(self, config: dict) -> Path: - """Download a dataset from HuggingFace Hub with file-based locking.""" + """Download a dataset from HuggingFace Hub with file-based locking. + + Uses snapshot_download to get the full repo (including .zip files), + then extracts any listed zip_files. + """ from easi.utils.locking import file_lock - from easi.utils.paths import get_datasets_dir, get_locks_dir + from easi.utils.paths import get_locks_dir repo_id = config["repo_id"] lock_path = get_locks_dir() / f"dataset_{repo_id.replace('/', '_')}.lock" + # Use data_dir if set, otherwise default datasets dir + if self._data_dir: + base_dir = self._data_dir + else: + from easi.utils.paths import get_datasets_dir + base_dir = get_datasets_dir() + with file_lock(lock_path): - target = get_datasets_dir() / repo_id.replace("/", "_") - if target.exists(): + target = base_dir / repo_id.replace("/", "_") + if not target.exists(): + try: + from huggingface_hub import snapshot_download + except ImportError: + raise DatasetError( + "huggingface_hub is required for HuggingFace downloads. " + "Install with: pip install huggingface_hub" + ) + + logger.info("Downloading dataset %s from HuggingFace...", repo_id) + try: + snapshot_download( + repo_id=repo_id, + local_dir=str(target), + repo_type="dataset", + ) + except Exception as e: + if target.exists(): + import shutil + shutil.rmtree(target, ignore_errors=True) + raise DatasetError(f"Failed to download {repo_id}: {e}") + + logger.info("Downloaded dataset %s to %s", repo_id, target) + else: logger.info("Dataset %s already cached at %s", repo_id, target) - return target - try: - from huggingface_hub import snapshot_download + # Extract any .zip files listed in config + zip_files = config.get("zip_files", []) + if zip_files: + self._extract_zip_files(target, zip_files) - snapshot_download( - repo_id=repo_id, - local_dir=str(target), - repo_type="dataset", - ) - logger.info("Downloaded dataset %s to %s", repo_id, target) - return target - except ImportError: - raise DatasetError( - "huggingface_hub is required for HuggingFace downloads. " - "Install with: pip install huggingface_hub" - ) - except Exception as e: - raise DatasetError(f"Failed to download {repo_id}: {e}") + return target + + @staticmethod + def _extract_zip_files(dataset_dir: Path, zip_filenames: list[str]) -> None: + """Extract listed .zip files within a downloaded dataset directory.""" + import zipfile as zf + + for zip_name in zip_filenames: + zip_path = dataset_dir / zip_name + if not zip_path.exists(): + logger.warning("Zip file not found: %s", zip_path) + continue + + marker = dataset_dir / f".{zip_name}.extracted" + if marker.exists(): + logger.debug("Already extracted: %s", zip_name) + continue + + logger.info("Extracting %s...", zip_path) + with zf.ZipFile(zip_path, "r") as z: + z.extractall(dataset_dir) + + marker.write_text("extracted") + logger.info("Extracted %s to %s", zip_name, dataset_dir) diff --git a/easi/core/exceptions.py b/easi/core/exceptions.py index be8a87f..a093341 100644 --- a/easi/core/exceptions.py +++ b/easi/core/exceptions.py @@ -1,5 +1,7 @@ """Custom exception hierarchy for EASI.""" +from __future__ import annotations + class EASIError(Exception): """Base exception for all EASI errors.""" diff --git a/easi/core/protocols.py b/easi/core/protocols.py index 877c138..98ab994 100644 --- a/easi/core/protocols.py +++ b/easi/core/protocols.py @@ -39,9 +39,7 @@ def get_env_name(self) -> str: ... class LLMClientProtocol(Protocol): """Calls an LLM inference server.""" - def generate( - self, messages: list[dict[str, str]], images: list[str] | None = None - ) -> str: ... + def generate(self, messages: list[dict]) -> str: ... @runtime_checkable @@ -50,9 +48,10 @@ class AgentProtocol(Protocol): def reset(self) -> None: ... def act(self, observation: Observation, task_description: str) -> Action: ... + def add_feedback(self, action_name: str, feedback: str) -> None: ... @property - def chat_history(self) -> list[dict[str, str]]: ... + def chat_history(self) -> list[dict]: ... @runtime_checkable diff --git a/easi/evaluation/__init__.py b/easi/evaluation/__init__.py new file mode 100644 index 0000000..a88296e --- /dev/null +++ b/easi/evaluation/__init__.py @@ -0,0 +1 @@ +"""Evaluation orchestration.""" diff --git a/easi/evaluation/metrics.py b/easi/evaluation/metrics.py new file mode 100644 index 0000000..70a3316 --- /dev/null +++ b/easi/evaluation/metrics.py @@ -0,0 +1,30 @@ +"""Metric aggregation utilities.""" + +from __future__ import annotations + + +def aggregate_metrics(results: list[dict]) -> dict: + """Aggregate per-episode metrics into a summary dict.""" + if not results: + return {"num_episodes": 0} + + summary = {"num_episodes": len(results)} + + # Collect all numeric keys + numeric_keys: dict[str, list[float]] = {} + for r in results: + for key, value in r.items(): + if isinstance(value, (int, float)): + numeric_keys.setdefault(key, []).append(float(value)) + + # Average each numeric metric + for key, values in numeric_keys.items(): + summary[f"avg_{key}"] = round(sum(values) / len(values), 4) + + # Convenience aliases + if "avg_success" in summary: + summary["success_rate"] = summary["avg_success"] + if "avg_num_steps" in summary: + summary["avg_steps"] = summary["avg_num_steps"] + + return summary diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py new file mode 100644 index 0000000..1bee48f --- /dev/null +++ b/easi/evaluation/runner.py @@ -0,0 +1,270 @@ +"""Sequential evaluation runner. + +Ties together Task + Simulator + Agent into an episode loop: +1. Load task -> get episodes, simulator key, action space +2. Start simulator subprocess +3. For each episode: + a. Reset simulator with format_reset_config(episode) + b. Loop: agent.act(observation) -> simulator.step(action) until done or max_steps + c. Evaluate: task.evaluate_episode(episode, trajectory) + d. Save per-episode metrics + trajectory.jsonl + images +4. Aggregate metrics into summary.json + +Output directory structure: + /// + config.json + summary.json + episodes/ + 000_/ + result.json + trajectory.jsonl + rgb_0000.png, rgb_0001.png, ... +""" + +from __future__ import annotations + +import json +import re +import time +from datetime import datetime +from pathlib import Path + +from easi.core.episode import StepResult +from easi.evaluation.metrics import aggregate_metrics +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +def _sanitize_dirname(name: str) -> str: + """Replace characters unsafe for directory names.""" + return re.sub(r'[^\w\-.]', '_', name) + + +class EvaluationRunner: + """Sequential evaluation runner.""" + + def __init__( + self, + task_name: str, + agent_type: str = "dummy", + output_dir: Path | str = "./logs", + data_dir: Path | str = "./datasets", + llm_base_url: str | None = None, + agent_seed: int | None = None, + ): + self.task_name = task_name + self.agent_type = agent_type + self.output_dir = Path(output_dir) + self.data_dir = Path(data_dir) + self.llm_base_url = llm_base_url + self.agent_seed = agent_seed + self.run_id = datetime.now().strftime("%Y%m%d_%H%M%S") + + def run(self, max_episodes: int | None = None) -> list[dict]: + """Run evaluation and return per-episode metric dicts.""" + # Create structured output directory + run_dir = self.output_dir / self.task_name / self.run_id + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True, exist_ok=True) + + # 1. Load task + task = self._create_task() + episodes = task.load_episodes() + if max_episodes is not None: + episodes = episodes[:max_episodes] + + # Save run config + config = { + "task_name": self.task_name, + "agent_type": self.agent_type, + "agent_seed": self.agent_seed, + "run_id": self.run_id, + "max_episodes": max_episodes, + "total_episodes": len(episodes), + } + (run_dir / "config.json").write_text(json.dumps(config, indent=2)) + + # 2. Create agent + agent = self._create_agent(task.action_space, task._config) + + # 3. Start simulator + sim, runner = self._create_simulator(task.simulator_key) + + all_results = [] + try: + for i, episode in enumerate(episodes): + episode_id = episode.get("episode_id", f"ep_{i}") + logger.info( + "Episode %d/%d: %s", i + 1, len(episodes), episode_id, + ) + + # Create episode output directory + safe_id = _sanitize_dirname(episode_id) + episode_dir = episodes_dir / f"{i:03d}_{safe_id}" + episode_dir.mkdir(exist_ok=True) + + result = self._run_episode( + sim, agent, task, episode, i, episode_dir, + ) + all_results.append(result) + + # Save per-episode result + (episode_dir / "result.json").write_text( + json.dumps(result, indent=2) + ) + + finally: + sim.close() + + # 4. Aggregate and save summary + summary = aggregate_metrics(all_results) + (run_dir / "summary.json").write_text(json.dumps(summary, indent=2)) + logger.info("Results saved to: %s", run_dir) + logger.info("Summary: %s", summary) + + return all_results + + def _run_episode( + self, sim, agent, task, episode: dict, index: int, episode_dir: Path, + ) -> dict: + """Run a single episode and return metrics.""" + agent.reset() + + episode_id = episode.get("episode_id", f"ep_{index}") + + # Reset simulator (bridge saves images to episode_dir) + reset_config = task.format_reset_config(episode) + observation = sim.reset( + episode_id, + reset_config, + episode_output_dir=str(episode_dir), + ) + + # Write reset entry to trajectory + trajectory_path = episode_dir / "trajectory.jsonl" + self._write_trajectory_entry(trajectory_path, { + "step": 0, + "type": "reset", + "rgb_path": Path(observation.rgb_path).name, + "agent_pose": observation.agent_pose, + "reward": 0.0, + "done": False, + "info": {}, + }) + + # Agent-simulator loop + trajectory: list[StepResult] = [] + task_description = task.get_instruction(episode) + start_time = time.monotonic() + + for step in range(task.max_steps): + action = agent.act(observation, task_description) + step_result = sim.step(action) + trajectory.append(step_result) + + # Write step entry to trajectory + self._write_trajectory_entry(trajectory_path, { + "step": step + 1, + "type": "step", + "action": action.action_name, + "rgb_path": Path(step_result.observation.rgb_path).name, + "agent_pose": step_result.observation.agent_pose, + "reward": step_result.reward, + "done": step_result.done, + "info": step_result.info, + }) + + # Feed action outcome back to agent for ReAct reasoning + last_success = step_result.info.get("last_action_success", 1.0) + feedback = step_result.info.get( + "feedback", + "success" if last_success else "failed", + ) + agent.add_feedback(action.action_name, feedback) + + observation = step_result.observation + + if step_result.done: + break + + elapsed = time.monotonic() - start_time + + # Evaluate + metrics = task.evaluate_episode(episode, trajectory) + metrics["episode_id"] = episode_id + metrics["elapsed_seconds"] = round(elapsed, 2) + + return metrics + + @staticmethod + def _write_trajectory_entry(path: Path, entry: dict) -> None: + """Append a single JSON line to the trajectory file.""" + with path.open("a") as f: + f.write(json.dumps(entry) + "\n") + + def _create_task(self): + from easi.tasks.registry import get_task_entry, load_task_class + + entry = get_task_entry(self.task_name) + TaskClass = load_task_class(self.task_name) + return TaskClass( + split_yaml_path=entry.config_path, + data_dir=self.data_dir, + ) + + def _create_agent(self, action_space: list[str], task_config: dict): + from easi.utils.import_utils import import_class + + if self.agent_type == "dummy": + from easi.agents.dummy_agent import DummyAgent + + return DummyAgent(action_space=action_space, seed=self.agent_seed) + elif self.agent_type == "react": + from easi.agents.react_agent import ReActAgent + from easi.llm.api_client import LLMApiClient + + llm = LLMApiClient( + base_url=self.llm_base_url or "http://127.0.0.1:8000" + ) + + # Load task-specific prompt builder if configured in yaml + prompt_builder = None + agent_config = task_config.get("agent", {}) + builder_class_name = agent_config.get("prompt_builder") + if builder_class_name: + BuilderClass = import_class(builder_class_name) + prompt_builder = BuilderClass() + + return ReActAgent( + llm_client=llm, + action_space=action_space, + prompt_builder=prompt_builder, + ) + else: + raise ValueError(f"Unknown agent type: {self.agent_type}") + + def _create_simulator(self, simulator_key: str): + from easi.simulators.registry import ( + load_env_manager_class, + load_simulator_class, + ) + from easi.simulators.subprocess_runner import SubprocessRunner + + EnvManagerClass = load_env_manager_class(simulator_key) + SimClass = load_simulator_class(simulator_key) + + env_manager = EnvManagerClass() + sim = SimClass() + + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + needs_display=env_manager.needs_display, + xvfb_screen_config=env_manager.xvfb_screen_config, + extra_args=["--data-dir", str(self.data_dir)], + ) + runner.launch() + sim.set_runner(runner) + + return sim, runner diff --git a/easi/llm/api_client.py b/easi/llm/api_client.py index e62f0c1..f6881da 100644 --- a/easi/llm/api_client.py +++ b/easi/llm/api_client.py @@ -6,12 +6,13 @@ from __future__ import annotations -import logging from typing import Any import requests -logger = logging.getLogger("easi.llm.api_client") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) class LLMApiClient: @@ -33,15 +34,13 @@ def __init__( def generate( self, - messages: list[dict[str, str]], - images: list[str] | None = None, + messages: list[dict], ) -> str: """Send a chat completion request and return the assistant's response text. Args: - messages: Chat history in OpenAI format. - images: Optional list of image paths (currently passed as metadata; - real multimodal support depends on the server implementation). + messages: Chat history in OpenAI format. Images are embedded as + content parts with type "image_url" (Decision #10). Returns: The assistant's response text. @@ -53,9 +52,6 @@ def generate( "temperature": self.temperature, } - if images: - payload["images"] = images - url = f"{self.base_url}/v1/chat/completions" logger.debug("POST %s (messages: %d)", url, len(messages)) diff --git a/easi/llm/dummy_server.py b/easi/llm/dummy_server.py index 30a44a9..3bdb414 100644 --- a/easi/llm/dummy_server.py +++ b/easi/llm/dummy_server.py @@ -13,11 +13,12 @@ import argparse import json -import logging import random from http.server import BaseHTTPRequestHandler, HTTPServer -logger = logging.getLogger("easi.llm.dummy_server") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) DEFAULT_ACTION_SPACE = ["MoveAhead", "TurnLeft", "TurnRight", "Stop"] @@ -115,16 +116,14 @@ def run_server( handler_class = create_handler(mode, action_space) server = HTTPServer((host, port), handler_class) - logger.info("Dummy LLM server starting on %s:%d (mode=%s)", host, port, mode) - logger.info("Action space: %s", action_space) - print(f"Dummy LLM server running on http://{host}:{port}") - print(f"Mode: {mode}, Actions: {action_space}") - print("Press Ctrl+C to stop") + logger.info("Dummy LLM server running on http://%s:%d", host, port) + logger.info("Mode: %s, Actions: %s", mode, action_space) + logger.info("Press Ctrl+C to stop") try: server.serve_forever() except KeyboardInterrupt: - print("\nShutting down...") + logger.info("Shutting down...") finally: server.server_close() @@ -142,7 +141,8 @@ def main() -> None: ) args = parser.parse_args() - logging.basicConfig(level=logging.INFO) + from easi.utils.logging import setup_logging + setup_logging("INFO") run_server( host=args.host, port=args.port, diff --git a/easi/simulators/ai2thor/v2_1_0/bridge.py b/easi/simulators/ai2thor/v2_1_0/bridge.py index a8a3ed7..15d789d 100644 --- a/easi/simulators/ai2thor/v2_1_0/bridge.py +++ b/easi/simulators/ai2thor/v2_1_0/bridge.py @@ -1,23 +1,29 @@ -"""Bridge subprocess for AI2-THOR v2.1.0 (legacy API). +"""Bridge subprocess for AI2-THOR v2.1.0 (EB-Alfred track). -This script runs inside the ai2thor v2.1.0 conda environment. -It communicates with the parent via filesystem IPC. +This script runs inside the easi_ai2thor_v2_1_0 conda env (Python 3.8). +It communicates with the parent process via filesystem IPC. -NOTE: This is a stub. The actual AI2-THOR interaction will be implemented -when integrating with embodiedbench. The structure demonstrates how a real -bridge would work. +Ported from EmbodiedBench: +- envs/eb_alfred/thor_connector.py (high-level skill API) +- envs/eb_alfred/env/thor_env.py (controller init, scene restoration, state tracking) Usage: - python bridge.py --workspace /tmp/easi_xxx + python bridge.py --workspace /tmp/easi_xxx --data-dir /path/to/datasets """ from __future__ import annotations import argparse import logging +import math +import os +import re import sys from pathlib import Path +import numpy as np +from scipy import spatial + # Add repo root to path for easi imports _repo_root = Path(__file__).resolve().parents[4] if str(_repo_root) not in sys.path: @@ -31,24 +37,959 @@ from easi.communication.schemas import ( make_error_response, make_observation_response, - parse_action_from_command, +) +from easi.simulators.ai2thor.v2_1_0.thor_utils import ( + AGENT_HORIZON_ADJ, + AGENT_ROTATE_ADJ, + AGENT_STEP_SIZE, + CAMERA_HEIGHT_OFFSET, + RECORD_SMOOTHING_FACTOR, + RENDER_CLASS_IMAGE, + RENDER_DEPTH_IMAGE, + RENDER_IMAGE, + RENDER_OBJECT_IMAGE, + SCREEN_HEIGHT, + SCREEN_WIDTH, + VISIBILITY_DISTANCE, + evaluate_goal_conditions, + get_objects_of_type, + get_obj_of_type_closest_to_obj, + load_task_json_with_repeat, + natural_word_to_ithor_name, ) logger = logging.getLogger("easi.bridge.ai2thor_v2_1_0") -def run_bridge(workspace: Path) -> None: +class EBAlfredBridge: + """EB-Alfred bridge managing AI2-THOR controller and high-level skills. + + Ported from EmbodiedBench's ThorEnv + ThorConnector. + """ + + def __init__(self, workspace, data_dir): + self.workspace = Path(workspace) + self.data_dir = Path(data_dir) + self.controller = None + self.last_event = None + self.traj_data = None + self.step_count = 0 + + # State tracking (from EmbodiedBench ThorEnv) + self.cleaned_objects = set() + self.cooled_objects = set() + self.heated_objects = set() + + # Navigation cache + self.reachable_positions = None + self.reachable_position_kdtree = None + + # Agent height (set after reset from init_action) + self.agent_height = 0.9009992 + + # Skill state + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + + # Output directory for saving images (set per-episode from reset command) + self.episode_output_dir = None + + def start(self): + """Initialize AI2-THOR controller.""" + from ai2thor.controller import Controller + + logger.info("Starting AI2-THOR controller...") + self.controller = Controller(quality="MediumCloseFitShadows") + self.controller.start( + x_display=os.environ.get("DISPLAY", "0"), + player_screen_height=SCREEN_HEIGHT, + player_screen_width=SCREEN_WIDTH, + ) + logger.info("AI2-THOR controller started.") + + def stop(self): + """Stop the AI2-THOR controller.""" + if self.controller is not None: + try: + self.controller.stop() + except Exception: + pass + self.controller = None + + def _step(self, action_dict): + """Execute a raw THOR action and update last_event.""" + self.last_event = self.controller.step(action_dict) + return self.last_event + + # --- Reset --- + + def reset(self, reset_config): + """Reset to an EB-Alfred episode (or a default scene for smoke tests). + + If task_path is provided, loads traj_data.json, resets scene, + restores objects, and teleports agent. + If task_path is missing (smoke test), resets to a default scene. + """ + task_path = reset_config.get("task_path") + + if not task_path: + # Smoke test mode: reset to a default scene without episode data + return self._reset_default_scene() + + repeat_idx = reset_config.get("repeat_idx", 0) + + self.traj_data = load_task_json_with_repeat( + task_path, repeat_idx, str(self.data_dir) + ) + self.cleaned_objects.clear() + self.cooled_objects.clear() + self.heated_objects.clear() + self.step_count = 0 + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + + # Reset scene + scene_num = self.traj_data["scene"]["scene_num"] + scene_name = "FloorPlan%d" % scene_num + logger.info("Resetting to scene: %s", scene_name) + self.controller.reset(scene_name) + + # Restore object poses, toggles, dirty states + self._restore_scene() + + # Teleport agent to initial position + init_action = dict(self.traj_data["scene"]["init_action"]) + if init_action.get("action") == "TeleportFull": + init_action.pop("rotateOnTeleport", None) + init_action["standing"] = True + self.last_event = self.controller.step(init_action) + + # Cache agent height + self.agent_height = self.last_event.metadata["agent"]["position"]["y"] + + # Cache reachable positions for navigation + self._cache_reachable_positions() + + return self._make_observation_response() + + def _reset_default_scene(self): + """Reset to FloorPlan10 for smoke testing (no episode data needed).""" + logger.info("Smoke test mode: resetting to default scene FloorPlan10") + self.traj_data = None + self.cleaned_objects.clear() + self.cooled_objects.clear() + self.heated_objects.clear() + self.step_count = 0 + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + + self.controller.reset("FloorPlan10") + self.last_event = self.controller.step(dict( + action="Initialize", + gridSize=AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR, + cameraY=CAMERA_HEIGHT_OFFSET, + renderImage=RENDER_IMAGE, + renderDepthImage=RENDER_DEPTH_IMAGE, + renderClassImage=RENDER_CLASS_IMAGE, + renderObjectImage=RENDER_OBJECT_IMAGE, + visibility_distance=VISIBILITY_DISTANCE, + makeAgentsVisible=False, + )) + self.agent_height = self.last_event.metadata["agent"]["position"]["y"] + self._cache_reachable_positions() + return self._make_observation_response() + + def _restore_scene(self): + """Restore EB-Alfred scene state from traj_data. + + Ported from EmbodiedBench ThorEnv.restore_scene(). + """ + grid_size = AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR + + self._step(dict( + action="Initialize", + gridSize=grid_size, + cameraY=CAMERA_HEIGHT_OFFSET, + renderImage=RENDER_IMAGE, + renderDepthImage=RENDER_DEPTH_IMAGE, + renderClassImage=RENDER_CLASS_IMAGE, + renderObjectImage=RENDER_OBJECT_IMAGE, + visibility_distance=VISIBILITY_DISTANCE, + makeAgentsVisible=False, + )) + + scene = self.traj_data["scene"] + object_toggles = scene.get("object_toggles", []) + object_poses = scene.get("object_poses", []) + dirty_and_empty = scene.get("dirty_and_empty", False) + + if len(object_toggles) > 0: + self._step(dict(action="SetObjectToggles", objectToggles=object_toggles)) + + if dirty_and_empty: + self._step(dict( + action="SetStateOfAllObjects", + StateChange="CanBeDirty", + forceAction=True, + )) + self._step(dict( + action="SetStateOfAllObjects", + StateChange="CanBeFilled", + forceAction=False, + )) + + if len(object_poses) > 0: + self._step(dict(action="SetObjectPoses", objectPoses=object_poses)) + + def _cache_reachable_positions(self): + """Cache reachable positions + KD-tree for navigation.""" + event = self._step(dict(action="GetReachablePositions")) + free_positions = event.metadata["actionReturn"] + self.reachable_positions = np.array( + [[p["x"], p["y"], p["z"]] for p in free_positions] + ) + self.reachable_position_kdtree = spatial.KDTree(self.reachable_positions) + + # --- Step --- + + def step(self, action_text): + """Execute a high-level skill and return observation + metrics.""" + self.step_count += 1 + + # Smoke test mode: execute raw THOR action instead of high-level skill + if self.traj_data is None: + self._step(dict(action=action_text)) + return self._make_observation_response( + reward=0.0, + done=False, + info={ + "last_action_success": 1.0 if self.last_event.metadata["lastActionSuccess"] else 0.0, + "env_step": float(self.step_count), + "feedback": "success" if self.last_event.metadata["lastActionSuccess"] else "action failed", + }, + ) + + result = self._execute_skill(action_text) + success = result.get("success", False) + + # Update cleaned/cooled/heated tracking + self._update_states() + + # Evaluate goal conditions + goal_satisfied, progress = evaluate_goal_conditions( + self.traj_data, + self.last_event, + self.cleaned_objects, + self.cooled_objects, + self.heated_objects, + ) + + feedback = result.get("message", "") + if success: + feedback = "success" + + return self._make_observation_response( + reward=float(progress), + done=goal_satisfied, + info={ + "task_success": 1.0 if goal_satisfied else 0.0, + "task_progress": progress, + "last_action_success": 1.0 if success else 0.0, + "env_step": float(self.step_count), + "feedback": feedback, + }, + ) + + def _execute_skill(self, instruction): + """Map high-level skill text to THOR API calls. + + Ported from EmbodiedBench ThorConnector.llm_skill_interact(). + """ + # Clear cur_receptacle unless put/open + if not (instruction.startswith("put down ") or instruction.startswith("open ")): + self.cur_receptacle = None + + ret_msg = "" + + if instruction.startswith("find "): + obj_name = instruction.replace("find a ", "").replace("find an ", "") + self.cur_receptacle = obj_name + ret_msg = self._nav_obj( + natural_word_to_ithor_name(obj_name), self.sliced + ) + + elif instruction.startswith("pick up "): + obj_name = instruction.replace("pick up the ", "") + ret_msg = self._pick(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("put down "): + if self.cur_receptacle is None: + ret_msg = self._drop() + else: + receptacle = self.cur_receptacle + if receptacle in self.put_count_dict: + self.put_count_dict[receptacle] += 1 + else: + self.put_count_dict[receptacle] = 1 + + ret_msg = self._put(natural_word_to_ithor_name(receptacle)) + + if len(ret_msg) > 16 and self.put_count_dict[receptacle] >= 3: + self._drop() + ret_msg += ". The robot dropped the object instead." + self.last_event.metadata["lastActionSuccess"] = False + + elif instruction.startswith("open "): + obj_name = instruction.replace("open the ", "") + ret_msg = self._open(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("close "): + obj_name = instruction.replace("close the ", "") + ret_msg = self._close(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("turn on "): + obj_name = instruction.replace("turn on the ", "") + ret_msg = self._toggleon(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("turn off "): + obj_name = instruction.replace("turn off the ", "") + ret_msg = self._toggleoff(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("slice "): + obj_name = instruction.replace("slice the ", "") + ret_msg = self._slice(natural_word_to_ithor_name(obj_name)) + self.sliced = True + + elif instruction.startswith("drop"): + ret_msg = self._drop() + + else: + ret_msg = "instruction not supported" + + success = len(ret_msg) == 0 + if not success: + logger.warning("Skill failed: %s -> %s", instruction, ret_msg) + + return {"action": instruction, "success": success, "message": ret_msg} + + # --- State Tracking --- + + def _update_states(self): + """Track cleaned/cooled/heated objects. + + Ported from EmbodiedBench ThorEnv.update_states(). + """ + if self.last_event is None: + return + + metadata = self.last_event.metadata + if not metadata.get("lastActionSuccess", False): + return + + # Check if last action was a relevant toggle/close + last_action = metadata.get("lastAction", "") + last_obj_id = metadata.get("lastActionObjectId", "") + + # Clean: ToggleObjectOn on Faucet -> items in SinkBasin get cleaned + if last_action == "ToggleObjectOn" and "Faucet" in last_obj_id: + sink_basin = get_obj_of_type_closest_to_obj( + "SinkBasin", last_obj_id, metadata + ) + if sink_basin and sink_basin.get("receptacleObjectIds"): + self.cleaned_objects.update(sink_basin["receptacleObjectIds"]) + + # Heat: ToggleObjectOn on Microwave -> items inside get heated + if last_action == "ToggleObjectOn" and "Microwave" in last_obj_id: + microwaves = get_objects_of_type("Microwave", metadata) + if microwaves: + heated_ids = microwaves[0].get("receptacleObjectIds") + if heated_ids: + self.heated_objects.update(heated_ids) + + # Cool: CloseObject on Fridge -> items inside get cooled + if last_action == "CloseObject" and "Fridge" in last_obj_id: + fridges = get_objects_of_type("Fridge", metadata) + if fridges: + cooled_ids = fridges[0].get("receptacleObjectIds") + if cooled_ids: + self.cooled_objects.update(cooled_ids) + + # --- Individual Skill Implementations --- + + def _nav_obj(self, target_obj, prefer_sliced=False): + """Navigate to an object by teleporting to closest reachable position. + + Ported from EmbodiedBench ThorConnector.nav_obj(). + """ + objects = self.last_event.metadata["objects"] + logger.info("nav_obj: %s", target_obj) + + # Resolve object ID + if "|" in target_obj: + obj_id = target_obj + base_name = target_obj.split("|")[0] + tmp_id, tmp_data = self._get_obj_id_from_name( + base_name, priority_in_visibility=True, priority_sliced=prefer_sliced + ) + if tmp_id and "Sliced" in tmp_id and obj_id in tmp_id: + obj_id = tmp_id + else: + obj_id, _ = self._get_obj_id_from_name( + target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced + ) + + # Find object index + obj_idx = -1 + for i, o in enumerate(objects): + if o["objectId"] == obj_id: + obj_idx = i + break + + if obj_idx == -1: + return ( + "Cannot find %s. This object may not exist in this scene. " + "Try to explore other instances instead." % target_obj + ) + + # Teleport to closest reachable position facing the object + loc = objects[obj_idx]["position"] + obj_rot = objects[obj_idx]["rotation"]["y"] + max_attempts = 20 + teleport_success = False + reachable_pos_idx = 0 + + for i in range(max_attempts): + reachable_pos_idx += 1 + if i == 10 and target_obj in ("Fridge", "Microwave"): + reachable_pos_idx -= 10 + + closest_loc = self._find_close_reachable_position( + [loc["x"], loc["y"], loc["z"]], reachable_pos_idx + ) + if closest_loc is None: + continue + + # Calculate desired rotation angle + rot_angle = math.atan2( + -(loc["x"] - closest_loc[0]), loc["z"] - closest_loc[2] + ) + if rot_angle > 0: + rot_angle -= 2 * math.pi + rot_angle = -(180 / math.pi) * rot_angle + + # Special angle filtering for Fridge/Microwave + if i < 10 and target_obj in ("Fridge", "Microwave"): + angle_d = abs(self._angle_diff(rot_angle, obj_rot)) + if target_obj == "Fridge" and not ( + (70 < angle_d < 110) or (250 < angle_d < 290) + ): + continue + if target_obj == "Microwave" and not ( + (160 < angle_d < 200) or (0 <= angle_d < 20) + ): + continue + + # Calculate horizon angle + camera_height = self.agent_height + CAMERA_HEIGHT_OFFSET + xz_dist = math.hypot( + loc["x"] - closest_loc[0], loc["z"] - closest_loc[2] + ) + hor_angle = math.atan2(loc["y"] - camera_height, xz_dist) + hor_angle = (180 / math.pi) * hor_angle * 0.9 + + self._step(dict( + action="TeleportFull", + x=closest_loc[0], + y=self.agent_height, + z=closest_loc[2], + rotation=rot_angle, + horizon=-hor_angle, + )) + + if self.last_event.metadata["lastActionSuccess"]: + teleport_success = True + break + else: + logger.debug( + "TeleportFull failed: %s", + self.last_event.metadata.get("errorMessage", ""), + ) + + if not teleport_success: + return "Cannot move to %s" % target_obj + + return "" + + def _pick(self, obj_name): + """Pick up an object. + + Ported from EmbodiedBench ThorConnector.pick(). + """ + obj_id, obj_data = self._get_obj_id_from_name( + obj_name, only_pickupable=True, priority_in_visibility=True, + priority_sliced=self.sliced, + ) + logger.info("pick: %s -> %s", obj_name, obj_id) + + if obj_id is None: + return "Cannot find %s to pick up. Find the object before picking up it" % obj_name + + if ( + obj_data.get("visible") is False + and obj_data.get("parentReceptacles") + and len(obj_data["parentReceptacles"]) > 0 + ): + recep_name = obj_data["parentReceptacles"][0] + ret_msg = ( + "%s is not visible because it is in %s. " + "Note: multiple instances of %s may exist" + % (obj_name, recep_name, recep_name) + ) + # Try anyway + self._step(dict( + action="PickupObject", objectId=obj_id, forceAction=False + )) + else: + self._step(dict( + action="PickupObject", objectId=obj_id, forceAction=False + )) + ret_msg = "" + + if not self.last_event.metadata["lastActionSuccess"]: + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + ret_msg = "Robot is not holding any object" + else: + holding_type = inventory[0].get("objectType", "unknown") + ret_msg = "Robot is currently holding %s" % holding_type + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + + return ret_msg + + def _put(self, receptacle_name): + """Put held object onto a receptacle. + + Ported from EmbodiedBench ThorConnector.put(). + Uses 2x7x2 retry loop with movement adjustments. + """ + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + return "Robot is not holding any object" + + holding_obj_id = inventory[0]["objectId"] + orig_receptacle_name = receptacle_name + ret_msg = "" + halt = False + last_recep_id = None + exclude_obj_id = None + + for k in range(2): # try closest and next closest receptacle + for j in range(7): # movement/look adjustments + for i in range(2): # try inherited receptacles (SinkBasin etc.) + if k == 1 and exclude_obj_id is None: + exclude_obj_id = last_recep_id + + if k == 0 and "|" in orig_receptacle_name: + if i == 1: + continue + recep_id = orig_receptacle_name + receptacle_name = orig_receptacle_name.split("|")[0] + else: + if "Sink" in receptacle_name or "Bathtub" in receptacle_name: + if i == 0: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, get_inherited=True, + exclude_obj_id=exclude_obj_id, + ) + else: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, exclude_obj_id=exclude_obj_id, + ) + else: + if i == 0: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, exclude_obj_id=exclude_obj_id, + ) + else: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, get_inherited=True, + exclude_obj_id=exclude_obj_id, + ) + + if not recep_id: + ret_msg = ( + "Putting the object on %s failed. First check whether " + "the receptacle is open or not. Also try other instances " + "of the receptacle" % receptacle_name + ) + continue + + # Movement adjustments to get receptacle in view + if j == 1: + self._step(dict(action="LookUp")) + self._step(dict(action="LookUp")) + elif j == 2: + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + elif j == 3: + self._step(dict(action="LookUp")) + self._step(dict(action="LookUp")) + self._step(dict(action="MoveBack")) + elif j == 4: + self._step(dict(action="MoveAhead")) + for _ in range(4): + self._step(dict(action="MoveRight")) + elif j == 5: + for _ in range(8): + self._step(dict(action="MoveLeft")) + elif j == 6: + for _ in range(4): + self._step(dict(action="MoveRight")) + self._step(dict(action="RotateHand", x=40)) + + self._step(dict( + action="PutObject", + objectId=holding_obj_id, + receptacleObjectId=recep_id, + forceAction=True, + )) + last_recep_id = recep_id + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + halt = True + break + else: + logger.debug( + "PutObject failed: %s", + self.last_event.metadata.get("errorMessage", ""), + ) + ret_msg = ( + "Putting the object on %s failed. First check the " + "receptacle is open or not. Also try other instances " + "of the receptacle" % receptacle_name + ) + if halt: + break + if halt: + break + + return ret_msg + + def _open(self, obj_name): + """Open a receptacle. + + Ported from EmbodiedBench ThorConnector.open(). + """ + logger.info("open: %s", obj_name) + + if "|" in obj_name: + obj_id = obj_name + obj_name = obj_name.split("|")[0] + else: + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to open. Find the object before opening it" % obj_name + + # Check if already open + open_flag = False + for ob in self.last_event.metadata["objects"]: + if ob["objectId"] == obj_id and ob.get("openable") and ob.get("isOpen"): + open_flag = True + break + + ret_msg = "" + for i in range(4): + self._step(dict(action="OpenObject", objectId=obj_id)) + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + break + else: + if open_flag: + ret_msg = "Open action failed. The %s is already open" % obj_name + else: + ret_msg = "Open action failed." + + # Move around to avoid self-collision + if i == 0: + self._step(dict(action="MoveBack")) + elif i == 1: + self._step(dict(action="MoveBack")) + self._step(dict(action="MoveRight")) + elif i == 2: + self._step(dict(action="MoveLeft")) + self._step(dict(action="MoveLeft")) + + return ret_msg + + def _close(self, obj_name): + """Close a receptacle. + + Ported from EmbodiedBench ThorConnector.close(). + """ + logger.info("close: %s", obj_name) + + if "|" in obj_name: + obj_id = obj_name + obj_name = obj_name.split("|")[0] + else: + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to close" % obj_name + + self._step(dict(action="CloseObject", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + ret_msg = "Close action failed" + for ob in self.last_event.metadata["objects"]: + if ( + ob["objectId"] == obj_id + and ob.get("openable") + and not ob.get("isOpen") + ): + ret_msg += ". The %s is already closed" % obj_name + break + return ret_msg + + return "" + + def _toggleon(self, obj_name): + """Toggle an object on. + + Ported from EmbodiedBench ThorConnector.toggleon(). + """ + logger.info("toggleon: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) + + if obj_id is None: + return "Cannot find %s to turn on" % obj_name + + try: + self._step(dict(action="ToggleObjectOn", objectId=obj_id)) + if not self.last_event.metadata["lastActionSuccess"]: + return "Turn on action failed" + except Exception: + self.last_event.metadata["lastActionSuccess"] = False + return "Turn on action failed" + + return "" + + def _toggleoff(self, obj_name): + """Toggle an object off. + + Ported from EmbodiedBench ThorConnector.toggleoff(). + """ + logger.info("toggleoff: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) + + if obj_id is None: + return "Cannot find %s to turn off" % obj_name + + self._step(dict(action="ToggleObjectOff", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + return "Turn off action failed" + + return "" + + def _slice(self, obj_name): + """Slice an object. + + Ported from EmbodiedBench ThorConnector.slice(). + """ + logger.info("slice: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to slice" % obj_name + + self._step(dict(action="SliceObject", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + return "Slice action failed" + + return "" + + def _drop(self): + """Drop the held object. + + Ported from EmbodiedBench ThorConnector.drop(). + """ + logger.info("drop") + self._step(dict(action="DropHandObject", forceAction=True)) + + if not self.last_event.metadata["lastActionSuccess"]: + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + return "Robot is not holding any object" + return "Drop action failed" + + return "" + + # --- Object Lookup Helpers --- + + def _get_obj_id_from_name( + self, + obj_name, + only_pickupable=False, + only_toggleable=False, + priority_sliced=False, + get_inherited=False, + parent_receptacle_penalty=True, + priority_in_visibility=False, + exclude_obj_id=None, + ): + """Find the closest object matching name, with priority scoring. + + Ported from EmbodiedBench ThorConnector.get_obj_id_from_name(). + """ + obj_id = None + obj_data = None + min_distance = 1e8 + + # If name contains digits (e.g. 'Cabinet_2'), match by name directly + if any(c.isdigit() for c in obj_name): + for obj in self.last_event.metadata["objects"]: + if obj_name in obj["name"]: + return obj["objectId"], obj + return None, None + + for obj in self.last_event.metadata["objects"]: + if obj["objectId"] == exclude_obj_id: + continue + + if only_pickupable and not obj.get("pickupable", False): + continue + if only_toggleable and not obj.get("toggleable", False): + continue + + # Match object type (case-insensitive) + obj_type = obj["objectId"].split("|")[0] + if obj_type.casefold() != obj_name.casefold(): + continue + + # For inherited receptacles (e.g. SinkBasin), check ID format + if get_inherited and len(obj["objectId"].split("|")) != 5: + continue + if not get_inherited and len(obj["objectId"].split("|")) == 5: + # Skip inherited if not requested + pass + + distance = obj.get("distance", 1e8) + penalty = 0 + + # Penalize objects inside closed receptacles + if parent_receptacle_penalty and obj.get("parentReceptacles"): + for p in obj["parentReceptacles"]: + is_open = self._get_object_prop(p, "isOpen") + openable = self._get_object_prop(p, "openable") + if openable is True and is_open is False: + penalty += 100000 + break + + # Prefer empty stove burners + if obj_name.casefold() == "stoveburner": + recep_ids = obj.get("receptacleObjectIds") or [] + if len(recep_ids) > 0: + penalty += 10000 + + # Penalize non-visible objects + if priority_in_visibility and not obj.get("visible", False): + penalty += 1000 + + # Prefer sliced objects + if priority_sliced and "_Slice" in obj.get("name", ""): + penalty -= 100 + + if distance + penalty < min_distance: + min_distance = distance + penalty + obj_data = obj + obj_id = obj["objectId"] + + return obj_id, obj_data + + def _get_object_prop(self, name, prop): + """Get a property of an object by name/ID substring.""" + for obj in self.last_event.metadata["objects"]: + if name in obj["objectId"]: + return obj.get(prop) + return None + + def _find_close_reachable_position(self, loc, nth=1): + """Find the nth closest reachable position to a location.""" + if self.reachable_position_kdtree is None: + return None + n_positions = len(self.reachable_positions) + k = min(nth + 1, n_positions) + if k == 0: + return None + d, idx = self.reachable_position_kdtree.query(loc, k=k) + selected = min(nth - 1, k - 1) + return self.reachable_positions[idx[selected]] if k > 1 else self.reachable_positions[idx] + + @staticmethod + def _angle_diff(x, y): + """Calculate angle difference in degrees.""" + x = math.radians(x) + y = math.radians(y) + return math.degrees(math.atan2(math.sin(x - y), math.cos(x - y))) + + # --- Observation --- + + def _make_observation_response(self, reward=0.0, done=False, info=None): + """Save RGB frame and return IPC response.""" + from PIL import Image + + event = self.last_event + + # Save to episode_output_dir if set, else IPC workspace + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + rgb_path = save_dir / ("rgb_%04d.png" % self.step_count) + + # Save frame as PNG + Image.fromarray(event.frame).save(str(rgb_path)) + + agent = event.metadata["agent"] + pose = [ + agent["position"]["x"], + agent["position"]["y"], + agent["position"]["z"], + agent["rotation"]["y"], + agent.get("cameraHorizon", 0), + 0, + ] + + return make_observation_response( + rgb_path=str(rgb_path), + agent_pose=pose, + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=info or {}, + ) + + +# --- Main bridge loop --- + +def run_bridge(workspace, data_dir): """Main bridge loop for AI2-THOR v2.1.0.""" - logger.info("AI2-THOR v2.1.0 bridge starting (workspace: %s)", workspace) + bridge = EBAlfredBridge(workspace=workspace, data_dir=data_dir) - # In a real implementation: - # from ai2thor.controller import Controller - # controller = Controller(scene="FloorPlan28", gridSize=0.25) + logger.info("AI2-THOR v2.1.0 bridge starting (workspace: %s)", workspace) + bridge.start() write_status(workspace, ready=True) - step_count = 0 - while True: try: command = poll_for_command(workspace, timeout=300.0) @@ -61,55 +1002,59 @@ def run_bridge(workspace: Path) -> None: if cmd_type == "reset": episode_id = command.get("episode_id", "unknown") reset_config = command.get("reset_config", {}) - logger.info("Reset: episode_id=%s, scene=%s", episode_id, reset_config.get("scene", "?")) + logger.info("Reset: episode_id=%s, task=%s", + episode_id, reset_config.get("task_path", "?")) - # Stub: In real impl, would call controller.reset(scene=...) - step_count = 0 + # Set episode output directory for image saving + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + bridge.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) + else: + bridge.episode_output_dir = None - response = make_observation_response( - rgb_path=str(workspace / "rgb_0000.png"), - agent_pose=[0.0, 0.9, 0.0, 0.0, 0.0, 0.0], - metadata={"episode_id": episode_id, "step": "0", "scene": reset_config.get("scene", "unknown")}, - ) - # Stub: write a placeholder image - (workspace / "rgb_0000.png").write_bytes(b"STUB_IMAGE") - write_response(workspace, response) + try: + response = bridge.reset(reset_config) + write_response(workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(workspace, make_error_response(str(e))) elif cmd_type == "step": - step_count += 1 - action = parse_action_from_command(command) - logger.debug("Step %d: action=%s", step_count, action.action_name) - - # Stub: In real impl, would call controller.step(action=action_name, **params) + action_data = command.get("action", {}) + action_text = action_data.get("action_name", "") + logger.debug("Step %d: action=%s", bridge.step_count + 1, action_text) - rgb_name = f"rgb_{step_count:04d}.png" - (workspace / rgb_name).write_bytes(b"STUB_IMAGE") - - response = make_observation_response( - rgb_path=str(workspace / rgb_name), - agent_pose=[float(step_count) * 0.25, 0.9, 0.0, 0.0, 0.0, 0.0], - metadata={"step": str(step_count)}, - done=action.action_name == "Stop", - ) - write_response(workspace, response) + try: + response = bridge.step(action_text) + write_response(workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(workspace, make_error_response(str(e))) elif cmd_type == "close": logger.info("Close command received") - # Stub: controller.stop() would go here + bridge.stop() write_response(workspace, {"status": "ok"}) break else: - write_response(workspace, make_error_response(f"Unknown command: {cmd_type}")) + write_response( + workspace, make_error_response("Unknown command: %s" % cmd_type) + ) -def main() -> None: - parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge") +def main(): + parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge (EB-Alfred)") parser.add_argument("--workspace", type=Path, required=True) - args = parser.parse_args() + parser.add_argument("--data-dir", type=Path, default=Path("./datasets")) + args, _ = parser.parse_known_args() - logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s") - run_bridge(workspace=args.workspace) + logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", + ) + run_bridge(workspace=args.workspace, data_dir=args.data_dir) if __name__ == "__main__": diff --git a/easi/simulators/ai2thor/v2_1_0/requirements.txt b/easi/simulators/ai2thor/v2_1_0/requirements.txt index a482c8d..b9e096b 100644 --- a/easi/simulators/ai2thor/v2_1_0/requirements.txt +++ b/easi/simulators/ai2thor/v2_1_0/requirements.txt @@ -1,3 +1,4 @@ ai2thor==2.1.0 numpy<1.24 Pillow +scipy diff --git a/easi/simulators/ai2thor/v2_1_0/thor_utils.py b/easi/simulators/ai2thor/v2_1_0/thor_utils.py new file mode 100644 index 0000000..e813272 --- /dev/null +++ b/easi/simulators/ai2thor/v2_1_0/thor_utils.py @@ -0,0 +1,362 @@ +"""Helper functions for the AI2-THOR v2.1.0 bridge (EB-Alfred track). + +Ported from EmbodiedBench: +- envs/eb_alfred/env/tasks.py (goal evaluation) +- envs/eb_alfred/utils.py (object name mapping, task loading) +- envs/eb_alfred/gen/constants.py (THOR constants) + +This file runs inside the ai2thor conda env (Python 3.8). +""" +from __future__ import annotations + +import json +import logging +import os +import string +from pathlib import Path + +import numpy as np + +logger = logging.getLogger("easi.bridge.thor_utils") + +# --- Constants (from EmbodiedBench gen/constants.py) --- + +SCREEN_WIDTH = 500 +SCREEN_HEIGHT = 500 +CAMERA_HEIGHT_OFFSET = 0.75 +VISIBILITY_DISTANCE = 1.5 +AGENT_STEP_SIZE = 0.25 +RECORD_SMOOTHING_FACTOR = 1 +AGENT_HORIZON_ADJ = 15 +AGENT_ROTATE_ADJ = 90 +RENDER_IMAGE = True +RENDER_DEPTH_IMAGE = False +RENDER_CLASS_IMAGE = False +RENDER_OBJECT_IMAGE = False + +GOALS = [ + "pick_and_place_simple", + "pick_two_obj_and_place", + "look_at_obj_in_light", + "pick_clean_then_place_in_recep", + "pick_heat_then_place_in_recep", + "pick_cool_then_place_in_recep", + "pick_and_place_with_movable_recep", +] + + +# --- Object Name Mapping --- + +def natural_word_to_ithor_name(w: str) -> str: + """Map natural language object name to iTHOR name. + + e.g., 'floor lamp' -> 'FloorLamp', 'alarm clock' -> 'AlarmClock' + If the word contains digits (e.g., 'Cabinet_2'), return as-is. + """ + if any(i.isdigit() for i in w): + return w + if w == "CD": + return w + return "".join([string.capwords(x) for x in w.split()]) + + +# --- Task JSON Loading --- + +def load_task_json(task_path: str, data_dir: str) -> dict: + """Load preprocessed traj_data.json for an EB-Alfred episode. + + Args: + task_path: e.g. 'pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001' + data_dir: path to the downloaded dataset directory + """ + # Try standard path: /tasks//pp/ann_0.json + # (repeat_idx is handled by the caller) + json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") + if not os.path.exists(json_path): + # Fallback: try traj_data.json + json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") + if not os.path.exists(json_path): + raise FileNotFoundError( + f"Task annotation not found at {json_path}. " + f"Ensure tasks.zip was extracted in {data_dir}" + ) + with open(json_path) as f: + data = json.load(f) + return data + + +def load_task_json_with_repeat(task_path: str, repeat_idx: int, data_dir: str) -> dict: + """Load the specific repeat annotation for an EB-Alfred episode.""" + json_path = os.path.join(data_dir, "tasks", task_path, "pp", f"ann_{repeat_idx}.json") + if not os.path.exists(json_path): + # Fallback to ann_0.json + json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") + if not os.path.exists(json_path): + # Fallback to traj_data.json + json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") + if not os.path.exists(json_path): + raise FileNotFoundError( + f"Task annotation not found for {task_path} repeat {repeat_idx} in {data_dir}" + ) + with open(json_path) as f: + data = json.load(f) + return data + + +# --- Object Lookup Helpers --- + +def get_objects_of_type(obj_type: str, metadata: dict) -> list: + """Get all objects of a given type from THOR metadata.""" + return [obj for obj in metadata["objects"] if obj_type in obj["objectId"]] + + +def get_objects_with_name_and_prop(name: str, prop: str, metadata: dict) -> list: + """Get objects matching name that have a truthy property.""" + return [obj for obj in metadata["objects"] + if name in obj["objectId"] and obj.get(prop)] + + +def get_obj_of_type_closest_to_obj(obj_type: str, ref_obj_id: str, metadata: dict): + """Get the object of obj_type closest to ref_obj_id.""" + ref_obj = None + for obj in metadata["objects"]: + if obj["objectId"] == ref_obj_id: + ref_obj = obj + break + if ref_obj is None: + return None + + candidates = get_objects_of_type(obj_type, metadata) + if not candidates: + return None + + min_dist = float("inf") + closest = None + for c in candidates: + dx = c["position"]["x"] - ref_obj["position"]["x"] + dz = c["position"]["z"] - ref_obj["position"]["z"] + dist = (dx ** 2 + dz ** 2) ** 0.5 + if dist < min_dist: + min_dist = dist + closest = c + return closest + + +# --- Goal Evaluation --- + +def get_targets_from_traj(traj_data: dict) -> dict: + """Extract goal targets from trajectory data.""" + pddl = traj_data.get("pddl_params", {}) + targets = {} + # Map from traj keys to goal target keys + if "object_target" in pddl: + targets["object"] = pddl["object_target"] + if "parent_target" in pddl: + targets["parent"] = pddl["parent_target"] + if "toggle_target" in pddl: + targets["toggle"] = pddl["toggle_target"] + if "mrecep_target" in pddl: + targets["mrecep"] = pddl["mrecep_target"] + # Sliced variant + if "object_sliced" in pddl and pddl["object_sliced"]: + targets["object"] = targets.get("object", "") + "Sliced" + return targets + + +def evaluate_goal_conditions( + traj_data: dict, + event, + cleaned_objects: set, + cooled_objects: set, + heated_objects: set, +) -> tuple: + """Evaluate EB-Alfred goal conditions. + + Returns: + (goal_satisfied: bool, progress: float) + + progress = satisfied_conditions / total_conditions + """ + task_type = traj_data.get("task_type", "") + targets = get_targets_from_traj(traj_data) + metadata = event.metadata + + evaluator = GOAL_EVALUATORS.get(task_type) + if evaluator is None: + logger.warning("Unknown task type: %s", task_type) + return False, 0.0 + + s, ts = evaluator(targets, metadata, cleaned_objects, cooled_objects, heated_objects) + progress = s / ts if ts > 0 else 0.0 + satisfied = s >= ts + return satisfied, progress + + +# --- Per-task-type goal evaluators --- + +def _eval_pick_and_place_simple(targets, metadata, cleaned, cooled, heated): + ts = 1 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + if np.any([np.any([p["objectId"] in (r.get("receptacleObjectIds") or []) + for r in receptacles]) + for p in pickupables]): + s += 1 + return s, ts + + +def _eval_pick_two_obj_and_place(targets, metadata, cleaned, cooled, heated): + ts = 2 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 2 + s += min(len([p for p in pickupables if "Sliced" in p["objectId"]]), 2) + + s += min(np.max([sum([1 if (r.get("receptacleObjectIds") is not None + and p["objectId"] in r["receptacleObjectIds"]) else 0 + for p in pickupables]) + for r in receptacles]) if receptacles else 0, 2) + return s, ts + + +def _eval_look_at_obj_in_light(targets, metadata, cleaned, cooled, heated): + ts = 2 + s = 0 + toggleables = get_objects_with_name_and_prop(targets.get("toggle", ""), "toggleable", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + inventory = metadata.get("inventoryObjects", []) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + if len(inventory) > 0 and inventory[0]["objectId"] in [p["objectId"] for p in pickupables]: + s += 1 + if np.any([t["isToggled"] and t["visible"] for t in toggleables]): + s += 1 + return s, ts + + +def _eval_pick_heat_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_heated = [p["objectId"] for p in pickupables if p["objectId"] in heated] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_heated) > 0: + s += 1 + if np.any([obj_id in objs_heated for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_cool_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_cooled = [p["objectId"] for p in pickupables if p["objectId"] in cooled] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_cooled) > 0: + s += 1 + if np.any([obj_id in objs_cooled for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_clean_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_cleaned = [p["objectId"] for p in pickupables if p["objectId"] in cleaned] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_cleaned) > 0: + s += 1 + if np.any([obj_id in objs_cleaned for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_and_place_with_movable_recep(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + movables = get_objects_with_name_and_prop(targets.get("mrecep", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + pickup_in_movable = [p for p in pickupables for m in movables + if m.get("receptacleObjectIds") is not None + and p["objectId"] in m["receptacleObjectIds"]] + movable_in_recep = [m for m in movables for r in receptacles + if r.get("receptacleObjectIds") is not None + and m["objectId"] in r["receptacleObjectIds"]] + + if len(pickup_in_movable) > 0: + s += 1 + if len(movable_in_recep) > 0: + s += 1 + if np.any([np.any([p["objectId"] in (m.get("receptacleObjectIds") or []) for p in pickupables]) and + np.any([r["objectId"] in (m.get("parentReceptacles") or []) for r in receptacles]) + for m in movables + if m.get("parentReceptacles") is not None and m.get("receptacleObjectIds") is not None]): + s += 1 + return s, ts + + +GOAL_EVALUATORS = { + "pick_and_place_simple": _eval_pick_and_place_simple, + "pick_two_obj_and_place": _eval_pick_two_obj_and_place, + "look_at_obj_in_light": _eval_look_at_obj_in_light, + "pick_heat_then_place_in_recep": _eval_pick_heat_then_place, + "pick_cool_then_place_in_recep": _eval_pick_cool_then_place, + "pick_clean_then_place_in_recep": _eval_pick_clean_then_place, + "pick_and_place_with_movable_recep": _eval_pick_and_place_with_movable_recep, +} diff --git a/easi/simulators/dummy/v1/bridge.py b/easi/simulators/dummy/v1/bridge.py index ef9e7a3..bbea23b 100644 --- a/easi/simulators/dummy/v1/bridge.py +++ b/easi/simulators/dummy/v1/bridge.py @@ -38,13 +38,19 @@ logger = logging.getLogger("easi.bridge.dummy") -def _generate_dummy_image(workspace: Path, step: int) -> str: +def _generate_dummy_image(workspace: Path, step: int, output_dir: Path | None = None) -> str: """Generate a small placeholder PNG image. Creates a minimal valid PNG file (1x1 pixel, red) to simulate an observation image without requiring Pillow. + + Args: + workspace: IPC workspace directory (fallback for image saving). + step: Current step number (used for filename and color). + output_dir: If provided, save image here instead of workspace. """ - rgb_path = workspace / f"rgb_{step:04d}.png" + save_dir = output_dir if output_dir is not None else workspace + rgb_path = save_dir / f"rgb_{step:04d}.png" # Minimal valid 1x1 red PNG (67 bytes) # This avoids requiring Pillow in the dummy simulator @@ -88,6 +94,7 @@ def run_bridge(workspace: Path, step_delay: float = 0.0) -> None: write_status(workspace, ready=True) step_count = 0 + episode_output_dir = None # Set per-episode from reset command while True: try: @@ -102,11 +109,19 @@ def run_bridge(workspace: Path, step_delay: float = 0.0) -> None: episode_id = command.get("episode_id", "unknown") logger.info("Reset: episode_id=%s", episode_id) + # Read episode output directory (None for smoke tests) + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + episode_output_dir = Path(raw_output_dir) + episode_output_dir.mkdir(parents=True, exist_ok=True) + else: + episode_output_dir = None + if step_delay > 0: time.sleep(step_delay) step_count = 0 - rgb_path = _generate_dummy_image(workspace, step_count) + rgb_path = _generate_dummy_image(workspace, step_count, episode_output_dir) response = make_observation_response( rgb_path=rgb_path, @@ -123,7 +138,7 @@ def run_bridge(workspace: Path, step_delay: float = 0.0) -> None: if step_delay > 0: time.sleep(step_delay) - rgb_path = _generate_dummy_image(workspace, step_count) + rgb_path = _generate_dummy_image(workspace, step_count, episode_output_dir) # Dummy: done after 10 steps or on Stop action done = step_count >= 10 or action.action_name == "Stop" @@ -151,7 +166,7 @@ def main() -> None: parser = argparse.ArgumentParser(description="Dummy simulator bridge") parser.add_argument("--workspace", type=Path, required=True, help="IPC workspace directory") parser.add_argument("--step-delay", type=float, default=0.0, help="Delay per step in seconds") - args = parser.parse_args() + args, _ = parser.parse_known_args() logging.basicConfig( level=logging.DEBUG, diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 5a9f40a..3a938ce 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -12,13 +12,14 @@ from __future__ import annotations import importlib -import logging from dataclasses import dataclass from pathlib import Path import yaml -logger = logging.getLogger("easi.simulators.registry") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) @dataclass diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 26962f2..f1dfba9 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -5,17 +5,18 @@ - Health check: Polls status.json with configurable timeout - Send command: Writes command.json, polls response.json - Crash recovery: Detects subprocess exit during polling -- Cleanup: SIGTERM → wait → SIGKILL the entire process group; removes temp workspace +- Cleanup: SIGTERM -> wait -> SIGKILL the entire process group; removes temp workspace Supports xvfb-run wrapping for simulators that need a display. """ from __future__ import annotations -import logging import os import signal import subprocess +import threading +from collections import deque from pathlib import Path from easi.communication.filesystem import ( @@ -26,8 +27,9 @@ write_command, ) from easi.core.exceptions import SimulatorError, SimulatorTimeoutError +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.simulators.subprocess_runner") +logger = get_logger(__name__) class SubprocessRunner: @@ -42,6 +44,7 @@ def __init__( startup_timeout: float = 30.0, command_timeout: float = 60.0, poll_interval: float = 0.1, + extra_args: list[str] | None = None, ): self.python_executable = python_executable self.bridge_script_path = bridge_script_path @@ -50,9 +53,12 @@ def __init__( self.startup_timeout = startup_timeout self.command_timeout = command_timeout self.poll_interval = poll_interval + self.extra_args = extra_args or [] self._process: subprocess.Popen | None = None self._workspace: Path | None = None + self._output_lines: deque[str] = deque(maxlen=200) + self._reader_thread: threading.Thread | None = None @property def workspace(self) -> Path | None: @@ -65,6 +71,7 @@ def launch(self) -> None: raise RuntimeError("Subprocess already running") self._workspace = create_workspace() + self._output_lines.clear() cmd = self._build_launch_command() logger.info( @@ -78,9 +85,18 @@ def launch(self) -> None: cmd, preexec_fn=os.setsid, # new session = new process group stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + stderr=subprocess.STDOUT, # merge stderr into stdout + text=True, + bufsize=1, ) + # Stream bridge output through logger in a background thread + self._reader_thread = threading.Thread( + target=self._stream_output, + daemon=True, + ) + self._reader_thread.start() + # Wait for the bridge to signal readiness try: status = poll_for_status( @@ -90,13 +106,17 @@ def launch(self) -> None: process=self._process, ) if not status.get("ready", False): - stderr = self._read_stderr() + output = self._get_recent_output() raise SimulatorError( - f"Bridge reported not ready. stderr:\n{stderr}" + f"Bridge reported not ready. Output:\n{output}" ) logger.info("Bridge subprocess ready (PID: %d)", self._process.pid) - except (SimulatorError, SimulatorTimeoutError): + except (SimulatorError, SimulatorTimeoutError) as exc: + # Collect output before shutdown destroys the process + output = self._get_recent_output() self.shutdown() + if output: + raise SimulatorError(f"{exc}\n\nBridge output:\n{output}") from exc raise def send_command(self, command: dict, timeout: float | None = None) -> dict: @@ -134,7 +154,11 @@ def shutdown(self) -> None: Unity binaries) to prevent zombie processes. """ self._terminate_process_tree() + # Wait for the reader thread to drain any final output from the bridge + if self._reader_thread is not None: + self._reader_thread.join(timeout=2) self._process = None + self._reader_thread = None if self._workspace is not None: cleanup_workspace(self._workspace) @@ -148,6 +172,7 @@ def _build_launch_command(self) -> list[str]: "--workspace", str(self._workspace), ] + cmd.extend(self.extra_args) if self.needs_display and not self._has_display(): # Wrap with xvfb-run for headless environments @@ -163,37 +188,52 @@ def _has_display(self) -> bool: display = os.environ.get("DISPLAY", "") return bool(display) and not display.startswith(":") + def _stream_output(self) -> None: + """Read bridge stdout line-by-line and log at DEBUG level. + + Runs in a daemon thread for the lifetime of the subprocess. + """ + proc = self._process + if proc is None or proc.stdout is None: + return + try: + for line in proc.stdout: + line = line.rstrip() + self._output_lines.append(line) + logger.debug("[bridge] %s", line) + except (ValueError, OSError): + pass # pipe closed + + def _get_recent_output(self) -> str: + """Return the last N lines of captured bridge output.""" + return "\n".join(self._output_lines) + def _terminate_process_tree(self) -> None: """Kill the bridge and ALL its child processes.""" if self._process is None: return + pid = self._process.pid try: - pgid = os.getpgid(self._process.pid) + pgid = os.getpgid(pid) except ProcessLookupError: - return # already dead + logger.info("Bridge process (PID %d) already exited", pid) + return try: # SIGTERM the entire group first (graceful) + logger.info("Sending SIGTERM to bridge process group (PID %d)", pid) os.killpg(pgid, signal.SIGTERM) self._process.wait(timeout=10) + logger.info("Bridge process (PID %d) exited after SIGTERM", pid) except subprocess.TimeoutExpired: # SIGKILL the entire group (force) + logger.warning("Bridge did not exit after SIGTERM, sending SIGKILL") try: os.killpg(pgid, signal.SIGKILL) self._process.wait(timeout=5) + logger.info("Bridge process (PID %d) killed", pid) except (ProcessLookupError, subprocess.TimeoutExpired): pass except ProcessLookupError: - pass # already dead - - logger.debug("Process tree terminated") - - def _read_stderr(self) -> str: - """Read stderr from the subprocess (non-blocking).""" - if self._process is None or self._process.stderr is None: - return "" - try: - return self._process.stderr.read().decode("utf-8", errors="replace") - except Exception: - return "" + logger.info("Bridge process (PID %d) already exited", pid) diff --git a/easi/tasks/dataset.py b/easi/tasks/dataset.py index af7430a..39779bf 100644 --- a/easi/tasks/dataset.py +++ b/easi/tasks/dataset.py @@ -5,14 +5,14 @@ from __future__ import annotations -import logging from pathlib import Path from easi.core.exceptions import DatasetError from easi.utils.locking import file_lock +from easi.utils.logging import get_logger from easi.utils.paths import get_datasets_dir, get_locks_dir -logger = logging.getLogger("easi.tasks.dataset") +logger = get_logger(__name__) class DatasetDownloader: diff --git a/easi/tasks/ebalfred/__init__.py b/easi/tasks/ebalfred/__init__.py new file mode 100644 index 0000000..003b9d4 --- /dev/null +++ b/easi/tasks/ebalfred/__init__.py @@ -0,0 +1 @@ +"""EB-Alfred task for EASI.""" diff --git a/easi/tasks/ebalfred/actions.py b/easi/tasks/ebalfred/actions.py new file mode 100644 index 0000000..fea727b --- /dev/null +++ b/easi/tasks/ebalfred/actions.py @@ -0,0 +1,83 @@ +"""EB-Alfred action space definitions. + +Reference: EmbodiedBench/embodiedbench/envs/eb_alfred/utils.py + EmbodiedBench/embodiedbench/envs/eb_alfred/EBAlfEnv.py +""" +from __future__ import annotations + +# All objects in EB-Alfred (alfred_objs from EmbodiedBench) +EBALFRED_OBJECTS = [ + "Cart", "Potato", "Faucet", "Ottoman", "CoffeeMachine", "Candle", "CD", + "Pan", "Watch", "HandTowel", "SprayBottle", "BaseballBat", "CellPhone", + "Kettle", "Mug", "StoveBurner", "Bowl", "Toilet", "DiningTable", "Spoon", + "TissueBox", "Shelf", "Apple", "TennisRacket", "SoapBar", "Cloth", + "Plunger", "FloorLamp", "ToiletPaperHanger", "CoffeeTable", "Spatula", + "Plate", "Bed", "Glassbottle", "Knife", "Tomato", "ButterKnife", + "Dresser", "Microwave", "CounterTop", "GarbageCan", "WateringCan", "Vase", + "ArmChair", "Safe", "KeyChain", "Pot", "Pen", "Cabinet", "Desk", + "Newspaper", "Drawer", "Sofa", "Bread", "Book", "Lettuce", "CreditCard", + "AlarmClock", "ToiletPaper", "SideTable", "Fork", "Box", "Egg", + "DeskLamp", "Ladle", "WineBottle", "Pencil", "Laptop", "RemoteControl", + "BasketBall", "DishSponge", "Cup", "SaltShaker", "PepperShaker", "Pillow", + "Bathtub", "SoapBottle", "Statue", "Fridge", "Sink", +] + +# Pickupable objects (alfred_pick_obj) +EBALFRED_PICKUPABLE = [ + "KeyChain", "Potato", "Pot", "Pen", "Candle", "CD", "Pan", "Watch", + "Newspaper", "HandTowel", "SprayBottle", "BaseballBat", "Bread", + "CellPhone", "Book", "Lettuce", "CreditCard", "Mug", "AlarmClock", + "Kettle", "ToiletPaper", "Bowl", "Fork", "Box", "Egg", "Spoon", + "TissueBox", "Apple", "TennisRacket", "Ladle", "WineBottle", "Cloth", + "Plunger", "SoapBar", "Pencil", "Laptop", "RemoteControl", "BasketBall", + "DishSponge", "Cup", "Spatula", "SaltShaker", "Plate", "PepperShaker", + "Pillow", "Glassbottle", "SoapBottle", "Knife", "Statue", "Tomato", + "ButterKnife", "WateringCan", "Vase", +] + +# Openable objects (alfred_open_obj) +EBALFRED_OPENABLE = [ + "Safe", "Laptop", "Fridge", "Box", "Microwave", "Cabinet", "Drawer", +] + +# Sliceable objects (alfred_slice_obj) +EBALFRED_SLICEABLE = [ + "Potato", "Lettuce", "Tomato", "Apple", "Bread", +] + +# Toggleable objects (alfred_toggle_obj) +EBALFRED_TOGGLEABLE = [ + "Microwave", "DeskLamp", "FloorLamp", "Faucet", +] + +# Receptacles (alfred_recep) +EBALFRED_RECEPTACLES = [ + "ArmChair", "Safe", "Cart", "Ottoman", "Pot", "CoffeeMachine", "Desk", + "Cabinet", "Pan", "Drawer", "Sofa", "Mug", "StoveBurner", "SideTable", + "Toilet", "Bowl", "Box", "DiningTable", "Shelf", "ToiletPaperHanger", + "CoffeeTable", "Cup", "Plate", "Bathtub", "Bed", "Dresser", "Fridge", + "Microwave", "CounterTop", "Sink", "GarbageCan", +] + + +def get_global_action_space() -> list[str]: + """Generate the full EB-Alfred action space (static, ~133 actions). + + Reference: EmbodiedBench/embodiedbench/envs/eb_alfred/EBAlfEnv.py + """ + actions = [] + # Find actions for all objects + actions.extend(f"find a {obj}" for obj in EBALFRED_OBJECTS) + # Pickup actions + actions.extend(f"pick up the {obj}" for obj in EBALFRED_PICKUPABLE) + # Put / drop + actions.extend(["put down the object in hand", "drop the object in hand"]) + # Open / close + for obj in EBALFRED_OPENABLE: + actions.extend([f"open the {obj}", f"close the {obj}"]) + # Toggle on/off + for obj in EBALFRED_TOGGLEABLE: + actions.extend([f"turn on the {obj}", f"turn off the {obj}"]) + # Slice + actions.extend(f"slice the {obj}" for obj in EBALFRED_SLICEABLE) + return actions diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml new file mode 100644 index 0000000..b12c529 --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -0,0 +1,16 @@ +name: ebalfred_base +display_name: "EB-Alfred Base Split" +description: "Base evaluation split for EB-Alfred" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "base" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml new file mode 100644 index 0000000..92df2a2 --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -0,0 +1,16 @@ +name: ebalfred_common_sense +display_name: "EB-Alfred Common Sense Split" +description: "Common sense evaluation split testing implicit knowledge" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "common_sense" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml new file mode 100644 index 0000000..1e076ff --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -0,0 +1,16 @@ +name: ebalfred_complex_instruction +display_name: "EB-Alfred Complex Instruction Split" +description: "Complex instruction evaluation split with nuanced language" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "complex_instruction" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml new file mode 100644 index 0000000..a7537d4 --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -0,0 +1,16 @@ +name: ebalfred_long_horizon +display_name: "EB-Alfred Long Horizon Split" +description: "Long-horizon evaluation split requiring multi-step planning" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "long_horizon" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml new file mode 100644 index 0000000..4e8836c --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -0,0 +1,16 @@ +name: ebalfred_spatial +display_name: "EB-Alfred Spatial Split" +description: "Spatial reasoning evaluation split" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "spatial" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml new file mode 100644 index 0000000..1909fe4 --- /dev/null +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -0,0 +1,16 @@ +name: ebalfred_visual_appearance +display_name: "EB-Alfred Visual Appearance Split" +description: "Visual appearance evaluation split testing visual grounding" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +action_space: [] +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + split: "visual_appearance" + zip_files: + - "tasks.zip" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/prompts.py b/easi/tasks/ebalfred/prompts.py new file mode 100644 index 0000000..74adc57 --- /dev/null +++ b/easi/tasks/ebalfred/prompts.py @@ -0,0 +1,109 @@ +"""EB-Alfred-specific prompt builder (Decision #10: OpenAI message format). + +Produces prompts in OpenAI message format with interleaved text+image, +tailored for the EB-Alfred household task domain. +Referenced in ebalfred*.yaml via: + agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + +Reference: EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py +""" +from __future__ import annotations + +from easi.agents.prompt_builder import _encode_image_base64 +from easi.core.episode import Observation + + +class EBAlfredPromptBuilder: + """Prompt builder for EB-Alfred household tasks in AI2-THOR. + + Returns OpenAI message format (list[dict]) with interleaved text+image. + """ + + SYSTEM_TEMPLATE = """You are an embodied agent in an AI2-THOR household environment. You must complete household tasks by choosing high-level skill actions. + +## Task +{task_description} + +## Available Actions +Each action is a high-level skill. The simulator will handle low-level navigation and interaction. +{action_list} + +## Action Categories +- **find a **: Navigate to the specified object +- **pick up the **: Pick up an object (must be near it first) +- **put down the object in hand**: Place held object in the nearest receptacle +- **open/close the **: Open or close a container (Fridge, Cabinet, etc.) +- **turn on/off the **: Toggle an appliance (Faucet, Microwave, etc.) +- **slice the **: Slice a sliceable object (must be holding a knife) + +## Output Format +Respond with valid JSON: +{{ + "observation": "Describe what you see in the current image", + "reasoning": "Step-by-step reasoning about what to do next", + "plan": "Your high-level plan to complete the task", + "executable_plan": [ + {{"action": ""}} + ] +}} + +## Tips +- Find objects before trying to interact with them. +- To clean: put object in sink, turn on faucet, turn off faucet, pick up object. +- To heat: put object in microwave, turn on microwave, turn off microwave, pick up object. +- To cool: put object in fridge, close fridge, open fridge, pick up object. +- Output one action at a time for reliability. +""" + + STEP_TEMPLATE = """Task: {task_description} + +{history_section} + +Look at the current observation image and decide your next action. Respond with valid JSON.""" + + def build_system_prompt( + self, + action_space: list[str], + task_description: str, + ) -> list[dict]: + action_list = "\n".join( + f" {i}. {name}" for i, name in enumerate(action_space) + ) + text = self.SYSTEM_TEMPLATE.format( + action_list=action_list, + task_description=task_description, + ) + return [{"role": "system", "content": text}] + + def build_step_prompt( + self, + observation: Observation, + task_description: str, + action_history: list[tuple[str, str]], + ) -> list[dict]: + if action_history: + history_lines = [] + for i, (action_name, feedback) in enumerate(action_history): + status = "OK" if "success" in feedback.lower() else "FAILED" + history_lines.append(f" Step {i+1}: {action_name} → {status} ({feedback})") + history_section = "## Previous Actions\n" + "\n".join(history_lines) + else: + history_section = "This is your first action. Start by observing the environment." + + text = self.STEP_TEMPLATE.format( + task_description=task_description, + history_section=history_section, + ) + + # Build interleaved content parts (text + image) + content_parts: list[dict] = [{"type": "text", "text": text}] + if observation.rgb_path: + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content_parts.append({ + "type": "image_url", + "image_url": {"url": image_url}, + }) + + return [{"role": "user", "content": content_parts}] diff --git a/easi/tasks/ebalfred/task.py b/easi/tasks/ebalfred/task.py new file mode 100644 index 0000000..5c5abe8 --- /dev/null +++ b/easi/tasks/ebalfred/task.py @@ -0,0 +1,104 @@ +"""EB-Alfred task for EASI. + +Adapts the EmbodiedBench EB-Alfred track to EASI's task interface. +Supports multiple splits via per-split .yaml configs (Task 4 infra). + +When loaded via a split yaml (e.g., ebalfred_base), episodes come from +HuggingFace dataset rows. When loaded via get_task_yaml_path(), uses +ebalfred_base.yaml as the default fallback. + +Reference: EmbodiedBench/embodiedbench/envs/eb_alfred/EBAlfEnv.py +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult +from easi.tasks.ebalfred.actions import get_global_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBAlfredTask(BaseTask): + + def __init__(self, data_dir: Path | None = None, split_yaml_path: Path | None = None): + super().__init__(data_dir=data_dir, split_yaml_path=split_yaml_path) + # Override static action space with dynamic one + self._config["action_space"] = get_global_action_space() + + def get_task_yaml_path(self) -> Path: + # Decision #4: No task.yaml — use ebalfred_base.yaml as default fallback + return Path(__file__).parent / "ebalfred_base.yaml" + + def get_instruction(self, episode: dict) -> str: + """Decision #2: EB-Alfred uses 'instruction' field from HF row.""" + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map EB-Alfred episode (HF row) to AI2-THOR bridge reset config. + + HF row columns: id, task, repeat_idx, instruction, task_type, trial_id + The bridge uses task_path to find annotation files inside the extracted tasks.zip: + /oscarqjh_EB-Alfred_easi/tasks//pp/ann_.json + """ + data_dir = episode.get("_data_dir", "") + return { + "task_path": episode["task"], + "repeat_idx": episode.get("repeat_idx", 0), + "instruction": episode.get("instruction", ""), + "episode_id": episode.get("id", ""), + "task_type": episode.get("task_type", ""), + "trial_id": episode.get("trial_id", ""), + "data_dir": data_dir, + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract metrics from the trajectory. + + The bridge reports task_success and task_progress in StepResult.info, + computed by EB-Alfred's goal_conditions_met() running inside the bridge. + """ + if not trajectory: + return { + "task_success": 0.0, + "task_progress": 0.0, + "num_steps": 0.0, + "total_reward": 0.0, + } + + last_step = trajectory[-1] + return { + "task_success": last_step.info.get("task_success", 0.0), + "task_progress": last_step.info.get("task_progress", 0.0), + "num_steps": float(len(trajectory)), + "total_reward": sum(s.reward for s in trajectory), + } + + def _get_builtin_episodes(self) -> list[dict]: + """Return minimal built-in episodes for testing without dataset. + + Matches EB-Alfred_easi column structure: id, task, repeat_idx, + instruction, task_type, trial_id. + """ + return [ + { + "id": 0, + "task": "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001", + "repeat_idx": 0, + "instruction": "Put a mug on the shelf.", + "task_type": "pick_and_place_simple", + "trial_id": "trial_T20190001", + }, + { + "id": 1, + "task": "pick_clean_then_place_in_recep-Plate-None-CounterTop-2/trial_T20190002", + "repeat_idx": 0, + "instruction": "Rinse off a plate and put it on the counter.", + "task_type": "pick_clean_then_place_in_recep", + "trial_id": "trial_T20190002", + }, + ] diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py index 0ed10a7..aa68c8d 100644 --- a/easi/tasks/registry.py +++ b/easi/tasks/registry.py @@ -11,13 +11,14 @@ from __future__ import annotations import importlib -import logging from dataclasses import dataclass from pathlib import Path import yaml -logger = logging.getLogger("easi.tasks.registry") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) @dataclass @@ -38,31 +39,46 @@ class TaskEntry: _registry: dict[str, TaskEntry] | None = None -def _discover_tasks() -> dict[str, TaskEntry]: - """Scan task directories for task.yaml files.""" - tasks_dir = Path(__file__).parent +def _discover_tasks(tasks_dir: Path | None = None) -> dict[str, TaskEntry]: + """Scan task directories for .yaml config files. + + Discovers all *.yaml files in immediate subdirectories of tasks_dir. + Each .yaml file registers as its own task (enabling multi-split tasks). + """ + if tasks_dir is None: + tasks_dir = Path(__file__).parent entries: dict[str, TaskEntry] = {} - for task_yaml_path in sorted(tasks_dir.glob("*/task.yaml")): - try: - config = yaml.safe_load(task_yaml_path.read_text()) - except Exception as e: - logger.warning("Failed to load %s: %s", task_yaml_path, e) + for subdir in sorted(tasks_dir.iterdir()): + if not subdir.is_dir() or subdir.name.startswith("_"): continue - name = config["name"] - entries[name] = TaskEntry( - name=name, - display_name=config.get("display_name", name), - description=config.get("description", ""), - simulator_key=config["simulator"], - task_class=config["task_class"], - action_space=config.get("action_space", []), - max_steps=config.get("max_steps", 500), - config_path=task_yaml_path, - ) - - logger.debug("Discovered task: %s (simulator: %s)", name, config["simulator"]) + # Find all .yaml files in this task folder + yaml_files = sorted(subdir.glob("*.yaml")) + + for task_yaml_path in yaml_files: + try: + config = yaml.safe_load(task_yaml_path.read_text()) + except Exception as e: + logger.warning("Failed to load %s: %s", task_yaml_path, e) + continue + + if not isinstance(config, dict) or "name" not in config: + continue + + name = config["name"] + entries[name] = TaskEntry( + name=name, + display_name=config.get("display_name", name), + description=config.get("description", ""), + simulator_key=config["simulator"], + task_class=config["task_class"], + action_space=config.get("action_space", []), + max_steps=config.get("max_steps", 500), + config_path=task_yaml_path, + ) + + logger.debug("Discovered task: %s from %s", name, task_yaml_path.name) return entries diff --git a/easi/utils/import_utils.py b/easi/utils/import_utils.py new file mode 100644 index 0000000..0e7b4c3 --- /dev/null +++ b/easi/utils/import_utils.py @@ -0,0 +1,24 @@ +"""Dynamic class import utility.""" + +from __future__ import annotations + +import importlib + + +def import_class(dotted_path: str) -> type: + """Import a class from a dotted path. + + Args: + dotted_path: Fully qualified class name + (e.g., "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder"). + + Returns: + The class object. + + Raises: + ImportError: If the module cannot be found. + AttributeError: If the class does not exist in the module. + """ + module_path, class_name = dotted_path.rsplit(".", 1) + module = importlib.import_module(module_path) + return getattr(module, class_name) diff --git a/easi/utils/locking.py b/easi/utils/locking.py index d482e45..2cff516 100644 --- a/easi/utils/locking.py +++ b/easi/utils/locking.py @@ -8,12 +8,13 @@ from __future__ import annotations import fcntl -import logging from contextlib import contextmanager from pathlib import Path from typing import Generator -logger = logging.getLogger("easi.utils.locking") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) @contextmanager diff --git a/easi/utils/logging.py b/easi/utils/logging.py index d5ba59d..7dc4275 100644 --- a/easi/utils/logging.py +++ b/easi/utils/logging.py @@ -9,15 +9,20 @@ import logging -def get_logger(name: str) -> logging.Logger: +def get_logger(name: str = __name__) -> logging.Logger: """Get a namespaced easi logger. + Accepts ``__name__`` directly — the ``easi.`` prefix is handled + automatically so callers never double-prefix. + Usage:: from easi.utils.logging import get_logger - logger = get_logger("simulators.subprocess_runner") + logger = get_logger(__name__) # recommended — auto-discovers module path logger.info("Launching bridge: %s", bridge_path) """ + if name.startswith("easi."): + return logging.getLogger(name) return logging.getLogger(f"easi.{name}") @@ -37,7 +42,7 @@ def setup_logging(level: str = "WARNING") -> None: handler = logging.StreamHandler() handler.setFormatter( logging.Formatter( - "%(asctime)s [%(levelname)s] %(name)s: %(message)s", + "%(asctime)s [%(levelname)s] %(name)s - %(message)s", datefmt="%H:%M:%S", ) ) diff --git a/easi/utils/system_deps.py b/easi/utils/system_deps.py index 14bad47..5ee76ac 100644 --- a/easi/utils/system_deps.py +++ b/easi/utils/system_deps.py @@ -6,12 +6,12 @@ from __future__ import annotations -import logging import subprocess from easi.core.exceptions import EnvironmentSetupError +from easi.utils.logging import get_logger -logger = logging.getLogger("easi.utils.system_deps") +logger = get_logger(__name__) # Known system dependencies and how to check/install them diff --git a/pyproject.toml b/pyproject.toml index 14ceb4a..0707c92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,12 +11,11 @@ dependencies = [ "Pillow>=10.0", "requests>=2.28", "pyyaml>=6.0", + "datasets>=2.0.0", + "huggingface_hub>=0.19.0", ] [project.optional-dependencies] -hf = [ - "huggingface_hub>=0.20", -] dev = [ "pytest>=7.0", "pytest-timeout>=2.0", @@ -34,5 +33,5 @@ exclude = ["VLMEvalKit*", "lmms-eval*"] "simulators/*/manifest.yaml", "simulators/*/*/conda_env.yaml", "simulators/*/*/requirements.txt", - "tasks/*/task.yaml", + "tasks/*/*.yaml", ] diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py new file mode 100644 index 0000000..f1e7c4c --- /dev/null +++ b/tests/test_e2e_evaluation.py @@ -0,0 +1,218 @@ +"""End-to-end evaluation tests using dummy components. + +These tests verify the full pipeline: task loading -> simulator launch -> +agent loop -> metric aggregation -> file output. +""" + +import json + +import pytest + +from easi.evaluation.runner import EvaluationRunner + + +def _find_run_dir(output_dir, task_name="dummy_task"): + """Find the single run directory under output_dir//.""" + task_dir = output_dir / task_name + run_dirs = list(task_dir.iterdir()) + assert len(run_dirs) == 1, f"Expected 1 run dir, found {len(run_dirs)}" + return run_dirs[0] + + +class TestE2EEvaluation: + def test_dummy_full_run(self, tmp_path): + """Full eval: dummy task + dummy simulator + dummy agent.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + agent_seed=42, + ) + results = runner.run() + + # All 3 episodes should complete + assert len(results) == 3 + + # Summary should exist + run_dir = _find_run_dir(tmp_path / "logs") + summary = json.loads((run_dir / "summary.json").read_text()) + assert summary["num_episodes"] == 3 + assert "success_rate" in summary or "avg_success" in summary + + def test_max_episodes_limit(self, tmp_path): + """Verify max_episodes limits the run.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + ) + results = runner.run(max_episodes=1) + assert len(results) == 1 + + def test_per_episode_files(self, tmp_path): + """Verify per-episode result and trajectory files are created.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run(max_episodes=2) + + run_dir = _find_run_dir(output_dir) + episode_dirs = sorted((run_dir / "episodes").iterdir()) + assert len(episode_dirs) == 2 + + for ep_dir in episode_dirs: + assert (ep_dir / "result.json").exists() + assert (ep_dir / "trajectory.jsonl").exists() + + ep0 = json.loads((episode_dirs[0] / "result.json").read_text()) + assert "episode_id" in ep0 + assert "elapsed_seconds" in ep0 + + def test_episode_metrics_structure(self, tmp_path): + """Each episode result should have expected metric keys.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + ) + results = runner.run(max_episodes=1) + + ep = results[0] + assert "success" in ep + assert "num_steps" in ep + assert "episode_id" in ep + assert "elapsed_seconds" in ep + assert isinstance(ep["elapsed_seconds"], float) + assert ep["elapsed_seconds"] >= 0 + + def test_summary_has_all_averaged_keys(self, tmp_path): + """Summary should average all numeric metrics from episodes.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run() + + run_dir = _find_run_dir(output_dir) + summary = json.loads((run_dir / "summary.json").read_text()) + assert summary["num_episodes"] == 3 + # These come from averaging per-episode numeric keys + assert "avg_num_steps" in summary + assert "avg_elapsed_seconds" in summary + + def test_deterministic_with_seed(self, tmp_path): + """Two runs with the same seed should produce identical results.""" + results_a = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "a", + agent_seed=123, + ).run(max_episodes=2) + + results_b = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "b", + agent_seed=123, + ).run(max_episodes=2) + + for a, b in zip(results_a, results_b): + assert a["num_steps"] == b["num_steps"] + assert a["success"] == b["success"] + + def test_different_seeds_may_differ(self, tmp_path): + """Different seeds should produce potentially different results.""" + results_a = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "a", + agent_seed=1, + ).run() + + results_b = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "b", + agent_seed=999, + ).run() + + # With different seeds, at least one metric should differ + # (This is a soft test — could theoretically match, but very unlikely) + all_steps_a = [r["num_steps"] for r in results_a] + all_steps_b = [r["num_steps"] for r in results_b] + # Just verify both complete; exact difference not guaranteed + assert len(results_a) == len(results_b) == 3 + + def test_config_json_saved(self, tmp_path): + """Verify config.json is written with run metadata.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + config = json.loads((run_dir / "config.json").read_text()) + assert config["task_name"] == "dummy_task" + assert config["agent_type"] == "dummy" + assert config["agent_seed"] == 42 + assert config["max_episodes"] == 1 + assert "run_id" in config + + def test_trajectory_jsonl_format(self, tmp_path): + """Verify trajectory.jsonl has correct format.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + episode_dirs = sorted((run_dir / "episodes").iterdir()) + trajectory_path = episode_dirs[0] / "trajectory.jsonl" + lines = trajectory_path.read_text().strip().split("\n") + + # First line is reset + reset_entry = json.loads(lines[0]) + assert reset_entry["step"] == 0 + assert reset_entry["type"] == "reset" + assert "rgb_path" in reset_entry + assert reset_entry["rgb_path"].startswith("rgb_") + + # Subsequent lines are steps + assert len(lines) > 1 + step_entry = json.loads(lines[1]) + assert step_entry["step"] == 1 + assert step_entry["type"] == "step" + assert "action" in step_entry + assert "rgb_path" in step_entry + + def test_images_saved_to_episode_dir(self, tmp_path): + """Verify RGB images are saved in the episode directory, not IPC workspace.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + episode_dirs = sorted((run_dir / "episodes").iterdir()) + ep_dir = episode_dirs[0] + + # Should have rgb_0000.png (reset) + at least one step image + png_files = sorted(ep_dir.glob("rgb_*.png")) + assert len(png_files) >= 2 # At least reset + one step + assert png_files[0].name == "rgb_0000.png" + assert png_files[1].name == "rgb_0001.png" diff --git a/tests/test_ebalfred_task.py b/tests/test_ebalfred_task.py new file mode 100644 index 0000000..46282b6 --- /dev/null +++ b/tests/test_ebalfred_task.py @@ -0,0 +1,169 @@ +"""Tests for the EB-Alfred task (offline, no simulator needed).""" +import pytest +from pathlib import Path + +from easi.core.episode import Observation, StepResult +from easi.tasks.ebalfred.task import EBAlfredTask +from easi.tasks.ebalfred.actions import get_global_action_space + + +class TestEBAlfredActionSpace: + def test_action_space_not_empty(self): + actions = get_global_action_space() + assert len(actions) > 100 # EB-Alfred has ~133 actions + + def test_action_space_has_find(self): + actions = get_global_action_space() + find_actions = [a for a in actions if a.startswith("find")] + assert len(find_actions) > 20 + + def test_action_space_has_pick(self): + actions = get_global_action_space() + pick_actions = [a for a in actions if a.startswith("pick up")] + assert len(pick_actions) > 20 + + def test_action_space_has_put_and_drop(self): + actions = get_global_action_space() + assert "put down the object in hand" in actions + assert "drop the object in hand" in actions + + def test_action_space_has_open_close(self): + actions = get_global_action_space() + assert "open the Fridge" in actions + assert "close the Fridge" in actions + + def test_action_space_has_toggle(self): + actions = get_global_action_space() + assert "turn on the Faucet" in actions + assert "turn off the Faucet" in actions + + def test_action_space_has_slice(self): + actions = get_global_action_space() + assert "slice the Potato" in actions + + +class TestEBAlfredTask: + @pytest.fixture + def task(self): + return EBAlfredTask() + + def test_name(self, task): + assert task.name == "ebalfred_base" + + def test_simulator_key(self, task): + assert task.simulator_key == "ai2thor:v2_1_0" + + def test_action_space_loaded(self, task): + assert len(task.action_space) > 100 + + def test_format_reset_config(self, task): + """Test the adapter from EB-Alfred HF row to THOR reset config.""" + episode = { + "id": 0, + "task": "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001", + "repeat_idx": 0, + "instruction": "Put a mug on the shelf.", + "task_type": "pick_and_place_simple", + "trial_id": "trial_T20190001", + "_data_dir": "/datasets/oscarqjh_EB-Alfred_easi", + } + config = task.format_reset_config(episode) + assert config["task_path"] == "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001" + assert config["repeat_idx"] == 0 + assert config["instruction"] == "Put a mug on the shelf." + assert config["episode_id"] == 0 + assert config["task_type"] == "pick_and_place_simple" + assert config["data_dir"] == "/datasets/oscarqjh_EB-Alfred_easi" + + def test_evaluate_episode(self, task): + """Test metric computation from trajectory.""" + episode = {"id": 0, "task": "test", "repeat_idx": 0, "instruction": "test", + "task_type": "test", "trial_id": "trial_T00000000"} + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False, + info={"task_success": 0.0, "task_progress": 0.33}), + StepResult(observation=obs, reward=0.5, done=True, + info={"task_success": 1.0, "task_progress": 1.0}), + ] + metrics = task.evaluate_episode(episode, trajectory) + assert metrics["task_success"] == 1.0 + assert metrics["task_progress"] == 1.0 + assert metrics["num_steps"] == 2 + + def test_evaluate_empty_trajectory(self, task): + episode = {"id": 0, "task": "test", "repeat_idx": 0, "instruction": "test", + "task_type": "test", "trial_id": "trial_T00000000"} + metrics = task.evaluate_episode(episode, []) + assert metrics["task_success"] == 0.0 + assert metrics["num_steps"] == 0.0 + + def test_get_instruction(self, task): + episode = {"instruction": "Put a mug on the shelf."} + assert task.get_instruction(episode) == "Put a mug on the shelf." + + def test_builtin_episodes(self, task): + episodes = task._get_builtin_episodes() + assert len(episodes) == 2 + assert episodes[0]["task_type"] == "pick_and_place_simple" + + def test_task_registry_discovers_all_splits(self): + """Registry should discover all EB-Alfred split yamls.""" + from easi.tasks.registry import list_tasks, refresh + refresh() + tasks = list_tasks() + assert "ebalfred_base" in tasks + assert "ebalfred_long_horizon" in tasks + assert "ebalfred_common_sense" in tasks + assert "ebalfred_complex_instruction" in tasks + assert "ebalfred_spatial" in tasks + assert "ebalfred_visual_appearance" in tasks + + def test_split_specific_task_loading(self): + """Loading ebalfred_base should give a task with correct config.""" + from easi.tasks.registry import get_task_entry, refresh + refresh() + entry = get_task_entry("ebalfred_base") + assert entry.simulator_key == "ai2thor:v2_1_0" + assert entry.config_path.name == "ebalfred_base.yaml" + + +class TestEBAlfredPromptBuilder: + def test_system_prompt_returns_messages(self): + from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder + builder = EBAlfredPromptBuilder() + messages = builder.build_system_prompt( + action_space=get_global_action_space(), + task_description="Put a mug on the shelf.", + ) + assert isinstance(messages, list) + assert messages[0]["role"] == "system" + content = messages[0]["content"] + assert "find a" in content + assert "pick up" in content + assert "Put a mug on the shelf" in content + assert "household" in content.lower() + + def test_step_prompt_returns_messages_with_history(self): + from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder + builder = EBAlfredPromptBuilder() + obs = Observation(rgb_path="/tmp/rgb.png") + messages = builder.build_step_prompt( + observation=obs, + task_description="Put a mug on the shelf.", + action_history=[("find a Mug", "success"), ("pick up the Mug", "failed: not close enough")], + ) + assert isinstance(messages, list) + assert messages[0]["role"] == "user" + text_content = "" + for part in messages[0]["content"]: + if part["type"] == "text": + text_content += part["text"] + assert "find a Mug" in text_content + assert "FAILED" in text_content + + def test_conforms_to_protocol(self): + from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder + from easi.agents.prompt_builder import PromptBuilderProtocol + builder = EBAlfredPromptBuilder() + assert isinstance(builder, PromptBuilderProtocol) diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py new file mode 100644 index 0000000..14ba51d --- /dev/null +++ b/tests/test_evaluation_runner.py @@ -0,0 +1,82 @@ +"""Tests for the sequential evaluation runner.""" + +import json + +import pytest + +from easi.evaluation.runner import EvaluationRunner + + +def _find_run_dir(output_dir, task_name="dummy_task"): + """Find the single run directory under output_dir//.""" + task_dir = output_dir / task_name + run_dirs = list(task_dir.iterdir()) + assert len(run_dirs) == 1, f"Expected 1 run dir, found {len(run_dirs)}" + return run_dirs[0] + + +class TestEvaluationRunner: + def test_run_single_episode(self, tmp_path): + """Run one episode with dummy task + dummy simulator + dummy agent.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + ) + results = runner.run(max_episodes=1) + + assert len(results) == 1 + assert "success" in results[0] + assert "num_steps" in results[0] + + def test_run_multiple_episodes(self, tmp_path): + """Run all 3 dummy episodes.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + ) + results = runner.run() + + assert len(results) == 3 # dummy_task has 3 episodes + + def test_results_saved_to_disk(self, tmp_path): + """Verify structured output directory is created.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + assert (run_dir / "config.json").exists() + assert (run_dir / "summary.json").exists() + + # Episode directory + episodes_dir = run_dir / "episodes" + assert episodes_dir.exists() + episode_dirs = sorted(episodes_dir.iterdir()) + assert len(episode_dirs) == 1 + + ep_dir = episode_dirs[0] + assert (ep_dir / "result.json").exists() + assert (ep_dir / "trajectory.jsonl").exists() + assert (ep_dir / "rgb_0000.png").exists() # Reset observation + + def test_summary_aggregates_metrics(self, tmp_path): + """Verify summary.json contains averaged metrics.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + ) + runner.run() + + run_dir = _find_run_dir(output_dir) + summary = json.loads((run_dir / "summary.json").read_text()) + assert "success_rate" in summary + assert "avg_steps" in summary + assert "num_episodes" in summary diff --git a/tests/test_filesystem_comm.py b/tests/test_filesystem_comm.py index d1dd22a..012ad8f 100644 --- a/tests/test_filesystem_comm.py +++ b/tests/test_filesystem_comm.py @@ -112,6 +112,33 @@ def test_parse_action_from_command(self): assert parsed.params["angle"] == 90.0 + def test_step_command_with_skill_text(self): + """action_name carries full skill text for EB-Alfred (e.g., 'find a Cabinet'). + + The IPC protocol supports this natively — no schema changes needed. + """ + action = Action(action_name="find a Cabinet", params={}) + cmd = make_step_command(action) + assert cmd["action"]["action_name"] == "find a Cabinet" + + # Round-trip: serialize and parse back + parsed = parse_action_from_command(cmd) + assert parsed.action_name == "find a Cabinet" + + def test_observation_response_with_task_metrics(self): + """info field carries task_success and task_progress for EB-Alfred.""" + resp = make_observation_response( + rgb_path="/tmp/rgb.png", + reward=0.5, + done=False, + info={"task_success": 0.0, "task_progress": 0.33, "last_action_success": 1.0}, + ) + result = parse_step_result(resp) + assert result.info["task_success"] == 0.0 + assert result.info["task_progress"] == 0.33 + assert result.info["last_action_success"] == 1.0 + + class TestWriteCommand: def test_clears_old_response(self, tmp_path): # Write a response file diff --git a/tests/test_multi_split_task.py b/tests/test_multi_split_task.py new file mode 100644 index 0000000..61a9813 --- /dev/null +++ b/tests/test_multi_split_task.py @@ -0,0 +1,176 @@ +"""Tests for multi-split task support.""" +import json +import zipfile +import pytest +from pathlib import Path +from unittest.mock import patch, MagicMock + +from easi.tasks.registry import list_tasks, get_task_entry, refresh, _discover_tasks + + +class TestMultiSplitRegistry: + def test_discovers_multiple_yaml_per_folder(self, tmp_path): + """Registry should find all .yaml files in a task folder.""" + task_dir = tmp_path / "my_bench" + task_dir.mkdir() + (task_dir / "__init__.py").write_text("") + + for split in ["base", "hard"]: + yaml_content = f""" +name: my_bench_{split} +display_name: "My Bench ({split})" +description: "Test split" +simulator: "dummy:v1" +task_class: "easi.tasks.dummy_task.task.DummyTask" +action_space: ["move", "turn"] +max_steps: 100 +dataset: + source: huggingface + repo_id: "oscarqjh/my-bench" + subset: null + split: "{split}" +""" + (task_dir / f"my_bench_{split}.yaml").write_text(yaml_content) + + entries = _discover_tasks(tasks_dir=tmp_path) + + assert "my_bench_base" in entries + assert "my_bench_hard" in entries + assert entries["my_bench_base"].config_path.name == "my_bench_base.yaml" + + def test_yaml_with_explicit_subset(self, tmp_path): + """Task yaml can specify an explicit HF subset.""" + task_dir = tmp_path / "bench" + task_dir.mkdir() + (task_dir / "__init__.py").write_text("") + (task_dir / "bench_en_test.yaml").write_text(""" +name: bench_en_test +display_name: "Bench EN Test" +description: "English test subset" +simulator: "dummy:v1" +task_class: "easi.tasks.dummy_task.task.DummyTask" +action_space: [] +max_steps: 10 +dataset: + source: huggingface + repo_id: "oscarqjh/bench" + subset: "en" + split: "test" +""") + entries = _discover_tasks(tasks_dir=tmp_path) + assert entries["bench_en_test"].name == "bench_en_test" + + def test_skips_dirs_starting_with_underscore(self, tmp_path): + """Directories starting with _ should be skipped.""" + hidden_dir = tmp_path / "_internal" + hidden_dir.mkdir() + (hidden_dir / "secret.yaml").write_text(""" +name: secret_task +simulator: "dummy:v1" +task_class: "easi.tasks.dummy_task.task.DummyTask" +""") + entries = _discover_tasks(tasks_dir=tmp_path) + assert "secret_task" not in entries + + def test_skips_invalid_yaml(self, tmp_path): + """Invalid YAML files should be skipped without crashing.""" + task_dir = tmp_path / "broken" + task_dir.mkdir() + (task_dir / "broken.yaml").write_text("this is: [not: valid: yaml: {{") + + entries = _discover_tasks(tasks_dir=tmp_path) + assert len(entries) == 0 + + def test_skips_yaml_without_name(self, tmp_path): + """YAML files without a 'name' key should be skipped.""" + task_dir = tmp_path / "no_name" + task_dir.mkdir() + (task_dir / "no_name.yaml").write_text(""" +description: "Missing name field" +simulator: "dummy:v1" +""") + entries = _discover_tasks(tasks_dir=tmp_path) + assert len(entries) == 0 + + def test_existing_dummy_task_still_discovered(self): + """The existing dummy_task/task.yaml should still be found by *.yaml glob.""" + refresh() + tasks = list_tasks() + assert "dummy_task" in tasks + entry = get_task_entry("dummy_task") + assert entry.simulator_key == "dummy:v1" + assert entry.config_path.name == "task.yaml" + + +class TestZipExtraction: + def test_extract_zip_files(self, tmp_path): + """BaseTask._extract_zip_files should extract .zip files.""" + from easi.core.base_task import BaseTask + + dataset_dir = tmp_path / "dataset" + dataset_dir.mkdir() + zip_path = dataset_dir / "tasks.zip" + with zipfile.ZipFile(zip_path, "w") as zf: + zf.writestr("tasks/pick_and_place_simple-Mug/trial_001/traj_data.json", '{"test": true}') + zf.writestr("tasks/pick_clean-Plate/trial_002/traj_data.json", '{"test": true}') + + BaseTask._extract_zip_files(dataset_dir, ["tasks.zip"]) + + assert (dataset_dir / "tasks" / "pick_and_place_simple-Mug" / "trial_001" / "traj_data.json").exists() + assert (dataset_dir / "tasks" / "pick_clean-Plate" / "trial_002" / "traj_data.json").exists() + + def test_extract_idempotent(self, tmp_path): + """Second extraction should be skipped (marker file).""" + from easi.core.base_task import BaseTask + + dataset_dir = tmp_path / "dataset" + dataset_dir.mkdir() + zip_path = dataset_dir / "tasks.zip" + with zipfile.ZipFile(zip_path, "w") as zf: + zf.writestr("tasks/test.json", '{}') + + BaseTask._extract_zip_files(dataset_dir, ["tasks.zip"]) + BaseTask._extract_zip_files(dataset_dir, ["tasks.zip"]) # should be no-op + + assert (dataset_dir / ".tasks.zip.extracted").exists() + + def test_missing_zip_does_not_crash(self, tmp_path): + """Missing zip file should warn but not crash.""" + from easi.core.base_task import BaseTask + + dataset_dir = tmp_path / "dataset" + dataset_dir.mkdir() + + # Should not raise + BaseTask._extract_zip_files(dataset_dir, ["nonexistent.zip"]) + + +class TestEpisodeFromHFRow: + def test_hf_row_to_episode(self): + """Each HF dataset row should map to an episode dict.""" + from easi.core.base_task import hf_row_to_episode + + # Real EB-Alfred_easi column structure + row = { + "id": 0, + "task": "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001", + "repeat_idx": 0, + "instruction": "Put a mug on the shelf.", + "task_type": "pick_and_place_simple", + "trial_id": "trial_T20190001", + } + episode = hf_row_to_episode(row) + assert episode["id"] == 0 + assert episode["task"] == "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001" + assert episode["instruction"] == "Put a mug on the shelf." + assert episode["task_type"] == "pick_and_place_simple" + assert episode["trial_id"] == "trial_T20190001" + + def test_hf_row_to_episode_is_copy(self): + """hf_row_to_episode should return a copy, not modify the original.""" + from easi.core.base_task import hf_row_to_episode + + row = {"id": 1, "instruction": "test"} + episode = hf_row_to_episode(row) + episode["new_field"] = "added" + assert "new_field" not in row diff --git a/tests/test_react_agent.py b/tests/test_react_agent.py new file mode 100644 index 0000000..fa77702 --- /dev/null +++ b/tests/test_react_agent.py @@ -0,0 +1,236 @@ +"""Tests for the ReAct agent and PromptBuilder protocol.""" +import base64 +import json +import pytest + +from easi.agents.prompt_builder import PromptBuilderProtocol, DefaultPromptBuilder +from easi.agents.react_agent import ReActAgent +from easi.core.episode import Action, Observation + + +class MockLLMClient: + """Mock LLM that returns a fixed JSON plan.""" + def __init__(self, actions=None): + self.actions = actions or [{"action": "MoveAhead"}] + self.call_count = 0 + + def generate(self, messages): + self.call_count += 1 + return json.dumps({ + "observation": "I see a room.", + "reasoning": "I should move forward.", + "plan": "1. Move ahead", + "executable_plan": self.actions, + }) + + +class TestDefaultPromptBuilder: + def test_build_system_prompt_returns_messages(self): + builder = DefaultPromptBuilder() + messages = builder.build_system_prompt( + action_space=["MoveAhead", "Stop"], + task_description="Go to the kitchen.", + ) + # Decision #10: returns OpenAI message format + assert isinstance(messages, list) + assert messages[0]["role"] == "system" + content = messages[0]["content"] + assert "MoveAhead" in content + assert "JSON" in content + + def test_build_step_prompt_returns_messages(self): + obs = Observation(rgb_path="/tmp/rgb.png") + builder = DefaultPromptBuilder() + messages = builder.build_step_prompt( + observation=obs, + task_description="Go to the kitchen.", + action_history=[], + ) + # Decision #10: returns list of OpenAI message dicts + assert isinstance(messages, list) + assert messages[0]["role"] == "user" + # Content should be a list with text + image parts + content = messages[0]["content"] + assert isinstance(content, list) + text_parts = [p for p in content if p["type"] == "text"] + assert len(text_parts) >= 1 + + def test_build_step_prompt_includes_image(self, tmp_path): + # Create a real image file + img_path = tmp_path / "test.png" + img_path.write_bytes(b'\x89PNG\r\n\x1a\n' + b'\x00' * 100) + obs = Observation(rgb_path=str(img_path)) + builder = DefaultPromptBuilder() + messages = builder.build_step_prompt( + observation=obs, + task_description="Go to the kitchen.", + action_history=[], + ) + content = messages[0]["content"] + image_parts = [p for p in content if p["type"] == "image_url"] + assert len(image_parts) == 1 + assert image_parts[0]["image_url"]["url"].startswith("data:image/png;base64,") + + def test_build_step_prompt_with_history(self): + obs = Observation(rgb_path="/tmp/rgb.png") + builder = DefaultPromptBuilder() + messages = builder.build_step_prompt( + observation=obs, + task_description="Go to the kitchen.", + action_history=[("MoveAhead", "success"), ("TurnLeft", "failed")], + ) + text_content = "" + for part in messages[0]["content"]: + if part["type"] == "text": + text_content += part["text"] + assert "MoveAhead" in text_content + assert "TurnLeft" in text_content + + +class CustomPromptBuilder: + """A custom prompt builder for testing the delegation pattern.""" + def build_system_prompt(self, action_space, task_description): + return [{"role": "system", "content": f"CUSTOM SYSTEM: {task_description}"}] + + def build_step_prompt(self, observation, task_description, action_history): + return [{"role": "user", "content": f"CUSTOM STEP: history_len={len(action_history)}"}] + + +class TestReActAgent: + @pytest.fixture + def agent(self): + llm = MockLLMClient([{"action": "MoveAhead"}]) + return ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + ) + + @pytest.fixture + def multi_action_agent(self): + """Agent whose LLM returns a multi-action plan.""" + llm = MockLLMClient([ + {"action": "MoveAhead"}, + {"action": "TurnLeft"}, + {"action": "MoveAhead"}, + ]) + return ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + ) + + @pytest.fixture + def custom_agent(self): + llm = MockLLMClient([{"action": "MoveAhead"}]) + return ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + prompt_builder=CustomPromptBuilder(), + ) + + def test_act_returns_action(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Go to the goal.") + assert action.action_name == "MoveAhead" + + def test_calls_llm_once(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go to the goal.") + assert agent.llm_client.call_count == 1 + + def test_chat_history_has_system_prompt(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go to the goal.") + history = agent.chat_history + assert history[0]["role"] == "system" + + def test_default_prompt_builder_used(self, agent): + assert isinstance(agent.prompt_builder, DefaultPromptBuilder) + + def test_custom_prompt_builder(self, custom_agent): + obs = Observation(rgb_path="/tmp/rgb.png") + custom_agent.act(obs, "Go to the goal.") + history = custom_agent.chat_history + assert history[0]["role"] == "system" + assert "CUSTOM SYSTEM:" in history[0]["content"] + + # --- Decision #9: Action buffering tests --- + + def test_multi_action_buffer(self, multi_action_agent): + """LLM returns 3 actions; first act() returns first, subsequent act()s + return buffered actions WITHOUT calling LLM again.""" + obs = Observation(rgb_path="/tmp/rgb.png") + + a1 = multi_action_agent.act(obs, "Go to the goal.") + assert a1.action_name == "MoveAhead" + assert multi_action_agent.llm_client.call_count == 1 # LLM called + + multi_action_agent.add_feedback("MoveAhead", "success") + a2 = multi_action_agent.act(obs, "Go to the goal.") + assert a2.action_name == "TurnLeft" + assert multi_action_agent.llm_client.call_count == 1 # NOT called again + + multi_action_agent.add_feedback("TurnLeft", "success") + a3 = multi_action_agent.act(obs, "Go to the goal.") + assert a3.action_name == "MoveAhead" + assert multi_action_agent.llm_client.call_count == 1 # Still NOT called + + def test_buffer_cleared_on_failure(self, multi_action_agent): + """When add_feedback reports failure, buffer is cleared. + Next act() re-queries LLM.""" + obs = Observation(rgb_path="/tmp/rgb.png") + + multi_action_agent.act(obs, "Go to the goal.") # returns MoveAhead, buffers [TurnLeft, MoveAhead] + assert multi_action_agent.llm_client.call_count == 1 + + multi_action_agent.add_feedback("MoveAhead", "failed: obstacle ahead") + # Buffer should be cleared + + multi_action_agent.act(obs, "Go to the goal.") # should re-query LLM + assert multi_action_agent.llm_client.call_count == 2 + + def test_buffer_empty_after_all_consumed(self, multi_action_agent): + """After all buffered actions consumed, next act() queries LLM.""" + obs = Observation(rgb_path="/tmp/rgb.png") + + multi_action_agent.act(obs, "Go to the goal.") + multi_action_agent.add_feedback("MoveAhead", "success") + multi_action_agent.act(obs, "Go to the goal.") + multi_action_agent.add_feedback("TurnLeft", "success") + multi_action_agent.act(obs, "Go to the goal.") + multi_action_agent.add_feedback("MoveAhead", "success") + assert multi_action_agent.llm_client.call_count == 1 + + # Buffer exhausted — next call should query LLM + multi_action_agent.act(obs, "Go to the goal.") + assert multi_action_agent.llm_client.call_count == 2 + + def test_parse_error_returns_stop(self): + """When LLM returns invalid JSON, agent returns Stop (no buffering).""" + llm = type('MockLLM', (), {'generate': lambda self, m: 'not json at all'})() + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + ) + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Go to the goal.") + assert action.action_name == "Stop" + assert not agent._action_buffer # buffer empty + + def test_invalid_action_name_fallback(self): + """When LLM returns action not in action_space, fallback to Stop.""" + llm = MockLLMClient([{"action": "FlyToMoon"}]) + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], + ) + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Go to the goal.") + assert action.action_name == "Stop" + + def test_reset_clears_buffer_and_history(self, multi_action_agent): + obs = Observation(rgb_path="/tmp/rgb.png") + multi_action_agent.act(obs, "Go to the goal.") + multi_action_agent.reset() + assert len(multi_action_agent.chat_history) == 0 + assert len(multi_action_agent._action_buffer) == 0 + assert len(multi_action_agent._action_feedback) == 0 From 091d38c037fb179c42d018e9b384652283b75853 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Feb 2026 03:10:17 +0800 Subject: [PATCH 003/239] [Refactor] Separate generic AI2-THOR bridge from EB-Alfred task logic Split the monolithic bridge into a generic AI2ThorBridge base class (simulator layer) and an EBAlfredBridge subclass (task layer), so that future benchmarks using ai2thor==2.1.0 can reuse the simulator bridge without rewriting controller management, IPC, or navigation helpers. - Extract EB-Alfred goal evaluation and task loading into easi/tasks/ebalfred/thor_utils.py - Trim easi/simulators/ai2thor/v2_1_0/thor_utils.py to generic-only constants and object query utilities - Refactor bridge.py from EBAlfredBridge (1062 lines) to generic AI2ThorBridge (~314 lines) with configurable simulator_kwargs - Create easi/tasks/ebalfred/bridge.py with EBAlfredBridge subclass containing all skill execution, state tracking, and goal evaluation - Add get_bridge_script_path() and simulator_kwargs to BaseTask and TaskProtocol; override in EBAlfredTask - Update EvaluationRunner to prefer task-specific bridge paths and forward simulator_kwargs - Add simulator_kwargs to all EB-Alfred YAML configs - Add 29 tests covering imports, inheritance, method separation, bridge path resolution, and simulator_kwargs --- easi/core/base_task.py | 13 + easi/core/protocols.py | 3 + easi/evaluation/runner.py | 20 +- easi/simulators/ai2thor/v2_1_0/bridge.py | 978 +++--------------- easi/simulators/ai2thor/v2_1_0/thor_utils.py | 287 +---- easi/tasks/ebalfred/bridge.py | 873 ++++++++++++++++ easi/tasks/ebalfred/ebalfred_base.yaml | 4 + .../tasks/ebalfred/ebalfred_common_sense.yaml | 4 + .../ebalfred_complex_instruction.yaml | 4 + .../tasks/ebalfred/ebalfred_long_horizon.yaml | 4 + easi/tasks/ebalfred/ebalfred_spatial.yaml | 4 + .../ebalfred/ebalfred_visual_appearance.yaml | 4 + easi/tasks/ebalfred/task.py | 4 + easi/tasks/ebalfred/thor_utils.py | 303 ++++++ tests/test_bridge_refactor.py | 320 ++++++ 15 files changed, 1680 insertions(+), 1145 deletions(-) create mode 100644 easi/tasks/ebalfred/bridge.py create mode 100644 easi/tasks/ebalfred/thor_utils.py create mode 100644 tests/test_bridge_refactor.py diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 6216dfc..41e5691 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -76,6 +76,19 @@ def evaluate_episode( # --- Shared implementation --- + def get_bridge_script_path(self) -> Path | None: + """Return task-specific bridge script path, or None for simulator default. + + Override in subclasses to provide a task-specific bridge that extends + the generic simulator bridge (e.g., EBAlfredBridge extends AI2ThorBridge). + """ + return None + + @property + def simulator_kwargs(self) -> dict: + """Simulator configuration from task YAML (passed to bridge via CLI args).""" + return self._config.get("simulator_kwargs", {}) + def get_instruction(self, episode: dict) -> str: """Return human-readable task instruction for this episode. diff --git a/easi/core/protocols.py b/easi/core/protocols.py index 98ab994..77adc5a 100644 --- a/easi/core/protocols.py +++ b/easi/core/protocols.py @@ -70,4 +70,7 @@ def format_reset_config(self, episode: dict) -> dict: ... def evaluate_episode( self, episode: dict, trajectory: list[StepResult] ) -> dict[str, float]: ... + def get_bridge_script_path(self) -> Path | None: ... + @property + def simulator_kwargs(self) -> dict: ... def __len__(self) -> int: ... diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 1bee48f..7bb10d2 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -89,7 +89,7 @@ def run(self, max_episodes: int | None = None) -> list[dict]: agent = self._create_agent(task.action_space, task._config) # 3. Start simulator - sim, runner = self._create_simulator(task.simulator_key) + sim, runner = self._create_simulator(task.simulator_key, task=task) all_results = [] try: @@ -244,7 +244,9 @@ def _create_agent(self, action_space: list[str], task_config: dict): else: raise ValueError(f"Unknown agent type: {self.agent_type}") - def _create_simulator(self, simulator_key: str): + def _create_simulator(self, simulator_key: str, task=None): + import json as _json + from easi.simulators.registry import ( load_env_manager_class, load_simulator_class, @@ -257,12 +259,22 @@ def _create_simulator(self, simulator_key: str): env_manager = EnvManagerClass() sim = SimClass() + # Task-specific bridge overrides simulator default + bridge_path = ( + (task.get_bridge_script_path() if task else None) + or sim._get_bridge_script_path() + ) + + extra_args = ["--data-dir", str(self.data_dir)] + if task and task.simulator_kwargs: + extra_args.extend(["--simulator-kwargs", _json.dumps(task.simulator_kwargs)]) + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), - bridge_script_path=sim._get_bridge_script_path(), + bridge_script_path=bridge_path, needs_display=env_manager.needs_display, xvfb_screen_config=env_manager.xvfb_screen_config, - extra_args=["--data-dir", str(self.data_dir)], + extra_args=extra_args, ) runner.launch() sim.set_runner(runner) diff --git a/easi/simulators/ai2thor/v2_1_0/bridge.py b/easi/simulators/ai2thor/v2_1_0/bridge.py index 15d789d..2bb9788 100644 --- a/easi/simulators/ai2thor/v2_1_0/bridge.py +++ b/easi/simulators/ai2thor/v2_1_0/bridge.py @@ -1,28 +1,40 @@ -"""Bridge subprocess for AI2-THOR v2.1.0 (EB-Alfred track). +"""Generic bridge subprocess for AI2-THOR v2.1.0. This script runs inside the easi_ai2thor_v2_1_0 conda env (Python 3.8). It communicates with the parent process via filesystem IPC. -Ported from EmbodiedBench: -- envs/eb_alfred/thor_connector.py (high-level skill API) -- envs/eb_alfred/env/thor_env.py (controller init, scene restoration, state tracking) +Provides a generic AI2ThorBridge that handles: +- Controller startup/shutdown +- Scene reset with configurable parameters +- Raw THOR action execution +- Observation capture (RGB frames) +- Main IPC loop + +Task-specific bridges (e.g., EBAlfredBridge) subclass this and override +reset() and step() for skill-based execution and goal evaluation. Usage: - python bridge.py --workspace /tmp/easi_xxx --data-dir /path/to/datasets + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/datasets] [--simulator-kwargs '{}'] """ from __future__ import annotations import argparse +import json import logging import math import os -import re import sys from pathlib import Path -import numpy as np -from scipy import spatial +# numpy and scipy are available in the ai2thor conda env (Python 3.8) +# but may not be in the host venv — imports are optional for importability +try: + import numpy as np + from scipy import spatial +except ImportError: + np = None # type: ignore[assignment] + spatial = None # type: ignore[assignment] # Add repo root to path for easi imports _repo_root = Path(__file__).resolve().parents[4] @@ -39,8 +51,6 @@ make_observation_response, ) from easi.simulators.ai2thor.v2_1_0.thor_utils import ( - AGENT_HORIZON_ADJ, - AGENT_ROTATE_ADJ, AGENT_STEP_SIZE, CAMERA_HEIGHT_OFFSET, RECORD_SMOOTHING_FACTOR, @@ -51,35 +61,25 @@ SCREEN_HEIGHT, SCREEN_WIDTH, VISIBILITY_DISTANCE, - evaluate_goal_conditions, - get_objects_of_type, - get_obj_of_type_closest_to_obj, - load_task_json_with_repeat, - natural_word_to_ithor_name, ) logger = logging.getLogger("easi.bridge.ai2thor_v2_1_0") -class EBAlfredBridge: - """EB-Alfred bridge managing AI2-THOR controller and high-level skills. +class AI2ThorBridge: + """Generic AI2-THOR bridge managing controller lifecycle and raw actions. - Ported from EmbodiedBench's ThorEnv + ThorConnector. + Subclass this for task-specific behavior (skill execution, goal evaluation). """ - def __init__(self, workspace, data_dir): + def __init__(self, workspace, data_dir=None, simulator_kwargs=None): self.workspace = Path(workspace) - self.data_dir = Path(data_dir) + self.data_dir = Path(data_dir) if data_dir else None + self.simulator_kwargs = simulator_kwargs or {} self.controller = None self.last_event = None - self.traj_data = None self.step_count = 0 - # State tracking (from EmbodiedBench ThorEnv) - self.cleaned_objects = set() - self.cooled_objects = set() - self.heated_objects = set() - # Navigation cache self.reachable_positions = None self.reachable_position_kdtree = None @@ -87,24 +87,23 @@ def __init__(self, workspace, data_dir): # Agent height (set after reset from init_action) self.agent_height = 0.9009992 - # Skill state - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - # Output directory for saving images (set per-episode from reset command) self.episode_output_dir = None def start(self): - """Initialize AI2-THOR controller.""" + """Initialize AI2-THOR controller with configurable parameters.""" from ai2thor.controller import Controller + quality = self.simulator_kwargs.get("quality", "MediumCloseFitShadows") + screen_h = self.simulator_kwargs.get("screen_height", SCREEN_HEIGHT) + screen_w = self.simulator_kwargs.get("screen_width", SCREEN_WIDTH) + logger.info("Starting AI2-THOR controller...") - self.controller = Controller(quality="MediumCloseFitShadows") + self.controller = Controller(quality=quality) self.controller.start( x_display=os.environ.get("DISPLAY", "0"), - player_screen_height=SCREEN_HEIGHT, - player_screen_width=SCREEN_WIDTH, + player_screen_height=screen_h, + player_screen_width=screen_w, ) logger.info("AI2-THOR controller started.") @@ -125,68 +124,15 @@ def _step(self, action_dict): # --- Reset --- def reset(self, reset_config): - """Reset to an EB-Alfred episode (or a default scene for smoke tests). + """Reset to a default scene for smoke tests. - If task_path is provided, loads traj_data.json, resets scene, - restores objects, and teleports agent. - If task_path is missing (smoke test), resets to a default scene. + Override in subclasses for task-specific resets (episode loading, etc.). """ - task_path = reset_config.get("task_path") - - if not task_path: - # Smoke test mode: reset to a default scene without episode data - return self._reset_default_scene() - - repeat_idx = reset_config.get("repeat_idx", 0) - - self.traj_data = load_task_json_with_repeat( - task_path, repeat_idx, str(self.data_dir) - ) - self.cleaned_objects.clear() - self.cooled_objects.clear() - self.heated_objects.clear() self.step_count = 0 - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - - # Reset scene - scene_num = self.traj_data["scene"]["scene_num"] - scene_name = "FloorPlan%d" % scene_num - logger.info("Resetting to scene: %s", scene_name) - self.controller.reset(scene_name) - - # Restore object poses, toggles, dirty states - self._restore_scene() - - # Teleport agent to initial position - init_action = dict(self.traj_data["scene"]["init_action"]) - if init_action.get("action") == "TeleportFull": - init_action.pop("rotateOnTeleport", None) - init_action["standing"] = True - self.last_event = self.controller.step(init_action) + scene = reset_config.get("scene", "FloorPlan10") - # Cache agent height - self.agent_height = self.last_event.metadata["agent"]["position"]["y"] - - # Cache reachable positions for navigation - self._cache_reachable_positions() - - return self._make_observation_response() - - def _reset_default_scene(self): - """Reset to FloorPlan10 for smoke testing (no episode data needed).""" - logger.info("Smoke test mode: resetting to default scene FloorPlan10") - self.traj_data = None - self.cleaned_objects.clear() - self.cooled_objects.clear() - self.heated_objects.clear() - self.step_count = 0 - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - - self.controller.reset("FloorPlan10") + logger.info("Resetting to scene: %s", scene) + self.controller.reset(scene) self.last_event = self.controller.step(dict( action="Initialize", gridSize=AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR, @@ -202,728 +148,96 @@ def _reset_default_scene(self): self._cache_reachable_positions() return self._make_observation_response() - def _restore_scene(self): - """Restore EB-Alfred scene state from traj_data. - - Ported from EmbodiedBench ThorEnv.restore_scene(). - """ - grid_size = AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR - - self._step(dict( - action="Initialize", - gridSize=grid_size, - cameraY=CAMERA_HEIGHT_OFFSET, - renderImage=RENDER_IMAGE, - renderDepthImage=RENDER_DEPTH_IMAGE, - renderClassImage=RENDER_CLASS_IMAGE, - renderObjectImage=RENDER_OBJECT_IMAGE, - visibility_distance=VISIBILITY_DISTANCE, - makeAgentsVisible=False, - )) - - scene = self.traj_data["scene"] - object_toggles = scene.get("object_toggles", []) - object_poses = scene.get("object_poses", []) - dirty_and_empty = scene.get("dirty_and_empty", False) - - if len(object_toggles) > 0: - self._step(dict(action="SetObjectToggles", objectToggles=object_toggles)) - - if dirty_and_empty: - self._step(dict( - action="SetStateOfAllObjects", - StateChange="CanBeDirty", - forceAction=True, - )) - self._step(dict( - action="SetStateOfAllObjects", - StateChange="CanBeFilled", - forceAction=False, - )) - - if len(object_poses) > 0: - self._step(dict(action="SetObjectPoses", objectPoses=object_poses)) - - def _cache_reachable_positions(self): - """Cache reachable positions + KD-tree for navigation.""" - event = self._step(dict(action="GetReachablePositions")) - free_positions = event.metadata["actionReturn"] - self.reachable_positions = np.array( - [[p["x"], p["y"], p["z"]] for p in free_positions] - ) - self.reachable_position_kdtree = spatial.KDTree(self.reachable_positions) - # --- Step --- def step(self, action_text): - """Execute a high-level skill and return observation + metrics.""" - self.step_count += 1 - - # Smoke test mode: execute raw THOR action instead of high-level skill - if self.traj_data is None: - self._step(dict(action=action_text)) - return self._make_observation_response( - reward=0.0, - done=False, - info={ - "last_action_success": 1.0 if self.last_event.metadata["lastActionSuccess"] else 0.0, - "env_step": float(self.step_count), - "feedback": "success" if self.last_event.metadata["lastActionSuccess"] else "action failed", - }, - ) - - result = self._execute_skill(action_text) - success = result.get("success", False) - - # Update cleaned/cooled/heated tracking - self._update_states() - - # Evaluate goal conditions - goal_satisfied, progress = evaluate_goal_conditions( - self.traj_data, - self.last_event, - self.cleaned_objects, - self.cooled_objects, - self.heated_objects, - ) - - feedback = result.get("message", "") - if success: - feedback = "success" + """Execute a raw THOR action and return observation. + Override in subclasses for skill-based execution. + """ + self.step_count += 1 + self._step(dict(action=action_text)) return self._make_observation_response( - reward=float(progress), - done=goal_satisfied, + reward=0.0, + done=False, info={ - "task_success": 1.0 if goal_satisfied else 0.0, - "task_progress": progress, - "last_action_success": 1.0 if success else 0.0, + "last_action_success": 1.0 if self.last_event.metadata["lastActionSuccess"] else 0.0, "env_step": float(self.step_count), - "feedback": feedback, + "feedback": "success" if self.last_event.metadata["lastActionSuccess"] else "action failed", }, ) - def _execute_skill(self, instruction): - """Map high-level skill text to THOR API calls. - - Ported from EmbodiedBench ThorConnector.llm_skill_interact(). - """ - # Clear cur_receptacle unless put/open - if not (instruction.startswith("put down ") or instruction.startswith("open ")): - self.cur_receptacle = None - - ret_msg = "" - - if instruction.startswith("find "): - obj_name = instruction.replace("find a ", "").replace("find an ", "") - self.cur_receptacle = obj_name - ret_msg = self._nav_obj( - natural_word_to_ithor_name(obj_name), self.sliced - ) - - elif instruction.startswith("pick up "): - obj_name = instruction.replace("pick up the ", "") - ret_msg = self._pick(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("put down "): - if self.cur_receptacle is None: - ret_msg = self._drop() - else: - receptacle = self.cur_receptacle - if receptacle in self.put_count_dict: - self.put_count_dict[receptacle] += 1 - else: - self.put_count_dict[receptacle] = 1 - - ret_msg = self._put(natural_word_to_ithor_name(receptacle)) - - if len(ret_msg) > 16 and self.put_count_dict[receptacle] >= 3: - self._drop() - ret_msg += ". The robot dropped the object instead." - self.last_event.metadata["lastActionSuccess"] = False - - elif instruction.startswith("open "): - obj_name = instruction.replace("open the ", "") - ret_msg = self._open(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("close "): - obj_name = instruction.replace("close the ", "") - ret_msg = self._close(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("turn on "): - obj_name = instruction.replace("turn on the ", "") - ret_msg = self._toggleon(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("turn off "): - obj_name = instruction.replace("turn off the ", "") - ret_msg = self._toggleoff(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("slice "): - obj_name = instruction.replace("slice the ", "") - ret_msg = self._slice(natural_word_to_ithor_name(obj_name)) - self.sliced = True - - elif instruction.startswith("drop"): - ret_msg = self._drop() - - else: - ret_msg = "instruction not supported" - - success = len(ret_msg) == 0 - if not success: - logger.warning("Skill failed: %s -> %s", instruction, ret_msg) - - return {"action": instruction, "success": success, "message": ret_msg} - - # --- State Tracking --- - - def _update_states(self): - """Track cleaned/cooled/heated objects. - - Ported from EmbodiedBench ThorEnv.update_states(). - """ - if self.last_event is None: - return - - metadata = self.last_event.metadata - if not metadata.get("lastActionSuccess", False): - return - - # Check if last action was a relevant toggle/close - last_action = metadata.get("lastAction", "") - last_obj_id = metadata.get("lastActionObjectId", "") + # --- Main IPC Loop --- - # Clean: ToggleObjectOn on Faucet -> items in SinkBasin get cleaned - if last_action == "ToggleObjectOn" and "Faucet" in last_obj_id: - sink_basin = get_obj_of_type_closest_to_obj( - "SinkBasin", last_obj_id, metadata - ) - if sink_basin and sink_basin.get("receptacleObjectIds"): - self.cleaned_objects.update(sink_basin["receptacleObjectIds"]) + def run(self): + """Main bridge loop — subclasses inherit automatically.""" + logger.info("AI2-THOR bridge starting (workspace: %s)", self.workspace) + self.start() - # Heat: ToggleObjectOn on Microwave -> items inside get heated - if last_action == "ToggleObjectOn" and "Microwave" in last_obj_id: - microwaves = get_objects_of_type("Microwave", metadata) - if microwaves: - heated_ids = microwaves[0].get("receptacleObjectIds") - if heated_ids: - self.heated_objects.update(heated_ids) + write_status(self.workspace, ready=True) - # Cool: CloseObject on Fridge -> items inside get cooled - if last_action == "CloseObject" and "Fridge" in last_obj_id: - fridges = get_objects_of_type("Fridge", metadata) - if fridges: - cooled_ids = fridges[0].get("receptacleObjectIds") - if cooled_ids: - self.cooled_objects.update(cooled_ids) - - # --- Individual Skill Implementations --- - - def _nav_obj(self, target_obj, prefer_sliced=False): - """Navigate to an object by teleporting to closest reachable position. - - Ported from EmbodiedBench ThorConnector.nav_obj(). - """ - objects = self.last_event.metadata["objects"] - logger.info("nav_obj: %s", target_obj) - - # Resolve object ID - if "|" in target_obj: - obj_id = target_obj - base_name = target_obj.split("|")[0] - tmp_id, tmp_data = self._get_obj_id_from_name( - base_name, priority_in_visibility=True, priority_sliced=prefer_sliced - ) - if tmp_id and "Sliced" in tmp_id and obj_id in tmp_id: - obj_id = tmp_id - else: - obj_id, _ = self._get_obj_id_from_name( - target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced - ) - - # Find object index - obj_idx = -1 - for i, o in enumerate(objects): - if o["objectId"] == obj_id: - obj_idx = i - break - - if obj_idx == -1: - return ( - "Cannot find %s. This object may not exist in this scene. " - "Try to explore other instances instead." % target_obj - ) - - # Teleport to closest reachable position facing the object - loc = objects[obj_idx]["position"] - obj_rot = objects[obj_idx]["rotation"]["y"] - max_attempts = 20 - teleport_success = False - reachable_pos_idx = 0 - - for i in range(max_attempts): - reachable_pos_idx += 1 - if i == 10 and target_obj in ("Fridge", "Microwave"): - reachable_pos_idx -= 10 - - closest_loc = self._find_close_reachable_position( - [loc["x"], loc["y"], loc["z"]], reachable_pos_idx - ) - if closest_loc is None: - continue - - # Calculate desired rotation angle - rot_angle = math.atan2( - -(loc["x"] - closest_loc[0]), loc["z"] - closest_loc[2] - ) - if rot_angle > 0: - rot_angle -= 2 * math.pi - rot_angle = -(180 / math.pi) * rot_angle - - # Special angle filtering for Fridge/Microwave - if i < 10 and target_obj in ("Fridge", "Microwave"): - angle_d = abs(self._angle_diff(rot_angle, obj_rot)) - if target_obj == "Fridge" and not ( - (70 < angle_d < 110) or (250 < angle_d < 290) - ): - continue - if target_obj == "Microwave" and not ( - (160 < angle_d < 200) or (0 <= angle_d < 20) - ): - continue - - # Calculate horizon angle - camera_height = self.agent_height + CAMERA_HEIGHT_OFFSET - xz_dist = math.hypot( - loc["x"] - closest_loc[0], loc["z"] - closest_loc[2] - ) - hor_angle = math.atan2(loc["y"] - camera_height, xz_dist) - hor_angle = (180 / math.pi) * hor_angle * 0.9 - - self._step(dict( - action="TeleportFull", - x=closest_loc[0], - y=self.agent_height, - z=closest_loc[2], - rotation=rot_angle, - horizon=-hor_angle, - )) - - if self.last_event.metadata["lastActionSuccess"]: - teleport_success = True + while True: + try: + command = poll_for_command(self.workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) break - else: - logger.debug( - "TeleportFull failed: %s", - self.last_event.metadata.get("errorMessage", ""), - ) - - if not teleport_success: - return "Cannot move to %s" % target_obj - - return "" - - def _pick(self, obj_name): - """Pick up an object. - - Ported from EmbodiedBench ThorConnector.pick(). - """ - obj_id, obj_data = self._get_obj_id_from_name( - obj_name, only_pickupable=True, priority_in_visibility=True, - priority_sliced=self.sliced, - ) - logger.info("pick: %s -> %s", obj_name, obj_id) - if obj_id is None: - return "Cannot find %s to pick up. Find the object before picking up it" % obj_name + cmd_type = command.get("type") - if ( - obj_data.get("visible") is False - and obj_data.get("parentReceptacles") - and len(obj_data["parentReceptacles"]) > 0 - ): - recep_name = obj_data["parentReceptacles"][0] - ret_msg = ( - "%s is not visible because it is in %s. " - "Note: multiple instances of %s may exist" - % (obj_name, recep_name, recep_name) - ) - # Try anyway - self._step(dict( - action="PickupObject", objectId=obj_id, forceAction=False - )) - else: - self._step(dict( - action="PickupObject", objectId=obj_id, forceAction=False - )) - ret_msg = "" + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + reset_config = command.get("reset_config", {}) + logger.info("Reset: episode_id=%s", episode_id) - if not self.last_event.metadata["lastActionSuccess"]: - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - ret_msg = "Robot is not holding any object" + # Set episode output directory for image saving + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + self.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) else: - holding_type = inventory[0].get("objectType", "unknown") - ret_msg = "Robot is currently holding %s" % holding_type - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - - return ret_msg - - def _put(self, receptacle_name): - """Put held object onto a receptacle. - - Ported from EmbodiedBench ThorConnector.put(). - Uses 2x7x2 retry loop with movement adjustments. - """ - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - return "Robot is not holding any object" - - holding_obj_id = inventory[0]["objectId"] - orig_receptacle_name = receptacle_name - ret_msg = "" - halt = False - last_recep_id = None - exclude_obj_id = None - - for k in range(2): # try closest and next closest receptacle - for j in range(7): # movement/look adjustments - for i in range(2): # try inherited receptacles (SinkBasin etc.) - if k == 1 and exclude_obj_id is None: - exclude_obj_id = last_recep_id - - if k == 0 and "|" in orig_receptacle_name: - if i == 1: - continue - recep_id = orig_receptacle_name - receptacle_name = orig_receptacle_name.split("|")[0] - else: - if "Sink" in receptacle_name or "Bathtub" in receptacle_name: - if i == 0: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, get_inherited=True, - exclude_obj_id=exclude_obj_id, - ) - else: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, exclude_obj_id=exclude_obj_id, - ) - else: - if i == 0: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, exclude_obj_id=exclude_obj_id, - ) - else: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, get_inherited=True, - exclude_obj_id=exclude_obj_id, - ) - - if not recep_id: - ret_msg = ( - "Putting the object on %s failed. First check whether " - "the receptacle is open or not. Also try other instances " - "of the receptacle" % receptacle_name - ) - continue - - # Movement adjustments to get receptacle in view - if j == 1: - self._step(dict(action="LookUp")) - self._step(dict(action="LookUp")) - elif j == 2: - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - elif j == 3: - self._step(dict(action="LookUp")) - self._step(dict(action="LookUp")) - self._step(dict(action="MoveBack")) - elif j == 4: - self._step(dict(action="MoveAhead")) - for _ in range(4): - self._step(dict(action="MoveRight")) - elif j == 5: - for _ in range(8): - self._step(dict(action="MoveLeft")) - elif j == 6: - for _ in range(4): - self._step(dict(action="MoveRight")) - self._step(dict(action="RotateHand", x=40)) - - self._step(dict( - action="PutObject", - objectId=holding_obj_id, - receptacleObjectId=recep_id, - forceAction=True, - )) - last_recep_id = recep_id - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - halt = True - break - else: - logger.debug( - "PutObject failed: %s", - self.last_event.metadata.get("errorMessage", ""), - ) - ret_msg = ( - "Putting the object on %s failed. First check the " - "receptacle is open or not. Also try other instances " - "of the receptacle" % receptacle_name - ) - if halt: - break - if halt: - break - - return ret_msg - - def _open(self, obj_name): - """Open a receptacle. - - Ported from EmbodiedBench ThorConnector.open(). - """ - logger.info("open: %s", obj_name) - - if "|" in obj_name: - obj_id = obj_name - obj_name = obj_name.split("|")[0] - else: - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to open. Find the object before opening it" % obj_name - - # Check if already open - open_flag = False - for ob in self.last_event.metadata["objects"]: - if ob["objectId"] == obj_id and ob.get("openable") and ob.get("isOpen"): - open_flag = True + self.episode_output_dir = None + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "step": + action_data = command.get("action", {}) + action_text = action_data.get("action_name", "") + logger.debug("Step %d: action=%s", self.step_count + 1, action_text) + + try: + response = self.step(action_text) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "close": + logger.info("Close command received") + self.stop() + write_response(self.workspace, {"status": "ok"}) break - ret_msg = "" - for i in range(4): - self._step(dict(action="OpenObject", objectId=obj_id)) - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - break else: - if open_flag: - ret_msg = "Open action failed. The %s is already open" % obj_name - else: - ret_msg = "Open action failed." - - # Move around to avoid self-collision - if i == 0: - self._step(dict(action="MoveBack")) - elif i == 1: - self._step(dict(action="MoveBack")) - self._step(dict(action="MoveRight")) - elif i == 2: - self._step(dict(action="MoveLeft")) - self._step(dict(action="MoveLeft")) - - return ret_msg - - def _close(self, obj_name): - """Close a receptacle. - - Ported from EmbodiedBench ThorConnector.close(). - """ - logger.info("close: %s", obj_name) - - if "|" in obj_name: - obj_id = obj_name - obj_name = obj_name.split("|")[0] - else: - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to close" % obj_name - - self._step(dict(action="CloseObject", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - ret_msg = "Close action failed" - for ob in self.last_event.metadata["objects"]: - if ( - ob["objectId"] == obj_id - and ob.get("openable") - and not ob.get("isOpen") - ): - ret_msg += ". The %s is already closed" % obj_name - break - return ret_msg - - return "" - - def _toggleon(self, obj_name): - """Toggle an object on. - - Ported from EmbodiedBench ThorConnector.toggleon(). - """ - logger.info("toggleon: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) - - if obj_id is None: - return "Cannot find %s to turn on" % obj_name - - try: - self._step(dict(action="ToggleObjectOn", objectId=obj_id)) - if not self.last_event.metadata["lastActionSuccess"]: - return "Turn on action failed" - except Exception: - self.last_event.metadata["lastActionSuccess"] = False - return "Turn on action failed" - - return "" - - def _toggleoff(self, obj_name): - """Toggle an object off. - - Ported from EmbodiedBench ThorConnector.toggleoff(). - """ - logger.info("toggleoff: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) - - if obj_id is None: - return "Cannot find %s to turn off" % obj_name - - self._step(dict(action="ToggleObjectOff", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - return "Turn off action failed" - - return "" - - def _slice(self, obj_name): - """Slice an object. - - Ported from EmbodiedBench ThorConnector.slice(). - """ - logger.info("slice: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to slice" % obj_name - - self._step(dict(action="SliceObject", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - return "Slice action failed" - - return "" - - def _drop(self): - """Drop the held object. - - Ported from EmbodiedBench ThorConnector.drop(). - """ - logger.info("drop") - self._step(dict(action="DropHandObject", forceAction=True)) - - if not self.last_event.metadata["lastActionSuccess"]: - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - return "Robot is not holding any object" - return "Drop action failed" - - return "" - - # --- Object Lookup Helpers --- - - def _get_obj_id_from_name( - self, - obj_name, - only_pickupable=False, - only_toggleable=False, - priority_sliced=False, - get_inherited=False, - parent_receptacle_penalty=True, - priority_in_visibility=False, - exclude_obj_id=None, - ): - """Find the closest object matching name, with priority scoring. - - Ported from EmbodiedBench ThorConnector.get_obj_id_from_name(). - """ - obj_id = None - obj_data = None - min_distance = 1e8 - - # If name contains digits (e.g. 'Cabinet_2'), match by name directly - if any(c.isdigit() for c in obj_name): - for obj in self.last_event.metadata["objects"]: - if obj_name in obj["name"]: - return obj["objectId"], obj - return None, None - - for obj in self.last_event.metadata["objects"]: - if obj["objectId"] == exclude_obj_id: - continue - - if only_pickupable and not obj.get("pickupable", False): - continue - if only_toggleable and not obj.get("toggleable", False): - continue - - # Match object type (case-insensitive) - obj_type = obj["objectId"].split("|")[0] - if obj_type.casefold() != obj_name.casefold(): - continue - - # For inherited receptacles (e.g. SinkBasin), check ID format - if get_inherited and len(obj["objectId"].split("|")) != 5: - continue - if not get_inherited and len(obj["objectId"].split("|")) == 5: - # Skip inherited if not requested - pass - - distance = obj.get("distance", 1e8) - penalty = 0 - - # Penalize objects inside closed receptacles - if parent_receptacle_penalty and obj.get("parentReceptacles"): - for p in obj["parentReceptacles"]: - is_open = self._get_object_prop(p, "isOpen") - openable = self._get_object_prop(p, "openable") - if openable is True and is_open is False: - penalty += 100000 - break - - # Prefer empty stove burners - if obj_name.casefold() == "stoveburner": - recep_ids = obj.get("receptacleObjectIds") or [] - if len(recep_ids) > 0: - penalty += 10000 - - # Penalize non-visible objects - if priority_in_visibility and not obj.get("visible", False): - penalty += 1000 - - # Prefer sliced objects - if priority_sliced and "_Slice" in obj.get("name", ""): - penalty -= 100 - - if distance + penalty < min_distance: - min_distance = distance + penalty - obj_data = obj - obj_id = obj["objectId"] + write_response( + self.workspace, make_error_response("Unknown command: %s" % cmd_type) + ) - return obj_id, obj_data + # --- Navigation Helpers --- - def _get_object_prop(self, name, prop): - """Get a property of an object by name/ID substring.""" - for obj in self.last_event.metadata["objects"]: - if name in obj["objectId"]: - return obj.get(prop) - return None + def _cache_reachable_positions(self): + """Cache reachable positions + KD-tree for navigation.""" + event = self._step(dict(action="GetReachablePositions")) + free_positions = event.metadata["actionReturn"] + self.reachable_positions = np.array( + [[p["x"], p["y"], p["z"]] for p in free_positions] + ) + self.reachable_position_kdtree = spatial.KDTree(self.reachable_positions) def _find_close_reachable_position(self, loc, nth=1): """Find the nth closest reachable position to a location.""" @@ -979,82 +293,26 @@ def _make_observation_response(self, reward=0.0, done=False, info=None): ) -# --- Main bridge loop --- - -def run_bridge(workspace, data_dir): - """Main bridge loop for AI2-THOR v2.1.0.""" - bridge = EBAlfredBridge(workspace=workspace, data_dir=data_dir) - - logger.info("AI2-THOR v2.1.0 bridge starting (workspace: %s)", workspace) - bridge.start() - - write_status(workspace, ready=True) - - while True: - try: - command = poll_for_command(workspace, timeout=300.0) - except Exception as e: - logger.error("Failed to read command: %s", e) - break - - cmd_type = command.get("type") - - if cmd_type == "reset": - episode_id = command.get("episode_id", "unknown") - reset_config = command.get("reset_config", {}) - logger.info("Reset: episode_id=%s, task=%s", - episode_id, reset_config.get("task_path", "?")) - - # Set episode output directory for image saving - raw_output_dir = command.get("episode_output_dir") - if raw_output_dir: - bridge.episode_output_dir = raw_output_dir - Path(raw_output_dir).mkdir(parents=True, exist_ok=True) - else: - bridge.episode_output_dir = None - - try: - response = bridge.reset(reset_config) - write_response(workspace, response) - except Exception as e: - logger.exception("Reset failed") - write_response(workspace, make_error_response(str(e))) - - elif cmd_type == "step": - action_data = command.get("action", {}) - action_text = action_data.get("action_name", "") - logger.debug("Step %d: action=%s", bridge.step_count + 1, action_text) - - try: - response = bridge.step(action_text) - write_response(workspace, response) - except Exception as e: - logger.exception("Step failed") - write_response(workspace, make_error_response(str(e))) - - elif cmd_type == "close": - logger.info("Close command received") - bridge.stop() - write_response(workspace, {"status": "ok"}) - break - - else: - write_response( - workspace, make_error_response("Unknown command: %s" % cmd_type) - ) - - def main(): - parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge (EB-Alfred)") + parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 generic bridge") parser.add_argument("--workspace", type=Path, required=True) - parser.add_argument("--data-dir", type=Path, default=Path("./datasets")) + parser.add_argument("--data-dir", type=Path, default=None) + parser.add_argument("--simulator-kwargs", type=str, default=None, + help="JSON string of simulator configuration") args, _ = parser.parse_known_args() logging.basicConfig( level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", ) - run_bridge(workspace=args.workspace, data_dir=args.data_dir) + + simulator_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + bridge = AI2ThorBridge( + workspace=args.workspace, + data_dir=args.data_dir, + simulator_kwargs=simulator_kwargs, + ) + bridge.run() if __name__ == "__main__": diff --git a/easi/simulators/ai2thor/v2_1_0/thor_utils.py b/easi/simulators/ai2thor/v2_1_0/thor_utils.py index e813272..c568e39 100644 --- a/easi/simulators/ai2thor/v2_1_0/thor_utils.py +++ b/easi/simulators/ai2thor/v2_1_0/thor_utils.py @@ -1,21 +1,19 @@ -"""Helper functions for the AI2-THOR v2.1.0 bridge (EB-Alfred track). +"""Generic helper functions for AI2-THOR v2.1.0 bridges. + +Constants and object query utilities shared across any benchmark +that uses AI2-THOR 2.1.0. Task-specific logic (goal evaluation, +dataset loading) lives in the task layer (e.g., easi/tasks/ebalfred/). Ported from EmbodiedBench: -- envs/eb_alfred/env/tasks.py (goal evaluation) -- envs/eb_alfred/utils.py (object name mapping, task loading) - envs/eb_alfred/gen/constants.py (THOR constants) +- envs/eb_alfred/utils.py (object name mapping) This file runs inside the ai2thor conda env (Python 3.8). """ from __future__ import annotations -import json import logging -import os import string -from pathlib import Path - -import numpy as np logger = logging.getLogger("easi.bridge.thor_utils") @@ -34,16 +32,6 @@ RENDER_CLASS_IMAGE = False RENDER_OBJECT_IMAGE = False -GOALS = [ - "pick_and_place_simple", - "pick_two_obj_and_place", - "look_at_obj_in_light", - "pick_clean_then_place_in_recep", - "pick_heat_then_place_in_recep", - "pick_cool_then_place_in_recep", - "pick_and_place_with_movable_recep", -] - # --- Object Name Mapping --- @@ -60,49 +48,6 @@ def natural_word_to_ithor_name(w: str) -> str: return "".join([string.capwords(x) for x in w.split()]) -# --- Task JSON Loading --- - -def load_task_json(task_path: str, data_dir: str) -> dict: - """Load preprocessed traj_data.json for an EB-Alfred episode. - - Args: - task_path: e.g. 'pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001' - data_dir: path to the downloaded dataset directory - """ - # Try standard path: /tasks//pp/ann_0.json - # (repeat_idx is handled by the caller) - json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") - if not os.path.exists(json_path): - # Fallback: try traj_data.json - json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") - if not os.path.exists(json_path): - raise FileNotFoundError( - f"Task annotation not found at {json_path}. " - f"Ensure tasks.zip was extracted in {data_dir}" - ) - with open(json_path) as f: - data = json.load(f) - return data - - -def load_task_json_with_repeat(task_path: str, repeat_idx: int, data_dir: str) -> dict: - """Load the specific repeat annotation for an EB-Alfred episode.""" - json_path = os.path.join(data_dir, "tasks", task_path, "pp", f"ann_{repeat_idx}.json") - if not os.path.exists(json_path): - # Fallback to ann_0.json - json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") - if not os.path.exists(json_path): - # Fallback to traj_data.json - json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") - if not os.path.exists(json_path): - raise FileNotFoundError( - f"Task annotation not found for {task_path} repeat {repeat_idx} in {data_dir}" - ) - with open(json_path) as f: - data = json.load(f) - return data - - # --- Object Lookup Helpers --- def get_objects_of_type(obj_type: str, metadata: dict) -> list: @@ -140,223 +85,3 @@ def get_obj_of_type_closest_to_obj(obj_type: str, ref_obj_id: str, metadata: dic min_dist = dist closest = c return closest - - -# --- Goal Evaluation --- - -def get_targets_from_traj(traj_data: dict) -> dict: - """Extract goal targets from trajectory data.""" - pddl = traj_data.get("pddl_params", {}) - targets = {} - # Map from traj keys to goal target keys - if "object_target" in pddl: - targets["object"] = pddl["object_target"] - if "parent_target" in pddl: - targets["parent"] = pddl["parent_target"] - if "toggle_target" in pddl: - targets["toggle"] = pddl["toggle_target"] - if "mrecep_target" in pddl: - targets["mrecep"] = pddl["mrecep_target"] - # Sliced variant - if "object_sliced" in pddl and pddl["object_sliced"]: - targets["object"] = targets.get("object", "") + "Sliced" - return targets - - -def evaluate_goal_conditions( - traj_data: dict, - event, - cleaned_objects: set, - cooled_objects: set, - heated_objects: set, -) -> tuple: - """Evaluate EB-Alfred goal conditions. - - Returns: - (goal_satisfied: bool, progress: float) - - progress = satisfied_conditions / total_conditions - """ - task_type = traj_data.get("task_type", "") - targets = get_targets_from_traj(traj_data) - metadata = event.metadata - - evaluator = GOAL_EVALUATORS.get(task_type) - if evaluator is None: - logger.warning("Unknown task type: %s", task_type) - return False, 0.0 - - s, ts = evaluator(targets, metadata, cleaned_objects, cooled_objects, heated_objects) - progress = s / ts if ts > 0 else 0.0 - satisfied = s >= ts - return satisfied, progress - - -# --- Per-task-type goal evaluators --- - -def _eval_pick_and_place_simple(targets, metadata, cleaned, cooled, heated): - ts = 1 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - if np.any([np.any([p["objectId"] in (r.get("receptacleObjectIds") or []) - for r in receptacles]) - for p in pickupables]): - s += 1 - return s, ts - - -def _eval_pick_two_obj_and_place(targets, metadata, cleaned, cooled, heated): - ts = 2 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 2 - s += min(len([p for p in pickupables if "Sliced" in p["objectId"]]), 2) - - s += min(np.max([sum([1 if (r.get("receptacleObjectIds") is not None - and p["objectId"] in r["receptacleObjectIds"]) else 0 - for p in pickupables]) - for r in receptacles]) if receptacles else 0, 2) - return s, ts - - -def _eval_look_at_obj_in_light(targets, metadata, cleaned, cooled, heated): - ts = 2 - s = 0 - toggleables = get_objects_with_name_and_prop(targets.get("toggle", ""), "toggleable", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - inventory = metadata.get("inventoryObjects", []) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - if len(inventory) > 0 and inventory[0]["objectId"] in [p["objectId"] for p in pickupables]: - s += 1 - if np.any([t["isToggled"] and t["visible"] for t in toggleables]): - s += 1 - return s, ts - - -def _eval_pick_heat_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_heated = [p["objectId"] for p in pickupables if p["objectId"] in heated] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_heated) > 0: - s += 1 - if np.any([obj_id in objs_heated for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_cool_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_cooled = [p["objectId"] for p in pickupables if p["objectId"] in cooled] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_cooled) > 0: - s += 1 - if np.any([obj_id in objs_cooled for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_clean_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_cleaned = [p["objectId"] for p in pickupables if p["objectId"] in cleaned] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_cleaned) > 0: - s += 1 - if np.any([obj_id in objs_cleaned for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_and_place_with_movable_recep(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - movables = get_objects_with_name_and_prop(targets.get("mrecep", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - pickup_in_movable = [p for p in pickupables for m in movables - if m.get("receptacleObjectIds") is not None - and p["objectId"] in m["receptacleObjectIds"]] - movable_in_recep = [m for m in movables for r in receptacles - if r.get("receptacleObjectIds") is not None - and m["objectId"] in r["receptacleObjectIds"]] - - if len(pickup_in_movable) > 0: - s += 1 - if len(movable_in_recep) > 0: - s += 1 - if np.any([np.any([p["objectId"] in (m.get("receptacleObjectIds") or []) for p in pickupables]) and - np.any([r["objectId"] in (m.get("parentReceptacles") or []) for r in receptacles]) - for m in movables - if m.get("parentReceptacles") is not None and m.get("receptacleObjectIds") is not None]): - s += 1 - return s, ts - - -GOAL_EVALUATORS = { - "pick_and_place_simple": _eval_pick_and_place_simple, - "pick_two_obj_and_place": _eval_pick_two_obj_and_place, - "look_at_obj_in_light": _eval_look_at_obj_in_light, - "pick_heat_then_place_in_recep": _eval_pick_heat_then_place, - "pick_cool_then_place_in_recep": _eval_pick_cool_then_place, - "pick_clean_then_place_in_recep": _eval_pick_clean_then_place, - "pick_and_place_with_movable_recep": _eval_pick_and_place_with_movable_recep, -} diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py new file mode 100644 index 0000000..0d6b2c7 --- /dev/null +++ b/easi/tasks/ebalfred/bridge.py @@ -0,0 +1,873 @@ +"""EB-Alfred bridge subprocess for AI2-THOR v2.1.0. + +This script runs inside the easi_ai2thor_v2_1_0 conda env (Python 3.8). +It communicates with the parent process via filesystem IPC. + +Extends the generic AI2ThorBridge with EB-Alfred-specific behavior: +- High-level skill execution (find, pick up, put down, open, close, etc.) +- State tracking (cleaned, cooled, heated objects) +- Goal condition evaluation + +Ported from EmbodiedBench: +- envs/eb_alfred/thor_connector.py (high-level skill API) +- envs/eb_alfred/env/thor_env.py (scene restoration, state tracking) + +Usage: + python bridge.py --workspace /tmp/easi_xxx --data-dir /path/to/datasets [--simulator-kwargs '{}'] +""" + +from __future__ import annotations + +import argparse +import json +import logging +import math +import os +import sys +from pathlib import Path + +# Add repo root to path for easi imports +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge +from easi.simulators.ai2thor.v2_1_0.thor_utils import ( + AGENT_STEP_SIZE, + CAMERA_HEIGHT_OFFSET, + RECORD_SMOOTHING_FACTOR, + RENDER_CLASS_IMAGE, + RENDER_DEPTH_IMAGE, + RENDER_IMAGE, + RENDER_OBJECT_IMAGE, + VISIBILITY_DISTANCE, + get_obj_of_type_closest_to_obj, + get_objects_of_type, + natural_word_to_ithor_name, +) +from easi.tasks.ebalfred.thor_utils import ( + evaluate_goal_conditions, + load_task_json_with_repeat, +) + +logger = logging.getLogger("easi.bridge.ebalfred") + + +class EBAlfredBridge(AI2ThorBridge): + """EB-Alfred bridge extending AI2ThorBridge with skill execution and goal evaluation. + + Ported from EmbodiedBench's ThorEnv + ThorConnector. + """ + + def __init__(self, workspace, data_dir=None, simulator_kwargs=None): + super().__init__(workspace, data_dir, simulator_kwargs) + self.traj_data = None + + # State tracking (from EmbodiedBench ThorEnv) + self.cleaned_objects = set() + self.cooled_objects = set() + self.heated_objects = set() + + # Skill state + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + + # --- Reset --- + + def reset(self, reset_config): + """Reset to an EB-Alfred episode (or a default scene for smoke tests). + + If task_path is provided, loads traj_data.json, resets scene, + restores objects, and teleports agent. + If task_path is missing (smoke test), resets to a default scene. + """ + task_path = reset_config.get("task_path") + + if not task_path: + # Smoke test mode: use generic reset + self.traj_data = None + self.cleaned_objects.clear() + self.cooled_objects.clear() + self.heated_objects.clear() + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + return super().reset(reset_config) + + repeat_idx = reset_config.get("repeat_idx", 0) + + self.traj_data = load_task_json_with_repeat( + task_path, repeat_idx, str(self.data_dir) + ) + self.cleaned_objects.clear() + self.cooled_objects.clear() + self.heated_objects.clear() + self.step_count = 0 + self.cur_receptacle = None + self.put_count_dict = {} + self.sliced = False + + # Reset scene + scene_num = self.traj_data["scene"]["scene_num"] + scene_name = "FloorPlan%d" % scene_num + logger.info("Resetting to scene: %s", scene_name) + self.controller.reset(scene_name) + + # Restore object poses, toggles, dirty states + self._restore_scene() + + # Teleport agent to initial position + init_action = dict(self.traj_data["scene"]["init_action"]) + if init_action.get("action") == "TeleportFull": + init_action.pop("rotateOnTeleport", None) + init_action["standing"] = True + self.last_event = self.controller.step(init_action) + + # Cache agent height + self.agent_height = self.last_event.metadata["agent"]["position"]["y"] + + # Cache reachable positions for navigation + self._cache_reachable_positions() + + return self._make_observation_response() + + def _restore_scene(self): + """Restore EB-Alfred scene state from traj_data. + + Ported from EmbodiedBench ThorEnv.restore_scene(). + """ + grid_size = AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR + + self._step(dict( + action="Initialize", + gridSize=grid_size, + cameraY=CAMERA_HEIGHT_OFFSET, + renderImage=RENDER_IMAGE, + renderDepthImage=RENDER_DEPTH_IMAGE, + renderClassImage=RENDER_CLASS_IMAGE, + renderObjectImage=RENDER_OBJECT_IMAGE, + visibility_distance=VISIBILITY_DISTANCE, + makeAgentsVisible=False, + )) + + scene = self.traj_data["scene"] + object_toggles = scene.get("object_toggles", []) + object_poses = scene.get("object_poses", []) + dirty_and_empty = scene.get("dirty_and_empty", False) + + if len(object_toggles) > 0: + self._step(dict(action="SetObjectToggles", objectToggles=object_toggles)) + + if dirty_and_empty: + self._step(dict( + action="SetStateOfAllObjects", + StateChange="CanBeDirty", + forceAction=True, + )) + self._step(dict( + action="SetStateOfAllObjects", + StateChange="CanBeFilled", + forceAction=False, + )) + + if len(object_poses) > 0: + self._step(dict(action="SetObjectPoses", objectPoses=object_poses)) + + # --- Step --- + + def step(self, action_text): + """Execute a high-level skill and return observation + metrics.""" + self.step_count += 1 + + # Smoke test mode: execute raw THOR action instead of high-level skill + if self.traj_data is None: + self._step(dict(action=action_text)) + return self._make_observation_response( + reward=0.0, + done=False, + info={ + "last_action_success": 1.0 if self.last_event.metadata["lastActionSuccess"] else 0.0, + "env_step": float(self.step_count), + "feedback": "success" if self.last_event.metadata["lastActionSuccess"] else "action failed", + }, + ) + + result = self._execute_skill(action_text) + success = result.get("success", False) + + # Update cleaned/cooled/heated tracking + self._update_states() + + # Evaluate goal conditions + goal_satisfied, progress = evaluate_goal_conditions( + self.traj_data, + self.last_event, + self.cleaned_objects, + self.cooled_objects, + self.heated_objects, + ) + + feedback = result.get("message", "") + if success: + feedback = "success" + + return self._make_observation_response( + reward=float(progress), + done=goal_satisfied, + info={ + "task_success": 1.0 if goal_satisfied else 0.0, + "task_progress": progress, + "last_action_success": 1.0 if success else 0.0, + "env_step": float(self.step_count), + "feedback": feedback, + }, + ) + + def _execute_skill(self, instruction): + """Map high-level skill text to THOR API calls. + + Ported from EmbodiedBench ThorConnector.llm_skill_interact(). + """ + # Clear cur_receptacle unless put/open + if not (instruction.startswith("put down ") or instruction.startswith("open ")): + self.cur_receptacle = None + + ret_msg = "" + + if instruction.startswith("find "): + obj_name = instruction.replace("find a ", "").replace("find an ", "") + self.cur_receptacle = obj_name + ret_msg = self._nav_obj( + natural_word_to_ithor_name(obj_name), self.sliced + ) + + elif instruction.startswith("pick up "): + obj_name = instruction.replace("pick up the ", "") + ret_msg = self._pick(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("put down "): + if self.cur_receptacle is None: + ret_msg = self._drop() + else: + receptacle = self.cur_receptacle + if receptacle in self.put_count_dict: + self.put_count_dict[receptacle] += 1 + else: + self.put_count_dict[receptacle] = 1 + + ret_msg = self._put(natural_word_to_ithor_name(receptacle)) + + if len(ret_msg) > 16 and self.put_count_dict[receptacle] >= 3: + self._drop() + ret_msg += ". The robot dropped the object instead." + self.last_event.metadata["lastActionSuccess"] = False + + elif instruction.startswith("open "): + obj_name = instruction.replace("open the ", "") + ret_msg = self._open(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("close "): + obj_name = instruction.replace("close the ", "") + ret_msg = self._close(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("turn on "): + obj_name = instruction.replace("turn on the ", "") + ret_msg = self._toggleon(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("turn off "): + obj_name = instruction.replace("turn off the ", "") + ret_msg = self._toggleoff(natural_word_to_ithor_name(obj_name)) + + elif instruction.startswith("slice "): + obj_name = instruction.replace("slice the ", "") + ret_msg = self._slice(natural_word_to_ithor_name(obj_name)) + self.sliced = True + + elif instruction.startswith("drop"): + ret_msg = self._drop() + + else: + ret_msg = "instruction not supported" + + success = len(ret_msg) == 0 + if not success: + logger.warning("Skill failed: %s -> %s", instruction, ret_msg) + + return {"action": instruction, "success": success, "message": ret_msg} + + # --- State Tracking --- + + def _update_states(self): + """Track cleaned/cooled/heated objects. + + Ported from EmbodiedBench ThorEnv.update_states(). + """ + if self.last_event is None: + return + + metadata = self.last_event.metadata + if not metadata.get("lastActionSuccess", False): + return + + # Check if last action was a relevant toggle/close + last_action = metadata.get("lastAction", "") + last_obj_id = metadata.get("lastActionObjectId", "") + + # Clean: ToggleObjectOn on Faucet -> items in SinkBasin get cleaned + if last_action == "ToggleObjectOn" and "Faucet" in last_obj_id: + sink_basin = get_obj_of_type_closest_to_obj( + "SinkBasin", last_obj_id, metadata + ) + if sink_basin and sink_basin.get("receptacleObjectIds"): + self.cleaned_objects.update(sink_basin["receptacleObjectIds"]) + + # Heat: ToggleObjectOn on Microwave -> items inside get heated + if last_action == "ToggleObjectOn" and "Microwave" in last_obj_id: + microwaves = get_objects_of_type("Microwave", metadata) + if microwaves: + heated_ids = microwaves[0].get("receptacleObjectIds") + if heated_ids: + self.heated_objects.update(heated_ids) + + # Cool: CloseObject on Fridge -> items inside get cooled + if last_action == "CloseObject" and "Fridge" in last_obj_id: + fridges = get_objects_of_type("Fridge", metadata) + if fridges: + cooled_ids = fridges[0].get("receptacleObjectIds") + if cooled_ids: + self.cooled_objects.update(cooled_ids) + + # --- Individual Skill Implementations --- + + def _nav_obj(self, target_obj, prefer_sliced=False): + """Navigate to an object by teleporting to closest reachable position. + + Ported from EmbodiedBench ThorConnector.nav_obj(). + """ + objects = self.last_event.metadata["objects"] + logger.info("nav_obj: %s", target_obj) + + # Resolve object ID + if "|" in target_obj: + obj_id = target_obj + base_name = target_obj.split("|")[0] + tmp_id, tmp_data = self._get_obj_id_from_name( + base_name, priority_in_visibility=True, priority_sliced=prefer_sliced + ) + if tmp_id and "Sliced" in tmp_id and obj_id in tmp_id: + obj_id = tmp_id + else: + obj_id, _ = self._get_obj_id_from_name( + target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced + ) + + # Find object index + obj_idx = -1 + for i, o in enumerate(objects): + if o["objectId"] == obj_id: + obj_idx = i + break + + if obj_idx == -1: + return ( + "Cannot find %s. This object may not exist in this scene. " + "Try to explore other instances instead." % target_obj + ) + + # Teleport to closest reachable position facing the object + loc = objects[obj_idx]["position"] + obj_rot = objects[obj_idx]["rotation"]["y"] + max_attempts = 20 + teleport_success = False + reachable_pos_idx = 0 + + for i in range(max_attempts): + reachable_pos_idx += 1 + if i == 10 and target_obj in ("Fridge", "Microwave"): + reachable_pos_idx -= 10 + + closest_loc = self._find_close_reachable_position( + [loc["x"], loc["y"], loc["z"]], reachable_pos_idx + ) + if closest_loc is None: + continue + + # Calculate desired rotation angle + rot_angle = math.atan2( + -(loc["x"] - closest_loc[0]), loc["z"] - closest_loc[2] + ) + if rot_angle > 0: + rot_angle -= 2 * math.pi + rot_angle = -(180 / math.pi) * rot_angle + + # Special angle filtering for Fridge/Microwave + if i < 10 and target_obj in ("Fridge", "Microwave"): + angle_d = abs(self._angle_diff(rot_angle, obj_rot)) + if target_obj == "Fridge" and not ( + (70 < angle_d < 110) or (250 < angle_d < 290) + ): + continue + if target_obj == "Microwave" and not ( + (160 < angle_d < 200) or (0 <= angle_d < 20) + ): + continue + + # Calculate horizon angle + camera_height = self.agent_height + CAMERA_HEIGHT_OFFSET + xz_dist = math.hypot( + loc["x"] - closest_loc[0], loc["z"] - closest_loc[2] + ) + hor_angle = math.atan2(loc["y"] - camera_height, xz_dist) + hor_angle = (180 / math.pi) * hor_angle * 0.9 + + self._step(dict( + action="TeleportFull", + x=closest_loc[0], + y=self.agent_height, + z=closest_loc[2], + rotation=rot_angle, + horizon=-hor_angle, + )) + + if self.last_event.metadata["lastActionSuccess"]: + teleport_success = True + break + else: + logger.debug( + "TeleportFull failed: %s", + self.last_event.metadata.get("errorMessage", ""), + ) + + if not teleport_success: + return "Cannot move to %s" % target_obj + + return "" + + def _pick(self, obj_name): + """Pick up an object. + + Ported from EmbodiedBench ThorConnector.pick(). + """ + obj_id, obj_data = self._get_obj_id_from_name( + obj_name, only_pickupable=True, priority_in_visibility=True, + priority_sliced=self.sliced, + ) + logger.info("pick: %s -> %s", obj_name, obj_id) + + if obj_id is None: + return "Cannot find %s to pick up. Find the object before picking up it" % obj_name + + if ( + obj_data.get("visible") is False + and obj_data.get("parentReceptacles") + and len(obj_data["parentReceptacles"]) > 0 + ): + recep_name = obj_data["parentReceptacles"][0] + ret_msg = ( + "%s is not visible because it is in %s. " + "Note: multiple instances of %s may exist" + % (obj_name, recep_name, recep_name) + ) + # Try anyway + self._step(dict( + action="PickupObject", objectId=obj_id, forceAction=False + )) + else: + self._step(dict( + action="PickupObject", objectId=obj_id, forceAction=False + )) + ret_msg = "" + + if not self.last_event.metadata["lastActionSuccess"]: + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + ret_msg = "Robot is not holding any object" + else: + holding_type = inventory[0].get("objectType", "unknown") + ret_msg = "Robot is currently holding %s" % holding_type + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + + return ret_msg + + def _put(self, receptacle_name): + """Put held object onto a receptacle. + + Ported from EmbodiedBench ThorConnector.put(). + Uses 2x7x2 retry loop with movement adjustments. + """ + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + return "Robot is not holding any object" + + holding_obj_id = inventory[0]["objectId"] + orig_receptacle_name = receptacle_name + ret_msg = "" + halt = False + last_recep_id = None + exclude_obj_id = None + + for k in range(2): # try closest and next closest receptacle + for j in range(7): # movement/look adjustments + for i in range(2): # try inherited receptacles (SinkBasin etc.) + if k == 1 and exclude_obj_id is None: + exclude_obj_id = last_recep_id + + if k == 0 and "|" in orig_receptacle_name: + if i == 1: + continue + recep_id = orig_receptacle_name + receptacle_name = orig_receptacle_name.split("|")[0] + else: + if "Sink" in receptacle_name or "Bathtub" in receptacle_name: + if i == 0: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, get_inherited=True, + exclude_obj_id=exclude_obj_id, + ) + else: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, exclude_obj_id=exclude_obj_id, + ) + else: + if i == 0: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, exclude_obj_id=exclude_obj_id, + ) + else: + recep_id, _ = self._get_obj_id_from_name( + receptacle_name, get_inherited=True, + exclude_obj_id=exclude_obj_id, + ) + + if not recep_id: + ret_msg = ( + "Putting the object on %s failed. First check whether " + "the receptacle is open or not. Also try other instances " + "of the receptacle" % receptacle_name + ) + continue + + # Movement adjustments to get receptacle in view + if j == 1: + self._step(dict(action="LookUp")) + self._step(dict(action="LookUp")) + elif j == 2: + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + self._step(dict(action="LookDown")) + elif j == 3: + self._step(dict(action="LookUp")) + self._step(dict(action="LookUp")) + self._step(dict(action="MoveBack")) + elif j == 4: + self._step(dict(action="MoveAhead")) + for _ in range(4): + self._step(dict(action="MoveRight")) + elif j == 5: + for _ in range(8): + self._step(dict(action="MoveLeft")) + elif j == 6: + for _ in range(4): + self._step(dict(action="MoveRight")) + self._step(dict(action="RotateHand", x=40)) + + self._step(dict( + action="PutObject", + objectId=holding_obj_id, + receptacleObjectId=recep_id, + forceAction=True, + )) + last_recep_id = recep_id + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + halt = True + break + else: + logger.debug( + "PutObject failed: %s", + self.last_event.metadata.get("errorMessage", ""), + ) + ret_msg = ( + "Putting the object on %s failed. First check the " + "receptacle is open or not. Also try other instances " + "of the receptacle" % receptacle_name + ) + if halt: + break + if halt: + break + + return ret_msg + + def _open(self, obj_name): + """Open a receptacle. + + Ported from EmbodiedBench ThorConnector.open(). + """ + logger.info("open: %s", obj_name) + + if "|" in obj_name: + obj_id = obj_name + obj_name = obj_name.split("|")[0] + else: + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to open. Find the object before opening it" % obj_name + + # Check if already open + open_flag = False + for ob in self.last_event.metadata["objects"]: + if ob["objectId"] == obj_id and ob.get("openable") and ob.get("isOpen"): + open_flag = True + break + + ret_msg = "" + for i in range(4): + self._step(dict(action="OpenObject", objectId=obj_id)) + + if self.last_event.metadata["lastActionSuccess"]: + ret_msg = "" + break + else: + if open_flag: + ret_msg = "Open action failed. The %s is already open" % obj_name + else: + ret_msg = "Open action failed." + + # Move around to avoid self-collision + if i == 0: + self._step(dict(action="MoveBack")) + elif i == 1: + self._step(dict(action="MoveBack")) + self._step(dict(action="MoveRight")) + elif i == 2: + self._step(dict(action="MoveLeft")) + self._step(dict(action="MoveLeft")) + + return ret_msg + + def _close(self, obj_name): + """Close a receptacle. + + Ported from EmbodiedBench ThorConnector.close(). + """ + logger.info("close: %s", obj_name) + + if "|" in obj_name: + obj_id = obj_name + obj_name = obj_name.split("|")[0] + else: + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to close" % obj_name + + self._step(dict(action="CloseObject", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + ret_msg = "Close action failed" + for ob in self.last_event.metadata["objects"]: + if ( + ob["objectId"] == obj_id + and ob.get("openable") + and not ob.get("isOpen") + ): + ret_msg += ". The %s is already closed" % obj_name + break + return ret_msg + + return "" + + def _toggleon(self, obj_name): + """Toggle an object on. + + Ported from EmbodiedBench ThorConnector.toggleon(). + """ + logger.info("toggleon: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) + + if obj_id is None: + return "Cannot find %s to turn on" % obj_name + + try: + self._step(dict(action="ToggleObjectOn", objectId=obj_id)) + if not self.last_event.metadata["lastActionSuccess"]: + return "Turn on action failed" + except Exception: + self.last_event.metadata["lastActionSuccess"] = False + return "Turn on action failed" + + return "" + + def _toggleoff(self, obj_name): + """Toggle an object off. + + Ported from EmbodiedBench ThorConnector.toggleoff(). + """ + logger.info("toggleoff: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) + + if obj_id is None: + return "Cannot find %s to turn off" % obj_name + + self._step(dict(action="ToggleObjectOff", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + return "Turn off action failed" + + return "" + + def _slice(self, obj_name): + """Slice an object. + + Ported from EmbodiedBench ThorConnector.slice(). + """ + logger.info("slice: %s", obj_name) + obj_id, _ = self._get_obj_id_from_name(obj_name) + + if obj_id is None: + return "Cannot find %s to slice" % obj_name + + self._step(dict(action="SliceObject", objectId=obj_id)) + + if not self.last_event.metadata["lastActionSuccess"]: + return "Slice action failed" + + return "" + + def _drop(self): + """Drop the held object. + + Ported from EmbodiedBench ThorConnector.drop(). + """ + logger.info("drop") + self._step(dict(action="DropHandObject", forceAction=True)) + + if not self.last_event.metadata["lastActionSuccess"]: + inventory = self.last_event.metadata.get("inventoryObjects", []) + if len(inventory) == 0: + return "Robot is not holding any object" + return "Drop action failed" + + return "" + + # --- Object Lookup Helpers --- + + def _get_obj_id_from_name( + self, + obj_name, + only_pickupable=False, + only_toggleable=False, + priority_sliced=False, + get_inherited=False, + parent_receptacle_penalty=True, + priority_in_visibility=False, + exclude_obj_id=None, + ): + """Find the closest object matching name, with priority scoring. + + Ported from EmbodiedBench ThorConnector.get_obj_id_from_name(). + """ + obj_id = None + obj_data = None + min_distance = 1e8 + + # If name contains digits (e.g. 'Cabinet_2'), match by name directly + if any(c.isdigit() for c in obj_name): + for obj in self.last_event.metadata["objects"]: + if obj_name in obj["name"]: + return obj["objectId"], obj + return None, None + + for obj in self.last_event.metadata["objects"]: + if obj["objectId"] == exclude_obj_id: + continue + + if only_pickupable and not obj.get("pickupable", False): + continue + if only_toggleable and not obj.get("toggleable", False): + continue + + # Match object type (case-insensitive) + obj_type = obj["objectId"].split("|")[0] + if obj_type.casefold() != obj_name.casefold(): + continue + + # For inherited receptacles (e.g. SinkBasin), check ID format + if get_inherited and len(obj["objectId"].split("|")) != 5: + continue + if not get_inherited and len(obj["objectId"].split("|")) == 5: + # Skip inherited if not requested + pass + + distance = obj.get("distance", 1e8) + penalty = 0 + + # Penalize objects inside closed receptacles + if parent_receptacle_penalty and obj.get("parentReceptacles"): + for p in obj["parentReceptacles"]: + is_open = self._get_object_prop(p, "isOpen") + openable = self._get_object_prop(p, "openable") + if openable is True and is_open is False: + penalty += 100000 + break + + # Prefer empty stove burners + if obj_name.casefold() == "stoveburner": + recep_ids = obj.get("receptacleObjectIds") or [] + if len(recep_ids) > 0: + penalty += 10000 + + # Penalize non-visible objects + if priority_in_visibility and not obj.get("visible", False): + penalty += 1000 + + # Prefer sliced objects + if priority_sliced and "_Slice" in obj.get("name", ""): + penalty -= 100 + + if distance + penalty < min_distance: + min_distance = distance + penalty + obj_data = obj + obj_id = obj["objectId"] + + return obj_id, obj_data + + def _get_object_prop(self, name, prop): + """Get a property of an object by name/ID substring.""" + for obj in self.last_event.metadata["objects"]: + if name in obj["objectId"]: + return obj.get(prop) + return None + + +def main(): + parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge (EB-Alfred)") + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--data-dir", type=Path, default=Path("./datasets")) + parser.add_argument("--simulator-kwargs", type=str, default=None, + help="JSON string of simulator configuration") + args, _ = parser.parse_known_args() + + logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", + ) + + simulator_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + bridge = EBAlfredBridge( + workspace=args.workspace, + data_dir=args.data_dir, + simulator_kwargs=simulator_kwargs, + ) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index b12c529..5478719 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -12,5 +12,9 @@ dataset: split: "base" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 92df2a2..1e61251 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -12,5 +12,9 @@ dataset: split: "common_sense" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 1e076ff..a55539d 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -12,5 +12,9 @@ dataset: split: "complex_instruction" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index a7537d4..a4d4413 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -12,5 +12,9 @@ dataset: split: "long_horizon" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index 4e8836c..dd2f04d 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -12,5 +12,9 @@ dataset: split: "spatial" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 1909fe4..4189e5c 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -12,5 +12,9 @@ dataset: split: "visual_appearance" zip_files: - "tasks.zip" +simulator_kwargs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/task.py b/easi/tasks/ebalfred/task.py index 5c5abe8..fc52f88 100644 --- a/easi/tasks/ebalfred/task.py +++ b/easi/tasks/ebalfred/task.py @@ -32,6 +32,10 @@ def get_task_yaml_path(self) -> Path: # Decision #4: No task.yaml — use ebalfred_base.yaml as default fallback return Path(__file__).parent / "ebalfred_base.yaml" + def get_bridge_script_path(self) -> Path: + """Return path to the EB-Alfred-specific bridge script.""" + return Path(__file__).parent / "bridge.py" + def get_instruction(self, episode: dict) -> str: """Decision #2: EB-Alfred uses 'instruction' field from HF row.""" return episode.get("instruction", self.name) diff --git a/easi/tasks/ebalfred/thor_utils.py b/easi/tasks/ebalfred/thor_utils.py new file mode 100644 index 0000000..d32a12d --- /dev/null +++ b/easi/tasks/ebalfred/thor_utils.py @@ -0,0 +1,303 @@ +"""EB-Alfred goal evaluation and task loading utilities. + +Moved from easi/simulators/ai2thor/v2_1_0/thor_utils.py — these are +task-specific (EB-Alfred), not generic AI2-THOR helpers. + +Ported from EmbodiedBench: +- envs/eb_alfred/env/tasks.py (goal evaluation) +- envs/eb_alfred/utils.py (task loading) + +This file runs inside the ai2thor conda env (Python 3.8). +""" +from __future__ import annotations + +import json +import logging +import os + +# numpy is available in the ai2thor conda env (Python 3.8) +# but may not be in the host venv — import is optional for importability +try: + import numpy as np +except ImportError: + np = None # type: ignore[assignment] + +from easi.simulators.ai2thor.v2_1_0.thor_utils import ( + get_objects_of_type, + get_objects_with_name_and_prop, +) + +logger = logging.getLogger("easi.bridge.ebalfred_utils") + +GOALS = [ + "pick_and_place_simple", + "pick_two_obj_and_place", + "look_at_obj_in_light", + "pick_clean_then_place_in_recep", + "pick_heat_then_place_in_recep", + "pick_cool_then_place_in_recep", + "pick_and_place_with_movable_recep", +] + + +# --- Task JSON Loading --- + +def load_task_json(task_path: str, data_dir: str) -> dict: + """Load preprocessed traj_data.json for an EB-Alfred episode. + + Args: + task_path: e.g. 'pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001' + data_dir: path to the downloaded dataset directory + """ + # Try standard path: /tasks//pp/ann_0.json + # (repeat_idx is handled by the caller) + json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") + if not os.path.exists(json_path): + # Fallback: try traj_data.json + json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") + if not os.path.exists(json_path): + raise FileNotFoundError( + f"Task annotation not found at {json_path}. " + f"Ensure tasks.zip was extracted in {data_dir}" + ) + with open(json_path) as f: + data = json.load(f) + return data + + +def load_task_json_with_repeat(task_path: str, repeat_idx: int, data_dir: str) -> dict: + """Load the specific repeat annotation for an EB-Alfred episode.""" + json_path = os.path.join(data_dir, "tasks", task_path, "pp", f"ann_{repeat_idx}.json") + if not os.path.exists(json_path): + # Fallback to ann_0.json + json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") + if not os.path.exists(json_path): + # Fallback to traj_data.json + json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") + if not os.path.exists(json_path): + raise FileNotFoundError( + f"Task annotation not found for {task_path} repeat {repeat_idx} in {data_dir}" + ) + with open(json_path) as f: + data = json.load(f) + return data + + +# --- Goal Evaluation --- + +def get_targets_from_traj(traj_data: dict) -> dict: + """Extract goal targets from trajectory data.""" + pddl = traj_data.get("pddl_params", {}) + targets = {} + # Map from traj keys to goal target keys + if "object_target" in pddl: + targets["object"] = pddl["object_target"] + if "parent_target" in pddl: + targets["parent"] = pddl["parent_target"] + if "toggle_target" in pddl: + targets["toggle"] = pddl["toggle_target"] + if "mrecep_target" in pddl: + targets["mrecep"] = pddl["mrecep_target"] + # Sliced variant + if "object_sliced" in pddl and pddl["object_sliced"]: + targets["object"] = targets.get("object", "") + "Sliced" + return targets + + +def evaluate_goal_conditions( + traj_data: dict, + event, + cleaned_objects: set, + cooled_objects: set, + heated_objects: set, +) -> tuple: + """Evaluate EB-Alfred goal conditions. + + Returns: + (goal_satisfied: bool, progress: float) + + progress = satisfied_conditions / total_conditions + """ + task_type = traj_data.get("task_type", "") + targets = get_targets_from_traj(traj_data) + metadata = event.metadata + + evaluator = GOAL_EVALUATORS.get(task_type) + if evaluator is None: + logger.warning("Unknown task type: %s", task_type) + return False, 0.0 + + s, ts = evaluator(targets, metadata, cleaned_objects, cooled_objects, heated_objects) + progress = s / ts if ts > 0 else 0.0 + satisfied = s >= ts + return satisfied, progress + + +# --- Per-task-type goal evaluators --- + +def _eval_pick_and_place_simple(targets, metadata, cleaned, cooled, heated): + ts = 1 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + if np.any([np.any([p["objectId"] in (r.get("receptacleObjectIds") or []) + for r in receptacles]) + for p in pickupables]): + s += 1 + return s, ts + + +def _eval_pick_two_obj_and_place(targets, metadata, cleaned, cooled, heated): + ts = 2 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 2 + s += min(len([p for p in pickupables if "Sliced" in p["objectId"]]), 2) + + s += min(np.max([sum([1 if (r.get("receptacleObjectIds") is not None + and p["objectId"] in r["receptacleObjectIds"]) else 0 + for p in pickupables]) + for r in receptacles]) if receptacles else 0, 2) + return s, ts + + +def _eval_look_at_obj_in_light(targets, metadata, cleaned, cooled, heated): + ts = 2 + s = 0 + toggleables = get_objects_with_name_and_prop(targets.get("toggle", ""), "toggleable", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + inventory = metadata.get("inventoryObjects", []) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + if len(inventory) > 0 and inventory[0]["objectId"] in [p["objectId"] for p in pickupables]: + s += 1 + if np.any([t["isToggled"] and t["visible"] for t in toggleables]): + s += 1 + return s, ts + + +def _eval_pick_heat_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_heated = [p["objectId"] for p in pickupables if p["objectId"] in heated] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_heated) > 0: + s += 1 + if np.any([obj_id in objs_heated for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_cool_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_cooled = [p["objectId"] for p in pickupables if p["objectId"] in cooled] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_cooled) > 0: + s += 1 + if np.any([obj_id in objs_cooled for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_clean_then_place(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + objs_in_place = [p["objectId"] for p in pickupables for r in receptacles + if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] + objs_cleaned = [p["objectId"] for p in pickupables if p["objectId"] in cleaned] + + if len(objs_in_place) > 0: + s += 1 + if len(objs_cleaned) > 0: + s += 1 + if np.any([obj_id in objs_cleaned for obj_id in objs_in_place]): + s += 1 + return s, ts + + +def _eval_pick_and_place_with_movable_recep(targets, metadata, cleaned, cooled, heated): + ts = 3 + s = 0 + receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) + pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) + movables = get_objects_with_name_and_prop(targets.get("mrecep", ""), "pickupable", metadata) + + if "Sliced" in targets.get("object", ""): + ts += 1 + if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: + s += 1 + + pickup_in_movable = [p for p in pickupables for m in movables + if m.get("receptacleObjectIds") is not None + and p["objectId"] in m["receptacleObjectIds"]] + movable_in_recep = [m for m in movables for r in receptacles + if r.get("receptacleObjectIds") is not None + and m["objectId"] in r["receptacleObjectIds"]] + + if len(pickup_in_movable) > 0: + s += 1 + if len(movable_in_recep) > 0: + s += 1 + if np.any([np.any([p["objectId"] in (m.get("receptacleObjectIds") or []) for p in pickupables]) and + np.any([r["objectId"] in (m.get("parentReceptacles") or []) for r in receptacles]) + for m in movables + if m.get("parentReceptacles") is not None and m.get("receptacleObjectIds") is not None]): + s += 1 + return s, ts + + +GOAL_EVALUATORS = { + "pick_and_place_simple": _eval_pick_and_place_simple, + "pick_two_obj_and_place": _eval_pick_two_obj_and_place, + "look_at_obj_in_light": _eval_look_at_obj_in_light, + "pick_heat_then_place_in_recep": _eval_pick_heat_then_place, + "pick_cool_then_place_in_recep": _eval_pick_cool_then_place, + "pick_clean_then_place_in_recep": _eval_pick_clean_then_place, + "pick_and_place_with_movable_recep": _eval_pick_and_place_with_movable_recep, +} diff --git a/tests/test_bridge_refactor.py b/tests/test_bridge_refactor.py new file mode 100644 index 0000000..ceb8eaa --- /dev/null +++ b/tests/test_bridge_refactor.py @@ -0,0 +1,320 @@ +"""Tests for the bridge architecture refactor. + +Verifies: +- AI2ThorBridge is importable and has generic interface +- EBAlfredBridge subclasses AI2ThorBridge with task-specific methods +- get_bridge_script_path() works on BaseTask and EBAlfredTask +- simulator_kwargs property works on BaseTask +- Generic thor_utils has no goal evaluators +- EB-Alfred thor_utils has goal evaluators +""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + + +# --- Generic AI2ThorBridge tests --- + +class TestAI2ThorBridgeImport: + """Test that the generic AI2ThorBridge is properly structured.""" + + def test_importable(self): + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + assert AI2ThorBridge is not None + + def test_has_generic_methods(self): + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + bridge_cls = AI2ThorBridge + assert hasattr(bridge_cls, "start") + assert hasattr(bridge_cls, "stop") + assert hasattr(bridge_cls, "reset") + assert hasattr(bridge_cls, "step") + assert hasattr(bridge_cls, "run") + assert hasattr(bridge_cls, "_step") + assert hasattr(bridge_cls, "_cache_reachable_positions") + assert hasattr(bridge_cls, "_make_observation_response") + assert hasattr(bridge_cls, "_find_close_reachable_position") + assert hasattr(bridge_cls, "_angle_diff") + + def test_no_ebalfred_methods(self): + """Generic bridge should NOT have EB-Alfred-specific methods.""" + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + bridge_cls = AI2ThorBridge + assert not hasattr(bridge_cls, "_execute_skill") + assert not hasattr(bridge_cls, "_restore_scene") + assert not hasattr(bridge_cls, "_update_states") + assert not hasattr(bridge_cls, "_nav_obj") + assert not hasattr(bridge_cls, "_pick") + assert not hasattr(bridge_cls, "_put") + assert not hasattr(bridge_cls, "_open") + assert not hasattr(bridge_cls, "_close") + assert not hasattr(bridge_cls, "_toggleon") + assert not hasattr(bridge_cls, "_toggleoff") + assert not hasattr(bridge_cls, "_slice") + assert not hasattr(bridge_cls, "_drop") + assert not hasattr(bridge_cls, "_get_obj_id_from_name") + assert not hasattr(bridge_cls, "_get_object_prop") + + def test_no_ebalfred_state(self): + """Generic bridge __init__ should NOT have EB-Alfred state.""" + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + bridge = AI2ThorBridge(workspace=tmpdir) + assert not hasattr(bridge, "traj_data") + assert not hasattr(bridge, "cleaned_objects") + assert not hasattr(bridge, "cooled_objects") + assert not hasattr(bridge, "heated_objects") + assert not hasattr(bridge, "cur_receptacle") + assert not hasattr(bridge, "put_count_dict") + assert not hasattr(bridge, "sliced") + + def test_accepts_simulator_kwargs(self): + """Generic bridge should accept simulator_kwargs.""" + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + kwargs = {"quality": "Low", "screen_height": 300} + bridge = AI2ThorBridge(workspace=tmpdir, simulator_kwargs=kwargs) + assert bridge.simulator_kwargs == kwargs + + def test_simulator_kwargs_default_empty(self): + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + bridge = AI2ThorBridge(workspace=tmpdir) + assert bridge.simulator_kwargs == {} + + +# --- EBAlfredBridge tests --- + +class TestEBAlfredBridgeImport: + """Test that EBAlfredBridge properly extends AI2ThorBridge.""" + + def test_importable(self): + from easi.tasks.ebalfred.bridge import EBAlfredBridge + assert EBAlfredBridge is not None + + def test_subclasses_ai2thor_bridge(self): + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + from easi.tasks.ebalfred.bridge import EBAlfredBridge + assert issubclass(EBAlfredBridge, AI2ThorBridge) + + def test_has_skill_methods(self): + """EB-Alfred bridge should have all skill execution methods.""" + from easi.tasks.ebalfred.bridge import EBAlfredBridge + bridge_cls = EBAlfredBridge + assert hasattr(bridge_cls, "_execute_skill") + assert hasattr(bridge_cls, "_restore_scene") + assert hasattr(bridge_cls, "_update_states") + assert hasattr(bridge_cls, "_nav_obj") + assert hasattr(bridge_cls, "_pick") + assert hasattr(bridge_cls, "_put") + assert hasattr(bridge_cls, "_open") + assert hasattr(bridge_cls, "_close") + assert hasattr(bridge_cls, "_toggleon") + assert hasattr(bridge_cls, "_toggleoff") + assert hasattr(bridge_cls, "_slice") + assert hasattr(bridge_cls, "_drop") + assert hasattr(bridge_cls, "_get_obj_id_from_name") + assert hasattr(bridge_cls, "_get_object_prop") + + def test_has_ebalfred_state(self): + """EB-Alfred bridge should have task-specific state.""" + from easi.tasks.ebalfred.bridge import EBAlfredBridge + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + bridge = EBAlfredBridge(workspace=tmpdir, data_dir=tmpdir) + assert hasattr(bridge, "traj_data") + assert hasattr(bridge, "cleaned_objects") + assert hasattr(bridge, "cooled_objects") + assert hasattr(bridge, "heated_objects") + assert hasattr(bridge, "cur_receptacle") + assert hasattr(bridge, "put_count_dict") + assert hasattr(bridge, "sliced") + + def test_inherits_generic_methods(self): + """EB-Alfred bridge should inherit generic methods from AI2ThorBridge.""" + from easi.tasks.ebalfred.bridge import EBAlfredBridge + bridge_cls = EBAlfredBridge + assert hasattr(bridge_cls, "start") + assert hasattr(bridge_cls, "stop") + assert hasattr(bridge_cls, "run") + assert hasattr(bridge_cls, "_step") + assert hasattr(bridge_cls, "_cache_reachable_positions") + assert hasattr(bridge_cls, "_make_observation_response") + assert hasattr(bridge_cls, "_find_close_reachable_position") + assert hasattr(bridge_cls, "_angle_diff") + + def test_overrides_reset_and_step(self): + """EB-Alfred bridge should override reset and step.""" + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + from easi.tasks.ebalfred.bridge import EBAlfredBridge + # The methods should be overridden (different from parent) + assert EBAlfredBridge.reset is not AI2ThorBridge.reset + assert EBAlfredBridge.step is not AI2ThorBridge.step + + def test_run_is_inherited(self): + """EB-Alfred bridge should inherit run() from AI2ThorBridge (not override).""" + from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + from easi.tasks.ebalfred.bridge import EBAlfredBridge + assert EBAlfredBridge.run is AI2ThorBridge.run + + +# --- Thor utils separation tests --- + +class TestThorUtilsSeparation: + """Test that thor_utils is properly split between generic and EB-Alfred.""" + + def test_generic_has_constants(self): + from easi.simulators.ai2thor.v2_1_0 import thor_utils + assert hasattr(thor_utils, "SCREEN_WIDTH") + assert hasattr(thor_utils, "SCREEN_HEIGHT") + assert hasattr(thor_utils, "CAMERA_HEIGHT_OFFSET") + assert hasattr(thor_utils, "VISIBILITY_DISTANCE") + assert hasattr(thor_utils, "AGENT_STEP_SIZE") + + def test_generic_has_object_helpers(self): + from easi.simulators.ai2thor.v2_1_0 import thor_utils + assert hasattr(thor_utils, "natural_word_to_ithor_name") + assert hasattr(thor_utils, "get_objects_of_type") + assert hasattr(thor_utils, "get_objects_with_name_and_prop") + assert hasattr(thor_utils, "get_obj_of_type_closest_to_obj") + + def test_generic_has_no_goal_evaluators(self): + """Generic thor_utils should NOT have goal evaluation functions.""" + from easi.simulators.ai2thor.v2_1_0 import thor_utils + assert not hasattr(thor_utils, "GOALS") + assert not hasattr(thor_utils, "GOAL_EVALUATORS") + assert not hasattr(thor_utils, "evaluate_goal_conditions") + assert not hasattr(thor_utils, "get_targets_from_traj") + assert not hasattr(thor_utils, "load_task_json") + assert not hasattr(thor_utils, "load_task_json_with_repeat") + + def test_ebalfred_has_goal_evaluators(self): + from easi.tasks.ebalfred import thor_utils + assert hasattr(thor_utils, "GOALS") + assert hasattr(thor_utils, "GOAL_EVALUATORS") + assert hasattr(thor_utils, "evaluate_goal_conditions") + assert hasattr(thor_utils, "get_targets_from_traj") + assert hasattr(thor_utils, "load_task_json") + assert hasattr(thor_utils, "load_task_json_with_repeat") + + def test_ebalfred_goals_list(self): + from easi.tasks.ebalfred.thor_utils import GOALS + assert len(GOALS) == 7 + assert "pick_and_place_simple" in GOALS + assert "pick_two_obj_and_place" in GOALS + + def test_ebalfred_evaluators_dict(self): + from easi.tasks.ebalfred.thor_utils import GOAL_EVALUATORS + assert len(GOAL_EVALUATORS) == 7 + assert "pick_and_place_simple" in GOAL_EVALUATORS + assert "pick_heat_then_place_in_recep" in GOAL_EVALUATORS + + def test_ebalfred_imports_from_generic(self): + """EB-Alfred thor_utils should import from generic thor_utils.""" + from easi.tasks.ebalfred.thor_utils import evaluate_goal_conditions + # The function should be callable + assert callable(evaluate_goal_conditions) + + +# --- get_bridge_script_path tests --- + +class TestGetBridgeScriptPath: + """Test get_bridge_script_path on various task classes.""" + + def test_ebalfred_task_returns_path(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + bridge_path = task.get_bridge_script_path() + assert bridge_path is not None + assert isinstance(bridge_path, Path) + assert bridge_path.name == "bridge.py" + assert "ebalfred" in str(bridge_path) + + def test_ebalfred_bridge_path_exists(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + bridge_path = task.get_bridge_script_path() + assert bridge_path.exists(), f"Bridge script not found at {bridge_path}" + + def test_dummy_task_returns_none(self): + from easi.tasks.dummy_task.task import DummyTask + task = DummyTask() + assert task.get_bridge_script_path() is None + + def test_ebalfred_bridge_path_different_from_simulator(self): + """Task bridge should point to easi/tasks/ebalfred/bridge.py, + not easi/simulators/ai2thor/v2_1_0/bridge.py.""" + from easi.simulators.ai2thor.v2_1_0.simulator import AI2ThorSimulatorV210 + from easi.tasks.ebalfred.task import EBAlfredTask + + task = EBAlfredTask() + sim = AI2ThorSimulatorV210() + + task_bridge = task.get_bridge_script_path() + sim_bridge = sim._get_bridge_script_path() + + assert task_bridge != sim_bridge + assert "tasks" in str(task_bridge) + assert "simulators" in str(sim_bridge) + + +# --- simulator_kwargs tests --- + +class TestSimulatorKwargs: + """Test simulator_kwargs property on BaseTask.""" + + def test_ebalfred_has_simulator_kwargs(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + kwargs = task.simulator_kwargs + assert isinstance(kwargs, dict) + assert kwargs.get("quality") == "MediumCloseFitShadows" + assert kwargs.get("screen_height") == 500 + assert kwargs.get("screen_width") == 500 + + def test_dummy_task_empty_simulator_kwargs(self): + from easi.tasks.dummy_task.task import DummyTask + task = DummyTask() + kwargs = task.simulator_kwargs + assert isinstance(kwargs, dict) + assert kwargs == {} + + def test_all_ebalfred_splits_have_kwargs(self): + """All EB-Alfred split YAMLs should have simulator_kwargs.""" + from easi.tasks.registry import get_task_entry, load_task_class + + ebalfred_names = [ + "ebalfred_base", + "ebalfred_long_horizon", + "ebalfred_common_sense", + "ebalfred_complex_instruction", + "ebalfred_spatial", + "ebalfred_visual_appearance", + ] + for name in ebalfred_names: + entry = get_task_entry(name) + TaskClass = load_task_class(name) + task = TaskClass(split_yaml_path=entry.config_path) + kwargs = task.simulator_kwargs + assert isinstance(kwargs, dict), f"{name} simulator_kwargs is not a dict" + assert "quality" in kwargs, f"{name} missing quality in simulator_kwargs" + + +# --- Protocol tests --- + +class TestTaskProtocol: + """Test that TaskProtocol includes new methods.""" + + def test_protocol_has_get_bridge_script_path(self): + from easi.core.protocols import TaskProtocol + assert hasattr(TaskProtocol, "get_bridge_script_path") + + def test_protocol_has_simulator_kwargs(self): + from easi.core.protocols import TaskProtocol + assert hasattr(TaskProtocol, "simulator_kwargs") From 1ad66a0003993ab43f617f47d02f6bc069958adc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Feb 2026 16:39:25 +0800 Subject: [PATCH 004/239] [Fix] Updated dependencies for ebalfred --- .gitignore | 3 ++- easi/cli.py | 12 ++++++++-- easi/core/base_env_manager.py | 23 +++++++++++++++---- easi/simulators/ai2thor/v2_1_0/bridge.py | 8 +++++-- .../ai2thor/v2_1_0/requirements.txt | 5 ++++ 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index dc084eb..d3a87e4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ *.pyc __pycache__/ *.pyo -*.egg-info \ No newline at end of file +*.egg-info +/build diff --git a/easi/cli.py b/easi/cli.py index a2d8022..8f710ed 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -40,6 +40,8 @@ def build_parser() -> argparse.ArgumentParser: env_install = env_sub.add_parser("install", help="Install a simulator environment", parents=[common]) env_install.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'") + env_install.add_argument("--reinstall", action="store_true", + help="Remove existing env and install from scratch") env_check = env_sub.add_parser("check", help="Check if environment is ready", parents=[common]) env_check.add_argument("simulator", type=str) @@ -113,11 +115,16 @@ def cmd_env_list() -> None: logger.info(" %s%s -- %s", pair, default_marker, entry.description) -def cmd_env_install(simulator: str) -> None: +def cmd_env_install(simulator: str, reinstall: bool = False) -> None: from easi.simulators.registry import load_env_manager_class EnvManagerClass = load_env_manager_class(simulator) env_manager = EnvManagerClass() + + if reinstall: + logger.info("Removing existing environment: %s", env_manager.get_env_name()) + env_manager.remove() + logger.info("Installing environment: %s", env_manager.get_env_name()) env_manager.install() logger.info("Done.") @@ -198,6 +205,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: needs_display=env_manager.needs_display, xvfb_screen_config=env_manager.xvfb_screen_config, startup_timeout=timeout, + command_timeout=timeout, ) try: @@ -274,7 +282,7 @@ def main() -> None: if args.env_action == "list": cmd_env_list() elif args.env_action == "install": - cmd_env_install(args.simulator) + cmd_env_install(args.simulator, reinstall=args.reinstall) elif args.env_action == "check": cmd_env_check(args.simulator) else: diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 4ab61fe..7cb37d2 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -110,6 +110,19 @@ def env_is_ready(self) -> bool: except (subprocess.TimeoutExpired, FileNotFoundError): return False + def remove(self) -> None: + """Remove the conda environment entirely (for --reinstall).""" + env_name = self.get_env_name() + env_path = self.conda_prefix / "envs" / env_name + if not env_path.exists(): + logger.info("Environment %s does not exist, nothing to remove", env_name) + return + self._run_command( + ["conda", "env", "remove", "-n", env_name, "-y"], + f"conda env remove {env_name}", + ) + logger.info("Environment %s removed", env_name) + def install(self) -> None: """Install the conda+uv environment with file-based locking. @@ -125,7 +138,7 @@ def install(self) -> None: def _do_install(self) -> None: """Execute the full install sequence (called under lock).""" env_name = self.get_env_name() - logger.info("[Env Installation] %s", env_name) + logger.info("[EASI] %s", env_name) # Step 1: Check system deps self._dep_checker.assert_all(self.get_system_deps()) @@ -135,7 +148,7 @@ def _do_install(self) -> None: if conda_yaml.exists(): self._run_conda_create(env_name, conda_yaml) else: - logger.warning("[Env Installation] No conda_env.yaml found at %s, skipping conda setup", conda_yaml) + logger.warning("[EASI] No conda_env.yaml found at %s, skipping conda setup", conda_yaml) # Step 3: Install uv in the conda env python_exec = self.get_python_executable() @@ -149,7 +162,7 @@ def _do_install(self) -> None: "uv pip install", ) else: - logger.warning("[Env Installation] No requirements.txt found at %s, skipping uv install", requirements) + logger.warning("[EASI] No requirements.txt found at %s, skipping uv install", requirements) # Step 5: Validate (stream output like other commands) self._run_command( @@ -157,7 +170,7 @@ def _do_install(self) -> None: "environment validation", ) - logger.info("[Env Installation] Environment %s installed and validated successfully", env_name) + logger.info("[EASI] Environment %s installed and validated successfully", env_name) def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: """Create or update a conda environment from a YAML file.""" @@ -174,7 +187,7 @@ def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: def _run_command(self, cmd: list[str], description: str) -> None: """Run a subprocess command, streaming output through the logger.""" - logger.info("[Env Installation] %s", " ".join(cmd)) + logger.info("[EASI] %s", " ".join(cmd)) process = subprocess.Popen( cmd, stdout=subprocess.PIPE, diff --git a/easi/simulators/ai2thor/v2_1_0/bridge.py b/easi/simulators/ai2thor/v2_1_0/bridge.py index 2bb9788..5b0b4f1 100644 --- a/easi/simulators/ai2thor/v2_1_0/bridge.py +++ b/easi/simulators/ai2thor/v2_1_0/bridge.py @@ -98,10 +98,14 @@ def start(self): screen_h = self.simulator_kwargs.get("screen_height", SCREEN_HEIGHT) screen_w = self.simulator_kwargs.get("screen_width", SCREEN_WIDTH) - logger.info("Starting AI2-THOR controller...") + # ai2thor Controller.start() prepends ':' to x_display, so we must + # strip any leading ':' from DISPLAY to avoid "::99" double-colon bug. + x_display = os.environ.get("DISPLAY", ":0").lstrip(":") + + logger.info("Starting AI2-THOR controller (display=%s)...", x_display) self.controller = Controller(quality=quality) self.controller.start( - x_display=os.environ.get("DISPLAY", "0"), + x_display=x_display, player_screen_height=screen_h, player_screen_width=screen_w, ) diff --git a/easi/simulators/ai2thor/v2_1_0/requirements.txt b/easi/simulators/ai2thor/v2_1_0/requirements.txt index b9e096b..e9c700f 100644 --- a/easi/simulators/ai2thor/v2_1_0/requirements.txt +++ b/easi/simulators/ai2thor/v2_1_0/requirements.txt @@ -2,3 +2,8 @@ ai2thor==2.1.0 numpy<1.24 Pillow scipy +werkzeug==1.0.1 +flask==1.1.2 +jinja2==2.11.3 +markupsafe==1.1.1 +itsdangerous==1.1.0 From 52d2f30fac66cec3feffc8a5cf07afb15216d1be Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 13:27:47 +0800 Subject: [PATCH 005/239] [Feat] Added EBAlfred, working on dummy agent --- .gitignore | 2 + easi/cli.py | 27 +- easi/communication/filesystem.py | 16 +- easi/core/base_agent.py | 2 +- easi/core/base_env_manager.py | 48 +- easi/core/base_task.py | 7 +- easi/evaluation/runner.py | 2 +- easi/llm/api_client.py | 4 +- easi/llm/dummy_server.py | 2 +- easi/simulators/ai2thor/v2_1_0/bridge.py | 11 +- .../ai2thor/v2_1_0/requirements.txt | 3 + easi/simulators/ai2thor/v2_1_0/thor_utils.py | 11 +- easi/simulators/ai2thor/v5_0_0/bridge.py | 8 +- easi/simulators/base_bridge.py | 219 +++ easi/simulators/dummy/v1/bridge.py | 12 +- easi/simulators/registry.py | 2 +- easi/simulators/subprocess_runner.py | 4 +- easi/tasks/ebalfred/bridge.py | 884 +----------- easi/tasks/ebalfred/task.py | 45 +- easi/tasks/ebalfred/thor_utils.py | 303 ---- easi/tasks/ebalfred/vendor/EBAlfEnv.py | 413 ++++++ easi/tasks/ebalfred/vendor/__init__.py | 0 easi/tasks/ebalfred/vendor/env/__init__.py | 0 easi/tasks/ebalfred/vendor/env/reward.py | 289 ++++ easi/tasks/ebalfred/vendor/env/tasks.py | 476 +++++++ easi/tasks/ebalfred/vendor/env/thor_env.py | 601 ++++++++ easi/tasks/ebalfred/vendor/gen/__init__.py | 0 easi/tasks/ebalfred/vendor/gen/constants.py | 1221 +++++++++++++++++ .../tasks/ebalfred/vendor/gen/goal_library.py | 682 +++++++++ .../ebalfred/vendor/gen/graph/__init__.py | 0 .../ebalfred/vendor/gen/graph/graph_obj.py | 426 ++++++ .../vendor/gen/layouts/FloorPlan1-layout.npy | Bin 0 -> 2192 bytes .../gen/layouts/FloorPlan1-objects.json | 49 + .../gen/layouts/FloorPlan1-openable.json | 146 ++ .../vendor/gen/layouts/FloorPlan10-layout.npy | Bin 0 -> 3376 bytes .../gen/layouts/FloorPlan10-objects.json | 47 + .../gen/layouts/FloorPlan10-openable.json | 98 ++ .../vendor/gen/layouts/FloorPlan11-layout.npy | Bin 0 -> 1200 bytes .../gen/layouts/FloorPlan11-objects.json | 42 + .../gen/layouts/FloorPlan11-openable.json | 134 ++ .../vendor/gen/layouts/FloorPlan12-layout.npy | Bin 0 -> 1392 bytes .../gen/layouts/FloorPlan12-objects.json | 39 + .../gen/layouts/FloorPlan12-openable.json | 152 ++ .../vendor/gen/layouts/FloorPlan13-layout.npy | Bin 0 -> 2944 bytes .../gen/layouts/FloorPlan13-objects.json | 42 + .../gen/layouts/FloorPlan13-openable.json | 188 +++ .../vendor/gen/layouts/FloorPlan14-layout.npy | Bin 0 -> 2016 bytes .../gen/layouts/FloorPlan14-objects.json | 39 + .../gen/layouts/FloorPlan14-openable.json | 56 + .../vendor/gen/layouts/FloorPlan15-layout.npy | Bin 0 -> 1664 bytes .../gen/layouts/FloorPlan15-objects.json | 43 + .../gen/layouts/FloorPlan15-openable.json | 104 ++ .../vendor/gen/layouts/FloorPlan16-layout.npy | Bin 0 -> 3296 bytes .../gen/layouts/FloorPlan16-objects.json | 45 + .../gen/layouts/FloorPlan16-openable.json | 236 ++++ .../vendor/gen/layouts/FloorPlan17-layout.npy | Bin 0 -> 1248 bytes .../gen/layouts/FloorPlan17-objects.json | 45 + .../gen/layouts/FloorPlan17-openable.json | 104 ++ .../vendor/gen/layouts/FloorPlan18-layout.npy | Bin 0 -> 3680 bytes .../gen/layouts/FloorPlan18-objects.json | 45 + .../gen/layouts/FloorPlan18-openable.json | 158 +++ .../vendor/gen/layouts/FloorPlan19-layout.npy | Bin 0 -> 1248 bytes .../gen/layouts/FloorPlan19-objects.json | 39 + .../gen/layouts/FloorPlan19-openable.json | 116 ++ .../vendor/gen/layouts/FloorPlan2-layout.npy | Bin 0 -> 1968 bytes .../gen/layouts/FloorPlan2-objects.json | 42 + .../gen/layouts/FloorPlan2-openable.json | 140 ++ .../vendor/gen/layouts/FloorPlan20-layout.npy | Bin 0 -> 1408 bytes .../gen/layouts/FloorPlan20-objects.json | 43 + .../gen/layouts/FloorPlan20-openable.json | 116 ++ .../gen/layouts/FloorPlan201-layout.npy | Bin 0 -> 3152 bytes .../gen/layouts/FloorPlan201-objects.json | 35 + .../gen/layouts/FloorPlan201-openable.json | 68 + .../gen/layouts/FloorPlan202-layout.npy | Bin 0 -> 2416 bytes .../gen/layouts/FloorPlan202-objects.json | 24 + .../gen/layouts/FloorPlan202-openable.json | 38 + .../gen/layouts/FloorPlan203-layout.npy | Bin 0 -> 8096 bytes .../gen/layouts/FloorPlan203-objects.json | 34 + .../gen/layouts/FloorPlan203-openable.json | 74 + .../gen/layouts/FloorPlan204-layout.npy | Bin 0 -> 3552 bytes .../gen/layouts/FloorPlan204-objects.json | 30 + .../gen/layouts/FloorPlan204-openable.json | 110 ++ .../gen/layouts/FloorPlan205-layout.npy | Bin 0 -> 4096 bytes .../gen/layouts/FloorPlan205-objects.json | 28 + .../gen/layouts/FloorPlan205-openable.json | 74 + .../gen/layouts/FloorPlan206-layout.npy | Bin 0 -> 1968 bytes .../gen/layouts/FloorPlan206-objects.json | 23 + .../gen/layouts/FloorPlan206-openable.json | 116 ++ .../gen/layouts/FloorPlan207-layout.npy | Bin 0 -> 2448 bytes .../gen/layouts/FloorPlan207-objects.json | 23 + .../gen/layouts/FloorPlan207-openable.json | 86 ++ .../gen/layouts/FloorPlan208-layout.npy | Bin 0 -> 3536 bytes .../gen/layouts/FloorPlan208-objects.json | 25 + .../gen/layouts/FloorPlan208-openable.json | 98 ++ .../gen/layouts/FloorPlan209-layout.npy | Bin 0 -> 4992 bytes .../gen/layouts/FloorPlan209-objects.json | 29 + .../gen/layouts/FloorPlan209-openable.json | 62 + .../vendor/gen/layouts/FloorPlan21-layout.npy | Bin 0 -> 1808 bytes .../gen/layouts/FloorPlan21-objects.json | 43 + .../gen/layouts/FloorPlan21-openable.json | 80 ++ .../gen/layouts/FloorPlan210-layout.npy | Bin 0 -> 4416 bytes .../gen/layouts/FloorPlan210-objects.json | 28 + .../gen/layouts/FloorPlan210-openable.json | 92 ++ .../gen/layouts/FloorPlan211-layout.npy | Bin 0 -> 2128 bytes .../gen/layouts/FloorPlan211-objects.json | 27 + .../gen/layouts/FloorPlan211-openable.json | 68 + .../gen/layouts/FloorPlan212-layout.npy | Bin 0 -> 1792 bytes .../gen/layouts/FloorPlan212-objects.json | 29 + .../gen/layouts/FloorPlan212-openable.json | 74 + .../gen/layouts/FloorPlan213-layout.npy | Bin 0 -> 4800 bytes .../gen/layouts/FloorPlan213-objects.json | 26 + .../gen/layouts/FloorPlan213-openable.json | 128 ++ .../gen/layouts/FloorPlan214-layout.npy | Bin 0 -> 3104 bytes .../gen/layouts/FloorPlan214-objects.json | 27 + .../gen/layouts/FloorPlan214-openable.json | 44 + .../gen/layouts/FloorPlan215-layout.npy | Bin 0 -> 6160 bytes .../gen/layouts/FloorPlan215-objects.json | 28 + .../gen/layouts/FloorPlan215-openable.json | 80 ++ .../gen/layouts/FloorPlan216-layout.npy | Bin 0 -> 2528 bytes .../gen/layouts/FloorPlan216-objects.json | 27 + .../gen/layouts/FloorPlan216-openable.json | 68 + .../gen/layouts/FloorPlan217-layout.npy | Bin 0 -> 2576 bytes .../gen/layouts/FloorPlan217-objects.json | 28 + .../gen/layouts/FloorPlan217-openable.json | 92 ++ .../gen/layouts/FloorPlan218-layout.npy | Bin 0 -> 6848 bytes .../gen/layouts/FloorPlan218-objects.json | 29 + .../gen/layouts/FloorPlan218-openable.json | 68 + .../gen/layouts/FloorPlan219-layout.npy | Bin 0 -> 3536 bytes .../gen/layouts/FloorPlan219-objects.json | 29 + .../gen/layouts/FloorPlan219-openable.json | 158 +++ .../vendor/gen/layouts/FloorPlan22-layout.npy | Bin 0 -> 2304 bytes .../gen/layouts/FloorPlan22-objects.json | 41 + .../gen/layouts/FloorPlan22-openable.json | 170 +++ .../gen/layouts/FloorPlan220-layout.npy | Bin 0 -> 3920 bytes .../gen/layouts/FloorPlan220-objects.json | 28 + .../gen/layouts/FloorPlan220-openable.json | 92 ++ .../gen/layouts/FloorPlan221-layout.npy | Bin 0 -> 2016 bytes .../gen/layouts/FloorPlan221-objects.json | 26 + .../gen/layouts/FloorPlan221-openable.json | 44 + .../gen/layouts/FloorPlan222-layout.npy | Bin 0 -> 1824 bytes .../gen/layouts/FloorPlan222-objects.json | 25 + .../gen/layouts/FloorPlan222-openable.json | 92 ++ .../gen/layouts/FloorPlan223-layout.npy | Bin 0 -> 3632 bytes .../gen/layouts/FloorPlan223-objects.json | 26 + .../gen/layouts/FloorPlan223-openable.json | 50 + .../gen/layouts/FloorPlan224-layout.npy | Bin 0 -> 4496 bytes .../gen/layouts/FloorPlan224-objects.json | 29 + .../gen/layouts/FloorPlan224-openable.json | 164 +++ .../gen/layouts/FloorPlan225-layout.npy | Bin 0 -> 2592 bytes .../gen/layouts/FloorPlan225-objects.json | 29 + .../gen/layouts/FloorPlan225-openable.json | 80 ++ .../gen/layouts/FloorPlan226-layout.npy | Bin 0 -> 1392 bytes .../gen/layouts/FloorPlan226-objects.json | 24 + .../gen/layouts/FloorPlan226-openable.json | 68 + .../gen/layouts/FloorPlan227-layout.npy | Bin 0 -> 3312 bytes .../gen/layouts/FloorPlan227-objects.json | 27 + .../gen/layouts/FloorPlan227-openable.json | 212 +++ .../gen/layouts/FloorPlan228-layout.npy | Bin 0 -> 2688 bytes .../gen/layouts/FloorPlan228-objects.json | 26 + .../gen/layouts/FloorPlan228-openable.json | 50 + .../gen/layouts/FloorPlan229-layout.npy | Bin 0 -> 3456 bytes .../gen/layouts/FloorPlan229-objects.json | 30 + .../gen/layouts/FloorPlan229-openable.json | 68 + .../vendor/gen/layouts/FloorPlan23-layout.npy | Bin 0 -> 1664 bytes .../gen/layouts/FloorPlan23-objects.json | 45 + .../gen/layouts/FloorPlan23-openable.json | 74 + .../gen/layouts/FloorPlan230-layout.npy | Bin 0 -> 5872 bytes .../gen/layouts/FloorPlan230-objects.json | 30 + .../gen/layouts/FloorPlan230-openable.json | 50 + .../vendor/gen/layouts/FloorPlan24-layout.npy | Bin 0 -> 1104 bytes .../gen/layouts/FloorPlan24-objects.json | 41 + .../gen/layouts/FloorPlan24-openable.json | 188 +++ .../vendor/gen/layouts/FloorPlan25-layout.npy | Bin 0 -> 560 bytes .../gen/layouts/FloorPlan25-objects.json | 40 + .../gen/layouts/FloorPlan25-openable.json | 104 ++ .../vendor/gen/layouts/FloorPlan26-layout.npy | Bin 0 -> 1344 bytes .../gen/layouts/FloorPlan26-objects.json | 39 + .../gen/layouts/FloorPlan26-openable.json | 92 ++ .../vendor/gen/layouts/FloorPlan27-layout.npy | Bin 0 -> 816 bytes .../gen/layouts/FloorPlan27-objects.json | 42 + .../gen/layouts/FloorPlan27-openable.json | 116 ++ .../vendor/gen/layouts/FloorPlan28-layout.npy | Bin 0 -> 1744 bytes .../gen/layouts/FloorPlan28-objects.json | 41 + .../gen/layouts/FloorPlan28-openable.json | 110 ++ .../vendor/gen/layouts/FloorPlan29-layout.npy | Bin 0 -> 1168 bytes .../gen/layouts/FloorPlan29-objects.json | 38 + .../gen/layouts/FloorPlan29-openable.json | 68 + .../vendor/gen/layouts/FloorPlan3-layout.npy | Bin 0 -> 1792 bytes .../gen/layouts/FloorPlan3-objects.json | 43 + .../gen/layouts/FloorPlan3-openable.json | 98 ++ .../vendor/gen/layouts/FloorPlan30-layout.npy | Bin 0 -> 1072 bytes .../gen/layouts/FloorPlan30-objects.json | 44 + .../gen/layouts/FloorPlan30-openable.json | 284 ++++ .../gen/layouts/FloorPlan301-layout.npy | Bin 0 -> 1520 bytes .../gen/layouts/FloorPlan301-objects.json | 33 + .../gen/layouts/FloorPlan301-openable.json | 98 ++ .../gen/layouts/FloorPlan302-layout.npy | Bin 0 -> 848 bytes .../gen/layouts/FloorPlan302-objects.json | 30 + .../gen/layouts/FloorPlan302-openable.json | 62 + .../gen/layouts/FloorPlan303-layout.npy | Bin 0 -> 1424 bytes .../gen/layouts/FloorPlan303-objects.json | 32 + .../gen/layouts/FloorPlan303-openable.json | 104 ++ .../gen/layouts/FloorPlan304-layout.npy | Bin 0 -> 1872 bytes .../gen/layouts/FloorPlan304-objects.json | 30 + .../gen/layouts/FloorPlan304-openable.json | 20 + .../gen/layouts/FloorPlan305-layout.npy | Bin 0 -> 1488 bytes .../gen/layouts/FloorPlan305-objects.json | 32 + .../gen/layouts/FloorPlan305-openable.json | 44 + .../gen/layouts/FloorPlan306-layout.npy | Bin 0 -> 1616 bytes .../gen/layouts/FloorPlan306-objects.json | 27 + .../gen/layouts/FloorPlan306-openable.json | 56 + .../gen/layouts/FloorPlan307-layout.npy | Bin 0 -> 1552 bytes .../gen/layouts/FloorPlan307-objects.json | 33 + .../gen/layouts/FloorPlan307-openable.json | 50 + .../gen/layouts/FloorPlan308-layout.npy | Bin 0 -> 1696 bytes .../gen/layouts/FloorPlan308-objects.json | 30 + .../gen/layouts/FloorPlan308-openable.json | 80 ++ .../gen/layouts/FloorPlan309-layout.npy | Bin 0 -> 5920 bytes .../gen/layouts/FloorPlan309-objects.json | 33 + .../gen/layouts/FloorPlan309-openable.json | 68 + .../gen/layouts/FloorPlan310-layout.npy | Bin 0 -> 1200 bytes .../gen/layouts/FloorPlan310-objects.json | 30 + .../gen/layouts/FloorPlan310-openable.json | 68 + .../gen/layouts/FloorPlan311-layout.npy | Bin 0 -> 3728 bytes .../gen/layouts/FloorPlan311-objects.json | 33 + .../gen/layouts/FloorPlan311-openable.json | 56 + .../gen/layouts/FloorPlan312-layout.npy | Bin 0 -> 1616 bytes .../gen/layouts/FloorPlan312-objects.json | 24 + .../gen/layouts/FloorPlan312-openable.json | 80 ++ .../gen/layouts/FloorPlan313-layout.npy | Bin 0 -> 912 bytes .../gen/layouts/FloorPlan313-objects.json | 32 + .../gen/layouts/FloorPlan313-openable.json | 68 + .../gen/layouts/FloorPlan314-layout.npy | Bin 0 -> 1408 bytes .../gen/layouts/FloorPlan314-objects.json | 26 + .../gen/layouts/FloorPlan314-openable.json | 50 + .../gen/layouts/FloorPlan315-layout.npy | Bin 0 -> 1744 bytes .../gen/layouts/FloorPlan315-objects.json | 26 + .../gen/layouts/FloorPlan315-openable.json | 104 ++ .../gen/layouts/FloorPlan316-layout.npy | Bin 0 -> 1056 bytes .../gen/layouts/FloorPlan316-objects.json | 28 + .../gen/layouts/FloorPlan316-openable.json | 32 + .../gen/layouts/FloorPlan317-layout.npy | Bin 0 -> 2160 bytes .../gen/layouts/FloorPlan317-objects.json | 30 + .../gen/layouts/FloorPlan317-openable.json | 98 ++ .../gen/layouts/FloorPlan318-layout.npy | Bin 0 -> 1536 bytes .../gen/layouts/FloorPlan318-objects.json | 29 + .../gen/layouts/FloorPlan318-openable.json | 110 ++ .../gen/layouts/FloorPlan319-layout.npy | Bin 0 -> 1536 bytes .../gen/layouts/FloorPlan319-objects.json | 28 + .../gen/layouts/FloorPlan319-openable.json | 122 ++ .../gen/layouts/FloorPlan320-layout.npy | Bin 0 -> 1088 bytes .../gen/layouts/FloorPlan320-objects.json | 25 + .../gen/layouts/FloorPlan320-openable.json | 50 + .../gen/layouts/FloorPlan321-layout.npy | Bin 0 -> 1440 bytes .../gen/layouts/FloorPlan321-objects.json | 26 + .../gen/layouts/FloorPlan321-openable.json | 44 + .../gen/layouts/FloorPlan322-layout.npy | Bin 0 -> 1696 bytes .../gen/layouts/FloorPlan322-objects.json | 28 + .../gen/layouts/FloorPlan322-openable.json | 80 ++ .../gen/layouts/FloorPlan323-layout.npy | Bin 0 -> 3152 bytes .../gen/layouts/FloorPlan323-objects.json | 28 + .../gen/layouts/FloorPlan323-openable.json | 110 ++ .../gen/layouts/FloorPlan324-layout.npy | Bin 0 -> 1616 bytes .../gen/layouts/FloorPlan324-objects.json | 26 + .../gen/layouts/FloorPlan324-openable.json | 98 ++ .../gen/layouts/FloorPlan325-layout.npy | Bin 0 -> 3104 bytes .../gen/layouts/FloorPlan325-objects.json | 26 + .../gen/layouts/FloorPlan325-openable.json | 146 ++ .../gen/layouts/FloorPlan326-layout.npy | Bin 0 -> 1744 bytes .../gen/layouts/FloorPlan326-objects.json | 33 + .../gen/layouts/FloorPlan326-openable.json | 122 ++ .../gen/layouts/FloorPlan327-layout.npy | Bin 0 -> 1360 bytes .../gen/layouts/FloorPlan327-objects.json | 28 + .../gen/layouts/FloorPlan327-openable.json | 92 ++ .../gen/layouts/FloorPlan328-layout.npy | Bin 0 -> 1120 bytes .../gen/layouts/FloorPlan328-objects.json | 29 + .../gen/layouts/FloorPlan328-openable.json | 44 + .../gen/layouts/FloorPlan329-layout.npy | Bin 0 -> 1536 bytes .../gen/layouts/FloorPlan329-objects.json | 26 + .../gen/layouts/FloorPlan329-openable.json | 32 + .../gen/layouts/FloorPlan330-layout.npy | Bin 0 -> 2304 bytes .../gen/layouts/FloorPlan330-objects.json | 30 + .../gen/layouts/FloorPlan330-openable.json | 128 ++ .../vendor/gen/layouts/FloorPlan4-layout.npy | Bin 0 -> 1232 bytes .../gen/layouts/FloorPlan4-objects.json | 41 + .../gen/layouts/FloorPlan4-openable.json | 92 ++ .../gen/layouts/FloorPlan401-layout.npy | Bin 0 -> 1696 bytes .../gen/layouts/FloorPlan401-objects.json | 31 + .../gen/layouts/FloorPlan401-openable.json | 50 + .../gen/layouts/FloorPlan402-layout.npy | Bin 0 -> 1632 bytes .../gen/layouts/FloorPlan402-objects.json | 32 + .../gen/layouts/FloorPlan402-openable.json | 92 ++ .../gen/layouts/FloorPlan403-layout.npy | Bin 0 -> 1152 bytes .../gen/layouts/FloorPlan403-objects.json | 32 + .../gen/layouts/FloorPlan403-openable.json | 56 + .../gen/layouts/FloorPlan404-layout.npy | Bin 0 -> 928 bytes .../gen/layouts/FloorPlan404-objects.json | 27 + .../gen/layouts/FloorPlan404-openable.json | 38 + .../gen/layouts/FloorPlan405-layout.npy | Bin 0 -> 560 bytes .../gen/layouts/FloorPlan405-objects.json | 27 + .../gen/layouts/FloorPlan405-openable.json | 56 + .../gen/layouts/FloorPlan406-layout.npy | Bin 0 -> 1696 bytes .../gen/layouts/FloorPlan406-objects.json | 27 + .../gen/layouts/FloorPlan406-openable.json | 44 + .../gen/layouts/FloorPlan407-layout.npy | Bin 0 -> 656 bytes .../gen/layouts/FloorPlan407-objects.json | 30 + .../gen/layouts/FloorPlan407-openable.json | 62 + .../gen/layouts/FloorPlan408-layout.npy | Bin 0 -> 720 bytes .../gen/layouts/FloorPlan408-objects.json | 27 + .../gen/layouts/FloorPlan408-openable.json | 62 + .../gen/layouts/FloorPlan409-layout.npy | Bin 0 -> 752 bytes .../gen/layouts/FloorPlan409-objects.json | 26 + .../gen/layouts/FloorPlan409-openable.json | 62 + .../gen/layouts/FloorPlan410-layout.npy | Bin 0 -> 1408 bytes .../gen/layouts/FloorPlan410-objects.json | 28 + .../gen/layouts/FloorPlan410-openable.json | 62 + .../gen/layouts/FloorPlan411-layout.npy | Bin 0 -> 1200 bytes .../gen/layouts/FloorPlan411-objects.json | 29 + .../gen/layouts/FloorPlan411-openable.json | 56 + .../gen/layouts/FloorPlan412-layout.npy | Bin 0 -> 912 bytes .../gen/layouts/FloorPlan412-objects.json | 28 + .../gen/layouts/FloorPlan412-openable.json | 44 + .../gen/layouts/FloorPlan413-layout.npy | Bin 0 -> 1232 bytes .../gen/layouts/FloorPlan413-objects.json | 31 + .../gen/layouts/FloorPlan413-openable.json | 68 + .../gen/layouts/FloorPlan414-layout.npy | Bin 0 -> 928 bytes .../gen/layouts/FloorPlan414-objects.json | 30 + .../gen/layouts/FloorPlan414-openable.json | 86 ++ .../gen/layouts/FloorPlan415-layout.npy | Bin 0 -> 1040 bytes .../gen/layouts/FloorPlan415-objects.json | 30 + .../gen/layouts/FloorPlan415-openable.json | 68 + .../gen/layouts/FloorPlan416-layout.npy | Bin 0 -> 1248 bytes .../gen/layouts/FloorPlan416-objects.json | 26 + .../gen/layouts/FloorPlan416-openable.json | 44 + .../gen/layouts/FloorPlan417-layout.npy | Bin 0 -> 1056 bytes .../gen/layouts/FloorPlan417-objects.json | 28 + .../gen/layouts/FloorPlan417-openable.json | 50 + .../gen/layouts/FloorPlan418-layout.npy | Bin 0 -> 896 bytes .../gen/layouts/FloorPlan418-objects.json | 27 + .../gen/layouts/FloorPlan418-openable.json | 32 + .../gen/layouts/FloorPlan419-layout.npy | Bin 0 -> 624 bytes .../gen/layouts/FloorPlan419-objects.json | 28 + .../gen/layouts/FloorPlan419-openable.json | 20 + .../gen/layouts/FloorPlan420-layout.npy | Bin 0 -> 576 bytes .../gen/layouts/FloorPlan420-objects.json | 28 + .../gen/layouts/FloorPlan420-openable.json | 32 + .../gen/layouts/FloorPlan421-layout.npy | Bin 0 -> 624 bytes .../gen/layouts/FloorPlan421-objects.json | 28 + .../gen/layouts/FloorPlan421-openable.json | 68 + .../gen/layouts/FloorPlan422-layout.npy | Bin 0 -> 768 bytes .../gen/layouts/FloorPlan422-objects.json | 31 + .../gen/layouts/FloorPlan422-openable.json | 68 + .../gen/layouts/FloorPlan423-layout.npy | Bin 0 -> 1024 bytes .../gen/layouts/FloorPlan423-objects.json | 31 + .../gen/layouts/FloorPlan423-openable.json | 80 ++ .../gen/layouts/FloorPlan424-layout.npy | Bin 0 -> 736 bytes .../gen/layouts/FloorPlan424-objects.json | 26 + .../gen/layouts/FloorPlan424-openable.json | 50 + .../gen/layouts/FloorPlan425-layout.npy | Bin 0 -> 528 bytes .../gen/layouts/FloorPlan425-objects.json | 29 + .../gen/layouts/FloorPlan425-openable.json | 38 + .../gen/layouts/FloorPlan426-layout.npy | Bin 0 -> 928 bytes .../gen/layouts/FloorPlan426-objects.json | 29 + .../gen/layouts/FloorPlan426-openable.json | 74 + .../gen/layouts/FloorPlan427-layout.npy | Bin 0 -> 944 bytes .../gen/layouts/FloorPlan427-objects.json | 30 + .../gen/layouts/FloorPlan427-openable.json | 68 + .../gen/layouts/FloorPlan428-layout.npy | Bin 0 -> 1008 bytes .../gen/layouts/FloorPlan428-objects.json | 27 + .../gen/layouts/FloorPlan428-openable.json | 50 + .../gen/layouts/FloorPlan429-layout.npy | Bin 0 -> 1136 bytes .../gen/layouts/FloorPlan429-objects.json | 28 + .../gen/layouts/FloorPlan429-openable.json | 26 + .../gen/layouts/FloorPlan430-layout.npy | Bin 0 -> 1824 bytes .../gen/layouts/FloorPlan430-objects.json | 35 + .../gen/layouts/FloorPlan430-openable.json | 62 + .../vendor/gen/layouts/FloorPlan5-layout.npy | Bin 0 -> 1712 bytes .../gen/layouts/FloorPlan5-objects.json | 45 + .../gen/layouts/FloorPlan5-openable.json | 194 +++ .../vendor/gen/layouts/FloorPlan6-layout.npy | Bin 0 -> 2272 bytes .../gen/layouts/FloorPlan6-objects.json | 41 + .../gen/layouts/FloorPlan6-openable.json | 164 +++ .../vendor/gen/layouts/FloorPlan7-layout.npy | Bin 0 -> 4416 bytes .../gen/layouts/FloorPlan7-objects.json | 47 + .../gen/layouts/FloorPlan7-openable.json | 152 ++ .../vendor/gen/layouts/FloorPlan8-layout.npy | Bin 0 -> 2880 bytes .../gen/layouts/FloorPlan8-objects.json | 45 + .../gen/layouts/FloorPlan8-openable.json | 200 +++ .../vendor/gen/layouts/FloorPlan9-layout.npy | Bin 0 -> 1344 bytes .../gen/layouts/FloorPlan9-objects.json | 41 + .../gen/layouts/FloorPlan9-openable.json | 284 ++++ .../ebalfred/vendor/gen/utils/__init__.py | 0 .../ebalfred/vendor/gen/utils/game_util.py | 377 +++++ .../ebalfred/vendor/gen/utils/image_util.py | 57 + .../ebalfred/vendor/gen/utils/py_util.py | 84 ++ easi/tasks/ebalfred/vendor/models/__init__.py | 0 .../vendor/models/config/rewards.json | 87 ++ easi/tasks/ebalfred/vendor/thor_connector.py | 575 ++++++++ easi/tasks/ebalfred/vendor/utils.py | 138 ++ easi/tasks/registry.py | 2 +- easi/tasks/scaffold.py | 252 ++++ easi/utils/locking.py | 6 +- easi/utils/logging.py | 107 +- easi/utils/spinner.py | 111 ++ tests/test_base_bridge.py | 160 +++ tests/test_bridge_refactor.py | 281 ++-- tests/test_ebalfred_task.py | 7 +- tests/test_scaffold.py | 84 ++ 408 files changed, 21297 insertions(+), 1364 deletions(-) create mode 100644 easi/simulators/base_bridge.py delete mode 100644 easi/tasks/ebalfred/thor_utils.py create mode 100644 easi/tasks/ebalfred/vendor/EBAlfEnv.py create mode 100644 easi/tasks/ebalfred/vendor/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/env/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/env/reward.py create mode 100644 easi/tasks/ebalfred/vendor/env/tasks.py create mode 100644 easi/tasks/ebalfred/vendor/env/thor_env.py create mode 100644 easi/tasks/ebalfred/vendor/gen/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/gen/constants.py create mode 100644 easi/tasks/ebalfred/vendor/gen/goal_library.py create mode 100644 easi/tasks/ebalfred/vendor/gen/graph/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/gen/graph/graph_obj.py create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan1-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan1-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan1-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan16-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan16-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan16-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan19-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan19-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan19-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan201-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan201-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan201-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan202-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan202-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan202-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan204-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan204-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan204-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan207-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan207-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan207-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan208-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan208-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan208-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan21-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan21-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan21-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan210-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan210-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan210-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan211-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan211-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan211-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan214-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan214-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan214-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan217-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan217-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan217-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan218-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan218-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan218-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan221-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan221-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan221-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan228-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan228-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan228-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan23-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan23-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan23-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan24-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan24-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan24-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan27-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan27-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan27-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan30-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan30-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan30-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan301-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan301-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan301-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan303-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan303-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan303-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan307-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan307-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan307-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan308-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan308-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan308-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan309-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan309-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan309-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan311-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan311-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan311-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan312-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan312-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan312-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan314-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan314-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan314-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan321-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan321-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan321-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan322-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan322-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan322-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan402-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan402-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan402-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan405-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan405-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan405-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan410-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan410-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan410-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan411-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan411-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan411-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan415-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan415-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan415-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan420-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan420-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan420-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan421-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan421-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan421-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan422-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan422-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan422-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan425-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan425-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan425-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan426-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan426-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan426-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan430-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan430-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan430-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan6-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan6-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan6-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan7-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan7-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan7-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-layout.npy create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-objects.json create mode 100644 easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-openable.json create mode 100644 easi/tasks/ebalfred/vendor/gen/utils/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/gen/utils/game_util.py create mode 100644 easi/tasks/ebalfred/vendor/gen/utils/image_util.py create mode 100644 easi/tasks/ebalfred/vendor/gen/utils/py_util.py create mode 100644 easi/tasks/ebalfred/vendor/models/__init__.py create mode 100644 easi/tasks/ebalfred/vendor/models/config/rewards.json create mode 100644 easi/tasks/ebalfred/vendor/thor_connector.py create mode 100644 easi/tasks/ebalfred/vendor/utils.py create mode 100644 easi/tasks/scaffold.py create mode 100644 easi/utils/spinner.py create mode 100644 tests/test_base_bridge.py create mode 100644 tests/test_scaffold.py diff --git a/.gitignore b/.gitignore index d3a87e4..f78151e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ __pycache__/ *.pyo *.egg-info /build +/datasets +/results diff --git a/easi/cli.py b/easi/cli.py index 8f710ed..5922217 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -20,7 +20,7 @@ def build_parser() -> argparse.ArgumentParser: common = argparse.ArgumentParser(add_help=False) common.add_argument( "--verbosity", type=str, default="INFO", - choices=["DEBUG", "INFO", "WARNING", "ERROR"], + choices=["TRACE", "DEBUG", "INFO", "WARNING", "ERROR"], help="Set logging verbosity (default: INFO)", ) @@ -58,6 +58,12 @@ def build_parser() -> argparse.ArgumentParser: task_download = task_sub.add_parser("download", help="Download task dataset", parents=[common]) task_download.add_argument("task", type=str) + task_scaffold = task_sub.add_parser("scaffold", help="Generate boilerplate for a new benchmark", parents=[common]) + task_scaffold.add_argument("name", type=str, help="Task name in snake_case (e.g., 'my_benchmark')") + task_scaffold.add_argument("--simulator", type=str, default="dummy:v1", + help="Simulator key (e.g., 'ai2thor:v2_1_0')") + task_scaffold.add_argument("--max-steps", type=int, default=50) + # --- sim command group --- sim_parser = subparsers.add_parser("sim", help="Control simulators", parents=[common]) sim_sub = sim_parser.add_subparsers(dest="sim_action") @@ -173,6 +179,23 @@ def cmd_task_info(task_name: str) -> None: logger.info(" Max steps: %s", entry.max_steps) +def cmd_task_scaffold(name: str, simulator: str, max_steps: int) -> None: + from pathlib import Path + + from easi.tasks.scaffold import scaffold_task + + tasks_dir = Path(__file__).parent / "tasks" + tests_dir = Path(__file__).parent.parent / "tests" + task_dir = scaffold_task(name, simulator, output_dir=tasks_dir, + max_steps=max_steps, tests_dir=tests_dir) + logger.info("Created task scaffold at: %s", task_dir) + logger.info("Next steps:") + logger.info(" 1. Edit %s/bridge.py — implement _create_env() and _extract_image()", task_dir.name) + logger.info(" 2. Edit %s/task.py — implement format_reset_config()", task_dir.name) + logger.info(" 3. Edit %s/%s.yaml — configure dataset source", task_dir.name, name) + logger.info(" 4. Run tests: pytest tests/test_%s.py -v", name) + + def cmd_task_download(task_name: str) -> None: from easi.tasks.registry import load_task_class @@ -295,6 +318,8 @@ def main() -> None: cmd_task_info(args.task) elif args.task_action == "download": cmd_task_download(args.task) + elif args.task_action == "scaffold": + cmd_task_scaffold(args.name, args.simulator, args.max_steps) else: parser.parse_args(["task", "--help"]) diff --git a/easi/communication/filesystem.py b/easi/communication/filesystem.py index e5da74e..c4404c4 100644 --- a/easi/communication/filesystem.py +++ b/easi/communication/filesystem.py @@ -33,7 +33,7 @@ def create_workspace(prefix: str = "easi_") -> Path: never collide on file paths. """ workspace = Path(tempfile.mkdtemp(prefix=prefix)) - logger.debug("Created IPC workspace: %s", workspace) + logger.trace("Created IPC workspace: %s", workspace) return workspace @@ -43,7 +43,7 @@ def cleanup_workspace(workspace: Path) -> None: if workspace.exists(): shutil.rmtree(workspace, ignore_errors=True) - logger.debug("Cleaned up IPC workspace: %s", workspace) + logger.trace("Cleaned up IPC workspace: %s", workspace) def atomic_write_json(path: Path, data: dict) -> None: @@ -85,7 +85,7 @@ def write_command(workspace: Path, command: dict) -> None: delete_file(response_path) atomic_write_json(command_path, command) - logger.debug("Wrote command: %s", command.get("type", "unknown")) + logger.trace("Wrote command: %s", command.get("type", "unknown")) def poll_for_response( @@ -126,7 +126,7 @@ def poll_for_response( data = read_json(response_path) if data is not None: - logger.debug("Received response: status=%s", data.get("status", "unknown")) + logger.trace("Received response: status=%s", data.get("status", "unknown")) return data time.sleep(poll_interval) @@ -162,7 +162,7 @@ def poll_for_status( data = read_json(status_path) if data is not None: - logger.debug("Received status: ready=%s", data.get("ready", False)) + logger.trace("Received status: ready=%s", data.get("ready", False)) return data time.sleep(poll_interval) @@ -196,7 +196,7 @@ def poll_for_command( if data is not None: # Delete the command file after reading to signal we've consumed it delete_file(command_path) - logger.debug("Bridge received command: %s", data.get("type", "unknown")) + logger.trace("Bridge received command: %s", data.get("type", "unknown")) return data time.sleep(poll_interval) @@ -211,11 +211,11 @@ def write_response(workspace: Path, response: dict) -> None: """Write a response for the parent process to read (bridge-side).""" response_path = workspace / RESPONSE_FILE atomic_write_json(response_path, response) - logger.debug("Bridge wrote response: status=%s", response.get("status", "unknown")) + logger.trace("Bridge wrote response: status=%s", response.get("status", "unknown")) def write_status(workspace: Path, ready: bool) -> None: """Write a status file to signal bridge readiness (bridge-side).""" status_path = workspace / STATUS_FILE atomic_write_json(status_path, {"ready": ready}) - logger.debug("Bridge wrote status: ready=%s", ready) + logger.trace("Bridge wrote status: ready=%s", ready) diff --git a/easi/core/base_agent.py b/easi/core/base_agent.py index 85212f5..b031501 100644 --- a/easi/core/base_agent.py +++ b/easi/core/base_agent.py @@ -104,7 +104,7 @@ def act(self, observation: Observation, task_description: str) -> Action: "content": llm_response, }) - logger.debug( + logger.trace( "Step %d: action=%s params=%s", self._step_count, action.action_name, diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 7cb37d2..bc75465 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -20,6 +20,7 @@ from easi.utils.locking import file_lock from easi.utils.logging import get_logger from easi.utils.paths import get_locks_dir +from easi.utils.spinner import spinner from easi.utils.system_deps import SystemDependencyChecker logger = get_logger(__name__) @@ -117,10 +118,11 @@ def remove(self) -> None: if not env_path.exists(): logger.info("Environment %s does not exist, nothing to remove", env_name) return - self._run_command( - ["conda", "env", "remove", "-n", env_name, "-y"], - f"conda env remove {env_name}", - ) + with spinner(f"Removing environment {env_name}"): + self._run_command( + ["conda", "env", "remove", "-n", env_name, "-y"], + f"conda env remove {env_name}", + ) logger.info("Environment %s removed", env_name) def install(self) -> None: @@ -138,7 +140,7 @@ def install(self) -> None: def _do_install(self) -> None: """Execute the full install sequence (called under lock).""" env_name = self.get_env_name() - logger.info("[EASI] %s", env_name) + logger.info("Installing environment %s for %s %s", env_name, self.simulator_name, self.version) # Step 1: Check system deps self._dep_checker.assert_all(self.get_system_deps()) @@ -146,31 +148,35 @@ def _do_install(self) -> None: # Step 2: Create/update conda env conda_yaml = self.get_conda_env_yaml_path() if conda_yaml.exists(): - self._run_conda_create(env_name, conda_yaml) + with spinner(f"Creating conda environment {env_name}"): + self._run_conda_create(env_name, conda_yaml) else: - logger.warning("[EASI] No conda_env.yaml found at %s, skipping conda setup", conda_yaml) + logger.warning("No conda_env.yaml found at %s, skipping conda setup", conda_yaml) # Step 3: Install uv in the conda env python_exec = self.get_python_executable() - self._run_command([python_exec, "-m", "pip", "install", "uv"], "pip install uv") + with spinner("Installing uv"): + self._run_command([python_exec, "-m", "pip", "install", "uv"], "pip install uv") # Step 4: Install Python deps via uv requirements = self.get_requirements_txt_path() if requirements.exists(): - self._run_command( - [python_exec, "-m", "uv", "pip", "install", "-r", str(requirements)], - "uv pip install", - ) + with spinner("Installing Python dependencies"): + self._run_command( + [python_exec, "-m", "uv", "pip", "install", "-r", str(requirements)], + "uv pip install", + ) else: - logger.warning("[EASI] No requirements.txt found at %s, skipping uv install", requirements) + logger.warning("No requirements.txt found at %s, skipping uv install", requirements) - # Step 5: Validate (stream output like other commands) - self._run_command( - [python_exec, "-c", self.get_validation_import()], - "environment validation", - ) + # Step 5: Validate + with spinner("Validating environment"): + self._run_command( + [python_exec, "-c", self.get_validation_import()], + "environment validation", + ) - logger.info("[EASI] Environment %s installed and validated successfully", env_name) + logger.info("Environment %s installed and validated successfully", env_name) def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: """Create or update a conda environment from a YAML file.""" @@ -187,7 +193,7 @@ def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: def _run_command(self, cmd: list[str], description: str) -> None: """Run a subprocess command, streaming output through the logger.""" - logger.info("[EASI] %s", " ".join(cmd)) + logger.trace("%s", " ".join(cmd)) process = subprocess.Popen( cmd, stdout=subprocess.PIPE, @@ -199,7 +205,7 @@ def _run_command(self, cmd: list[str], description: str) -> None: for line in process.stdout: line = line.rstrip() output_lines.append(line) - logger.debug(" %s", line) + logger.trace(" %s", line) process.wait() if process.returncode != 0: raise EnvironmentSetupError( diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 41e5691..0e8757e 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -250,7 +250,10 @@ def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: local_path, subset, split_name, ) - ds = load_dataset(local_path, subset, split=split_name) + import tempfile + hf_cache = Path(tempfile.gettempdir()) / "easi_hf_cache" + ds = load_dataset(local_path, subset, split=split_name, + cache_dir=str(hf_cache)) episodes = [hf_row_to_episode(row) for row in ds] for ep in episodes: @@ -334,7 +337,7 @@ def _extract_zip_files(dataset_dir: Path, zip_filenames: list[str]) -> None: marker = dataset_dir / f".{zip_name}.extracted" if marker.exists(): - logger.debug("Already extracted: %s", zip_name) + logger.trace("Already extracted: %s", zip_name) continue logger.info("Extracting %s...", zip_path) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 7bb10d2..198f8b7 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -18,7 +18,7 @@ 000_/ result.json trajectory.jsonl - rgb_0000.png, rgb_0001.png, ... + step_0000.png, step_0001.png, ... """ from __future__ import annotations diff --git a/easi/llm/api_client.py b/easi/llm/api_client.py index f6881da..4aab026 100644 --- a/easi/llm/api_client.py +++ b/easi/llm/api_client.py @@ -53,7 +53,7 @@ def generate( } url = f"{self.base_url}/v1/chat/completions" - logger.debug("POST %s (messages: %d)", url, len(messages)) + logger.trace("POST %s (messages: %d)", url, len(messages)) try: response = requests.post(url, json=payload, timeout=self.timeout) @@ -76,5 +76,5 @@ def generate( raise RuntimeError(f"LLM server returned no choices: {data}") content = choices[0].get("message", {}).get("content", "") - logger.debug("Response: %s", content[:100]) + logger.trace("Response: %s", content[:100]) return content diff --git a/easi/llm/dummy_server.py b/easi/llm/dummy_server.py index 3bdb414..67df20a 100644 --- a/easi/llm/dummy_server.py +++ b/easi/llm/dummy_server.py @@ -91,7 +91,7 @@ def _send_json(self, data: dict) -> None: self.wfile.write(body) def log_message(self, format: str, *args) -> None: - logger.debug(format, *args) + logger.trace(format, *args) def create_handler(mode: str, action_space: list[str]) -> type: diff --git a/easi/simulators/ai2thor/v2_1_0/bridge.py b/easi/simulators/ai2thor/v2_1_0/bridge.py index 5b0b4f1..4bdc859 100644 --- a/easi/simulators/ai2thor/v2_1_0/bridge.py +++ b/easi/simulators/ai2thor/v2_1_0/bridge.py @@ -21,7 +21,6 @@ import argparse import json -import logging import math import os import sys @@ -62,8 +61,9 @@ SCREEN_WIDTH, VISIBILITY_DISTANCE, ) +from easi.utils.logging import get_logger, setup_logging -logger = logging.getLogger("easi.bridge.ai2thor_v2_1_0") +logger = get_logger(__name__) class AI2ThorBridge: @@ -212,7 +212,7 @@ def run(self): elif cmd_type == "step": action_data = command.get("action", {}) action_text = action_data.get("action_name", "") - logger.debug("Step %d: action=%s", self.step_count + 1, action_text) + logger.trace("Step %d: action=%s", self.step_count + 1, action_text) try: response = self.step(action_text) @@ -305,10 +305,7 @@ def main(): help="JSON string of simulator configuration") args, _ = parser.parse_known_args() - logging.basicConfig( - level=logging.DEBUG, - format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", - ) + setup_logging("DEBUG") simulator_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} bridge = AI2ThorBridge( diff --git a/easi/simulators/ai2thor/v2_1_0/requirements.txt b/easi/simulators/ai2thor/v2_1_0/requirements.txt index e9c700f..f55a859 100644 --- a/easi/simulators/ai2thor/v2_1_0/requirements.txt +++ b/easi/simulators/ai2thor/v2_1_0/requirements.txt @@ -7,3 +7,6 @@ flask==1.1.2 jinja2==2.11.3 markupsafe==1.1.1 itsdangerous==1.1.0 +gym +networkx +opencv-python diff --git a/easi/simulators/ai2thor/v2_1_0/thor_utils.py b/easi/simulators/ai2thor/v2_1_0/thor_utils.py index c568e39..17bb331 100644 --- a/easi/simulators/ai2thor/v2_1_0/thor_utils.py +++ b/easi/simulators/ai2thor/v2_1_0/thor_utils.py @@ -4,20 +4,17 @@ that uses AI2-THOR 2.1.0. Task-specific logic (goal evaluation, dataset loading) lives in the task layer (e.g., easi/tasks/ebalfred/). -Ported from EmbodiedBench: -- envs/eb_alfred/gen/constants.py (THOR constants) -- envs/eb_alfred/utils.py (object name mapping) - This file runs inside the ai2thor conda env (Python 3.8). """ from __future__ import annotations -import logging import string -logger = logging.getLogger("easi.bridge.thor_utils") +from easi.utils.logging import get_logger + +logger = get_logger(__name__) -# --- Constants (from EmbodiedBench gen/constants.py) --- +# --- Constants --- SCREEN_WIDTH = 500 SCREEN_HEIGHT = 500 diff --git a/easi/simulators/ai2thor/v5_0_0/bridge.py b/easi/simulators/ai2thor/v5_0_0/bridge.py index 73acd0f..0d931d3 100644 --- a/easi/simulators/ai2thor/v5_0_0/bridge.py +++ b/easi/simulators/ai2thor/v5_0_0/bridge.py @@ -12,7 +12,6 @@ from __future__ import annotations import argparse -import logging import sys from pathlib import Path @@ -30,8 +29,9 @@ make_observation_response, parse_action_from_command, ) +from easi.utils.logging import get_logger, setup_logging -logger = logging.getLogger("easi.bridge.ai2thor_v5_0_0") +logger = get_logger(__name__) def run_bridge(workspace: Path) -> None: @@ -80,7 +80,7 @@ def run_bridge(workspace: Path) -> None: elif cmd_type == "step": step_count += 1 action = parse_action_from_command(command) - logger.debug("Step %d: action=%s", step_count, action.action_name) + logger.trace("Step %d: action=%s", step_count, action.action_name) # Stub: event = controller.step(action=action_name, **params) # v5 API returns event with frame, depth, metadata @@ -114,7 +114,7 @@ def main() -> None: parser.add_argument("--workspace", type=Path, required=True) args = parser.parse_args() - logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s") + setup_logging("DEBUG") run_bridge(workspace=args.workspace) diff --git a/easi/simulators/base_bridge.py b/easi/simulators/base_bridge.py new file mode 100644 index 0000000..8a002d2 --- /dev/null +++ b/easi/simulators/base_bridge.py @@ -0,0 +1,219 @@ +"""Base bridge that wraps any Gym-like env in EASI's IPC protocol. + +Subclass this to integrate external benchmark envs with minimal code. +Override _create_env() and _extract_image() — the base handles IPC, +image saving, and observation formatting. + +Two extension patterns: +- Pattern A: Override _create_env() + _extract_image() for Gym-like envs +- Pattern B: Override reset() + step() directly for raw simulator control + +Usage in a task-specific bridge.py: + + from easi.simulators.base_bridge import BaseBridge + + class MyBenchmarkBridge(BaseBridge): + def _create_env(self, reset_config, simulator_kwargs): + from external_package import MyEnv + return MyEnv(**reset_config) + + def _extract_image(self, obs): + return obs["head_rgb"] # np.ndarray (H, W, 3) + + if __name__ == "__main__": + MyBenchmarkBridge.main() +""" + +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +import numpy as np + +# Ensure repo root is importable (for bridge subprocess) +_repo_root = Path(__file__).resolve().parents[2] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, +) +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + + +class BaseBridge: + """Wraps a Gym-like env (reset/step/close) in EASI's filesystem IPC. + + Subclasses must implement: + _create_env(reset_config, simulator_kwargs) -> env object + _extract_image(obs) -> np.ndarray (H, W, 3) uint8 + + Optional overrides: + _extract_info(info) -> dict (filter/transform env info) + _on_reset(env, reset_config) -> obs (custom reset logic) + _on_step(env, action_text) -> (obs, reward, done, info) + """ + + def __init__(self, workspace, simulator_kwargs=None): + self.workspace = Path(workspace) + self.simulator_kwargs = simulator_kwargs or {} + self.env = None + self.step_count = 0 + self.episode_output_dir = None + + # --- Override these --- + + def _create_env(self, reset_config, simulator_kwargs): + """Create and return a Gym-like env. Called on first reset.""" + raise NotImplementedError + + def _extract_image(self, obs): + """Extract RGB numpy array (H, W, 3) from env observation.""" + raise NotImplementedError + + def _extract_info(self, info): + """Transform env info dict to EASI-compatible info. Override to filter.""" + return {k: v for k, v in info.items() + if isinstance(v, (int, float, str, bool))} + + def _on_reset(self, env, reset_config): + """Custom reset logic. Default: call env.reset(). Override if env + needs episode data passed differently.""" + return env.reset() + + def _on_step(self, env, action_text): + """Custom step logic. Default: call env.step(action_text).""" + return env.step(action_text) + + # --- Image saving --- + + def _save_image(self, image_array): + """Save RGB numpy array as PNG, return path string.""" + from PIL import Image + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + rgb_path = save_dir / ("step_%04d.png" % self.step_count) + Image.fromarray(image_array).save(str(rgb_path)) + return str(rgb_path) + + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Build IPC observation response from env output.""" + image = self._extract_image(obs) + rgb_path = self._save_image(image) + clean_info = self._extract_info(info or {}) + clean_info["step"] = str(self.step_count) + return make_observation_response( + rgb_path=rgb_path, + agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=clean_info, + ) + + # --- Reset / Step --- + + def reset(self, reset_config): + """Reset env (create if first call) and return observation response.""" + if self.env is None: + self.env = self._create_env(reset_config, self.simulator_kwargs) + self.step_count = 0 + obs = self._on_reset(self.env, reset_config) + return self._make_response(obs) + + def step(self, action_text): + """Execute one action and return observation response.""" + self.step_count += 1 + obs, reward, done, info = self._on_step(self.env, action_text) + return self._make_response(obs, reward=reward, done=done, info=info) + + def close(self): + """Shut down the env.""" + if self.env is not None: + if hasattr(self.env, "close"): + self.env.close() + self.env = None + + # --- IPC loop --- + + def run(self): + """Main IPC loop. Polls commands, dispatches to reset/step/close.""" + write_status(self.workspace, ready=True) + + while True: + try: + command = poll_for_command(self.workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + reset_config = command.get("reset_config", {}) + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + self.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) + else: + self.episode_output_dir = None + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "step": + action_text = command.get("action", {}).get("action_name", "") + try: + response = self.step(action_text) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "close": + logger.info("Close command received") + self.close() + write_response(self.workspace, {"status": "ok"}) + break + + else: + write_response( + self.workspace, + make_error_response("Unknown command: %s" % cmd_type), + ) + + # --- CLI entry point --- + + @classmethod + def main(cls): + """Standard CLI entry point for bridge subclasses.""" + parser = argparse.ArgumentParser() + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--data-dir", type=Path, default=None) + parser.add_argument("--simulator-kwargs", type=str, default=None) + args, _ = parser.parse_known_args() + + setup_logging("DEBUG") + + sim_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + if args.data_dir: + sim_kwargs["data_dir"] = str(args.data_dir) + + bridge = cls(workspace=args.workspace, simulator_kwargs=sim_kwargs) + bridge.run() diff --git a/easi/simulators/dummy/v1/bridge.py b/easi/simulators/dummy/v1/bridge.py index bbea23b..fe4313d 100644 --- a/easi/simulators/dummy/v1/bridge.py +++ b/easi/simulators/dummy/v1/bridge.py @@ -13,7 +13,6 @@ from __future__ import annotations import argparse -import logging import sys import time from pathlib import Path @@ -34,8 +33,9 @@ make_observation_response, parse_action_from_command, ) +from easi.utils.logging import get_logger, setup_logging -logger = logging.getLogger("easi.bridge.dummy") +logger = get_logger(__name__) def _generate_dummy_image(workspace: Path, step: int, output_dir: Path | None = None) -> str: @@ -133,7 +133,7 @@ def run_bridge(workspace: Path, step_delay: float = 0.0) -> None: elif cmd_type == "step": step_count += 1 action = parse_action_from_command(command) - logger.debug("Step %d: action=%s", step_count, action.action_name) + logger.trace("Step %d: action=%s", step_count, action.action_name) if step_delay > 0: time.sleep(step_delay) @@ -168,11 +168,7 @@ def main() -> None: parser.add_argument("--step-delay", type=float, default=0.0, help="Delay per step in seconds") args, _ = parser.parse_known_args() - logging.basicConfig( - level=logging.DEBUG, - format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", - datefmt="%H:%M:%S", - ) + setup_logging("DEBUG") run_bridge(workspace=args.workspace, step_delay=args.step_delay) diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 3a938ce..2a61240 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -71,7 +71,7 @@ def _discover_simulators() -> dict[str, SimulatorEntry]: if ver_key == default_ver: entries[sim_name] = entry - logger.debug( + logger.trace( "Discovered simulator %s with versions: %s (default: %s)", sim_name, list(manifest.get("versions", {}).keys()), diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index f1dfba9..8cc4797 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -79,7 +79,7 @@ def launch(self) -> None: self.bridge_script_path.name, self._workspace, ) - logger.debug("Full command: %s", " ".join(cmd)) + logger.trace("Full command: %s", " ".join(cmd)) self._process = subprocess.Popen( cmd, @@ -200,7 +200,7 @@ def _stream_output(self) -> None: for line in proc.stdout: line = line.rstrip() self._output_lines.append(line) - logger.debug("[bridge] %s", line) + logger.trace("[bridge] %s", line) except (ValueError, OSError): pass # pipe closed diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py index 0d6b2c7..f5a2468 100644 --- a/easi/tasks/ebalfred/bridge.py +++ b/easi/tasks/ebalfred/bridge.py @@ -1,873 +1,71 @@ -"""EB-Alfred bridge subprocess for AI2-THOR v2.1.0. +"""EB-Alfred bridge — wraps EmbodiedBench's EBAlfEnv via BaseBridge. This script runs inside the easi_ai2thor_v2_1_0 conda env (Python 3.8). It communicates with the parent process via filesystem IPC. -Extends the generic AI2ThorBridge with EB-Alfred-specific behavior: -- High-level skill execution (find, pick up, put down, open, close, etc.) -- State tracking (cleaned, cooled, heated objects) -- Goal condition evaluation - -Ported from EmbodiedBench: -- envs/eb_alfred/thor_connector.py (high-level skill API) -- envs/eb_alfred/env/thor_env.py (scene restoration, state tracking) +The vendor/ directory contains EBAlfEnv (Gym env) copied from EmbodiedBench +with minimal path changes. This bridge is a thin wrapper that delegates all +skill execution, scene restoration, and goal evaluation to EBAlfEnv. Usage: - python bridge.py --workspace /tmp/easi_xxx --data-dir /path/to/datasets [--simulator-kwargs '{}'] + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/datasets] [--simulator-kwargs '{}'] """ from __future__ import annotations -import argparse -import json -import logging -import math -import os import sys from pathlib import Path -# Add repo root to path for easi imports _repo_root = Path(__file__).resolve().parents[3] if str(_repo_root) not in sys.path: sys.path.insert(0, str(_repo_root)) -from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge -from easi.simulators.ai2thor.v2_1_0.thor_utils import ( - AGENT_STEP_SIZE, - CAMERA_HEIGHT_OFFSET, - RECORD_SMOOTHING_FACTOR, - RENDER_CLASS_IMAGE, - RENDER_DEPTH_IMAGE, - RENDER_IMAGE, - RENDER_OBJECT_IMAGE, - VISIBILITY_DISTANCE, - get_obj_of_type_closest_to_obj, - get_objects_of_type, - natural_word_to_ithor_name, -) -from easi.tasks.ebalfred.thor_utils import ( - evaluate_goal_conditions, - load_task_json_with_repeat, -) - -logger = logging.getLogger("easi.bridge.ebalfred") - - -class EBAlfredBridge(AI2ThorBridge): - """EB-Alfred bridge extending AI2ThorBridge with skill execution and goal evaluation. - - Ported from EmbodiedBench's ThorEnv + ThorConnector. - """ - - def __init__(self, workspace, data_dir=None, simulator_kwargs=None): - super().__init__(workspace, data_dir, simulator_kwargs) - self.traj_data = None - - # State tracking (from EmbodiedBench ThorEnv) - self.cleaned_objects = set() - self.cooled_objects = set() - self.heated_objects = set() - - # Skill state - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - - # --- Reset --- - - def reset(self, reset_config): - """Reset to an EB-Alfred episode (or a default scene for smoke tests). - - If task_path is provided, loads traj_data.json, resets scene, - restores objects, and teleports agent. - If task_path is missing (smoke test), resets to a default scene. - """ - task_path = reset_config.get("task_path") - - if not task_path: - # Smoke test mode: use generic reset - self.traj_data = None - self.cleaned_objects.clear() - self.cooled_objects.clear() - self.heated_objects.clear() - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - return super().reset(reset_config) - - repeat_idx = reset_config.get("repeat_idx", 0) - - self.traj_data = load_task_json_with_repeat( - task_path, repeat_idx, str(self.data_dir) - ) - self.cleaned_objects.clear() - self.cooled_objects.clear() - self.heated_objects.clear() - self.step_count = 0 - self.cur_receptacle = None - self.put_count_dict = {} - self.sliced = False - - # Reset scene - scene_num = self.traj_data["scene"]["scene_num"] - scene_name = "FloorPlan%d" % scene_num - logger.info("Resetting to scene: %s", scene_name) - self.controller.reset(scene_name) - - # Restore object poses, toggles, dirty states - self._restore_scene() - - # Teleport agent to initial position - init_action = dict(self.traj_data["scene"]["init_action"]) - if init_action.get("action") == "TeleportFull": - init_action.pop("rotateOnTeleport", None) - init_action["standing"] = True - self.last_event = self.controller.step(init_action) +from easi.simulators.base_bridge import BaseBridge - # Cache agent height - self.agent_height = self.last_event.metadata["agent"]["position"]["y"] - # Cache reachable positions for navigation - self._cache_reachable_positions() +class EBAlfredBridge(BaseBridge): + """Thin BaseBridge wrapper around EmbodiedBench's EBAlfEnv.""" - return self._make_observation_response() + def _create_env(self, reset_config, simulator_kwargs): + import os + from easi.tasks.ebalfred.vendor.EBAlfEnv import EBAlfEnv - def _restore_scene(self): - """Restore EB-Alfred scene state from traj_data. - - Ported from EmbodiedBench ThorEnv.restore_scene(). - """ - grid_size = AGENT_STEP_SIZE / RECORD_SMOOTHING_FACTOR - - self._step(dict( - action="Initialize", - gridSize=grid_size, - cameraY=CAMERA_HEIGHT_OFFSET, - renderImage=RENDER_IMAGE, - renderDepthImage=RENDER_DEPTH_IMAGE, - renderClassImage=RENDER_CLASS_IMAGE, - renderObjectImage=RENDER_OBJECT_IMAGE, - visibility_distance=VISIBILITY_DISTANCE, - makeAgentsVisible=False, - )) - - scene = self.traj_data["scene"] - object_toggles = scene.get("object_toggles", []) - object_poses = scene.get("object_poses", []) - dirty_and_empty = scene.get("dirty_and_empty", False) - - if len(object_toggles) > 0: - self._step(dict(action="SetObjectToggles", objectToggles=object_toggles)) - - if dirty_and_empty: - self._step(dict( - action="SetStateOfAllObjects", - StateChange="CanBeDirty", - forceAction=True, - )) - self._step(dict( - action="SetStateOfAllObjects", - StateChange="CanBeFilled", - forceAction=False, - )) - - if len(object_poses) > 0: - self._step(dict(action="SetObjectPoses", objectPoses=object_poses)) - - # --- Step --- - - def step(self, action_text): - """Execute a high-level skill and return observation + metrics.""" - self.step_count += 1 - - # Smoke test mode: execute raw THOR action instead of high-level skill - if self.traj_data is None: - self._step(dict(action=action_text)) - return self._make_observation_response( - reward=0.0, - done=False, - info={ - "last_action_success": 1.0 if self.last_event.metadata["lastActionSuccess"] else 0.0, - "env_step": float(self.step_count), - "feedback": "success" if self.last_event.metadata["lastActionSuccess"] else "action failed", - }, - ) - - result = self._execute_skill(action_text) - success = result.get("success", False) - - # Update cleaned/cooled/heated tracking - self._update_states() - - # Evaluate goal conditions - goal_satisfied, progress = evaluate_goal_conditions( - self.traj_data, - self.last_event, - self.cleaned_objects, - self.cooled_objects, - self.heated_objects, + # data_dir from reset_config has the correct task-level path + # (e.g. datasets/oscarqjh_EB-Alfred_easi/tasks) + data_dir = reset_config.get("data_dir") or simulator_kwargs.get("data_dir") + resolution = simulator_kwargs.get("screen_height", 500) + # x_display from YAML, falling back to DISPLAY env var (set by xvfb-run) + x_display = simulator_kwargs.get( + "x_display", os.environ.get("DISPLAY", ":0").lstrip(":") ) - - feedback = result.get("message", "") - if success: - feedback = "success" - - return self._make_observation_response( - reward=float(progress), - done=goal_satisfied, - info={ - "task_success": 1.0 if goal_satisfied else 0.0, - "task_progress": progress, - "last_action_success": 1.0 if success else 0.0, - "env_step": float(self.step_count), - "feedback": feedback, - }, - ) - - def _execute_skill(self, instruction): - """Map high-level skill text to THOR API calls. - - Ported from EmbodiedBench ThorConnector.llm_skill_interact(). - """ - # Clear cur_receptacle unless put/open - if not (instruction.startswith("put down ") or instruction.startswith("open ")): - self.cur_receptacle = None - - ret_msg = "" - - if instruction.startswith("find "): - obj_name = instruction.replace("find a ", "").replace("find an ", "") - self.cur_receptacle = obj_name - ret_msg = self._nav_obj( - natural_word_to_ithor_name(obj_name), self.sliced - ) - - elif instruction.startswith("pick up "): - obj_name = instruction.replace("pick up the ", "") - ret_msg = self._pick(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("put down "): - if self.cur_receptacle is None: - ret_msg = self._drop() - else: - receptacle = self.cur_receptacle - if receptacle in self.put_count_dict: - self.put_count_dict[receptacle] += 1 - else: - self.put_count_dict[receptacle] = 1 - - ret_msg = self._put(natural_word_to_ithor_name(receptacle)) - - if len(ret_msg) > 16 and self.put_count_dict[receptacle] >= 3: - self._drop() - ret_msg += ". The robot dropped the object instead." - self.last_event.metadata["lastActionSuccess"] = False - - elif instruction.startswith("open "): - obj_name = instruction.replace("open the ", "") - ret_msg = self._open(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("close "): - obj_name = instruction.replace("close the ", "") - ret_msg = self._close(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("turn on "): - obj_name = instruction.replace("turn on the ", "") - ret_msg = self._toggleon(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("turn off "): - obj_name = instruction.replace("turn off the ", "") - ret_msg = self._toggleoff(natural_word_to_ithor_name(obj_name)) - - elif instruction.startswith("slice "): - obj_name = instruction.replace("slice the ", "") - ret_msg = self._slice(natural_word_to_ithor_name(obj_name)) - self.sliced = True - - elif instruction.startswith("drop"): - ret_msg = self._drop() - - else: - ret_msg = "instruction not supported" - - success = len(ret_msg) == 0 - if not success: - logger.warning("Skill failed: %s -> %s", instruction, ret_msg) - - return {"action": instruction, "success": success, "message": ret_msg} - - # --- State Tracking --- - - def _update_states(self): - """Track cleaned/cooled/heated objects. - - Ported from EmbodiedBench ThorEnv.update_states(). - """ - if self.last_event is None: - return - - metadata = self.last_event.metadata - if not metadata.get("lastActionSuccess", False): - return - - # Check if last action was a relevant toggle/close - last_action = metadata.get("lastAction", "") - last_obj_id = metadata.get("lastActionObjectId", "") - - # Clean: ToggleObjectOn on Faucet -> items in SinkBasin get cleaned - if last_action == "ToggleObjectOn" and "Faucet" in last_obj_id: - sink_basin = get_obj_of_type_closest_to_obj( - "SinkBasin", last_obj_id, metadata - ) - if sink_basin and sink_basin.get("receptacleObjectIds"): - self.cleaned_objects.update(sink_basin["receptacleObjectIds"]) - - # Heat: ToggleObjectOn on Microwave -> items inside get heated - if last_action == "ToggleObjectOn" and "Microwave" in last_obj_id: - microwaves = get_objects_of_type("Microwave", metadata) - if microwaves: - heated_ids = microwaves[0].get("receptacleObjectIds") - if heated_ids: - self.heated_objects.update(heated_ids) - - # Cool: CloseObject on Fridge -> items inside get cooled - if last_action == "CloseObject" and "Fridge" in last_obj_id: - fridges = get_objects_of_type("Fridge", metadata) - if fridges: - cooled_ids = fridges[0].get("receptacleObjectIds") - if cooled_ids: - self.cooled_objects.update(cooled_ids) - - # --- Individual Skill Implementations --- - - def _nav_obj(self, target_obj, prefer_sliced=False): - """Navigate to an object by teleporting to closest reachable position. - - Ported from EmbodiedBench ThorConnector.nav_obj(). - """ - objects = self.last_event.metadata["objects"] - logger.info("nav_obj: %s", target_obj) - - # Resolve object ID - if "|" in target_obj: - obj_id = target_obj - base_name = target_obj.split("|")[0] - tmp_id, tmp_data = self._get_obj_id_from_name( - base_name, priority_in_visibility=True, priority_sliced=prefer_sliced - ) - if tmp_id and "Sliced" in tmp_id and obj_id in tmp_id: - obj_id = tmp_id - else: - obj_id, _ = self._get_obj_id_from_name( - target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced - ) - - # Find object index - obj_idx = -1 - for i, o in enumerate(objects): - if o["objectId"] == obj_id: - obj_idx = i - break - - if obj_idx == -1: - return ( - "Cannot find %s. This object may not exist in this scene. " - "Try to explore other instances instead." % target_obj - ) - - # Teleport to closest reachable position facing the object - loc = objects[obj_idx]["position"] - obj_rot = objects[obj_idx]["rotation"]["y"] - max_attempts = 20 - teleport_success = False - reachable_pos_idx = 0 - - for i in range(max_attempts): - reachable_pos_idx += 1 - if i == 10 and target_obj in ("Fridge", "Microwave"): - reachable_pos_idx -= 10 - - closest_loc = self._find_close_reachable_position( - [loc["x"], loc["y"], loc["z"]], reachable_pos_idx - ) - if closest_loc is None: - continue - - # Calculate desired rotation angle - rot_angle = math.atan2( - -(loc["x"] - closest_loc[0]), loc["z"] - closest_loc[2] - ) - if rot_angle > 0: - rot_angle -= 2 * math.pi - rot_angle = -(180 / math.pi) * rot_angle - - # Special angle filtering for Fridge/Microwave - if i < 10 and target_obj in ("Fridge", "Microwave"): - angle_d = abs(self._angle_diff(rot_angle, obj_rot)) - if target_obj == "Fridge" and not ( - (70 < angle_d < 110) or (250 < angle_d < 290) - ): - continue - if target_obj == "Microwave" and not ( - (160 < angle_d < 200) or (0 <= angle_d < 20) - ): - continue - - # Calculate horizon angle - camera_height = self.agent_height + CAMERA_HEIGHT_OFFSET - xz_dist = math.hypot( - loc["x"] - closest_loc[0], loc["z"] - closest_loc[2] - ) - hor_angle = math.atan2(loc["y"] - camera_height, xz_dist) - hor_angle = (180 / math.pi) * hor_angle * 0.9 - - self._step(dict( - action="TeleportFull", - x=closest_loc[0], - y=self.agent_height, - z=closest_loc[2], - rotation=rot_angle, - horizon=-hor_angle, - )) - - if self.last_event.metadata["lastActionSuccess"]: - teleport_success = True - break - else: - logger.debug( - "TeleportFull failed: %s", - self.last_event.metadata.get("errorMessage", ""), - ) - - if not teleport_success: - return "Cannot move to %s" % target_obj - - return "" - - def _pick(self, obj_name): - """Pick up an object. - - Ported from EmbodiedBench ThorConnector.pick(). - """ - obj_id, obj_data = self._get_obj_id_from_name( - obj_name, only_pickupable=True, priority_in_visibility=True, - priority_sliced=self.sliced, + return EBAlfEnv( + resolution=resolution, + data_dir=data_dir, + x_display=x_display, ) - logger.info("pick: %s -> %s", obj_name, obj_id) - - if obj_id is None: - return "Cannot find %s to pick up. Find the object before picking up it" % obj_name - - if ( - obj_data.get("visible") is False - and obj_data.get("parentReceptacles") - and len(obj_data["parentReceptacles"]) > 0 - ): - recep_name = obj_data["parentReceptacles"][0] - ret_msg = ( - "%s is not visible because it is in %s. " - "Note: multiple instances of %s may exist" - % (obj_name, recep_name, recep_name) - ) - # Try anyway - self._step(dict( - action="PickupObject", objectId=obj_id, forceAction=False - )) - else: - self._step(dict( - action="PickupObject", objectId=obj_id, forceAction=False - )) - ret_msg = "" - - if not self.last_event.metadata["lastActionSuccess"]: - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - ret_msg = "Robot is not holding any object" - else: - holding_type = inventory[0].get("objectType", "unknown") - ret_msg = "Robot is currently holding %s" % holding_type - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - - return ret_msg - - def _put(self, receptacle_name): - """Put held object onto a receptacle. - - Ported from EmbodiedBench ThorConnector.put(). - Uses 2x7x2 retry loop with movement adjustments. - """ - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - return "Robot is not holding any object" - - holding_obj_id = inventory[0]["objectId"] - orig_receptacle_name = receptacle_name - ret_msg = "" - halt = False - last_recep_id = None - exclude_obj_id = None - - for k in range(2): # try closest and next closest receptacle - for j in range(7): # movement/look adjustments - for i in range(2): # try inherited receptacles (SinkBasin etc.) - if k == 1 and exclude_obj_id is None: - exclude_obj_id = last_recep_id - - if k == 0 and "|" in orig_receptacle_name: - if i == 1: - continue - recep_id = orig_receptacle_name - receptacle_name = orig_receptacle_name.split("|")[0] - else: - if "Sink" in receptacle_name or "Bathtub" in receptacle_name: - if i == 0: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, get_inherited=True, - exclude_obj_id=exclude_obj_id, - ) - else: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, exclude_obj_id=exclude_obj_id, - ) - else: - if i == 0: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, exclude_obj_id=exclude_obj_id, - ) - else: - recep_id, _ = self._get_obj_id_from_name( - receptacle_name, get_inherited=True, - exclude_obj_id=exclude_obj_id, - ) - - if not recep_id: - ret_msg = ( - "Putting the object on %s failed. First check whether " - "the receptacle is open or not. Also try other instances " - "of the receptacle" % receptacle_name - ) - continue - - # Movement adjustments to get receptacle in view - if j == 1: - self._step(dict(action="LookUp")) - self._step(dict(action="LookUp")) - elif j == 2: - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - self._step(dict(action="LookDown")) - elif j == 3: - self._step(dict(action="LookUp")) - self._step(dict(action="LookUp")) - self._step(dict(action="MoveBack")) - elif j == 4: - self._step(dict(action="MoveAhead")) - for _ in range(4): - self._step(dict(action="MoveRight")) - elif j == 5: - for _ in range(8): - self._step(dict(action="MoveLeft")) - elif j == 6: - for _ in range(4): - self._step(dict(action="MoveRight")) - self._step(dict(action="RotateHand", x=40)) - - self._step(dict( - action="PutObject", - objectId=holding_obj_id, - receptacleObjectId=recep_id, - forceAction=True, - )) - last_recep_id = recep_id - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - halt = True - break - else: - logger.debug( - "PutObject failed: %s", - self.last_event.metadata.get("errorMessage", ""), - ) - ret_msg = ( - "Putting the object on %s failed. First check the " - "receptacle is open or not. Also try other instances " - "of the receptacle" % receptacle_name - ) - if halt: - break - if halt: - break - - return ret_msg - - def _open(self, obj_name): - """Open a receptacle. - - Ported from EmbodiedBench ThorConnector.open(). - """ - logger.info("open: %s", obj_name) - - if "|" in obj_name: - obj_id = obj_name - obj_name = obj_name.split("|")[0] - else: - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to open. Find the object before opening it" % obj_name - - # Check if already open - open_flag = False - for ob in self.last_event.metadata["objects"]: - if ob["objectId"] == obj_id and ob.get("openable") and ob.get("isOpen"): - open_flag = True - break - - ret_msg = "" - for i in range(4): - self._step(dict(action="OpenObject", objectId=obj_id)) - - if self.last_event.metadata["lastActionSuccess"]: - ret_msg = "" - break - else: - if open_flag: - ret_msg = "Open action failed. The %s is already open" % obj_name - else: - ret_msg = "Open action failed." - - # Move around to avoid self-collision - if i == 0: - self._step(dict(action="MoveBack")) - elif i == 1: - self._step(dict(action="MoveBack")) - self._step(dict(action="MoveRight")) - elif i == 2: - self._step(dict(action="MoveLeft")) - self._step(dict(action="MoveLeft")) - - return ret_msg - - def _close(self, obj_name): - """Close a receptacle. - - Ported from EmbodiedBench ThorConnector.close(). - """ - logger.info("close: %s", obj_name) - - if "|" in obj_name: - obj_id = obj_name - obj_name = obj_name.split("|")[0] - else: - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to close" % obj_name - - self._step(dict(action="CloseObject", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - ret_msg = "Close action failed" - for ob in self.last_event.metadata["objects"]: - if ( - ob["objectId"] == obj_id - and ob.get("openable") - and not ob.get("isOpen") - ): - ret_msg += ". The %s is already closed" % obj_name - break - return ret_msg - - return "" - - def _toggleon(self, obj_name): - """Toggle an object on. - - Ported from EmbodiedBench ThorConnector.toggleon(). - """ - logger.info("toggleon: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) - - if obj_id is None: - return "Cannot find %s to turn on" % obj_name - - try: - self._step(dict(action="ToggleObjectOn", objectId=obj_id)) - if not self.last_event.metadata["lastActionSuccess"]: - return "Turn on action failed" - except Exception: - self.last_event.metadata["lastActionSuccess"] = False - return "Turn on action failed" - - return "" - - def _toggleoff(self, obj_name): - """Toggle an object off. - - Ported from EmbodiedBench ThorConnector.toggleoff(). - """ - logger.info("toggleoff: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name, only_toggleable=True) - - if obj_id is None: - return "Cannot find %s to turn off" % obj_name - - self._step(dict(action="ToggleObjectOff", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - return "Turn off action failed" - - return "" - - def _slice(self, obj_name): - """Slice an object. - - Ported from EmbodiedBench ThorConnector.slice(). - """ - logger.info("slice: %s", obj_name) - obj_id, _ = self._get_obj_id_from_name(obj_name) - - if obj_id is None: - return "Cannot find %s to slice" % obj_name - - self._step(dict(action="SliceObject", objectId=obj_id)) - - if not self.last_event.metadata["lastActionSuccess"]: - return "Slice action failed" - - return "" - - def _drop(self): - """Drop the held object. - - Ported from EmbodiedBench ThorConnector.drop(). - """ - logger.info("drop") - self._step(dict(action="DropHandObject", forceAction=True)) - - if not self.last_event.metadata["lastActionSuccess"]: - inventory = self.last_event.metadata.get("inventoryObjects", []) - if len(inventory) == 0: - return "Robot is not holding any object" - return "Drop action failed" - - return "" - - # --- Object Lookup Helpers --- - - def _get_obj_id_from_name( - self, - obj_name, - only_pickupable=False, - only_toggleable=False, - priority_sliced=False, - get_inherited=False, - parent_receptacle_penalty=True, - priority_in_visibility=False, - exclude_obj_id=None, - ): - """Find the closest object matching name, with priority scoring. - - Ported from EmbodiedBench ThorConnector.get_obj_id_from_name(). - """ - obj_id = None - obj_data = None - min_distance = 1e8 - - # If name contains digits (e.g. 'Cabinet_2'), match by name directly - if any(c.isdigit() for c in obj_name): - for obj in self.last_event.metadata["objects"]: - if obj_name in obj["name"]: - return obj["objectId"], obj - return None, None - - for obj in self.last_event.metadata["objects"]: - if obj["objectId"] == exclude_obj_id: - continue - - if only_pickupable and not obj.get("pickupable", False): - continue - if only_toggleable and not obj.get("toggleable", False): - continue - - # Match object type (case-insensitive) - obj_type = obj["objectId"].split("|")[0] - if obj_type.casefold() != obj_name.casefold(): - continue - - # For inherited receptacles (e.g. SinkBasin), check ID format - if get_inherited and len(obj["objectId"].split("|")) != 5: - continue - if not get_inherited and len(obj["objectId"].split("|")) == 5: - # Skip inherited if not requested - pass - - distance = obj.get("distance", 1e8) - penalty = 0 - - # Penalize objects inside closed receptacles - if parent_receptacle_penalty and obj.get("parentReceptacles"): - for p in obj["parentReceptacles"]: - is_open = self._get_object_prop(p, "isOpen") - openable = self._get_object_prop(p, "openable") - if openable is True and is_open is False: - penalty += 100000 - break - - # Prefer empty stove burners - if obj_name.casefold() == "stoveburner": - recep_ids = obj.get("receptacleObjectIds") or [] - if len(recep_ids) > 0: - penalty += 10000 - - # Penalize non-visible objects - if priority_in_visibility and not obj.get("visible", False): - penalty += 1000 - - # Prefer sliced objects - if priority_sliced and "_Slice" in obj.get("name", ""): - penalty -= 100 - - if distance + penalty < min_distance: - min_distance = distance + penalty - obj_data = obj - obj_id = obj["objectId"] - - return obj_id, obj_data - - def _get_object_prop(self, name, prop): - """Get a property of an object by name/ID substring.""" - for obj in self.last_event.metadata["objects"]: - if name in obj["objectId"]: - return obj.get(prop) - return None + def _on_reset(self, env, reset_config): + episode = { + "task": reset_config["task"], + "repeat_idx": reset_config["repeat_idx"], + "instruction": reset_config["instruction"], + } + return env.reset(episode=episode) -def main(): - parser = argparse.ArgumentParser(description="AI2-THOR v2.1.0 bridge (EB-Alfred)") - parser.add_argument("--workspace", type=Path, required=True) - parser.add_argument("--data-dir", type=Path, default=Path("./datasets")) - parser.add_argument("--simulator-kwargs", type=str, default=None, - help="JSON string of simulator configuration") - args, _ = parser.parse_known_args() + def _on_step(self, env, action_text): + return env.step(action_text) - logging.basicConfig( - level=logging.DEBUG, - format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", - ) + def _extract_image(self, obs): + return obs["head_rgb"] - simulator_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} - bridge = EBAlfredBridge( - workspace=args.workspace, - data_dir=args.data_dir, - simulator_kwargs=simulator_kwargs, - ) - bridge.run() + def _extract_info(self, info): + return { + "task_success": float(info.get("task_success", 0.0)), + "task_progress": float(info.get("task_progress", 0.0)), + "last_action_success": float(info.get("last_action_success", 0.0)), + "feedback": str(info.get("env_feedback", "")), + } if __name__ == "__main__": - main() + EBAlfredBridge.main() diff --git a/easi/tasks/ebalfred/task.py b/easi/tasks/ebalfred/task.py index fc52f88..5771f65 100644 --- a/easi/tasks/ebalfred/task.py +++ b/easi/tasks/ebalfred/task.py @@ -1,13 +1,15 @@ """EB-Alfred task for EASI. Adapts the EmbodiedBench EB-Alfred track to EASI's task interface. -Supports multiple splits via per-split .yaml configs (Task 4 infra). +Supports multiple splits via per-split .yaml configs. -When loaded via a split yaml (e.g., ebalfred_base), episodes come from -HuggingFace dataset rows. When loaded via get_task_yaml_path(), uses -ebalfred_base.yaml as the default fallback. +The vendor/ directory contains EBAlfEnv (Gym env) copied from EmbodiedBench. +The bridge wraps EBAlfEnv via BaseBridge, delegating all skill execution, +scene restoration, and goal evaluation to the vendor code. -Reference: EmbodiedBench/embodiedbench/envs/eb_alfred/EBAlfEnv.py +Episode data flows from HF dataset → task.format_reset_config() → bridge +reset_config → EBAlfEnv.reset(episode). Each episode dict must have 'task', +'repeat_idx', and 'instruction' keys. """ from __future__ import annotations @@ -29,7 +31,6 @@ def __init__(self, data_dir: Path | None = None, split_yaml_path: Path | None = self._config["action_space"] = get_global_action_space() def get_task_yaml_path(self) -> Path: - # Decision #4: No task.yaml — use ebalfred_base.yaml as default fallback return Path(__file__).parent / "ebalfred_base.yaml" def get_bridge_script_path(self) -> Path: @@ -37,25 +38,23 @@ def get_bridge_script_path(self) -> Path: return Path(__file__).parent / "bridge.py" def get_instruction(self, episode: dict) -> str: - """Decision #2: EB-Alfred uses 'instruction' field from HF row.""" + """EB-Alfred uses 'instruction' field from HF row.""" return episode.get("instruction", self.name) def format_reset_config(self, episode: dict) -> dict: - """Map EB-Alfred episode (HF row) to AI2-THOR bridge reset config. + """Map EB-Alfred episode to bridge reset config. - HF row columns: id, task, repeat_idx, instruction, task_type, trial_id - The bridge uses task_path to find annotation files inside the extracted tasks.zip: - /oscarqjh_EB-Alfred_easi/tasks//pp/ann_.json + Passes the episode data directly so EBAlfEnv.reset() can load the + task JSON and restore the scene. data_dir points to the HF dataset's + tasks/ subdirectory containing the task JSON files. """ data_dir = episode.get("_data_dir", "") return { - "task_path": episode["task"], - "repeat_idx": episode.get("repeat_idx", 0), - "instruction": episode.get("instruction", ""), - "episode_id": episode.get("id", ""), - "task_type": episode.get("task_type", ""), - "trial_id": episode.get("trial_id", ""), - "data_dir": data_dir, + "episode_id": episode.get("id", "unknown"), + "task": episode["task"], + "repeat_idx": episode["repeat_idx"], + "instruction": episode["instruction"], + "data_dir": str(Path(data_dir) / "tasks") if data_dir else "", } def evaluate_episode( @@ -64,14 +63,13 @@ def evaluate_episode( """Extract metrics from the trajectory. The bridge reports task_success and task_progress in StepResult.info, - computed by EB-Alfred's goal_conditions_met() running inside the bridge. + computed by EBAlfEnv's goal_conditions_met() running inside the bridge. """ if not trajectory: return { "task_success": 0.0, "task_progress": 0.0, "num_steps": 0.0, - "total_reward": 0.0, } last_step = trajectory[-1] @@ -79,15 +77,10 @@ def evaluate_episode( "task_success": last_step.info.get("task_success", 0.0), "task_progress": last_step.info.get("task_progress", 0.0), "num_steps": float(len(trajectory)), - "total_reward": sum(s.reward for s in trajectory), } def _get_builtin_episodes(self) -> list[dict]: - """Return minimal built-in episodes for testing without dataset. - - Matches EB-Alfred_easi column structure: id, task, repeat_idx, - instruction, task_type, trial_id. - """ + """Return minimal built-in episodes for testing without dataset.""" return [ { "id": 0, diff --git a/easi/tasks/ebalfred/thor_utils.py b/easi/tasks/ebalfred/thor_utils.py deleted file mode 100644 index d32a12d..0000000 --- a/easi/tasks/ebalfred/thor_utils.py +++ /dev/null @@ -1,303 +0,0 @@ -"""EB-Alfred goal evaluation and task loading utilities. - -Moved from easi/simulators/ai2thor/v2_1_0/thor_utils.py — these are -task-specific (EB-Alfred), not generic AI2-THOR helpers. - -Ported from EmbodiedBench: -- envs/eb_alfred/env/tasks.py (goal evaluation) -- envs/eb_alfred/utils.py (task loading) - -This file runs inside the ai2thor conda env (Python 3.8). -""" -from __future__ import annotations - -import json -import logging -import os - -# numpy is available in the ai2thor conda env (Python 3.8) -# but may not be in the host venv — import is optional for importability -try: - import numpy as np -except ImportError: - np = None # type: ignore[assignment] - -from easi.simulators.ai2thor.v2_1_0.thor_utils import ( - get_objects_of_type, - get_objects_with_name_and_prop, -) - -logger = logging.getLogger("easi.bridge.ebalfred_utils") - -GOALS = [ - "pick_and_place_simple", - "pick_two_obj_and_place", - "look_at_obj_in_light", - "pick_clean_then_place_in_recep", - "pick_heat_then_place_in_recep", - "pick_cool_then_place_in_recep", - "pick_and_place_with_movable_recep", -] - - -# --- Task JSON Loading --- - -def load_task_json(task_path: str, data_dir: str) -> dict: - """Load preprocessed traj_data.json for an EB-Alfred episode. - - Args: - task_path: e.g. 'pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001' - data_dir: path to the downloaded dataset directory - """ - # Try standard path: /tasks//pp/ann_0.json - # (repeat_idx is handled by the caller) - json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") - if not os.path.exists(json_path): - # Fallback: try traj_data.json - json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") - if not os.path.exists(json_path): - raise FileNotFoundError( - f"Task annotation not found at {json_path}. " - f"Ensure tasks.zip was extracted in {data_dir}" - ) - with open(json_path) as f: - data = json.load(f) - return data - - -def load_task_json_with_repeat(task_path: str, repeat_idx: int, data_dir: str) -> dict: - """Load the specific repeat annotation for an EB-Alfred episode.""" - json_path = os.path.join(data_dir, "tasks", task_path, "pp", f"ann_{repeat_idx}.json") - if not os.path.exists(json_path): - # Fallback to ann_0.json - json_path = os.path.join(data_dir, "tasks", task_path, "pp", "ann_0.json") - if not os.path.exists(json_path): - # Fallback to traj_data.json - json_path = os.path.join(data_dir, "tasks", task_path, "traj_data.json") - if not os.path.exists(json_path): - raise FileNotFoundError( - f"Task annotation not found for {task_path} repeat {repeat_idx} in {data_dir}" - ) - with open(json_path) as f: - data = json.load(f) - return data - - -# --- Goal Evaluation --- - -def get_targets_from_traj(traj_data: dict) -> dict: - """Extract goal targets from trajectory data.""" - pddl = traj_data.get("pddl_params", {}) - targets = {} - # Map from traj keys to goal target keys - if "object_target" in pddl: - targets["object"] = pddl["object_target"] - if "parent_target" in pddl: - targets["parent"] = pddl["parent_target"] - if "toggle_target" in pddl: - targets["toggle"] = pddl["toggle_target"] - if "mrecep_target" in pddl: - targets["mrecep"] = pddl["mrecep_target"] - # Sliced variant - if "object_sliced" in pddl and pddl["object_sliced"]: - targets["object"] = targets.get("object", "") + "Sliced" - return targets - - -def evaluate_goal_conditions( - traj_data: dict, - event, - cleaned_objects: set, - cooled_objects: set, - heated_objects: set, -) -> tuple: - """Evaluate EB-Alfred goal conditions. - - Returns: - (goal_satisfied: bool, progress: float) - - progress = satisfied_conditions / total_conditions - """ - task_type = traj_data.get("task_type", "") - targets = get_targets_from_traj(traj_data) - metadata = event.metadata - - evaluator = GOAL_EVALUATORS.get(task_type) - if evaluator is None: - logger.warning("Unknown task type: %s", task_type) - return False, 0.0 - - s, ts = evaluator(targets, metadata, cleaned_objects, cooled_objects, heated_objects) - progress = s / ts if ts > 0 else 0.0 - satisfied = s >= ts - return satisfied, progress - - -# --- Per-task-type goal evaluators --- - -def _eval_pick_and_place_simple(targets, metadata, cleaned, cooled, heated): - ts = 1 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - if np.any([np.any([p["objectId"] in (r.get("receptacleObjectIds") or []) - for r in receptacles]) - for p in pickupables]): - s += 1 - return s, ts - - -def _eval_pick_two_obj_and_place(targets, metadata, cleaned, cooled, heated): - ts = 2 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 2 - s += min(len([p for p in pickupables if "Sliced" in p["objectId"]]), 2) - - s += min(np.max([sum([1 if (r.get("receptacleObjectIds") is not None - and p["objectId"] in r["receptacleObjectIds"]) else 0 - for p in pickupables]) - for r in receptacles]) if receptacles else 0, 2) - return s, ts - - -def _eval_look_at_obj_in_light(targets, metadata, cleaned, cooled, heated): - ts = 2 - s = 0 - toggleables = get_objects_with_name_and_prop(targets.get("toggle", ""), "toggleable", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - inventory = metadata.get("inventoryObjects", []) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - if len(inventory) > 0 and inventory[0]["objectId"] in [p["objectId"] for p in pickupables]: - s += 1 - if np.any([t["isToggled"] and t["visible"] for t in toggleables]): - s += 1 - return s, ts - - -def _eval_pick_heat_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_heated = [p["objectId"] for p in pickupables if p["objectId"] in heated] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_heated) > 0: - s += 1 - if np.any([obj_id in objs_heated for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_cool_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_cooled = [p["objectId"] for p in pickupables if p["objectId"] in cooled] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_cooled) > 0: - s += 1 - if np.any([obj_id in objs_cooled for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_clean_then_place(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - objs_in_place = [p["objectId"] for p in pickupables for r in receptacles - if r.get("receptacleObjectIds") is not None and p["objectId"] in r["receptacleObjectIds"]] - objs_cleaned = [p["objectId"] for p in pickupables if p["objectId"] in cleaned] - - if len(objs_in_place) > 0: - s += 1 - if len(objs_cleaned) > 0: - s += 1 - if np.any([obj_id in objs_cleaned for obj_id in objs_in_place]): - s += 1 - return s, ts - - -def _eval_pick_and_place_with_movable_recep(targets, metadata, cleaned, cooled, heated): - ts = 3 - s = 0 - receptacles = get_objects_with_name_and_prop(targets.get("parent", ""), "receptacle", metadata) - pickupables = get_objects_with_name_and_prop(targets.get("object", ""), "pickupable", metadata) - movables = get_objects_with_name_and_prop(targets.get("mrecep", ""), "pickupable", metadata) - - if "Sliced" in targets.get("object", ""): - ts += 1 - if len([p for p in pickupables if "Sliced" in p["objectId"]]) >= 1: - s += 1 - - pickup_in_movable = [p for p in pickupables for m in movables - if m.get("receptacleObjectIds") is not None - and p["objectId"] in m["receptacleObjectIds"]] - movable_in_recep = [m for m in movables for r in receptacles - if r.get("receptacleObjectIds") is not None - and m["objectId"] in r["receptacleObjectIds"]] - - if len(pickup_in_movable) > 0: - s += 1 - if len(movable_in_recep) > 0: - s += 1 - if np.any([np.any([p["objectId"] in (m.get("receptacleObjectIds") or []) for p in pickupables]) and - np.any([r["objectId"] in (m.get("parentReceptacles") or []) for r in receptacles]) - for m in movables - if m.get("parentReceptacles") is not None and m.get("receptacleObjectIds") is not None]): - s += 1 - return s, ts - - -GOAL_EVALUATORS = { - "pick_and_place_simple": _eval_pick_and_place_simple, - "pick_two_obj_and_place": _eval_pick_two_obj_and_place, - "look_at_obj_in_light": _eval_look_at_obj_in_light, - "pick_heat_then_place_in_recep": _eval_pick_heat_then_place, - "pick_cool_then_place_in_recep": _eval_pick_cool_then_place, - "pick_clean_then_place_in_recep": _eval_pick_clean_then_place, - "pick_and_place_with_movable_recep": _eval_pick_and_place_with_movable_recep, -} diff --git a/easi/tasks/ebalfred/vendor/EBAlfEnv.py b/easi/tasks/ebalfred/vendor/EBAlfEnv.py new file mode 100644 index 0000000..4d5a44b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/EBAlfEnv.py @@ -0,0 +1,413 @@ +""" +AI2THOR Environment for Household Robot Task Simulation + +This module provides a custom OpenAI Gym environment for simulating household robot tasks +using the AI2THOR framework. It supports various object interactions and task scenarios. + +Dependencies: +- ai2thor +- gym +- numpy +- PIL +""" + +import os +import time +import gym +import json +import numpy as np +from PIL import Image + +# Import custom modules +import easi.tasks.ebalfred.vendor.utils as utils +from easi.tasks.ebalfred.vendor.utils import alfred_objs, alfred_open_obj, alfred_pick_obj, alfred_slice_obj, alfred_open_obj, alfred_toggle_obj, alfred_recep +from easi.tasks.ebalfred.vendor.thor_connector import ThorConnector +from easi.utils.logging import get_logger +logger = get_logger(__name__) + +# global information +X_DISPLAY = '1' +ALFRED_REWARD_PATH = os.path.join(os.path.dirname(__file__), 'models/config/rewards.json') +ALFRED_DATASET_PATH = os.path.join(os.path.dirname(__file__), 'data/json_2.1.0') + + +def get_global_action_space(): + """ + Generate a comprehensive action space for the environment. + + Returns: + list: A list of supported action strings for various object interactions + """ + action_space = [] + + # Generate find actions for all objects + findable_objs = alfred_objs + action_space.extend([f"find a {obj}" for obj in findable_objs]) + + # Generate pickup, putdown, and drop actions + pickup_objs = alfred_pick_obj + for obj in pickup_objs: + action_space.extend([ + f"pick up the {obj}", + ]) + + action_space.extend([ + f"put down the object in hand", + f"drop the object in hand" + ]) + + # Generate open/close actions + open_objs = alfred_open_obj + for obj in open_objs: + action_space.extend([ + f"open the {obj}", + f"close the {obj}" + ]) + + # Generate toggle actions + turn_on_objs = alfred_toggle_obj + for obj in turn_on_objs: + action_space.extend([ + f"turn on the {obj}", + f"turn off the {obj}" + ]) + + # Generate slice actions + slice_objs = alfred_slice_obj + action_space.extend([f"slice the {obj}" for obj in slice_objs]) + + return action_space + + +class EBAlfEnv(gym.Env): + """ + Custom OpenAI Gym environment for simulating household robot tasks. + + Attributes: + env (ThorConnector): Interface for AI2THOR interactions + action_space (gym.spaces.Discrete): Discrete action space + language_skill_set (list): Readable action descriptions + """ + def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=None, x_display=None): + """ + Initialize the AI2THOR environment. + + Args: + exp_name: experiment name for logging + detection_box: whether to draw detection boxes on images + resolution: screen resolution for AI2-THOR + data_dir: path to task JSON files (e.g. datasets/.../tasks) + x_display: X display number for AI2-THOR + """ + super().__init__() + self.reward_config_path = ALFRED_REWARD_PATH + # data_dir = path to EASI's downloaded HF dataset task JSONs + # Falls back to bundled path if None + self._data_dir = data_dir or ALFRED_DATASET_PATH + self.resolution = resolution + display = x_display if x_display is not None else X_DISPLAY + self.env = ThorConnector(x_display=display, player_screen_height=resolution, player_screen_width=resolution) + + # Episode tracking + self._reset = False + self._current_step = 0 + self._max_episode_steps = 30 + self._cur_invalid_actions = 0 + self._max_invalid_actions = 10 + self._episode_start_time = 0 + self.episode_log = [] + + # Task-related attributes + self.episode_language_instruction = '' + self.episode_data = None + # Initialize action space + self.language_skill_set = None + self.action_space = None + + # env feedback and image save + # feedback verbosity, 0: concise, 1: verbose + self.feedback_verbosity = 0 + self.log_path = 'running/eb_alfred/{}'.format(exp_name) + + self.detection = detection_box # add detection in image + self.name_to_id_dict = None + self.id_to_name_dict = None + self.language_skill_set = get_global_action_space() + self.action_space = gym.spaces.Discrete(len(self.language_skill_set)) + + + def generate_additional_action_space(self): + """ + Generate additional actions for receptacles with multiple instances + """ + # Generate pickup, putdown, and drop actions + add_findable_objs = [] + add_pickable_objs = [] + + recept_obj_dict = {} + pickable_obj_dict = {} + name_to_id_dict = {} + for obj in self.env.last_event.metadata['objects']: + if obj['receptacle']: + if obj['objectType'] in recept_obj_dict: + recept_obj_dict[obj['objectType']].append(obj['objectId']) + else: + recept_obj_dict[obj['objectType']] = [obj['objectId']] + elif obj['pickupable']: + if obj['objectType'] in pickable_obj_dict: + pickable_obj_dict[obj['objectType']].append(obj['objectId']) + else: + pickable_obj_dict[obj['objectType']] = [obj['objectId']] + + + # store the mapping for object with multiple instances + for key in recept_obj_dict: + if len(recept_obj_dict[key]) >= 2: + for i in range(len(recept_obj_dict[key])): + if i == 0: + name_to_id_dict[key] = recept_obj_dict[key][i] + else: + name_to_id_dict[key + '_{}'.format(i+1)] = recept_obj_dict[key][i] + add_findable_objs.append(key + '_{}'.format(i+1)) + + for key in pickable_obj_dict: + if len(pickable_obj_dict[key]) >= 2: + for i in range(len(pickable_obj_dict[key])): + if i == 0: + name_to_id_dict[key] = pickable_obj_dict[key][i] + else: + name_to_id_dict[key + '_{}'.format(i+1)] = pickable_obj_dict[key][i] + add_pickable_objs.append(key + '_{}'.format(i+1)) + + id_to_name_dict = {} + for key in name_to_id_dict: + id_to_name_dict[name_to_id_dict[key]] = key + + # Generate find actions for additional objects + add_findable_objs = sorted(list(set(add_findable_objs))) + add_pickable_objs = sorted(list(set(add_pickable_objs))) + action_space = [f"find a {obj}" for obj in add_findable_objs] + for obj in add_findable_objs: + if obj.split('_')[0] in alfred_open_obj: + action_space.extend([ + f"open the {obj}", + f"close the {obj}" + ]) + for obj in add_pickable_objs: + if obj.split('_')[0] in alfred_pick_obj: + action_space.extend([ + f"find a {obj}", + ]) + + self.language_skill_set = get_global_action_space() + action_space + self.action_space = gym.spaces.Discrete(len(self.language_skill_set)) + self.name_to_id_dict = name_to_id_dict + self.id_to_name_dict = id_to_name_dict + + def current_episode(self): + """Return current episode data (task JSON loaded from disk).""" + return self.episode_data + + def _reset_controller(self, task): + """Restore scene from a task name and replace instruction""" + traj_data = utils.load_task_json(task, data_dir=self._data_dir) + traj_data['turk_annotations']['anns'][task['repeat_idx']]['task_desc'] = task["instruction"] + self.episode_data = traj_data + args_dict = {'data': self._data_dir, 'pframe': 300, 'fast_epoch': False, + 'use_templated_goals': False, 'dout': 'exp/model', 'pp_folder': 'pp', + 'reward_config': self.reward_config_path, 'max_steps': 1000} + model_args = utils.dotdict(args_dict) + + # Extract scene configuration + scene_num = traj_data['scene']['scene_num'] + object_poses = traj_data['scene']['object_poses'] + dirty_and_empty = traj_data['scene']['dirty_and_empty'] + object_toggles = traj_data['scene']['object_toggles'] + + scene_name = 'FloorPlan%d' % scene_num + self.episode_language_instruction = task["instruction"] + # Restore scene configuration + logger.info(f"Restoring scene {scene_name}...") + self.env.reset(scene_name) + self.env.restore_scene(object_poses, object_toggles, dirty_and_empty) + if traj_data['scene']['init_action']['action'] == 'TeleportFull': + del traj_data['scene']['init_action']["rotateOnTeleport"] + traj_data['scene']['init_action']["standing"] = True + self.env.step(dict(traj_data['scene']['init_action'])) + self.env.set_task(traj_data, model_args, reward_type='dense', max_episode_length=self._max_episode_steps) + ############################# + self.generate_additional_action_space() + + def reset(self, episode=None): + """ + Reset the environment for a new episode. + + Args: + episode: dict with 'task', 'repeat_idx', 'instruction' keys + (from EASI's HF dataset via bridge reset_config) + + Returns: + observation + """ + assert episode is not None, "episode dict required for reset" + self._reset_controller(episode) + self._current_step = 0 + self._cur_invalid_actions = 0 + obs = { + 'head_rgb': self.env.last_event.frame, + } + self._reset = True + self.episode_log = [] + self._episode_start_time = time.time() + return obs + + + def step(self, action, reasoning=''): + """ + Execute a single environment step. + Args: + action (int): Index of action in action space + Returns: + tuple: (observation, reward, done, environment feedback) + """ + assert self._reset, 'Reset env before stepping' + info = {} + self._current_step += 1 + if type(action) == int: + lang_action = self.language_skill_set[action] + elif type(action) == str: + lang_action = action + else: + raise NotImplementedError + + if 'find' in lang_action or 'open' in lang_action or 'close' in lang_action: + lang_action_split = lang_action.split(' ') + if (self.name_to_id_dict is not None) and lang_action_split[-1] in self.name_to_id_dict: # multiple instances + lang_action = ' '.join(lang_action_split[:-1] + [self.name_to_id_dict[lang_action_split[-1]]]) + + event = self.env.llm_skill_interact(lang_action) + if not event['success']: + self._cur_invalid_actions += 1 + + ## test calculate reward + reward, done = self.env.get_transition_reward() + subgoal_met = self.env.get_goal_conditions_met() + info['task_success'] = float(self.env.get_goal_satisfied()) + info['task_progress'] = subgoal_met[0] / subgoal_met[1] + + obs = { + 'head_rgb': self.env.last_event.frame, + } + # if exceed the maximum episode steps or the goal is achieved + if self._current_step >= self._max_episode_steps or info['task_success'] or self._cur_invalid_actions >= self._max_invalid_actions: + done = True + + # add env feedback + info['instruction'] = self.episode_language_instruction + info['env_step'] = self._current_step + info['env_feedback'] = self.get_env_feedback(event) + info['episode_elapsed_seconds'] = time.time() - self._episode_start_time + info['last_action_success'] = float(event['success']) + info['object_states'] = { + "cooled_objects" : self.env.cooled_objects, + "heated_objects" : self.env.heated_objects, + "cleaned_objects" : self.env.cleaned_objects, + "visible_objs": [obj['objectType'] for obj in self.env.last_event.metadata['objects'] if obj['visible']] + } + info['action_id'] = action + info['action_description'] = self.language_skill_set[action] if type(action) == int else action + info['reasoning'] = reasoning + self.episode_log.append(info) + return obs, reward, done, info + + def get_env_feedback(self, info): + """ + Generate feedback message for the current step. + Args: + info (dict): Action execution information + Returns: + str: Descriptive message about step outcome + """ + msg = '' + if info["success"]: + msg += f"Last action executed successfully." + else: + if 'is not visible' in info['message'] and '|' in info['message']: + recep_id = info['message'].split('because it is in ')[1].split('. Note')[0] + if recep_id not in self.id_to_name_dict: + pos = recep_id.split('|')[0] + else: + pos = self.id_to_name_dict[recep_id] + message = info['message'].split(recep_id)[0] + pos + '. Go there to pick the object instead.' + else: + message = info['message'] + msg += f"Last action is invalid. {message}" + return msg + + def seed(self, seed=None): + self.env.random_initilize(seed) + + def save_image(self, *args, **kwargs): + """Save current agent view as a PNG image.""" + episode_idx = self._current_episode_num if not len(self.selected_indexes) else self.selected_indexes[self._current_episode_num - 1] + 1 + + folder = self.log_path + '/images/episode_{}'.format(episode_idx) + if not os.path.exists(folder): + os.makedirs(folder) + img = Image.fromarray(self.env.last_event.frame) + if self.detection: + img = utils.draw_boxes(img, self.env.last_event.instance_detections2D, name_translation=self.id_to_name_dict) + + # time_stamp = time.strftime("%Y%m%d_%H%M%S", time.localtime()) + image_path = os.path.join(folder, 'episode_{}_step_{}.png'.format(episode_idx, self._current_step)) #, time_stamp)) + img.save(image_path) + return image_path + + def save_episode_log(self): + if not os.path.exists(self.log_path): + os.makedirs(self.log_path) + # time_stamp = time.strftime("%Y%m%d_%H%M%S", time.localtime()) + episode_idx = self._current_episode_num if not len(self.selected_indexes) else self.selected_indexes[self._current_episode_num - 1] + 1 + filename = 'episode_{}_step_{}.json'.format(episode_idx, self._current_step) #, time_stamp) + if len(self.episode_log): + with open(os.path.join(self.log_path, filename), 'w') as f: + for item in self.episode_log: + if 'object_states' in item: + item.pop('object_states') + try: + json.dump(item, f, ensure_ascii=False) + except: + import pdb;pdb.set_trace() + f.write('\n') + + + def close(self): + """Terminate the environment.""" + self.env.stop() + + + +if __name__ == "__main__": + """ + Example usage of the EBAlfEnv environment. + Requires an episode dict with 'task', 'repeat_idx', 'instruction' keys. + """ + env = EBAlfEnv() + episode = { + "task": "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001", + "repeat_idx": 0, + "instruction": "Put a mug on the shelf.", + } + env.reset(episode=episode) + print([(i, name) for i, name in enumerate(env.language_skill_set)]) + for _ in range(30): + action = int(input('action id: ')) + if action < 0: + break + print(env.language_skill_set[action]) + obs, reward, done, info = env.step(action) + print(reward, done, info) + if done: + break + env.close() + diff --git a/easi/tasks/ebalfred/vendor/__init__.py b/easi/tasks/ebalfred/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/env/__init__.py b/easi/tasks/ebalfred/vendor/env/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/env/reward.py b/easi/tasks/ebalfred/vendor/env/reward.py new file mode 100644 index 0000000..77dbc1e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/env/reward.py @@ -0,0 +1,289 @@ +from easi.tasks.ebalfred.vendor.gen.utils.game_util import get_object + +class BaseAction(object): + ''' + base class for API actions + ''' + + def __init__(self, gt_graph, env, rewards, strict=True): + self.gt_graph = gt_graph # for navigation + self.env = env + self.rewards = rewards + self.strict = strict + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + reward, done = self.rewards['neutral'], True + return reward, done + + +class GotoLocationAction(BaseAction): + ''' + MoveAhead, Rotate, Lookup + ''' + + valid_actions = {'MoveAhead', 'RotateLeft', 'RotateRight', 'LookUp', 'LookDown', 'Teleport', 'TeleportFull'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + curr_pose = state.pose_discrete + prev_pose = prev_state.pose_discrete + tar_pose = tuple([int(i) for i in subgoal['location'].split('|')[1:]]) + + prev_actions, _ = self.gt_graph.get_shortest_path(prev_pose, tar_pose) + curr_actions, _ = self.gt_graph.get_shortest_path(curr_pose, tar_pose) + + prev_distance = len(prev_actions) + curr_distance = len(curr_actions) + reward = (prev_distance - curr_distance) * 0.2 # distance reward factor? + + # [DEPRECATED] Old criteria which requires the next subgoal object to be visible + # Consider navigation a success if we can see the target object in the next step from here. + # assert len(expert_plan) > goal_idx + 1 + # next_subgoal = expert_plan[goal_idx + 1]['planner_action'] + # next_goal_object = get_object(next_subgoal['objectId'], state.metadata) + # done = (next_goal_object['visible'] and curr_distance < self.rewards['min_reach_distance']) + + done = curr_distance < self.rewards['min_reach_distance'] + + if done: + reward += self.rewards['positive'] + + return reward, done + + +class PickupObjectAction(BaseAction): + ''' + PickupObject + ''' + + valid_actions = {'PickupObject', 'OpenObject', 'CloseObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + inventory_objects = state.metadata['inventoryObjects'] + if len(inventory_objects): + inv_object_id = state.metadata['inventoryObjects'][0]['objectId'] + goal_object_id = subgoal['objectId'] + + # doesn't matter which slice you pick up + def remove_slice_postfix(object_id): + return object_id.split("Sliced")[0] + + inv_object_id = remove_slice_postfix(inv_object_id) + goal_object_id = remove_slice_postfix(goal_object_id) + + reward, done = (self.rewards['positive'], True) if inv_object_id == goal_object_id else (self.rewards['negative'], False) + return reward, done + + +class PutObjectAction(BaseAction): + ''' + PutObject + ''' + + valid_actions = {'PutObject', 'OpenObject', 'CloseObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + target_object_id = subgoal['objectId'] + recep_object = get_object(subgoal['receptacleObjectId'], state.metadata) + if recep_object is not None: + is_target_in_recep = target_object_id in recep_object['receptacleObjectIds'] + reward, done = (self.rewards['positive'], True) if is_target_in_recep else (self.rewards['negative'], False) + return reward, done + + +class OpenObjectAction(BaseAction): + ''' + OpenObject + ''' + + valid_actions = {'OpenObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + target_recep = get_object(subgoal['objectId'], state.metadata) + if target_recep is not None: + is_target_open = target_recep['isOpen'] + reward, done = (self.rewards['positive'], True) if is_target_open else (self.rewards['negative'], False) + return reward, done + + +class CloseObjectAction(BaseAction): + ''' + CloseObject + ''' + + valid_actions = {'CloseObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['negative'], False + target_recep = get_object(subgoal['objectId'], state.metadata) + if target_recep is not None: + is_target_closed = not target_recep['isOpen'] + reward, done = (self.rewards['positive'], True) if is_target_closed else (self.rewards['negative'], False) + return reward, done + + +class ToggleObjectAction(BaseAction): + ''' + ToggleObjectOn, ToggleObjectOff + ''' + + valid_actions = {'ToggleObjectOn', 'ToggleObjectOff'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + target_toggle = get_object(subgoal['objectId'], state.metadata) + if target_toggle is not None: + is_target_toggled = target_toggle['isToggled'] + reward, done = (self.rewards['positive'], True) if is_target_toggled else (self.rewards['negative'], False) + return reward, done + + +class SliceObjectAction(BaseAction): + ''' + SliceObject + ''' + + valid_actions = {'SliceObject', 'OpenObject', 'CloseObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + target_object = get_object(subgoal['objectId'], state.metadata) + if target_object is not None: + is_target_sliced = target_object['isSliced'] + reward, done = (self.rewards['positive'], True) if is_target_sliced else (self.rewards['negative'], False) + return reward, done + + +class CleanObjectAction(BaseAction): + ''' + CleanObject + ''' + + valid_actions = {'PutObject', 'PickupObject', 'ToggleObjectOn', 'ToggleObjectOff'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + subgoal = expert_plan[goal_idx]['planner_action'] + reward, done = self.rewards['neutral'], False + clean_object = get_object(subgoal['cleanObjectId'], state.metadata) + if clean_object is not None: + is_obj_clean = clean_object['objectId'] in self.env.cleaned_objects + reward, done = (self.rewards['positive'], True) if is_obj_clean else (self.rewards['negative'], False) + return reward, done + + +class HeatObjectAction(BaseAction): + ''' + HeatObject + ''' + + valid_actions = {'OpenObject', 'CloseObject', 'PickupObject', 'PutObject', 'ToggleObjectOn', 'ToggleObjectOff'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + reward, done = self.rewards['neutral'], False + next_put_goal_idx = goal_idx+2 # (+1) GotoLocation -> (+2) PutObject (get the objectId from the PutObject action) + if next_put_goal_idx < len(expert_plan): + heat_object_id = expert_plan[next_put_goal_idx]['planner_action']['objectId'] + heat_object = get_object(heat_object_id, state.metadata) + is_obj_hot = heat_object['objectId'] in self.env.heated_objects + reward, done = (self.rewards['positive'], True) if is_obj_hot else (self.rewards['negative'], False) + return reward, done + + +class CoolObjectAction(BaseAction): + ''' + CoolObject + ''' + + valid_actions = {'OpenObject', 'CloseObject', 'PickupObject', 'PutObject'} + + def get_reward(self, state, prev_state, expert_plan, goal_idx): + if state.metadata['lastAction'] not in self.valid_actions: + reward, done = self.rewards['invalid_action'], False + return reward, done + + reward, done = self.rewards['neutral'], False + subgoal = expert_plan[goal_idx]['planner_action'] + next_put_goal_idx = goal_idx+2 # (+1) GotoLocation -> (+2) PutObject (get the objectId from the PutObject action) + if next_put_goal_idx < len(expert_plan): + cool_object_id = expert_plan[next_put_goal_idx]['planner_action']['objectId'] + cool_object = get_object(cool_object_id, state.metadata) + is_obj_cool = cool_object['objectId'] in self.env.cooled_objects + + # TODO(mohit): support dense rewards for all subgoals + # intermediate reward if object is cooled + if is_obj_cool and not self.env.cooled_reward: + self.env.cooled_reward = True + reward, done = self.rewards['positive'], False + + # intermediate reward for opening fridge after object is cooled + elif is_obj_cool and state.metadata['lastAction']=='OpenObject': + target_recep = get_object(subgoal['objectId'], state.metadata) + if target_recep is not None and not self.env.reopen_reward: + if target_recep['isOpen']: + self.env.reopen_reward = True + reward, done = self.rewards['positive'], False + + # intermediate reward for picking up cooled object after reopening fridge + elif is_obj_cool and state.metadata['lastAction']=='PickupObject': + inventory_objects = state.metadata['inventoryObjects'] + if len(inventory_objects): + inv_object_id = state.metadata['inventoryObjects'][0]['objectId'] + if inv_object_id == cool_object_id: + reward, done = self.rewards['positive'], True # Subgoal completed + + return reward, done + + +def get_action(action_type, gt_graph, env, reward_config, strict): + action_type_str = action_type + "Action" + + if action_type_str in globals(): + action = globals()[action_type_str] + return action(gt_graph, env, reward_config[action_type_str], strict) + else: + raise Exception("Invalid action_type %s" % action_type_str) diff --git a/easi/tasks/ebalfred/vendor/env/tasks.py b/easi/tasks/ebalfred/vendor/env/tasks.py new file mode 100644 index 0000000..4bdd5ee --- /dev/null +++ b/easi/tasks/ebalfred/vendor/env/tasks.py @@ -0,0 +1,476 @@ +import json +import numpy as np +from easi.tasks.ebalfred.vendor.gen.graph import graph_obj +from easi.tasks.ebalfred.vendor.gen.utils.game_util import get_objects_with_name_and_prop +from easi.tasks.ebalfred.vendor.env.reward import get_action + + +class BaseTask(object): + ''' + base class for tasks + ''' + + def __init__(self, traj, env, args, reward_type='sparse', max_episode_length=2000): + # settings + self.traj = traj + self.env = env + self.args = args + self.task_type = self.traj['task_type'] + self.max_episode_length = max_episode_length + self.reward_type = reward_type + self.step_num = 0 + self.num_subgoals = self.get_num_subgoals(self.traj['plan']['high_pddl']) + self.goal_finished = False + + # internal states + self.goal_idx = 0 + self.finished = -1 + + # load navigation graph + self.gt_graph = None + self.load_nav_graph() + + # reward config + self.reward_config = None + self.load_reward_config(args.reward_config) + self.strict = 'strict' in reward_type + + # prev state + self.prev_state = self.env.last_event + + def load_reward_config(self, config_file): + ''' + load json file with reward values + ''' + with open(config_file, 'r') as rc: + reward_config = json.load(rc) + self.reward_config = reward_config + + def load_nav_graph(self): + ''' + build navigation grid graph + ''' + floor_plan = self.traj['scene']['floor_plan'] + scene_num = self.traj['scene']['scene_num'] + self.gt_graph = graph_obj.Graph(use_gt=True, construct_graph=True, scene_id=scene_num) + + def get_num_subgoals(self, high_pddl): + ''' + number of subgoals in high-level pddl plan + ''' + last_action = high_pddl[-1] + + # issue97: https://github.com/askforalfred/alfred/issues/97 + if last_action['planner_action']['action'] == 'End': + return len(high_pddl) - 1 # ignore NoOp/End action + else: + return len(high_pddl) + + def goal_satisfied(self, state): + ''' + check if the overall task goal was satisfied. + ''' + raise NotImplementedError + + def transition_reward(self, state): + ''' + immediate reward given the current state + ''' + reward = 0 + + # goal completed + if self.goal_finished: + done = True + return reward, done + + # get subgoal and action + expert_plan = self.traj['plan']['high_pddl'] + action_type = expert_plan[self.goal_idx]['planner_action']['action'] + + # subgoal reward + if "dense" in self.reward_type: + action = get_action(action_type, self.gt_graph, self.env, self.reward_config, self.strict) + sg_reward, sg_done = action.get_reward(state, self.prev_state, expert_plan, self.goal_idx) + reward += sg_reward + if sg_done: + self.finished += 1 + if self.goal_idx + 1 < self.num_subgoals: + self.goal_idx += 1 + + # end task reward + goal_finished = self.goal_satisfied(state) + if goal_finished: + reward += self.reward_config['Generic']['goal_reward'] + self.goal_finished = True + + # success reward + if "success" in self.reward_type and self.env.last_event.metadata['lastActionSuccess']: + reward += self.reward_config['Generic']['success'] + + # failure reward + if "failure" in self.reward_type and not self.env.last_event.metadata['lastActionSuccess']: + reward += self.reward_config['Generic']['failure'] + + # step penalty + if self.step_num > len(self.traj['plan']['low_actions']): + reward += self.reward_config['Generic']['step_penalty'] + + # save event + self.prev_state = self.env.last_event + + # step and check if max_episode_length reached + self.step_num += 1 + done = self.goal_idx >= self.num_subgoals or self.step_num >= self.max_episode_length + return reward, done + + def reset(self): + ''' + Reset internal states + ''' + self.goal_idx = 0 + self.finished = -1 + self.step_num = 0 + self.goal_finished = False + + def get_subgoal_idx(self): + return self.finished + + def get_target(self, var): + ''' + returns the object type of a task param + ''' + return self.traj['pddl_params'][var] if self.traj['pddl_params'][var] is not None else None + + def get_targets(self): + ''' + returns a dictionary of all targets for the task + ''' + targets = { + 'object': self.get_target('object_target'), + 'parent': self.get_target('parent_target'), + 'toggle': self.get_target('toggle_target'), + 'mrecep': self.get_target('mrecep_target'), + } + + # slice exception + if 'object_sliced' in self.traj['pddl_params'] and self.traj['pddl_params']['object_sliced']: + targets['object'] += 'Sliced' # Change, e.g., "Apple" -> "AppleSliced" as pickup target. + + return targets + + +class PickAndPlaceSimpleTask(BaseTask): + ''' + pick_and_place task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class is inside any receptacle of 'parent' class + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 1 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + + # check if object needs to be sliced + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + if np.any([np.any([p['objectId'] in r['receptacleObjectIds'] + for r in receptacles if r['receptacleObjectIds'] is not None]) + for p in pickupables]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +class PickTwoObjAndPlaceTask(BaseTask): + ''' + pick_two_obj_and_place task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if two objects of 'object' class are in any receptacle of 'parent' class + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 2 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + + # check if object needs to be sliced + if 'Sliced' in targets['object']: + ts += 2 + s += min(len([p for p in pickupables if 'Sliced' in p['objectId']]), 2) + + # placing each object counts as a goal_condition + s += min(np.max([sum([1 if r['receptacleObjectIds'] is not None + and p['objectId'] in r['receptacleObjectIds'] else 0 + for p in pickupables]) + for r in receptacles]), 2) + return s, ts + + def reset(self): + super().reset() + + +class LookAtObjInLightTask(BaseTask): + ''' + look_at_obj_in_light task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class is being held in front of 'toggle' object that is turned on + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 2 + s = 0 + + targets = self.get_targets() + toggleables = get_objects_with_name_and_prop(targets['toggle'], 'toggleable', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + inventory_objects = state.metadata['inventoryObjects'] + + # check if object needs to be sliced + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + # check if the right object is in hand + if len(inventory_objects) > 0 and inventory_objects[0]['objectId'] in [p['objectId'] for p in pickupables]: + s += 1 + # check if the lamp is visible and turned on + if np.any([t['isToggled'] and t['visible'] for t in toggleables]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +class PickHeatThenPlaceInRecepTask(BaseTask): + ''' + pick_heat_then_place_in_recep task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class inside receptacle of 'parent' class is hot + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 3 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + + # check if object needs to be sliced + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + objs_in_place = [p['objectId'] for p in pickupables for r in receptacles + if r['receptacleObjectIds'] is not None and p['objectId'] in r['receptacleObjectIds']] + objs_heated = [p['objectId'] for p in pickupables if p['objectId'] in self.env.heated_objects] + + # check if object is in the receptacle + if len(objs_in_place) > 0: + s += 1 + # check if some object was heated + if len(objs_heated) > 0: + s += 1 + # check if the object is both in the receptacle and hot + if np.any([obj_id in objs_heated for obj_id in objs_in_place]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +class PickCoolThenPlaceInRecepTask(BaseTask): + ''' + pick_cool_then_place_in_recep task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class inside receptacle of 'parent' class is cold + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 3 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + objs_in_place = [p['objectId'] for p in pickupables for r in receptacles + if r['receptacleObjectIds'] is not None and p['objectId'] in r['receptacleObjectIds']] + objs_cooled = [p['objectId'] for p in pickupables if p['objectId'] in self.env.cooled_objects] + + # check if object is in the receptacle + if len(objs_in_place) > 0: + s += 1 + # check if some object was cooled + if len(objs_cooled) > 0: + s += 1 + # check if the object is both in the receptacle and cold + if np.any([obj_id in objs_cooled for obj_id in objs_in_place]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +class PickCleanThenPlaceInRecepTask(BaseTask): + ''' + pick_clean_then_place_in_recep task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class inside receptacle of 'parent' class is clean + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 3 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + objs_in_place = [p['objectId'] for p in pickupables for r in receptacles + if r['receptacleObjectIds'] is not None and p['objectId'] in r['receptacleObjectIds']] + objs_cleaned = [p['objectId'] for p in pickupables if p['objectId'] in self.env.cleaned_objects] + + # check if object is in the receptacle + if len(objs_in_place) > 0: + s += 1 + # check if some object was cleaned + if len(objs_cleaned) > 0: + s += 1 + # check if the object is both in the receptacle and clean + if np.any([obj_id in objs_cleaned for obj_id in objs_in_place]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +class PickAndPlaceWithMovableRecepTask(BaseTask): + ''' + pick_and_place_with_movable_recep task + ''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def goal_satisfied(self, state): + # check if any object of 'object' class is inside any movable receptacle of 'mrecep' class at receptacle of 'parent' class + pcs = self.goal_conditions_met(state) + return pcs[0] == pcs[1] + + def goal_conditions_met(self, state): + ts = 3 + s = 0 + + targets = self.get_targets() + receptacles = get_objects_with_name_and_prop(targets['parent'], 'receptacle', state.metadata) + pickupables = get_objects_with_name_and_prop(targets['object'], 'pickupable', state.metadata) + movables = get_objects_with_name_and_prop(targets['mrecep'], 'pickupable', state.metadata) + + # check if object needs to be sliced + if 'Sliced' in targets['object']: + ts += 1 + if len([p for p in pickupables if 'Sliced' in p['objectId']]) >= 1: + s += 1 + + pickup_in_place = [p for p in pickupables for m in movables + if 'receptacleObjectIds' in p and m['receptacleObjectIds'] is not None + and p['objectId'] in m['receptacleObjectIds']] + movable_in_place = [m for m in movables for r in receptacles + if 'receptacleObjectIds' in r and r['receptacleObjectIds'] is not None + and m['objectId'] in r['receptacleObjectIds']] + # check if the object is in the final receptacle + if len(pickup_in_place) > 0: + s += 1 + # check if the movable receptacle is in the final receptacle + if len(movable_in_place) > 0: + s += 1 + # check if both the object and movable receptacle stack is in the final receptacle + if np.any([np.any([p['objectId'] in m['receptacleObjectIds'] for p in pickupables]) and + np.any([r['objectId'] in m['parentReceptacles'] for r in receptacles]) for m in movables + if m['parentReceptacles'] is not None and m['receptacleObjectIds'] is not None]): + s += 1 + + return s, ts + + def reset(self): + super().reset() + + +def get_task(task_type, traj, env, args, reward_type='sparse', max_episode_length=2000): + task_class_str = task_type.replace('_', ' ').title().replace(' ', '') + "Task" + + if task_class_str in globals(): + task = globals()[task_class_str] + return task(traj, env, args, reward_type=reward_type, max_episode_length=max_episode_length) + else: + raise Exception("Invalid task_type %s" % task_class_str) \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/env/thor_env.py b/easi/tasks/ebalfred/vendor/env/thor_env.py new file mode 100644 index 0000000..3e8ed86 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/env/thor_env.py @@ -0,0 +1,601 @@ +import cv2 +import copy +import easi.tasks.ebalfred.vendor.gen.constants as constants +import numpy as np +from collections import Counter, OrderedDict +from easi.tasks.ebalfred.vendor.env.tasks import get_task +from ai2thor.controller import Controller +import easi.tasks.ebalfred.vendor.gen.utils.image_util as image_util +from easi.tasks.ebalfred.vendor.gen.utils import game_util +from easi.tasks.ebalfred.vendor.gen.utils.game_util import get_objects_of_type, get_obj_of_type_closest_to_obj + + +DEFAULT_RENDER_SETTINGS = {'renderImage': True, + 'renderDepthImage': False, + 'renderClassImage': False, + 'renderObjectImage': False, + } + +class ThorEnv(Controller): + ''' + an extension of ai2thor.controller.Controller for ALFRED tasks + ''' + def __init__(self, x_display=constants.X_DISPLAY, + player_screen_height=constants.DETECTION_SCREEN_HEIGHT, + player_screen_width=constants.DETECTION_SCREEN_WIDTH, + quality='MediumCloseFitShadows', + build_path=constants.BUILD_PATH): + self.task = None + + super().__init__(quality=quality) + self.local_executable_path = build_path + self.start(x_display=x_display, + player_screen_height=player_screen_height, + player_screen_width=player_screen_width) + self.task = None + + # internal states + self.cleaned_objects = set() + self.cooled_objects = set() + self.heated_objects = set() + + # intemediate states for CoolObject Subgoal + self.cooled_reward = False + self.reopen_reward = False + + print("ThorEnv started.") + + def reset(self, scene_name_or_num, + grid_size=constants.AGENT_STEP_SIZE / constants.RECORD_SMOOTHING_FACTOR, + camera_y=constants.CAMERA_HEIGHT_OFFSET, + render_image=constants.RENDER_IMAGE, + render_depth_image=constants.RENDER_DEPTH_IMAGE, + render_class_image=constants.RENDER_CLASS_IMAGE, + render_object_image=constants.RENDER_OBJECT_IMAGE, + visibility_distance=constants.VISIBILITY_DISTANCE): + ''' + reset scene and task states + ''' + print("Resetting ThorEnv") + + if type(scene_name_or_num) == str: + scene_name = scene_name_or_num + else: + scene_name = 'FloorPlan%d' % scene_name_or_num + super().reset(scene_name) + event = super().step(dict( + action='Initialize', + gridSize=grid_size, + cameraY=camera_y, + renderImage=render_image, + renderDepthImage=render_depth_image, + renderClassImage=render_class_image, + renderObjectImage=render_object_image, + visibility_distance=visibility_distance, + makeAgentsVisible=False, + )) + + # reset task if specified + if self.task is not None: + self.task.reset() + + # clear object state changes + self.reset_states() + + return event + + def reset_states(self): + ''' + clear state changes + ''' + self.cleaned_objects = set() + self.cooled_objects = set() + self.heated_objects = set() + + def restore_scene(self, object_poses, object_toggles, dirty_and_empty): + ''' + restore object locations and states + ''' + super().step(dict( + action='Initialize', + gridSize=constants.AGENT_STEP_SIZE / constants.RECORD_SMOOTHING_FACTOR, + cameraY=constants.CAMERA_HEIGHT_OFFSET, + renderImage=constants.RENDER_IMAGE, + renderDepthImage=constants.RENDER_DEPTH_IMAGE, + renderClassImage=constants.RENDER_CLASS_IMAGE, + renderObjectImage=constants.RENDER_OBJECT_IMAGE, + visibility_distance=constants.VISIBILITY_DISTANCE, + makeAgentsVisible=False, + )) + if len(object_toggles) > 0: + super().step((dict(action='SetObjectToggles', objectToggles=object_toggles))) + + if dirty_and_empty: + super().step(dict(action='SetStateOfAllObjects', + StateChange="CanBeDirty", + forceAction=True)) + super().step(dict(action='SetStateOfAllObjects', + StateChange="CanBeFilled", + forceAction=False)) + super().step((dict(action='SetObjectPoses', objectPoses=object_poses))) + + def set_task(self, traj, args, reward_type='sparse', max_episode_length=2000): + ''' + set the current task type (one of 7 tasks) + ''' + task_type = traj['task_type'] + self.task = get_task(task_type, traj, self, args, reward_type=reward_type, max_episode_length=max_episode_length) + + def step(self, action, smooth_nav=False): + ''' + overrides ai2thor.controller.Controller.step() for smooth navigation and goal_condition updates + ''' + if type(action) == str: + action = {'action': action} + if smooth_nav: + if "MoveAhead" in action['action']: + self.smooth_move_ahead(action) + elif "Rotate" in action['action']: + self.smooth_rotate(action) + elif "Look" in action['action']: + self.smooth_look(action) + else: + super().step(action) + else: + if "LookUp" in action['action']: + self.look_angle(-constants.AGENT_HORIZON_ADJ) + elif "LookDown" in action['action']: + self.look_angle(constants.AGENT_HORIZON_ADJ) + else: + super().step(action) + + event = self.update_states(action) + self.check_post_conditions(action) + return event + + def check_post_conditions(self, action): + ''' + handle special action post-conditions + ''' + if action['action'] == 'ToggleObjectOn': + self.check_clean(action['objectId']) + + def update_states(self, action): + ''' + extra updates to metadata after step + ''' + # add 'cleaned' to all object that were washed in the sink + event = self.last_event + if event.metadata['lastActionSuccess']: + # clean + if action['action'] == 'ToggleObjectOn' and "Faucet" in action['objectId']: + sink_basin = get_obj_of_type_closest_to_obj('SinkBasin', action['objectId'], event.metadata) + cleaned_object_ids = sink_basin['receptacleObjectIds'] + self.cleaned_objects = self.cleaned_objects | set(cleaned_object_ids) if cleaned_object_ids is not None else set() + # heat + if action['action'] == 'ToggleObjectOn' and "Microwave" in action['objectId']: + microwave = get_objects_of_type('Microwave', event.metadata)[0] + heated_object_ids = microwave['receptacleObjectIds'] + self.heated_objects = self.heated_objects | set(heated_object_ids) if heated_object_ids is not None else set() + # cool + if action['action'] == 'CloseObject' and "Fridge" in action['objectId']: + fridge = get_objects_of_type('Fridge', event.metadata)[0] + cooled_object_ids = fridge['receptacleObjectIds'] + self.cooled_objects = self.cooled_objects | set(cooled_object_ids) if cooled_object_ids is not None else set() + + return event + + def get_transition_reward(self): + if self.task is None: + raise Exception("WARNING: no task setup for transition_reward") + else: + return self.task.transition_reward(self.last_event) + + def get_goal_satisfied(self): + if self.task is None: + raise Exception("WARNING: no task setup for goal_satisfied") + else: + return self.task.goal_satisfied(self.last_event) + + def get_goal_conditions_met(self): + if self.task is None: + raise Exception("WARNING: no task setup for goal_satisfied") + else: + return self.task.goal_conditions_met(self.last_event) + + def get_subgoal_idx(self): + if self.task is None: + raise Exception("WARNING: no task setup for subgoal_idx") + else: + return self.task.get_subgoal_idx() + + def noop(self): + ''' + do nothing + ''' + super().step(dict(action='Pass')) + + def smooth_move_ahead(self, action, render_settings=None): + ''' + smoother MoveAhead + ''' + if render_settings is None: + render_settings = DEFAULT_RENDER_SETTINGS + smoothing_factor = constants.RECORD_SMOOTHING_FACTOR + new_action = copy.deepcopy(action) + new_action['moveMagnitude'] = constants.AGENT_STEP_SIZE / smoothing_factor + + new_action['renderImage'] = render_settings['renderImage'] + new_action['renderClassImage'] = render_settings['renderClassImage'] + new_action['renderObjectImage'] = render_settings['renderObjectImage'] + new_action['renderDepthImage'] = render_settings['renderDepthImage'] + + events = [] + for xx in range(smoothing_factor - 1): + event = super().step(new_action) + if event.metadata['lastActionSuccess']: + events.append(event) + + event = super().step(new_action) + if event.metadata['lastActionSuccess']: + events.append(event) + return events + + def smooth_rotate(self, action, render_settings=None): + ''' + smoother RotateLeft and RotateRight + ''' + if render_settings is None: + render_settings = DEFAULT_RENDER_SETTINGS + event = self.last_event + horizon = np.round(event.metadata['agent']['cameraHorizon'], 4) + position = event.metadata['agent']['position'] + rotation = event.metadata['agent']['rotation'] + start_rotation = rotation['y'] + if action['action'] == 'RotateLeft': + end_rotation = (start_rotation - 90) + else: + end_rotation = (start_rotation + 90) + + events = [] + for xx in np.arange(.1, 1.0001, .1): + if xx < 1: + teleport_action = { + 'action': 'TeleportFull', + 'rotation': np.round(start_rotation * (1 - xx) + end_rotation * xx, 3), + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': horizon, + 'tempRenderChange': True, + 'renderNormalsImage': False, + 'renderImage': render_settings['renderImage'], + 'renderClassImage': render_settings['renderClassImage'], + 'renderObjectImage': render_settings['renderObjectImage'], + 'renderDepthImage': render_settings['renderDepthImage'], + } + event = super().step(teleport_action) + else: + teleport_action = { + 'action': 'TeleportFull', + 'rotation': np.round(start_rotation * (1 - xx) + end_rotation * xx, 3), + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': horizon, + } + event = super().step(teleport_action) + + if event.metadata['lastActionSuccess']: + events.append(event) + return events + + def smooth_look(self, action, render_settings=None): + ''' + smoother LookUp and LookDown + ''' + if render_settings is None: + render_settings = DEFAULT_RENDER_SETTINGS + event = self.last_event + start_horizon = event.metadata['agent']['cameraHorizon'] + rotation = np.round(event.metadata['agent']['rotation']['y'], 4) + end_horizon = start_horizon + constants.AGENT_HORIZON_ADJ * (1 - 2 * int(action['action'] == 'LookUp')) + position = event.metadata['agent']['position'] + + events = [] + for xx in np.arange(.1, 1.0001, .1): + if xx < 1: + teleport_action = { + 'action': 'TeleportFull', + 'rotation': rotation, + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': np.round(start_horizon * (1 - xx) + end_horizon * xx, 3), + 'tempRenderChange': True, + 'renderNormalsImage': False, + 'renderImage': render_settings['renderImage'], + 'renderClassImage': render_settings['renderClassImage'], + 'renderObjectImage': render_settings['renderObjectImage'], + 'renderDepthImage': render_settings['renderDepthImage'], + } + event = super().step(teleport_action) + else: + teleport_action = { + 'action': 'TeleportFull', + 'rotation': rotation, + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': np.round(start_horizon * (1 - xx) + end_horizon * xx, 3), + } + event = super().step(teleport_action) + + if event.metadata['lastActionSuccess']: + events.append(event) + return events + + def look_angle(self, angle, render_settings=None): + ''' + look at a specific angle + ''' + if render_settings is None: + render_settings = DEFAULT_RENDER_SETTINGS + event = self.last_event + start_horizon = event.metadata['agent']['cameraHorizon'] + rotation = np.round(event.metadata['agent']['rotation']['y'], 4) + end_horizon = start_horizon + angle + position = event.metadata['agent']['position'] + + teleport_action = { + 'action': 'TeleportFull', + 'rotation': rotation, + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': np.round(end_horizon, 3), + 'tempRenderChange': True, + 'renderNormalsImage': False, + 'renderImage': render_settings['renderImage'], + 'renderClassImage': render_settings['renderClassImage'], + 'renderObjectImage': render_settings['renderObjectImage'], + 'renderDepthImage': render_settings['renderDepthImage'], + } + event = super().step(teleport_action) + return event + + def rotate_angle(self, angle, render_settings=None): + ''' + rotate at a specific angle + ''' + if render_settings is None: + render_settings = DEFAULT_RENDER_SETTINGS + event = self.last_event + horizon = np.round(event.metadata['agent']['cameraHorizon'], 4) + position = event.metadata['agent']['position'] + rotation = event.metadata['agent']['rotation'] + start_rotation = rotation['y'] + end_rotation = start_rotation + angle + + teleport_action = { + 'action': 'TeleportFull', + 'rotation': np.round(end_rotation, 3), + 'x': position['x'], + 'z': position['z'], + 'y': position['y'], + 'horizon': horizon, + 'tempRenderChange': True, + 'renderNormalsImage': False, + 'renderImage': render_settings['renderImage'], + 'renderClassImage': render_settings['renderClassImage'], + 'renderObjectImage': render_settings['renderObjectImage'], + 'renderDepthImage': render_settings['renderDepthImage'], + } + event = super().step(teleport_action) + return event + + def to_thor_api_exec(self, action, object_id="", smooth_nav=False): + # TODO: parametrized navigation commands + + if "RotateLeft" in action: + action = dict(action="RotateLeft", + forceAction=True) + event = self.step(action, smooth_nav=smooth_nav) + elif "RotateRight" in action: + action = dict(action="RotateRight", + forceAction=True) + event = self.step(action, smooth_nav=smooth_nav) + elif "MoveAhead" in action: + action = dict(action="MoveAhead", + forceAction=True) + event = self.step(action, smooth_nav=smooth_nav) + elif "LookUp" in action: + action = dict(action="LookUp", + forceAction=True) + event = self.step(action, smooth_nav=smooth_nav) + elif "LookDown" in action: + action = dict(action="LookDown", + forceAction=True) + event = self.step(action, smooth_nav=smooth_nav) + elif "OpenObject" in action: + action = dict(action="OpenObject", + objectId=object_id, + moveMagnitude=1.0) + event = self.step(action) + elif "CloseObject" in action: + action = dict(action="CloseObject", + objectId=object_id, + forceAction=True) + event = self.step(action) + elif "PickupObject" in action: + action = dict(action="PickupObject", + objectId=object_id) + event = self.step(action) + elif "PutObject" in action: + inventory_object_id = self.last_event.metadata['inventoryObjects'][0]['objectId'] + action = dict(action="PutObject", + objectId=inventory_object_id, + receptacleObjectId=object_id, + forceAction=True, + placeStationary=True) + event = self.step(action) + elif "ToggleObjectOn" in action: + action = dict(action="ToggleObjectOn", + objectId=object_id) + event = self.step(action) + + elif "ToggleObjectOff" in action: + action = dict(action="ToggleObjectOff", + objectId=object_id) + event = self.step(action) + elif "SliceObject" in action: + # check if agent is holding knife in hand + inventory_objects = self.last_event.metadata['inventoryObjects'] + if len(inventory_objects) == 0 or 'Knife' not in inventory_objects[0]['objectType']: + raise Exception("Agent should be holding a knife before slicing.") + + action = dict(action="SliceObject", + objectId=object_id) + event = self.step(action) + else: + raise Exception("Invalid action. Conversion to THOR API failed! (action='" + str(action) + "')") + + return event, action + + def check_clean(self, object_id): + ''' + Handle special case when Faucet is toggled on. + In this case, we need to execute a `CleanAction` in the simulator on every object in the corresponding + basin. This is to clean everything in the sink rather than just things touching the stream. + ''' + event = self.last_event + if event.metadata['lastActionSuccess'] and 'Faucet' in object_id: + # Need to delay one frame to let `isDirty` update on stream-affected. + event = self.step({'action': 'Pass'}) + sink_basin_obj = game_util.get_obj_of_type_closest_to_obj("SinkBasin", object_id, event.metadata) + for in_sink_obj_id in sink_basin_obj['receptacleObjectIds']: + if (game_util.get_object(in_sink_obj_id, event.metadata)['dirtyable'] + and game_util.get_object(in_sink_obj_id, event.metadata)['isDirty']): + event = self.step({'action': 'CleanObject', 'objectId': in_sink_obj_id}) + return event + + def prune_by_any_interaction(self, instances_ids): + ''' + ignores any object that is not interactable in anyway + ''' + pruned_instance_ids = [] + for obj in self.last_event.metadata['objects']: + obj_id = obj['objectId'] + if obj_id in instances_ids: + if obj['pickupable'] or obj['receptacle'] or obj['openable'] or obj['toggleable'] or obj['sliceable']: + pruned_instance_ids.append(obj_id) + + ordered_instance_ids = [id for id in instances_ids if id in pruned_instance_ids] + return ordered_instance_ids + + def va_interact(self, action, interact_mask=None, smooth_nav=True, mask_px_sample=1, debug=False): + ''' + interact mask based action call + ''' + + all_ids = [] + + if type(interact_mask) is str and interact_mask == "NULL": + raise Exception("NULL mask.") + elif interact_mask is not None: + # ground-truth instance segmentation mask from THOR + instance_segs = np.array(self.last_event.instance_segmentation_frame) + color_to_object_id = self.last_event.color_to_object_id + + # get object_id for each 1-pixel in the interact_mask + nz_rows, nz_cols = np.nonzero(interact_mask) + instance_counter = Counter() + for i in range(0, len(nz_rows), mask_px_sample): + x, y = nz_rows[i], nz_cols[i] + instance = tuple(instance_segs[x, y]) + instance_counter[instance] += 1 + if debug: + print("action_box", "instance_counter", instance_counter) + + # iou scores for all instances + iou_scores = {} + for color_id, intersection_count in instance_counter.most_common(): + union_count = np.sum(np.logical_or(np.all(instance_segs == color_id, axis=2), interact_mask.astype(bool))) + iou_scores[color_id] = intersection_count / float(union_count) + iou_sorted_instance_ids = list(OrderedDict(sorted(iou_scores.items(), key=lambda x: x[1], reverse=True))) + + # get the most common object ids ignoring the object-in-hand + inv_obj = self.last_event.metadata['inventoryObjects'][0]['objectId'] \ + if len(self.last_event.metadata['inventoryObjects']) > 0 else None + all_ids = [color_to_object_id[color_id] for color_id in iou_sorted_instance_ids + if color_id in color_to_object_id and color_to_object_id[color_id] != inv_obj] + + # print all ids + if debug: + print("action_box", "all_ids", all_ids) + + # print instance_ids + instance_ids = [inst_id for inst_id in all_ids if inst_id is not None] + if debug: + print("action_box", "instance_ids", instance_ids) + + # prune invalid instances like floors, walls, etc. + instance_ids = self.prune_by_any_interaction(instance_ids) + + # cv2 imshows to show image, segmentation mask, interact mask + if debug: + print("action_box", "instance_ids", instance_ids) + instance_seg = copy.copy(instance_segs) + instance_seg[:, :, :] = interact_mask[:, :, np.newaxis] == 1 + instance_seg *= 255 + + cv2.imshow('seg', instance_segs) + cv2.imshow('mask', instance_seg) + cv2.imshow('full', self.last_event.frame[:,:,::-1]) + cv2.waitKey(0) + + if len(instance_ids) == 0: + err = "Bad interact mask. Couldn't locate target object" + success = False + return success, None, None, err, None + + target_instance_id = instance_ids[0] + else: + target_instance_id = "" + + if debug: + print("taking action: " + str(action) + " on target_instance_id " + str(target_instance_id)) + try: + event, api_action = self.to_thor_api_exec(action, target_instance_id, smooth_nav) + except Exception as err: + success = False + return success, None, None, err, None + + if not event.metadata['lastActionSuccess']: + if interact_mask is not None and debug: + print("Failed to execute action!", action, target_instance_id) + print("all_ids inside BBox: " + str(all_ids)) + instance_seg = copy.copy(instance_segs) + instance_seg[:, :, :] = interact_mask[:, :, np.newaxis] == 1 + cv2.imshow('seg', instance_segs) + cv2.imshow('mask', instance_seg) + cv2.imshow('full', self.last_event.frame[:,:,::-1]) + cv2.waitKey(0) + print(event.metadata['errorMessage']) + success = False + return success, event, target_instance_id, event.metadata['errorMessage'], api_action + + success = True + return success, event, target_instance_id, '', api_action + + @staticmethod + def bbox_to_mask(bbox): + return image_util.bbox_to_mask(bbox) + + @staticmethod + def point_to_mask(point): + return image_util.point_to_mask(point) + + @staticmethod + def decompress_mask(compressed_mask): + return image_util.decompress_mask(compressed_mask) diff --git a/easi/tasks/ebalfred/vendor/gen/__init__.py b/easi/tasks/ebalfred/vendor/gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/gen/constants.py b/easi/tasks/ebalfred/vendor/gen/constants.py new file mode 100644 index 0000000..f024d7c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/constants.py @@ -0,0 +1,1221 @@ +from collections import OrderedDict + +######################################################################################################################## +# General Settings + +DEBUG = True +EVAL = False +LOG_FILE = 'logs_gen' + +RECORD_VIDEO_IMAGES = True +RECORD_SMOOTHING_FACTOR = 1 +DATA_SAVE_PATH = "dataset/new_trajectories" + +OPEN_LOOP = True +FULL_OBSERVABLE_STATE = True + +######################################################################################################################## +# Generation Ablations + +MAX_NUM_OF_OBJ_INSTANCES = 3 # when randomly initializing the scene, create duplicate instance up to this number +PICKUP_REPEAT_MAX = 4 # how many of the target pickup object to generate in [1, MAX] (randomly chosen) +RECEPTACLE_SPARSE_POINTS = 50 # increment for how many points to leave free for sparsely populated receptacles +RECEPTACLE_EMPTY_POINTS = 200 # increment for how many points to leave free for empty receptacles + +MIN_VISIBLE_RATIO = 0.0011 # minimum area ratio (with respect to image size) of visible object +PLANNER_MAX_STEPS = 100 # if the generated plan is more than these steps, discard the traj +MAX_EPISODE_LENGTH = 1000 # maximum number of API steps allowed per trajectory + +FORCED_SAMPLING = False # set True for debugging instead of proper sampling +PRUNE_UNREACHABLE_POINTS = True # prune navigation points that were deemed unreachable by the proprocessing script + +######################################################################################################################## +# Goals + +GOALS = ["pick_and_place_simple", + "pick_two_obj_and_place", + "look_at_obj_in_light", + "pick_clean_then_place_in_recep", + "pick_heat_then_place_in_recep", + "pick_cool_then_place_in_recep", + "pick_and_place_with_movable_recep"] + +GOALS_VALID = {"pick_and_place_simple": {"Kitchen", "LivingRoom", "Bathroom", "Bedroom"}, + "pick_two_obj_and_place": {"Kitchen", "LivingRoom", "Bathroom", "Bedroom"}, + "look_at_obj_in_light": {"LivingRoom", "Bedroom"}, + "pick_clean_then_place_in_recep": {"Kitchen", "Bathroom"}, + "pick_heat_then_place_in_recep": {"Kitchen"}, + "pick_cool_then_place_in_recep": {"Kitchen"}, + "pick_and_place_with_movable_recep": {"Kitchen", "LivingRoom", "Bedroom"}} + +pddl_goal_type = "pick_and_place_simple" # default goal type + +######################################################################################################################## +# Video Settings + +# filler frame IDs +BEFORE = 0 +MIDDLE = 1 +AFTER = 2 + +# number of image frames to save before and after executing the specified action +SAVE_FRAME_BEFORE_AND_AFTER_COUNTS = { + 'OpenObject': [2, 0, 2], + 'CloseObject': [2, 0, 2], + 'PickupObject': [5, 0, 10], + 'PutObject': [5, 0, 10], + 'CleanObject': [3, 0, 5], + 'HeatObject': [3, 0, 5], + 'CoolObject': [3, 30, 5], + 'ToggleObjectOn': [3, 0, 15], + 'ToggleObjectOff': [1, 0, 5], + 'SliceObject': [3, 0, 7] +} + +# FPS +VIDEO_FRAME_RATE = 5 + +######################################################################################################################## +# Data & Storage + +save_path = DATA_SAVE_PATH +data_dict = OrderedDict() # dictionary for storing trajectory data to be dumped + +######################################################################################################################## +# Unity Hyperparameters + +BUILD_PATH = None +X_DISPLAY = '0' + +AGENT_STEP_SIZE = 0.25 +AGENT_HORIZON_ADJ = 15 +AGENT_ROTATE_ADJ = 90 +CAMERA_HEIGHT_OFFSET = 0.75 +VISIBILITY_DISTANCE = 1.5 # default visibility +# VISIBILITY_DISTANCE = 25 # whole scene +HORIZON_GRANULARITY = 15 + +RENDER_IMAGE = True +RENDER_DEPTH_IMAGE = True +RENDER_CLASS_IMAGE = True +RENDER_OBJECT_IMAGE = True + +MAX_DEPTH = 5000 +STEPS_AHEAD = 5 +SCENE_PADDING = STEPS_AHEAD * 3 +SCREEN_WIDTH = DETECTION_SCREEN_WIDTH = 500 +SCREEN_HEIGHT = DETECTION_SCREEN_HEIGHT = 500 +MIN_VISIBLE_PIXELS = 10 + +# (400) / (600*600) ~ 0.13% area of image +# int(MIN_VISIBLE_RATIO * float(DETECTION_SCREEN_WIDTH) * float(DETECTION_SCREEN_HEIGHT)) +# MIN_VISIBLE_PIXELS = int(MIN_VISIBLE_RATIO * float(DETECTION_SCREEN_WIDTH) * float( +# DETECTION_SCREEN_HEIGHT)) # (400) / (600*600) ~ 0.13% area of image + +######################################################################################################################## +# Scenes and Objects + +TRAIN_SCENE_NUMBERS = list(range(7, 31)) # Train Kitchens (24/30) +TRAIN_SCENE_NUMBERS.extend(list(range(207, 231))) # Train Living Rooms (24/30) +TRAIN_SCENE_NUMBERS.extend(list(range(307, 331))) # Train Bedrooms (24/30) +TRAIN_SCENE_NUMBERS.extend(list(range(407, 431))) # Train Bathrooms (24/30) + +TEST_SCENE_NUMBERS = list(range(1, 7)) # Test Kitchens (6/30) +TEST_SCENE_NUMBERS.extend(list(range(201, 207))) # Test Living Rooms (6/30) +TEST_SCENE_NUMBERS.extend(list(range(301, 307))) # Test Bedrooms (6/30) +TEST_SCENE_NUMBERS.extend(list(range(401, 407))) # Test Bathrooms (6/30) + +SCENE_NUMBERS = TRAIN_SCENE_NUMBERS + TEST_SCENE_NUMBERS + +# Scene types. +SCENE_TYPE = {"Kitchen": range(1, 31), + "LivingRoom": range(201, 231), + "Bedroom": range(301, 331), + "Bathroom": range(401, 431)} + +OBJECTS = [ + 'AlarmClock', + 'Apple', + 'ArmChair', + 'BaseballBat', + 'BasketBall', + 'Bathtub', + 'BathtubBasin', + 'Bed', + 'Blinds', + 'Book', + 'Boots', + 'Bowl', + 'Box', + 'Bread', + 'ButterKnife', + 'Cabinet', + 'Candle', + 'Cart', + 'CD', + 'CellPhone', + 'Chair', + 'Cloth', + 'CoffeeMachine', + 'CounterTop', + 'CreditCard', + 'Cup', + 'Curtains', + 'Desk', + 'DeskLamp', + 'DishSponge', + 'Drawer', + 'Dresser', + 'Egg', + 'FloorLamp', + 'Footstool', + 'Fork', + 'Fridge', + 'GarbageCan', + 'Glassbottle', + 'HandTowel', + 'HandTowelHolder', + 'HousePlant', + 'Kettle', + 'KeyChain', + 'Knife', + 'Ladle', + 'Laptop', + 'LaundryHamper', + 'LaundryHamperLid', + 'Lettuce', + 'LightSwitch', + 'Microwave', + 'Mirror', + 'Mug', + 'Newspaper', + 'Ottoman', + 'Painting', + 'Pan', + 'PaperTowel', + 'PaperTowelRoll', + 'Pen', + 'Pencil', + 'PepperShaker', + 'Pillow', + 'Plate', + 'Plunger', + 'Poster', + 'Pot', + 'Potato', + 'RemoteControl', + 'Safe', + 'SaltShaker', + 'ScrubBrush', + 'Shelf', + 'ShowerDoor', + 'ShowerGlass', + 'Sink', + 'SinkBasin', + 'SoapBar', + 'SoapBottle', + 'Sofa', + 'Spatula', + 'Spoon', + 'SprayBottle', + 'Statue', + 'StoveBurner', + 'StoveKnob', + 'DiningTable', + 'CoffeeTable', + 'SideTable', + 'TeddyBear', + 'Television', + 'TennisRacket', + 'TissueBox', + 'Toaster', + 'Toilet', + 'ToiletPaper', + 'ToiletPaperHanger', + 'ToiletPaperRoll', + 'Tomato', + 'Towel', + 'TowelHolder', + 'TVStand', + 'Vase', + 'Watch', + 'WateringCan', + 'Window', + 'WineBottle', +] + +OBJECTS_LOWER_TO_UPPER = {obj.lower(): obj for obj in OBJECTS} + +OBJECTS_SINGULAR = [ + 'alarmclock', + 'apple', + 'armchair', + 'baseballbat', + 'basketball', + 'bathtub', + 'bathtubbasin', + 'bed', + 'blinds', + 'book', + 'boots', + 'bowl', + 'box', + 'bread', + 'butterknife', + 'cabinet', + 'candle', + 'cart', + 'cd', + 'cellphone', + 'chair', + 'cloth', + 'coffeemachine', + 'countertop', + 'creditcard', + 'cup', + 'curtains', + 'desk', + 'desklamp', + 'dishsponge', + 'drawer', + 'dresser', + 'egg', + 'floorlamp', + 'footstool', + 'fork', + 'fridge', + 'garbagecan', + 'glassbottle', + 'handtowel', + 'handtowelholder', + 'houseplant', + 'kettle', + 'keychain', + 'knife', + 'ladle', + 'laptop', + 'laundryhamper', + 'laundryhamperlid', + 'lettuce', + 'lightswitch', + 'microwave', + 'mirror', + 'mug', + 'newspaper', + 'ottoman', + 'painting', + 'pan', + 'papertowel', + 'papertowelroll', + 'pen', + 'pencil', + 'peppershaker', + 'pillow', + 'plate', + 'plunger', + 'poster', + 'pot', + 'potato', + 'remotecontrol', + 'safe', + 'saltshaker', + 'scrubbrush', + 'shelf', + 'showerdoor', + 'showerglass', + 'sink', + 'sinkbasin', + 'soapbar', + 'soapbottle', + 'sofa', + 'spatula', + 'spoon', + 'spraybottle', + 'statue', + 'stoveburner', + 'stoveknob', + 'diningtable', + 'coffeetable', + 'sidetable' + 'teddybear', + 'television', + 'tennisracket', + 'tissuebox', + 'toaster', + 'toilet', + 'toiletpaper', + 'toiletpaperhanger', + 'toiletpaperroll', + 'tomato', + 'towel', + 'towelholder', + 'tvstand', + 'vase', + 'watch', + 'wateringcan', + 'window', + 'winebottle', +] + +OBJECTS_PLURAL = [ + 'alarmclocks', + 'apples', + 'armchairs', + 'baseballbats', + 'basketballs', + 'bathtubs', + 'bathtubbasins', + 'beds', + 'blinds', + 'books', + 'boots', + 'bottles', + 'bowls', + 'boxes', + 'bread', + 'butterknives', + 'cabinets', + 'candles', + 'carts', + 'cds', + 'cellphones', + 'chairs', + 'cloths', + 'coffeemachines', + 'countertops', + 'creditcards', + 'cups', + 'curtains', + 'desks', + 'desklamps', + 'dishsponges', + 'drawers', + 'dressers', + 'eggs', + 'floorlamps', + 'footstools', + 'forks', + 'fridges', + 'garbagecans', + 'glassbottles', + 'handtowels', + 'handtowelholders', + 'houseplants', + 'kettles', + 'keychains', + 'knives', + 'ladles', + 'laptops', + 'laundryhampers', + 'laundryhamperlids', + 'lettuces', + 'lightswitches', + 'microwaves', + 'mirrors', + 'mugs', + 'newspapers', + 'ottomans', + 'paintings', + 'pans', + 'papertowels', + 'papertowelrolls', + 'pens', + 'pencils', + 'peppershakers', + 'pillows', + 'plates', + 'plungers', + 'posters', + 'pots', + 'potatoes', + 'remotecontrollers', + 'safes', + 'saltshakers', + 'scrubbrushes', + 'shelves', + 'showerdoors', + 'showerglassess', + 'sinks', + 'sinkbasins', + 'soapbars', + 'soapbottles', + 'sofas', + 'spatulas', + 'spoons', + 'spraybottles', + 'statues', + 'stoveburners', + 'stoveknobs', + 'diningtables', + 'coffeetables', + 'sidetable', + 'teddybears', + 'televisions', + 'tennisrackets', + 'tissueboxes', + 'toasters', + 'toilets', + 'toiletpapers', + 'toiletpaperhangers', + 'toiletpaperrolls', + 'tomatoes', + 'towels', + 'towelholders', + 'tvstands', + 'vases', + 'watches', + 'wateringcans', + 'windows', + 'winebottles', +] + +MOVABLE_RECEPTACLES = [ + 'Bowl', + 'Box', + 'Cup', + 'Mug', + 'Plate', + 'Pan', + 'Pot', +] + +MOVABLE_RECEPTACLES_SET = set(MOVABLE_RECEPTACLES) +OBJECTS_SET = set(OBJECTS) | MOVABLE_RECEPTACLES_SET + +OBJECT_CLASS_TO_ID = {obj: ii for (ii, obj) in enumerate(OBJECTS)} + +RECEPTACLES = { + 'BathtubBasin', + 'Bowl', + 'Cup', + 'Drawer', + 'Mug', + 'Plate', + 'Shelf', + 'SinkBasin', + 'Box', + 'Cabinet', + 'CoffeeMachine', + 'CounterTop', + 'Fridge', + 'GarbageCan', + 'HandTowelHolder', + 'Microwave', + 'PaintingHanger', + 'Pan', + 'Pot', + 'StoveBurner', + 'DiningTable', + 'CoffeeTable', + 'SideTable', + 'ToiletPaperHanger', + 'TowelHolder', + 'Safe', + 'BathtubBasin', + 'ArmChair', + 'Toilet', + 'Sofa', + 'Ottoman', + 'Dresser', + 'LaundryHamper', + 'Desk', + 'Bed', + 'Cart', + 'TVStand', + 'Toaster', + } + +NON_RECEPTACLES = OBJECTS_SET - RECEPTACLES + +NUM_RECEPTACLES = len(RECEPTACLES) +NUM_CLASSES = len(OBJECTS) + +# For generating questions +QUESTION_OBJECT_CLASS_LIST = [ + 'Spoon', + 'Potato', + 'Fork', + 'Plate', + 'Egg', + 'Tomato', + 'Bowl', + 'Lettuce', + 'Apple', + 'Knife', + 'Container', + 'Bread', + 'Mug', +] + +VAL_RECEPTACLE_OBJECTS = { + 'Pot': {'Apple', + 'AppleSliced', + 'ButterKnife', + 'DishSponge', + 'Egg', + 'Fork', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Potato', + 'PotatoSliced', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced'}, + 'Pan': {'Apple', + 'AppleSliced', + 'ButterKnife', + 'DishSponge', + 'Egg', + 'Fork', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Potato', + 'PotatoSliced', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced'}, + 'Bowl': {'Apple', + 'AppleSliced', + 'ButterKnife', + 'DishSponge', + 'Egg', + 'Fork', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Potato', + 'PotatoSliced', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'DishSponge', + 'KeyChain', + 'Mug', + 'PaperTowel', + 'Pen', + 'Pencil', + 'RemoteControl', + 'Watch'}, + 'CoffeeMachine': {'Mug'}, + 'Microwave': {'Apple', + 'AppleSliced', + 'Bowl', + 'Bread', + 'BreadSliced', + 'Cup', + 'Egg', + 'Glassbottle', + 'Mug', + 'Plate', + 'Potato', + 'PotatoSliced', + 'Tomato', + 'TomatoSliced'}, + 'StoveBurner': {'Kettle', + 'Pan', + 'Pot'}, + 'Fridge': {'Apple', + 'AppleSliced', + 'Bowl', + 'Bread', + 'BreadSliced', + 'Cup', + 'Egg', + 'Glassbottle', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Pan', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'Tomato', + 'TomatoSliced', + 'WineBottle'}, + 'Mug': {'ButterKnife', + 'Fork', + 'Knife', + 'Pen', + 'Pencil', + 'Spoon', + 'KeyChain', + 'Watch'}, + 'Plate': {'Apple', + 'AppleSliced', + 'ButterKnife', + 'DishSponge', + 'Egg', + 'Fork', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Potato', + 'PotatoSliced', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced', + 'AlarmClock', + 'Book', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'DishSponge', + 'Glassbottle', + 'KeyChain', + 'Mug', + 'PaperTowel', + 'Pen', + 'Pencil', + 'TissueBox', + 'Watch'}, + 'Cup': {'ButterKnife', + 'Fork', + 'Spoon'}, + 'Sofa': {'BasketBall', + 'Book', + 'Box', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'KeyChain', + 'Laptop', + 'Newspaper', + 'Pillow', + 'RemoteControl'}, + 'ArmChair': {'BasketBall', + 'Book', + 'Box', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'KeyChain', + 'Laptop', + 'Newspaper', + 'Pillow', + 'RemoteControl'}, + 'Box': {'AlarmClock', + 'Book', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'DishSponge', + 'Glassbottle', + 'KeyChain', + 'Mug', + 'PaperTowel', + 'Pen', + 'Pencil', + 'RemoteControl', + 'Statue', + 'TissueBox', + 'Vase', + 'Watch'}, + 'Ottoman': {'BasketBall', + 'Book', + 'Box', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'KeyChain', + 'Laptop', + 'Newspaper', + 'Pillow', + 'RemoteControl'}, + 'Dresser': {'AlarmClock', + 'BasketBall', + 'Book', + 'Bowl', + 'Box', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'Cup', + 'Glassbottle', + 'KeyChain', + 'Laptop', + 'Mug', + 'Newspaper', + 'Pen', + 'Pencil', + 'Plate', + 'RemoteControl', + 'SprayBottle', + 'Statue', + 'TennisRacket', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Vase', + 'Watch', + 'WateringCan', + 'WineBottle'}, + 'LaundryHamper': {'Cloth'}, + 'Desk': {'AlarmClock', + 'BasketBall', + 'Book', + 'Bowl', + 'Box', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'Cup', + 'Glassbottle', + 'KeyChain', + 'Laptop', + 'Mug', + 'Newspaper', + 'Pen', + 'Pencil', + 'Plate', + 'RemoteControl', + 'SoapBottle', + 'SprayBottle', + 'Statue', + 'TennisRacket', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Vase', + 'Watch', + 'WateringCan', + 'WineBottle'}, + 'Bed': {'BaseballBat', + 'BasketBall', + 'Book', + 'CellPhone', + 'Laptop', + 'Newspaper', + 'Pillow', + 'TennisRacket'}, + 'Toilet': {'Candle', + 'Cloth', + 'DishSponge', + 'Newspaper', + 'PaperTowel', + 'SoapBar', + 'SoapBottle', + 'SprayBottle', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'HandTowel'}, + 'ToiletPaperHanger': {'ToiletPaper', + 'ToiletPaperRoll'}, + 'TowelHolder': {'Towel'}, + 'HandTowelHolder': {'HandTowel'}, + 'Cart': {'Candle', + 'Cloth', + 'DishSponge', + 'Mug', + 'PaperTowel', + 'Plunger', + 'SoapBar', + 'SoapBottle', + 'SprayBottle', + 'Statue', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Vase', + 'HandTowel'}, + 'BathtubBasin': {'Cloth', + 'DishSponge', + 'SoapBar', + 'HandTowel'}, + 'SinkBasin': {'Apple', + 'AppleSliced', + 'Bowl', + 'ButterKnife', + 'Cloth', + 'Cup', + 'DishSponge', + 'Egg', + 'Glassbottle', + 'Fork', + 'Kettle', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Pan', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'SoapBar', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced', + 'HandTowel'}, + 'Cabinet': {'Book', + 'Bowl', + 'Box', + 'Candle', + 'CD', + 'Cloth', + 'Cup', + 'DishSponge', + 'Glassbottle', + 'Kettle', + 'Ladle', + 'Mug', + 'Newspaper', + 'Pan', + 'PepperShaker', + 'Plate', + 'Plunger', + 'Pot', + 'SaltShaker', + 'SoapBar', + 'SoapBottle', + 'SprayBottle', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Vase', + 'WateringCan', + 'WineBottle', + 'HandTowel'}, + 'TableTop': {'AlarmClock', + 'Apple', + 'AppleSliced', + 'BaseballBat', + 'BasketBall', + 'Book', + 'Bowl', + 'Box', + 'Bread', + 'BreadSliced', + 'ButterKnife', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'Cup', + 'DishSponge', + 'Glassbottle', + 'Egg', + 'Fork', + 'Kettle', + 'KeyChain', + 'Knife', + 'Ladle', + 'Laptop', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Newspaper', + 'Pan', + 'PaperTowel', + 'Pen', + 'Pencil', + 'PepperShaker', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'RemoteControl', + 'SaltShaker', + 'SoapBar', + 'SoapBottle', + 'Spatula', + 'Spoon', + 'SprayBottle', + 'Statue', + 'TennisRacket', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Tomato', + 'TomatoSliced', + 'Vase', + 'Watch', + 'WateringCan', + 'WineBottle', + 'HandTowel'}, + 'CounterTop': {'AlarmClock', + 'Apple', + 'AppleSliced', + 'BaseballBat', + 'BasketBall', + 'Book', + 'Bowl', + 'Box', + 'Bread', + 'BreadSliced', + 'ButterKnife', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'Cup', + 'DishSponge', + 'Egg', + 'Glassbottle', + 'Fork', + 'Kettle', + 'KeyChain', + 'Knife', + 'Ladle', + 'Laptop', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Newspaper', + 'Pan', + 'PaperTowel', + 'Pen', + 'Pencil', + 'PepperShaker', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'RemoteControl', + 'SaltShaker', + 'SoapBar', + 'SoapBottle', + 'Spatula', + 'Spoon', + 'SprayBottle', + 'Statue', + 'TennisRacket', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Tomato', + 'TomatoSliced', + 'Vase', + 'Watch', + 'WateringCan', + 'WineBottle', + 'HandTowel'}, + 'Shelf': {'AlarmClock', + 'Book', + 'Bowl', + 'Box', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'Cup', + 'DishSponge', + 'Glassbottle', + 'Kettle', + 'KeyChain', + 'Mug', + 'Newspaper', + 'PaperTowel', + 'Pen', + 'Pencil', + 'PepperShaker', + 'Plate', + 'Pot', + 'RemoteControl', + 'SaltShaker', + 'SoapBar', + 'SoapBottle', + 'SprayBottle', + 'Statue', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Vase', + 'Watch', + 'WateringCan', + 'WineBottle', + 'HandTowel'}, + 'Drawer': {'Book', + 'ButterKnife', + 'Candle', + 'CD', + 'CellPhone', + 'Cloth', + 'CreditCard', + 'DishSponge', + 'Fork', + 'KeyChain', + 'Knife', + 'Ladle', + 'Newspaper', + 'Pen', + 'Pencil', + 'PepperShaker', + 'RemoteControl', + 'SaltShaker', + 'SoapBar', + 'SoapBottle', + 'Spatula', + 'Spoon', + 'SprayBottle', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Watch', + 'WateringCan', + 'HandTowel'}, + 'GarbageCan': {'Apple', + 'AppleSliced', + 'Bread', + 'BreadSliced', + 'CD', + 'Cloth', + 'DishSponge', + 'Egg', + 'Lettuce', + 'LettuceSliced', + 'Newspaper', + 'PaperTowel', + 'Pen', + 'Pencil', + 'Potato', + 'PotatoSliced', + 'SoapBar', + 'SoapBottle', + 'SprayBottle', + 'TissueBox', + 'ToiletPaper', + 'ToiletPaperRoll', + 'Tomato', + 'TomatoSliced', + 'WineBottle', + 'HandTowel'}, + 'Safe': {'CD', + 'CellPhone', + 'CreditCard', + 'KeyChain', + 'Statue', + 'Vase', + 'Watch'}, + 'TVStand': {'TissueBox'}, + 'Toaster': {'BreadSliced'}, +} +VAL_RECEPTACLE_OBJECTS['DiningTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] +VAL_RECEPTACLE_OBJECTS['CoffeeTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] +VAL_RECEPTACLE_OBJECTS['SideTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] +del VAL_RECEPTACLE_OBJECTS['TableTop'] + +NON_RECEPTACLES_SET = (OBJECTS_SET - set(VAL_RECEPTACLE_OBJECTS.keys())) | set(MOVABLE_RECEPTACLES) + +VAL_ACTION_OBJECTS = { + 'Heatable': {'Apple', + 'AppleSliced', + 'Bread', + 'BreadSliced', + 'Cup', + 'Egg', + 'Mug', + 'Plate', + 'Potato', + 'PotatoSliced', + 'Tomato', + 'TomatoSliced'}, + 'Coolable': {'Apple', + 'AppleSliced', + 'Bowl', + 'Bread', + 'BreadSliced', + 'Cup', + 'Egg', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Pan', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'Tomato', + 'TomatoSliced', + 'WineBottle'}, + 'Cleanable': {'Apple', + 'AppleSliced', + 'Bowl', + 'ButterKnife', + 'Cloth', + 'Cup', + 'DishSponge', + 'Egg', + 'Fork', + 'Kettle', + 'Knife', + 'Ladle', + 'Lettuce', + 'LettuceSliced', + 'Mug', + 'Pan', + 'Plate', + 'Pot', + 'Potato', + 'PotatoSliced', + 'SoapBar', + 'Spatula', + 'Spoon', + 'Tomato', + 'TomatoSliced'}, + 'Toggleable': {'DeskLamp', + 'FloorLamp'}, + 'Sliceable': {'Apple', + 'Bread', + 'Egg', + 'Lettuce', + 'Potato', + 'Tomato'} +} + +# object parents +OBJ_PARENTS = {obj: obj for obj in OBJECTS} +OBJ_PARENTS['AppleSliced'] = 'Apple' +OBJ_PARENTS['BreadSliced'] = 'Bread' +OBJ_PARENTS['LettuceSliced'] = 'Lettuce' +OBJ_PARENTS['PotatoSliced'] = 'Potato' +OBJ_PARENTS['TomatoSliced'] = 'Tomato' + +# force a different horizon view for objects of (type, location). If the location is None, force this horizon for all +# objects of that type. +FORCED_HORIZON_OBJS = { + ('FloorLamp', None): 0, + ('Fridge', 18): 30, + ('Toilet', None): 15, +} + +# openable objects with fixed states for transport. +FORCED_OPEN_STATE_ON_PICKUP = { + 'Laptop': False, +} + +# list of openable classes. +OPENABLE_CLASS_LIST = ['Fridge', 'Cabinet', 'Microwave', 'Drawer', 'Safe', 'Box'] +OPENABLE_CLASS_SET = set(OPENABLE_CLASS_LIST) + +######################################################################################################################## \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/goal_library.py b/easi/tasks/ebalfred/vendor/gen/goal_library.py new file mode 100644 index 0000000..79f4e46 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/goal_library.py @@ -0,0 +1,682 @@ +######################################### +# Common: +# {obj} - ObjectStr +# {recep} - RecepStr +# usage: .format(obj=constants.OBJECTS[self.object_target], recep=constants.OBJECTS[self.parent_target]) + +# NOTE: order of and/or conditions matters +######################################### + +gdict = {} + +############################################### +# PHASE 1: basic skills +############################################### + + +# basic pick and place (e.g: "put the apple in the microwave") +gdict["pick_and_place_simple"] = \ +{ + 'pddl' : + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object) + (and + (inReceptacle ?o ?r) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a {obj} in {recep}', + 'put some {obj} on {recep}'] +} + + +############################################### +# PHASE 2: state changes and quantifiers +############################################### + +# pick and place object, but clean the object in the sink first +gdict["pick_clean_then_place_in_recep"] = \ +{ + 'pddl' : + ''' + (:goal + (and + (forall (?re # receptacle) + (not (opened ?re)) + ) + (exists (?r # receptacle) + (exists (?o # object) + (and + (cleanable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isClean ?o) + (inReceptacle ?o ?r) + ) + ) + ) + ) + ) + ) + ''', + 'templates': ['put a clean {obj} in {recep}', + 'clean some {obj} and put it in {recep}'] + + +} + + +# pick and place object, but heat the object in the microwave first +gdict["pick_heat_then_place_in_recep"] = \ +{ + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object) + (and + (heatable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isHot ?o) + (inReceptacle ?o ?r) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a hot {obj} in {recep}', + 'heat some {obj} and put it in {recep}'] +} + + +# pick and place object, but cool the object (if it's not already cold) in the fridge first +gdict["pick_cool_then_place_in_recep"] = \ +{ + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object) + (and + (coolable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isCool ?o) + (inReceptacle ?o ?r) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a cool {obj} in {recep}', + 'cool some {obj} and put it in {recep}'] +} + + +# pick two instances of an object and place them in a receptacle (e.g: "pick two apples and put them in the sink") +gdict["pick_two_obj_and_place"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o1 # object) + (and + (objectType ?o1 {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o1 ?r) + (exists (?o2 # object) + (and + (not (= ?o1 ?o2)) + (objectType ?o2 {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o2 ?r) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put two {obj} in {recep}', + 'find two {obj} and put them in {recep}'] + } + + + +# toggle the state of a toggleable object (e.g: "toggle the lightswitch") +gdict["look_at_obj_in_light"] = \ +{ + 'pddl': + ''' + (:goal + (and + (exists (?ot # object + ?a # agent + ?l # location) + (and + (objectType ?ot {toggle}Type) + (toggleable ?ot) + (isToggled ?ot) + (objectAtLocation ?ot ?l) + (atLocation ?a ?l) + ) + ) + (exists (?o # object + ?a # agent) + (and + (objectType ?o {obj}Type) + (holds ?a ?o) + ) + ) + ) + ) + ) + ''', + 'templates': ['look at {obj} under the {toggle}', + 'examine the {obj} with the {toggle}'] +} + +# pick and place with a movable receptacle (e.g: "put a apple in a bowl inside the microwave") +gdict["pick_and_place_with_movable_recep"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (and + (receptacleType ?r {recep}Type) + (exists (?o # object) + (and + (objectType ?o {obj}Type) + (exists (?mo # object) + (and + (objectType ?mo {mrecep}Type) + (isReceptacleObject ?mo) + (inReceptacleObject ?o ?mo) + (inReceptacle ?mo ?r) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put {obj} in a {mrecep} and then put them in {recep}', + 'put a {mrecep} of {obj} in {recep}', + 'put {obj} {mrecep} in {recep}'] + } + + +############################################### +# PHASE 3 long horizon tasks (in development) +############################################### + + +# pick, slice, and place object, but clean the object in the sink first +gdict["pick_clean_then_place_in_recep_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (forall (?re # receptacle) + (not (opened ?re)) + ) + (exists (?r # receptacle) + (exists (?o # object) + (and + (sliceable ?o) + (isSliced ?o) + (cleanable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isClean ?o) + (inReceptacle ?o ?r) + ) + ) + ) + ) + ) + ) + ''', + 'templates': ['put a clean slice of {obj} in {recep}', + 'clean some sliced {obj} and put it in {recep}'] + + } + +# pick, slice, and place object, but heat the object in the microwave first +gdict["pick_heat_then_place_in_recep_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object) + (and + (sliceable ?o) + (isSliced ?o) + (heatable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isHot ?o) + (inReceptacle ?o ?r) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a hot slice of {obj} in {recep}', + 'heat some sliced {obj} and put it in {recep}'] + } + +# pick, slice, and place object, but cool the object (if it's not already cold) in the fridge first +gdict["pick_cool_then_place_in_recep_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object) + (and + (sliceable ?o) + (isSliced ?o) + (coolable ?o) + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (isCool ?o) + (inReceptacle ?o ?r) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a cool slice of {obj} in {recep}', + 'cool some sliced {obj} and put it in {recep}'] + } + +# pick two instances of a sliced object and place them in a receptacle (e.g: "pick two apples and put them in the sink") +gdict["pick_two_obj_and_place_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o1 # object) + (and + (sliceable ?o1) + (isSliced ?o1) + (objectType ?o1 {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o1 ?r) + (exists (?o2 # object) + (and + (not (= ?o1 ?o2)) + + (sliceable ?o2) + (isSliced ?o2) + (objectType ?o2 {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o2 ?r) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put two sliced {obj} in {recep}', + 'find two sliced {obj} and put them in {recep}'] + } + +# toggle the state of a toggleable object (e.g: "toggle the lightswitch") while holding another, sliced one. +gdict["look_at_obj_in_light_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?ot # object + ?a # agent + ?l # location) + (and + (sliceable ?o) + (isSliced ?o) + (objectType ?ot {toggle}Type) + (toggleable ?ot) + (isToggled ?ot) + (objectAtLocation ?ot ?l) + (atLocation ?a ?l) + ) + ) + (exists (?o # object + ?a # agent) + (and + (objectType ?o {obj}Type) + (holds ?a ?o) + ) + ) + ) + ) + ) + ''', + 'templates': ['look at sliced {obj} under the {toggle}', + 'examine the sliced {obj} with the {toggle}'] + } + +# pick, slice, and place with a movable receptacle (e.g: "put a apple in a bowl inside the microwave") +gdict["pick_and_place_with_movable_recep_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (and + (receptacleType ?r {recep}Type) + (exists (?o # object) + (and + (objectType ?o {obj}Type) + (exists (?mo # object) + (and + (sliceable ?o) + (isSliced ?o) + (objectType ?mo {mrecep}Type) + (isReceptacleObject ?mo) + (inReceptacleObject ?o ?mo) + (inReceptacle ?mo ?r) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put sliced {obj} in a {mrecep} and then put them in {recep}', + 'put a {mrecep} of sliced {obj} in {recep}', + 'put sliced {obj} {mrecep} in {recep}'] + } + +# pick, slice, and place. +gdict["pick_and_place_simple_slice"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o # object + ?ko # object) + (and + (sliceable ?o) + (isSliced ?o) + (objectType ?o {obj}Type) + (inReceptacle ?o ?r) + (receptacleType ?r {recep}Type) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['slice {obj} and put in {recep}', + 'put sliced {obj} in {recep}'] + } + + +# put all objects of a type inside in one receptacle (e.g: "put all the mugs in the microwave") +gdict["place_all_obj_type_into_recep"] = \ +{ + 'pddl': + ''' + (:goal + (and + (forall (?re # receptacle) + (not (opened ?re)) + ) + (exists (?r # receptacle) + (forall (?o # object) + (or + (and + (objectType ?o {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o ?r) + ) + (or + (not (objectType ?o {obj}Type)) + ) + ) + ) + ) + ) + ) + ) + ''', + 'templates': ['put all {obj}s in {recep}', + 'find all {obj}s and put them in {recep}'] +} + + +# pick three instances of an object and place them in a receptacle (e.g: "pick two apples and put them in the sink") +# NOTE: doesn't work +gdict["pick_three_obj_and_place"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (exists (?o1 # object) + (and + (objectType ?o1 {obj}Type) + (receptacleType ?r {recep}Type) + (inReceptacle ?o1 ?r) + + (exists (?o2 # object) + (and + (not (= ?o1 ?o2)) + (objectType ?o2 {obj}Type) + ;(receptacleType ?r {recep}Type) + (inReceptacle ?o2 ?r) + (exists (?o3 # object) + (and + (not (= ?o1 ?o3)) + (not (= ?o2 ?o3)) + (objectType ?o3 {obj}Type) + ;(receptacleType ?r {recep}Type) + (inReceptacle ?o3 ?r) + ) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put three {obj} in {recep}', + 'find three {obj} and put them in {recep}'] + } + + + +gdict["pick_heat_and_place_with_movable_recep"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (and + (receptacleType ?r {recep}Type) + (exists (?o # object) + (and + (objectType ?o {obj}Type) + (heatable ?o) + (isHot ?o) + (exists (?mo # object) + (and + (objectType ?mo {mrecep}Type) + (isReceptacleObject ?mo) + (inReceptacleObject ?o ?mo) + (inReceptacle ?mo ?r) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a hot {mrecep} of {obj} in {recep}'] + } + + +gdict["pick_cool_and_place_with_movable_recep"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (and + (receptacleType ?r {recep}Type) + (exists (?o # object) + (and + (objectType ?o {obj}Type) + (coolable ?o) + (isCool ?o) + (exists (?mo # object) + (and + (objectType ?mo {mrecep}Type) + (isReceptacleObject ?mo) + (inReceptacleObject ?o ?mo) + (inReceptacle ?mo ?r) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a cold {mrecep} of {obj} in {recep}'] + } + + +gdict["pick_clean_and_place_with_movable_recep"] = \ + { + 'pddl': + ''' + (:goal + (and + (exists (?r # receptacle) + (and + (receptacleType ?r {recep}Type) + (exists (?o # object) + (and + (objectType ?o {obj}Type) + (cleanable ?o) + (isClean ?o) + (exists (?mo # object) + (and + (objectType ?mo {mrecep}Type) + (isReceptacleObject ?mo) + (inReceptacleObject ?o ?mo) + (inReceptacle ?mo ?r) + ) + ) + ) + ) + ) + ) + (forall (?re # receptacle) + (not (opened ?re)) + ) + ) + ) + ) + ''', + 'templates': ['put a cold {mrecep} of {obj} in {recep}'] + } \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/graph/__init__.py b/easi/tasks/ebalfred/vendor/gen/graph/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/gen/graph/graph_obj.py b/easi/tasks/ebalfred/vendor/gen/graph/graph_obj.py new file mode 100644 index 0000000..09caa76 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/graph/graph_obj.py @@ -0,0 +1,426 @@ +import os +import random +import time + +import networkx as nx +import numpy as np + +import easi.tasks.ebalfred.vendor.gen.constants as constants +from easi.tasks.ebalfred.vendor.gen.utils import game_util + +MAX_WEIGHT_IN_GRAPH = 1e5 +PRED_WEIGHT_THRESH = 10 +EPSILON = 1e-4 + +# Direction: 0: north, 1: east, 2: south, 3: west + + +class Graph(object): + def __init__(self, use_gt=False, construct_graph=True, scene_id=None, debug=False): + t_start = time.time() + + self.construct_graph = construct_graph + ''' + event = env.step({'action': 'GetReachablePositions'}) + new_reachable_positions = event.metadata['reachablePositions'] + points = [] + for point in new_reachable_positions: + xx = int(point['x'] / constants.AGENT_STEP_SIZE) + yy = int(point['z'] / constants.AGENT_STEP_SIZE) + points.append([xx, yy]) + + self.points = np.array(points, dtype=np.int32) + self.points = self.points[np.lexsort(self.points.T)] + ''' + + self.scene_id = scene_id + self.points = np.load(os.path.join( + os.path.dirname(__file__), + os.pardir, + 'layouts', + 'FloorPlan%s-layout.npy' % self.scene_id)) + self.points /= constants.AGENT_STEP_SIZE + self.points = np.round(self.points).astype(np.int32) + self.xMin = self.points[:, 0].min() - constants.SCENE_PADDING * 2 + self.yMin = self.points[:, 1].min() - constants.SCENE_PADDING * 2 + self.xMax = self.points[:, 0].max() + constants.SCENE_PADDING * 2 + self.yMax = self.points[:, 1].max() + constants.SCENE_PADDING * 2 + self.memory = np.zeros((self.yMax - self.yMin + 1, self.xMax - self.xMin + 1), dtype=np.float32) + self.gt_graph = None + self.shortest_paths = {} + self.shortest_paths_unweighted = {} + self.use_gt = use_gt + self.impossible_spots = set() + self.updated_weights = {} + self.prev_navigable_locations = None + + if self.use_gt: + self.memory[:] = MAX_WEIGHT_IN_GRAPH + self.memory[self.points[:, 1] - self.yMin, self.points[:, 0] - self.xMin] = 1 + EPSILON + else: + self.memory[:] = 1 + self.memory[:, :int(constants.SCENE_PADDING * 1.5)] = MAX_WEIGHT_IN_GRAPH + self.memory[:int(constants.SCENE_PADDING * 1.5), :] = MAX_WEIGHT_IN_GRAPH + self.memory[:, -int(constants.SCENE_PADDING * 1.5):] = MAX_WEIGHT_IN_GRAPH + self.memory[-int(constants.SCENE_PADDING * 1.5):, :] = MAX_WEIGHT_IN_GRAPH + + if self.gt_graph is None: + self.gt_graph = nx.DiGraph() + if self.construct_graph: + for yy in np.arange(self.yMin, self.yMax + 1): + for xx in np.arange(self.xMin, self.xMax + 1): + weight = self.memory[yy - self.yMin, xx - self.xMin] + for direction in range(4): + node = (xx, yy, direction) + back_direction = (direction + 2) % 4 + back_node = (xx, yy, back_direction) + self.gt_graph.add_edge(node, (xx, yy, (direction + 1) % 4), weight=1) + self.gt_graph.add_edge(node, (xx, yy, (direction - 1) % 4), weight=1) + forward_node = None + if direction == 0 and yy != self.yMax: + forward_node = (xx, yy + 1, back_direction) + elif direction == 1 and xx != self.xMax: + forward_node = (xx + 1, yy, back_direction) + elif direction == 2 and yy != self.yMin: + forward_node = (xx, yy - 1, back_direction) + elif direction == 3 and xx != self.xMin: + forward_node = (xx - 1, yy, back_direction) + if forward_node is not None: + self.gt_graph.add_edge(forward_node, back_node, weight=weight) + + self.initial_memory = self.memory.copy() + self.debug = debug + if self.debug: + print('Graph construction time %.3f' % (time.time() - t_start)) + + def clear(self): + self.shortest_paths = {} + self.shortest_paths_unweighted = {} + self.impossible_spots = set() + self.prev_navigable_locations = None + + if self.use_gt: + self.memory[:] = self.initial_memory + else: + self.memory[:] = 1 + self.memory[:, :int(constants.SCENE_PADDING * 1.5)] = MAX_WEIGHT_IN_GRAPH + self.memory[:int(constants.SCENE_PADDING * 1.5), :] = MAX_WEIGHT_IN_GRAPH + self.memory[:, -int(constants.SCENE_PADDING * 1.5):] = MAX_WEIGHT_IN_GRAPH + self.memory[-int(constants.SCENE_PADDING * 1.5):, :] = MAX_WEIGHT_IN_GRAPH + + if self.construct_graph: + for (nodea, nodeb), original_weight in self.updated_weights.items(): + self.gt_graph[nodea][nodeb]['weight'] = original_weight + self.updated_weights = {} + + @property + def image(self): + return self.memory[:, :].astype(np.uint8) + + def check_graph_memory_correspondence(self): + # graph sanity check + if self.construct_graph: + for yy in np.arange(self.yMin, self.yMax + 1): + for xx in np.arange(self.xMin, self.xMax + 1): + for direction in range(4): + back_direction = (direction + 2) % 4 + back_node = (xx, yy, back_direction) + if direction == 0 and yy != self.yMax: + assert(abs(self.gt_graph[(xx, yy + 1, back_direction)][back_node]['weight'] - + self.memory[int(yy - self.yMin), int(xx - self.xMin)]) < 0.0001) + elif direction == 1 and xx != self.xMax: + assert(abs(self.gt_graph[(xx + 1, yy, back_direction)][back_node]['weight'] - + self.memory[int(yy - self.yMin), int(xx - self.xMin)]) < 0.0001) + elif direction == 2 and yy != self.yMin: + assert(abs(self.gt_graph[(xx, yy - 1, back_direction)][back_node]['weight'] - + self.memory[int(yy - self.yMin), int(xx - self.xMin)]) < 0.0001) + elif direction == 3 and xx != self.xMin: + assert(abs(self.gt_graph[(xx - 1, yy, back_direction)][back_node]['weight'] - + self.memory[int(yy - self.yMin), int(xx - self.xMin)]) < 0.0001) + print('\t\t\tgraph tested successfully') + + def update_graph(self, graph_patch, pose): + graph_patch, curr_val = graph_patch + curr_val = np.array(curr_val) + # Rotate the array to get its global coordinate frame orientation. + rotation = int(pose[2]) + assert(rotation in {0, 1, 2, 3}), 'rotation was %s' % str(rotation) + + if rotation != 0: + graph_patch = np.rot90(graph_patch, rotation) + # Shift offsets to global coordinate frame. + if rotation == 0: + x_min = pose[0] - int(constants.STEPS_AHEAD / 2) + y_min = pose[1] + 1 + elif rotation == 1: + x_min = pose[0] + 1 + y_min = pose[1] - int(constants.STEPS_AHEAD / 2) + elif rotation == 2: + x_min = pose[0] - int(constants.STEPS_AHEAD / 2) + y_min = pose[1] - constants.STEPS_AHEAD + elif rotation == 3: + x_min = pose[0] - constants.STEPS_AHEAD + y_min = pose[1] - int(constants.STEPS_AHEAD / 2) + else: + raise Exception('Invalid pose direction') + if self.construct_graph: + for yi, yy in enumerate(range(y_min, y_min + constants.STEPS_AHEAD)): + for xi, xx in enumerate(range(x_min, x_min + constants.STEPS_AHEAD)): + self.update_weight(xx, yy, graph_patch[yi, xi, 0]) + self.update_weight(pose[0], pose[1], curr_val[0]) + + def get_graph_patch(self, pose): + rotation = int(pose[2]) + assert(rotation in {0, 1, 2, 3}) + + if rotation == 0: + x_min = pose[0] - int(constants.STEPS_AHEAD / 2) + y_min = pose[1] + 1 + elif rotation == 1: + x_min = pose[0] + 1 + y_min = pose[1] - int(constants.STEPS_AHEAD / 2) + elif rotation == 2: + x_min = pose[0] - int(constants.STEPS_AHEAD / 2) + y_min = pose[1] - constants.STEPS_AHEAD + elif rotation == 3: + x_min = pose[0] - constants.STEPS_AHEAD + y_min = pose[1] - int(constants.STEPS_AHEAD / 2) + else: + raise Exception('Invalid pose direction') + x_min -= self.xMin + y_min -= self.yMin + + graph_patch = self.memory[y_min:y_min + constants.STEPS_AHEAD, + x_min:x_min + constants.STEPS_AHEAD].copy() + + if rotation != 0: + graph_patch = np.rot90(graph_patch, -rotation) + + return graph_patch, self.memory[pose[1] - self.yMin, pose[0] - self.xMin].copy() + + def add_impossible_spot(self, spot): + self.update_weight(spot[0], spot[1], MAX_WEIGHT_IN_GRAPH) + self.impossible_spots.add(spot) + + def update_weight(self, xx, yy, weight): + if (xx, yy) not in self.impossible_spots: + if self.construct_graph: + for direction in range(4): + node = (xx, yy, direction) + self.update_edge(node, weight) + self.memory[yy - self.yMin, xx - self.xMin] = weight + self.shortest_paths = {} + + def update_edge(self, pose, weight): + rotation = int(pose[2]) + assert(rotation in {0, 1, 2, 3}) + + (xx, yy, direction) = pose + back_direction = (direction + 2) % 4 + back_pose = (xx, yy, back_direction) + if direction == 0 and yy != self.yMax: + forward_pose = (xx, yy + 1, back_direction) + elif direction == 1 and xx != self.xMax: + forward_pose = (xx + 1, yy, back_direction) + elif direction == 2 and yy != self.yMin: + forward_pose = (xx, yy - 1, back_direction) + elif direction == 3 and xx != self.xMin: + forward_pose = (xx - 1, yy, back_direction) + else: + raise NotImplementedError('Unknown direction') + if (forward_pose, back_pose) not in self.updated_weights: + self.updated_weights[(forward_pose, back_pose)] = self.gt_graph[forward_pose][back_pose]['weight'] + self.gt_graph[forward_pose][back_pose]['weight'] = weight + + def get_shortest_path(self, pose, goal_pose): + assert(pose[2] in {0, 1, 2, 3}) + assert(goal_pose[2] in {0, 1, 2, 3}) + + # Store horizons for possible final look correction. + curr_horizon = int(pose[3]) + goal_horizon = int(goal_pose[3]) + + pose = tuple(int(pp) for pp in pose[:3]) + goal_pose = tuple(int(pp) for pp in goal_pose[:3]) + + try: + assert(self.construct_graph), 'Graph was not constructed, cannot get shortest path.' + assert(pose in self.gt_graph), 'start point not in graph' + assert(goal_pose in self.gt_graph), 'start point not in graph' + except Exception as ex: + print('pose', pose, 'goal_pose', goal_pose) + raise ex + + if (pose, goal_pose) not in self.shortest_paths: + path = nx.astar_path(self.gt_graph, pose, goal_pose, + heuristic=lambda nodea, nodeb: (abs(nodea[0] - nodeb[0]) + abs(nodea[1] - nodeb[1]) + + abs(nodea[2] - nodeb[2])), + weight='weight') + for ii, pp in enumerate(path): + self.shortest_paths[(pp, goal_pose)] = path[ii:] + path = self.shortest_paths[(pose, goal_pose)] + max_point = 1 + for ii in range(len(path) - 1): + weight = self.gt_graph[path[ii]][path[ii + 1]]['weight'] + if path[ii][:2] != path[ii + 1][:2]: + if abs(self.memory[path[ii + 1][1] - self.yMin, path[ii + 1][0] - self.xMin] - weight) > 0.001: + print(self.memory[path[ii + 1][1] - self.yMin, path[ii + 1][0] - self.xMin], weight) + raise AssertionError('weights do not match') + if weight >= PRED_WEIGHT_THRESH: + break + max_point += 1 + path = path[:max_point] + + actions = [Graph.get_plan_move(path[ii], path[ii + 1]) for ii in range(len(path) - 1)] + Graph.horizon_adjust(actions, path, curr_horizon, goal_horizon) + + return actions, path + + def get_shortest_path_unweighted(self, pose, goal_pose): + assert(pose[2] in {0, 1, 2, 3}) + assert(goal_pose[2] in {0, 1, 2, 3}) + curr_horizon = int(pose[3]) + goal_horizon = int(goal_pose[3]) + pose = tuple(int(pp) for pp in pose[:3]) + goal_pose = tuple(int(pp) for pp in goal_pose[:3]) + + try: + assert(self.construct_graph), 'Graph was not constructed, cannot get shortest path.' + assert(pose in self.gt_graph), 'start point not in graph' + assert(goal_pose in self.gt_graph), 'start point not in graph' + except Exception as ex: + print('pose', pose, 'goal_pose', goal_pose) + raise ex + + if (pose, goal_pose) not in self.shortest_paths_unweighted: + # TODO: swap this out for astar (might be get_shortest_path tho) and update heuristic to account for + # TODO: actual number of turns. + path = nx.shortest_path(self.gt_graph, pose, goal_pose) + for ii, pp in enumerate(path): + self.shortest_paths_unweighted[(pp, goal_pose)] = path[ii:] + path = self.shortest_paths_unweighted[(pose, goal_pose)] + + actions = [Graph.get_plan_move(path[ii], path[ii + 1]) for ii in range(len(path) - 1)] + Graph.horizon_adjust(actions, path, curr_horizon, goal_horizon) + return actions, path + + def update_map(self, env): + event = env.step({'action': 'GetReachablePositions'}) + new_reachable_positions = event.metadata['reachablePositions'] + new_memory = np.full_like(self.memory[:, :], MAX_WEIGHT_IN_GRAPH) + if self.construct_graph: + for point in new_reachable_positions: + xx = int(point['x'] / constants.AGENT_STEP_SIZE) + yy = int(point['z'] / constants.AGENT_STEP_SIZE) + new_memory[yy - self.yMin, xx - self.xMin] = 1 + EPSILON + changed_locations = np.where(np.logical_xor(self.memory[:, :] == MAX_WEIGHT_IN_GRAPH, new_memory == MAX_WEIGHT_IN_GRAPH)) + for location in zip(*changed_locations): + self.update_weight(location[1] + self.xMin, location[0] + self.yMin, 1 + EPSILON) + + def navigate_to_goal(self, game_state, start_pose, end_pose): + # Look down + + self.update_map(game_state.env) + + start_angle = start_pose[3] + if start_angle > 180: + start_angle -= 360 + if start_angle != 45: # pitch angle + # Perform initial tilt to get to 45 degrees. + tilt_pose = [pp for pp in start_pose] + tilt_pose[3] = 45 + tilt_actions, _ = self.get_shortest_path(start_pose, tilt_pose) + for action in tilt_actions: + game_state.step(action) + start_pose = tuple(tilt_pose) + + actions, path = self.get_shortest_path(start_pose, end_pose) + while len(actions) > 0: + for ii, (action, pose) in enumerate(zip(actions, path)): + game_state.step(action) + event = game_state.env.last_event + last_action_success = event.metadata['lastActionSuccess'] + + if not last_action_success: + # Can't traverse here, make sure the weight is correct. + if action['action'].startswith('Look') or action['action'].startswith('Rotate'): + raise Exception('Look action failed %s' % event.metadata['errorMessage']) + self.add_impossible_spot(path[ii + 1]) + break + pose = game_util.get_pose(event) + actions, path = self.get_shortest_path(pose, end_pose) + print('nav done') + + @staticmethod + def get_plan_move(pose0, pose1): + if (pose0[2] + 1) % 4 == pose1[2]: + action = {'action': 'RotateRight'} + elif (pose0[2] - 1) % 4 == pose1[2]: + action = {'action': 'RotateLeft'} + else: + action = {'action': 'MoveAhead', 'moveMagnitude': constants.AGENT_STEP_SIZE} + return action + + @staticmethod + def horizon_adjust(actions, path, hor0, hor1): + if hor0 < hor1: + for _ in range((hor1 - hor0) // constants.AGENT_HORIZON_ADJ): + actions.append({'action': 'LookDown'}) + path.append(path[-1]) + elif hor0 > hor1: + for _ in range((hor0 - hor1) // constants.AGENT_HORIZON_ADJ): + actions.append({'action': 'LookUp',}) + path.append(path[-1]) + + +if __name__ == '__main__': + # Test graphs + env = game_util.create_env() + scenes = sorted(constants.TRAIN_SCENE_NUMBERS + constants.TEST_SCENE_NUMBERS) + while True: + scene_id = random.choice(scenes) + graph = Graph(use_gt=True, construct_graph=True, scene_id=scene_id) + game_util.reset(env, scene_id, + render_image=False, + render_depth_image=False, + render_class_image=False, + render_object_image=False) + num_points = len(graph.points) + point1 = random.randint(0, num_points - 1) + point2 = point1 + while point2 == point1: + point2 = random.randint(0, num_points) + point1 = graph.points[point1] + point2 = graph.points[point2] + start_pose = (point1[0], point1[1], random.randint(0, 3), 0) + end_pose = (point2[0], point2[1], random.randint(0, 3), 0) + agent_height = env.last_event.metadata['agent']['position']['y'] + action = {'action': 'TeleportFull', + 'x': start_pose[0] * constants.AGENT_STEP_SIZE, + 'y': agent_height, + 'z': start_pose[1] * constants.AGENT_STEP_SIZE, + 'rotateOnTeleport': True, + 'rotation': start_pose[2], + 'horizon': start_pose[3], + } + env.step(action) + actions, path = graph.get_shortest_path(start_pose, end_pose) + while len(actions) > 0: + for ii, (action, pose) in enumerate(zip(actions, path)): + env.step(action) + event = env.last_event + last_action_success = event.metadata['lastActionSuccess'] + + if not last_action_success: + # Can't traverse here, make sure the weight is correct. + if action['action'].startswith('Look') or action['action'].startswith('Rotate'): + raise Exception('Look action failed %s' % event.metadata['errorMessage']) + graph.add_impossible_spot(path[ii + 1]) + break + pose = game_util.get_pose(event) + actions, path = graph.get_shortest_path(pose, end_pose) + if end_pose == pose: + print('made it') + else: + print('could not make it :(') + diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan1-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan1-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..dd9b203ec9adbebf851b7270d91abeedb1c9ab6d GIT binary patch literal 2192 zcmbW#p-#h46b9g8d5XG1GQ$)Ql1%;o6KCBPx!}{%VT-ot2~y+@>m|rtE>I* zvvxF1XZil;CeC61CpU2(w~3wSy7Sn1bv)<1-m%Z}Sw73>w(3suUCL*9ERW@} z=e-Bdv*+3K?DT-JeJ4uJlB7Bk=uVa;kxSHhx_~g!Sz^O*PHcVb8xzv-@f^| ziFw>-el|bX$^GWoM)#KORYBASW;QIsGS#8dD<^&|KZI(GDs zAwvdA@A-;)M!ej9zK;L%r;dNWegEd&hX>_H`8k|zcAvJxi+*@{{(M;V!}-Pb`*!{H ze?NWX=)?MO7jv*atPjh*bHuZG*gS{mVIDRQn}^NA z=HZAhET84?Q$EXQ`7EF1@f_bj%Ue<&%VT*gkL9sEmghP0{jxlk$MV?s%ko)1%lF*M zXZb9j<+FU2&+=LRoW5_C&+=J5%VT*g&vp8;Jnklc)m7g8v;QQ|8F|jjV|m<7^^+`* z-Iwz!?<$^ac`T3Ru{^%}f5!d1KkR!?u=&_L*J&O$51WV0!{%Z0uzA>fggtlcxnT3N z`Ij_5o1e|k=4bP>`Puwze%@c!33*BOySA?{>&yDGzWdad^<{loU)GoPWqny+-bX)P zlJ&K(FVE?EeeLUeNPSsf)|d5VeOX^V#yqSq>&r{JUSIqAvc9Y@>w8RnSzp$d^<{lo zUp~hCd`Q;UzP_w4>&yDGzN~K<>yGy!>&yCbJJrvzzN|0n%ZKR8`m(;PFYC+ta!glP z-)5{k`m(;)VcXLtoaHyQyBs W`m*`hd~7~8AJ@B=!gKu2+VKxROte`5 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-objects.json new file mode 100644 index 0000000..2ce8bb3 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-objects.json @@ -0,0 +1,47 @@ +[ + "Shelf", + "Statue", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "HousePlant", + "CoffeeMachine", + "Knife", + "Spatula", + "CreditCard", + "PepperShaker", + "Glassbottle", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "Vase", + "PaperTowelRoll", + "Tomato", + "ButterKnife", + "Cabinet", + "CellPhone", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-openable.json new file mode 100644 index 0000000..0f850bf --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan10-openable.json @@ -0,0 +1,98 @@ +{ + "Cabinet|+00.65|+00.48|+00.24": [ + -0.25, + 0.75, + 90, + 30 + ], + "Cabinet|+00.65|+00.48|-01.72": [ + 0.0, + -2.0, + 90, + 30 + ], + "Cabinet|+00.95|+02.16|-02.38": [ + 0.25, + -2.0, + 90, + -30 + ], + "CounterTop|+00.93|+00.95|-00.21": [ + 0.25, + -0.25, + 90, + 30 + ], + "CounterTop|+00.93|+00.95|-02.05": [ + 0.25, + -2.0, + 90, + 30 + ], + "CounterTop|-01.24|+00.97|-00.64": [ + -0.75, + -2.0, + 0, + 30 + ], + "Drawer|+00.64|+00.27|-00.65": [ + 0.0, + -1.5, + 0, + 30 + ], + "Drawer|+00.64|+00.55|-00.65": [ + 0.0, + -1.5, + 0, + 30 + ], + "Drawer|+00.64|+00.76|-00.65": [ + 0.0, + -1.0, + 90, + 30 + ], + "Fridge|+00.97|+00.00|+01.25": [ + 0.0, + 1.25, + 90, + 0 + ], + "GarbageCan|-00.95|+00.00|+00.58": [ + 0.0, + 1.0, + 270, + 30 + ], + "Microwave|+01.04|+01.68|-01.30": [ + 0.25, + -1.25, + 90, + 0 + ], + "Shelf|-01.69|+00.16|+02.72": [ + -1.5, + 1.5, + 0, + 30 + ], + "Shelf|-01.69|+00.54|+02.72": [ + -2.25, + 1.5, + 0, + 30 + ], + "Shelf|-01.69|+00.87|+02.72": [ + -2.25, + 1.75, + 0, + 30 + ], + "Sink|-00.70|+00.93|-00.65|SinkBasin": [ + 0.0, + -0.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..be82fc1e5838430e449b69935c383fcf1ca804b3 GIT binary patch literal 1200 zcmbW#y-LGS7=YoUqgRnF3Y{EOMCj(GxHvdTuqh5=OCm1fRd_-55^@P0J7(z6!NF?s z1p0xCSq{%RoSzr+aeaGrbGMgX(_20%>xU{o&+?1uSw710>8yIGis$=TH7S4QFN>$T z+|JjJ#k}15@Z@xq9UqOd_w2vlLHhmHi*9WH7*}C_8QcVSr={e)X1sg;GI$l-2CsuR z!TX=x`QDj=zZSden_&I+dpE~Xzj^)K-IfyTXZ@_7^|OA~&-%SfKkH}xte^F>dpM5z z&Fg3Vte^F>e%8f?*AFQ9<%W>2{%=iB*>u3F}pVwi({$ag;uY22I T@3-##JoNYX*x&TFzZri62AbDg literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-objects.json new file mode 100644 index 0000000..c4914dc --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-objects.json @@ -0,0 +1,42 @@ +[ + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "PaperTowelRoll", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-openable.json new file mode 100644 index 0000000..0e7c4ba --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan11-openable.json @@ -0,0 +1,134 @@ +{ + "Cabinet|+00.06|+00.40|-01.35": [ + 0.25, + -0.5, + 180, + 30 + ], + "Cabinet|+00.10|+00.40|-01.35": [ + 0.75, + -0.5, + 180, + 30 + ], + "Cabinet|+00.73|+00.40|+00.15": [ + 1.0, + -0.75, + 0, + 30 + ], + "Cabinet|+01.08|+00.40|-01.35": [ + 1.25, + -0.5, + 180, + 30 + ], + "Cabinet|+01.67|+00.40|+00.15": [ + 1.5, + -1.0, + 0, + 30 + ], + "Cabinet|+01.97|+01.69|-01.65": [ + 1.5, + -1.0, + 180, + 0 + ], + "Cabinet|-00.18|+00.40|+00.15": [ + -0.5, + -0.75, + 0, + 30 + ], + "Cabinet|-00.19|+01.69|-01.65": [ + -0.5, + -1.0, + 180, + 0 + ], + "Cabinet|-00.40|+00.40|-01.35": [ + -1.0, + -0.5, + 180, + 30 + ], + "Cabinet|-00.82|+00.40|-01.35": [ + -1.5, + -0.5, + 180, + 30 + ], + "CounterTop|+00.28|+00.95|+00.46": [ + 0.25, + -0.25, + 0, + 30 + ], + "CounterTop|+01.78|+00.95|+00.46": [ + 1.5, + -0.25, + 0, + 30 + ], + "CounterTop|-00.68|+00.95|-01.65": [ + 1.5, + -1.0, + 180, + 30 + ], + "DiningTable|-02.20|+00.99|+00.45": [ + -2.25, + -0.25, + 0, + 30 + ], + "Drawer|+00.02|+00.79|+00.30": [ + -0.25, + -0.5, + 0, + 30 + ], + "Drawer|+00.50|+00.79|+00.30": [ + 0.25, + -0.5, + 0, + 30 + ], + "Drawer|-00.15|+00.79|-01.50": [ + 0.5, + -1.0, + 270, + 30 + ], + "Drawer|-00.59|+00.79|-01.50": [ + -1.25, + -1.0, + 90, + 30 + ], + "Drawer|-01.10|+00.79|-01.50": [ + 0.0, + -0.75, + 270, + 30 + ], + "Fridge|-02.14|+00.00|-01.69": [ + -2.25, + -0.75, + 180, + 0 + ], + "Microwave|-01.04|+00.90|-01.72": [ + -1.0, + -1.0, + 180, + 30 + ], + "Sink|+00.71|+00.82|-01.77|SinkBasin": [ + 0.25, + -1.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..577a1720d1f39616d9835d9ed7fa6b8e8c5fbbc0 GIT binary patch literal 1392 zcmbW!txf|`5QgCcAr)N3x`kvFhM$m7g@a%aD6*m3AP6P91VgwAE~vM#mrz-`q5^@S zu;(!&IcEA!=6h$_eqP^R-Q4Y@xAb1ln(m=3&x-PVeo|INIbXD|ZT)<|XlKoD|FVAS znr**(tY4Zf9~_@n#nE9^d=&qE`|0nkmt!4rT?Os~kJBlc?=M0=@H+4icoWz?s(Y|| zuzRq3@GASUd$4;jpS^sT5A$I@>|T{0^J9L@kL6W)ERW@}Di^D~zC2dV#cE#P-TL-p zb2wJ{A^(r&v3VS;{3hq^$9?W&e$0>galagmU%`+0F+b+V{Fwhc_%T1`$NZQd`#sWh l{KSX(FdvrR4S6h&eV@HNpYp@@V|i>pmY-ywJeHqKe*pRY!GHh& literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-objects.json new file mode 100644 index 0000000..587b914 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-objects.json @@ -0,0 +1,39 @@ +[ + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Chair", + "SinkBasin", + "Apple", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-openable.json new file mode 100644 index 0000000..aebc14f --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan12-openable.json @@ -0,0 +1,152 @@ +{ + "Cabinet|+01.22|+00.39|+00.63": [ + 0.25, + 1.25, + 90, + 30 + ], + "Cabinet|+01.22|+00.39|+02.11": [ + 0.25, + 2.25, + 90, + 30 + ], + "Cabinet|+01.22|+00.55|+00.59": [ + 0.5, + 0.25, + 90, + 30 + ], + "Cabinet|+01.22|+01.39|+00.59": [ + 0.75, + 0.25, + 90, + 30 + ], + "Cabinet|+01.22|+02.01|+00.59": [ + 0.75, + 0.25, + 90, + -30 + ], + "Cabinet|+01.50|+02.11|+01.16": [ + 0.75, + 0.75, + 90, + 0 + ], + "Cabinet|+01.50|+02.11|+01.21": [ + 0.25, + 1.25, + 90, + 0 + ], + "Cabinet|+01.50|+02.11|+02.08": [ + 0.25, + 1.5, + 90, + 0 + ], + "Cabinet|-00.63|+00.39|+00.63": [ + 0.25, + 1.25, + 270, + 30 + ], + "Cabinet|-00.63|+00.39|+02.11": [ + 0.25, + 2.75, + 270, + 30 + ], + "Cabinet|-00.91|+02.05|-00.33": [ + 0.0, + -0.5, + 270, + -30 + ], + "Cabinet|-00.91|+02.11|+00.58": [ + -0.25, + 0.75, + 270, + -30 + ], + "Cabinet|-00.91|+02.11|+01.16": [ + -0.25, + 0.75, + 270, + 0 + ], + "Cabinet|-00.91|+02.11|+01.21": [ + 0.0, + 1.75, + 270, + -30 + ], + "Cabinet|-00.91|+02.11|+02.08": [ + 0.0, + 2.0, + 270, + -30 + ], + "CounterTop|+01.51|+00.97|+02.31": [ + 0.75, + 2.0, + 90, + 30 + ], + "CounterTop|-00.97|+00.97|+00.92": [ + -0.25, + 1.0, + 270, + 30 + ], + "CounterTop|-00.97|+00.97|+02.39": [ + -0.25, + 2.5, + 270, + 30 + ], + "Drawer|+01.37|+00.77|+00.92": [ + 0.5, + 0.75, + 90, + 30 + ], + "Drawer|+01.37|+00.77|+02.39": [ + 0.5, + 2.25, + 90, + 30 + ], + "Drawer|-00.78|+00.77|+00.92": [ + 0.0, + 0.75, + 270, + 30 + ], + "Drawer|-00.78|+00.77|+02.38": [ + 0.0, + 2.25, + 270, + 30 + ], + "Fridge|-01.00|+00.00|+00.12": [ + 0.0, + 0.0, + 270, + 30 + ], + "Microwave|+01.63|+01.48|+01.65": [ + 1.0, + 1.5, + 90, + 0 + ], + "Sink|+01.54|+00.87|+01.64|SinkBasin": [ + 1.0, + 1.25, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..cc2ce2ca7e5f9d84702c2b6cec48945759fa58e9 GIT binary patch literal 2944 zcmbW%ziJdw7{=k_5)R9|?x1Trto34L*{JLLu{qf1>`)2j+ z)5+#&{rBhZR$sU4+n;a0tWMXrezy1O<+6M6eA)f#{_~lo;ki6(pXdAS^CI{>*!@Mg zXZP&>GTgI!c7GM_**&|z4)^Sy-QR?JcF*op`SwCSdm-Vt<*2{}=Z(h>y z=w-dEmvbH8EA3OS@Aa}?*2{WXFY8;3d-`}ezy0pv<`c0kL|HNw#W9^-lMR` z_ShcVV|#3m?L7{AY>(}+J+{a8*xr+{$M)DB+hcodkL^7Tdu)&Gu|2lO_SoKT*kgNa MkL|HNwzpgU0LyeWoB#j- literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-objects.json new file mode 100644 index 0000000..e419edb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-objects.json @@ -0,0 +1,42 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "WineBottle", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pencil", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "Curtains", + "ButterKnife", + "Tomato", + "PaperTowelRoll", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-openable.json new file mode 100644 index 0000000..2eeb42b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan13-openable.json @@ -0,0 +1,188 @@ +{ + "Cabinet|-00.64|+00.39|+04.30": [ + -1.5, + 4.25, + 90, + 30 + ], + "Cabinet|-00.64|+00.39|+05.58": [ + -1.5, + 5.0, + 90, + 30 + ], + "Cabinet|-00.64|+00.39|+05.60": [ + -1.5, + 5.5, + 90, + 30 + ], + "Cabinet|-00.64|+00.39|+06.88": [ + -1.5, + 6.25, + 90, + 30 + ], + "Cabinet|-01.54|+00.39|+02.09": [ + -2.25, + 3.0, + 180, + 30 + ], + "Cabinet|-03.04|+00.39|+05.03": [ + -2.75, + 4.25, + 0, + 30 + ], + "Cabinet|-03.04|+01.94|+05.32": [ + -3.25, + 4.75, + 0, + 0 + ], + "Cabinet|-03.19|+00.39|+02.09": [ + -3.0, + 3.0, + 180, + 30 + ], + "Cabinet|-03.64|+00.39|+05.03": [ + -3.0, + 4.25, + 0, + 30 + ], + "Cabinet|-03.67|+00.39|+05.03": [ + -3.25, + 4.0, + 0, + 30 + ], + "Cabinet|-03.92|+00.40|+02.09": [ + -3.25, + 3.0, + 180, + 30 + ], + "Cabinet|-03.96|+00.39|+02.12": [ + -3.0, + 2.5, + 270, + 30 + ], + "Cabinet|-03.96|+00.39|+02.88": [ + -3.0, + 3.25, + 270, + 30 + ], + "Cabinet|-03.96|+00.39|+04.34": [ + -3.0, + 4.25, + 270, + 30 + ], + "Cabinet|-03.97|+00.39|+02.89": [ + -3.0, + 3.25, + 270, + 30 + ], + "Cabinet|-03.97|+00.39|+03.66": [ + -3.0, + 3.0, + 270, + 30 + ], + "Cabinet|-04.11|+01.94|+05.32": [ + -3.75, + 4.75, + 0, + 0 + ], + "CounterTop|-00.35|+00.96|+05.60": [ + -1.0, + 5.0, + 90, + 30 + ], + "CounterTop|-01.87|+00.96|+01.80": [ + -2.0, + 2.5, + 180, + 30 + ], + "CounterTop|-04.26|+00.96|+04.94": [ + -3.75, + 4.75, + 0, + 30 + ], + "Drawer|-00.51|+00.78|+04.62": [ + -1.0, + 5.25, + 180, + 30 + ], + "Drawer|-00.51|+00.78|+05.27": [ + -1.0, + 6.0, + 180, + 30 + ], + "Drawer|-00.51|+00.78|+05.92": [ + -1.0, + 5.25, + 0, + 30 + ], + "Drawer|-00.51|+00.78|+06.57": [ + -1.0, + 5.75, + 0, + 30 + ], + "Drawer|-01.86|+00.78|+01.96": [ + -1.25, + 2.25, + 270, + 30 + ], + "Drawer|-03.19|+00.78|+05.16": [ + -3.75, + 4.75, + 90, + 30 + ], + "Drawer|-04.09|+00.78|+04.66": [ + -3.75, + 3.5, + 0, + 30 + ], + "Drawer|-04.13|+00.80|+02.50": [ + -3.25, + 2.75, + 270, + 30 + ], + "Fridge|-00.32|00.00|+03.60": [ + -1.25, + 3.75, + 90, + 0 + ], + "Microwave|-02.69|+01.43|+01.69": [ + -2.75, + 2.5, + 180, + 0 + ], + "Sink|-04.19|+00.92|+03.28|SinkBasin": [ + -3.75, + 3.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..e93bad5bcd1987b20e72c45d91a99e147ee780b1 GIT binary patch literal 2016 zcmbW#u};EJ7>41aF$`Wsw`#(I6EP+-xoKP+oD7i?2P38!7voiULEJ(wfswI82L}g{ zp2x(0w9Cm;;Nzv?*_0ecF9u_CZ!{WX8=XIENSGVfVO+K6Rzg`D#g4s7zg=97I7$Fm9V z?^jatK7Fi@^|3zI=X>0^DYkM*%V-)oQUu|2lO_H^50du)&GahHE@ zmw&%Kw#W9k37@z38TQy7+hcod?u3F}pY^kT*3bF}lW*H|9xDI< literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-objects.json new file mode 100644 index 0000000..e001587 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-objects.json @@ -0,0 +1,39 @@ +[ + "Ladle", + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-openable.json new file mode 100644 index 0000000..f5bd74b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan14-openable.json @@ -0,0 +1,56 @@ +{ + "Cabinet|+01.66|+02.05|+00.67": [ + 1.0, + 0.25, + 90, + 0 + ], + "Cabinet|+01.66|+02.05|-00.61": [ + 0.75, + -0.75, + 90, + 0 + ], + "Cabinet|+01.66|+02.06|+00.19": [ + 1.0, + 0.0, + 90, + -30 + ], + "Cabinet|+01.66|+02.06|-00.59": [ + 0.5, + 0.0, + 90, + -30 + ], + "CounterTop|+00.99|+00.95|+01.02": [ + 1.0, + 0.25, + 0, + 30 + ], + "CounterTop|+00.99|+00.95|-01.52": [ + 0.5, + -0.75, + 180, + 30 + ], + "Fridge|-00.53|+00.00|-01.55": [ + -0.5, + -0.5, + 180, + 0 + ], + "Microwave|+01.75|+00.90|-00.84": [ + 1.0, + -0.75, + 90, + 30 + ], + "Sink|+01.10|+00.91|-01.60|SinkBasin": [ + 1.0, + -0.75, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..b3de1c39d40a1b8eca18e1a0987b75c4433517fe GIT binary patch literal 1664 zcmbW!u};EJ6oBC?A&ucFx>XY<2cyQsPHq|(2PZ?M#KDLu#>My)K9D>DkHE;tz|f(C z*xqlsqjzaOPC54veBa*R+&vtGkMLPctHo1YT;#>&?5r5)#cW=`*OS-Bc|EQEKEIy4 zEUNwIi|5H(wfE8a={P?*9_L^Af6pj%XSnR2tE>JwNNm1N=DhytzsJ76iSL`UecNOo zhj>44;(oS|?b{{$*gkIKKHeqXCU(E~-OpLtlV~#C@!f^|3zI$NG2}|KCB`B9dRZ^)8O2^btcUfmo>BP=Q literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-objects.json new file mode 100644 index 0000000..b3283e4 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-objects.json @@ -0,0 +1,43 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "WineBottle", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Blinds", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-openable.json new file mode 100644 index 0000000..23e767e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan15-openable.json @@ -0,0 +1,104 @@ +{ + "Cabinet|-01.42|+00.39|+03.46": [ + -2.0, + 2.5, + 0, + 30 + ], + "Cabinet|-02.21|+00.39|+03.46": [ + -1.75, + 2.5, + 0, + 30 + ], + "Cabinet|-02.96|+00.39|+03.46": [ + -2.25, + 2.5, + 0, + 30 + ], + "Cabinet|-02.99|+00.39|+01.04": [ + -2.0, + 1.75, + 270, + 30 + ], + "Cabinet|-03.35|+02.21|+01.72": [ + -2.5, + 2.25, + 270, + -30 + ], + "Cabinet|-03.35|+02.21|+02.65": [ + -2.75, + 2.75, + 270, + -30 + ], + "Cabinet|-03.37|+01.93|+01.06": [ + -2.75, + 1.5, + 270, + 0 + ], + "Cabinet|-03.37|+01.93|+02.68": [ + -2.75, + 3.0, + 270, + 0 + ], + "CounterTop|-03.38|+00.95|+01.36": [ + -2.75, + 1.5, + 270, + 30 + ], + "CounterTop|-03.38|+00.95|+03.34": [ + -2.75, + 3.0, + 0, + 30 + ], + "DiningTable|-01.35|+00.01|+00.33": [ + -0.5, + 0.5, + 270, + 30 + ], + "Drawer|-03.12|+00.78|+01.36": [ + -2.25, + 1.5, + 270, + 30 + ], + "Drawer|-03.12|+00.78|+02.92": [ + -2.25, + 3.25, + 270, + 30 + ], + "Drawer|-03.12|+00.78|+03.30": [ + -2.25, + 3.0, + 270, + 30 + ], + "Fridge|-00.44|+00.01|+04.00": [ + -0.5, + 3.0, + 0, + 30 + ], + "Microwave|-03.49|+01.43|+02.18": [ + -2.5, + 2.25, + 270, + 0 + ], + "Sink|-01.80|+00.92|+03.66|SinkBasin": [ + -1.5, + 3.0, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan16-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan16-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..75eb127fd7186a3552975f1fd71db8d376e0c6ac GIT binary patch literal 3296 zcmbW&JxViC6oBFDAR;1Sb}-#2q|r)6a4I{+#==U1iCBn{L~O)WxS(udmSAa_B87#8 zKleU@r!>vviJ5cWJNe*yIXyo)yI4w(>8TlxrdN~Zpl%MY_nLm)T#qLYlfm8PcrqM) ze||i;osPafpWY1aM_=CB+28BeyW9Qxx&G&CE&aUSX8HPFuCKveaQ=2mzTX{%`-9(t z-M=Vv-OsP(`|N&p|2*8!?q~ONYV!oHg7aTf@?7+>`D{MVOFu7y--ADb^|@ak>+?J5 zV|}cT^|3zI$NE?w>tlW0EWgvo`dA<9<3)KstdI4vKGw(jT=lU&*2nsIQTkXP>tlUf zwch=`>WWu=KG(-{&#PSZ`MW;W$NGLtQ{thy6S_OX3zAKS^$r|>^$r|>^$r|>^xkxxrm*I{lC3d zzUO@0mGg0)mJ&N3J0CkAJ0CkAJ0CkA>s=4Mte5q&Ue?QcSug8ly{vB|^szqH$NE?w q>tlVakM*&>&CtjCSRdJpA%yf4>lTsG<*@uF+#Abdc`W}G@>m|rW9Pu_D&62a_%I*l!+eGn9zt3>;3r#VSZ2$lO literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-objects.json new file mode 100644 index 0000000..2dcb50b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-objects.json @@ -0,0 +1,45 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Glassbottle", + "Potato", + "Lettuce", + "Bowl", + "WineBottle", + "Toaster", + "Egg", + "SprayBottle", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "CellPhone", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-openable.json new file mode 100644 index 0000000..fc8ea74 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan17-openable.json @@ -0,0 +1,104 @@ +{ + "Cabinet|+00.34|+00.40|-00.35": [ + -0.25, + 0.5, + 180, + 30 + ], + "Cabinet|+00.59|+02.31|-00.65": [ + 0.5, + 0.0, + 180, + -30 + ], + "Cabinet|+00.99|+00.40|+00.58": [ + 0.0, + 0.5, + 90, + 30 + ], + "Cabinet|+00.99|+00.40|+01.23": [ + 0.0, + 1.5, + 90, + 30 + ], + "Cabinet|+00.99|+00.40|-00.18": [ + 0.25, + 0.5, + 90, + 30 + ], + "Cabinet|-00.37|+00.40|-00.35": [ + 0.25, + 0.5, + 180, + 30 + ], + "Cabinet|-00.99|+00.40|+00.37": [ + 0.0, + 0.75, + 270, + 30 + ], + "Cabinet|-01.19|+02.06|+00.38": [ + -0.5, + 0.0, + 270, + -30 + ], + "Cabinet|-01.19|+02.06|-00.28": [ + -0.25, + 0.25, + 270, + -30 + ], + "CounterTop|+01.28|+00.95|+00.07": [ + 0.5, + 0.25, + 90, + 30 + ], + "CounterTop|-01.00|+00.95|-00.67": [ + -0.5, + 0.0, + 180, + 30 + ], + "DiningTable|+01.19|+00.92|+02.48": [ + 0.5, + 2.5, + 90, + 30 + ], + "DiningTable|-01.21|+00.78|+02.46": [ + 0.0, + 2.5, + 270, + 30 + ], + "Fridge|-01.30|+00.01|+00.99": [ + -0.25, + 1.0, + 270, + 30 + ], + "GarbageCan|+01.30|+00.01|+01.47": [ + 0.25, + 1.5, + 90, + 30 + ], + "Microwave|-01.34|+00.90|+00.05": [ + -0.5, + 0.0, + 270, + 30 + ], + "Sink|-00.01|+00.91|-00.62|SinkBasin": [ + 0.25, + 0.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..0786e5030e0ae5d2497a00dce1838f111d120c1c GIT binary patch literal 3680 zcmbW(yGjE=6oBDTL_|cqUsG(i3aL_w2uWq9*jQLe(1?YoBw`~zg%9K_G{do#Z-DuFXeTochxNqi}L8^psW|=%|rL8+rGbi=w5ez z?;p4CdYzy9z1#L<=f``EMx$Od_UpxK@y}~Mjj!Q*_50cU>p}J)uk&Z{M{qy5nwpaL z`_1YOe+28WKFsrmo(tAvT@UMFJ*+0e)OSRdtlVa zkM*%W*2nr-AM2YBeXNi5u|C$v`dA<9V|}b|A@s36*2nr-AM0a%tdI4vzQxeT`dA<9 zV|}cT^|3zI$NH8+AM0a%tdI4vKGw(jSRdtlVaZzc4xKGw(j zSRdtlVakM*%W*2ntRLLcj6eXNi5u|C$v`dA<9TMvD#kM*%W z*2nr-AM0a%Jjnm6Sno#YWxcGI^|D^p%X(Qa>t(&HcQf>|Ue-Ht{(d%}&EE?1+5Cy~ zJof%}c%SXZp5F=2v-4o@^Dytv=Iw@gY#y7(=CS|f6TheNRSWak`LO-ier!LsU#;~G Dv;eH4 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-objects.json new file mode 100644 index 0000000..0aba0db --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-objects.json @@ -0,0 +1,45 @@ +[ + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "HousePlant", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Blinds", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "Safe", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "PaperTowelRoll", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-openable.json new file mode 100644 index 0000000..8dd0de3 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan18-openable.json @@ -0,0 +1,158 @@ +{ + "Cabinet|+00.25|+02.13|+00.43": [ + 0.5, + 1.0, + 180, + -30 + ], + "Cabinet|+00.44|+00.42|+00.74": [ + 0.25, + 1.75, + 180, + 30 + ], + "Cabinet|+01.05|+00.42|+01.71": [ + 0.25, + 1.75, + 90, + 30 + ], + "Cabinet|+01.05|+00.42|+02.94": [ + 0.25, + 2.5, + 90, + 30 + ], + "Cabinet|+01.05|+00.42|+02.99": [ + 0.25, + 3.5, + 90, + 30 + ], + "Cabinet|+01.05|+00.42|+04.55": [ + 0.25, + 4.25, + 90, + 30 + ], + "Cabinet|+01.27|+02.13|+00.43": [ + 0.75, + 1.0, + 180, + -30 + ], + "Cabinet|+01.32|+02.13|+01.53": [ + 0.75, + 1.25, + 90, + -30 + ], + "Cabinet|+01.32|+02.13|+03.10": [ + 0.75, + 3.5, + 90, + -30 + ], + "Cabinet|+01.32|+02.13|+04.89": [ + 0.75, + 4.5, + 90, + -30 + ], + "Cabinet|-00.17|+00.42|+00.74": [ + -0.25, + 1.75, + 180, + 30 + ], + "Cabinet|-00.26|+02.13|+00.43": [ + 0.0, + 1.0, + 180, + -30 + ], + "Cabinet|-00.78|+00.42|+00.74": [ + 0.0, + 1.75, + 180, + 30 + ], + "CounterTop|+01.39|+01.03|+00.90": [ + 0.75, + 1.0, + 90, + 30 + ], + "CounterTop|+01.39|+01.03|+04.72": [ + 0.75, + 4.75, + 90, + 30 + ], + "DiningTable|-00.16|+00.67|+06.47": [ + 0.75, + 6.5, + 270, + 30 + ], + "Drawer|+00.12|+00.80|+00.52": [ + -0.75, + 1.25, + 90, + 30 + ], + "Drawer|+00.74|+00.80|+00.52": [ + 0.0, + 1.25, + 90, + 30 + ], + "Drawer|+01.28|+00.80|+03.29": [ + 0.25, + 3.25, + 90, + 30 + ], + "Drawer|+01.28|+00.81|+04.72": [ + 0.25, + 5.0, + 90, + 30 + ], + "Drawer|-00.48|+00.80|+00.52": [ + -1.25, + 1.25, + 90, + 30 + ], + "Fridge|+02.04|+00.00|+05.63": [ + 1.0, + 5.5, + 90, + 0 + ], + "GarbageCan|+02.00|+00.00|+06.50": [ + 1.0, + 6.0, + 90, + 30 + ], + "Microwave|+00.11|+00.98|+00.26": [ + 0.25, + 1.5, + 180, + 0 + ], + "Safe|+02.05|-00.01|+07.06": [ + 1.0, + 6.5, + 90, + 30 + ], + "Sink|+01.39|+01.01|+02.33|SinkBasin": [ + 0.75, + 2.25, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan19-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan19-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..be1f76cd2393e38ccf3f6383014d85a766c2a869 GIT binary patch literal 1248 zcmbW$Ax;B96oBD{5JGy2aZ{2N1OsWRaWoi271_{j5QLIlf+3uO1C=B62uNf_1p+}y z=My~1nwM|7@9$LfZE}5iHQlS8tCu`$``a#$QXbFGbDi>h(LHs|!_A_bwZG>V&3)f) z&-=UPvE6!jc2cL)<2t>j|2~6i_q^}Mpv>>(Uw;K}g4egP#4t7rAB-n;3l-oAQPpWfqiRc~Lt zeSO(I{Bsu9-%aaS$KK<0>>r9|Ztt=A*?a6gu9JR# zXYF~MhyCB#e7uSM_Tzl!W%IIm*}QCCHZO&-?8CZt)ES-2NE= literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-objects.json new file mode 100644 index 0000000..3d5a154 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-objects.json @@ -0,0 +1,42 @@ +[ + "Ladle", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Cup", + "Bread", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "CellPhone", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-openable.json new file mode 100644 index 0000000..f59ae3d --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan2-openable.json @@ -0,0 +1,140 @@ +{ + "Cabinet|+00.41|+00.48|+00.45": [ + 1.25, + 1.0, + 270, + 30 + ], + "Cabinet|+00.50|+00.48|-01.15": [ + 0.75, + -0.25, + 180, + 30 + ], + "Cabinet|+01.39|+00.48|-01.15": [ + 0.75, + -0.25, + 180, + 30 + ], + "Cabinet|+01.71|+02.02|-01.45": [ + 1.0, + -0.75, + 180, + -30 + ], + "Cabinet|+01.79|+02.02|-00.82": [ + 1.0, + -0.75, + 90, + -30 + ], + "Cabinet|-00.50|+00.48|-01.15": [ + -0.75, + -0.25, + 180, + 30 + ], + "Cabinet|-00.63|+02.02|-01.45": [ + -0.75, + -0.75, + 180, + -30 + ], + "Cabinet|-01.39|+00.48|-01.15": [ + -0.75, + -0.25, + 180, + 30 + ], + "Cabinet|-01.70|+02.02|-01.45": [ + -0.75, + -0.75, + 270, + -30 + ], + "CounterTop|+00.00|+00.95|-01.51": [ + -0.75, + -0.75, + 180, + 30 + ], + "CounterTop|-00.02|+00.96|+00.51": [ + 0.75, + 0.5, + 270, + 30 + ], + "Drawer|+00.81|+00.48|-01.16": [ + 1.25, + 0.0, + 180, + 30 + ], + "Drawer|+01.50|+00.14|+00.60": [ + 0.75, + 1.75, + 180, + 30 + ], + "Drawer|+01.50|+00.20|+01.22": [ + 0.5, + 1.75, + 90, + 30 + ], + "Drawer|+01.50|+00.52|+01.22": [ + 0.75, + 0.75, + 90, + 30 + ], + "Drawer|+01.50|+00.60|-00.02": [ + 1.0, + 0.75, + 180, + 30 + ], + "Drawer|+01.50|+00.63|+00.61": [ + 0.75, + 1.0, + 90, + 30 + ], + "Drawer|+01.50|+00.63|-00.02": [ + 0.75, + 0.25, + 90, + 30 + ], + "Drawer|+01.50|+00.78|+01.22": [ + 0.75, + 1.5, + 90, + 30 + ], + "Drawer|-00.70|+00.48|-01.16": [ + -0.75, + -0.5, + 180, + 30 + ], + "Fridge|-01.76|+00.00|+00.01": [ + -0.75, + 0.0, + 270, + 0 + ], + "Microwave|+01.93|+00.90|-00.77": [ + 1.0, + -0.75, + 90, + 30 + ], + "Sink|+00.00|+00.89|-01.44|SinkBasin": [ + 0.0, + -0.75, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a76a9b7e0f9dee4217901e5ec647c90dfc64c8c6 GIT binary patch literal 1408 zcmbW#p-#g<90%ZIlBcLEBohR+5Ry&dAQ%LSG^`7PFwznX;VF2ay+R*haR>Qc>tlVa zkM*%W*0%|LtdI4vKGw(jSf8=Wy{wP*u|C$v`q-$)bM{=X=YMuD(_zLr;=b5=-sW}O zJ8#H~=VEy*k3Vw`%XcsK%g)R4Sw72W`PRkJdh^z^_3=H9qxI(de1GQUviCTS)_;Zj wXZOSMSw72W`DwQQe_{FD<@2!r9d~)3>^rmX!uHGd%l6CiM|r>US^jAD4IysaC;$Ke literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-objects.json new file mode 100644 index 0000000..39dc590 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-objects.json @@ -0,0 +1,43 @@ +[ + "Shelf", + "Ladle", + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "WineBottle", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-openable.json new file mode 100644 index 0000000..d8e553e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan20-openable.json @@ -0,0 +1,116 @@ +{ + "Cabinet|+00.20|+02.02|-02.00": [ + 0.25, + -1.25, + 180, + -30 + ], + "Cabinet|+01.18|+02.02|-02.00": [ + 1.0, + -1.25, + 180, + -30 + ], + "Cabinet|+01.38|+00.47|-01.69": [ + 0.75, + -0.75, + 180, + 30 + ], + "Cabinet|+01.39|+00.47|-01.06": [ + 0.5, + -1.25, + 90, + 30 + ], + "Cabinet|+01.72|+02.02|-02.00": [ + 1.0, + -1.25, + 180, + -30 + ], + "Cabinet|+01.75|+02.02|-01.03": [ + 1.0, + -1.0, + 90, + -30 + ], + "Cabinet|+01.75|+02.02|-01.40": [ + 1.0, + -1.25, + 90, + -30 + ], + "Cabinet|-00.82|+00.47|-01.69": [ + -0.25, + -0.75, + 180, + 30 + ], + "Cabinet|-00.84|+00.47|-01.67": [ + 0.0, + -1.0, + 270, + 30 + ], + "Cabinet|-01.10|+02.02|-02.00": [ + -0.5, + -1.0, + 180, + -30 + ], + "Cabinet|-01.15|+02.02|-01.98": [ + -0.25, + -1.25, + 270, + -30 + ], + "CounterTop|+00.23|+00.95|-02.00": [ + 0.75, + -1.25, + 180, + 30 + ], + "DiningTable|+00.42|+00.01|+00.68": [ + -1.0, + 0.75, + 90, + 30 + ], + "Fridge|-01.50|+00.00|-00.70": [ + -0.5, + -0.75, + 270, + 0 + ], + "Microwave|-01.23|+00.90|-01.68": [ + -0.25, + -1.25, + 270, + 30 + ], + "Shelf|+01.55|+00.16|+02.48": [ + 1.0, + 1.5, + 0, + 30 + ], + "Shelf|+01.55|+00.54|+02.48": [ + 1.25, + 1.25, + 0, + 30 + ], + "Shelf|+01.55|+00.87|+02.48": [ + 1.5, + 2.0, + 0, + 30 + ], + "Sink|-00.11|+00.89|-02.01|SinkBasin": [ + -0.25, + -1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan201-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan201-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..f600a47ae37e0febe52ad83745677ddf467c7321 GIT binary patch literal 3152 zcmbW%u}<4i6b9f+6j>-jC_r0QZ>CZfm;fQwQ#YzE9hj=91Tj>A62yXd3LXeQ0*}DR zm?1-k41j&V<&1biAHF{K|IIazzy6&5K3hw7>ApIj%>GTQ_AHV-O{y&?%|9*BkzL~sxZ~yRUR33aEl@H}7uR&_Bt)~0={GwE%;o6KCBPx!}_p3>^yzVeTGeHFP5L>XZcxvmY?Nk`B{FJm*x4E v^UA~WusmEeZN0?4XZAg_@0s;seOMosZ#U|x&6&sIluk1|naRxiPROq}?_R%s{~*4{kHyt``*E{)F<-pAe!f`F7uPqNZ=2PZ z4>y~u_2185tv+wp_n&V+t-h}B{qXU#r_1@1N6Y!o`G1aSoX74m=Y5-Ri|>jjL+(Gc z&%5Gr@u)b8Pru_loOdif6z_}gif@Z|#d%wV`}Al1S%235c$p`4L(Z%}>(Bc0spVt+ zS%2P_{rX$ipLb<{rj7Ww-g>b9tUv32YTwhJ^=JKAe?GN*d@R=Ay8f&`>(BbL{_OW> z{aJt3Kl(gLf7YMnWqDa%mY3yad0AeTm*pMxc~UpzJnD0nkL6?eSU!$6SU#4IkoRHl z!(G|$eXM&Q)`#_BeK=D@us*C0>%;oY`aDS=)`z3%Y5C-7IidIn+MgGYjsoWW)REQ!Vq-;e8qM@Kd5phI;2yze&;wreHoJ;T} zq)h3;MT!)Jv-=cG$tga6j}P9Nd50W_-*4Z)dH3N_`jLLl&gWO37PFVr*{h3_+3|FC zak==uIQ#nXa&bQY`~K^*FIV%2_pd&meVae{$@3Q{$J1v|kEg$;|9Net{yOaH>)myI zJqX?p-V5Fho&=ABN5RA3o#5@@t>Dez9J~>1-gTIl&CBLx^RjtZzpP)@FYA}}%lch~ zep$b)Usj*hXZ2ZqR{u8CXZ2Y z=dt-YcmA)wI^Vm_U!K-?oX^f@`)2vG`kcFZF00S#--P zvOHOytB@zlljX_sWO=eYS)MFUmM6=T<;n77d9plNo-9w6C$C$6ybAW5bKi4{<;|&G zEdO=LpXJZ;XZf@IS^g}4mOsm%<;<-_t}`LKLgJ}e)W56g$;!}4MIuzXlPEFYE+ z%ZEMJ*v}cuFO_<-?_-u9%a7&9@?-h2{8)Z0Kb9ZMkLAbmWBIZ9+5CerKbxP;&*o?I zv-#QlY<@OBo1e|k=I7j{{u-3}Di4+i%Y*HIqon>aKbxP;&*o?Iv-#QlY<@OBo1e|k zxvPD%`Puwze%4Pe^&I`Mepo-OAI@DphxNnyVg0cBo28zkKC92_bMETrSbbKX)o1m$ zNbtK#*FTjKFWdJDd%m*g zE9;;2ztigLpY_k1UG0E#u>RfGKi5yE#QJCbv;JBCtp8!DC+nZLT7Rs6&f&iP-Pb>> zH!7*W)MNEnJZGQ^}nCL3tk7Wg8lxhzIoZaY~FFHbW%F|G>gU+J zY+g1mo0rYY=4JD;dD*<|c{(YzPxG>Q*}QCC&Rso+&CBLx^Rju_ylh@JFPoSB{;*qW zUk9x}-Vfdj-VOHs>GQrn+4m<8!{_DezI<7}EMLyyJo&mWUzRV+m*vayW%;svS-yKE z^_P5EzARssFUyzZ%cC|w4}<0FzI<7}EMLyyJo&mWUzRV+m*vayW%;sv+0QG>d%vXq zk~hnn<<0VDdGol<&!b>@yDx8+H_Myl%{iPeZ};WR@@9Fnyjk8XZdD)Ed9%D(-YjpHH_Myl&GKe>AC}Z#@@9Fn zyjk8nY4ftYS>7yfmN(0r<<0Wu9O}#4eR;FIS>7yfmN(0r<<0WuW&8bz`_Lc$!^_k9 z4%^S;Qs1{9wjZ`1wjZ`1wjZ`1wjZ`1wjZ`1wja)2orCR%?T77$?T77$?T77$?T77$ z?T2f(DY5;qe?PE&9hLe?`(pcI`(pcI`(pcI`(pcI`(pcI`(pdz+|@bQzSzFlzSzFl czSzFlzSzFlzSzFFcAFC07uy&6_uf(Y19c}#YXATM literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-objects.json new file mode 100644 index 0000000..652f280 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-objects.json @@ -0,0 +1,34 @@ +[ + "SideTable", + "Newspaper", + "Book", + "KeyChain", + "Plate", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Bowl", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "Ottoman", + "Pencil", + "CoffeeTable", + "GarbageCan", + "WateringCan", + "LightSwitch", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Vase", + "Boots", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-openable.json new file mode 100644 index 0000000..7902b64 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan203-openable.json @@ -0,0 +1,74 @@ +{ + "ArmChair|+00.42|00.00|+05.13": [ + 0.5, + 6.25, + 180, + 30 + ], + "CoffeeTable|+00.41|+00.01|+02.61": [ + -0.5, + 2.5, + 90, + 30 + ], + "DiningTable|-04.30|+00.01|-00.38": [ + -4.25, + -1.25, + 0, + 30 + ], + "Drawer|+00.21|+00.07|+02.61": [ + -0.75, + 1.0, + 0, + 30 + ], + "Drawer|+00.21|+00.23|+02.61": [ + -0.5, + 1.25, + 0, + 30 + ], + "Drawer|+00.21|+00.39|+02.61": [ + -0.5, + 1.5, + 0, + 30 + ], + "Drawer|+00.60|+00.23|+02.61": [ + 1.0, + 1.75, + 0, + 30 + ], + "Drawer|+00.60|+00.39|+02.61": [ + 1.0, + 3.75, + 180, + 30 + ], + "Drawer|-01.03|+00.78|+00.24": [ + -0.5, + 1.0, + 180, + 30 + ], + "Ottoman|+00.49|+00.00|+04.31": [ + 1.0, + 3.0, + 0, + 30 + ], + "SideTable|-01.03|+00.01|+00.16": [ + -1.25, + 0.75, + 180, + 30 + ], + "Sofa|-01.53|+00.02|+02.56": [ + -0.25, + 2.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan204-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan204-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a75864a0eac6f603e18310745faed3236cf75aa9 GIT binary patch literal 3552 zcmbW%KWkG_7{K9U35O6$@&BAH3Rx@;B0|sPW^r+Fl3-ID#7ZJA;-~Nf^?ZbUgpM6E zWXO=g*!Mg_54f1Y%X9BN_x+vb#$TuJ-n@N(Cw)&pCTH{I$HnC3c=GD}#bi33oL?-y zEoNUnTrAG!f6l+2eO}J@=a-*mU*~&2IezwhIzE0n9seBv=Vz2|KDowm*p7qFyUW|x zx1Beg*PXBb;oRmpdXD*QK6^fUK6{?~JdY3BTuzLoHx&T^VmE#kKKRO z{*LZv_p|#~-Tmx(Y9G(z!}j-Box~Y`KeiwCJoY@+$D7v0x>yJ6xoSP5*2msk&fRtW zuIp$0te^F>e)c`H?~Q#gY`<*3Y~O7E*WLcv{@MQ7{@MQ7{@MQ7{@MOnKkH}x>#m>m zvwqgk`dL5gXY)7Rd^VrWXY<*7HlNLB^S9l6HlNLB^VxhhpLdt>jqp(o@7jDl?Dxca zSP$!AJ*B9 zdRZ^)<91>?$t8|@SP$!AJ*y$ zc2BC|VTq$Y*2nr-AM0a%tdC=AO019lUPrAj*I2=W&Ig_C&;9nt_Q&?e_Q(2I-(iWa z+~%|OY&{R#{YNF;d~%H=ThG?B^><6G%QcQ{J;&9Q*z?%)?v=PR*Eq80vGr{I{SxbP zjU!vn*0c2wO03H@j%+=<|6z&ya*ZQ}iufq~VDjcx%7i+g3JFhat-5sRR7EAILshB-b*Xw4ToAq# zM#c;b3=DwJd6xf(7xWN2=l!KLm!H3W`tt2X`kVf>r_1$^Rr|4NkIoL;dDEVquP#=L z-`~$yr^~0`pDcc@myf?+|6Kf8KKk9khr@Yu@P6L>Z=QKg(s1qc`RDa<{<$5z6+8=` z22X;=!FBK`xC-7}rQx#gCfNR)u%GQ```LcBpY7+m>|^`cKDKWY_OX3zAKSc?0j}UJO3`6&(3G(v-8>c?0j}UUtgu+Vtekx9=3<=VSCsfwukLu ze=qFsh3#c~QCM6z;z-eO~u@ zu+M{i9_;gA{dJdj>1X|{pY^kT*3Wh6Vf|c%*Hf^5_v>f{&AOvOF!#p{X8xE zSU=mx_OX3zAA5dM_IaK?&z@(`Ps8)iI-utm0_I~XBc-E)k z+Ai-m4W0x$-~G;K=d<(K`Rx3ia6UVqozKo^=d<(K`Rx0P?b!``*d892&xh?}``A9V zkL_c7UWPqv58K0a*~h*gxC*cPe(<^;*28*O59?t)d!dK*upZXKdRPzZVLhye^{^h+ z!+KtY9@fKpSP$!AJ*aWuN=m{rlYm#>lX? literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-objects.json new file mode 100644 index 0000000..a80898e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-objects.json @@ -0,0 +1,28 @@ +[ + "SideTable", + "Statue", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "Ottoman", + "GarbageCan", + "WateringCan", + "LightSwitch", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "Curtains", + "Dresser" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-openable.json new file mode 100644 index 0000000..71e0d98 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan205-openable.json @@ -0,0 +1,74 @@ +{ + "ArmChair|-02.45|+00.01|+03.50": [ + -2.5, + 2.5, + 0, + 30 + ], + "ArmChair|-03.55|+00.00|+03.58": [ + -3.75, + 4.5, + 180, + 30 + ], + "DiningTable|-01.59|+00.31|+01.27": [ + -1.5, + 2.25, + 180, + 30 + ], + "Drawer|-02.93|+00.16|+06.71": [ + -3.5, + 5.5, + 0, + 30 + ], + "Drawer|-02.93|+00.47|+06.71": [ + -2.5, + 5.75, + 0, + 30 + ], + "Drawer|-03.48|+00.16|+06.71": [ + -3.0, + 5.5, + 0, + 30 + ], + "Drawer|-03.48|+00.47|+06.71": [ + -3.0, + 5.75, + 0, + 30 + ], + "Dresser|-03.20|-00.01|+06.79": [ + -3.25, + 6.0, + 0, + 30 + ], + "SideTable|-00.24|+00.00|+03.52": [ + -1.0, + 3.5, + 90, + 30 + ], + "SideTable|-02.07|00.00|+06.70": [ + -1.75, + 6.0, + 0, + 30 + ], + "SideTable|-04.19|00.00|+03.59": [ + -3.75, + 2.75, + 0, + 30 + ], + "Sofa|-04.43|+00.01|+05.06": [ + -3.25, + 5.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..49c08cf34df1a9f6c2f31240100d15421198eccc GIT binary patch literal 1968 zcmbW#Ax;BP5P;#Ol2fc(NNP$#LI_E#a1aavMH;#UK`3bnhHwfFRF1GmsH|MEVnqdo zHy`5RsG0urX6DVmyC0X=7gslX#cT0a&FbadqBhJvd z^l@45^2>+mbG_q((dc+s9vu$L_wt{={o?1>jZ++arr2lPu2Q~;^ES@0eyksFqJJB4 zopF#wml>8E-PSpL+Y@KCfS;`F%wDV)L+h*gV|EoGzk%tRL&g+i}_li{}1` zQ7>;kHXoahi%Gf8)+jw7? zFXoHQ!FgxQzL+l_O#Dl+4?lbH$NVvW%pdc|Zo_%xFV7#h;fwiW q{+K`Jj|Y>q5$11?E}jQAADfTO$L3@8ywqd$Sbgg~$G%v7JN^Qpd@f)B literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-objects.json new file mode 100644 index 0000000..4287731 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-objects.json @@ -0,0 +1,23 @@ +[ + "Shelf", + "Statue", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Bowl", + "Painting", + "Television", + "Laptop", + "Box", + "Window", + "CoffeeTable", + "TVStand", + "GarbageCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-openable.json new file mode 100644 index 0000000..819a341 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan206-openable.json @@ -0,0 +1,116 @@ +{ + "ArmChair|+02.29|+00.01|-02.02": [ + 1.25, + -2.0, + 90, + 30 + ], + "CoffeeTable|+00.02|00.00|-01.11": [ + 1.25, + -1.5, + 270, + 30 + ], + "Shelf|+00.36|+00.17|-02.24": [ + 1.0, + -1.25, + 180, + 30 + ], + "Shelf|+00.36|+00.41|-02.24": [ + 1.0, + -1.25, + 180, + 30 + ], + "Shelf|+00.36|+00.56|-02.28": [ + 1.0, + -1.0, + 180, + 30 + ], + "Shelf|-00.01|+00.17|-02.39": [ + 1.0, + -1.5, + 270, + 30 + ], + "Shelf|-00.38|+00.17|-02.23": [ + -1.0, + -1.25, + 180, + 30 + ], + "Shelf|-00.38|+00.47|-02.25": [ + -0.75, + -1.5, + 180, + 30 + ], + "Shelf|-01.63|+00.16|-01.62": [ + -0.25, + -1.75, + 270, + 30 + ], + "Shelf|-01.64|+00.41|-01.62": [ + -0.75, + -1.75, + 270, + 30 + ], + "Shelf|-01.64|+00.47|-00.46": [ + -0.75, + 0.0, + 270, + 30 + ], + "Shelf|-01.64|+00.56|-01.62": [ + -0.5, + -1.75, + 270, + 30 + ], + "Shelf|-01.66|+00.16|-00.46": [ + -0.5, + 0.0, + 270, + 30 + ], + "Shelf|-01.74|+00.16|-01.05": [ + -0.75, + -0.75, + 270, + 30 + ], + "Shelf|-01.83|+01.32|-02.41": [ + -1.0, + -2.0, + 270, + 0 + ], + "Shelf|-01.83|+01.61|-02.41": [ + -0.75, + -1.75, + 270, + 0 + ], + "Sofa|+00.13|+00.00|+01.19": [ + 0.25, + -0.5, + 0, + 30 + ], + "TVStand|+00.00|+00.00|-02.39": [ + 1.25, + -2.25, + 270, + 30 + ], + "TVStand|-01.74|+00.00|-01.06": [ + -1.0, + -0.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan207-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan207-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..deb99fa06c496ae1ac03a21af9669cb73f8086c7 GIT binary patch literal 2448 zcmbW&v1%JZ5C-6j2_YCg#C2zb8XE^f2-uZ78#gIZ1!13X5#k_)G{#Ti2huC-Be-;V z#T6=2M9Iy!;3=(U`SxaZ|IrEbc=_ex>g${4cXQv}^y}+Y_o?kZFF$tkwp-q?L+&@&wlg&Gj67J8|#q#ocwh9vi>=F zNFI~7$?mthpWV+-o0qvu^7OQ6)R(xAwOlS$-~&hvjGa zc}VqRvi$13cR9_&>Nv0Fv0q{yHV>PJ&BNwl^RRi?JZzOKukzWKkL6?eSU#4I-CysC z@1OOve%4=eML+9j{j9&v;r>|ld#<1L*SVvQ^|OA~pX)fU`s@B?n#8_ySsmwfjJ)>c zvF|)~9_!=0`n}nAzJ0#~E-?>#Ph27|%g6Gud@Kj&RsEm1M?I@&_08FoR6VO_^?RwF z)$H6B0{X}6dMaG32VecHj*qh;#GJ-dI@t0mX=dY zks^hfoS)zUn@w|gPIBHqW6a~p+41T5Qn@Sl_2qE#XI$@B^}*F%-K*-W(fHqZ@b_Xg zz8rq+j|MlB;ro7aJ-8jd^VaUp?_RaL-K!p||9q{L`D^p}>)c5EEAevTl6dx1=CAK` z>6`R1eM}$I$0nUT>Dkl6^f0}j(aRpw!}KscOm98uVS1PzribaRB|YpOyT|TV(>->N z-D7{(mAI#eJuj>urjO}k`ahn_{6!zr$DT8$gY%TfULGtD*4rI@>~lCz`u6nkH2z=k zOMlTD^P|HL`y9@bpFKa^g+G2x{F1ndd_FHPeogPUiMzzp#QMptALfJe)X!c&+&(Ry zFV+|9i<|WM#dRs4??-;DKh_`XkEiKgUp@52pLdbV-qaWCi}l6&Vtui`SRbqp)(7h& zmp)h@><;ItkG(!vAFL0S7t4#~<0BuI54*#8%4aVh=8yTieBPH2%ZKH|@?kk}o_>$*<+Ya=%Zuq_IylcZ zdfM}|=ZCv^KDhCmV)FAoU7Tl^?)lsE$6fg2ChjqR%pdc|dGeozE`Q7)^T+%!Kg)C%_xH!y4oL^WAY!%=i@_u(dK!bMoQg&K3O}fRN=Ku?U@)k9 zujLtaIk`@0p7(yL(%19Lvx}>->?wOL+EwqSE{^l!q;piX@}kqNAM5h|x?8ua-}|TK zU9TG6@7&x+~ulxG4zN|0n%lfjutS{@!`m$c;)Qk0Ey;v{Si}hl?*c=?M zdbzI`>&1GpUaS}E#d@(`tdF_$VSQL1)`#_BeOMnh2gj@PxbHmdJZyel&Clj%^RxNc z{A_+UKbwQi&*o?Iv-!Ob%+Ka$^RxNc{A_+UKbxP;&*o?Iv-!Pm&Clj%^RxNc{A_+U zKbxP;&*o?Iv-$m`Puwzel|awpUuzaXMfK=7o3NkhnopSP#~N^AMg*2B-~!FsSB ztOx7Cdaxd>2kXIlupX=j>%l$;+53QX;CR)`eZAb*i}hl?STEL#^6oV!c=| z){FIGpTq2PjeSnAzN|0n$nmP@M?V`q^kh9*Pu7$5WIb6=)|2&Q-{)9g)|d5VeOX`D zm-S_RSzp$d^<}-@Q(wJUFV>6oV!c=|){A}rW#50<_eSx^=7?UZ`Paj eX1!T&)_0J4>&tqwo~$S9$$GN+*nDihLH`HV6q>C7 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-objects.json new file mode 100644 index 0000000..a1b1a6c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-objects.json @@ -0,0 +1,29 @@ +[ + "SideTable", + "Statue", + "Newspaper", + "Book", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Pen", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Mirror", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase", + "Dresser" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-openable.json new file mode 100644 index 0000000..416437e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan209-openable.json @@ -0,0 +1,62 @@ +{ + "ArmChair|-04.39|+00.00|-03.55": [ + -3.25, + -3.75, + 270, + 30 + ], + "CoffeeTable|-02.47|+00.00|-02.49": [ + -1.25, + -2.5, + 270, + 30 + ], + "Drawer|-02.98|+00.17|-05.01": [ + -1.75, + -4.5, + 270, + 30 + ], + "Drawer|-02.98|+00.48|-05.01": [ + -4.0, + -4.5, + 90, + 30 + ], + "Drawer|-04.02|+00.48|-05.01": [ + -3.0, + -4.5, + 270, + 30 + ], + "Dresser|-03.51|+00.00|-05.10": [ + -3.25, + -4.25, + 180, + 30 + ], + "GarbageCan|-00.97|+00.00|-05.06": [ + -1.5, + -4.75, + 90, + 30 + ], + "SideTable|-02.02|-00.01|-05.08": [ + -2.5, + -4.25, + 180, + 30 + ], + "SideTable|-05.43|-00.01|-05.12": [ + -5.75, + -4.25, + 180, + 30 + ], + "Sofa|-04.36|+00.00|-02.09": [ + -3.25, + -2.0, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan21-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan21-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a102cb534bba327fb201ff7ac2bcb37f9b4dc79b GIT binary patch literal 1808 zcmbW#F-ikL6b9f?L?ox!ZWXprK@btr*(o*_RZ;K0m2% zyJmUb-PHHZ(%XBx2UW4ZQx(s}iq9zgJi}|8qj{WfnHQP+%<-)dyx))i=Pfe7r}wwg zKKt2zwx8{1``LcBpFh+7&9wg`vwl9;kM(2ySU(QwVf|R2jd}c{KCBPx!}_p3tPjgy zPy6Jve3sAhSw71PDPJDTV|gr(<+&$$ERW@}JeKDk zwpo4oaK1TR|NZ@|)#r=#?e8x>t-h{r{q*Sh@p69jY&riq|Icfj>h-YefBrt{e?AC4 z2)-Zur1`3S{xI14-S>X>e!jX)^c z?0lZIzn90squ?Ao3?2lh;C|uM@9=3<=VSCsfwukLu zd)OYfhwVuv)yw}kwukLud)OYHcKv(VKDLkT;~YLe47Shn_6$m@mpyC`+r##-J?#6I zeV_BaF4c?g2G4@^@w`5)59`CZOZ6I*{--{y5Bv9Ly@n;#OE1=o^6oV!c=| z){FIGy;v{Si*wiSWWCt;Kd12g{_@|??}B~*`@H_FKkJ`M|6cuBf7YM%XZ=}!)}Qrf z{aJt3pY><`S%1!5zmxUnLAbBK`}(u~tUv3|`m_F{(*Irhv;M3<>(BbL{;WUi&-%0e ztUpg$FV>&+=Nz8b-~B(BbL{^OGBr9bP>`m_G5KkLu>v;M3<>(A5H zhbO`MyRSdz@Vx%+>(BbL{;WUi&-%0etpB8>dg;&lv;M3<>(BbL{;WUi&-(MU^<({6 ze;$SBbFluN*Pr!g{aJt3pY><`S^sHC_0pg9XZ=}!)}Qrf{aJt3pY><`S$`h4zB~%f z!TNh%f7YM%XZ=}!)}Qrf{bwcBOMlj%^=JKAe?Dk?S%21_^=JKAf7YMvXZzXyS@{Dj CQL1?u9%P@{S239`p3CAYFRo{oML#cQ^YWt{zdg;%$@Fjk zX8gLCZub{2%oYdF`8*tMpvhyj-O`Y+g1m*WtXpu6xgN$E%g^$&{46iar>}hM z9LH5Y`|`1TEFa6q^09pS$j9=r`&fNepN~gfV%E-FJ*da(v3jf?t7l(5R*%)=xT;r&|1(yP)noOzN%J)WfFyS?l!doOzZ@x!P%&x?z}S<%Xi!Ep3C>OS8ON4@^f z{AKrP++WX+AGeA ze%8N8`#FEs&-!_q*0FxJ567_#>%9+r&-;MA54h6V7P0eT=flp2oew)7c3-FaW&0Z$ CZSH^o literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-objects.json new file mode 100644 index 0000000..05c1a7e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-objects.json @@ -0,0 +1,29 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Pen", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "CoffeeTable", + "TVStand", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Boots" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-openable.json new file mode 100644 index 0000000..442f677 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan212-openable.json @@ -0,0 +1,74 @@ +{ + "ArmChair|+02.66|+00.00|+01.86": [ + 2.5, + 0.75, + 0, + 30 + ], + "ArmChair|-00.27|+00.00|+01.87": [ + -0.5, + 0.75, + 0, + 30 + ], + "CoffeeTable|+01.59|00.00|+00.45": [ + 0.5, + 0.0, + 90, + 30 + ], + "Drawer|+03.87|+00.78|+00.87": [ + 3.25, + 0.75, + 90, + 30 + ], + "Shelf|+01.89|+00.13|-00.73": [ + 2.5, + 0.5, + 180, + 30 + ], + "Shelf|+01.89|+00.51|-00.73": [ + 2.5, + 0.25, + 180, + 30 + ], + "Shelf|-00.31|+00.13|-00.73": [ + 0.25, + 0.5, + 180, + 30 + ], + "Shelf|-00.31|+00.52|-00.73": [ + -0.5, + 0.0, + 180, + 30 + ], + "SideTable|+03.95|+00.00|+00.87": [ + 3.25, + 0.75, + 90, + 30 + ], + "Sofa|+01.17|+00.00|+01.87": [ + 1.25, + 1.0, + 0, + 30 + ], + "TVStand|+01.91|+00.04|-00.77": [ + 3.25, + -0.25, + 270, + 30 + ], + "TVStand|-00.29|+00.04|-00.77": [ + -1.25, + -0.5, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..2062c5dc5a0b6367f60b8aa0984be9d96ee5584d GIT binary patch literal 4800 zcmbW(ziw1l0EF=aLJ0XOmW5>bfhRfb~7Ukvt{atj6CRpV^Pg`u_9#i{Jiud24(cpEqw#&R(Bxo~<^&y!~l&xZ1q^ zc>34r@rPF*Pv4yEfByXV{n^R4pP#)u{`2HpesuKn(c$Xo@!{(4)px!Q#{RW?u)TgC zSN|^W4{zpOBzGseaoL{_h?nj(&eSY!ExgT-9_4&ms$2ZQmKEHV7_{RCx=NGS> z`y1z5=6lSS`+3Ir#`(o7$2ZQmKEHV7_{RCx=NGRW-#Fj;{Nk148|Pb}U%YaB<9y3} zpZ~i2WW8P9XO3^2U%YaB<9zG$i&u_soNs-8@yhXy^R3S>UOB#TzV-RV`MW58Gshp! z7hXC0ar^b{#Vcn&Zoj_$xc!&4f9CAR?Zqo+KW@Liy?Ev9$L-g*AGiOi_RpOCxV?Dg z?8oibw->LR{kZ-5_T%>dSNmtqe%xNXa`xl)>)VT0&VJl}efx3y|F8WsXFqN)-r4_W z*W2&<%6UG(eI9-L@ydBVz+_3O&hsqJ zw?4mk<=n40-}?OGm2TT)%EF@43Hcj&GcAoL{_heB*rU z^NUxGZ=7#^e(}ojjq|O~FJ3vmUC;NO?byHKd*=AY`Nr4VeQgYUz1^qe_{RCxf4IHA zJpIb?tN#`)Ig7q1-OIN$pG;+5kY_x+;J|J}ty{LdW!IRCOeu6I6OIeTz> z^gU0@&bv4Fb$0&b`F?f1^Ks|lmGgX$+ao*wVD54L%sC%-KJGlca?Zz{f3W=uF@@Y| literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-objects.json new file mode 100644 index 0000000..bc20777 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-objects.json @@ -0,0 +1,26 @@ +[ + "SideTable", + "Statue", + "Book", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "GarbageCan", + "LightSwitch", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "Dresser" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-openable.json new file mode 100644 index 0000000..61daf03 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan213-openable.json @@ -0,0 +1,128 @@ +{ + "ArmChair|+08.23|+00.00|+00.77": [ + 9.0, + 0.75, + 270, + 30 + ], + "ArmChair|+08.23|+00.00|-00.08": [ + 9.0, + 0.0, + 270, + 30 + ], + "CoffeeTable|+10.82|+00.01|+00.95": [ + 10.75, + 2.0, + 180, + 30 + ], + "DiningTable|+09.50|-00.02|+03.27": [ + 9.5, + 2.25, + 0, + 30 + ], + "Drawer|+14.18|+00.19|+00.54": [ + 13.0, + 0.0, + 90, + 30 + ], + "Drawer|+14.18|+00.19|+01.05": [ + 13.0, + 0.5, + 90, + 30 + ], + "Drawer|+14.18|+00.19|+01.56": [ + 13.0, + 1.0, + 90, + 30 + ], + "Drawer|+14.18|+00.19|+02.07": [ + 13.0, + 1.5, + 90, + 30 + ], + "Drawer|+14.18|+00.39|+00.54": [ + 13.25, + 0.75, + 90, + 30 + ], + "Drawer|+14.18|+00.39|+01.05": [ + 13.25, + 0.75, + 90, + 30 + ], + "Drawer|+14.18|+00.39|+01.56": [ + 13.25, + 1.25, + 90, + 30 + ], + "Drawer|+14.18|+00.39|+02.07": [ + 13.25, + 1.75, + 90, + 30 + ], + "Drawer|+14.18|+00.60|+00.54": [ + 13.25, + 1.0, + 90, + 30 + ], + "Drawer|+14.18|+00.60|+01.05": [ + 13.25, + 1.5, + 90, + 30 + ], + "Drawer|+14.18|+00.60|+01.56": [ + 13.25, + 2.0, + 90, + 30 + ], + "Drawer|+14.18|+00.60|+02.07": [ + 13.25, + 2.5, + 90, + 30 + ], + "Dresser|+14.33|+00.02|+01.32": [ + 13.5, + 1.25, + 90, + 30 + ], + "SideTable|+11.38|+00.00|-01.16": [ + 10.5, + -0.75, + 90, + 30 + ], + "SideTable|+12.31|+00.01|-01.16": [ + 12.75, + -0.25, + 180, + 30 + ], + "SideTable|+14.62|+00.00|-00.78": [ + 13.75, + -0.25, + 90, + 30 + ], + "Sofa|+11.45|-00.07|+03.20": [ + 11.5, + 2.0, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan214-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan214-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..35bcf49c032f3b6cba6d688464ccc68f69e96480 GIT binary patch literal 3104 zcmbW$J&RL86b9h&5{4x#%O-wrl`aZtw2(!FoytzJv9OZhX0Z@g60s3~g+IvoDVCNN z7AdxHy)#d9N~gIzx#!;Vz9jkn^7V^XZ*HV7>Fe@*vwOE)K3y!IU7Rjgi{-`T_VafA z@$KdIeDm+~=j#u<&GqNI_v=raYd?5&`ee0u{BX7Sw)oF8P2)MN?Yci}*JPH%nef!`)!M}rl1^*1z=jyEO(TDZnT-zM$!}_p3tPk&d9@dBTVSQL1)+d#g zQy%;o6KCI7BT26gfAI>$6XDIDDsqH$Hey#o5tn?PL4cKDO^x*vIy+fg%SU=W}^<(`whxhB}zJ9D9 z>&N=Bemw8{?v^wj{a8QNkM(2ySU=9S?P2{`Kh}@+WBph^miJz1d*x+$SzgYyJ;(C0 zyeu!v%kr|kEZ_ao_R7cdajtES{4&57LkHb8)`D`m|Y`&KIvPUM`mN#l_|3 z`)2j^z|UGOgWHuxs^I{2ubcXQUBGYg&u4}=i3K5QSh58H?B!}ekO+=hMFK0K*?cpQ8fJPNk2*V~uv%l2jaat_b8ulx38`?7u6 zzPzhHPi$YdFWZ;xy9@iWec8TjU$!sXm+i~;W&5&y*}iOFwjbM%?Z>;iAKwPs=PvBS z_F?<5eb_#1AJ&icWBFNrmUkcWvb-!W%ggezyeu!v%Xf88mY3yCB{i4#KbDu}WqDa% zmY3z_ea*-6vV5J8kL6?eSU#4I=i3KHRVQ**%;Q0ye#h^(BbL{;dBr^k@B9e;(C*JPg*~ef?Q~)}M2Dp8oFZ z&-%0etUv2NE2+7B|5<<5pGP$x>(BbL{;WUi&pA9_fA{rg{aJt3pZ&eavwGf9NzG*+ zwh!Bf55w#2I_F?<5eb_#%|D%$cOMlj%^=JKAf7YM%XZ=}!&f7K@>(BbL{;WUi z&wf5w|Hq|0SAW)@^=JKAf7YM%XZ<;E+Z?Pv>(BbL{;WUi&-y+o?Ya80zN{~MK6^g< ee-rzE9XtOxoX^f@=d<(K`RsglKKp;+arp~@b6N-h literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-objects.json new file mode 100644 index 0000000..8ddc48f --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-objects.json @@ -0,0 +1,28 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "FloorLamp", + "CreditCard", + "Bowl", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "CoffeeTable", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Mirror", + "Sofa", + "RemoteControl", + "Vase" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-openable.json new file mode 100644 index 0000000..dc4fc07 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan215-openable.json @@ -0,0 +1,80 @@ +{ + "CoffeeTable|-02.49|+00.02|+04.04": [ + -3.5, + 4.0, + 90, + 30 + ], + "CoffeeTable|-05.56|+00.02|+06.84": [ + -4.25, + 6.5, + 270, + 30 + ], + "Shelf|-02.87|+00.14|+07.18": [ + -2.75, + 6.0, + 0, + 30 + ], + "Shelf|-02.87|+00.44|+07.18": [ + -2.75, + 6.25, + 0, + 30 + ], + "Shelf|-02.87|+00.87|+07.18": [ + -2.75, + 6.5, + 0, + 30 + ], + "Shelf|-02.87|+01.27|+07.18": [ + -4.0, + 7.0, + 90, + 30 + ], + "Shelf|-05.96|+00.14|+04.35": [ + -4.75, + 4.25, + 270, + 30 + ], + "Shelf|-05.96|+00.44|+04.35": [ + -5.0, + 4.25, + 270, + 30 + ], + "Shelf|-05.96|+00.87|+04.35": [ + -5.25, + 4.0, + 270, + 30 + ], + "Shelf|-05.96|+01.27|+04.35": [ + -5.25, + 5.0, + 270, + 30 + ], + "SideTable|-00.59|00.00|+02.00": [ + -1.5, + 2.0, + 90, + 30 + ], + "SideTable|-00.59|00.00|+05.98": [ + -1.5, + 6.0, + 90, + 30 + ], + "Sofa|-00.77|-00.01|+03.92": [ + -1.75, + 3.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a70cfdd08bd54b6c281d6182cb9be0a4b7ccca28 GIT binary patch literal 2528 zcmbW&u}Z^G6oBC2vPtd4IFtA1JCK8~J8gNN(K(Xjs8 zKONkU>)-wH-QcPI_4eMuZok~$>6dTiKR;{5{ImAit-V-zC3!iyNdEpP=AVt&{|c`s zJKy!ybiJ3n8E(`0?0j}UJD;7;TXB99=bOi#hs|U2*gQ6m&6}lpY#y7(=COHf9)Fz_ z^ADRpjrq=F=dttHd%@ld_Fk~}f_?AodtjZ|eREzX@f`NMr!5Me#Pjnsd6wKHx5;`s zPe1peAM3~Zv3{%{>&N=Be%yR?1z10J-<((d7W?u1tRL&g`f;27UO(6MGFLCwi}hl? zSTEL#_2MRav0khfyKm0xB%as4UaS}E#d@(`td}{x&+ZEA#d@(`tQYIWZS-NiSTEL# z^cx7oUaS}E#d>iYy;v{Si}hl?STFWmoL9Z&1GpUaS}E#d@(`tQYIWda+)t7cYL_ql@2Lo&4UiKCBPx!}>HQKe-Ta AX8-^I literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-objects.json new file mode 100644 index 0000000..7e02f79 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-objects.json @@ -0,0 +1,27 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "GarbageCan", + "LightSwitch", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase", + "TissueBox" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-openable.json new file mode 100644 index 0000000..e86f112 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan216-openable.json @@ -0,0 +1,68 @@ +{ + "ArmChair|-01.83|+00.00|-01.35": [ + -1.75, + -0.5, + 180, + 30 + ], + "DiningTable|-03.94|+00.00|+00.26": [ + -4.0, + -0.75, + 0, + 30 + ], + "Drawer|+01.12|+00.52|+01.07": [ + 1.0, + 0.0, + 0, + 30 + ], + "Drawer|+01.58|+00.52|-01.46": [ + 1.0, + -0.25, + 180, + 30 + ], + "Drawer|-00.16|+00.73|+01.03": [ + 0.0, + 0.25, + 0, + 30 + ], + "Drawer|-01.02|+00.73|+01.03": [ + -1.25, + 0.25, + 0, + 30 + ], + "Shelf|-00.63|+00.12|+01.20": [ + 0.0, + 0.25, + 0, + 30 + ], + "SideTable|+01.10|+00.00|+01.12": [ + 1.0, + 0.5, + 0, + 30 + ], + "SideTable|+01.58|00.00|-01.49": [ + 1.5, + -0.5, + 180, + 30 + ], + "SideTable|-00.59|+00.01|+01.23": [ + -0.25, + 0.5, + 0, + 30 + ], + "Sofa|+00.06|+00.00|-01.39": [ + -0.5, + -0.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan217-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan217-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..f4ac6c913f25fafe7233cac98b4aa63b267110d5 GIT binary patch literal 2576 zcmbW&u}U0K7>41KWjQRvvglsHbYozfL;?~7r?OLQEUdz!D=C78T}czXid<0U5^@PC zEiEjzuux~t)BL5Uk!NR}Z(bPj&*}Ne*~N$SEB$V+R-4Op^R;dcuMe6<-CW*t&A%b%-P?|u5Rzo)Ya4`F)-SSHY9u96Syl1*hQWzo|d=x4}=rkHLDMkB0l`VLhye^>FTn`>-C?!+KZ` zZ_D$t9@fKpQae0{9@fKp*go55`)r@RPouK$dD!!?=V8yo_Srt$8@H)H_ShcVV|#3m z?XkTa_ShcVV|#3m?XkT{*kgNakL|HNw#W9Wu*ddz+NJ)mJ@)s(IedQ{JPJ<1-cR?_ z!+O~J$@->k>W}w@XJwD|u|A%J@8@8BzORq zKHt~J`dA<9V|_d?dpm9Fk3QDN`dA-V;ePsD&*8d0*Y&YJ*2nr-AM4p|Q-AcZ9@fKp zSP$oJxG(ErJ*pTY;?J_3(G zX*tCd6jO-ovq;#b(~#vI&e{9>0MXxX-@keH;ZgZfevVHk7oVo%m!t8kvlrvT(fI6q z`h9xx_2c>Ubn@@dU!Q!rnB4yP#pjc6lUqM|e)Q~cboBIa^lS8=uhnw*TJGcH^>KV$ zN-oKZ%ZKm3NuDP=|4%xfozKo^=d<&9*6!m!$?l(}``P{Mes(|4+xhH%c0XUI_nT*) z=3(=&dDuK`9-g)P*gR|=zDn=!THiNqKJ&7#4>m6^+IehVHZRZ8`_1dQdD*-iUyY@( z`4?$^Hb0x67i}IkFPoRm%jRYCvUyp)rN$HUvHRG4>^^oMyN|D0F6_LecE9u3d0g6y zoyYe-M{2zBppTEs&HKrF$-Bur$=k_W$(zX=$;0G9vi;3#e=hCC_GkO^<92>m;}hk< z@?d$eJXjtq50(eZgXO{UVEeQExvgK={%qfsv@hG2?aTIM`?7u6zHDE%FWZ;(&%Pg6 z9xM-*2g`%yv6}K=d9XZK9xM-*2g`%y!SY~vusnFZj}3W#`Ovdu`FX$mSbiL*mBR94 z`K{G>r|%z@AIp#B$MR$OvHVzmEI*bX%a7Oln48y<<>|RRS)MFUmM6z;rLa6%p6fN< zDNmLs%ai59@?rU~d{{m#AC?cxgXO{UV0o}SSRO2oLCS;e$M$3UvHjS7Y(HM@V?wqs z+n4Rj_GSCBec8Ulv@hG2?aTIM`?7u6zHDD!Y5TM92bKrRgXO{UV0o}SSRNZG50(eZ zgXO{UV0o}SSRO17?pi*4(|+EvyjWf=FP0a}i{-`gVtH+*yjVUgAC?cxhvmcaVfnCp z*zfNwFP0a}i{-`gVtKK=SYGV+L6+ZE%8z}$u{>FxJm_NrmM6=T<;n8oE}gfWyp&v$ zx1>d`e1#qJ~&b=h4sPuV12MYc59rZ57q~7w0u|}tPj=)>x1>d z`rt0zrw`Bd!TMl*us&EHtPj=)>x1>dkzy&V57r0kgY~gj<0O5s-`{zw<-?oF`tn>~ ztS{CV>x=cp`rvA$SetS{CV>+9af&AM20x$NFRavHrMA^XboX{jvU7f2=>&AM20x$ND&^cew=us&EHtPj=)>*JvQ1?hQ3jMyTyFOlyWv$oyuNxltoz~WdiQO&`Eq`} zyWIZ!{mtg{etY-({?q2`_RddFpTAi5r_a{?&;CExB2DXLtoxs{y03zl!HeK|a1MUb zeAC|lIQUWU!{7(O_k-Qv``w@2pWUC`pL2NsEVv6!!N=ceTHbdEz74(!*6a4HzDF6mSntVtv0khf>&1GpUaZd{^kIEiAJ&KUVSQL1)`#_BeOMpX zhxK87_}IP=)`#^th90a3>%n@k9;^rJ!FsSBtOx7Cdaxd>2kXIy)`#^-rGA(Ge^?LJ zgY{rNSP#~N^)w^Nk8N+(qifcK^%n@k9;^rFF-?p0VBZI)a9$73 z^AU^td*q-mL-&Clj% g^RxNc{A_++wE1`*oP*8py!qMuY<@OBoByQz1!19J^#A|> literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-objects.json new file mode 100644 index 0000000..494ebbb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-objects.json @@ -0,0 +1,29 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Television", + "Laptop", + "Watch", + "Box", + "Drawer", + "Lamp", + "Safe", + "GarbageCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Vase", + "Dresser", + "Cabinet", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-openable.json new file mode 100644 index 0000000..7e2ef67 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan219-openable.json @@ -0,0 +1,158 @@ +{ + "ArmChair|-01.84|-00.01|+04.51": [ + -1.75, + 3.5, + 0, + 30 + ], + "Cabinet|-02.70|+00.56|+04.20": [ + -3.25, + 3.5, + 0, + 30 + ], + "Cabinet|-03.85|+00.56|+04.20": [ + -3.25, + 3.5, + 0, + 30 + ], + "Cabinet|-03.87|+00.56|+04.20": [ + -4.5, + 3.5, + 0, + 30 + ], + "Cabinet|-05.02|+00.56|+04.20": [ + -4.5, + 3.5, + 0, + 30 + ], + "Drawer|-02.99|+01.01|+04.30": [ + -3.0, + 3.75, + 0, + 30 + ], + "Drawer|-03.57|+01.01|+04.30": [ + -3.5, + 3.75, + 0, + 30 + ], + "Drawer|-04.16|+01.01|+04.30": [ + -4.25, + 3.75, + 0, + 30 + ], + "Drawer|-04.74|+01.01|+04.30": [ + -4.75, + 3.75, + 0, + 30 + ], + "Drawer|-05.02|+00.88|+00.37": [ + -4.0, + 1.0, + 270, + 30 + ], + "Dresser|-03.86|00.00|+04.59": [ + -4.25, + 3.75, + 0, + 30 + ], + "Safe|-02.30|-00.01|+00.27": [ + -1.75, + 1.5, + 180, + 30 + ], + "Shelf|-00.22|+00.58|+01.00": [ + -1.0, + 1.0, + 90, + 30 + ], + "Shelf|-00.23|+01.09|+01.00": [ + -1.0, + 1.0, + 90, + 30 + ], + "Shelf|-00.26|+00.07|+01.00": [ + -1.5, + 1.5, + 90, + 30 + ], + "Shelf|-00.27|+01.58|+00.99": [ + -1.0, + 1.0, + 90, + 0 + ], + "Shelf|-01.29|+00.07|+00.26": [ + -1.75, + 1.25, + 180, + 30 + ], + "Shelf|-01.29|+00.58|+00.22": [ + -1.0, + 1.0, + 180, + 30 + ], + "Shelf|-01.29|+01.09|+00.23": [ + -1.75, + 1.5, + 180, + 0 + ], + "Shelf|-01.29|+01.58|+00.27": [ + -2.0, + 1.0, + 90, + 0 + ], + "Shelf|-05.24|+01.39|+00.09": [ + -4.75, + 1.0, + 180, + 0 + ], + "Shelf|-05.24|+01.58|+00.07": [ + -4.0, + 0.75, + 270, + 0 + ], + "Shelf|-05.24|+01.78|+00.07": [ + -4.0, + 0.75, + 270, + 0 + ], + "Shelf|-05.24|+01.97|+00.09": [ + -4.0, + 0.75, + 270, + 0 + ], + "SideTable|-05.02|-00.01|+00.27": [ + -5.25, + 1.0, + 180, + 30 + ], + "Sofa|-00.74|+00.00|+02.75": [ + -2.0, + 3.0, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..3df68c3118fa445fd3727d8f7049f86308f129d6 GIT binary patch literal 2304 zcmbW$u}Z^G6oBDt>Eu&ni$WI_L`1NYo8sc&B*j)7#7ZkJ;#2rQ<`MD;9Xn>o(4m9X zoUh;=%@V$(_Wbv#pI0}R*S9_eEv9knQXjwaCAH<4)+JeNAb^VH+5Il-4&*^2o+}cy@L9h3ESug8l9h~3w=+?t+^spY*!+KZ`>tQ{tXBp?$!+KZ`>tQ{t zhxM@eO*Ws+XY<*7HlNLB^V)14x3Pb2GMneUdF=0R72j_j+b^5P=COHf9`~wlqwAPw zKCh#n&1du3d^VrWXC2&+o;2*b^szqH$E)aNeXNi5u|D>9#*IBi-}d(wb{?PaS8xP*^RV-<^RV-<^RV-<^Kc#e;S?9waX$8c&i29f!S=!S!S>M~rr*mx*gn`k*gn`k e*gn`k*gn`kxT{Ku?St)u?St)u?St*3Kl}#8H$|cV literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-objects.json new file mode 100644 index 0000000..f7ee3bb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-objects.json @@ -0,0 +1,41 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "CreditCard", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-openable.json new file mode 100644 index 0000000..947f4e7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan22-openable.json @@ -0,0 +1,170 @@ +{ + "Cabinet|+00.17|+02.01|-01.20": [ + 0.0, + -0.5, + 180, + -30 + ], + "Cabinet|+00.24|+02.01|-01.20": [ + 0.5, + -0.5, + 180, + -30 + ], + "Cabinet|+00.48|+00.39|-00.90": [ + -0.25, + 0.0, + 180, + 30 + ], + "Cabinet|+01.12|+02.01|-01.20": [ + 0.5, + -0.5, + 180, + -30 + ], + "Cabinet|+01.13|+00.47|-00.90": [ + 0.5, + 0.0, + 180, + 30 + ], + "Cabinet|-00.77|+02.01|-01.20": [ + -0.75, + -0.5, + 180, + -30 + ], + "Cabinet|-00.82|+00.47|-00.91": [ + -0.5, + 0.0, + 180, + 30 + ], + "Cabinet|-00.84|+02.01|-01.20": [ + -1.0, + -0.5, + 180, + -30 + ], + "Cabinet|-01.77|+02.01|-01.20": [ + -1.5, + -0.5, + 180, + -30 + ], + "Cabinet|-01.80|+00.47|-00.91": [ + -2.0, + 0.0, + 180, + 30 + ], + "Cabinet|-01.84|+02.01|-01.20": [ + -2.0, + -0.5, + 180, + -30 + ], + "Cabinet|-01.85|+00.39|-00.90": [ + -2.0, + -0.25, + 180, + 30 + ], + "Cabinet|-02.39|+00.39|+00.38": [ + -1.5, + 0.25, + 270, + 30 + ], + "Cabinet|-02.63|+02.01|-01.20": [ + -2.0, + -0.25, + 180, + -30 + ], + "Cabinet|-02.65|+02.01|+00.36": [ + -2.0, + 0.0, + 270, + -30 + ], + "Cabinet|-02.65|+02.01|-00.95": [ + -1.5, + -0.5, + 270, + -30 + ], + "Cabinet|-02.65|+02.08|-00.23": [ + -2.0, + -0.5, + 270, + -30 + ], + "Cabinet|-02.65|+02.08|-00.88": [ + -2.0, + -0.5, + 270, + -30 + ], + "Cabinet|-02.65|+02.20|+00.43": [ + -1.5, + 0.25, + 270, + -30 + ], + "Cabinet|-02.65|+02.20|+01.67": [ + -1.5, + 1.75, + 270, + -30 + ], + "CounterTop|+00.07|+00.95|-01.20": [ + 0.5, + -0.5, + 180, + 30 + ], + "CounterTop|+00.91|+01.15|+00.79": [ + -0.5, + 1.5, + 90, + 30 + ], + "CounterTop|-02.70|+00.95|+00.11": [ + -2.0, + 0.0, + 270, + 30 + ], + "Drawer|+00.26|+00.78|-01.08": [ + 0.5, + 0.0, + 180, + 30 + ], + "Drawer|-02.57|+00.78|+00.10": [ + -1.5, + -0.25, + 270, + 30 + ], + "Fridge|-02.86|+00.00|+00.85": [ + -1.75, + 0.75, + 270, + 0 + ], + "Microwave|+00.28|+00.90|-01.33": [ + 0.25, + -0.5, + 180, + 30 + ], + "Sink|-01.33|+00.92|-01.23|SinkBasin": [ + -1.25, + -0.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..9b5f02d32ec49b0ce59577ed509fb735edde924b GIT binary patch literal 3920 zcmbW&y>1gh7>3bdWvwF1viPsJTOzp%1qdNA6&(>x3Mym~M=20NHljgX1sB9#LM|a? zN*69%xFGDzX}&TpFemGH_I(mLe@@RneEjqv{Y=05^VR0dx_{I4Z!cc=i>|-8TK`xt zzkR-1pRfLZ{r&RmW_9=V&E@j@>dr4tUcOp%C&!EKcX!XnG>wnl-|~E2pSQuc!B2+r zdjI-<_WkVp`T0=(cm1wBKMQ^u>^!f39IihKc0XS4e%Sdp;e2*JJD;7;&gX~qes~@{ z3!Vla1-HSI;3hZ)AL`G~{p^GFa$PUh>o)Xay;v{Si}hl?STEL#?O}V^9=3=5KC*q= zu#fFy``A9VkL_do*gm$8?c-hj`LTU$AKSMJ``A9VkL_do*gm$8?PL4cKDLjybuZh; zH{rUy`>>boWqa9PwwLW?d)Zz-)ca$5*&beioW_U0Ppl{F$$GM$tS9Tqda|CZC$~en zPo4zp>AIe*C+}-d)|2&QJy}oIv&rQ?^<+I+Pu7$5WIb6=)|2&QJ-Hpy_-Jx@o($!= z$@O`t&((T1)q1j?tS9Tqda|CZ=Om}`p(pFfda|CZC+o?2vYxCb>&fj-BV9Pu7$5WIb6=*0as!KJ{chSx?rJ^<+I+Pu7$5WIeg9eOOO!!u1rar`PMrda|CZ zC+l~V)A-Pj^<({5Kh}@+WBqtm_pyGgAGhK4`nleO>-xE_AM3~Zv3{%{>o?75d^n$- s&(3G(v-8>c?0k0qES%5IXXmr?+4<~zc0N0QUeEV_?ETpLvG<$je~~)Hq5uE@ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-objects.json new file mode 100644 index 0000000..9c926dc --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-objects.json @@ -0,0 +1,28 @@ +[ + "SideTable", + "Statue", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Dresser", + "Painting", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "TVStand", + "GarbageCan", + "LightSwitch", + "Candle", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Boots" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-openable.json new file mode 100644 index 0000000..3790d04 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan220-openable.json @@ -0,0 +1,92 @@ +{ + "ArmChair|-02.06|00.00|+04.22": [ + -2.0, + 3.5, + 0, + 30 + ], + "CoffeeTable|-02.65|00.00|+01.15": [ + -2.75, + 2.25, + 180, + 30 + ], + "DiningTable|+00.19|+00.72|+02.00": [ + -0.75, + 2.0, + 90, + 30 + ], + "DiningTable|+00.19|+00.91|+02.00": [ + -0.75, + 2.0, + 90, + 30 + ], + "Drawer|-00.37|+00.21|+00.52": [ + -1.5, + 1.0, + 90, + 30 + ], + "Drawer|-00.37|+00.57|+00.52": [ + -1.25, + 0.75, + 90, + 30 + ], + "Drawer|-00.38|+00.18|+03.61": [ + -1.5, + 3.75, + 90, + 30 + ], + "Drawer|-00.38|+00.48|+03.61": [ + -1.25, + 3.5, + 90, + 30 + ], + "Drawer|-00.38|+00.79|+03.61": [ + -1.0, + 3.5, + 90, + 30 + ], + "Drawer|-00.38|+01.07|+03.61": [ + -0.75, + 2.75, + 0, + 30 + ], + "Dresser|-00.27|+00.00|+03.61": [ + -0.5, + 2.5, + 0, + 30 + ], + "SideTable|-00.28|+00.01|+00.52": [ + -1.0, + 0.5, + 90, + 30 + ], + "Sofa|-02.68|-00.05|-00.12": [ + -2.75, + 0.5, + 180, + 30 + ], + "Sofa|-03.79|+00.01|+03.89": [ + -3.75, + 2.5, + 0, + 30 + ], + "TVStand|+00.20|+00.58|+01.98": [ + -0.5, + 2.0, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan221-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan221-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..6e0b2da5e7a0bcba570466075c8eca6dc8ff6d59 GIT binary patch literal 2016 zcmbW$u};EJ6b9gGOk;@g8M;*y7MzGNVRO^CI5?R`N*s)sVqA<*;RD%6;1L)Z85kTK ztlWOf8D;SDT`&FrQ_AP{?bXfQUiOx~m(zOj(3Iyzc`+N8!=jwco7bj#zMnVK`fvZT zdRo-o{^GHEsXL#HM&n^|b~-FRihsTa+3t1RrZw-^qu@dCVQ?ON5WF8O&pCN4kL9sE zj;lQT^6blFc`T3RvFmbNvwmLtKVRAI#qyn#&+=FvyAH=yp8fAWpSQuA;C1jScp03g z>;AUsoqn+g$5lW3`muhjAM3~Zv3{(dT)o*jj;nt5^<({5Kh}@+WBugl$NI7BvCr$} z^Xxo3uebB;`7?*}>^%Fu$??3i=bioDIB(M(Vfied<+J<4`nb>fus*C0=dE{X)yJ+r ztPktMzGwEm@y73~-|#*7zx&MQTTarB`Ph7HKF-_pIW`}gkIl#CWApL0pNGxI=411* c`Bq^*HXoah&Bx|r{aM~RZJFf>-J)1Xg&G_YE-b|)H>sRCF z#dNp6cpAS>cRoBhJ{wf0M}z9K`seE){l2xF1XZbAO^!>AZ?#t(A`7EF1vwSx5Q%FfZ%jdr2vwW7%@_B#cU7qq= z&(-HEQ@-o+Sw72W`7EF1`yXh>?&COpU)HdX4FeH^F0*7aq5 zSzp$d^<}?vIr_8y+=l0_zw6HBIQ6%#KkLu>v;M5VbM& E-&TJNJ^%m! literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-objects.json new file mode 100644 index 0000000..7d63b0b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-objects.json @@ -0,0 +1,25 @@ +[ + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "TVStand", + "GarbageCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "Curtains" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-openable.json new file mode 100644 index 0000000..026ea33 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan222-openable.json @@ -0,0 +1,92 @@ +{ + "ArmChair|+00.22|+00.01|-01.73": [ + 0.25, + -1.0, + 180, + 30 + ], + "CoffeeTable|+00.23|+00.01|-00.17": [ + 0.75, + 1.0, + 180, + 30 + ], + "Drawer|+00.10|+00.05|-00.17": [ + -0.5, + 1.0, + 180, + 30 + ], + "Drawer|+00.10|+00.15|-00.17": [ + -0.5, + 1.0, + 180, + 30 + ], + "Drawer|+00.10|+00.26|-00.17": [ + -0.5, + 1.0, + 180, + 30 + ], + "Drawer|+00.35|+00.05|-00.17": [ + 1.5, + -0.75, + 270, + 30 + ], + "Drawer|+00.35|+00.15|-00.17": [ + 1.5, + -0.75, + 270, + 30 + ], + "Drawer|+00.35|+00.26|-00.17": [ + 1.5, + -0.75, + 270, + 30 + ], + "Drawer|+02.00|+00.77|+01.70": [ + 1.5, + 0.5, + 0, + 30 + ], + "SideTable|+02.00|+00.00|+01.75": [ + 1.75, + 1.0, + 0, + 30 + ], + "SideTable|+02.96|+00.00|+01.57": [ + 2.0, + 1.25, + 90, + 30 + ], + "SideTable|-00.68|+00.00|-01.60": [ + -0.25, + -0.75, + 180, + 30 + ], + "Sofa|+02.87|00.00|+00.25": [ + 1.75, + 0.25, + 90, + 30 + ], + "Sofa|-01.07|00.00|-00.20": [ + -0.25, + 0.0, + 270, + 30 + ], + "TVStand|+00.84|00.00|+01.58": [ + 0.75, + 0.5, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..e2d8f64612a8a5ef56aac6bd7124edc03fbfc206 GIT binary patch literal 3632 zcmbW&v5FH>6b9hy5QZg)&yX$(Y1~Rha4I{+#==U1o5ez0NyJ8c3Lhx*2zi7pw@fib ziWIK7=Nrf=cbdE3o#dW#{tYvK-+z4f;nSn?tNfl{tu|lQ^H;O^>+2Wu#cY0kv;MhW ze*b*4zFPg?f4ls)S>5k%zAk^P?)~)g`OC%Z^4VhcXZFBrT25En*Y&Wi>kupNlkbvm zlXuDW)KZ+cdvjjzHu)}jpFAWVl8?!yJFnLyPm@qXmP@??3kyjWf=FK%OAeVK>N!@kFPHIIGs@Gj>d8fYR-e^p_4yd*v-+$)Pouv7gML^)tRL17>xcEjhv<*>!}{?%&=2c} u^~3sM{jh#mKdc|tPt%ptr5|ql({^dPx=#AKHeFqPe-ie6Zu|PVN%s$1PXj&x literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-objects.json new file mode 100644 index 0000000..961940a --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-objects.json @@ -0,0 +1,26 @@ +[ + "Statue", + "KeyChain", + "Plate", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "CoffeeTable", + "TVStand", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Candle", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-openable.json new file mode 100644 index 0000000..966424d --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan223-openable.json @@ -0,0 +1,50 @@ +{ + "ArmChair|-00.43|+00.00|+01.06": [ + -1.5, + 1.25, + 90, + 30 + ], + "ArmChair|-00.44|+00.00|+01.92": [ + -1.5, + 2.0, + 90, + 30 + ], + "ArmChair|-02.01|+00.00|-01.58": [ + -0.75, + -1.25, + 270, + 30 + ], + "CoffeeTable|-02.02|-00.01|+00.02": [ + -1.0, + 0.0, + 270, + 30 + ], + "DiningTable|+01.88|00.00|-00.29": [ + 2.0, + -1.25, + 0, + 30 + ], + "DiningTable|-01.88|+00.27|+02.79": [ + -2.25, + 1.75, + 0, + 30 + ], + "Sofa|-03.44|-00.01|-00.04": [ + -2.75, + 0.0, + 270, + 30 + ], + "TVStand|-01.86|-00.01|+02.79": [ + -2.0, + 1.75, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..65da5837a74575402cec1f5c6ab624a37c6ba625 GIT binary patch literal 4496 zcmbW%v2N2)6oBE26t;C;fW2z!oY+gnu-C@DnTrWr{IC=NAM$b?C8Nm z1`m|p^F_)T+r|BS9emCo;O~b|?>~NiQht@+tBdXa>uz+QXtpS^myUY@;JFaInb`SYwi{4Bb9ZTfmWysg&~cFwmq z^?Z)&kQ|>b&d2!kcuMv@=W{wQ-Rb+9Wb^s_qOZ>%VlMNtdD(nyJ~kiEF&~?c&Bx~B zr!n6Y^R>z5ckX*(-vis5y@&I4jQ6^Km#mj_y|}~=kI{qmWBqte&+F&B>FNtuKW@{x zp7v_{`gzuq^<+I+Pu7#o!TGAE`+D*ay}3?X3Xjo;r(`{y>&bd@)1@BCdV0R?>+|-| zkM(2ySU=W}^<(eleAUnWA^LHhwiLdLUaTii>0D3eda|C}bg56Wo}O>}`n)~#WIb6= z)|2&QJy}mS2j{Dv?$>Ec;URkQZL;3Z^=7?UZ`Paj=B7*ilJ)j{+t=sqr8n!%db8fF zH|x#g&FTB}c5W`t*ZS#Fj`yQ4>&<$z-aMtx>+M``)|;E|be~1C-k$gWZ~as$ZSS{w z)!$wHS%21_^=JKgjQ*@Y>(A!qd>x{n`}(u~tUpib^ZGm2pY`Xa^IN^@@2>u==W*`7 zp0J**Cr{Cj^<+I+Pu7#o#rdkI`+D*i{a8=dll5dhx#>=O=;>Tf*3+E+ezKmdCr{Cn z^<+I+Pu7$5WIb39)`Rt6Jy;LcgZ1z|>A`xi9;^rJ!FsU$*nVt3wjbM%?Z@_G`;GqH z_O&?MkL|}(eBW$8wjbM%?Z@_G`?3Aler!LspZEIy*nVt3o?<^9lkMj`U+w3<{n&nN zKeiv+kL~9@_GA08{n&my#(r!+_Fm3c`?+sFw%^fxdHC@;^Ya|@@FCg!&dtx}XY+Hu on%8}O-8Ubbj}I{)n~%-M=411*_v_~U?EUQh?EUQh?EOvm4|`;e6#xJL literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-objects.json new file mode 100644 index 0000000..801b0b9 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-objects.json @@ -0,0 +1,29 @@ +[ + "SideTable", + "Statue", + "Newspaper", + "Book", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase", + "Dresser", + "Cabinet", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-openable.json new file mode 100644 index 0000000..e1699e7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan224-openable.json @@ -0,0 +1,164 @@ +{ + "ArmChair|-02.86|+00.02|-02.04": [ + -2.25, + -0.75, + 180, + 30 + ], + "Drawer|+02.99|+00.09|+00.37": [ + 2.25, + 1.5, + 180, + 30 + ], + "Drawer|+02.99|+00.09|-00.57": [ + 2.25, + 0.5, + 180, + 30 + ], + "Drawer|+02.99|+00.34|+00.37": [ + 2.5, + 1.25, + 180, + 30 + ], + "Drawer|+02.99|+00.34|-00.57": [ + 2.5, + 0.5, + 180, + 30 + ], + "Drawer|-00.16|+00.22|+00.99": [ + -1.25, + 0.5, + 90, + 30 + ], + "Drawer|-00.16|+00.22|+01.47": [ + -1.25, + 2.0, + 90, + 30 + ], + "Drawer|-00.16|+00.22|+01.94": [ + -1.25, + 1.5, + 90, + 30 + ], + "Drawer|-00.16|+00.22|+02.42": [ + -1.25, + 2.0, + 90, + 30 + ], + "Drawer|-00.16|+00.47|+00.99": [ + -1.25, + 0.5, + 90, + 30 + ], + "Drawer|-00.16|+00.47|+01.47": [ + -1.25, + 1.0, + 90, + 30 + ], + "Drawer|-00.16|+00.47|+01.94": [ + -1.25, + 1.5, + 90, + 30 + ], + "Drawer|-00.16|+00.47|+02.42": [ + -1.25, + 2.0, + 90, + 30 + ], + "Drawer|-00.16|+00.72|+00.99": [ + -1.0, + 1.25, + 90, + 30 + ], + "Drawer|-00.16|+00.72|+01.47": [ + -1.0, + 1.75, + 90, + 30 + ], + "Drawer|-00.16|+00.72|+01.94": [ + -1.0, + 2.25, + 90, + 30 + ], + "Drawer|-00.16|+00.72|+02.42": [ + -1.0, + 2.0, + 90, + 30 + ], + "Drawer|-00.17|+00.45|-02.04": [ + 0.0, + -1.0, + 180, + 30 + ], + "Drawer|-03.13|+00.09|-00.49": [ + -2.5, + -1.5, + 0, + 30 + ], + "Drawer|-03.13|+00.34|-00.49": [ + -2.5, + -1.5, + 0, + 30 + ], + "Dresser|-00.02|+00.01|+01.72": [ + -0.75, + 2.0, + 90, + 30 + ], + "SideTable|+03.16|+00.02|+00.37": [ + 2.75, + -0.75, + 0, + 30 + ], + "SideTable|+03.16|+00.02|+01.40": [ + 2.75, + 0.5, + 0, + 30 + ], + "SideTable|+03.16|+00.02|-00.57": [ + 2.5, + -1.75, + 0, + 30 + ], + "SideTable|-00.17|+00.01|-02.24": [ + -0.75, + -1.25, + 180, + 30 + ], + "SideTable|-03.30|+00.02|-00.49": [ + -2.5, + 0.0, + 270, + 30 + ], + "Sofa|-02.96|+00.08|+01.39": [ + -1.75, + 1.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..5525cb8f90541c334f89ab6d57a2e15d5e14bb5b GIT binary patch literal 2592 zcmbW&y^2#o7zW_+5QY#!*v%EBI|^wO1rcGVvQumtC$;mzU4`^{T(T+I`(^ zKEJ=(U2Oln{%Z4SzrBBb|8etWd+&#jpFLf#o;+Hweysj;&C<9|hI+j|tJlRpeADjF z+kKt|PlI#tB)AJs!N*@|T;|Dl8}hI`EDz^)KFh=Muskde%X1g&N=Be#g*{^<({5 zKh}@+WBvHp`tc!HKlk-x{a8QNFO|PPKh}@+WBqtC)N}aI^0K@vFU!-FdXDcC%fs?; z9@4nFQm>PtUb|AS=Ck>1{-ix`KAX?xa~{&T*nBph&1ds-sppu_=Ck>nhq{l=WAoU& zX{r0nWAoTN&O_bD=COI~|72F`KJ$6r&SUf0e9qx{@3;HDe=Hx%$MVff8rPzo&+@T+ zJPpt1VEH`Xh5ISk@89$Kus*C0`~9=uKkK_FX&yDGzN|0n s%lfjutnW!l literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-objects.json new file mode 100644 index 0000000..dd92881 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-objects.json @@ -0,0 +1,29 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "TVStand", + "GarbageCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Vase" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-openable.json new file mode 100644 index 0000000..36919b4 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan225-openable.json @@ -0,0 +1,80 @@ +{ + "ArmChair|-00.88|-00.03|+00.57": [ + -1.0, + 1.75, + 180, + 30 + ], + "CoffeeTable|-01.97|+00.00|+02.62": [ + -1.0, + 2.75, + 270, + 30 + ], + "Drawer|-04.43|+00.47|+03.34": [ + -3.75, + 4.25, + 180, + 30 + ], + "Shelf|-00.34|+00.18|+02.67": [ + -1.5, + 2.0, + 90, + 30 + ], + "Shelf|-00.46|+00.17|+03.04": [ + -1.5, + 3.5, + 90, + 30 + ], + "Shelf|-00.46|+00.42|+03.04": [ + -1.5, + 3.5, + 90, + 30 + ], + "Shelf|-00.46|+00.48|+02.30": [ + -1.25, + 2.75, + 90, + 30 + ], + "Shelf|-00.46|+00.57|+03.04": [ + -1.25, + 3.5, + 90, + 30 + ], + "Shelf|-00.47|+00.18|+02.30": [ + -1.5, + 1.75, + 90, + 30 + ], + "SideTable|-04.61|+00.01|+03.35": [ + -4.25, + 4.25, + 180, + 30 + ], + "Sofa|-02.13|00.00|+04.56": [ + -2.5, + 3.25, + 0, + 30 + ], + "Sofa|-04.57|00.00|+01.90": [ + -3.25, + 2.0, + 270, + 30 + ], + "TVStand|-00.34|+00.01|+02.68": [ + -1.25, + 2.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..caddf16986a2e75b2f3678ead0fbfa34c66886a7 GIT binary patch literal 1392 zcmbW#Jx;?w5C%{~$tm0!q*OHg2+18Ch=zg+MZ^&WBFI5Bh*NN&_y|6N%akr$q@W<+ zeMp&-G^@9({bpvJ&+FT(o4dX2EqgC!)$*Y(&hz48ep*cOV!o(f>*@3TqMlVh`%|&`#Z>fe_yNJbzSbd56+tLd=u`m`|LgsDUUb7`ze1& z`RcKLSq{gwPdWD2!Ci10JWiWs?ziQ*!(FiXo%i9~{LanK=GV9R+5BvNmcwy1kNr0F z$L3-4u>QQG{#bu3pXIZBmhZdBXZb9j<+FU2->%Y2G~>$hSw72W`7GZ%>!0Pbe3sAh zxliAV)%(k7#uHYL{a<)U@4$VqI?m&&U;FyyKK08(bgCyueRhxIs-AuISiP?N1|2l! AMgRZ+ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-objects.json new file mode 100644 index 0000000..b06622d --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-objects.json @@ -0,0 +1,24 @@ +[ + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Blinds", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "GarbageCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-openable.json new file mode 100644 index 0000000..e2bf02b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan226-openable.json @@ -0,0 +1,68 @@ +{ + "ArmChair|+01.51|+00.00|-00.59": [ + 0.5, + -0.5, + 90, + 30 + ], + "CoffeeTable|-00.71|+00.01|-00.37": [ + -0.75, + -1.25, + 0, + 30 + ], + "Drawer|+01.77|+00.77|+00.33": [ + 1.0, + 0.25, + 90, + 30 + ], + "Drawer|-00.71|+00.07|-00.17": [ + 0.25, + 0.5, + 270, + 30 + ], + "Drawer|-00.71|+00.07|-00.56": [ + 0.75, + -1.5, + 270, + 30 + ], + "Drawer|-00.71|+00.23|-00.17": [ + 0.25, + 0.5, + 270, + 30 + ], + "Drawer|-00.71|+00.23|-00.56": [ + 0.75, + -1.5, + 270, + 30 + ], + "Drawer|-00.71|+00.39|-00.17": [ + 0.25, + 0.5, + 270, + 30 + ], + "Drawer|-00.71|+00.39|-00.56": [ + 0.5, + -1.25, + 270, + 30 + ], + "SideTable|+01.81|+00.00|+00.33": [ + 1.25, + 0.25, + 90, + 30 + ], + "Sofa|-00.50|+00.00|-01.89": [ + -0.75, + -1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..3486ec0d9a8b2e55b6c75c736ea7044a513bcfa7 GIT binary patch literal 3312 zcmbW(y-piJ5CGuCvQEgd5Maz-b=?ukO;QCE$ycQV(NIt!3ydgGi0mj$l&8o8;YXpQ zbV1?5MabQL&6L^3`n-EPJ2T7SKNnZ$m)9HVXZls$P3O0>>a483+<&e{Wp)2F`!Sn* zyLp=3P5*uWb@Di$zJEV|n0%kU`{d*4>8SklVO0Ju|8w+GGmaPS=gYYLJPJMxJ_z0q zw%=>mkL}0yWBc(i@6UU|gW%oZo#5@@t>AueFL*P!2<`@Vf?uCgGvxCUtbWT}Kl!qJ zS-vb^mM_bf<;(JA`Err-VfnIrIfeD>oUi#+@LTXQSp7V&eym<^y;!|iy;!|i zy;!|iy;yx%eOP^1eOP^1eOP^Xnd`&q!|KE8vC8#P4^|IW4^|IW50($F^Z8i(b%@X6 zv-m7Ni_hY*c&TphgM3*$7LUba@mM?-uM^_2cq|@^$KtX2viK~1w@%HFFN@FOv-m7N zyYHM9Z5(zUcAlbc*EtV64?7P#4?7P#4|`v6v1sFRH@FilAM54A{+?KVn{^vUek?zh zAIp#X`8+H?mLC^kz5L9}kG&sQJ}jSJotj}iThG?_^Lq2_eY}j&!x>j&!x>&I@LnxP-8AFLm|pY!8kuzr}=57rOX57rOX r57rOX57rMZ!uj;Wyne8Luzs+9uzs+9uzs-T2X$(O=h^e@`9b{`rp0CJ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-objects.json new file mode 100644 index 0000000..2b7f885 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-objects.json @@ -0,0 +1,27 @@ +[ + "Shelf", + "Statue", + "Newspaper", + "KeyChain", + "Plate", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "CoffeeTable", + "GarbageCan", + "LightSwitch", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "Vase", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-openable.json new file mode 100644 index 0000000..a41e361 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan227-openable.json @@ -0,0 +1,212 @@ +{ + "ArmChair|-01.01|+00.02|+02.08": [ + -2.0, + 2.25, + 90, + 30 + ], + "ArmChair|-01.52|+00.02|+03.31": [ + -1.75, + 2.25, + 0, + 30 + ], + "Cabinet|-01.53|+01.87|+00.33": [ + -1.25, + 1.0, + 180, + 0 + ], + "Cabinet|-01.98|+01.17|+05.03": [ + -2.25, + 4.5, + 0, + 30 + ], + "Cabinet|-02.02|+01.71|+00.32": [ + -1.75, + 1.0, + 180, + 0 + ], + "Cabinet|-02.47|+01.33|+05.03": [ + -2.75, + 4.5, + 0, + 30 + ], + "Cabinet|-03.70|+01.71|+05.03": [ + -4.0, + 4.5, + 0, + 0 + ], + "Cabinet|-04.18|+01.87|+05.03": [ + -4.5, + 4.5, + 0, + 0 + ], + "Cabinet|-05.37|+01.17|+05.03": [ + -5.75, + 4.5, + 0, + 30 + ], + "Cabinet|-05.85|+01.33|+05.03": [ + -6.25, + 4.5, + 0, + 30 + ], + "CoffeeTable|-02.67|+00.02|+02.00": [ + -3.0, + 0.75, + 0, + 30 + ], + "CoffeeTable|-03.00|+00.02|+01.73": [ + -4.25, + 1.0, + 90, + 30 + ], + "DiningTable|-05.82|+00.00|+02.56": [ + -4.75, + 3.25, + 270, + 30 + ], + "Drawer|-01.09|+00.23|+00.46": [ + -1.75, + 1.25, + 90, + 30 + ], + "Drawer|-02.68|+00.23|+00.46": [ + -1.25, + 1.25, + 270, + 30 + ], + "Drawer|-02.94|+00.51|+05.00": [ + -3.0, + 4.25, + 0, + 30 + ], + "Drawer|-02.94|+00.82|+05.00": [ + -3.0, + 4.25, + 0, + 30 + ], + "Drawer|-04.26|+00.23|+00.46": [ + -2.75, + 1.25, + 270, + 30 + ], + "Drawer|-06.33|+00.51|+05.00": [ + -6.5, + 4.25, + 0, + 30 + ], + "Drawer|-06.33|+00.82|+05.00": [ + -6.25, + 4.25, + 0, + 30 + ], + "GarbageCan|-06.86|+00.03|+00.22": [ + -6.0, + 0.75, + 270, + 30 + ], + "Shelf|-00.81|+01.69|+00.19": [ + -0.75, + 0.75, + 180, + 0 + ], + "Shelf|-01.04|+01.00|+00.18": [ + -0.5, + 0.75, + 180, + 30 + ], + "Shelf|-01.04|+01.32|+00.18": [ + -0.75, + 0.75, + 180, + 30 + ], + "Shelf|-01.78|+00.99|+00.18": [ + -2.25, + 0.75, + 180, + 30 + ], + "Shelf|-02.22|+00.45|+05.17": [ + -1.75, + 4.25, + 0, + 30 + ], + "Shelf|-02.67|+00.61|+00.27": [ + -1.25, + 1.25, + 180, + 30 + ], + "Shelf|-03.19|+01.15|+05.17": [ + -3.25, + 4.5, + 0, + 30 + ], + "Shelf|-03.94|+00.99|+05.17": [ + -4.0, + 4.5, + 0, + 30 + ], + "Shelf|-04.67|+01.00|+05.17": [ + -4.75, + 4.5, + 0, + 30 + ], + "Shelf|-04.67|+01.32|+05.17": [ + -4.75, + 4.5, + 0, + 30 + ], + "Shelf|-04.90|+01.69|+05.17": [ + -5.0, + 4.5, + 0, + 0 + ], + "Shelf|-05.61|+00.45|+05.17": [ + -6.0, + 4.25, + 0, + 30 + ], + "Shelf|-06.57|+01.15|+05.17": [ + -6.5, + 4.5, + 0, + 30 + ], + "Sofa|-03.33|+00.02|+03.63": [ + -3.25, + 2.5, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan228-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan228-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..fc4e9c555acc69973ec61b5bb39955f728a1de84 GIT binary patch literal 2688 zcmbW%v1;2;6b9g1V=l%R6T5i;ZEC?onxT|X=$*Q?bm@>On8u+)sDmA{lsrWqD0-BR z9Xn*mkfEurzU7S7Vm|5W=>Jb3cb~t0`f~ar-K3xG`DXuZ*Pb-(`-^w&s%bB_yX)Qh z$JuswzWI0m=@3DRG&yCb4(IjtTwm6g^<{loU)GoPWqn!SSxNn+FZ+MT{@?L@ z=*RZM_QR8KJ_p;6^Y+8`!}i1W!}i1W!}i1W!}c>TslV)p?T77$?T77$r$c|91m|G; zao&E|e%OB4e%OB4e%OB4e)w?6cTiG)*%#Xv>&LmP@3DTYAM3~Zv3{%{>&N=BetbCO uTa=npKh}?PIIoZA`mjE%59`DFus*C0>%;miLm!rhU#BK zwfJ^^y}Dff|NiOX>w5X{{q>i{_vM3+j^CWjo8#B>=6CbNW1PC<#isvy^S=MO`}^2; z!LGjz*R$*SRlWbVUjH)qFxdTFFAuvvZ)-mGyu0u`_B{4HeqQtNEchUJ8axRe2aket z@Gy7~oPzhYzr6Nhd+|10e;aJSUD%K9$M$3UvHjS7Y(KUi+mG$Xx$eRCWBalFcwhUo z{n&nNKeiwHeDCXi_F{Xnz1UuCFSZxki|xhsVtcW@*j{We-q*c&7i=%*?Zx(Dd!>@P z!(MDJwinxr?Zxu5{477q&+@bUEdLEC@`?2>8d*5&l*AIgS!S?g>_GA08{n&nNKeiv+Z(LG$_b*nVsewg>;K?*sP#z@((^uov5l?Zx(D{aJq= z)xMmA<#%3wmY?OHmed{cv-~VS%g^JQheyFVSU%Uw$MPMN)E)A%d@LW^ljURiIB)vr susvB`mTy-2pOcRd>-|_hwjcX@Vfk5pmY;KYp3k@Q-UsY`!1~V0J&fXdAOHXW literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-objects.json new file mode 100644 index 0000000..9462c36 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-objects.json @@ -0,0 +1,30 @@ +[ + "SideTable", + "Statue", + "Book", + "KeyChain", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Dresser", + "Painting", + "Pen", + "Chair", + "Television", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "CoffeeTable", + "GarbageCan", + "WateringCan", + "LightSwitch", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Boots", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-openable.json new file mode 100644 index 0000000..c202600 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan229-openable.json @@ -0,0 +1,68 @@ +{ + "ArmChair|-01.32|+00.00|+03.65": [ + -1.5, + 2.75, + 0, + 30 + ], + "CoffeeTable|-03.04|+00.03|+02.34": [ + -3.0, + 3.5, + 180, + 30 + ], + "Drawer|-05.58|+00.21|+02.13": [ + -5.0, + 3.25, + 180, + 30 + ], + "Drawer|-05.58|+00.21|+02.68": [ + -5.0, + 3.75, + 180, + 30 + ], + "Drawer|-05.58|+00.52|+02.13": [ + -5.25, + 3.0, + 180, + 30 + ], + "Drawer|-05.58|+00.52|+02.68": [ + -5.25, + 3.5, + 180, + 30 + ], + "Dresser|-05.77|+00.02|+02.40": [ + -5.0, + 2.5, + 270, + 30 + ], + "SideTable|-00.21|+00.02|+01.52": [ + -1.0, + 1.75, + 90, + 30 + ], + "SideTable|-00.31|+00.02|+00.62": [ + -1.25, + 0.5, + 90, + 30 + ], + "SideTable|-05.57|+00.02|+00.29": [ + -5.25, + 1.25, + 180, + 30 + ], + "Sofa|-03.13|+00.02|+00.41": [ + -3.5, + 1.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan23-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan23-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..67fe43f3d7c5e3eb35d879de34eadf7e32684970 GIT binary patch literal 1664 zcmbW$u}Z^G6b9g{h)5Cf5$<*sGIbCw&TfiJ2PX+O#X+nj#YKDyAE-V`M@I(-2Zz?0 zZ#kn`F5hkP|0ikkb~V1dzS&C8>7`7X?yfDPT+XMbrOIVGYv*nKcspw+&F}t2{m?b* z{qDYgYSunFJE`*UxXQ2jzsDeLj>GrAb-!N^g6&%e;rG4Z-QbggCZ`IHG zSwHLN)X&4_k!v0{54(=zY99OMVe_zg_-Bze2Y&~D1%C#+A9J`Lc0cTXSU>A${j8t$ zyKnt0pXIZBme2A%NBJzD<+FU2&+`2*@>m|rV|gr3j(OSt!Ex1RUmxpZeXi5T&f~bs zw=bXNJ5L@vkK^ikx#nYeERW@}ypR4nkjI`cd*4|f>tlVaZyEYnAM0b^HT!PZd(PfV O_Fl31+5Bw&Y4&w~m_Mx&FD6 zyq!Ew9whgZo8;A>QZMr^lFyUnJ4^XkK9-N=WBFJE%Mm*r)7c`N4g zX7VU`m~3DF-oD(VzqhaZ8|i*YzKs7Lf3F|DNcZ*QzJ4xJKdc|t59^2Z!}?+QS$>wE z<>&L*hvi?T{477q&+@bRY(AUMXOV|bljXZi`B*-dkLBZ4oX_&Hd@LXD#p|cErC#!} z=MBrp^09opihL{|%g6F;q&zGS%fs@pJS-2(!}72^y|&a#KP(T+!}72^EDy`W@~}Kj z%ER)oJS-2(!}72^EDw7Y!0<(`e1#qK3E?-iv4()?DNz8 ze!AZz_mVe~_31o)vOZa#tWVY_>y!04YD>NJ$@*k{vOZa#tWVY_>yro32ltbkWPSR3 zeX>4TpR7;TC+m~-wb_<>>5KKn`eJ>tzF1#8h<#Zf+@$;Za9xZ4s&S&Sd^V#_~)A{Utc0N0wozKp{mCk49v-8>c?0okB!Cqf%{_QlM z&1du3d^VrWXY<+oJ83?f&*roFY(AUM=Ck>C(|k6c&1du3d^VrWXY=o+`D{L$&*roF zY(AUM=HE~A*?cyiJzv=Kg*{)`^M#vbsTbRa?ZftA`>@ZONxMGRe(d?f_GA08{kXSW zpUb{qvAirV%gd4X7f0UCk+*Z??HqYKN1o2{dEYrc?>oomedqYR?;QJd*5`iot54P^ R`@X@xZ?Nwh?EA)k`xkYvSf~I1 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-objects.json new file mode 100644 index 0000000..9601ab1 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-objects.json @@ -0,0 +1,30 @@ +[ + "SideTable", + "Statue", + "Newspaper", + "KeyChain", + "Plate", + "HousePlant", + "Pillow", + "FloorLamp", + "CreditCard", + "Painting", + "Chair", + "Television", + "Laptop", + "Watch", + "Box", + "Window", + "Lamp", + "CoffeeTable", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "DiningTable", + "Sofa", + "ArmChair", + "RemoteControl", + "TissueBox", + "Boots" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-openable.json new file mode 100644 index 0000000..05f2e06 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan230-openable.json @@ -0,0 +1,50 @@ +{ + "ArmChair|-02.69|+00.00|+04.62": [ + -2.5, + 5.5, + 180, + 30 + ], + "ArmChair|-03.66|+00.00|+04.56": [ + -3.75, + 5.5, + 180, + 30 + ], + "CoffeeTable|-03.13|+00.02|+08.53": [ + -4.5, + 8.0, + 90, + 30 + ], + "CoffeeTable|-03.24|+00.01|+06.60": [ + -4.25, + 6.5, + 90, + 30 + ], + "DiningTable|-02.90|+00.01|+02.23": [ + -1.5, + 2.25, + 270, + 30 + ], + "SideTable|-00.40|+00.66|+00.36": [ + -1.25, + 0.75, + 90, + 30 + ], + "SideTable|-00.53|+00.66|+08.52": [ + -1.25, + 8.25, + 90, + 30 + ], + "Sofa|-01.74|-00.08|+06.45": [ + -2.5, + 6.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan24-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan24-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..53e722d54a4bb4900b642510af62221bf45b8227 GIT binary patch literal 1104 zcmbW!F-ikL6oBDTL?q-8)2+fbS_BC~wz5-fEUaWP8!W_xU9k~Q;eotDj*!yQB1MW6 zMs~i!DV-*K^TNCz_T&2Y>gH}QyoR@8+H??7S#rF`Kt9ZT);dZ>P=g{bl{s zHM{%nv0gMgACFGUcy?08_xRs42!GCc(sTRS|8A1~iOsj!oXta(-bwHAI`entugt5= z%gp+`Z~uO_pY3P+*?zX4?dOmVFDLy4>p7_U`%UU+J*M1dRPzZ zVLhye^{^h+!+MUg9@fKpSP$!AJ*&1J*R!x{#G{yubH;s#flOa;#K*SW|VmyTh(jzf2FffQ|-#|yZ zG++PnfY)}v*&PPrE*>h?<;kd}RI6;E0;#gX+)Q#g7ADod^L3J!x;rn=$yIlrhVwv% zvp_!OziT4w`q-_C?B2fnZamkXE6>99>Zsqt^e{bKxgMt1cs)!H)5G*|>-w$h@jT{v b%zY8t|KUDnKJ@08`N*4N-iP^K-{bfTj00ZQ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-objects.json new file mode 100644 index 0000000..336b934 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-objects.json @@ -0,0 +1,40 @@ +[ + "Ladle", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Cup", + "Bread", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-openable.json new file mode 100644 index 0000000..bebc734 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan25-openable.json @@ -0,0 +1,104 @@ +{ + "Cabinet|-01.29|+00.39|+00.56": [ + -1.0, + 1.5, + 180, + 30 + ], + "Cabinet|-02.24|+00.39|+00.56": [ + -1.5, + 1.5, + 180, + 30 + ], + "Cabinet|-02.38|+02.01|+02.58": [ + -1.75, + 2.25, + 270, + -30 + ], + "Cabinet|-02.38|+02.02|+01.72": [ + -1.75, + 1.75, + 270, + -30 + ], + "Cabinet|-02.44|+00.39|+01.67": [ + -1.5, + 1.0, + 270, + 30 + ], + "Cabinet|-02.77|+01.80|+00.51": [ + -1.5, + 1.0, + 270, + 0 + ], + "Cabinet|-02.78|+01.80|+00.82": [ + -2.0, + 1.0, + 270, + 0 + ], + "Cabinet|-02.78|+01.80|+00.83": [ + -2.0, + 1.25, + 270, + 0 + ], + "CounterTop|-01.56|+00.86|+00.28": [ + -1.0, + 1.0, + 180, + 30 + ], + "Drawer|-00.40|+00.70|+00.91": [ + -1.25, + 1.25, + 90, + 30 + ], + "Drawer|-00.40|+00.70|+01.25": [ + -1.25, + 1.0, + 90, + 30 + ], + "Drawer|-00.86|+00.71|+00.42": [ + -1.25, + 1.25, + 180, + 30 + ], + "Drawer|-01.13|+00.71|+00.42": [ + -1.5, + 1.25, + 180, + 30 + ], + "Drawer|-02.59|+00.70|+01.51": [ + -1.75, + 1.75, + 270, + 30 + ], + "Fridge|-02.78|+00.00|+02.22": [ + -1.75, + 2.25, + 270, + 30 + ], + "Microwave|-02.80|+00.81|+01.35": [ + -2.0, + 1.25, + 270, + 30 + ], + "Sink|-01.84|+00.73|+00.34|SinkBasin": [ + -1.5, + 1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..3d14cde642c19f6ad4ba4f30b3be9451cafd29f5 GIT binary patch literal 1344 zcmbWzu}Z^G0EW?PDI!J0zCpGqWO7gup_$wi7Y8Q^HpM}#B;q1Ig%4yO$1y{P4jHUX z&fp!JC7gu&{UKjBch|S~JK;Tiq|>r~tkR1ly_}t=S(47?)mv4(Jj|v$ogTBx9*dDL? z9^2<8dT-x*`>SZ5?X!Kh&-U3q+h_f@-*5ZxWqsCXeb#6Fkaz!ApI7}J>$5)V4Wb_F zu^#KO-Y^fF%lEM!>#-h(Mc3KQySpCiu^#KO-d@yWJ=SAA)*D4V)?+=^W4-;T$9k;C hdaQR4^;nPfSdabx!@lP{JI~Iu^W*3|JI~IK^I!U}ygvW{ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-objects.json new file mode 100644 index 0000000..59e58bc --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-objects.json @@ -0,0 +1,39 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-openable.json new file mode 100644 index 0000000..6f6a1fb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan26-openable.json @@ -0,0 +1,92 @@ +{ + "Cabinet|-00.48|+02.05|+00.39": [ + -0.75, + 1.25, + 180, + -30 + ], + "Cabinet|-00.52|+02.05|+00.39": [ + -0.75, + 1.0, + 180, + -30 + ], + "Cabinet|-01.48|+02.05|+00.39": [ + -1.25, + 1.0, + 180, + -30 + ], + "Cabinet|-01.51|+02.05|+00.39": [ + -1.75, + 1.0, + 180, + 30 + ], + "Cabinet|-02.47|+02.05|+00.39": [ + -2.0, + 1.0, + 180, + 30 + ], + "CounterTop|-01.37|+00.95|+00.35": [ + -2.0, + 1.25, + 180, + 30 + ], + "CounterTop|-02.78|+00.97|+03.49": [ + -2.0, + 3.5, + 270, + 30 + ], + "DiningTable|-00.47|+00.01|+03.00": [ + -1.25, + 2.75, + 90, + 30 + ], + "DiningTable|-02.76|+00.01|+02.36": [ + -2.0, + 2.5, + 270, + 30 + ], + "Drawer|-00.33|+00.70|+00.41": [ + -0.75, + 1.5, + 180, + 30 + ], + "Drawer|-01.82|+00.70|+00.41": [ + -1.0, + 1.25, + 270, + 30 + ], + "Drawer|-02.32|+00.70|+00.41": [ + -1.5, + 1.25, + 270, + 30 + ], + "Fridge|-02.80|+00.00|+04.43": [ + -1.75, + 4.25, + 270, + 30 + ], + "Microwave|-00.36|+00.91|+00.22": [ + -0.75, + 1.25, + 180, + 30 + ], + "Sink|-01.11|+00.93|+00.34|SinkBasin": [ + -0.75, + 1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan27-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan27-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..1a4bd25dea6606fee6ab662fa1de0b1b24d0174d GIT binary patch literal 816 zcmbV}p$@_@6h({WE9weK6(9&9VG0MqAW&psT@ZwkmS6~9!3XgR`-Dj(0)apf|x?dMQbKm(i-33?A!!|v*nmdEO z)xECO7ya*PtDjTd8Z0MGN-pDl74PA@;D_L+VES23A50%iA50&NPcJ@<597o5BtDD} zWBYl$O8sN6Zg!93)aP6u>tlVakM;5X&}YwHuzr8n&-&SSIZpk~^|OA~&-z)v z@9Jm$te^F>ezu3>)bCtB>u3F}-*@!0e%8e%8u3F}pY^kT*2Qt^^*i*kUe?QcSug8ly{wn@vR-!oefU4= PKD*EEufu(If4%$xle`QW literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-objects.json new file mode 100644 index 0000000..39be0d6 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-objects.json @@ -0,0 +1,41 @@ +[ + "SideTable", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Blinds", + "Fridge", + "Window", + "Mug", + "Drawer", + "Cup", + "Bread", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-openable.json new file mode 100644 index 0000000..8601b58 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan28-openable.json @@ -0,0 +1,110 @@ +{ + "Cabinet|-00.33|+01.89|-02.51": [ + -1.0, + -3.0, + 90, + 0 + ], + "Cabinet|-00.34|+01.89|-01.29": [ + -1.0, + -1.5, + 90, + 0 + ], + "Cabinet|-00.34|+02.11|-00.39": [ + -1.5, + -1.0, + 90, + 0 + ], + "Cabinet|-00.34|+02.11|-01.27": [ + -1.5, + -1.5, + 90, + 0 + ], + "Cabinet|-00.35|+01.89|-03.29": [ + -1.0, + -2.25, + 180, + 0 + ], + "Cabinet|-00.63|+00.39|-01.61": [ + -1.5, + -1.5, + 90, + 30 + ], + "Cabinet|-00.63|+00.39|-02.51": [ + -1.5, + -2.25, + 90, + 30 + ], + "Cabinet|-00.63|+00.39|-03.01": [ + -1.75, + -2.75, + 90, + 30 + ], + "Cabinet|-01.01|+00.39|-03.37": [ + -1.75, + -2.5, + 180, + 30 + ], + "CounterTop|-00.33|+00.98|-01.45": [ + -1.0, + -1.5, + 90, + 30 + ], + "CounterTop|-01.94|+00.98|-03.67": [ + -1.5, + -3.0, + 180, + 30 + ], + "DiningTable|-03.03|+00.00|-00.44": [ + -3.0, + -1.25, + 0, + 30 + ], + "DiningTable|-03.62|+00.67|-03.32": [ + -3.5, + -2.25, + 180, + 30 + ], + "Drawer|-00.48|+00.78|-02.74": [ + -1.25, + -2.5, + 90, + 30 + ], + "Fridge|-00.31|+00.00|-00.65": [ + -1.25, + -0.75, + 90, + 30 + ], + "Microwave|-00.22|+01.47|-02.06": [ + -1.0, + -2.0, + 90, + 0 + ], + "SideTable|-04.07|+00.73|-00.31": [ + -3.75, + -1.25, + 0, + 30 + ], + "Sink|-00.60|+00.93|-03.39|SinkBasin": [ + -2.0, + -2.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a7eaa18eccc26af87fc82804a60e3f774ecbc49c GIT binary patch literal 1168 zcmbWzu}Z^G6o>Ka>QiKkLMA~G5$xnvadB{xU{f5#N+K@Br|^OL3VDQ%9W!)raIl*5 z6TG8Y4&S{e=lh@geswdwzTHc&X<5#i?!GP0it>DZT2@6lU$if6{dBizXU+HdW&PMS zyYud$er|SraB^G~M~7AMR{ZzdPd{J38tW$NNGaj|;_v-B<4wjx&a3hNbyRaPKjz2$ zm>=`wkMQFmygd9^AI_^hzvnR@%Y)^?-UDy5|K)W*L|$HbvAkHnchZmbWBqdL$NF>5 z_u9rDa$p{84mJnpwU7P1i}~1mY(6$050Mk|;k@#HX8U1&%#ZmoKjz2$m_JQy9yOTX OJwN8h{Foo}r^y$k(X|8s literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-objects.json new file mode 100644 index 0000000..32af6cc --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-objects.json @@ -0,0 +1,38 @@ +[ + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Fridge", + "Mug", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-openable.json new file mode 100644 index 0000000..b6df1ea --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan29-openable.json @@ -0,0 +1,68 @@ +{ + "Cabinet|+01.34|+00.59|-01.11": [ + 0.75, + -0.25, + 180, + 30 + ], + "Cabinet|+01.99|+00.59|-01.11": [ + 1.5, + -0.25, + 180, + 30 + ], + "Cabinet|+01.99|+01.40|-01.11": [ + 1.5, + -0.5, + 180, + 0 + ], + "Cabinet|-00.85|+00.59|-01.11": [ + -0.25, + -0.25, + 180, + 30 + ], + "Cabinet|-01.53|+00.59|-01.11": [ + -1.0, + -0.25, + 180, + 30 + ], + "Cabinet|-01.55|+02.00|-01.11": [ + -1.0, + 0.0, + 180, + -30 + ], + "CounterTop|+00.20|+01.08|-01.51": [ + 1.0, + -0.75, + 180, + 30 + ], + "CounterTop|+00.97|+01.08|+00.42": [ + -0.5, + 0.5, + 90, + 30 + ], + "Fridge|-01.29|+00.02|+01.83": [ + 0.0, + 1.75, + 270, + 0 + ], + "Microwave|-01.20|+01.61|-01.28": [ + -1.0, + -0.5, + 180, + 0 + ], + "Sink|+00.93|+00.94|+00.32|SinkBasin": [ + 1.0, + -0.25, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..815629abf5a36a7d8661abae447487dfdfd7f17c GIT binary patch literal 1792 zcmbWzp-#h46oBCilBcLEBojaogpe?WgJ2LSval`)!bnRngs0$v#v}9*CMPQ)WfFyPfow-pg^-Jk;e`QJzmu%Ry02ruAz*dcL35-|`d^;nPfR-wmwtjBt+w+ubjV?EYmJ*V$wJ#O<})?=qmJoU`=SdZI_e!}{(!|~KN z*Jpj!_nf`#K8~mUcAnp#=fR8MZl>_}yG`w9U5=;kGq<1ZXZt<3{r>!(_PcIB>u@~n zH@DB+KDLkTWBXW_^?j#4>$5)Vvp(y0`Tx;peb#4vZgYqAm!Z%4+|K$U>$5(0`TkYt gvp%=setp;V)}hCGtjBt+mxlcn|1ayY9_yvyH?jE|xBvhE literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-objects.json new file mode 100644 index 0000000..774710a --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-objects.json @@ -0,0 +1,43 @@ +[ + "SideTable", + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "HousePlant", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "WineBottle", + "Toaster", + "Egg", + "Pan", + "Chair", + "SinkBasin", + "Apple", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "Kettle", + "PaperTowelRoll", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-openable.json new file mode 100644 index 0000000..3681a30 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan3-openable.json @@ -0,0 +1,98 @@ +{ + "Cabinet|+00.58|+00.78|-02.05": [ + -0.25, + -2.25, + 90, + 30 + ], + "Cabinet|-01.46|+00.78|+00.47": [ + -0.5, + 0.0, + 270, + 30 + ], + "Cabinet|-01.46|+00.78|+01.31": [ + -0.5, + 1.75, + 270, + 30 + ], + "Cabinet|-01.46|+00.78|-02.00": [ + -0.5, + -1.5, + 270, + 30 + ], + "CounterTop|-01.81|+01.36|+01.18": [ + -1.0, + 1.25, + 270, + 30 + ], + "Drawer|+00.71|+00.85|+01.02": [ + 0.0, + 1.5, + 90, + 30 + ], + "Drawer|+00.71|+01.06|+01.02": [ + 0.0, + 0.75, + 90, + 30 + ], + "Drawer|+00.72|+00.59|+00.68": [ + -0.25, + 0.0, + 90, + 30 + ], + "Drawer|+00.72|+00.59|+01.02": [ + -0.25, + 0.5, + 90, + 30 + ], + "Drawer|+00.72|+00.84|+00.68": [ + 0.0, + 0.25, + 90, + 30 + ], + "Drawer|+00.72|+01.06|+00.68": [ + 0.0, + 0.25, + 90, + 30 + ], + "Fridge|+01.01|+00.23|+01.92": [ + 0.0, + 2.0, + 90, + 0 + ], + "GarbageCan|-01.63|+00.22|+02.19": [ + -1.0, + 1.25, + 0, + 30 + ], + "Microwave|+01.16|+01.19|+00.85": [ + 0.25, + 0.75, + 90, + 30 + ], + "SideTable|+01.02|+01.24|+00.87": [ + 0.25, + 1.0, + 90, + 30 + ], + "Sink|-01.99|+01.14|-00.98|SinkBasin": [ + -1.0, + -0.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan30-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan30-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..7fd7e91aacda05730aab0071382774eca8719692 GIT binary patch literal 1072 zcmbV}F>b;@5JeX&N|94+w;;KS6p0`tT%{vQLy-zuU_^lc*(goKDL7EBz!6-!bm4-6 z0+O9K#gy4*_KkPneA}n@+4SSH=f2!`SQgcy3?m=Lt6@leSnbL~nQ!O2a#{TL-||gW z-22r!-xqi8zr3dYd64>}|L=Noab>Y|Kd~l;op5WO!||4LjXXb3Vh64bUk&5ud?NGU zvv_N%%!8Q+GY@WL9^4x43||bBm;2;}$qPS7ewh4J^26kZ$qzFRW**Eu7{As`cYmA2 zF!woyhg{m1@1l8x@o^p>jF0!ir<}zOj1R^K9w4<{asg{7UkJuT2@85Sa#1{^LV@L=Izh?ym{!` z-MqhVp4uHBPEV@h_^2x0ivJ!5>G#-tjJeIZ4!jCHUY(NbSF^wO+b8YA_F?<5efTr) z$6tX{J#KJb>W!)2TtC*2*SQaG0&fEkf%&_iKjx1o`FZeuU_PFM59WjUU_O`+=7afQ zKA2C+2OrD_5BdFIK9~>YgD16LWAZWO*V?=`Q@ZoSkvnJJG}FO**9a~&(47xre;%b~ED`TDE$T$1+Id(g)KA(+ATBOKs`(+6iVq+^gII%s$LM%s$LMES3G> M`#pT#53}DT9}otFVE_OC literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-objects.json new file mode 100644 index 0000000..c8609c3 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-objects.json @@ -0,0 +1,30 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "HousePlant", + "TennisRacket", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Painting", + "Pen", + "Bed", + "Chair", + "Blinds", + "Laptop", + "Window", + "Drawer", + "Pencil", + "TeddyBear", + "Safe", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-openable.json new file mode 100644 index 0000000..bc944b0 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan302-openable.json @@ -0,0 +1,62 @@ +{ + "Bed|+01.24|+00.00|-00.90": [ + 0.0, + -0.75, + 90, + 30 + ], + "Desk|-01.01|-00.01|-01.12": [ + -0.25, + -0.75, + 270, + 30 + ], + "Drawer|+00.31|+00.17|+01.23": [ + -0.25, + 0.25, + 0, + 30 + ], + "Drawer|+00.31|+00.46|+01.23": [ + -0.5, + 0.5, + 90, + 30 + ], + "Safe|+01.64|+00.00|+00.44": [ + 0.5, + 0.75, + 90, + 30 + ], + "Shelf|-00.47|+00.83|-02.04": [ + 0.0, + -1.0, + 180, + 30 + ], + "Shelf|-01.29|+01.81|-00.60": [ + -0.5, + -0.5, + 270, + -30 + ], + "Shelf|-01.29|+01.81|-01.34": [ + -0.25, + -1.0, + 270, + 0 + ], + "SideTable|+00.31|+00.46|+01.23": [ + -0.75, + 1.0, + 90, + 30 + ], + "SideTable|+00.41|+00.00|-01.68": [ + -0.25, + -0.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan303-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan303-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..baf92ab6090056f5a49f9f89c338255e1c9abbeb GIT binary patch literal 1424 zcmbW#u};EJ6oBFD>Qi*9CS7zQ#)QpH|z#!WD zk#I&?Zob>wo}a?k&E56w{ZV>PALX=OJT~P;QC`kQWmS~3dGppxULNMnwEo?{nmjM+ z-TvZf@>=hFGCHe@^V6#MEdKjBPJf?vJgn(^SXaTWZoz5DBV9_wYjte5q&Ue+DEIIeo_>t*kk^|D^p%X(Qa`#-XNUA`AP x$8pua-_P%x^|OA~&waRGzw7$B%fG)4{j8te$8q)k?dxa#te^Yb&-z(^NIL$y3x7k_tcpAz=y!!5~niVOG{In?ZV!mu%o9g*t+05$S{#CVT z>utY%s$S|X9~>W@mHEkGnSbQ}eDm=F7&&hcY@%#Y2%vGVKl zV}ASiF+c9oyI7pI@IJ^W!djH-781gWG`(u90kNGh_=EwY)f5M;c0h^D_$L3@6C(|G79uR5( literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-objects.json new file mode 100644 index 0000000..4a1fc74 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-objects.json @@ -0,0 +1,30 @@ +[ + "Shelf", + "Statue", + "Book", + "LaundryHamperLid", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Pen", + "Bed", + "Chair", + "Blinds", + "Laptop", + "Box", + "Window", + "Mug", + "Drawer", + "Pencil", + "BasketBall", + "LaundryHamper", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-openable.json new file mode 100644 index 0000000..0ff8143 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan304-openable.json @@ -0,0 +1,20 @@ +{ + "Bed|-01.31|+00.69|+01.47": [ + -0.25, + 1.5, + 270, + 30 + ], + "Bed|-01.31|+01.93|+01.47": [ + 0.5, + 1.5, + 270, + 0 + ], + "Desk|-00.88|+00.00|-01.41": [ + -1.25, + -0.75, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..4b787ae17d6fcb4a3a90433ea58b604a71e8dcc7 GIT binary patch literal 1488 zcmbW#u}Z^07{Kwk`V`rskVz1V2;JNi7Y8Q^HpM}#B;q1Ig%8wMxJT&NF++xqR&&3C z-)NWPce(riP4(;M?)vursCX|vszuvBcGX2$T`p%;T~^Cg_trHp536p`{_I~h&wab! z@1L62cJGtfd0n2J*5zmU-_LRJ``NCib zJoi{H&gHo3+1Fz|_I|8qj_<+Faa{H6>#-i|xu?f^>>kHe@35bLPu6p8$bS#kV?8#9 z)F?1J=SAAHkac%=J(lz|0C98J=SAAHh&xDv-xa3o6qL6_hDVuA3~q?S)cV; rpOd+H)%Sc{Pd7&Ag7rPuXMNUZeb#6FUFfqu>vPKAm-Shn^>_1c7Dn|O literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-objects.json new file mode 100644 index 0000000..df0bf28 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-objects.json @@ -0,0 +1,32 @@ +[ + "Shelf", + "Book", + "LaundryHamperLid", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Bed", + "Pen", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Box", + "Window", + "Mug", + "Drawer", + "Pencil", + "BasketBall", + "LaundryHamper", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Poster", + "Dresser", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-openable.json new file mode 100644 index 0000000..37a4b01 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan305-openable.json @@ -0,0 +1,44 @@ +{ + "Bed|+00.96|+00.00|-00.72": [ + 0.0, + -0.5, + 90, + 30 + ], + "Desk|+01.19|+00.00|+01.30": [ + 0.5, + 1.25, + 90, + 30 + ], + "Drawer|+01.13|+00.16|+01.74": [ + 0.0, + 1.25, + 90, + 30 + ], + "Drawer|+01.13|+00.40|+01.74": [ + 0.0, + 1.25, + 90, + 30 + ], + "Drawer|+01.13|+00.62|+01.74": [ + 0.25, + 1.5, + 90, + 30 + ], + "Dresser|-00.09|+00.02|-01.72": [ + 0.0, + -1.0, + 180, + 30 + ], + "Shelf|+01.34|+01.13|+01.38": [ + 0.5, + 1.5, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..8eb4a7bafa8611cac06e3787a4a199954d8a5eeb GIT binary patch literal 1616 zcmbW!y-LGS7=YneM8vDe7KKc@s0i)krnopbNwFyoVkH$9@hZHa-a;>-W5)~~IyhL( zc>?{w#Vp6?%g;G){k*=ty1CoQ-m>>%R81f1;yf=d#-~M@7vo9&S`VM^C-tcMnO_c{ zrqyOXeH^}28y}vXl=<;dnSbQ}y$-V9YuRtt^=#X#hPjFO$8`_Ur7q zKh}Aex2MdqMVi}>?Z@`(?7i?^`^43L-MrsU*nVt3Zo>0l!P#K@d%fV@;Jx7eV83gY zF5T>099O@mxjxp%`goQ4cpa?Yef``U_^Vy@o9bu%tY3$I*3aJKxav38&yD|QTJ^iH zpY^kT?hV=#v3}Oi`dPno>u3F}pM8hps^7dx-K?MWvwqgk`dL5gXZ@_dJLjw|Wc{q4 c^>g>#)M;+j&-z(E>u3F}pY^kT*1zn31MscZQUCw| literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-objects.json new file mode 100644 index 0000000..f78d8df --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-objects.json @@ -0,0 +1,27 @@ +[ + "Shelf", + "SideTable", + "Book", + "LaundryHamperLid", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Pen", + "Bed", + "Chair", + "Blinds", + "Laptop", + "Window", + "Drawer", + "Pencil", + "TeddyBear", + "LaundryHamper", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-openable.json new file mode 100644 index 0000000..8009d9e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan306-openable.json @@ -0,0 +1,56 @@ +{ + "Bed|+02.32|+00.00|-01.06": [ + 0.5, + -1.0, + 90, + 30 + ], + "Desk|-00.53|00.00|-01.53": [ + -0.75, + -0.75, + 180, + 30 + ], + "Drawer|+02.44|+00.13|+01.16": [ + 3.0, + 0.0, + 0, + 30 + ], + "Drawer|+02.44|+00.36|+01.16": [ + 3.0, + 0.25, + 0, + 30 + ], + "Drawer|-00.94|+00.21|-01.19": [ + -0.25, + 0.0, + 180, + 30 + ], + "Drawer|-00.94|+00.49|-01.19": [ + -0.5, + -0.25, + 180, + 30 + ], + "Drawer|-00.94|+00.73|-01.19": [ + -0.75, + -0.25, + 180, + 30 + ], + "Shelf|+00.76|+00.93|-01.91": [ + 0.25, + -0.75, + 180, + 30 + ], + "SideTable|+02.44|+00.01|+01.23": [ + 1.25, + 0.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan307-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan307-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..ae8c18375ebc163c21c058dfe9b513318c2ae84f GIT binary patch literal 1552 zcmbWzp-#g<7{Kvjd5XG1GKCt1WDWl82E34JIeQN86n{~Tve%8xro zcX#z;v-83Hcvc=A&dS&FzrX$B_t!7RS$vFhcpv9i%s%rrbIQH=yML2;o7w&DbN^?Y z>wb1WZ{j=F!(&ZRaEkj`AM0a%ljA;}dRPzZVLhCphxM=??z8W`kEw_CaEgA`!zs>Z zJ*w4JxupZXKdU%K)_jotf&GvCV z^-b&XUaXJxu|C%4+&+3)AM0c1a6VJ?S=Yz!_ea@#_EF5rC3~Snw7uvSJUTZ zxu0J?O<&7BpPY||`Pu0(|IGjU9A|&edfbiMRX5hbZLoE`N!FW$+l03Xca|(`R);>! zhxsrcZsUH;hxs;%5A$I@%!m0fALd&pKFo*tFdyc_e7NR`k-wiG$9Il(e(U_0AGgVQ ze(OfwbgbjNd49}~`7uA{$NhImI#VyUUx$9&-y8SYuhV{PKlVHD9?oOuvGYBDcQf95 zw>sn|VLto$aGmVuvz~>|cjd$W7jPT*;U-}{*7aaLSWnNXGfe4yGG>BEOpm+&hLdujb zT)1$-FyB1|x6BlnV_Wg-CqIAQeR%u+dAVt zo~$S9$)3acsHgLKvYxCb>&beuo~$S9$$GM$tS2wgm-X~sda|CZC+o?2vYza@oR4}s zuP5utda|B8#QU&bR-KI-Ybo;=*uf~+SG z(TDY9J$X#`Psw_^Ur*N4ZarB~)|2&QJy}oIll5e~I3M+Neu$o|C+o?2vYxCbPtlY0 zWc}>YkM(2ySU=W}^<({5Kh}@!gXZzWHwx5^S!}hcN zY(Lx2_Oty<+Ryg0{cJzm&r9s*IoW>K?PvShezw1K<@oXY%l5PVY(Lx2_VXP3*?zX4 z?PvRWNMEnM#o^zs{%^R9Ghu(XT=#c?$8`UctXC6XPcLr!a{M%1J+AtCY`Qr1aSZF# zg!N**STEL#^%;o6 zK3vz9!uqg2tPktM`m|mB%KC8I*Ym6oH|csw*2n$&us*C0>%;o6K3vz9!uqg2tPktM zQ~bVh8}E10)hFq}O}eg!>w2&rtOx7Cdaxd>2iKLQupX=j>%n@k9y~`MUXs1vY4oy> i?PL4cKDLkTWBb@X_WZNhFMG}2ibd1ix5ZgroG(v{GB1{^_NA?#?pE!h`PsjyAG>C| z-#ygN&DICUCuM$gSmy8ff3N-Q_u5qR`n8_dA$Sa)g8Ssp_1}4H9-GJJ@g~ig(%J{l zr)1ggel_o~_hIMr7@l{&`+AJwT#oCIp0lq%_u;<&yZfmR>(BbL{yc@e{(5;YmgBhU zZ@*9dS%2=+`K&+d&-%0etiK-mv;Hi{aW&6-n8)U^d2Alb`wsFf&+;tahyTX%EYDN= UAHK8mS)S!t-hYv2d6pllZ`y9#&j0`b literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-objects.json new file mode 100644 index 0000000..990e23c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-objects.json @@ -0,0 +1,30 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "TennisRacket", + "Pillow", + "CD", + "CreditCard", + "Bed", + "Pen", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "Lamp", + "BasketBall", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Poster", + "Desk", + "Cabinet", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-openable.json new file mode 100644 index 0000000..e520f46 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan310-openable.json @@ -0,0 +1,68 @@ +{ + "Bed|+01.18|+00.00|+00.24": [ + -0.5, + 0.25, + 90, + 30 + ], + "Cabinet|-00.03|+01.53|-01.92": [ + -0.25, + -1.25, + 180, + 0 + ], + "Cabinet|-00.79|+01.53|-01.92": [ + -0.5, + -1.25, + 180, + 0 + ], + "Cabinet|-01.08|+01.53|-01.92": [ + -1.5, + -1.0, + 180, + 0 + ], + "Cabinet|-01.84|+01.53|-01.92": [ + -1.5, + -1.0, + 180, + 0 + ], + "Desk|-00.96|00.00|-02.06": [ + -0.5, + -1.25, + 180, + 30 + ], + "Drawer|+01.60|+00.17|-00.99": [ + 0.5, + -1.5, + 90, + 30 + ], + "Drawer|+01.60|+00.46|-00.99": [ + 0.75, + -1.25, + 90, + 30 + ], + "GarbageCan|+00.13|+00.00|-02.15": [ + 0.0, + -1.25, + 180, + 30 + ], + "Shelf|-00.94|+01.34|-02.12": [ + -0.5, + -1.25, + 180, + 0 + ], + "SideTable|+01.60|+00.46|-00.99": [ + 1.0, + -0.75, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan311-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan311-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..54a3eaff21dd0689cf0129a413e729d264c91273 GIT binary patch literal 3728 zcmbW%u}U0K6b9fMksuvz z#S|76(Vg=NIi)t2Z|2_r{%2SA@9Fu;*~N!)Uw+ru)5X=i{#MoBZw~8WRo~3!zvh!4 zm$Uix^!54iD0!tVRdJ>QD8~zs<7xdsz1CQ>;yL|F)F3_ecNl ze@K2zZj-y@r{w44GEVm`dv~$w%l+F@xQRU0m-Xc~?bp|PeOX`jdA6w^>&H#p$NI5; z+@}3qvVQjK$ND{{eykts$NI5;tRL&g`muhjpS6jetRL&g`muhjAM3~Zv3}g8&&}tm zr#aX;&Z~Lep2zpe=3(=&dALjG&Evg!*gSf)F&~?U&BJmyuTAvv+&pX^HV=2{ym`Dg z51Yrm=3(=&dDuKGm-A{K&&|WF?;}?8cyAsy5BvS&ZrL|-uld+~Y(6$0n~&YYc{QKs zZOp~yWAm~3*nDh0_n42($L3@6vH941>|V~R`8+otn~%-M=3}eeyvp}nKFeqMEI;RP zUgdi(pXIZB=iJNoabD$nE}z%N{Wr$$bIyJ2K6Z}t>ORlqdoG{lvwW7rd6jQ2`7EF1 zvwW7fJ}#?2c`T3Ru{@UdG3Bv5mdDO-r1R`NJJ0&C{hN_zKikjVZ^eG+x6^rcp6&mX z_Ot!m#P9Ft*k9t0oA^Cszc1|bV&5O@!{%ds*#8@^MKAU}v;JRVU(_$GKkLu>v;M3< z>(BbL{;WUi&+>PozkHU@@>xF1XaCnMe>d)v&+=J5%V&9eDUao`JeJ4u1}Tr_u{@SH G82&N<;s~_vf`muhjADhE*)z7|utRL&g`muhj-`|}4K3PB3 XkM-j|zYmV9{PyK%`B{FJKTW>@otUpd?^_ zDPGAo$HDvvJ@%ftP+FWv^;1=b&Xa8&&Vf6T-Bv3{%{>z8Y9>>iHl|M~i{{sXUvFYokW Xeb_r3RUcm;mgk;4>>iFPub=z?j(U^6 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-objects.json new file mode 100644 index 0000000..d8fe450 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-objects.json @@ -0,0 +1,32 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "HousePlant", + "TennisRacket", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Bed", + "Pen", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Box", + "Window", + "Mug", + "Drawer", + "Pencil", + "Lamp", + "TeddyBear", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "TissueBox", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-openable.json new file mode 100644 index 0000000..2c92d68 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan313-openable.json @@ -0,0 +1,68 @@ +{ + "Bed|-01.78|00.00|-00.03": [ + -0.5, + 0.0, + 270, + 30 + ], + "Desk|+00.63|-00.04|-01.63": [ + 1.0, + -0.5, + 180, + 30 + ], + "Drawer|+00.39|+00.13|-01.46": [ + 1.0, + -0.25, + 180, + 30 + ], + "Drawer|+00.39|+00.33|-01.46": [ + 0.75, + -0.5, + 180, + 30 + ], + "Drawer|+00.39|+00.54|-01.46": [ + 0.0, + -0.5, + 180, + 30 + ], + "Drawer|-00.03|+00.13|-01.46": [ + 0.5, + -0.25, + 180, + 30 + ], + "Drawer|-00.03|+00.33|-01.46": [ + -0.5, + -0.5, + 180, + 30 + ], + "Drawer|-00.03|+00.54|-01.46": [ + -0.5, + -0.5, + 180, + 30 + ], + "Shelf|+01.54|+00.48|-00.47": [ + 0.75, + -0.25, + 90, + 30 + ], + "Shelf|+01.55|+01.40|+00.38": [ + 0.0, + 0.5, + 90, + 30 + ], + "SideTable|+01.56|-00.01|-00.47": [ + 0.5, + -0.25, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan314-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan314-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..cfaa96ed7df24e0bc39e986114678e9636c995a8 GIT binary patch literal 1408 zcmbW#p-#h46b9hSBu{Z&A*mp!g^*B%gJ2LS(y%TF!j_g`2v5NS?G^S2lamt_2n2)n zGbbo!PQIIa{=eP!aeaGrb9azl(_1lXx`(zn%ftlVaZxi}hAM0a%tdI4vzIEtheXNiB@%v$YtdI2#zfMZNPu9o! zSRdKBFe$xG(AGOy* zH$NY)+S_jK?eXrosrPo8`mtW}8KuRu{_;1s%B+Idf>(px-z?`$9mFr@nK2)@Oazj~$Lv-?={P^K1FPviIrOgME(U^gid_$ND~}&-&~h$EojJ O-?={Pvp(za|NH?a)f@}} literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-objects.json new file mode 100644 index 0000000..b411afc --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-objects.json @@ -0,0 +1,26 @@ +[ + "Book", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bed", + "Pen", + "BaseballBat", + "Blinds", + "Laptop", + "Window", + "Mug", + "Drawer", + "Pencil", + "TeddyBear", + "CoffeeTable", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "DiningTable", + "Dresser", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-openable.json new file mode 100644 index 0000000..cba389e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan315-openable.json @@ -0,0 +1,104 @@ +{ + "Bed|-02.98|+00.01|-01.18": [ + -3.0, + -3.25, + 0, + 30 + ], + "CoffeeTable|-00.50|+00.29|-03.99": [ + -0.75, + -3.0, + 180, + 30 + ], + "DiningTable|-00.86|+00.01|-04.03": [ + -1.0, + -3.0, + 180, + 30 + ], + "Drawer|-00.50|+00.06|-03.80": [ + -1.0, + -2.5, + 180, + 30 + ], + "Drawer|-00.50|+00.22|-03.80": [ + -1.0, + -2.5, + 180, + 30 + ], + "Drawer|-00.50|+00.38|-03.80": [ + -1.0, + -2.75, + 180, + 30 + ], + "Drawer|-03.62|+00.11|-03.28": [ + -2.0, + -2.75, + 270, + 30 + ], + "Drawer|-03.62|+00.11|-04.07": [ + -2.0, + -3.5, + 270, + 30 + ], + "Drawer|-03.62|+00.29|-03.28": [ + -2.25, + -3.75, + 270, + 30 + ], + "Drawer|-03.62|+00.29|-04.07": [ + -2.25, + -3.75, + 270, + 30 + ], + "Drawer|-03.62|+00.49|-03.28": [ + -2.75, + -4.0, + 0, + 30 + ], + "Drawer|-03.62|+00.49|-04.07": [ + -2.75, + -3.0, + 180, + 30 + ], + "Drawer|-03.62|+00.68|-03.28": [ + -2.5, + -3.5, + 270, + 30 + ], + "Drawer|-03.62|+00.68|-04.07": [ + -2.5, + -4.0, + 270, + 30 + ], + "Drawer|-03.62|+00.87|-03.28": [ + -3.0, + -4.0, + 0, + 30 + ], + "Drawer|-03.62|+00.87|-04.07": [ + -3.0, + -3.25, + 180, + 30 + ], + "Dresser|-03.78|+00.01|-03.68": [ + -3.0, + -4.0, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..6d83f59eb4e355ad5d0e7f104faadc30d538014d GIT binary patch literal 1056 zcmbWzu}Z^G7>42F>Q!Vr3Yi3-pY!=jtDKl7{Rxo>y# z{;7FwcYJa_sjIWox>{BLeU8)bv;N%YSIHsp{%uN!_tU@UH|6}cq&}<<>%&9o!|TBM z$Iy@UWBph^){i&EhsVJD()Zz^?1lL;Kjz2$m>)~tnEdAam>=_Fe$0>gqX)<2Kg`Sj s#Qc~a^W$x}Zyz3eV)t-N|HIrq*gn`k*gjb5jj7*UKOTKwN&Un08!2+Cy8r+H literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-objects.json new file mode 100644 index 0000000..eb6b246 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-objects.json @@ -0,0 +1,28 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "HousePlant", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Pen", + "Bed", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-openable.json new file mode 100644 index 0000000..25a22c0 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan316-openable.json @@ -0,0 +1,32 @@ +{ + "Bed|-01.70|+00.04|-00.45": [ + -0.25, + -0.25, + 270, + 30 + ], + "Desk|+01.49|+00.69|-01.84": [ + 0.0, + -1.25, + 180, + 30 + ], + "Drawer|-00.56|+00.18|+00.49": [ + 0.0, + -0.5, + 0, + 30 + ], + "Shelf|+01.49|+00.47|-00.82": [ + 0.75, + -0.5, + 90, + 30 + ], + "SideTable|-00.56|+00.45|+00.49": [ + 0.5, + 0.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..5e780484c538e9ee12017f0c591afa3a4063c673 GIT binary patch literal 2160 zcmbW$ElvYb6oApevWjs7NevhXApwPhU=S$M&=Lfpq$L=_Dp*ii!Yl!a95JGzg2LSM z60W4?<-E?%_b&AP;_CeJdaHV=UYp5uaXW90>gM?Fuo>0O-E96mA3xsA=9B5q{@M6p zG2QGh?#EBljd%9;4@UL=?x=pN|M}Ujen0(kSl4M?h4boq`~AsqKd+M4$<^uK>#L8! zo~wgBm-E_1r~NM8$NE?w>tlVz(dRw-SRcEO^ZFIN_CJ%`k`r5B40+t9jUOm%{|uJc^^oeR^0A>tQ|Yxtv!$_VpA;kL&cX z9@fKMoR{^m_i$eI*!TOguZQ)p9`2%t^{^f;@3oQFk71*Y|3f{jhxM=?*28*O56dZz z9={_!tcUxU2kT)ytcUfmp5o~7JJ!Q`SP$!AJ*C)ee^{^h+!+KZ`>tQ|I zMhBZ4>*l=n>HbynI=NpC1?9eE=kdMsaGS1op7MRXkDZ5|hn>OA(Hr$6}yosMe= literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-objects.json new file mode 100644 index 0000000..c57fdc3 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-objects.json @@ -0,0 +1,30 @@ +[ + "SideTable", + "Book", + "LaundryHamperLid", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Pen", + "Bed", + "Cloth", + "Blinds", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "TeddyBear", + "Safe", + "LaundryHamper", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Poster", + "Dresser", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-openable.json new file mode 100644 index 0000000..fb9f4a4 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan317-openable.json @@ -0,0 +1,98 @@ +{ + "Bed|+01.38|-00.01|+00.07": [ + 1.25, + -1.25, + 0, + 30 + ], + "Drawer|+00.40|+00.10|-01.63": [ + -0.25, + -0.25, + 180, + 30 + ], + "Drawer|+00.40|+00.28|-01.63": [ + 0.0, + -0.25, + 180, + 30 + ], + "Drawer|+00.40|+00.48|-01.63": [ + 0.0, + -0.5, + 180, + 30 + ], + "Drawer|+00.40|+00.67|-01.63": [ + 0.0, + -0.5, + 180, + 30 + ], + "Drawer|+00.40|+00.86|-01.63": [ + 0.0, + -0.5, + 180, + 30 + ], + "Drawer|+02.21|+00.47|+01.33": [ + 1.25, + 1.25, + 90, + 30 + ], + "Drawer|-00.39|+00.10|-01.63": [ + -1.0, + -0.25, + 180, + 30 + ], + "Drawer|-00.39|+00.28|-01.63": [ + -0.25, + -0.25, + 180, + 30 + ], + "Drawer|-00.39|+00.48|-01.63": [ + -0.75, + -0.5, + 180, + 30 + ], + "Drawer|-00.39|+00.86|-01.63": [ + -0.25, + -0.5, + 180, + 30 + ], + "Drawer|-00.40|+00.67|-01.63": [ + -0.5, + -0.5, + 180, + 30 + ], + "Dresser|+00.01|+00.00|-01.80": [ + 0.25, + -1.0, + 180, + 30 + ], + "GarbageCan|-02.21|+00.00|-01.74": [ + -1.25, + -1.0, + 270, + 30 + ], + "Safe|+01.65|+00.00|-02.02": [ + 2.0, + -1.0, + 180, + 30 + ], + "SideTable|+02.19|+00.00|+01.51": [ + 1.25, + 1.0, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..11f65bebff2a5d63098a15278a532c824ea15237 GIT binary patch literal 1536 zcmbW#u}Z^G6oBEYh!me9TNE-m6%pFWO>uE>l3-IDij_oM#Ha9q`U-i3jvX^(aB#4i zeu8JT%jLWDzvm|H`_;|m_3d7INw4{=YVPa&EX&X5I>sinG;ptQIep%0Y)?4+g=Wa5TzYh2IUYz4O*}d64*tr~6_p$Fj ztdHO0xa#fe?K_u!kK@|z-cP?<^{i(->;2F5tY^-vg!k&}OI}G#KJT{NbWAoTNHg6Q>v3YDBo5$v{d86qUswmR= literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-objects.json new file mode 100644 index 0000000..3d167de --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-objects.json @@ -0,0 +1,29 @@ +[ + "Book", + "KeyChain", + "TennisRacket", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Pen", + "Bed", + "Chair", + "Blinds", + "Laptop", + "Box", + "Window", + "Mug", + "Drawer", + "Pencil", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "ArmChair", + "Dresser", + "Desk", + "Cabinet", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-openable.json new file mode 100644 index 0000000..5f70276 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan318-openable.json @@ -0,0 +1,110 @@ +{ + "ArmChair|+01.83|+00.01|+01.61": [ + 1.0, + 1.5, + 90, + 30 + ], + "Bed|-00.87|+00.00|-00.92": [ + 0.25, + -0.75, + 270, + 30 + ], + "Bed|-00.88|+01.65|+02.17": [ + 1.0, + 2.25, + 270, + 0 + ], + "Cabinet|-00.36|+00.26|+02.53": [ + 0.5, + 1.75, + 270, + 30 + ], + "Desk|+01.81|-00.01|-00.12": [ + 1.0, + 0.25, + 90, + 30 + ], + "Desk|-00.65|+00.01|+01.80": [ + 0.25, + 1.75, + 270, + 30 + ], + "Drawer|+01.65|+00.15|-00.36": [ + 0.5, + -1.0, + 90, + 30 + ], + "Drawer|+01.65|+00.15|-00.78": [ + 0.5, + -0.25, + 90, + 30 + ], + "Drawer|+01.65|+00.36|-00.36": [ + 0.5, + -0.75, + 90, + 30 + ], + "Drawer|+01.65|+00.36|-00.78": [ + 0.5, + -0.25, + 90, + 30 + ], + "Drawer|+01.65|+00.57|-00.36": [ + 0.75, + -0.75, + 90, + 30 + ], + "Drawer|+01.65|+00.57|-00.78": [ + 0.75, + -0.5, + 90, + 30 + ], + "Drawer|-00.57|+00.57|+02.24": [ + 0.25, + 1.25, + 0, + 30 + ], + "Drawer|-00.58|+00.15|+02.96": [ + 0.25, + 1.75, + 0, + 30 + ], + "Drawer|-00.58|+00.37|+02.96": [ + 0.25, + 2.0, + 0, + 30 + ], + "Drawer|-00.58|+00.56|+02.96": [ + 0.5, + 2.75, + 270, + 30 + ], + "Dresser|-00.66|-00.01|+02.97": [ + 0.25, + 3.0, + 270, + 30 + ], + "Dresser|-00.77|-00.01|-01.31": [ + 0.25, + -1.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..94511b8c72b7851831dfc0277b21140c03ae8a24 GIT binary patch literal 1536 zcmbW!Ax^_k0LS6SB&Vn=Bvq(}kZcME!5~m%VO6bM#qVSH;D7ReToz{hWs1&vqKm!zP}6@;=#p?$h-#o$;v<*z@dp-laZoQ)fu0 zKI^kS>$5%&>HB!hyw7~d9A@zscz%+3w~6>ShkV?EYmJ=W_}N00Sb zkM(#+9sg%N)?+=^V?FOlkM&rO^;plT$9k;CdhFE6Pd(T5SdS;O_-0r??{I$VyROgr G`{_3=CGKqi literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-objects.json new file mode 100644 index 0000000..8f4776b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-objects.json @@ -0,0 +1,28 @@ +[ + "Shelf", + "Statue", + "Book", + "KeyChain", + "Footstool", + "HousePlant", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Bed", + "Pen", + "Blinds", + "Laptop", + "Box", + "Window", + "Drawer", + "Pencil", + "BasketBall", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Dresser", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-openable.json new file mode 100644 index 0000000..5c1c841 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan319-openable.json @@ -0,0 +1,122 @@ +{ + "Bed|-00.21|+00.00|+00.98": [ + 1.5, + 0.75, + 270, + 30 + ], + "Drawer|+02.54|+00.08|+00.62": [ + 1.25, + 1.25, + 90, + 30 + ], + "Drawer|+02.54|+00.08|-00.13": [ + 1.25, + 0.5, + 90, + 30 + ], + "Drawer|+02.54|+00.24|+00.62": [ + 1.5, + 1.0, + 90, + 30 + ], + "Drawer|+02.54|+00.24|-00.13": [ + 1.5, + -0.5, + 90, + 30 + ], + "Drawer|+02.54|+00.40|+00.62": [ + 1.5, + 1.0, + 90, + 30 + ], + "Drawer|+02.54|+00.40|-00.13": [ + 1.5, + 0.25, + 90, + 30 + ], + "Drawer|+02.54|+00.57|+00.62": [ + 1.5, + 1.0, + 90, + 30 + ], + "Drawer|+02.54|+00.57|-00.13": [ + 1.5, + 0.25, + 90, + 30 + ], + "Drawer|+02.54|+00.73|+00.62": [ + 1.75, + 0.5, + 90, + 30 + ], + "Drawer|+02.54|+00.73|-00.13": [ + 1.75, + -0.25, + 90, + 30 + ], + "Dresser|+02.56|00.00|+00.25": [ + 1.75, + 0.25, + 90, + 30 + ], + "Shelf|+00.53|+00.83|-02.41": [ + 0.5, + -1.75, + 180, + 30 + ], + "Shelf|-00.33|+00.04|-01.75": [ + 0.25, + -0.75, + 180, + 30 + ], + "Shelf|-00.45|+00.42|-01.75": [ + -0.25, + -1.0, + 180, + 30 + ], + "Shelf|-00.45|+00.70|-01.75": [ + -0.25, + -1.0, + 180, + 30 + ], + "Shelf|-00.62|+00.96|-01.75": [ + -0.25, + -1.25, + 180, + 30 + ], + "Shelf|-00.72|+00.04|-01.75": [ + -0.25, + -0.75, + 180, + 30 + ], + "Shelf|-00.91|+00.42|-01.75": [ + -0.5, + -1.0, + 180, + 30 + ], + "Shelf|-00.91|+00.70|-01.75": [ + -0.5, + -1.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..b9c076b0ee5a883ff49b78aa6796b6ffee9f3529 GIT binary patch literal 1088 zcmbW!F-pWh6b9hfdWz{rA%$3oh>*@sv9Yj{;AXK9R}!%iPvL>~3OT}-Tc(%;xSII{ z2W(6;e6w%g|7Z8(>gMwLcCUJ^-r}Mg?)!Ka;`#D4)*&ue{Y&3I-L3jX_jP~KJ`UaP zet2k~yPXeCj_PoHScmuU-)F!2e#T}#(|SHPg|~&L!l|%*)B5*5wvX-Ol=rduZQf^| z&9nJUp64-Jzqwsid0#fqsra5=_Q++q{8#SJ=gpkN`mjEnavyX0us*C0>%-oY<#2iG z<6gdd`7EF1vwW7%a=1L@Px*J0&+=J5%jYrgVfied<)TKbFt(Sw728%_kiy Bt+N0C literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-objects.json new file mode 100644 index 0000000..49f2094 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-objects.json @@ -0,0 +1,25 @@ +[ + "Shelf", + "Book", + "KeyChain", + "TennisRacket", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bed", + "Pen", + "Chair", + "Laptop", + "Window", + "Pencil", + "TeddyBear", + "BasketBall", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Curtains", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-openable.json new file mode 100644 index 0000000..3d6aca7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan320-openable.json @@ -0,0 +1,50 @@ +{ + "Bed|-01.04|+00.01|-00.69": [ + -0.75, + 0.5, + 180, + 30 + ], + "Desk|+01.58|00.00|+00.39": [ + 0.75, + 0.5, + 90, + 30 + ], + "Desk|-01.72|+00.01|+01.11": [ + -1.0, + 1.25, + 270, + 30 + ], + "Shelf|+00.63|+00.68|-01.71": [ + 0.75, + -0.75, + 180, + 30 + ], + "Shelf|-01.73|+00.06|+01.51": [ + -0.5, + 1.0, + 270, + 30 + ], + "Shelf|-01.73|+00.28|+01.51": [ + -0.75, + 1.25, + 270, + 30 + ], + "Shelf|-01.73|+00.50|+01.51": [ + -0.5, + 1.0, + 270, + 30 + ], + "Shelf|-01.88|+01.06|+01.19": [ + -1.0, + 1.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan321-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan321-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..f2e4d8c3a06ab3f1e533c2ca6cae32fc7e595272 GIT binary patch literal 1440 zcmbW#u};E39KhkTA;$0&-Kq%_6EP-qa?`jtI2j@(4n#~bF2<+uf#eZ*1V%=N4jmXo zdf(uU-cr7n`~8p5uiN{ZyN8qT9zKd`wS20J%e=Unjfz2D%og=qJ$ZRt)YIzs{`F+O ztPb~=&y&~c;PcUNkPj~g`Dgy$)epzDA9vSm)m=mR*ID9T;?u-!?1fc0E`8SLtn9wW zP29i#?(XZc9_z6l>$ORb^;nPfcpJ~x#NIBkd7ih)bMrhmkIiHAcF8<8kIiHA*gQ6m zdu2E-_W$x(@;r;)#`D?F_Ot!mPxk9=k{;`^9_z8*I_a?<>#-i|g}D4))?+=^Z+#RIX^j1%s+@drrI+=wKGw(jSRd=N>SKMZkM*%W*2h*o zan)yEAM0a%Y%V$a*nJ#VefIUSJ~kislTt4P(Vni!a*%G2uS3L6)P$z znfVDmNyW|nrg!uGr@iAoF0RfmuQ$?bdaLhd%iBeLT-7J@!+KoR^QXnjV)}UVw78r7 z?w?H`mb3N#@_za}TYGo^@Mv5e?2W7U>YuNjlwVC=w#&Nu{OcjO5AK4$gTI2?;5;oQ z^V`$E^S^?>gS+59*!f#cesVrLpPkRnXXkS&ugxYuIG>%*&S&Sd^LZ%u;Z<;&*OCq1l(^{^h+!+KZ`>*3KPcW~DF*Cs#dV|}cT^|3zI$NE?wk0!Z;i;{l_`dA<9 zV|}cThw}ZgKGw(jSl{rOpY*Xl*2nr-9}lIESHb$cuaEWhp^x>kKJLmq*2nr-ADiEW z`D{L$&s~|%eX#l7_xHxnJ>L`iTv#VNhvVw!r~S6vi`|#o(#!74?#u4W?#u4WK5uq^ zo$k->&+gCe&(7tzy1#w*XZL6KXZL6KXZL6KXZL44Rz0kT^{^h+!+rTaSr6-BtB$zp zv9E{qupaJ959?t)tS8RpxazU5hdZA~S@n2d59?uFaSq4TeEa6J`D{L$&*nQ<7yEr2 zSM%+g&*roF?E7$z9@fKp*f|_mJ@)mm9@gW}>ESkf&w9MChn>rD)ni`|`~QtclU&65 WoTHERu|C$v&gHo3v#*c!4W~a)^u%cZ literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-objects.json new file mode 100644 index 0000000..3395cb2 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-objects.json @@ -0,0 +1,28 @@ +[ + "SideTable", + "Book", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Pen", + "Bed", + "Chair", + "Blinds", + "Laptop", + "Window", + "Mug", + "Drawer", + "Pencil", + "TeddyBear", + "Safe", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Dresser", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-openable.json new file mode 100644 index 0000000..de4d1d5 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan323-openable.json @@ -0,0 +1,110 @@ +{ + "Bed|+02.40|+00.01|-00.07": [ + 1.25, + 0.0, + 90, + 30 + ], + "Bed|-01.64|-00.04|-01.86": [ + 0.0, + -2.0, + 270, + 30 + ], + "Desk|+02.32|-00.01|-03.22": [ + 2.0, + -2.5, + 180, + 30 + ], + "Drawer|+01.88|+00.21|-02.96": [ + 0.75, + -2.25, + 90, + 30 + ], + "Drawer|+01.88|+00.49|-02.96": [ + 0.75, + -2.25, + 90, + 30 + ], + "Drawer|+01.88|+00.73|-02.96": [ + 1.0, + -2.5, + 90, + 30 + ], + "Drawer|+02.64|+00.16|+01.51": [ + 1.5, + 1.0, + 90, + 30 + ], + "Drawer|+02.64|+00.44|+01.51": [ + 1.5, + 1.25, + 90, + 30 + ], + "Drawer|+02.64|+00.72|+01.51": [ + 1.75, + 1.5, + 90, + 30 + ], + "Drawer|+02.64|+00.99|+01.51": [ + 2.0, + 1.5, + 90, + 30 + ], + "Drawer|-02.42|+00.17|-00.51": [ + -1.25, + -0.75, + 270, + 30 + ], + "Drawer|-02.42|+00.17|-03.15": [ + -1.0, + -3.0, + 270, + 30 + ], + "Drawer|-02.42|+00.46|-00.51": [ + -1.5, + -0.75, + 270, + 30 + ], + "Drawer|-02.42|+00.46|-03.15": [ + -1.25, + -3.0, + 270, + 30 + ], + "Dresser|+02.68|00.00|+01.51": [ + 2.25, + 1.25, + 90, + 30 + ], + "Safe|+02.70|+01.23|+01.77": [ + 2.25, + 1.5, + 90, + 30 + ], + "SideTable|-02.42|+00.46|-00.51": [ + -1.75, + -0.5, + 270, + 30 + ], + "SideTable|-02.42|+00.46|-03.15": [ + -1.75, + -3.0, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..dcea98636deb600c2514e508cf18a5e77739cd83 GIT binary patch literal 1616 zcmbW#F-pU56u{wFM8s2Mi$W(|RD?RYDJ~99Qf!KYSV_f2JcS3UN5~O6X3UVGLkFvQ zpWuHqgW*daFF%uhT-{t=-)?2E*;_Fw=l4}{nipr&<6@W>(^>UWji2sj)ujBseldQW zmz(SJhw*c{@&3utFh4vP=I{A`kG<^Y=obBX@cGwSxQ+YVBwi-26Zcy;e`8-giYwt| z;wEvMSnqn#@6pHlSRd=-sL5C#>tlVakM*sRKGw(jSRd$AJ^WL+0 zHqYk$pXS*-ckz9BmDoP-$v(D^?PL3R9s4;u@82*F5^pEoNxYj_Zyn!XFY9H!te5q& zULM5rSug8ly{tEjLoe&)F5VyOWxZ^F?YqXA?PvShezu?Och=8sJdf>X`?*{6<@U6R d{Z8HYyWu*S_a1)lM-O{0r)T}H>u3GV=nEpu{wx3h literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-objects.json new file mode 100644 index 0000000..aefc1bd --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-objects.json @@ -0,0 +1,26 @@ +[ + "Shelf", + "Book", + "KeyChain", + "TennisRacket", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Pen", + "Bed", + "BaseballBat", + "Blinds", + "Laptop", + "Window", + "Mug", + "Drawer", + "Pencil", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Dresser", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-openable.json new file mode 100644 index 0000000..0ed0e48 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan324-openable.json @@ -0,0 +1,98 @@ +{ + "Bed|-00.85|-00.02|-00.36": [ + 1.0, + -0.25, + 270, + 30 + ], + "Drawer|+01.62|+00.06|-01.46": [ + 0.5, + -1.25, + 90, + 30 + ], + "Drawer|+01.62|+00.06|-02.21": [ + 0.5, + -1.75, + 90, + 30 + ], + "Drawer|+01.62|+00.22|-01.46": [ + 0.5, + -1.0, + 90, + 30 + ], + "Drawer|+01.62|+00.22|-02.21": [ + 0.5, + -1.75, + 90, + 30 + ], + "Drawer|+01.62|+00.38|-01.46": [ + 0.5, + -1.0, + 90, + 30 + ], + "Drawer|+01.62|+00.38|-02.21": [ + 0.5, + -1.75, + 90, + 30 + ], + "Drawer|+01.62|+00.55|-01.46": [ + 0.75, + -1.5, + 90, + 30 + ], + "Drawer|+01.62|+00.55|-02.21": [ + 0.75, + -2.0, + 90, + 30 + ], + "Drawer|+01.62|+00.71|-01.46": [ + 0.5, + -1.5, + 90, + 30 + ], + "Drawer|+01.62|+00.71|-02.21": [ + 0.5, + -2.0, + 90, + 30 + ], + "Dresser|+01.63|-00.02|-01.83": [ + 1.0, + -2.0, + 90, + 30 + ], + "GarbageCan|+03.38|+00.00|+00.22": [ + 2.5, + -0.25, + 90, + 30 + ], + "Shelf|+00.24|+00.67|-02.59": [ + 0.0, + -2.0, + 180, + 30 + ], + "Shelf|+00.25|+00.35|-02.58": [ + -0.25, + -1.75, + 180, + 30 + ], + "Shelf|+00.36|+00.18|-02.58": [ + 1.0, + -1.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..07faed3dfdbbf253080dae1a8b79b352308f4757 GIT binary patch literal 3104 zcmbW&F>Vt<6b9hILMVz*1jz-q+aS3~3KStEwn~?XhJp%N#1REbkd0^%r{F-&5%vfv zQ*N<^3l|BQ_gTs-*=F?3?7aD(y=(tH|8(~8^Rx1+{BAGi%dd;}UDLk5JZYy*dwIS1 zxtLvjxn5k%|IMGyzAxtw^UH6uAM*zv9-X|MHpg$K&7bB!uif%^-L2}liSahMPp)^D z;{N_a+Mj%v9re~RI**;l&SU5CZPaJyvHD}2r#`FC>a+T+J`Zs|m#$Xio#fr*m&x)C zk+)VWh5I;<!0<{{i-}(p3ACISpTel)<5f? z$LNps&-!Qm^Q5bZSpTel)<5f?_0RhE-0Gk8&-!Qmv;JBCEDy`W@)+e|c~~Bnhvnfh zz7Lj%alu$H`QbHSUtAi@2vf7Kij|cO`Vx^b=<6;dYwEb56SYV zClAZR^|Vs9zNs_*7vy1iSRR&#j&LEdpn@I literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-objects.json new file mode 100644 index 0000000..ead52eb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-objects.json @@ -0,0 +1,26 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Pen", + "Bed", + "Blinds", + "Laptop", + "Window", + "Drawer", + "Pencil", + "Lamp", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Vase", + "Dresser", + "Cabinet", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-openable.json new file mode 100644 index 0000000..1968eb4 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan325-openable.json @@ -0,0 +1,146 @@ +{ + "Bed|+02.22|+00.04|+00.59": [ + 0.75, + 0.75, + 90, + 30 + ], + "Cabinet|+01.20|+00.50|-01.61": [ + 1.0, + -0.75, + 180, + 30 + ], + "Cabinet|+02.22|+00.50|-01.61": [ + 1.5, + -0.75, + 180, + 30 + ], + "Cabinet|+02.24|+00.50|-01.61": [ + 2.75, + -0.75, + 180, + 30 + ], + "Cabinet|+03.26|+00.50|-01.61": [ + 3.25, + -0.75, + 180, + 30 + ], + "Drawer|-00.16|+00.24|+03.19": [ + -0.5, + 2.0, + 0, + 30 + ], + "Drawer|-00.16|+00.56|+03.19": [ + 0.0, + 2.25, + 0, + 30 + ], + "Drawer|-00.80|+00.22|+00.07": [ + 0.5, + -0.5, + 270, + 30 + ], + "Drawer|-00.80|+00.22|+00.48": [ + 0.5, + -0.25, + 270, + 30 + ], + "Drawer|-00.80|+00.22|-00.34": [ + 0.5, + -1.0, + 270, + 30 + ], + "Drawer|-00.80|+00.22|-00.75": [ + 0.5, + -1.0, + 270, + 30 + ], + "Drawer|-00.80|+00.42|+00.07": [ + 0.25, + -0.5, + 270, + 30 + ], + "Drawer|-00.80|+00.42|+00.48": [ + 0.25, + 1.0, + 270, + 30 + ], + "Drawer|-00.80|+00.42|-00.34": [ + 0.25, + -0.75, + 270, + 30 + ], + "Drawer|-00.80|+00.42|-00.75": [ + 0.25, + -0.25, + 270, + 30 + ], + "Drawer|-00.80|+00.63|+00.07": [ + 0.25, + 0.25, + 270, + 30 + ], + "Drawer|-00.80|+00.63|+00.48": [ + 0.25, + 0.0, + 270, + 30 + ], + "Drawer|-00.80|+00.63|-00.34": [ + 0.25, + -0.75, + 270, + 30 + ], + "Drawer|-00.80|+00.63|-00.75": [ + 0.25, + -1.25, + 270, + 30 + ], + "Dresser|+02.24|+00.00|-01.95": [ + 2.0, + -1.25, + 180, + 30 + ], + "Dresser|-00.93|+00.05|-00.13": [ + -0.25, + -0.25, + 270, + 30 + ], + "Shelf|-00.15|+00.78|+03.17": [ + -0.25, + 2.5, + 0, + 30 + ], + "Shelf|-00.15|+01.10|+03.17": [ + -0.75, + 2.25, + 0, + 30 + ], + "SideTable|+03.46|+00.51|+01.33": [ + 3.25, + 0.0, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..7bfa8cfd4b5939bd794d3f383cd98193ffda2e4c GIT binary patch literal 1744 zcmbW#u};E390%aDAq+l6w`#&5PR5wn$xY+p;ADtE9E_M^T#QfQ1JOs|5f~X6IxsMZ z-hG2N%JSzcch}#q)p=Q6OwX!8SxslnTQhojm^I_c&-JU( z^L(G7caEdTjA48Nal5of=RbCbEKbQ@c$IdgI z$IfHZbF!YTXX`yj>v@&_&ul;2@44I0_VYTO$D7Pu=56L(W_g?^kM}MQ%fs@pJS-2( z!}72^?ESL$%knN4@qZvM%ggezyxgVd!}7AcEHBH;^2Kx^$j9=rd@LV#DId$n^09ne H)V_TKMi=mv literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-objects.json new file mode 100644 index 0000000..8de1bb5 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-objects.json @@ -0,0 +1,33 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "TennisRacket", + "Pillow", + "CD", + "CreditCard", + "Bowl", + "Pen", + "Bed", + "Cloth", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Watch", + "Window", + "Mug", + "Drawer", + "Pencil", + "Lamp", + "TeddyBear", + "BasketBall", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "DiningTable", + "Poster", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-openable.json new file mode 100644 index 0000000..1b6252b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan326-openable.json @@ -0,0 +1,122 @@ +{ + "Bed|-00.63|+00.00|-00.55": [ + 0.75, + -0.75, + 270, + 30 + ], + "Bed|-02.46|+00.01|-00.55": [ + -2.25, + -2.5, + 0, + 30 + ], + "DiningTable|+03.16|-00.01|-01.42": [ + 2.0, + -1.25, + 90, + 30 + ], + "Drawer|-01.52|+00.15|+00.36": [ + -1.5, + -0.75, + 0, + 30 + ], + "Drawer|-01.52|+00.42|+00.36": [ + -1.5, + -0.5, + 0, + 30 + ], + "Shelf|+00.92|+01.13|-01.62": [ + 0.25, + -1.5, + 90, + 30 + ], + "Shelf|+00.92|+01.13|-02.16": [ + 0.25, + -2.25, + 90, + 30 + ], + "Shelf|+00.92|+01.13|-02.73": [ + 0.25, + -2.5, + 90, + 30 + ], + "Shelf|+00.92|+01.41|-01.62": [ + 0.25, + -1.5, + 90, + 0 + ], + "Shelf|+00.92|+01.41|-02.16": [ + 0.25, + -2.25, + 90, + 0 + ], + "Shelf|+00.92|+01.41|-02.73": [ + 0.25, + -2.5, + 90, + 0 + ], + "Shelf|+03.04|+00.53|-00.56": [ + 2.25, + -0.25, + 90, + 30 + ], + "Shelf|+03.04|+00.53|-02.26": [ + 2.25, + -2.0, + 90, + 30 + ], + "Shelf|-02.95|+01.13|-01.62": [ + -2.0, + -2.0, + 270, + 0 + ], + "Shelf|-02.95|+01.13|-02.19": [ + -2.25, + -2.25, + 270, + 30 + ], + "Shelf|-02.95|+01.13|-02.74": [ + -2.25, + -2.5, + 270, + 30 + ], + "Shelf|-02.95|+01.41|-01.62": [ + -2.25, + -2.0, + 270, + 0 + ], + "Shelf|-02.95|+01.41|-02.19": [ + -2.25, + -2.25, + 270, + 0 + ], + "Shelf|-02.95|+01.41|-02.74": [ + -2.25, + -2.5, + 270, + 0 + ], + "SideTable|-01.52|+00.42|+00.36": [ + -1.5, + -0.25, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..7b829fefc22b5ab85a9fa2ac540e7e568e5e2fcb GIT binary patch literal 1360 zcmbW#Ax^|l6ouh}WEFLVqzW^Hkc`7YFbEWBm`)IcnY08$SOp7$C3FcRM^;o+AQ=ec>D?nerpNS{UZuzMm>#Qi zvC`|)WBRyZo` qcg9`VmvTQ(zF0miAC?cxH->yzJ}e*ZQa&sn?vgK-56g$;8|Oc*@6xLP literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-objects.json new file mode 100644 index 0000000..72a7add --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-objects.json @@ -0,0 +1,28 @@ +[ + "Shelf", + "Book", + "KeyChain", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Dresser", + "Bowl", + "Bed", + "Pen", + "Chair", + "BaseballBat", + "Blinds", + "Laptop", + "Window", + "Drawer", + "Pencil", + "BasketBall", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "Boots", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-openable.json new file mode 100644 index 0000000..fa899b4 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan327-openable.json @@ -0,0 +1,92 @@ +{ + "Bed|-01.21|+00.02|-00.27": [ + 0.0, + 0.0, + 270, + 30 + ], + "Desk|+00.45|00.00|-02.53": [ + 0.5, + -1.5, + 180, + 30 + ], + "Drawer|+00.98|+00.14|-01.64": [ + 0.0, + -1.25, + 90, + 30 + ], + "Drawer|+00.98|+00.14|-01.96": [ + 0.0, + -1.5, + 90, + 30 + ], + "Drawer|+00.98|+00.27|-01.64": [ + -0.25, + -1.25, + 90, + 30 + ], + "Drawer|+00.98|+00.27|-01.96": [ + 0.0, + -1.5, + 90, + 30 + ], + "Drawer|+00.98|+00.40|-01.64": [ + 0.25, + -1.25, + 90, + 30 + ], + "Drawer|+00.98|+00.40|-01.96": [ + 0.25, + -1.5, + 90, + 30 + ], + "Drawer|-01.35|+00.19|-02.05": [ + -0.25, + -1.75, + 270, + 30 + ], + "Dresser|-01.47|+00.03|-02.05": [ + -0.75, + -2.0, + 270, + 30 + ], + "GarbageCan|-01.57|+00.00|+01.94": [ + -0.5, + 1.25, + 270, + 30 + ], + "Shelf|+01.22|+00.86|-01.80": [ + 0.5, + -1.5, + 90, + 30 + ], + "Shelf|+01.26|+00.38|-00.26": [ + 0.5, + -0.25, + 90, + 30 + ], + "Shelf|+01.26|+00.90|-00.27": [ + 0.5, + -0.25, + 90, + 30 + ], + "Shelf|+01.26|+01.40|-00.26": [ + 0.5, + -0.25, + 90, + 0 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..5cafefa35b3aef3590e1a958038d288119232686 GIT binary patch literal 1120 zcmbW!ze>YE00-bRh=Wg&Eee@Bh=|ZkZiMQgSI(E#E!NI|5 z?kjksS+3vx$?tyY$JNc{_3d7G4R6J)>F(R&EHBRIr$w0;^F{m8)=zhfcGmpNU(}CX zvz_lA>gQ(bqmxOQPmas{J^$}>7=E8&8pq{0ekQiwC+qwb_wzwDzK4gnzDdrr^Bm%N z&Jyn@mS?}bb&|*OSRTt`c`T3Rt&%*J$MRSn%VT*w#P1p6$jeM1GJ2n-2eap literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-objects.json new file mode 100644 index 0000000..e7a2f06 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-objects.json @@ -0,0 +1,29 @@ +[ + "Shelf", + "SideTable", + "Book", + "KeyChain", + "HousePlant", + "TennisRacket", + "DeskLamp", + "Pillow", + "CD", + "CreditCard", + "Bed", + "Pen", + "Chair", + "Blinds", + "Laptop", + "Window", + "Mug", + "Drawer", + "Pencil", + "TeddyBear", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "TissueBox", + "Desk", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-openable.json new file mode 100644 index 0000000..25356e7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan328-openable.json @@ -0,0 +1,44 @@ +{ + "Bed|+00.23|+00.00|-00.95": [ + 1.5, + -1.0, + 270, + 30 + ], + "Desk|+02.49|+00.00|-01.59": [ + 2.5, + -0.5, + 180, + 30 + ], + "Drawer|+01.24|+00.13|-01.60": [ + 1.75, + -0.5, + 180, + 30 + ], + "Drawer|+01.24|+00.35|-01.60": [ + 2.25, + -0.75, + 270, + 30 + ], + "GarbageCan|+03.17|+00.00|-00.27": [ + 2.25, + -0.75, + 90, + 30 + ], + "Shelf|+03.04|+00.54|-01.44": [ + 2.75, + -0.5, + 180, + 30 + ], + "SideTable|+01.24|+00.00|-01.67": [ + 1.75, + -0.75, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..2328b0b89d500347af2954dd40046c6b4fb53b70 GIT binary patch literal 1536 zcmbW!p-#hK6hPr(d5XG1QiW;=Nl~~F3<51LtC8Z#l^fT%Dk8_+Shjae7|UC&CmX7`m}8J z`{m>GrP=dIRh9YKX_a|3nSG6O2)qrv3!GgZzR$N?9r`dI=EHoLZyS7= z5A$I@%r^ud=EHoL5BKT+=z|aQVLr@<`8L6a`7j^m!@OPc+2c6Z={fuKbu+xK#|`cR zZvyM_{1EQzabFMCgY`J49_%?Br=GukIuF)^^^&T( z?_;kA>%n^Pkb1BltOx7CdYnTK)`Rt69vr70dp)@KJ<`%shfw@+TokNGh_ H=I`on>on)? literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-objects.json new file mode 100644 index 0000000..6781d39 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-objects.json @@ -0,0 +1,26 @@ +[ + "SideTable", + "Book", + "KeyChain", + "Pillow", + "CD", + "CreditCard", + "Painting", + "Pen", + "Bed", + "BaseballBat", + "Blinds", + "Laptop", + "Box", + "Window", + "Mug", + "Drawer", + "Pencil", + "Lamp", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "DiningTable", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-openable.json new file mode 100644 index 0000000..9ca566f --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan329-openable.json @@ -0,0 +1,32 @@ +{ + "Bed|-00.12|+00.00|-01.70": [ + -0.25, + -0.5, + 180, + 30 + ], + "DiningTable|-00.28|-00.01|+00.83": [ + -0.5, + -0.5, + 0, + 30 + ], + "Drawer|+01.00|+00.17|-02.39": [ + 1.25, + -1.25, + 180, + 30 + ], + "Drawer|+01.00|+00.46|-02.39": [ + 1.25, + -1.5, + 180, + 30 + ], + "SideTable|+01.00|+00.01|-02.47": [ + 2.0, + -2.0, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..07b1f44177190ca467b3437722f884f79be797c4 GIT binary patch literal 2304 zcmbW%F-ikb6oujEkjhm|HwtM~5D~#tc8ZOKl>`&95F?4$h^ufxaS5}8lqsi3ks^gL z^S&u==`=V0y>HID=M3cg=I;9TelLBb&uTQDJx;6hvbuOWtNLa2G?~6nhp!Kl>1h1d zzZ$;G#@qhvdH6Qo^1;!`X}>%^?3Z8VKcD@ydzyJ$dp~Vm1~xCk9Gj;w$L5=?OCOuB z!yGSiA3MJa=dts+&gXD3NV^C30@GLRi|OM!>*FHpVft958!LVNI{2h-P9M{cIyhGP z`t&hFd+SP4=7eLm$(}-owSfueQ?HrC(pR9r~C)rjLt3`yQr`=`Vsl zrjO}k`j|eZzYO}AKBkY`?Nh?`#_qwfHtx-J6?h$Z6FBAk=<0v2kL`hDusqD=f$MNy9^E|Wf#reaf$fQ7 zm507OuspCluspClI^FCCH-Y70E)QIX^YZBCIS(ukEDtOX-0dB7%=zhZ$@^e_Fh7_d d%n#-V*Le@j59SB+gZaUHVEg*6_Qm#1gI@(DWf1@X literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-objects.json new file mode 100644 index 0000000..4efb0f7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-objects.json @@ -0,0 +1,30 @@ +[ + "Shelf", + "SideTable", + "Statue", + "Book", + "KeyChain", + "HousePlant", + "Pillow", + "CD", + "CreditCard", + "Dresser", + "Bowl", + "Painting", + "Pen", + "Bed", + "Blinds", + "Laptop", + "Window", + "Drawer", + "Pencil", + "Lamp", + "AlarmClock", + "GarbageCan", + "LightSwitch", + "Mirror", + "ArmChair", + "Vase", + "Boots", + "CellPhone" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-openable.json new file mode 100644 index 0000000..a458a1f --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan330-openable.json @@ -0,0 +1,128 @@ +{ + "ArmChair|+02.41|+00.01|+02.00": [ + 2.25, + 0.75, + 0, + 30 + ], + "Bed|+01.02|+00.06|-00.73": [ + 1.0, + 0.75, + 180, + 30 + ], + "Drawer|+01.58|+00.17|+02.14": [ + 0.5, + 1.25, + 90, + 30 + ], + "Drawer|+01.58|+00.46|+02.14": [ + 2.0, + 1.25, + 0, + 30 + ], + "Drawer|+02.44|+00.17|-01.60": [ + 2.25, + -0.5, + 180, + 30 + ], + "Drawer|+02.44|+00.46|-01.60": [ + 2.25, + -0.75, + 180, + 30 + ], + "Drawer|-01.59|+00.10|+00.26": [ + 0.0, + 0.75, + 270, + 30 + ], + "Drawer|-01.59|+00.10|-00.54": [ + -0.5, + 0.75, + 180, + 30 + ], + "Drawer|-01.59|+00.28|+00.26": [ + -0.25, + -0.25, + 270, + 30 + ], + "Drawer|-01.59|+00.28|-00.54": [ + -0.25, + 0.0, + 270, + 30 + ], + "Drawer|-01.59|+00.48|+00.26": [ + -0.25, + 0.5, + 270, + 30 + ], + "Drawer|-01.59|+00.48|-00.54": [ + -0.25, + -0.25, + 270, + 30 + ], + "Drawer|-01.59|+00.67|+00.26": [ + -0.75, + -0.75, + 0, + 30 + ], + "Drawer|-01.59|+00.67|-00.54": [ + -0.75, + 0.5, + 180, + 30 + ], + "Drawer|-01.59|+00.86|+00.26": [ + -0.5, + 0.25, + 270, + 30 + ], + "Drawer|-01.59|+00.86|-00.54": [ + -0.5, + -0.5, + 270, + 30 + ], + "Dresser|-01.75|+00.00|-00.15": [ + -1.0, + -0.5, + 270, + 30 + ], + "Shelf|-01.70|+01.14|-02.06": [ + -1.0, + -2.0, + 270, + 30 + ], + "Shelf|-01.70|+01.63|-02.06": [ + -1.0, + -2.0, + 270, + -30 + ], + "SideTable|+01.58|+00.46|+02.14": [ + 0.5, + 1.75, + 90, + 30 + ], + "SideTable|+02.44|+00.46|-01.60": [ + 2.5, + -1.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..a5bba3005aed8a34d06fdd76f50c69aa4eb811dd GIT binary patch literal 1232 zcmbWzF-`(e6o%0!A%qYYG2Lh~m4#7b0+pS{#=^=F8De3?493Q|3K!%o#nO_3f`USX zcM5OmG?Rn!`CmV-ZZ5BH_tI;6D<}2*zA4X&@_c$yRz*3TH80Kh>2B6c>fg^V#*g!Q z^ZEQ?{9JE*aC}-7M~7AMUi|kNr0vsfckjh;_wEFz;PvO<-(LkUgBQX3xwjndI)mVT za4*$840f8T!AXMNUZeb(=V ZKBqQqAJ%7m)@S{G=(9fSvp(zhM?dB_q@(}< literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-objects.json new file mode 100644 index 0000000..6626f4f --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-objects.json @@ -0,0 +1,41 @@ +[ + "Ladle", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "HousePlant", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-openable.json new file mode 100644 index 0000000..fd591d3 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan4-openable.json @@ -0,0 +1,92 @@ +{ + "Cabinet|-01.00|+00.39|+00.73": [ + -1.75, + 1.75, + 180, + 30 + ], + "Cabinet|-01.73|+00.39|+00.73": [ + -1.75, + 1.75, + 180, + 30 + ], + "CounterTop|-00.52|+01.16|+00.49": [ + -1.0, + 1.0, + 180, + 30 + ], + "CounterTop|-02.28|+01.16|+00.38": [ + -1.75, + 1.0, + 180, + 30 + ], + "CounterTop|-03.86|+01.16|+00.38": [ + -3.25, + 1.5, + 180, + 30 + ], + "DiningTable|-00.62|+00.02|+02.49": [ + -1.25, + 2.25, + 90, + 30 + ], + "Drawer|-02.04|+00.22|+00.59": [ + -1.0, + 1.0, + 270, + 30 + ], + "Drawer|-02.04|+00.61|+00.59": [ + -1.25, + 1.0, + 270, + 30 + ], + "Drawer|-02.04|+00.94|+00.60": [ + -1.5, + 1.0, + 270, + 30 + ], + "Drawer|-02.50|+00.22|+00.59": [ + -1.5, + 1.0, + 270, + 30 + ], + "Drawer|-02.50|+00.61|+00.59": [ + -1.75, + 1.0, + 270, + 30 + ], + "Drawer|-02.51|+00.94|+00.60": [ + -2.0, + 1.0, + 270, + 30 + ], + "Fridge|-03.52|+00.00|+02.72": [ + -2.5, + 2.75, + 270, + 30 + ], + "Microwave|-00.37|+01.11|+00.43": [ + -1.5, + 1.0, + 90, + 30 + ], + "Sink|-01.39|+00.98|+00.44|SinkBasin": [ + -1.0, + 1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..7b958c63c97f860063ea6a6eb040e4037b44ec16 GIT binary patch literal 1696 zcmbW#u};EJ6oBDtLmFauh;G${$q9{#o!m4o4o-$hiGvYSjEnIpd?5P>K7u170|Ntt z*xqlsqg`&k0{=M_KCf@DZtf1kTX-*L_41)9&x-PVJ}JjVIbSrd&Gh+x(ah?<`L6;xcDgkdmV=E%G>_@zUa?E;w*7Uy!+}u=kwddd3^s*(r10v zXMNUZ{Z-Oueb#4v*5^(9KJ59d<2-%VXMNV^P3*J&Ch4<2>$5)Vv;H>evp(yyKI^mo zF6pyA>+?1~57uY>P=)UD{8^v%S)cXU|0%1wd>FL-nN{&@;~8yU7HuAz$L8^{4c#@U z`ZI6)lg($}mqYS?^Sy39o6qLwRX;b6JvN`sXY<*7HlNMsb^N_~mDqm6WIwhaXK{bF tAKQ=Z$M$3UvHjS7hsl0yKeiv+kL}0yWBalF*nVukQQS|T^;v&Z{Q{Y7(*Xbg literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-objects.json new file mode 100644 index 0000000..3e27364 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-objects.json @@ -0,0 +1,31 @@ +[ + "Shelf", + "Toilet", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "BathtubBasin", + "Plunger", + "Cart", + "GarbageCan", + "DishSponge", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerHead", + "PaperTowelRoll" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-openable.json new file mode 100644 index 0000000..2a15d02 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan401-openable.json @@ -0,0 +1,50 @@ +{ + "Bathtub|-00.21|+00.36|+00.92|BathtubBasin": [ + -1.25, + 1.0, + 90, + 30 + ], + "Cart|-03.21|+00.00|+00.15": [ + -2.5, + 0.25, + 270, + 30 + ], + "GarbageCan|-00.87|+00.00|+03.86": [ + -2.0, + 3.25, + 90, + 30 + ], + "Shelf|-02.59|+00.78|+03.91": [ + -2.5, + 3.25, + 0, + 30 + ], + "Shelf|-02.59|+01.03|+03.94": [ + -2.5, + 3.25, + 0, + 30 + ], + "Shelf|-02.59|+01.29|+03.94": [ + -2.5, + 3.25, + 0, + 30 + ], + "Shelf|-02.59|+01.53|+03.91": [ + -2.5, + 3.25, + 0, + 0 + ], + "Sink|-03.12|-00.01|+01.53|SinkBasin": [ + -2.5, + 1.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan402-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan402-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..bdd1ef2099b546e33aabae5a910b6499776d6a06 GIT binary patch literal 1632 zcmbW!y-EW?6b8^Sge8O!)V#oUtB^`8R4k^lQ*11(B$y2rVk8k8@hN;D_fae@Ei5c7 zjF~-!Q##FZ_UC@zWna!NPR}nl!ee-vJM%m1E!Sf5Ult|6xD=j&g8WPZ>5mf5^cJ1;b89)Gv* z^H*m1p37(XET83fV@Rh-7naZRSw72W`7EEiZC(*mu09;H=lXcA59`DFus*C0>(k5n zus*C0>%;o6`TcA@o6qL6`D{L$Kgi~@`D{L$&*pQ{g!LK5bd|@QCf#RwERW@}Jof+C z|6~7;i#C5VrXKpSeykts$NI5;tRL&g`th*sx7GF=WbS9~WiB$?&pi9F{n&nNKeiv+ qkL}0yWBYB#us-%<`?3AFXwr9VKeivs8^!dUJeJ4uxMHeJx|EhX! z>+OE~RK3<)ADx{R*~xK{eP;h%hv9E^^LSp4I+H@6^ZoSRdtlVakM*%W*2iI3tdI2_l<`LYm-Vqe*2nr-AM4}z)DT!7 LyFMEFTpyJ`UlN)H literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-objects.json new file mode 100644 index 0000000..228f72e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-objects.json @@ -0,0 +1,32 @@ +[ + "Shelf", + "ShowerGlass", + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "BathtubBasin", + "Plunger", + "GarbageCan", + "DishSponge", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "PaperTowelRoll", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-openable.json new file mode 100644 index 0000000..05e768a --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan403-openable.json @@ -0,0 +1,56 @@ +{ + "Bathtub|-02.23|+00.29|+00.72|BathtubBasin": [ + -2.0, + 1.5, + 180, + 30 + ], + "Cabinet|-00.34|+00.43|+02.87": [ + -1.0, + 2.0, + 0, + 30 + ], + "Cabinet|-01.36|+00.43|+02.87": [ + -1.5, + 2.0, + 0, + 30 + ], + "Cabinet|-01.40|+00.43|+02.87": [ + -1.25, + 2.0, + 0, + 30 + ], + "Cabinet|-02.42|+00.43|+02.87": [ + -1.75, + 2.0, + 0, + 30 + ], + "CounterTop|-01.36|+01.09|+03.15": [ + -1.5, + 2.5, + 0, + 30 + ], + "Sink|-00.85|+00.95|+03.14|SinkBasin": [ + -0.5, + 2.5, + 0, + 30 + ], + "Sink|-01.94|+00.95|+03.14|SinkBasin": [ + -1.75, + 2.5, + 0, + 30 + ], + "Toilet|-00.70|+00.03|+00.66": [ + 0.25, + 0.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..db1d1bd7a33df30f6daabe6bcfd330529bab4ccf GIT binary patch literal 928 zcmbWyu}Z^07{Ku;PCmtL*Fpvn1QDT|TgAn}NrFvr5L*)IQhW*@NFTvRaO{{NLx&7j zd%wXOy&>UuUv^|?#?us-W= Wvp(yyKI^kS>$5)V4_Tk}hsifj1(sg` literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-objects.json new file mode 100644 index 0000000..2630093 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-objects.json @@ -0,0 +1,27 @@ +[ + "Shelf", + "Toilet", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "TissueBox" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-openable.json new file mode 100644 index 0000000..1139e2c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan404-openable.json @@ -0,0 +1,38 @@ +{ + "Bathtub|+00.22|+00.34|+00.64|BathtubBasin": [ + -0.75, + 0.5, + 90, + 30 + ], + "Shelf|-01.17|+00.28|+02.16": [ + -1.0, + 1.25, + 0, + 30 + ], + "Shelf|-01.17|+01.06|+02.16": [ + -1.5, + 1.5, + 0, + 30 + ], + "Shelf|-01.17|+01.76|+02.16": [ + -2.5, + 1.75, + 90, + 0 + ], + "Sink|-01.13|00.00|-00.59|SinkBasin": [ + -1.5, + 0.0, + 180, + 30 + ], + "Toilet|-02.15|+00.00|-00.41": [ + -1.5, + 0.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan405-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan405-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..e4bdf491e503f1ce062efec1bca842a114325995 GIT binary patch literal 560 zcmbWzAr8VY07l_LP@JN!kW|e;2+14{fjvq^xhM{5Z=`ro()Y<kqulZZS*L=;_e9hN<&DZ>1@HJoaHDB{JU-LD8JNTNf`I@i!ny>kq zzY~1T*L=;_e9hN<&EE~a=4-y@Yrf`dzUJ=*U-LCz^EF@dHLo8$&C@*1(>%@V7eADT B+}Z#D literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-objects.json new file mode 100644 index 0000000..d6b4f93 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-objects.json @@ -0,0 +1,27 @@ +[ + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-openable.json new file mode 100644 index 0000000..62d7c12 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan406-openable.json @@ -0,0 +1,44 @@ +{ + "Bathtub|-01.04|+00.16|+00.56|BathtubBasin": [ + -1.0, + 1.5, + 180, + 30 + ], + "Cabinet|+00.07|+00.37|+03.77": [ + -1.0, + 3.75, + 90, + 30 + ], + "Cabinet|+00.07|+00.38|+02.05": [ + -1.0, + 2.0, + 90, + 30 + ], + "CounterTop|+00.49|+01.02|+03.09": [ + -0.25, + 3.75, + 90, + 30 + ], + "GarbageCan|-00.15|+00.00|+01.38": [ + -0.75, + 2.5, + 180, + 30 + ], + "Sink|+00.43|+01.04|+02.95|SinkBasin": [ + -0.25, + 3.0, + 90, + 30 + ], + "Toilet|+00.38|+00.00|+04.47": [ + -0.5, + 4.0, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..d73e2ed3f3b52726951337dc44ba859c93c635fc GIT binary patch literal 656 zcmbV`Ar1mD6hw>V6m^B9iZz6gtiwSt2o!19ZV-eeEx`~@!GX9!kAOrX5J(ovGhb3O zd9(9p_A*;c=gW>ds*|aFTn97KW?T=A)uwL3A-LVD36=l&6Ss}N_2b6veapR~uzJw9 z`mFzbUG;shYu3k4pMvqxyZC++oCMR)9sRKE#YgFf>4)>*D+RO19eXf)Fn6$2_VC$* h*(1ju%pS}hOb;xTJ$&x*xrfQYSz5(J;d;b6c literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-objects.json new file mode 100644 index 0000000..db8e282 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-objects.json @@ -0,0 +1,30 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "ScrubBrush", + "SoapBottle", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-openable.json new file mode 100644 index 0000000..bac5df1 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan407-openable.json @@ -0,0 +1,62 @@ +{ + "Bathtub|+00.88|+00.39|-01.15|BathtubBasin": [ + 0.0, + -0.75, + 90, + 30 + ], + "Cabinet|-00.07|+00.34|-01.33": [ + -0.75, + -0.5, + 180, + 30 + ], + "Cabinet|-01.04|+00.34|-01.33": [ + -1.25, + -0.5, + 180, + 30 + ], + "Cabinet|-01.05|+00.34|-01.33": [ + -0.75, + -0.25, + 180, + 30 + ], + "Cabinet|-02.02|+00.34|-01.33": [ + -1.25, + -0.25, + 180, + 30 + ], + "CounterTop|-01.04|+00.88|-01.53": [ + -1.5, + -0.75, + 180, + 30 + ], + "GarbageCan|+00.10|00.00|-01.57": [ + -0.25, + -0.5, + 180, + 30 + ], + "Sink|-00.53|+00.81|-01.60|SinkBasin": [ + -0.5, + -1.0, + 180, + 30 + ], + "Sink|-01.56|+00.81|-01.60|SinkBasin": [ + -1.5, + -1.0, + 180, + 30 + ], + "Toilet|-01.61|00.00|+00.21": [ + -1.5, + -0.75, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..553b9aeadd92e2d389129cd53547a2ff169de3a9 GIT binary patch literal 720 zcmbW!Ar8VY6oBDEP@JN!kW7Jq5Ry3@1cN}4g>^xYjdTPJ#Bw v>0x@99;R1_9;S!sVS1PzuA2X1?uqI9*Hnu4#Pl(JOdoSE=_2$KzL((#OKp9G literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-objects.json new file mode 100644 index 0000000..e4f0064 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-objects.json @@ -0,0 +1,27 @@ +[ + "Toilet", + "CounterTop", + "ScrubBrush", + "SoapBottle", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-openable.json new file mode 100644 index 0000000..7ab1fd0 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan408-openable.json @@ -0,0 +1,62 @@ +{ + "Bathtub|+00.29|+00.29|-00.08|BathtubBasin": [ + -0.75, + -0.25, + 90, + 30 + ], + "Cabinet|-01.50|+00.42|+00.43": [ + -2.25, + -0.5, + 0, + 30 + ], + "Cabinet|-02.29|+00.39|+00.42": [ + -1.5, + -0.5, + 0, + 30 + ], + "Cabinet|-02.31|+00.42|+00.43": [ + -2.0, + -0.5, + 0, + 30 + ], + "Cabinet|-03.09|+00.39|+00.42": [ + -2.25, + -0.5, + 0, + 30 + ], + "CounterTop|-02.30|+00.95|+00.69": [ + -2.0, + 0.0, + 0, + 30 + ], + "GarbageCan|-02.92|+00.00|-01.56": [ + -2.25, + -0.5, + 180, + 30 + ], + "Sink|-01.92|+00.93|+00.68|SinkBasin": [ + -1.75, + 0.0, + 0, + 30 + ], + "Sink|-02.68|+00.93|+00.68|SinkBasin": [ + -2.5, + 0.0, + 0, + 30 + ], + "Toilet|-01.05|+00.00|+00.55": [ + -0.5, + 0.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..278e0a1d880584b4bedf2ea9897c33979fadd4dd GIT binary patch literal 752 zcmbWyF$%&!5J1sYL?q-8+pR(>ZK4RKvQum2HK7jKuDOYCPqjyJh2_W3&A*~0B! zKhWJypilbW@l-j_OZC1+)%y^>3*UsfSJCf1<{op8uiqY~R~J1@57Wc+Fug{k%He;Q v9;S!sVR}u`!}KscOb^p*i5{kh>0x@9o+o;k9;S!sVS2vkVS1Pzrsqd*d}L}c literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-objects.json new file mode 100644 index 0000000..596c8ba --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-objects.json @@ -0,0 +1,26 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Drawer", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-openable.json new file mode 100644 index 0000000..c98f9be --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan409-openable.json @@ -0,0 +1,62 @@ +{ + "CounterTop|+00.46|+00.79|+02.76": [ + -0.25, + 2.75, + 90, + 30 + ], + "Drawer|+00.44|+00.32|+02.19": [ + -0.75, + 2.75, + 90, + 30 + ], + "Drawer|+00.44|+00.32|+02.57": [ + -0.75, + 2.0, + 90, + 30 + ], + "Drawer|+00.44|+00.32|+02.94": [ + -0.75, + 3.5, + 90, + 30 + ], + "Drawer|+00.44|+00.32|+03.31": [ + -0.75, + 2.75, + 90, + 30 + ], + "Drawer|+00.44|+00.62|+02.19": [ + -0.5, + 2.5, + 90, + 30 + ], + "Drawer|+00.44|+00.62|+03.31": [ + -0.5, + 3.0, + 90, + 30 + ], + "GarbageCan|+00.50|+00.00|+03.82": [ + -0.5, + 3.25, + 90, + 30 + ], + "Sink|+00.50|+00.66|+02.76|SinkBasin": [ + -0.25, + 2.5, + 90, + 30 + ], + "Toilet|+00.27|+00.00|+01.46": [ + -0.75, + 2.25, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan410-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan410-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..09bb6c6c837541d12eb2b3566f010329e8edca29 GIT binary patch literal 1408 zcmbWxu}Z^07{Kwfl%s@F+Be7+g%09W#Nj44#l^u%icN74E2+4MPvHZZ$8vD6CiyKl z`Yqv??{fKnUf*8b+#Q9t@Lp}|{X0vz_ z+x{Hu;Ze5NW3Pwxu%1ck|D%WXa2)=}dRPzZVLhyeXT$wP3f)XI>$BI#F*~o%ULWgY zeXNgX!~N3~y3xn_SRcoB_%8KNefIiTAM0a%ycq7E4foG8>$lg>`gxLlA2aKBUO($+ z{j8t$&r|3|KkH}xTnv4zpJTSyZ?B*Avwqgk`WGp5qo4J&e%8p4H?#Y;IxDO5$!RqxtI4!|X-7|Y({|kazP}hf z&YI2p*~93$+4$i2WKbR*4$AlPzfUjxJ>6$KSHpB>{?7cBd6{{UIaWi^x7Q7~_t+lW zV|#3m?XkUew#W9^9@}GkY>&J2`$N6```8}aV|#3m?Qt=WZ;CpeVII$-j^{evhux1? z*?0Hz-Tm18*!?)9hxK>s_(7lbS)cVeJEP=tC4Zw4t7VgOXB8ykp)feA%4RR=_?1hF7a!GXvTdW4LO3=9km z6yo3F5ic*_-+te-^LlxGadop(JQdGz-gI|uJPUEUIEht=i&gvB)(^L(|>@_cH!Wx&4of%XHp3{W!1s<@)9N@ow_t zBIECLAN%<|&9QIZd-h&z9ySk~ht0$ML*~c)m>=`w{q){V^6_K;3-e=sJW0MHEq+|~ mzQ)Qg<;VP(e={2seq8orj`=Y^=EwX)=EwY)AM<1WVfF(%QHt9D literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-objects.json new file mode 100644 index 0000000..9358240 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-objects.json @@ -0,0 +1,28 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "FloorLamp", + "Towel", + "HandTowel", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "ShowerDoor", + "ShowerHead", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-openable.json new file mode 100644 index 0000000..311db7c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan412-openable.json @@ -0,0 +1,44 @@ +{ + "Cabinet|-03.17|+00.37|-00.59": [ + -2.25, + -0.25, + 270, + 30 + ], + "Cabinet|-03.17|+00.37|-01.38": [ + -2.25, + -0.75, + 270, + 30 + ], + "Cabinet|-03.17|+00.37|-01.40": [ + -2.5, + -1.5, + 270, + 30 + ], + "CounterTop|-03.43|+00.88|-01.39": [ + -2.75, + -1.0, + 270, + 30 + ], + "Sink|-03.39|+00.84|-00.93|SinkBasin": [ + -2.75, + -0.75, + 270, + 30 + ], + "Sink|-03.39|+00.84|-01.83|SinkBasin": [ + -2.75, + -1.5, + 270, + 30 + ], + "Toilet|-01.90|00.00|-01.74": [ + -1.0, + -1.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..181f924f8c6500d4244e793320f7baca3ec832e0 GIT binary patch literal 1232 zcmbW#u}Z^G00q#eh)C&2WP1vk97IJhlbhn=;3UDOIEa-*T*R;NgZzbjLdT97Iyg93 z$vcB@G)p;oxtAN7kE@%@>)WmH8s6fp>F(QjTEw&YaV(2CU$if6{dBizXU*^Zi~6x^ zHut-S`nlP7|LCMF4iC!Wz4-4n34gBT`N-wx_`6E(GYdIirSl;@FVFHU&qKtlT!(#7l4w^NM=`dL5g zXZ@V&1MA<-`dL5gXZ@_7`}9As@05LqY|mb{hwWi|*dDfr?O}V^9=2za?O}V^9=3<= XVSCsfwukMRW_#EkwukLu{nP3PEcBVE literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-objects.json new file mode 100644 index 0000000..97336e8 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-objects.json @@ -0,0 +1,31 @@ +[ + "Toilet", + "CounterTop", + "ScrubBrush", + "SoapBottle", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Drawer", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "ShowerHead", + "Dresser", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-openable.json new file mode 100644 index 0000000..cc6ef42 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan413-openable.json @@ -0,0 +1,68 @@ +{ + "Bathtub|-01.41|00.00|+00.56|BathtubBasin": [ + -0.25, + 1.0, + 270, + 30 + ], + "Cabinet|-01.61|+00.31|+02.49": [ + -0.75, + 3.25, + 270, + 30 + ], + "Cabinet|-01.61|+00.31|+03.11": [ + -0.75, + 3.5, + 270, + 30 + ], + "Cabinet|-01.61|+00.31|+03.14": [ + -0.75, + 2.75, + 270, + 30 + ], + "Cabinet|-01.61|+00.31|+03.75": [ + -0.75, + 3.0, + 270, + 30 + ], + "CounterTop|-01.80|+00.75|+03.12": [ + -1.0, + 2.75, + 270, + 30 + ], + "Dresser|+00.21|+00.81|+03.77": [ + 0.25, + 3.25, + 0, + 30 + ], + "GarbageCan|-01.76|-00.02|+02.22": [ + -0.75, + 2.75, + 270, + 30 + ], + "Sink|-01.83|+00.69|+02.78|SinkBasin": [ + -1.25, + 3.25, + 270, + 30 + ], + "Sink|-01.83|+00.69|+03.47|SinkBasin": [ + -1.25, + 3.0, + 270, + 30 + ], + "Toilet|-01.57|00.00|+01.82": [ + -0.5, + 2.5, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..bf3b903a4415242158c1accba1501c254fcd1f48 GIT binary patch literal 928 zcmbW#zY2m-7>D6gL_}9{wo~8`K@bt>)K;`KG=-GX5E&XR(N%Oob}5dI4h{_t{W-ov z-=T9vybTu(PMh79`-q9{d;=M z`(b)a{}er@$Ml%K5|ws&j`sp=Mvn;q literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-objects.json new file mode 100644 index 0000000..ae23dff --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-objects.json @@ -0,0 +1,30 @@ +[ + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Drawer", + "BathtubBasin", + "Plunger", + "GarbageCan", + "DishSponge", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "PaperTowelRoll", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-openable.json new file mode 100644 index 0000000..ae79074 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan414-openable.json @@ -0,0 +1,86 @@ +{ + "Bathtub|-00.44|+00.18|+01.58|BathtubBasin": [ + -1.0, + 2.75, + 180, + 30 + ], + "Cabinet|-02.41|+00.37|+01.59": [ + -1.5, + 2.25, + 270, + 30 + ], + "Cabinet|-02.41|+00.37|+02.04": [ + -1.5, + 1.75, + 270, + 30 + ], + "Cabinet|-02.41|+00.37|+02.86": [ + -1.5, + 2.25, + 270, + 30 + ], + "Cabinet|-02.41|+00.37|+02.91": [ + -1.5, + 2.75, + 270, + 30 + ], + "Cabinet|-02.41|+00.37|+03.57": [ + -1.5, + 3.0, + 270, + 30 + ], + "Cabinet|-02.41|+01.26|+02.91": [ + -1.75, + 3.0, + 270, + 30 + ], + "Cabinet|-02.41|+01.26|+03.57": [ + -1.5, + 3.0, + 270, + 30 + ], + "Cabinet|-02.41|+02.02|+02.91": [ + -1.75, + 3.0, + 270, + -30 + ], + "Cabinet|-02.41|+02.02|+03.57": [ + -1.75, + 3.0, + 270, + -30 + ], + "CounterTop|-02.61|+01.24|+01.46": [ + -2.0, + 1.25, + 270, + 30 + ], + "CounterTop|-02.69|+00.97|+02.26": [ + -2.0, + 2.5, + 270, + 30 + ], + "Sink|-02.72|+00.86|+02.23|SinkBasin": [ + -2.0, + 2.25, + 270, + 30 + ], + "Toilet|-02.58|+00.03|+00.66": [ + -2.0, + 1.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan415-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan415-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..96b4b4ef0c2d2c79a204a5d5cee26c85a2f36931 GIT binary patch literal 1040 zcmbW#u}T9$6a~;xf=KWqrW=K=1W_clonm8QB}=j)g&5ft8}TdrpyX3hT3T3GSQyQo zBCm9t;SBfPw^{Obb#r-ryOW;NOPMs?xGm?ojHYL$%4IrlpW6E2Zr)Cs-}{UDzH8R^ z-K>6W);>Hrt@80vm0$CJpJCcO%gu4npWlmZe+8#LHw<}}=g)qgKZ4(bSHbq}hka}x z+sF2?eXM^k^s|1}&-z(E>mMxB-{bqTe%8X;#}n_zdaTEKthb%@SdaBMq=)r( z>UiM&SdaBMvwgPD_Sya<+h_Z1pY5}K Xw$Jw2{xsWX`)r@>vwgPD_NVm^UVNW- literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-objects.json new file mode 100644 index 0000000..736912b --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-objects.json @@ -0,0 +1,26 @@ +[ + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Drawer", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-openable.json new file mode 100644 index 0000000..1fa5906 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan416-openable.json @@ -0,0 +1,44 @@ +{ + "CounterTop|-01.61|+00.70|+02.83": [ + -0.75, + 2.25, + 270, + 30 + ], + "Drawer|-01.34|+00.30|+02.13": [ + 0.0, + 2.5, + 270, + 30 + ], + "Drawer|-01.34|+00.30|+03.33": [ + 0.0, + 3.0, + 270, + 30 + ], + "GarbageCan|-01.74|+00.00|+01.34": [ + -0.75, + 0.75, + 270, + 30 + ], + "Sink|-01.70|+00.62|+02.28|SinkBasin": [ + -1.0, + 2.75, + 270, + 30 + ], + "Sink|-01.70|+00.62|+03.37|SinkBasin": [ + -1.0, + 3.0, + 270, + 30 + ], + "Toilet|-01.55|+00.00|+00.69": [ + -1.25, + 1.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..4aad57570cefdb478b1bac93360fc06ac4ad3446 GIT binary patch literal 1056 zcmbWxu}T9$6oui9ND7}~x-qboAOx|tOR%x93X9obAtvmGG$Bus2a1nknbN|-B8AcH zhj2@$Is9kl-hZ~^htd6GuUHl9JgwWOCf}rdI~(RQ<=MPhHr4B7-c0MC{;qmy>to+O zSBv_{m)FBGT@A{#N&h_;#qW9FowEOSN_^h&zPmpQ_gEI)eau5Qum1}C8TcbGzj^<| z{LzDB^6U9AKjz2$nBQLi!rtMS{Ca-OkNGjbJ^Yv-o5L~r_57G0^PA(x{FooxgJbgR e`7ytD{Foo}V}5Kej>)g**YjihvHjQ{{FmRHi^hNe literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-objects.json new file mode 100644 index 0000000..f695d09 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-objects.json @@ -0,0 +1,28 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "FloorLamp", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "ShowerDoor", + "ShowerHead", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-openable.json new file mode 100644 index 0000000..70e78f0 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan417-openable.json @@ -0,0 +1,50 @@ +{ + "Cabinet|-02.50|+00.40|-01.24": [ + -1.5, + -1.5, + 270, + 30 + ], + "Cabinet|-02.50|+00.40|-02.21": [ + -1.5, + -1.5, + 270, + 30 + ], + "Cabinet|-02.51|+00.43|-00.29": [ + -1.5, + -1.0, + 270, + 30 + ], + "Cabinet|-02.51|+00.43|-01.26": [ + -1.5, + -2.0, + 270, + 30 + ], + "CounterTop|-02.75|+00.99|-01.24": [ + -2.25, + -1.0, + 270, + 30 + ], + "GarbageCan|-01.53|+00.00|-00.18": [ + -0.5, + -0.75, + 270, + 30 + ], + "Sink|-02.91|+00.99|-00.73|SinkBasin": [ + -2.25, + -0.5, + 270, + 30 + ], + "Sink|-02.91|+00.99|-01.76|SinkBasin": [ + -2.25, + -2.0, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..8c572c33b3feede4cd033ef017b58f00e2279718 GIT binary patch literal 896 zcmbW#u}Z^07{Ku;BBk^pZaalc;!sNGZi1KI?m-XFcm# ze;#_)v!3;5p=Uiie;UrS_g4R#&9Sdz=Qyr<-=$|g>sjwV=vmKt*1H#a*0Y}V?vbAL PtY`hMyN7yqez)BN>@$%f literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-objects.json new file mode 100644 index 0000000..3cecf31 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-objects.json @@ -0,0 +1,27 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-openable.json new file mode 100644 index 0000000..6ae5129 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan418-openable.json @@ -0,0 +1,32 @@ +{ + "Cabinet|-02.29|+00.32|-03.25": [ + -1.25, + -3.5, + 270, + 30 + ], + "Cabinet|-02.29|+00.32|-03.81": [ + -1.25, + -3.0, + 270, + 30 + ], + "Cabinet|-02.30|+00.35|-02.25": [ + -1.25, + -3.0, + 270, + 30 + ], + "CounterTop|-02.63|+00.84|-03.04": [ + -1.75, + -3.0, + 270, + 30 + ], + "Toilet|-00.45|+00.00|-03.05": [ + -0.75, + -3.5, + 90, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..1f93d4184f8d4ca7710c392ba0c04fd6ae68acbd GIT binary patch literal 624 zcmbV_p$@_@6h#Y?uc#{|HGm-mje}qiDAKSl2*Q?@%q)Bb9|WI*L?RFf1cU8_|6?cbys|P)+ zkNV%&QQ!AG*V(?*`4G%pi8;*t)!cCpGbfqD?8zRMc^CiO1mk0me_(vDOnmg$#t-9X Z4?m0_<_?yLpB_Iwei%QDAI1a!@(s|1fENG& literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-objects.json new file mode 100644 index 0000000..1ec1460 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-objects.json @@ -0,0 +1,28 @@ +[ + "Toilet", + "SideTable", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Drawer", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "TissueBox" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-openable.json new file mode 100644 index 0000000..5553e97 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan419-openable.json @@ -0,0 +1,20 @@ +{ + "Bathtub|-00.98|-00.72|-02.93|BathtubBasin": [ + -1.25, + -2.0, + 180, + 30 + ], + "SideTable|-02.12|+00.46|-01.31": [ + -1.75, + -0.5, + 180, + 30 + ], + "Sink|-02.10|00.00|-02.03|SinkBasin": [ + -1.5, + -1.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan420-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan420-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..442e5057f1d15d18b0231cbb961b77465b5d445f GIT binary patch literal 576 zcmbV{p$@_@6h({WE1oMPRZ|N=;~27|%%=MA3d zDTnui=RBQHW{a9SsH4ezxe8{W%`op9t4&^neQ?`l5ihYL9C?WB0hx=q>tj*u|tOr9jtBs z!Hi}pU($Qed8{_e^|mFh;--Qy*=seGY8FkDD^(Qhi}p{uSO?+ve&HXJu)0qU{yD7N z9}itQ8o2T<|2;iXpZ2Tyrt{|OSQeJc=kNc8<&OD3GyB+&*^k+e*^k+ebCZWN%WunF z(4)iu>4)iu>4!7Z2d9?l%R706=}R6a50i(40v2}Qh$Y*EN0C?bNH+!PlFCn+|igIGz#MZ5|x$XG?5rsBVzy{ro5}OTqM6pe&#xv=ZM}Wo z&L=PR)`usjWqy2A<{$Zg&q3OqY}w!6m;F5&I1Rk{`uqEFykEut^;nPfSdY8t^M3T# z(YMF;*dE(sdu)&Oy4cfWJ=SAAUdQ*a{$|i;eb(nLdaTc@!FzkDO1tBG*dE(sdu)&G yakh+|D(->pjpDsMw#W9^9{ZlGO8r^(7wfY=>$5)VkE_0$qR;xQ&-$!Cu6_UzKZ||< literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-objects.json new file mode 100644 index 0000000..d7d6466 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-objects.json @@ -0,0 +1,31 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "Drawer", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "ShowerHead" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-openable.json new file mode 100644 index 0000000..e766e0a --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan423-openable.json @@ -0,0 +1,80 @@ +{ + "Bathtub|-03.59|+00.11|+01.52|BathtubBasin": [ + -2.75, + 1.0, + 270, + 30 + ], + "CounterTop|-00.28|+00.79|+01.93": [ + -1.0, + 2.75, + 90, + 30 + ], + "CounterTop|-02.54|+00.81|+00.28": [ + -1.75, + 1.0, + 180, + 30 + ], + "Drawer|-00.33|+00.32|+01.72": [ + -1.5, + 2.25, + 90, + 30 + ], + "Drawer|-00.33|+00.32|+02.16": [ + -1.5, + 2.75, + 90, + 30 + ], + "Drawer|-00.33|+00.32|+02.59": [ + -1.5, + 2.0, + 90, + 30 + ], + "Drawer|-00.33|+00.32|+03.03": [ + -1.5, + 2.5, + 90, + 30 + ], + "Drawer|-00.33|+00.62|+02.59": [ + -1.25, + 2.25, + 90, + 30 + ], + "Drawer|-00.33|+00.62|+03.03": [ + -1.5, + 2.5, + 90, + 30 + ], + "Drawer|-02.25|+00.32|+00.28": [ + -1.5, + 1.75, + 180, + 30 + ], + "Drawer|-02.84|+00.32|+00.28": [ + -2.25, + 1.75, + 180, + 30 + ], + "Sink|-00.26|+00.66|+01.92|SinkBasin": [ + -1.0, + 2.25, + 90, + 30 + ], + "Sink|-02.54|+00.66|+00.25|SinkBasin": [ + -1.75, + 0.75, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..75490b8ceb8bb454345ff51e5d26c3a52caeaa75 GIT binary patch literal 736 zcmbWyF$%&k6oBCOA*0NZijFg;8U(`zNF8vcXnVS1Pz rrq>odOb^q;^f0}S=wW)89;S!s1)_)PVS1PzrWcAHribZadSUVgAzEoo literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-objects.json new file mode 100644 index 0000000..be3a5d8 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-objects.json @@ -0,0 +1,26 @@ +[ + "Toilet", + "ShowerGlass", + "CounterTop", + "ScrubBrush", + "SoapBottle", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Cloth", + "SprayBottle", + "SinkBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "SoapBar", + "Mirror", + "Candle", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-openable.json new file mode 100644 index 0000000..36b4afe --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan424-openable.json @@ -0,0 +1,50 @@ +{ + "Cabinet|-00.49|+00.41|+02.06": [ + -1.5, + 1.75, + 90, + 30 + ], + "Cabinet|-00.49|+00.41|+02.86": [ + -1.75, + 2.75, + 90, + 30 + ], + "Cabinet|-00.50|+00.38|+02.84": [ + -1.5, + 2.0, + 90, + 30 + ], + "Cabinet|-00.50|+00.38|+03.65": [ + -1.5, + 3.0, + 90, + 30 + ], + "CounterTop|-00.26|+00.93|+02.84": [ + -1.0, + 2.5, + 90, + 30 + ], + "Sink|-00.30|+00.80|+02.42|SinkBasin": [ + -1.0, + 2.25, + 90, + 30 + ], + "Sink|-00.30|+00.80|+03.26|SinkBasin": [ + -1.0, + 3.0, + 90, + 30 + ], + "Toilet|-00.54|+00.00|+01.49": [ + -0.75, + 2.5, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan425-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan425-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..0d74f5836fe6deaf3da94fda3a70e34fec6e8d83 GIT binary patch literal 528 zcmbWvF$%&k6oBCZlx?2@4v)}zB-Ili6mz#8NtM11A zNXNZMpY^{JsNcM<{(O)9`4s&SeHV>aiGPo$@ih0%+H+6e>i=ncOL!Vj3~}(!r}ZTNJV=2qHqaZi zJ@4-8r)KMelcOpfA6Dr#{rB20{;tW#_;lY3-VH8-H}Ae2pX=Zuc#^;WoR077u^#KO z9_#Utd)x=>e}z8lvp(yyKI^kS>wkwn>$5)Vvp(yyKKtK&?(4B0>#-gW`Tw#W+aGez aKHF#eY@hqwWBco{&-U3q+h_aHo9PeHh>vjq literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-objects.json new file mode 100644 index 0000000..6e56b52 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-objects.json @@ -0,0 +1,30 @@ +[ + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Drawer", + "BathtubBasin", + "Plunger", + "GarbageCan", + "DishSponge", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "TissueBox", + "PaperTowelRoll" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-openable.json new file mode 100644 index 0000000..148c008 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan427-openable.json @@ -0,0 +1,68 @@ +{ + "Bathtub|-03.71|+00.34|+00.64|BathtubBasin": [ + -2.75, + 0.5, + 270, + 30 + ], + "CounterTop|-02.80|+00.00|-00.59": [ + -2.25, + 0.25, + 180, + 30 + ], + "Drawer|-01.44|+00.27|-00.62": [ + -2.0, + 0.5, + 180, + 30 + ], + "Drawer|-01.44|+00.53|-00.62": [ + -2.0, + 0.5, + 180, + 30 + ], + "Drawer|-01.89|+00.27|-00.62": [ + -2.5, + 0.5, + 180, + 30 + ], + "Drawer|-01.89|+00.53|-00.62": [ + -2.5, + 0.5, + 180, + 30 + ], + "Drawer|-02.34|+00.27|-00.62": [ + -1.75, + 0.5, + 180, + 30 + ], + "Drawer|-02.34|+00.53|-00.62": [ + -1.75, + 0.5, + 180, + 30 + ], + "Drawer|-02.79|+00.27|-00.62": [ + -2.25, + 0.5, + 180, + 30 + ], + "Drawer|-02.79|+00.53|-00.62": [ + -2.25, + 0.5, + 180, + 30 + ], + "Sink|-01.92|+00.44|+02.03|SinkBasin": [ + -1.75, + 1.5, + 0, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..1eb9160145d3eb25047d3936b3dae8a3b3f553c3 GIT binary patch literal 1008 zcmbWxu}Z^00LS4|M5Oc~ZaalcLP11mCO5^!!AXKm=^$1TaS@-w2l5sA2pu~*I67F( zeS%+;UipNJ)e2xEoM&b9_ybtfM>F{0`UKJkx3c>&Ghx+e*cAwqnkG#K|@7rTN zY>z{J_%rYA)x!t-Y@hA3ea`cN?e7=+Y@hA3eYVf5>2Sj9!kfZ+4vHSu!+KZ`>tQ{t ohxM?YQPIPCSP$!AJ*tQ{thxM=?)-$fZ0gxeeE&u=k literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-objects.json new file mode 100644 index 0000000..756e49d --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-objects.json @@ -0,0 +1,27 @@ +[ + "Toilet", + "CounterTop", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "HandTowel", + "Towel", + "ToiletPaper", + "Painting", + "Cloth", + "SprayBottle", + "SinkBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "ShowerDoor", + "ShowerHead", + "Cabinet" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-openable.json new file mode 100644 index 0000000..c3a8e6e --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan428-openable.json @@ -0,0 +1,50 @@ +{ + "Cabinet|-01.48|+00.35|+02.36": [ + -0.5, + 2.0, + 270, + 30 + ], + "Cabinet|-01.48|+00.35|+03.17": [ + -0.5, + 3.0, + 270, + 30 + ], + "Cabinet|-01.48|+00.37|+03.15": [ + -0.5, + 3.5, + 270, + 30 + ], + "Cabinet|-01.48|+00.37|+03.96": [ + -0.5, + 3.25, + 270, + 30 + ], + "CounterTop|-01.76|+00.67|+03.16": [ + -1.0, + 3.5, + 270, + 30 + ], + "Sink|-01.75|+00.88|+02.72|SinkBasin": [ + -1.25, + 2.75, + 270, + 30 + ], + "Sink|-01.75|+00.88|+03.55|SinkBasin": [ + -1.25, + 3.5, + 270, + 30 + ], + "Toilet|-01.45|+00.00|+01.87": [ + -1.0, + 2.25, + 270, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..9e2fcddb8ecb04ac76afbc99d508c705b9c7a591 GIT binary patch literal 1136 zcmbW#F-ikL7=Y1HL?ox!ZWXpt5D9{vonm8QC5zc$AtvmKjd%(VlpJA>kkZn^!otGn z%(EDY^T>4uxW9#{48^r&vCdOGVL`u6^M)=#?c{nPet z=+^tgZ9DJQ-aR~Ms{OsDdanNajKa^eTBLQfOzT_rPWEeI=Y8({c5$Aa=a_pO^26~Y zZLt2$5)Vv;IfX zXMNUZeb#6F_oC1Gtk3!!^Z$qcnqzLcx1zOMIT=eS(Ww;zjpGXMAU J{QFC<7GGc9zP|tf literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-objects.json new file mode 100644 index 0000000..cb328b6 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-objects.json @@ -0,0 +1,28 @@ +[ + "Shelf", + "Toilet", + "SoapBottle", + "ScrubBrush", + "HandTowelHolder", + "Sink", + "ShowerCurtain", + "HandTowel", + "Towel", + "ToiletPaper", + "Bathtub", + "Cloth", + "SprayBottle", + "SinkBasin", + "Window", + "BathtubBasin", + "Plunger", + "GarbageCan", + "LightSwitch", + "Candle", + "Mirror", + "SoapBar", + "TowelHolder", + "ToiletPaperHanger", + "Faucet", + "TissueBox" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-openable.json new file mode 100644 index 0000000..d359a59 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan429-openable.json @@ -0,0 +1,26 @@ +{ + "Bathtub|-02.12|-00.09|-03.12|BathtubBasin": [ + -1.25, + -1.0, + 180, + 30 + ], + "Shelf|+00.81|+00.81|-00.61": [ + 0.25, + -1.0, + 90, + 30 + ], + "Shelf|-01.57|+00.81|-00.14": [ + -1.25, + -0.75, + 0, + 30 + ], + "Toilet|+00.00|00.00|-03.44": [ + -0.5, + -3.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan430-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan430-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..8db3095569bd4728cdf62b7059503fca6ea96852 GIT binary patch literal 1824 zcmbW#p-#h46oBDEP&`FlA(;RKA%tWO2f-jvWML%;!bnFjgs0$v*dz22CMPQ@CMFo{ zd=p24x%uvG@A=2}b$xqvbGK8x7a!HQo<20yd0AaNo>hagdYm+G&FJNR(v0ih{maqw zv|jH|pGL3s+6Tu+r-Sn3a8Q1h|NPr8{{9xK`+GAx zn{_w2NY?8uy{wnJ=w-dEmvwPo^|iw|nQd0q$NISU|BLtaIoHSfSRd=#I(p`DzaG}Z zee|#%*28*O59`@FdKRgN^{^h+!+KZ`>tQ`xM^Be}SP$!AJ*G*TSRdn~>G*K)_FgF!z(KkMh8`G232Z2zp5ZQZ0=2X0TZtUDk6onHlB2W|q>YnJUE zdYB%r)BBhnribZadh4Kv>0x@99;S!sVR~wvbTK_l57Wc+uxf9t_ILf1AGROckKG5G zx7R#&?jFu@w=enF@RO=}d(30=c$?nCsy(sVr*9v&4}S+=*{Hp#^IqV?z(;{&4*W)6 zI97i3`NjNVelfq8U(7E)PX2MT%=Ql-zH{t*#C4c&-`@Q{Qm%EXSRPo;m=7GQJoM#( z<$-&n))AHmmIsyxZqohe$^**-*I`~B-FeCb%LB^;%LDU;W0i-#Jg_{lJg_{r!yim2 B02=@R literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-objects.json new file mode 100644 index 0000000..a7cc403 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-objects.json @@ -0,0 +1,45 @@ +[ + "Shelf", + "Ladle", + "Statue", + "CounterTop", + "SoapBottle", + "Sink", + "Plate", + "Fork", + "HousePlant", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Bowl", + "Lettuce", + "Toaster", + "Egg", + "Pan", + "Chair", + "Apple", + "SinkBasin", + "Fridge", + "Mug", + "Drawer", + "Cup", + "Bread", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Faucet", + "Kettle", + "Vase", + "PaperTowelRoll", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-openable.json new file mode 100644 index 0000000..91ca634 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan5-openable.json @@ -0,0 +1,194 @@ +{ + "Cabinet|+00.12|+02.27|-02.00": [ + 0.25, + -1.25, + 180, + -30 + ], + "Cabinet|+00.20|+02.02|-02.00": [ + 0.5, + -1.25, + 180, + -30 + ], + "Cabinet|+01.18|+02.02|-02.00": [ + 1.0, + -1.25, + 180, + -30 + ], + "Cabinet|+01.38|+00.46|-01.69": [ + 1.0, + -0.75, + 180, + 30 + ], + "Cabinet|+01.39|+00.47|-01.06": [ + 0.5, + -1.0, + 90, + 30 + ], + "Cabinet|+01.74|+02.02|-02.00": [ + 1.0, + -1.25, + 180, + -30 + ], + "Cabinet|+01.75|+02.02|-01.03": [ + 1.0, + -1.25, + 90, + -30 + ], + "Cabinet|+01.75|+02.02|-01.40": [ + 1.0, + -1.25, + 90, + -30 + ], + "Cabinet|-00.42|+00.37|-00.01": [ + -0.25, + -1.0, + 0, + 30 + ], + "Cabinet|-00.45|+00.47|-00.01": [ + -0.5, + -1.0, + 0, + 30 + ], + "Cabinet|-00.46|+02.27|-02.00": [ + 0.0, + -1.25, + 180, + -30 + ], + "Cabinet|-00.82|+00.47|-01.69": [ + -0.25, + -0.75, + 180, + 30 + ], + "Cabinet|-00.84|+00.47|-00.05": [ + 0.0, + -0.5, + 270, + 30 + ], + "Cabinet|-00.84|+00.47|-01.67": [ + 0.0, + -1.0, + 270, + 30 + ], + "Cabinet|-01.10|+02.02|-02.00": [ + -0.5, + -1.25, + 180, + -30 + ], + "Cabinet|-01.15|+02.02|+00.38": [ + -0.5, + -0.25, + 270, + -30 + ], + "Cabinet|-01.15|+02.02|-00.77": [ + -0.5, + -0.5, + 270, + -30 + ], + "Cabinet|-01.15|+02.02|-01.98": [ + -0.25, + -1.25, + 270, + -30 + ], + "Cabinet|-01.15|+02.27|-00.84": [ + -0.5, + -1.25, + 270, + -30 + ], + "Cabinet|-01.15|+02.27|-01.42": [ + -0.5, + -1.0, + 270, + -30 + ], + "CounterTop|+01.16|+00.95|-02.01": [ + 1.0, + -1.25, + 180, + 30 + ], + "CounterTop|-00.63|+01.17|+00.57": [ + 0.5, + 0.75, + 270, + 30 + ], + "CounterTop|-00.67|+00.95|+00.19": [ + -0.5, + -0.5, + 0, + 30 + ], + "Drawer|-00.07|+00.75|-00.01": [ + 0.75, + -0.5, + 270, + 30 + ], + "Drawer|-00.45|+00.75|-00.01": [ + 0.0, + -0.5, + 270, + 30 + ], + "Drawer|-00.82|+00.75|-01.69": [ + 0.0, + -1.25, + 270, + 30 + ], + "Fridge|+01.98|+00.00|-00.54": [ + 1.0, + -0.75, + 90, + 30 + ], + "Microwave|+01.83|+00.90|-01.35": [ + 1.0, + -1.25, + 90, + 30 + ], + "Shelf|+02.81|+00.16|+00.14": [ + 2.75, + 1.5, + 180, + 30 + ], + "Shelf|+02.81|+00.54|+00.14": [ + 2.5, + 1.25, + 180, + 30 + ], + "Shelf|+02.81|+00.87|+00.14": [ + 2.0, + 0.75, + 90, + 30 + ], + "Sink|-00.12|+00.88|-02.01|SinkBasin": [ + 0.0, + -1.25, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan6-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan6-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..2afba7a6048df5caf5d4cad428ac05ba4036a385 GIT binary patch literal 2272 zcmbW%Jx&5q6o%oep>h?|jV3hy6vmiHWv8*Rurfr3SQs&bu`#Z~1+j%$0wv`X6ciL9 za~~2<=`_dpF!%ep7`|`sZ|)xU(ntC%N7eMHE-#Ama(rI)i*h`v-|OM)dACm#@57UhEu> zQ(k*{vAkGbEH9Riu6$TNEFY$W#Bw>3NSHribICXW!=g!t}jIAJfOq;W+8r)3>LO>0|ns4vuq~``FXBU*_)v)5r8N z9UP}VtL)1U^TYfwKgVt<6b9g76^)`Ohj3?*T%|w}LSidA5Df(tvWO!JM39YW5U1ck-Xr)3DN}CY z!i5V$-h3+8$;Vm80NS^r!w zzkj}2U#RYtnTMGUza~t_kMoy@^Ue|c(IuMnLY72D-X~45aWIu<5}`)a!vOB znBHgav-jEicjpA*zz_jZ)uh`-b+Zv%Fc}lZW`ey5!CB=9>1OB+K7^`Lq04{v5X{h24|$D1Y-~%bn%V z@@M(8{JHDnMl64pKg*xx&+?x<#P`)9f0jSjv|s+#<V?`6oBEeg|_f1wp&}G2~8p^lBv=;O5-Axg<`A}k%_=^6Xg^+5FBBT;L_z5 z6ciN3p7&9_GTV&49d_S82>yM&x&HS3q&$^B-Q9fkW7%D{-RJvH-MH=U7t6=x?BRB? zyqmw>|1$fvnjh}3e$IZ+4?h3!aWZZv7vuJC`=8fYdB2)XU3crcj*^@3HtnN zJkKS0AJ5s>!RByYU()l>$$fH(%X|8(dV`;nn@!y}$M?g|$Ii#j$Ii#j$2vH#&gZ`K zajh+dosXT5^?I*f*2{WXFMBWNRj>PcSug8lJ>H{-^{^iH9?q+tz z*nBphy@&Ja`*7cUHs9yWXY<*7HlMwh^J>2P+c>ZL=Ck>1KAX?xvpJks^Iy{cmd$7L z*?cyi&1du3?{SFvdf4~DdRPzZVLjYCXRLbc>tg@!ZG7JUoAvW{T_^I8tlz$V?$hV> zANQk!^|OA~zl-PevwqgkL-eqI*3W(Vy#C{Ubg+KbyHCBWm-Vt<*2{WXFYD!AN3447 z>n+pzt(%MrB9b!sWBm-RN&SEYoi0ssI2 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-objects.json new file mode 100644 index 0000000..805b354 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-objects.json @@ -0,0 +1,45 @@ +[ + "Ladle", + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "HousePlant", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Glassbottle", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Pen", + "Egg", + "SprayBottle", + "Pan", + "Chair", + "SinkBasin", + "Apple", + "Fridge", + "Window", + "Mug", + "Drawer", + "Cup", + "Bread", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "StoveBurner", + "Kettle", + "Faucet", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-openable.json new file mode 100644 index 0000000..be322ef --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan8-openable.json @@ -0,0 +1,200 @@ +{ + "Cabinet|+00.49|+02.06|-01.69": [ + 0.5, + -0.75, + 180, + -30 + ], + "Cabinet|+00.83|+00.40|-01.39": [ + 0.25, + -0.5, + 180, + 30 + ], + "Cabinet|+00.86|+00.40|+00.67": [ + 0.0, + 0.0, + 90, + 30 + ], + "Cabinet|+00.86|+00.40|-00.55": [ + 0.0, + -0.25, + 90, + 30 + ], + "Cabinet|+00.86|+00.40|-01.37": [ + 0.0, + -0.75, + 90, + 30 + ], + "Cabinet|+01.16|+02.06|-00.34": [ + 0.5, + -0.75, + 90, + -30 + ], + "Cabinet|+01.16|+02.06|-01.02": [ + 0.25, + -1.0, + 90, + -30 + ], + "Cabinet|-00.19|+02.06|-01.69": [ + 0.25, + -1.0, + 180, + -30 + ], + "Cabinet|-00.20|+00.40|-01.39": [ + 0.5, + -0.5, + 180, + 30 + ], + "Cabinet|-00.24|+00.40|-01.39": [ + -0.75, + -0.5, + 180, + 30 + ], + "Cabinet|-00.69|+00.75|-01.39": [ + -1.0, + -0.75, + 180, + 30 + ], + "Cabinet|-00.82|+00.40|-01.39": [ + -0.25, + -0.5, + 180, + 30 + ], + "Cabinet|-00.82|+02.06|-01.69": [ + -0.5, + -1.0, + 180, + -30 + ], + "Cabinet|-00.87|+02.01|-01.69": [ + -1.25, + -0.5, + 180, + 0 + ], + "Cabinet|-01.61|+02.01|-01.69": [ + -1.0, + -0.5, + 180, + 0 + ], + "Cabinet|-01.66|+02.06|-01.68": [ + -2.0, + -1.0, + 180, + -30 + ], + "Cabinet|-01.67|+00.40|-01.39": [ + -1.5, + -0.5, + 180, + 30 + ], + "Cabinet|-02.24|+00.40|-01.39": [ + -1.5, + -0.5, + 180, + 30 + ], + "CounterTop|+01.17|+00.95|-00.65": [ + 0.5, + -1.0, + 90, + 30 + ], + "CounterTop|+01.50|+01.20|-00.66": [ + 0.5, + -1.0, + 90, + 0 + ], + "CounterTop|-01.97|+00.95|-01.71": [ + -2.0, + -1.0, + 180, + 30 + ], + "CounterTop|-02.10|+00.95|+00.29": [ + -2.0, + -0.5, + 0, + 30 + ], + "Drawer|+00.59|+00.75|-01.39": [ + -0.25, + -1.0, + 90, + 30 + ], + "Drawer|+00.86|+00.75|+00.43": [ + 0.25, + 0.25, + 90, + 30 + ], + "Drawer|+00.86|+00.75|-00.70": [ + 0.25, + -1.0, + 90, + 30 + ], + "Drawer|+00.87|+00.75|-01.14": [ + 0.0, + -0.75, + 90, + 30 + ], + "Drawer|-00.38|+00.75|-01.39": [ + -1.0, + -1.0, + 90, + 30 + ], + "Drawer|-01.80|+00.75|-01.39": [ + -1.25, + -1.0, + 270, + 30 + ], + "Drawer|-02.11|+00.75|-01.39": [ + -1.5, + -1.0, + 270, + 30 + ], + "Fridge|+01.42|+00.00|+02.10": [ + 0.5, + 2.25, + 90, + 0 + ], + "GarbageCan|+01.38|+00.00|+01.08": [ + 0.25, + 1.75, + 90, + 30 + ], + "Microwave|+01.42|+01.15|+00.02": [ + 0.5, + 0.0, + 90, + 30 + ], + "Sink|+00.16|+00.82|-01.80|SinkBasin": [ + -0.25, + -1.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-layout.npy b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-layout.npy new file mode 100644 index 0000000000000000000000000000000000000000..d14724e9428901487408170d436ed3222e2610ca GIT binary patch literal 1344 zcmbWzu}Z^G6b9gH5fPsvTNE-msEAM}H^s%lNrFvr5G#qeh)>}I^%eRE9Xn>o(80lK z@(n$sSuWqby|?H8zi#fXZ|`@~d-}*HRr6Tq=UIL+J1)`z*ed7psw!TMl*us*ndEhRPw$5kKp+o2EE2kV3N!TR9Qke_#h_2Ya$ poa@V+`eJ>tzF1$ZFP4wxWBFJ7x literal 0 HcmV?d00001 diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-objects.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-objects.json new file mode 100644 index 0000000..509227c --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-objects.json @@ -0,0 +1,41 @@ +[ + "CounterTop", + "SoapBottle", + "Plate", + "Sink", + "Fork", + "CoffeeMachine", + "Knife", + "Spatula", + "PepperShaker", + "Potato", + "Lettuce", + "Bowl", + "Toaster", + "Egg", + "Pan", + "Apple", + "SinkBasin", + "Chair", + "Fridge", + "Window", + "Mug", + "Drawer", + "Bread", + "Cup", + "Pot", + "StoveKnob", + "Microwave", + "SaltShaker", + "GarbageCan", + "DishSponge", + "LightSwitch", + "DiningTable", + "StoveBurner", + "Faucet", + "Kettle", + "ButterKnife", + "Tomato", + "Cabinet", + "Spoon" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-openable.json b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-openable.json new file mode 100644 index 0000000..5be23cb --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/layouts/FloorPlan9-openable.json @@ -0,0 +1,284 @@ +{ + "Cabinet|+00.02|+02.01|+01.31": [ + -0.25, + 0.75, + 0, + -30 + ], + "Cabinet|+00.07|+02.26|+01.31": [ + 0.0, + 0.5, + 0, + -30 + ], + "Cabinet|+00.33|+02.01|-00.61": [ + 0.0, + 0.0, + 180, + -30 + ], + "Cabinet|+00.36|+02.01|-00.61": [ + 0.25, + 0.0, + 180, + -30 + ], + "Cabinet|+00.97|+02.26|+01.31": [ + 1.0, + 0.5, + 0, + -30 + ], + "Cabinet|+00.98|+02.01|-00.61": [ + 0.5, + 0.25, + 180, + -30 + ], + "Cabinet|+01.02|+00.40|-00.30": [ + 1.75, + 0.5, + 180, + 30 + ], + "Cabinet|+01.02|+02.01|-00.61": [ + 1.25, + 0.0, + 180, + -30 + ], + "Cabinet|+01.03|+00.40|+01.00": [ + 1.75, + 0.0, + 0, + 30 + ], + "Cabinet|+01.03|+02.01|+01.31": [ + 1.25, + 0.75, + 0, + -30 + ], + "Cabinet|+01.67|+00.40|-00.30": [ + 1.0, + 0.5, + 180, + 30 + ], + "Cabinet|+01.67|+02.01|+01.31": [ + 1.5, + 0.75, + 0, + -30 + ], + "Cabinet|+01.68|+00.40|+01.00": [ + 2.0, + 0.0, + 0, + 30 + ], + "Cabinet|+01.68|+02.01|-00.61": [ + 1.75, + 0.0, + 180, + -30 + ], + "Cabinet|+01.72|+00.40|+01.00": [ + 2.25, + 0.25, + 0, + 30 + ], + "Cabinet|+01.72|+00.40|-00.30": [ + 2.25, + 0.5, + 180, + 30 + ], + "Cabinet|+01.72|+02.01|-00.61": [ + 2.0, + 0.0, + 180, + -30 + ], + "Cabinet|+01.73|+02.01|+01.31": [ + 2.0, + 0.75, + 0, + -30 + ], + "Cabinet|+02.33|+00.40|+01.00": [ + 1.75, + 0.0, + 0, + 30 + ], + "Cabinet|+02.33|+02.01|+01.31": [ + 2.0, + 0.75, + 0, + -30 + ], + "Cabinet|+02.35|+00.40|-00.30": [ + 1.75, + 0.5, + 180, + 30 + ], + "Cabinet|+02.35|+02.01|-00.61": [ + 2.0, + 0.0, + 180, + -30 + ], + "Cabinet|+02.37|+00.40|+01.00": [ + 2.0, + 0.0, + 0, + 30 + ], + "Cabinet|+02.37|+02.01|+01.31": [ + 2.5, + 0.75, + 0, + -30 + ], + "Cabinet|+02.98|+00.40|+01.00": [ + 2.25, + 0.25, + 0, + 30 + ], + "Cabinet|+02.99|+02.01|+01.31": [ + 2.75, + 0.75, + 0, + -30 + ], + "Cabinet|-00.27|+00.40|+01.00": [ + 0.25, + 0.0, + 0, + 30 + ], + "Cabinet|-00.28|+02.01|-00.61": [ + 0.0, + 0.0, + 180, + -30 + ], + "CounterTop|+01.36|+00.95|-00.60": [ + 1.0, + 0.25, + 180, + 30 + ], + "CounterTop|+01.92|+00.95|+01.30": [ + 2.25, + 0.5, + 0, + 30 + ], + "CounterTop|-00.16|+00.95|+01.30": [ + -0.75, + 1.0, + 90, + 30 + ], + "DiningTable|-00.84|+00.79|-01.26": [ + -1.25, + -0.25, + 180, + 30 + ], + "Drawer|+01.17|+00.79|-00.30": [ + 1.5, + 0.25, + 180, + 30 + ], + "Drawer|+01.18|+00.79|+01.00": [ + 0.75, + 0.25, + 0, + 30 + ], + "Drawer|+01.52|+00.79|-00.30": [ + 1.25, + 0.25, + 180, + 30 + ], + "Drawer|+01.53|+00.79|+01.00": [ + 1.25, + 0.25, + 0, + 30 + ], + "Drawer|+01.86|+00.79|+01.00": [ + 1.5, + 0.25, + 0, + 30 + ], + "Drawer|+01.87|+00.79|-00.30": [ + 1.5, + 0.25, + 180, + 30 + ], + "Drawer|+02.19|+00.79|+01.00": [ + 1.75, + 0.25, + 0, + 30 + ], + "Drawer|+02.21|+00.79|-00.30": [ + 2.0, + 0.25, + 180, + 30 + ], + "Drawer|+02.51|+00.79|+01.00": [ + 2.75, + 0.25, + 0, + 30 + ], + "Drawer|+02.84|+00.79|+01.00": [ + 2.25, + 0.5, + 90, + 30 + ], + "Drawer|-00.13|+00.79|+01.00": [ + -0.5, + 0.25, + 0, + 30 + ], + "Fridge|+03.04|+00.00|-00.71": [ + 3.0, + 0.5, + 180, + 30 + ], + "GarbageCan|-01.99|+00.00|+01.36": [ + -1.0, + 1.0, + 270, + 30 + ], + "Microwave|+00.53|+01.67|+01.44": [ + 0.5, + 0.5, + 0, + 0 + ], + "Sink|+00.05|+00.90|-00.65|SinkBasin": [ + 0.25, + 0.0, + 180, + 30 + ] +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/utils/__init__.py b/easi/tasks/ebalfred/vendor/gen/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/gen/utils/game_util.py b/easi/tasks/ebalfred/vendor/gen/utils/game_util.py new file mode 100644 index 0000000..e643c93 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/utils/game_util.py @@ -0,0 +1,377 @@ +import copy +import random +import cv2 +import numpy as np +import easi.tasks.ebalfred.vendor.gen.constants as constants +import easi.tasks.ebalfred.vendor.gen.goal_library as glib + + +def get_pose(event): + pose = event.pose + return (int(np.round(pose[0] / (1000 * constants.AGENT_STEP_SIZE))), + int(np.round(pose[1] / (1000 * constants.AGENT_STEP_SIZE))), + int(np.round(pose[2] / (1000 * 90))), + int(np.round(pose[3] / (1000)))) + + +def get_object_data(metadata): + return [ + {"objectName": obj["name"].split("(Clone)")[0], "position": obj["position"], "rotation": obj["rotation"]} + for obj in metadata["objects"] + if obj["pickupable"] + ] + + +def imresize(image, size, rescale=True): + if image is None: + return None + if image.shape[0] != size[0] or image.shape[1] != size[1]: + image = cv2.resize(image, size) + if rescale: + if image.dtype != np.float32: + image = image.astype(np.float32) + image /= 255.0 + return image + + +def depth_imresize(image, size, rescale=True, max_depth=constants.MAX_DEPTH): + if image is None: + return None + if image.shape[0] != size[0] or image.shape[1] != size[1]: + image = cv2.resize(image, size) + image[image > max_depth] = max_depth + if rescale: + if image.dtype != np.float32: + image = image.astype(np.float32) + image /= max_depth + return image + + +def get_camera_matrix(pose, camera_height): + assert(pose[2] in {0, 1, 2, 3}) + sin_x = np.sin(pose[3] * np.pi / 180) + cos_x = np.cos(pose[3] * np.pi / 180) + x_rotation = np.matrix([ + [1, 0, 0], + [0, cos_x, -sin_x], + [0, sin_x, cos_x]]) + sin_y = np.sin(pose[2] * np.pi / 180) + cos_y = np.cos(pose[2] * np.pi / 180) + y_rotation = np.matrix([ + [cos_y, 0, sin_y], + [0, 1, 0], + [-sin_y, 0, cos_y]]) + rotation_matrix = np.matmul(x_rotation, y_rotation) + transformation_matrix = np.matrix([pose[0], camera_height, pose[1], 1]).T + extrinsic_matrix = np.concatenate((np.concatenate((rotation_matrix, np.matrix([0, 0, 0])), axis=0), + transformation_matrix), axis=1) + return extrinsic_matrix + + +def get_rotation_matrix(pose): + assert(pose[2] in {0, 1, 2, 3}), 'rotation was %s' % str(pose[2]) + sin_x = np.sin(-pose[3] * np.pi / 180) + cos_x = np.cos(-pose[3] * np.pi / 180) + x_rotation = np.matrix([ + [1, 0, 0], + [0, cos_x, -sin_x], + [0, sin_x, cos_x]], dtype=np.float32) + sin_y = np.sin((-pose[2] % 4) * 90 * np.pi / 180) + cos_y = np.cos((-pose[2] % 4) * 90 * np.pi / 180) + y_rotation = np.matrix([ + [cos_y, 0, sin_y], + [0, 1, 0], + [-sin_y, 0, cos_y]], dtype=np.float32) + rotation_matrix = np.matmul(x_rotation, y_rotation) + return rotation_matrix + + +def depth_to_world_coordinates(depth, pose, camera_height): + x_points = np.arange(-constants.SCREEN_WIDTH / 2, constants.SCREEN_WIDTH / 2, dtype=depth.dtype) + x_vals = (depth * x_points / constants.FOCAL_LENGTH) + + y_points = np.arange(constants.SCREEN_HEIGHT / 2, -constants.SCREEN_HEIGHT / 2, -1, dtype=depth.dtype) + y_vals = (depth.T * y_points / constants.FOCAL_LENGTH).T + + z_vals = depth + xyz = np.stack((x_vals, y_vals, z_vals), axis=2) / (1000 * constants.AGENT_STEP_SIZE) + rotation_matrix = np.linalg.inv(get_rotation_matrix(pose)) + xyz = np.array(np.dot(rotation_matrix, xyz.reshape(-1, 3).T).T).reshape( + constants.SCREEN_HEIGHT, constants.SCREEN_WIDTH, 3) + xzy = xyz[:, :, [0, 2, 1]] + xzy += np.array([pose[0], pose[1], camera_height]) + return xzy + + +# coordinates should be [n, (xzy)] +def world_to_camera_coordinates(coordinates, pose, camera_height): + coordinates = coordinates.copy() + coordinates -= np.array([pose[0], pose[1], camera_height]) + xyz = coordinates[:, [0, 2, 1]] # [n, (xyz)] + rotation_matrix = get_rotation_matrix(pose) + xyd = np.array(np.dot(rotation_matrix, xyz.T).T) + xyd *= (1000 * constants.AGENT_STEP_SIZE) + depth = np.maximum(xyd[:, -1], 0.01) + x_points = xyd[:, 0] * constants.FOCAL_LENGTH / depth + constants.SCREEN_WIDTH / 2 + y_points = constants.SCREEN_HEIGHT - (xyd[:, 1] * constants.FOCAL_LENGTH / depth + constants.SCREEN_HEIGHT / 2) + return np.stack((x_points, y_points, depth)).T + + +def get_templated_action_str(plan, idx=0): + action = copy.deepcopy(plan[idx]) + object_name, recep_name, prev_object_name, prev_recep_name, next_object_name, next_recep_name = get_relevant_objs(action, plan, idx) + + a_type = action['action'] + templated_str = "" + + if 'GotoLocation' in a_type: + templated_str = "go to the %s" % (next_recep_name if next_recep_name != "" else prev_object_name) + elif 'OpenObject' in a_type: + templated_str = "open the %s" % (object_name) + elif 'CloseObject' in a_type: + templated_str = "close the %s" % (object_name) + elif 'PickupObject' in a_type: + templated_str = "pick up the %s" % (object_name) + elif 'PutObject' in a_type: + templated_str = "put the %s in the %s" % (object_name, recep_name) + elif 'CleanObject' in a_type: + templated_str = "wash the %s" % (prev_object_name) + elif 'HeatObject' in a_type: + templated_str = "heat the %s" % (prev_object_name) + elif 'CoolObject' in a_type: + templated_str = "cool the %s" % (prev_object_name) + elif 'ToggleObject' in a_type: + templated_str = "toggle %s" % (object_name) + elif 'SliceObject' in a_type: + templated_str = "slice the %s" % (object_name) + elif 'End' in a_type: + templated_str = "<>" + + return templated_str + + +def get_discrete_hl_action(plan, idx=0): + action = copy.deepcopy(plan[idx]) + object_name, recep_name, prev_object_name, prev_recep_name, next_object_name, next_recep_name = get_relevant_objs(action, plan, idx) + + a_type = action['action'] + discrete_action = {'action': "", 'args': []} + + if 'GotoLocation' in a_type: + discrete_action['action'] = "GotoLocation" + discrete_action['args'] = [next_recep_name if next_recep_name != "" else next_object_name] + elif 'OpenObject' in a_type: + discrete_action['action'] = "OpenObject" + discrete_action['args'] = [object_name] + elif 'CloseObject' in a_type: + discrete_action['action'] = "CloseObject" + discrete_action['args'] = [object_name] + elif 'PickupObject' in a_type: + discrete_action['action'] = "PickupObject" + discrete_action['args'] = [object_name] + elif 'PutObject' in a_type: + discrete_action['action'] = "PutObject" + discrete_action['args'] = [object_name, recep_name] + elif 'CleanObject' in a_type: + discrete_action['action'] = "CleanObject" + discrete_action['args'] = [prev_object_name] + elif 'HeatObject' in a_type: + discrete_action['action'] = "HeatObject" + discrete_action['args'] = [prev_object_name] + elif 'CoolObject' in a_type: + discrete_action['action'] = "CoolObject" + discrete_action['args'] = [prev_object_name] + elif 'ToggleObject' in a_type: + discrete_action['action'] = "ToggleObject" + discrete_action['args'] = [object_name] + elif 'SliceObject' in a_type: + discrete_action['action'] = "SliceObject" + discrete_action['args'] = [object_name] + else: + discrete_action['action'] = "NoOp" + discrete_action['args'] = [] + + return discrete_action + + +def object_id_to_name(object_id): + return object_id.split('|')[0] + + +def get_relevant_objs(action, plan, idx=0): + object_name = object_id_to_name(action['objectId']).lower() if 'objectId' in action else "" + recep_name = object_id_to_name(action['receptacleObjectId']).lower() if 'receptacleObjectId' in action else "" + prev_object_name, prev_recep_name = "", "" + next_object_name, next_recep_name = "", "" + + prev_idx = idx - 2 + if prev_idx >= 0: + prev_action = copy.deepcopy(plan[prev_idx]) + prev_object_name = object_id_to_name(prev_action['objectId']).lower() if 'objectId' in prev_action else "" + prev_recep_name = object_id_to_name(prev_action['receptacleObjectId']).lower() if 'receptacleObjectId' in prev_action else "" + + next_idx = idx + 1 + if next_idx < len(plan): + next_action = copy.deepcopy(plan[next_idx]) + next_object_name = object_id_to_name(next_action['objectId']).lower() if 'objectId' in next_action else "" + next_recep_name = object_id_to_name(next_action['receptacleObjectId']).lower() if 'receptacleObjectId' in next_action else "" + + return object_name, recep_name, prev_object_name, prev_recep_name, next_object_name, next_recep_name + + +def get_action_str(action): + action = copy.deepcopy(action) + a_type = action['action'] + action_str = 'Action: ' + a_type + del action['action'] + + if 'Teleport' in a_type: + action_str = a_type + if 'x' in action: + action_str += ' x: %.03f' % action['x'] + del action['x'] + if 'y' in action: + action_str += ' y: %.03f' % action['y'] + del action['y'] + if 'z' in action: + action_str += ' z: %.03f' % action['z'] + del action['z'] + if 'rotation' in action and action.get('rotateOnTeleport', False): + if type(action['rotation']) == dict: + action_str += ' r: %d' % int(action['rotation']['y']) + else: + action_str += ' r: %d' % int(action['rotation']) + del action['rotation'] + del action['rotateOnTeleport'] + if 'horizon' in action: + action_str += ' h: %d' % int(action['horizon']) + del action['horizon'] + elif 'Goto' in a_type: + action_str = a_type + if 'location' in action: + action_str += ' loc: %s' % action['location'] + del action['location'] + elif a_type in {'OpenObject', 'CloseObject', 'PickupObject', 'ToggleObject', 'SliceObject'}: + if 'objectId' not in action: + action['objectId'] = 'None' + action_str = '%s %s' % (a_type, action['objectId']) + elif a_type in {'RotateByDegree', 'LookByDegree'}: + if type(action['rotation']) == dict: + action_str += ' r: %d' % int(action['rotation']['y']) + else: + action_str += ' r: %d' % int(action['rotation']) + action_str = '%s %d' % (a_type, action['rotation']['y']) + del action['rotation'] + elif a_type == 'PutObject': + action_str = a_type + if 'objectId' in action: + action_str += ' o: %s' % action['objectId'] + del action['objectId'] + if 'receptacleObjectId' in action: + action_str += ' r: %s' % action['receptacleObjectId'] + del action['receptacleObjectId'] + + if len(action) > 0: + action_str += '\tFull: ' + str(action) + return action_str + + +def get_object(object_id, metadata): + for obj in metadata['objects']: + if obj['objectId'] == object_id: + return obj + return None + + +def get_object_dict(metadata): + return {obj['objectId']: obj for obj in metadata['objects']} + + +def get_objects_of_type(object_type, metadata): + return [obj for obj in metadata['objects'] if obj['objectType'] == object_type] + + +def get_obj_of_type_closest_to_obj(object_type, ref_object_id, metadata): + objs_of_type = [obj for obj in metadata['objects'] if obj['objectType'] == object_type and obj['visible']] + ref_obj = get_object(ref_object_id, metadata) + closest_objs_of_type = sorted(objs_of_type, key=lambda o: np.linalg.norm(np.array([o['position']['x'], o['position']['y'], o['position']['z']]) - \ + np.array([ref_obj['position']['x'], ref_obj['position']['y'], ref_obj['position']['z']]))) + if len(closest_objs_of_type) == 0: + raise Exception("No closest %s found!" % (ref_obj)) + return closest_objs_of_type[0] # retrun the first closest visible object + + +def get_objects_with_name_and_prop(name, prop, metadata): + return [obj for obj in metadata['objects'] + if name in obj['objectId'] and obj[prop]] + + +def get_visible_objs(objs): + return [obj for obj in objs if obj['visible']] + + +def get_object_bounds(obj, scene_bounds): + # obj_bounds = np.array(obj['bounds3D'])[[0, 2, 3, 5]] # Get X and Z out + # Get a 'box' that is a singular point in (x,z) based on object position in place of now-unavailable 'bounds3d' + obj_bounds = np.array([obj['position']['x'], obj['position']['z'], obj['position']['x'], obj['position']['z']]) + obj_bounds /= constants.AGENT_STEP_SIZE + obj_bounds = np.round(obj_bounds).astype(np.int32) + obj_bounds[[2, 3]] = np.maximum(obj_bounds[[2, 3]], obj_bounds[[0, 1]] + 1) + obj_bounds[[0, 2]] = np.clip(obj_bounds[[0, 2]], scene_bounds[0], scene_bounds[0] + scene_bounds[2]) + obj_bounds[[1, 3]] = np.clip(obj_bounds[[1, 3]], scene_bounds[1], scene_bounds[1] + scene_bounds[3]) + obj_bounds -= np.array(scene_bounds)[[0, 1, 0, 1]] + return obj_bounds + + +def get_object_bounds_batch(boxes, scene_bounds): + obj_bounds = boxes[:, [0, 2, 3, 5]] # Get X and Z out + obj_bounds /= constants.AGENT_STEP_SIZE + obj_bounds = np.round(obj_bounds).astype(np.int32) + obj_bounds[:, [2, 3]] = np.maximum(obj_bounds[:, [2, 3]], obj_bounds[:, [0, 1]] + 1) + obj_bounds[:, [0, 2]] = np.clip(obj_bounds[:, [0, 2]], scene_bounds[0], scene_bounds[0] + scene_bounds[2]) + obj_bounds[:, [1, 3]] = np.clip(obj_bounds[:, [1, 3]], scene_bounds[1], scene_bounds[1] + scene_bounds[3]) + obj_bounds -= np.array(scene_bounds)[[0, 1, 0, 1]] + return obj_bounds + + +def get_task_str(object_ind, receptacle_ind=None, toggle_ind=None, mrecep_ind=None): + goal_str = constants.pddl_goal_type + if constants.data_dict['pddl_params']['object_sliced']: + goal_str += "_slice" + template = random.choice(glib.gdict[goal_str]['templates']) + obj = constants.OBJECTS[object_ind].lower() + recep = constants.OBJECTS[receptacle_ind].lower() if receptacle_ind is not None else "" + tog = constants.OBJECTS[toggle_ind].lower() if toggle_ind is not None else "" + mrecep = constants.OBJECTS[mrecep_ind].lower() if mrecep_ind is not None else "" + filled_in_str = template.format(obj=obj, recep=recep, toggle=tog, mrecep=mrecep) + return filled_in_str + + +def sample_templated_task_desc_from_traj_data(traj_data): + pddl_params = traj_data['pddl_params'] + goal_str = traj_data['task_type'] + if pddl_params['object_sliced']: + goal_str += "_slice" + template = random.choice(glib.gdict[goal_str]['templates']) + obj = pddl_params['object_target'].lower() + recep = pddl_params['parent_target'].lower() + toggle = pddl_params['toggle_target'].lower() + mrecep = pddl_params['mrecep_target'].lower() + filled_in_str = template.format(obj=obj, recep=recep, toggle=toggle, mrecep=mrecep) + return filled_in_str + + +def get_last_hl_action_index(): + return len(constants.data_dict['plan']['high_pddl']) - 1 + + +def get_last_ll_action_index(): + return len(constants.data_dict['plan']['low_actions']) - 1 + + +def store_image_name(name): + constants.data_dict['images'].append({"high_idx": get_last_hl_action_index(), + "low_idx": get_last_ll_action_index(), + "image_name": name}) + + diff --git a/easi/tasks/ebalfred/vendor/gen/utils/image_util.py b/easi/tasks/ebalfred/vendor/gen/utils/image_util.py new file mode 100644 index 0000000..a1ee785 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/utils/image_util.py @@ -0,0 +1,57 @@ +import numpy as np +import easi.tasks.ebalfred.vendor.gen.constants as constants + +def bbox_to_mask(bbox): + ''' + bbox to rectangle pixelwise mask + ''' + x1, y1, x2, y2 = bbox + mask = np.zeros((constants.DETECTION_SCREEN_HEIGHT, constants.DETECTION_SCREEN_WIDTH)).astype(int) + mask[y1:y2, x1:x2] = 1 + return mask + + +def point_to_mask(point): + ''' + single point to dense pixelwise mask + ''' + x, y = point + mask = np.zeros((constants.DETECTION_SCREEN_HEIGHT, constants.DETECTION_SCREEN_WIDTH)).astype(int) + mask[y, x] = 1 + return mask + + +def decompress_mask(compressed_mask): + ''' + decompress compressed mask array + ''' + mask = np.zeros((constants.DETECTION_SCREEN_WIDTH, constants.DETECTION_SCREEN_HEIGHT)) + for start_idx, run_len in compressed_mask: + for idx in range(start_idx, start_idx + run_len): + mask[idx // constants.DETECTION_SCREEN_WIDTH, idx % constants.DETECTION_SCREEN_HEIGHT] = 1 + return mask + + +def compress_mask(seg_mask): + ''' + compress mask array + ''' + run_len_compressed = [] # list of lists of run lengths for 1s, which are assumed to be less frequent. + idx = 0 + curr_run = False + run_len = 0 + for x_idx in range(len(seg_mask)): + for y_idx in range(len(seg_mask[x_idx])): + if seg_mask[x_idx][y_idx] == 1 and not curr_run: + curr_run = True + run_len_compressed.append([idx, None]) + if seg_mask[x_idx][y_idx] == 0 and curr_run: + curr_run = False + run_len_compressed[-1][1] = run_len + run_len = 0 + if curr_run: + run_len += 1 + idx += 1 + if curr_run: + run_len_compressed[-1][1] = run_len + return run_len_compressed \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/gen/utils/py_util.py b/easi/tasks/ebalfred/vendor/gen/utils/py_util.py new file mode 100644 index 0000000..7a357f0 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/gen/utils/py_util.py @@ -0,0 +1,84 @@ +import random +import re +import time +import os +import string + + +def get_time_str(): + tt = time.localtime() + time_str = ('%04d_%02d_%02d_%02d_%02d_%02d' % + (tt.tm_year, tt.tm_mon, tt.tm_mday, tt.tm_hour, tt.tm_min, tt.tm_sec)) + return time_str + + +def encode(string, encoding='utf-8'): + return string.encode(encoding) + + +def decode(string, encoding='utf-8'): + return string.decode(encoding) + + +def multireplace(string, replacements): + """ + Given a string and a replacement map, it returns the replaced string. + :param str string: string to execute replacements on + :param dict replacements: replacement dictionary {value to find: value to replace} + :rtype: str + Source https://gist.github.com/bgusach/a967e0587d6e01e889fd1d776c5f3729 + """ + # Place longer ones first to keep shorter substrings from matching where the longer ones should take place + # For instance given the replacements {'ab': 'AB', 'abc': 'ABC'} against the string 'hey abc', it should produce + # 'hey ABC' and not 'hey ABc' + substrs = sorted(replacements, key=len, reverse=True) + + # Create a big OR regex that matches any of the substrings to replace + regexp = re.compile('|'.join(map(re.escape, substrs))) + + # For each match, look up the new string in the replacements + return regexp.sub(lambda match: replacements[match.group(0)], string) + + +class SetWithGet(set): + def get_any(self): + return random.sample(self, 1)[0] + + def __getitem__(self, item): + return self.get_any() + + +class Noop(object): + def noop(*args, **kw): + pass + + def __getattr__(self, _): + return self.noop + + +def walklevel(some_dir, level=1): + some_dir = some_dir.rstrip(os.path.sep) + assert os.path.isdir(some_dir) + num_sep = some_dir.count(os.path.sep) + for root, dirs, files in os.walk(some_dir): + yield root, dirs, files + num_sep_this = root.count(os.path.sep) + if num_sep + level <= num_sep_this: + del dirs[:] + + +def remove_spaces(s): + cs = ' '.join(s.split()) + return cs + + +def remove_spaces_and_lower(s): + cs = remove_spaces(s) + cs = cs.lower() + return cs + + +def remove_punctuation(s): + cs = s.translate(str.maketrans('', '', string.punctuation)) + cs = remove_spaces_and_lower(cs) + return cs \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/models/__init__.py b/easi/tasks/ebalfred/vendor/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebalfred/vendor/models/config/rewards.json b/easi/tasks/ebalfred/vendor/models/config/rewards.json new file mode 100644 index 0000000..e9f35e7 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/models/config/rewards.json @@ -0,0 +1,87 @@ +{ + "Generic": + { + "success": 2, + "failure": -0.05, + "step_penalty": -0.01, + "goal_reward": 5 + }, + "BaseAction": + { + "positive": 1, + "negative": 0, + "neutral": 0, + "invalid_action": -0.1 + }, + "GotoLocationAction": + { + "positive": 4, + "negative": 0, + "neutral": 0, + "invalid_action": -0.5, + "min_reach_distance": 3 + }, + "PickupObjectAction": + { + "positive": 2, + "negative": -1, + "neutral": 0, + "invalid_action": -0.1 + }, + "PutObjectAction": + { + "positive": 2, + "negative": -1, + "neutral": 0, + "invalid_action": -0.1 + }, + "OpenObjectAction": + { + "positive": 2, + "negative": -0.05, + "neutral": 0, + "invalid_action": -0.1 + }, + "CloseObjectAction": + { + "positive": 1, + "negative": 0, + "neutral": 0, + "invalid_action": -0.1 + }, + "ToggleObjectAction": + { + "positive": 1, + "negative": -1, + "neutral": 0, + "invalid_action": -0.1 + }, + "SliceObjectAction": + { + "positive": 1, + "negative": -4, + "neutral": 0, + "invalid_action": -0.1 + }, + "CleanObjectAction": + { + "positive": 2, + "negative": 0, + "neutral": 0, + "invalid_action": -0.1 + }, + "HeatObjectAction": + { + "positive": 2, + "negative": 0, + "neutral": 0, + "invalid_action": -0.1 + }, + "CoolObjectAction": + { + "positive": 2, + "negative": 0, + "neutral": 0, + "invalid_action": -0.1 + } +} \ No newline at end of file diff --git a/easi/tasks/ebalfred/vendor/thor_connector.py b/easi/tasks/ebalfred/vendor/thor_connector.py new file mode 100644 index 0000000..cb00582 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/thor_connector.py @@ -0,0 +1,575 @@ +import os, math, re +import textwrap + +import numpy as np +from scipy import spatial +from PIL import Image, ImageDraw, ImageFont + +from easi.tasks.ebalfred.vendor.env.thor_env import ThorEnv +from easi.tasks.ebalfred.vendor.gen import constants +from easi.tasks.ebalfred.vendor.gen.utils.game_util import get_objects_with_name_and_prop +from easi.tasks.ebalfred.vendor.utils import natural_word_to_ithor_name +from easi.utils.logging import get_logger + +log = get_logger(__name__) + +class ThorConnector(ThorEnv): + def __init__(self, x_display=constants.X_DISPLAY, + player_screen_height=constants.DETECTION_SCREEN_HEIGHT, + player_screen_width=constants.DETECTION_SCREEN_WIDTH, + quality='MediumCloseFitShadows', + build_path=constants.BUILD_PATH): + super().__init__(x_display, player_screen_height, player_screen_width, quality, build_path) + try: + self.font = ImageFont.truetype("/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf", 24) + except (OSError, IOError): + self.font = ImageFont.load_default() + self.agent_height = 0.9 + self.cur_receptacle = None + self.reachable_positions, self.reachable_position_kdtree = None, None + self.sliced = False + self.task = None + self.put_count_dict = {} + + def restore_scene(self, object_poses, object_toggles, dirty_and_empty): + # print(object_poses) + super().restore_scene(object_poses, object_toggles, dirty_and_empty) + self.reachable_positions, self.reachable_position_kdtree = self.get_reachable_positions() + self.cur_receptacle = None + + def get_reachable_positions(self): + free_positions = super().step(dict(action="GetReachablePositions")).metadata["actionReturn"] + free_positions = np.array([[p['x'], p['y'], p['z']] for p in free_positions]) + kd_tree = spatial.KDTree(free_positions) + return free_positions, kd_tree + + def write_step_on_img(self, cfg, idx, description): + img = Image.fromarray(self.last_event.frame) + text = str(idx) + ':' + description['action'] + lines = textwrap.wrap(text, width=20) + y_text = 6 + draw = ImageDraw.Draw(img) + for line in lines: + width, height = self.font.getsize(line) + draw.text((6, y_text), line, font=self.font, fill=(255, 255, 255)) + y_text += height + if cfg is True: + if not description['success']: + text_msg = 'error : ' + description['message'] + lines = textwrap.wrap(text_msg, width=20) + for line in lines: + width, height = self.font.getsize(line) + draw.text((6, y_text + 6), line, font=self.font, fill=(255, 0, 0)) + y_text += height + return img + + + def find_close_reachable_position(self, loc, nth=1): + d, i = self.reachable_position_kdtree.query(loc, k=nth + 1) + selected = i[nth - 1] + return self.reachable_positions[selected] + + def llm_skill_interact(self, instruction: str): + if instruction.startswith("put down ") or instruction.startswith("open "): + pass + else: + self.cur_receptacle = None + + if instruction.startswith("find "): + obj_name = instruction.replace('find a ', '').replace('find an ', '') + self.cur_receptacle = obj_name + is_recep_id = any(i.isdigit() for i in obj_name) + ret = self.nav_obj(natural_word_to_ithor_name(obj_name), self.sliced) + elif instruction.startswith("pick up "): + obj_name = instruction.replace('pick up the ', '') + is_recep_id = any(i.isdigit() for i in obj_name) + ret = self.pick(natural_word_to_ithor_name(obj_name)) + elif instruction.startswith("put down "): + # m = re.match(r'put down (.+) on (.+)', instruction) + # obj = m.group(1).replace('the ', '') + # receptacle = m.group(2).replace('the ', '') + if self.cur_receptacle is None: + ret = self.drop() + else: + m = re.match(r'put down (.+)', instruction) + obj = m.group(1).replace('the ', '') + + if self.cur_receptacle in self.put_count_dict: + self.put_count_dict[self.cur_receptacle ] += 1 + else: + self.put_count_dict[self.cur_receptacle ] = 1 + + receptacle = self.cur_receptacle + ret = self.put(natural_word_to_ithor_name(receptacle)) + + if len(ret) > 16 and self.put_count_dict[receptacle] >= 3: + # if put down failed, then drop the object + self.drop() + ret += f'. The robot dropped the object instead.' + self.last_event.metadata['lastActionSuccess'] = False + + elif instruction.startswith("open "): + obj_name = instruction.replace('open the ', '') + ret = self.open(natural_word_to_ithor_name(obj_name)) + elif instruction.startswith("close "): + obj_name = instruction.replace('close the ', '') + ret = self.close(natural_word_to_ithor_name(obj_name)) + elif instruction.startswith("turn on "): + obj_name = instruction.replace('turn on the ', '') + ret = self.toggleon(natural_word_to_ithor_name(obj_name)) + elif instruction.startswith("turn off "): + obj_name = instruction.replace('turn off the ', '') + ret = self.toggleoff(natural_word_to_ithor_name(obj_name)) + elif instruction.startswith("slice "): + obj_name = instruction.replace('slice the ', '') + ret = self.slice(natural_word_to_ithor_name(obj_name)) + self.sliced = True + elif instruction.startswith("drop"): + ret = self.drop() + else: + ret = 'instruction not supported' + + if not self.last_event.metadata['lastActionSuccess']: + log.warning(f"llm_skill_interact failed") + log.warning(f"errorMessage: {self.last_event.metadata['errorMessage']}") + log.warning(f"returned msg: {ret}") + else: + log.info(f"Last action succeeded") + + ret_dict = { + 'action': instruction, + 'success': len(ret) <= 0, + 'message': ret + } + + return ret_dict + + def get_object_prop(self, name, prop, metadata): + for obj in metadata['objects']: + if name in obj['objectId']: + return obj[prop] + return None + + @staticmethod + def angle_diff(x, y): + x = math.radians(x) + y = math.radians(y) + return math.degrees(math.atan2(math.sin(x - y), math.cos(x - y))) + + def nav_obj(self, target_obj: str, prefer_sliced=False): + objects = self.last_event.metadata['objects'] + action_name = 'object navigation' + ret_msg = '' + print(f'{action_name} ({target_obj})') + + # get the object location + if '|' in target_obj: + obj_id = target_obj + target_obj = target_obj.split('|')[0] + tmp_id, tmp_obj_data = self.get_obj_id_from_name(target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced) + # if sliced object + if 'Sliced' in tmp_id and obj_id in tmp_id: + obj_id = tmp_id + obj_data = tmp_obj_data + else: + obj_id, obj_data = self.get_obj_id_from_name(target_obj, priority_in_visibility=True, priority_sliced=prefer_sliced) + + # find object index from id + obj_idx = -1 + for i, o in enumerate(objects): + if o['objectId'] == obj_id: + obj_idx = i + break + if obj_idx == -1: + ret_msg = f'Cannot find {target_obj}. This object may not exist in this scene. Try to explore other instances instead.' + else: + # teleport sometimes fails even with reachable positions. if fails, repeat with the next closest reachable positions. + max_attempts = 20 + teleport_success = False + + # get obj location + loc = objects[obj_idx]['position'] + obj_rot = objects[obj_idx]['rotation']['y'] + + # # do not move if the object is already visible and close + # if objects[obj_idx]['visible'] and objects[obj_idx]['distance'] < 1.0: + # log.info('Object is already visible') + # max_attempts = 0 + # teleport_success = True + + # try teleporting + reachable_pos_idx = 0 + for i in range(max_attempts): + reachable_pos_idx += 1 + if i == 10 and (target_obj == 'Fridge' or target_obj == 'Microwave'): + reachable_pos_idx -= 10 + + closest_loc = self.find_close_reachable_position([loc['x'], loc['y'], loc['z']], reachable_pos_idx) + # calculate desired rotation angle (see https://github.com/allenai/ai2thor/issues/806) + rot_angle = math.atan2(-(loc['x'] - closest_loc[0]), loc['z'] - closest_loc[2]) + if rot_angle > 0: + rot_angle -= 2 * math.pi + rot_angle = -(180 / math.pi) * rot_angle # in degrees + + if i < 10 and (target_obj == 'Fridge' or target_obj == 'Microwave'): # not always correct, but better than nothing + angle_diff = abs(self.angle_diff(rot_angle, obj_rot)) + if target_obj == 'Fridge' and \ + not ((90 - 20 < angle_diff < 90 + 20) or (270 - 20 < angle_diff < 270 + 20)): + continue + if target_obj == 'Microwave' and \ + not ((180 - 20 < angle_diff < 180 + 20) or (0 - 20 < angle_diff < 0 + 20)): + continue + + # calculate desired horizon angle + camera_height = self.agent_height + constants.CAMERA_HEIGHT_OFFSET + xz_dist = math.hypot(loc['x'] - closest_loc[0], loc['z'] - closest_loc[2]) + hor_angle = math.atan2((loc['y'] - camera_height), xz_dist) + hor_angle = (180 / math.pi) * hor_angle # in degrees + hor_angle *= 0.9 # adjust angle for better view + # hor_angle = -30 + # hor_angle = 0 + + # teleport ### Full + super().step(dict(action="TeleportFull", x=closest_loc[0], y=self.agent_height, z=closest_loc[2], rotation=rot_angle, horizon=-hor_angle)) + + if not self.last_event.metadata['lastActionSuccess']: + log.warning( + f"TeleportFull action failed: {self.last_event.metadata['errorMessage']}, trying again...") + else: + teleport_success = True + break + + if not teleport_success: + ret_msg = f'Cannot move to {target_obj}' + + return ret_msg + + def get_obj_id_from_name(self, obj_name, only_pickupable=False, only_toggleable=False, priority_sliced=False, get_inherited=False, + parent_receptacle_penalty=True, priority_in_visibility=False, exclude_obj_id=None): + obj_id = None + obj_data = None + min_distance = 1e+8 + + if any(i.isdigit() for i in obj_name): + for i in range(len(self.last_event.metadata['objects'])): + if obj_name in self.last_event.metadata['objects'][i]['name']: + obj_id = self.last_event.metadata['objects'][i]['objectId'] + obj_data = self.last_event.metadata['objects'][i] + break + return obj_id, obj_data + for obj in self.last_event.metadata['objects']: + if obj['objectId'] == exclude_obj_id: + continue + + if (only_pickupable is False or obj['pickupable']) and \ + (only_toggleable is False or obj['toggleable']) and \ + obj['objectId'].split('|')[0].casefold() == obj_name.casefold() and \ + (get_inherited is False or len(obj['objectId'].split('|')) == 5): + + if obj["distance"] < min_distance: + penalty_advantage = 0 # low priority for objects in closable receptacles such as fridge, microwave + if parent_receptacle_penalty and obj['parentReceptacles']: + for p in obj['parentReceptacles']: + is_open = self.get_object_prop(p, 'isOpen', self.last_event.metadata) + openable = self.get_object_prop(p, 'openable', self.last_event.metadata) + if openable is True and is_open is False: + penalty_advantage += 100000 + break + + if obj_name.casefold() == 'stoveburner': + # try to find an empty stove + if len(obj['receptacleObjectIds']) > 0: + penalty_advantage += 10000 + + if priority_in_visibility and obj['visible'] is False: + penalty_advantage += 1000 + + if priority_sliced and '_Slice' in obj['name']: + penalty_advantage += -100 # prefer sliced objects; this prevents picking up non-sliced objects + + if obj["distance"] + penalty_advantage < min_distance: + min_distance = obj["distance"] + penalty_advantage + obj_data = obj + obj_id = obj["objectId"] + + return obj_id, obj_data + + def pick(self, obj_name): + obj_id, obj_data = self.get_obj_id_from_name(obj_name, only_pickupable=True, priority_in_visibility=True, priority_sliced=self.sliced) + + ret_msg = '' + log.info(f'pick {obj_id}') + + if obj_id is None: + ret_msg = f'Cannot find {obj_name} to pick up. Find the object before picking up it' + else: + if obj_data['visible'] is False and obj_data['parentReceptacles'] is not None and len(obj_data['parentReceptacles']) > 0: + # recep_name = obj_data["parentReceptacles"][0].split('|')[0] + recep_name = obj_data["parentReceptacles"][0] + ret_msg = f'{obj_name} is not visible because it is in {recep_name}. Note: multiple instances of {recep_name} may exist' + + # try anyway + super().step(dict( + action="PickupObject", + objectId=obj_id, + forceAction=False + )) + else: + super().step(dict( + action="PickupObject", + objectId=obj_id, + forceAction=False + )) + + if not self.last_event.metadata['lastActionSuccess']: + if len(self.last_event.metadata['inventoryObjects']) == 0: + ret_msg = f'Robot is not holding any object' + else: + # check if the agent is holding the object + holding_obj_id = self.last_event.metadata['inventoryObjects'][0]['objectId'] + holding_obj_type = self.last_event.metadata['inventoryObjects'][0]['objectType'] + ret_msg = f'Robot is currently holding {holding_obj_type}' + + if self.last_event.metadata['lastActionSuccess']: + ret_msg = '' + + return ret_msg + + def put(self, receptacle_name): + # assume the agent always put the object currently holding + ret_msg = '' + orig_receptacle_name = receptacle_name + + if len(self.last_event.metadata['inventoryObjects']) == 0: + ret_msg = f'Robot is not holding any object' + return ret_msg + else: + holding_obj_id = self.last_event.metadata['inventoryObjects'][0]['objectId'] + + + halt = False + last_recep_id = None + exclude_obj_id = None + for k in range(2): # try closest and next closest one + for j in range(7): # move/look around or rotate obj + for i in range(2): # try inherited receptacles too (e.g., sink basin, bath basin) + if k == 1 and exclude_obj_id is None: + exclude_obj_id = last_recep_id # previous recep id + + # for the second round, find another receptacle + if k == 0 and '|' in orig_receptacle_name: + if i == 1: + continue + recep_id = orig_receptacle_name + receptacle_name = orig_receptacle_name.split('|')[0] + else: + if 'Sink' in receptacle_name or 'Bathtub' in receptacle_name: # sink base + if i == 0: + recep_id, _ = self.get_obj_id_from_name(receptacle_name, get_inherited=True, exclude_obj_id=exclude_obj_id) + else: + recep_id, _ = self.get_obj_id_from_name(receptacle_name, exclude_obj_id=exclude_obj_id) + else: + if i == 0: + recep_id, _ = self.get_obj_id_from_name(receptacle_name, exclude_obj_id=exclude_obj_id) + else: + recep_id, _ = self.get_obj_id_from_name(receptacle_name, get_inherited=True, exclude_obj_id=exclude_obj_id) + + if not recep_id: + ret_msg = f'Putting the object on {receptacle_name} failed. First check whether the receptacle is open or not. Also try other instances of the receptacle' + continue + + print(f'put {holding_obj_id} on {recep_id}') + + # look up (put action fails when a receptacle is not visible) + if j == 1: + super().step(dict(action="LookUp")) + super().step(dict(action="LookUp")) + elif j == 2: + super().step(dict(action="LookDown")) + super().step(dict(action="LookDown")) + super().step(dict(action="LookDown")) + super().step(dict(action="LookDown")) + elif j == 3: + super().step(dict(action="LookUp")) + super().step(dict(action="LookUp")) + super().step(dict(action="MoveBack")) + elif j == 4: + super().step(dict(action="MoveAhead")) + for r in range(4): + super().step(dict(action="MoveRight")) + elif j == 5: + for r in range(8): + super().step(dict(action="MoveLeft")) + elif j == 6: + for r in range(4): + super().step(dict(action="MoveRight")) + super().step(dict( # this somehow make putobject success in some cases + action="RotateHand", + x=40 + )) + + super().step(dict(action="PutObject",objectId=holding_obj_id, receptacleObjectId=recep_id, forceAction=True)) + last_recep_id = recep_id + + if not self.last_event.metadata['lastActionSuccess']: + log.warning(f"PutObject action failed: {self.last_event.metadata['errorMessage']}, trying again...") + ret_msg = f'Putting the object on {receptacle_name} failed. First check the receptacle is open or not. Also try other instances of the receptacle' + else: + ret_msg = '' + halt = True + break + if halt: + break + if halt: + break + + return ret_msg + + def drop(self): + log.info(f'drop') + ret_msg = '' + super().step(dict( + action="DropHandObject", + forceAction=True + )) + + if not self.last_event.metadata['lastActionSuccess']: + if len(self.last_event.metadata['inventoryObjects']) == 0: + ret_msg = f'Robot is not holding any object' + else: + ret_msg = f"Drop action failed" + else: + ret_msg = '' + + return ret_msg + + def open(self, obj_name): + log.info(f'open {obj_name}') + ret_msg = '' + # obj_id, _ = self.get_obj_id_from_name(obj_name) + # get the object location + if '|' in obj_name: + obj_id = obj_name + obj_name = obj_name.split('|')[0] + else: + obj_id, _ = self.get_obj_id_from_name(obj_name) + + + if obj_id is None: + ret_msg = f"Cannot find {obj_name} to open. Find the object before opening it" + else: + open_flag = False + for ob in self.last_event.metadata['objects']: + if ob['objectId'] == obj_id and ob['openable'] and ob['isOpen']: + open_flag = True + break + + for i in range(4): + super().step(dict( + action="OpenObject", + objectId=obj_id, + )) + + if not self.last_event.metadata['lastActionSuccess']: + log.warning( + f"OpenObject action failed: {self.last_event.metadata['errorMessage']}, moving backward and trying again...") + if open_flag: + ret_msg = f"Open action failed. The {obj_name} is already open" + else: + ret_msg = f"Open action failed." + + # move around to avoid self-collision + if i == 0: + super().step(dict(action="MoveBack")) + elif i == 1: + super().step(dict(action="MoveBack")) + super().step(dict(action="MoveRight")) + elif i == 2: + super().step(dict(action="MoveLeft")) + super().step(dict(action="MoveLeft")) + else: + ret_msg = '' + break + + return ret_msg + + def close(self, obj_name): + log.info(f'close {obj_name}') + ret_msg = '' + if '|' in obj_name: + obj_id = obj_name + obj_name = obj_name.split('|')[0] + else: + obj_id, _ = self.get_obj_id_from_name(obj_name) + + if obj_id is None: + ret_msg = f'Cannot find {obj_name} to close' + else: + super().step(dict( + action="CloseObject", + objectId=obj_id, + )) + + if not self.last_event.metadata['lastActionSuccess']: + ret_msg = f"Close action failed" + + for ob in self.last_event.metadata['objects']: + if ob['objectId'] == obj_id and ob['openable'] and not ob['isOpen']: + ret_msg += f". The {obj_name} is already closed" + break + + return ret_msg + + def toggleon(self, obj_name): + log.info(f'toggle on {obj_name}') + ret_msg = '' + obj_id, _ = self.get_obj_id_from_name(obj_name, only_toggleable=True) + if obj_id is None: + ret_msg = f'Cannot find {obj_name} to turn on' + else: + try: + super().step(dict( + action="ToggleObjectOn", + objectId=obj_id, + )) + if not self.last_event.metadata['lastActionSuccess']: + ret_msg = f"Turn on action failed" + except: + ret_msg = f"Turn on action failed" + self.last_event.metadata['lastActionSuccess'] = False + + return ret_msg + + def toggleoff(self, obj_name): + log.info(f'toggle off {obj_name}') + ret_msg = '' + obj_id, _ = self.get_obj_id_from_name(obj_name, only_toggleable=True) + if obj_id is None: + ret_msg = f'Cannot find {obj_name} to turn off' + else: + super().step(dict( + action="ToggleObjectOff", + objectId=obj_id, + )) + + if not self.last_event.metadata['lastActionSuccess']: + ret_msg = f"Turn off action failed" + + return ret_msg + + def slice(self, obj_name): + log.info(f'slice {obj_name}') + ret_msg = '' + obj_id, _ = self.get_obj_id_from_name(obj_name) + if obj_id is None: + ret_msg = f'Cannot find {obj_name} to slice' + else: + super().step(dict( + action="SliceObject", + objectId=obj_id, + )) + + if not self.last_event.metadata['lastActionSuccess']: + ret_msg = f"Slice action failed" + + return ret_msg diff --git a/easi/tasks/ebalfred/vendor/utils.py b/easi/tasks/ebalfred/vendor/utils.py new file mode 100644 index 0000000..0c77216 --- /dev/null +++ b/easi/tasks/ebalfred/vendor/utils.py @@ -0,0 +1,138 @@ +import os, json, re +import string +import numpy as np +import subprocess +from PIL import Image, ImageDraw, ImageFont + +alfred_objs = ['Cart', 'Potato', 'Faucet', 'Ottoman', 'CoffeeMachine', 'Candle', 'CD', 'Pan', 'Watch', + 'HandTowel', 'SprayBottle', 'BaseballBat', 'CellPhone', 'Kettle', 'Mug', 'StoveBurner', 'Bowl', + 'Toilet', 'DiningTable', 'Spoon', 'TissueBox', 'Shelf', 'Apple', 'TennisRacket', 'SoapBar', + 'Cloth', 'Plunger', 'FloorLamp', 'ToiletPaperHanger', 'CoffeeTable', 'Spatula', 'Plate', 'Bed', + 'Glassbottle', 'Knife', 'Tomato', 'ButterKnife', 'Dresser', 'Microwave', 'CounterTop', + 'GarbageCan', 'WateringCan', 'Vase', 'ArmChair', 'Safe', 'KeyChain', 'Pot', 'Pen', 'Cabinet', + 'Desk', 'Newspaper', 'Drawer', 'Sofa', 'Bread', 'Book', 'Lettuce', 'CreditCard', 'AlarmClock', + 'ToiletPaper', 'SideTable', 'Fork', 'Box', 'Egg', 'DeskLamp', 'Ladle', 'WineBottle', 'Pencil', + 'Laptop', 'RemoteControl', 'BasketBall', 'DishSponge', 'Cup', 'SaltShaker', 'PepperShaker', + 'Pillow', 'Bathtub', 'SoapBottle', 'Statue', 'Fridge', 'Sink'] + +alfred_pick_obj = ['KeyChain', 'Potato', 'Pot', 'Pen', 'Candle', 'CD', 'Pan', 'Watch', 'Newspaper', 'HandTowel', + 'SprayBottle', 'BaseballBat', 'Bread', 'CellPhone', 'Book', 'Lettuce', 'CreditCard', 'Mug', + 'AlarmClock', 'Kettle', 'ToiletPaper', 'Bowl', 'Fork', 'Box', 'Egg', 'Spoon', 'TissueBox', + 'Apple', 'TennisRacket', 'Ladle', 'WineBottle', 'Cloth', 'Plunger', 'SoapBar', 'Pencil', + 'Laptop', 'RemoteControl', 'BasketBall', 'DishSponge', 'Cup', 'Spatula', 'SaltShaker', + 'Plate', 'PepperShaker', 'Pillow', 'Glassbottle', 'SoapBottle', 'Knife', 'Statue', 'Tomato', + 'ButterKnife', 'WateringCan', 'Vase'] + +alfred_open_obj = ['Safe', 'Laptop', 'Fridge', 'Box', 'Microwave', 'Cabinet', 'Drawer'] + +alfred_slice_obj = ['Potato', 'Lettuce', 'Tomato', 'Apple', 'Bread'] + +alfred_toggle_obj = ['Microwave', 'DeskLamp', 'FloorLamp', 'Faucet'] + +alfred_recep = ['ArmChair', 'Safe', 'Cart', 'Ottoman', 'Pot', 'CoffeeMachine', 'Desk', 'Cabinet', 'Pan', + 'Drawer', 'Sofa', 'Mug', 'StoveBurner', 'SideTable', 'Toilet', 'Bowl', 'Box', 'DiningTable', + 'Shelf', 'ToiletPaperHanger', 'CoffeeTable', 'Cup', 'Plate', 'Bathtub', 'Bed', 'Dresser', + 'Fridge', 'Microwave', 'CounterTop', 'Sink', 'GarbageCan'] + + +def random_color(): + return tuple(np.random.choice(range(256), size=3)) + +def draw_boxes(image, classes_and_boxes, name_translation): + draw = ImageDraw.Draw(image) + font = ImageFont.load_default() + font.size = 8 + # Loop through each class and its associated bounding boxes + for class_name, box in classes_and_boxes.items(): + if class_name.split('|')[0] in alfred_objs: + color = random_color() + if class_name in name_translation: + name = name_translation[class_name] + else: + name = class_name.split('|')[0] + + x1, y1, x2, y2 = box[0], box[1], box[2], box[3] + # Draw rectangle + draw.rectangle([x1, y1, x2, y2], outline=color, width=1) + # Add class name above the rectangle + # text_position = (x1, max(0, y1 - 12)) # Position text above box + # draw.text(text_position, name, fill=color, font=font) + return image + + +class dotdict(dict): + """dot.notation access to dictionary attributes""" + __getattr__ = dict.get + __setattr__ = dict.__setitem__ + __delattr__ = dict.__delitem__ + + +def load_task_json(task, data_dir=None): + ''' + load preprocessed json from disk + ''' + if data_dir is None: + data_dir = os.path.join(os.path.dirname(__file__), 'data/json_2.1.0') + json_path = os.path.join(data_dir, task['task'], 'pp', + 'ann_%d.json' % task['repeat_idx']) + with open(json_path) as f: + data = json.load(f) + return data + + +def print_gpu_usage(msg): + """ + ref: https://discuss.pytorch.org/t/access-gpu-memory-usage-in-pytorch/3192/4 + """ + + def query(field): + return (subprocess.check_output( + ['nvidia-smi', f'--query-gpu={field}', + '--format=csv,nounits,noheader'], + encoding='utf-8')) + + def to_int(result): + return int(result.strip().split('\n')[0]) + + used = to_int(query('memory.used')) + total = to_int(query('memory.total')) + pct = used / total + print('\n' + msg, f'{100 * pct:2.1f}% ({used} out of {total})') + + +def ithor_name_to_natural_word(w): + # e.g., RemoteController -> remote controller + if w == 'CD': + return w + else: + return re.sub(r"(\w)([A-Z])", r"\1 \2", w).lower() + + +def natural_word_to_ithor_name(w): + # e.g., floor lamp -> FloorLamp + + # if w contains a number, return it (meaning that it is a unique receptacle) + if any(i.isdigit() for i in w): + return w + + if w == 'CD': + return w + else: + return ''.join([string.capwords(x) for x in w.split()]) + + +def find_indefinite_article(w): + # simple rule, not always correct + w = w.lower() + if w[0] in ['a', 'e', 'i', 'o', 'u']: + return 'an' + else: + return 'a' + +def delete_folder_contents(folder_path): + for filename in os.listdir(folder_path): + file_path = os.path.join(folder_path, filename) + if os.path.isfile(file_path): + os.remove(file_path) + else: + delete_folder_contents(file_path) diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py index aa68c8d..efdadff 100644 --- a/easi/tasks/registry.py +++ b/easi/tasks/registry.py @@ -78,7 +78,7 @@ def _discover_tasks(tasks_dir: Path | None = None) -> dict[str, TaskEntry]: config_path=task_yaml_path, ) - logger.debug("Discovered task: %s from %s", name, task_yaml_path.name) + logger.trace("Discovered task: %s from %s", name, task_yaml_path.name) return entries diff --git a/easi/tasks/scaffold.py b/easi/tasks/scaffold.py new file mode 100644 index 0000000..e5577e2 --- /dev/null +++ b/easi/tasks/scaffold.py @@ -0,0 +1,252 @@ +"""Task scaffolding: generates boilerplate for new benchmark integrations.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +def _to_class_name(snake_name: str) -> str: + """Convert snake_case to PascalCase. e.g. 'my_benchmark' -> 'MyBenchmark'.""" + return "".join(word.capitalize() for word in snake_name.split("_")) + + +def scaffold_task( + name: str, + simulator: str, + output_dir: Path | None = None, + max_steps: int = 50, + tests_dir: Path | None = None, +) -> Path: + """Generate boilerplate files for a new benchmark task. + + Creates: + // + __init__.py + task.py — BaseTask subclass with TODOs + bridge.py — BaseBridge subclass with TODOs + .yaml — Task config + + Optionally creates: + /test_.py — Test file with import and basic checks + + Args: + name: Task name in snake_case (e.g., 'my_benchmark'). + simulator: Simulator key (e.g., 'ai2thor:v2_1_0', 'dummy:v1'). + output_dir: Parent directory for task folder. Defaults to easi/tasks/. + max_steps: Default max steps per episode. + tests_dir: Directory for generated test file. If None, no test generated. + + Returns: + Path to the created task directory. + + Raises: + FileExistsError: If the task directory already exists. + """ + if output_dir is None: + output_dir = Path(__file__).parent + + task_dir = output_dir / name + if task_dir.exists(): + raise FileExistsError(f"Task directory already exists: {task_dir}") + + task_dir.mkdir(parents=True) + + class_name = _to_class_name(name) + + # __init__.py + (task_dir / "__init__.py").write_text("") + + # task.py + (task_dir / "task.py").write_text(_TASK_TEMPLATE.format( + name=name, + class_name=class_name, + )) + + # bridge.py + (task_dir / "bridge.py").write_text(_BRIDGE_TEMPLATE.format( + name=name, + class_name=class_name, + )) + + # .yaml + (task_dir / f"{name}.yaml").write_text(_YAML_TEMPLATE.format( + name=name, + class_name=class_name, + simulator=simulator, + max_steps=max_steps, + )) + + # test file + if tests_dir is not None: + tests_dir.mkdir(parents=True, exist_ok=True) + (tests_dir / f"test_{name}.py").write_text(_TEST_TEMPLATE.format( + name=name, + class_name=class_name, + )) + + logger.info("Scaffolded task '%s' at %s", name, task_dir) + return task_dir + + +_TASK_TEMPLATE = '''\ +"""{class_name} task for EASI. + +TODO: Implement format_reset_config() and evaluate_episode(). +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class {class_name}Task(BaseTask): + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "{name}.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def format_reset_config(self, episode: dict) -> dict: + """Map dataset episode to simulator reset config. + + TODO: Return the fields your bridge needs to initialize an episode. + """ + return episode + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract metrics from a completed episode trajectory. + + TODO: Implement your evaluation logic. + """ + if not trajectory: + return {{"task_success": 0.0, "num_steps": 0.0}} + + last_step = trajectory[-1] + return {{ + "task_success": last_step.info.get("task_success", 0.0), + "num_steps": float(len(trajectory)), + "total_reward": sum(s.reward for s in trajectory), + }} +''' + +_BRIDGE_TEMPLATE = '''\ +"""{class_name} bridge for EASI. + +Wraps the external benchmark env in EASI's IPC protocol. + +TODO: Implement _create_env() and _extract_image(). + +Usage: + python bridge.py --workspace /tmp/easi_xxx --data-dir /path/to/data +""" +from __future__ import annotations + +import sys +from pathlib import Path + +# Add repo root to path for easi imports (bridge runs in subprocess) +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge + + +class {class_name}Bridge(BaseBridge): + """Wraps the external {class_name} env. + + TODO: Install the external package in the bridge conda env: + pip install --no-deps -e ./ExternalRepo + + Then import their env class in _create_env(). + """ + + def _create_env(self, reset_config, simulator_kwargs): + """Create the benchmark env instance. + + TODO: Import and instantiate the external env class. + Example: + from external_package import BenchmarkEnv + return BenchmarkEnv(**simulator_kwargs) + """ + raise NotImplementedError("TODO: implement _create_env()") + + def _extract_image(self, obs): + """Extract RGB numpy array (H, W, 3) from env observation. + + TODO: Return the image from your env's observation dict. + Example: + return obs["head_rgb"] + """ + raise NotImplementedError("TODO: implement _extract_image()") + + +if __name__ == "__main__": + {class_name}Bridge.main() +''' + +_YAML_TEMPLATE = '''\ +name: {name} +display_name: "{class_name}" +description: "TODO: Add description" +simulator: "{simulator}" +task_class: "easi.tasks.{name}.task.{class_name}Task" +action_space: [] +max_steps: {max_steps} +dataset: + source: local + path: null +simulator_kwargs: {{}} +external_packages: [] +''' + +_TEST_TEMPLATE = '''\ +"""Tests for {name} task and bridge.""" +from pathlib import Path + +from easi.tasks.{name}.task import {class_name}Task + + +class Test{class_name}Task: + + def test_task_is_importable(self): + """Verify the task class can be imported.""" + assert {class_name}Task is not None + + def test_bridge_script_exists(self): + """Verify the bridge script file exists.""" + from easi.tasks.{name}.bridge import {class_name}Bridge + assert {class_name}Bridge is not None + + def test_get_bridge_script_path(self, tmp_path): + """Verify get_bridge_script_path() returns the correct path.""" + yaml_path = tmp_path / "{name}.yaml" + yaml_path.write_text( + "name: {name}\\n" + "display_name: {class_name}\\n" + "description: test\\n" + "simulator: dummy:v1\\n" + "task_class: easi.tasks.{name}.task.{class_name}Task\\n" + "action_space: []\\n" + "max_steps: 10\\n" + "dataset:\\n" + " source: local\\n" + " path: null\\n" + ) + task = {class_name}Task(split_yaml_path=yaml_path) + bridge_path = task.get_bridge_script_path() + assert bridge_path is not None + assert bridge_path.name == "bridge.py" +''' diff --git a/easi/utils/locking.py b/easi/utils/locking.py index 2cff516..b5f22ca 100644 --- a/easi/utils/locking.py +++ b/easi/utils/locking.py @@ -31,13 +31,13 @@ def file_lock(lock_path: Path) -> Generator[None, None, None]: install_conda_env() """ lock_path.parent.mkdir(parents=True, exist_ok=True) - logger.debug("Acquiring lock: %s", lock_path) + logger.trace("Acquiring lock: %s", lock_path) with open(lock_path, "w") as f: fcntl.flock(f, fcntl.LOCK_EX) try: - logger.debug("Lock acquired: %s", lock_path) + logger.trace("Lock acquired: %s", lock_path) yield finally: fcntl.flock(f, fcntl.LOCK_UN) - logger.debug("Lock released: %s", lock_path) + logger.trace("Lock released: %s", lock_path) diff --git a/easi/utils/logging.py b/easi/utils/logging.py index 7dc4275..8958471 100644 --- a/easi/utils/logging.py +++ b/easi/utils/logging.py @@ -2,11 +2,105 @@ Library modules should only use get_logger(). The CLI entry point calls setup_logging() once to configure handlers and level. + +Custom levels: + TRACE (5) — internal library diagnostics, below DEBUG. + Use logger.trace() for library internals. Reserve logger.debug() for + user-facing debug output. """ from __future__ import annotations import logging +import sys + +# --- Custom TRACE level (below DEBUG=10) --- +TRACE = 5 +logging.addLevelName(TRACE, "TRACE") + + +def _trace(self, message, *args, **kwargs): + if self.isEnabledFor(TRACE): + self._log(TRACE, message, args, **kwargs) + + +logging.Logger.trace = _trace # type: ignore[attr-defined] + + +# --- ANSI color codes --- +_RESET = "\033[0m" +_DIM = "\033[2m" +_BOLD = "\033[1m" +_GRAY = "\033[90m" +_CYAN = "\033[36m" +_BLUE = "\033[34m" +_YELLOW = "\033[33m" +_RED = "\033[31m" + +# Per-level styling: (level_color, message_color) +# - level_color: applied to the [LEVEL] tag +# - message_color: applied to the message text +_LEVEL_STYLES = { + TRACE: (_GRAY, _GRAY), + logging.DEBUG: (_CYAN, ""), + logging.INFO: (_BLUE, ""), + logging.WARNING: (_YELLOW, _YELLOW), + logging.ERROR: (_RED + _BOLD, _RED), +} + + +class _ColorFormatter(logging.Formatter): + """Formatter that applies per-level ANSI colors. + + Color scheme (modern minimalistic): + - Timestamp: always dim gray — subtle, consistent + - [LEVEL]: colored per level — primary visual differentiator + - Logger name: always dim gray — metadata, not content + - Separator: always dim gray + - Message: neutral for TRACE/DEBUG/INFO, colored for WARNING/ERROR + """ + + def __init__(self, use_color: bool = True): + super().__init__(datefmt="%H:%M:%S") + self._use_color = use_color + + def format(self, record): + if not self._use_color: + return self._format_plain(record) + + level_color, msg_color = _LEVEL_STYLES.get( + record.levelno, ("", "") + ) + + timestamp = self.formatTime(record, self.datefmt) + name = record.name + levelname = record.levelname + message = record.getMessage() + + # Handle exception info + if record.exc_info and not record.exc_text: + record.exc_text = self.formatException(record.exc_info) + if record.exc_text: + message = message + "\n" + record.exc_text + + parts = [ + f"{_GRAY}{timestamp}{_RESET}", + f" {level_color}[{levelname}]{_RESET}", + f" {_GRAY}{name}{_RESET}", + f" {_GRAY}-{_RESET}", + f" {msg_color}{message}{_RESET}" if msg_color else f" {message}", + ] + return "".join(parts) + + def _format_plain(self, record): + """No-color fallback for non-TTY output.""" + timestamp = self.formatTime(record, self.datefmt) + message = record.getMessage() + if record.exc_info and not record.exc_text: + record.exc_text = self.formatException(record.exc_info) + if record.exc_text: + message = message + "\n" + record.exc_text + return f"{timestamp} [{record.levelname}] {record.name} - {message}" def get_logger(name: str = __name__) -> logging.Logger: @@ -32,18 +126,15 @@ def setup_logging(level: str = "WARNING") -> None: Called once by the CLI entry point. Library code should never call this. Args: - level: One of "DEBUG", "INFO", "WARNING", "ERROR". + level: One of "TRACE", "DEBUG", "INFO", "WARNING", "ERROR". """ logger = logging.getLogger("easi") - logger.setLevel(getattr(logging, level.upper())) + resolved = TRACE if level.upper() == "TRACE" else getattr(logging, level.upper()) + logger.setLevel(resolved) # Avoid adding duplicate handlers if called multiple times if not logger.handlers: handler = logging.StreamHandler() - handler.setFormatter( - logging.Formatter( - "%(asctime)s [%(levelname)s] %(name)s - %(message)s", - datefmt="%H:%M:%S", - ) - ) + use_color = hasattr(sys.stderr, "isatty") and sys.stderr.isatty() + handler.setFormatter(_ColorFormatter(use_color=use_color)) logger.addHandler(handler) diff --git a/easi/utils/spinner.py b/easi/utils/spinner.py new file mode 100644 index 0000000..6c9a414 --- /dev/null +++ b/easi/utils/spinner.py @@ -0,0 +1,111 @@ +"""Terminal spinner that coexists with logging output. + +Usage:: + + from easi.utils.spinner import spinner + + with spinner("Installing environment"): + long_running_operation() + +The spinner renders on stderr. When a log record is emitted, the existing +handler's emit() is wrapped to clear the spinner line first — so log output +never gets corrupted and there is no duplication. + +In non-TTY mode (piped output), no animation is shown. +""" + +from __future__ import annotations + +import logging +import sys +import threading +import time + + +_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"] +_INTERVAL = 0.08 # seconds between frames +_CLEAR = "\r\033[K" # carriage return + ANSI erase to end of line + + +class _Spinner: + """Background-thread spinner with log-safe output. + + Instead of adding a second log handler (which duplicates output), this + wraps the emit() method of every existing handler on the ``easi`` logger + so that the spinner line is cleared before each log record and the + spinner thread is paused during the write. + """ + + def __init__(self, message: str): + self._message = message + self._stop_event = threading.Event() + self._thread: threading.Thread | None = None + self._lock = threading.Lock() + self._is_tty = hasattr(sys.stderr, "isatty") and sys.stderr.isatty() + self._wrapped: list[tuple[logging.Handler, object]] = [] + + def start(self): + if not self._is_tty: + return + # Wrap existing handlers so they clear the spinner before emitting + for handler in logging.getLogger("easi").handlers: + original_emit = handler.emit + + def wrapped_emit(record, _orig=original_emit): + with self._lock: + sys.stderr.write(_CLEAR) + sys.stderr.flush() + _orig(record) + + self._wrapped.append((handler, original_emit)) + handler.emit = wrapped_emit # type: ignore[method-assign] + + self._thread = threading.Thread(target=self._spin, daemon=True) + self._thread.start() + + def stop(self): + if not self._is_tty or self._thread is None: + return + self._stop_event.set() + self._thread.join() + + # Final clear + with self._lock: + sys.stderr.write(_CLEAR) + sys.stderr.flush() + + # Restore original emit methods + for handler, original_emit in self._wrapped: + handler.emit = original_emit # type: ignore[method-assign] + self._wrapped.clear() + + def _spin(self): + idx = 0 + while not self._stop_event.is_set(): + frame = _FRAMES[idx % len(_FRAMES)] + with self._lock: + sys.stderr.write(f"{_CLEAR}{frame} {self._message}") + sys.stderr.flush() + idx += 1 + self._stop_event.wait(_INTERVAL) + + +class spinner: + """Context manager for a terminal spinner. + + Example:: + + with spinner("Creating conda env"): + run_slow_command() + """ + + def __init__(self, message: str): + self._spinner = _Spinner(message) + + def __enter__(self): + self._spinner.start() + return self._spinner + + def __exit__(self, *exc): + self._spinner.stop() + return False diff --git a/tests/test_base_bridge.py b/tests/test_base_bridge.py new file mode 100644 index 0000000..bb81d36 --- /dev/null +++ b/tests/test_base_bridge.py @@ -0,0 +1,160 @@ +"""Tests for BaseBridge — wraps Gym-like envs in EASI IPC.""" +import json +import threading + +import numpy as np +from pathlib import Path + +from easi.simulators.base_bridge import BaseBridge + + +class FakeGymEnv: + """Minimal Gym-like env for testing.""" + + def __init__(self): + self.step_count = 0 + + def reset(self): + self.step_count = 0 + return {"rgb": np.zeros((8, 8, 3), dtype=np.uint8)} + + def step(self, action): + self.step_count += 1 + obs = {"rgb": np.ones((8, 8, 3), dtype=np.uint8) * self.step_count} + reward = 1.0 if action == "Stop" else 0.0 + done = action == "Stop" or self.step_count >= 5 + info = { + "task_success": 1.0 if action == "Stop" else 0.0, + "feedback": "ok", + } + return obs, reward, done, info + + def close(self): + pass + + +class ConcreteBridge(BaseBridge): + """Test bridge wrapping FakeGymEnv.""" + + def _create_env(self, reset_config, simulator_kwargs): + return FakeGymEnv() + + def _extract_image(self, obs): + return obs["rgb"] + + +class TestBaseBridgeUnit: + + def test_bridge_creates_env_on_reset(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + response = bridge.reset({}) + assert response["status"] == "ok" + assert "rgb_path" in response["observation"] + assert Path(response["observation"]["rgb_path"]).exists() + + def test_bridge_step_returns_observation(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + response = bridge.step("MoveAhead") + assert response["status"] == "ok" + assert response["done"] is False + + def test_bridge_step_done_on_stop(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + response = bridge.step("Stop") + assert response["done"] is True + assert response["info"]["task_success"] == 1.0 + + def test_bridge_saves_image_to_episode_output_dir(self, tmp_path): + episode_dir = tmp_path / "episode_out" + bridge = ConcreteBridge(workspace=tmp_path) + bridge.episode_output_dir = str(episode_dir) + bridge.reset({}) + assert (episode_dir / "step_0000.png").exists() + + def test_bridge_saves_image_to_workspace_by_default(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + assert (tmp_path / "step_0000.png").exists() + + def test_bridge_step_increments_count(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + bridge.step("MoveAhead") + bridge.step("MoveAhead") + assert (tmp_path / "step_0001.png").exists() + assert (tmp_path / "step_0002.png").exists() + + def test_reset_clears_step_count(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + bridge.step("MoveAhead") + bridge.reset({}) # Second reset + bridge.step("MoveAhead") + # After second reset, step count restarts at 1 + assert (tmp_path / "step_0001.png").exists() + + def test_close_sets_env_to_none(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + bridge.reset({}) + assert bridge.env is not None + bridge.close() + assert bridge.env is None + + def test_extract_info_filters_non_serializable(self, tmp_path): + bridge = ConcreteBridge(workspace=tmp_path) + info = { + "score": 1.0, + "label": "good", + "flag": True, + "count": 5, + "array": np.array([1, 2]), # should be filtered out + } + result = bridge._extract_info(info) + assert result == {"score": 1.0, "label": "good", "flag": True, "count": 5} + + +class TestBaseBridgeIPC: + """Test the full IPC loop using BaseBridge.""" + + def test_ipc_reset_step_close(self, tmp_path): + """Simulate the IPC protocol manually.""" + from easi.communication.filesystem import ( + poll_for_response, + poll_for_status, + write_command, + ) + from easi.communication.schemas import make_reset_command, make_step_command + from easi.core.episode import Action + + bridge = ConcreteBridge(workspace=tmp_path) + + # Run bridge in background thread + thread = threading.Thread(target=bridge.run, daemon=True) + thread.start() + + # Wait for status.json + status = poll_for_status(tmp_path, timeout=5.0) + assert status["ready"] is True + + # Send reset + reset_cmd = make_reset_command("ep_001", reset_config={}) + write_command(tmp_path, reset_cmd) + response = poll_for_response(tmp_path, timeout=5.0) + assert response["status"] == "ok" + assert "rgb_path" in response["observation"] + + # Send step + step_cmd = make_step_command(Action(action_name="MoveAhead")) + write_command(tmp_path, step_cmd) + response = poll_for_response(tmp_path, timeout=5.0) + assert response["status"] == "ok" + assert response["done"] is False + + # Send close + write_command(tmp_path, {"type": "close"}) + response = poll_for_response(tmp_path, timeout=5.0) + assert response["status"] == "ok" + + thread.join(timeout=5) diff --git a/tests/test_bridge_refactor.py b/tests/test_bridge_refactor.py index ceb8eaa..7a3e50e 100644 --- a/tests/test_bridge_refactor.py +++ b/tests/test_bridge_refactor.py @@ -1,12 +1,11 @@ """Tests for the bridge architecture refactor. Verifies: -- AI2ThorBridge is importable and has generic interface -- EBAlfredBridge subclasses AI2ThorBridge with task-specific methods +- AI2ThorBridge is importable and has generic interface (unchanged) +- EBAlfredBridge subclasses BaseBridge (not AI2ThorBridge) +- Vendor code is importable - get_bridge_script_path() works on BaseTask and EBAlfredTask -- simulator_kwargs property works on BaseTask -- Generic thor_utils has no goal evaluators -- EB-Alfred thor_utils has goal evaluators +- simulator_kwargs property works """ from __future__ import annotations @@ -46,17 +45,6 @@ def test_no_ebalfred_methods(self): assert not hasattr(bridge_cls, "_execute_skill") assert not hasattr(bridge_cls, "_restore_scene") assert not hasattr(bridge_cls, "_update_states") - assert not hasattr(bridge_cls, "_nav_obj") - assert not hasattr(bridge_cls, "_pick") - assert not hasattr(bridge_cls, "_put") - assert not hasattr(bridge_cls, "_open") - assert not hasattr(bridge_cls, "_close") - assert not hasattr(bridge_cls, "_toggleon") - assert not hasattr(bridge_cls, "_toggleoff") - assert not hasattr(bridge_cls, "_slice") - assert not hasattr(bridge_cls, "_drop") - assert not hasattr(bridge_cls, "_get_obj_id_from_name") - assert not hasattr(bridge_cls, "_get_object_prop") def test_no_ebalfred_state(self): """Generic bridge __init__ should NOT have EB-Alfred state.""" @@ -68,12 +56,8 @@ def test_no_ebalfred_state(self): assert not hasattr(bridge, "cleaned_objects") assert not hasattr(bridge, "cooled_objects") assert not hasattr(bridge, "heated_objects") - assert not hasattr(bridge, "cur_receptacle") - assert not hasattr(bridge, "put_count_dict") - assert not hasattr(bridge, "sliced") def test_accepts_simulator_kwargs(self): - """Generic bridge should accept simulator_kwargs.""" from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge import tempfile with tempfile.TemporaryDirectory() as tmpdir: @@ -92,82 +76,128 @@ def test_simulator_kwargs_default_empty(self): # --- EBAlfredBridge tests --- class TestEBAlfredBridgeImport: - """Test that EBAlfredBridge properly extends AI2ThorBridge.""" + """Test that EBAlfredBridge properly extends BaseBridge.""" def test_importable(self): from easi.tasks.ebalfred.bridge import EBAlfredBridge assert EBAlfredBridge is not None - def test_subclasses_ai2thor_bridge(self): + def test_subclasses_base_bridge(self): + """EBAlfredBridge should extend BaseBridge, not AI2ThorBridge.""" + from easi.simulators.base_bridge import BaseBridge + from easi.tasks.ebalfred.bridge import EBAlfredBridge + assert issubclass(EBAlfredBridge, BaseBridge) + + def test_not_subclass_of_ai2thor_bridge(self): + """EBAlfredBridge should NOT extend AI2ThorBridge anymore.""" from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge from easi.tasks.ebalfred.bridge import EBAlfredBridge - assert issubclass(EBAlfredBridge, AI2ThorBridge) + assert not issubclass(EBAlfredBridge, AI2ThorBridge) - def test_has_skill_methods(self): - """EB-Alfred bridge should have all skill execution methods.""" + def test_has_base_bridge_overrides(self): + """EBAlfredBridge should override BaseBridge methods.""" from easi.tasks.ebalfred.bridge import EBAlfredBridge bridge_cls = EBAlfredBridge - assert hasattr(bridge_cls, "_execute_skill") - assert hasattr(bridge_cls, "_restore_scene") - assert hasattr(bridge_cls, "_update_states") - assert hasattr(bridge_cls, "_nav_obj") - assert hasattr(bridge_cls, "_pick") - assert hasattr(bridge_cls, "_put") - assert hasattr(bridge_cls, "_open") - assert hasattr(bridge_cls, "_close") - assert hasattr(bridge_cls, "_toggleon") - assert hasattr(bridge_cls, "_toggleoff") - assert hasattr(bridge_cls, "_slice") - assert hasattr(bridge_cls, "_drop") - assert hasattr(bridge_cls, "_get_obj_id_from_name") - assert hasattr(bridge_cls, "_get_object_prop") - - def test_has_ebalfred_state(self): - """EB-Alfred bridge should have task-specific state.""" - from easi.tasks.ebalfred.bridge import EBAlfredBridge - import tempfile - with tempfile.TemporaryDirectory() as tmpdir: - bridge = EBAlfredBridge(workspace=tmpdir, data_dir=tmpdir) - assert hasattr(bridge, "traj_data") - assert hasattr(bridge, "cleaned_objects") - assert hasattr(bridge, "cooled_objects") - assert hasattr(bridge, "heated_objects") - assert hasattr(bridge, "cur_receptacle") - assert hasattr(bridge, "put_count_dict") - assert hasattr(bridge, "sliced") - - def test_inherits_generic_methods(self): - """EB-Alfred bridge should inherit generic methods from AI2ThorBridge.""" + assert hasattr(bridge_cls, "_create_env") + assert hasattr(bridge_cls, "_on_reset") + assert hasattr(bridge_cls, "_on_step") + assert hasattr(bridge_cls, "_extract_image") + assert hasattr(bridge_cls, "_extract_info") + + def test_no_skill_methods_on_bridge(self): + """Skill methods now live in vendor's ThorConnector, not bridge.""" from easi.tasks.ebalfred.bridge import EBAlfredBridge bridge_cls = EBAlfredBridge - assert hasattr(bridge_cls, "start") - assert hasattr(bridge_cls, "stop") - assert hasattr(bridge_cls, "run") - assert hasattr(bridge_cls, "_step") - assert hasattr(bridge_cls, "_cache_reachable_positions") - assert hasattr(bridge_cls, "_make_observation_response") - assert hasattr(bridge_cls, "_find_close_reachable_position") - assert hasattr(bridge_cls, "_angle_diff") + assert not hasattr(bridge_cls, "_execute_skill") + assert not hasattr(bridge_cls, "_restore_scene") + assert not hasattr(bridge_cls, "_update_states") + assert not hasattr(bridge_cls, "_nav_obj") + assert not hasattr(bridge_cls, "_pick") + assert not hasattr(bridge_cls, "_put") - def test_overrides_reset_and_step(self): - """EB-Alfred bridge should override reset and step.""" - from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + def test_instantiable(self): + """EBAlfredBridge can be instantiated with workspace.""" from easi.tasks.ebalfred.bridge import EBAlfredBridge - # The methods should be overridden (different from parent) - assert EBAlfredBridge.reset is not AI2ThorBridge.reset - assert EBAlfredBridge.step is not AI2ThorBridge.step + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + bridge = EBAlfredBridge(workspace=tmpdir) + assert bridge.env is None + assert bridge.step_count == 0 - def test_run_is_inherited(self): - """EB-Alfred bridge should inherit run() from AI2ThorBridge (not override).""" - from easi.simulators.ai2thor.v2_1_0.bridge import AI2ThorBridge + def test_accepts_simulator_kwargs(self): from easi.tasks.ebalfred.bridge import EBAlfredBridge - assert EBAlfredBridge.run is AI2ThorBridge.run - + import tempfile + with tempfile.TemporaryDirectory() as tmpdir: + kwargs = {"screen_height": 500} + bridge = EBAlfredBridge(workspace=tmpdir, simulator_kwargs=kwargs) + assert bridge.simulator_kwargs == kwargs -# --- Thor utils separation tests --- -class TestThorUtilsSeparation: - """Test that thor_utils is properly split between generic and EB-Alfred.""" +# --- Vendor import tests --- + +class TestVendorImports: + """Test that vendor files are properly importable.""" + + def test_vendor_package_importable(self): + import easi.tasks.ebalfred.vendor + assert easi.tasks.ebalfred.vendor is not None + + def test_vendor_utils_importable(self): + from easi.tasks.ebalfred.vendor.utils import ( + alfred_objs, + alfred_pick_obj, + alfred_open_obj, + alfred_slice_obj, + alfred_toggle_obj, + alfred_recep, + load_task_json, + natural_word_to_ithor_name, + dotdict, + ) + assert len(alfred_objs) > 0 + assert callable(load_task_json) + assert callable(natural_word_to_ithor_name) + + def test_vendor_constants_importable(self): + from easi.tasks.ebalfred.vendor.gen import constants + assert hasattr(constants, "AGENT_STEP_SIZE") + assert hasattr(constants, "CAMERA_HEIGHT_OFFSET") + assert hasattr(constants, "VISIBILITY_DISTANCE") + assert hasattr(constants, "GOALS") + + def test_vendor_no_embodiedbench_imports(self): + """No vendor file should import from embodiedbench.""" + import ast + from pathlib import Path + vendor_dir = Path("easi/tasks/ebalfred/vendor") + for py_file in vendor_dir.rglob("*.py"): + source = py_file.read_text() + assert "embodiedbench" not in source, ( + f"{py_file} still contains 'embodiedbench' import" + ) + + def test_vendor_no_splits_json(self): + """splits.json should be removed — episode data comes from HF dataset.""" + from pathlib import Path + splits_path = Path("easi/tasks/ebalfred/vendor/data/splits/splits.json") + assert not splits_path.exists() + + def test_vendor_rewards_json_exists(self): + from pathlib import Path + rewards_path = Path("easi/tasks/ebalfred/vendor/models/config/rewards.json") + assert rewards_path.exists() + + def test_vendor_layouts_exist(self): + from pathlib import Path + layouts_dir = Path("easi/tasks/ebalfred/vendor/gen/layouts") + npy_files = list(layouts_dir.glob("*.npy")) + assert len(npy_files) > 0, "No layout .npy files found" + + +# --- Generic thor_utils tests (unchanged) --- + +class TestGenericThorUtils: + """Test that generic thor_utils in simulators/ is still intact.""" def test_generic_has_constants(self): from easi.simulators.ai2thor.v2_1_0 import thor_utils @@ -185,41 +215,10 @@ def test_generic_has_object_helpers(self): assert hasattr(thor_utils, "get_obj_of_type_closest_to_obj") def test_generic_has_no_goal_evaluators(self): - """Generic thor_utils should NOT have goal evaluation functions.""" from easi.simulators.ai2thor.v2_1_0 import thor_utils assert not hasattr(thor_utils, "GOALS") assert not hasattr(thor_utils, "GOAL_EVALUATORS") assert not hasattr(thor_utils, "evaluate_goal_conditions") - assert not hasattr(thor_utils, "get_targets_from_traj") - assert not hasattr(thor_utils, "load_task_json") - assert not hasattr(thor_utils, "load_task_json_with_repeat") - - def test_ebalfred_has_goal_evaluators(self): - from easi.tasks.ebalfred import thor_utils - assert hasattr(thor_utils, "GOALS") - assert hasattr(thor_utils, "GOAL_EVALUATORS") - assert hasattr(thor_utils, "evaluate_goal_conditions") - assert hasattr(thor_utils, "get_targets_from_traj") - assert hasattr(thor_utils, "load_task_json") - assert hasattr(thor_utils, "load_task_json_with_repeat") - - def test_ebalfred_goals_list(self): - from easi.tasks.ebalfred.thor_utils import GOALS - assert len(GOALS) == 7 - assert "pick_and_place_simple" in GOALS - assert "pick_two_obj_and_place" in GOALS - - def test_ebalfred_evaluators_dict(self): - from easi.tasks.ebalfred.thor_utils import GOAL_EVALUATORS - assert len(GOAL_EVALUATORS) == 7 - assert "pick_and_place_simple" in GOAL_EVALUATORS - assert "pick_heat_then_place_in_recep" in GOAL_EVALUATORS - - def test_ebalfred_imports_from_generic(self): - """EB-Alfred thor_utils should import from generic thor_utils.""" - from easi.tasks.ebalfred.thor_utils import evaluate_goal_conditions - # The function should be callable - assert callable(evaluate_goal_conditions) # --- get_bridge_script_path tests --- @@ -278,6 +277,13 @@ def test_ebalfred_has_simulator_kwargs(self): assert kwargs.get("screen_height") == 500 assert kwargs.get("screen_width") == 500 + def test_ebalfred_no_eval_set(self): + """eval_set removed — episode data comes from HF dataset directly.""" + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + kwargs = task.simulator_kwargs + assert "eval_set" not in kwargs + def test_dummy_task_empty_simulator_kwargs(self): from easi.tasks.dummy_task.task import DummyTask task = DummyTask() @@ -318,3 +324,60 @@ def test_protocol_has_get_bridge_script_path(self): def test_protocol_has_simulator_kwargs(self): from easi.core.protocols import TaskProtocol assert hasattr(TaskProtocol, "simulator_kwargs") + + +# --- Task simplification tests --- + +class TestTaskSimplification: + """Test that EBAlfredTask is properly simplified.""" + + def test_format_reset_config_has_episode_data(self): + """reset_config should pass episode data directly to bridge.""" + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + episode = { + "id": 42, + "task": "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001", + "repeat_idx": 0, + "instruction": "Put a mug on the shelf.", + } + config = task.format_reset_config(episode) + assert config["episode_id"] == 42 + assert config["task"] == episode["task"] + assert config["repeat_idx"] == 0 + assert config["instruction"] == "Put a mug on the shelf." + + def test_format_reset_config_no_episode_idx(self): + """No episode_idx needed — episode data is passed directly.""" + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + episode = { + "id": 0, + "task": "test/trial_T00000001", + "repeat_idx": 0, + "instruction": "test", + } + config = task.format_reset_config(episode) + assert "episode_idx" not in config + assert "task_path" not in config + + def test_evaluate_episode_empty_trajectory(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + metrics = task.evaluate_episode({}, []) + assert metrics["task_success"] == 0.0 + assert metrics["num_steps"] == 0.0 + + def test_builtin_episodes_have_required_fields(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + episodes = task._get_builtin_episodes() + for ep in episodes: + assert "task" in ep + assert "repeat_idx" in ep + assert "instruction" in ep + + def test_no_thor_utils_in_ebalfred_tasks(self): + """thor_utils.py should be removed from easi/tasks/ebalfred/.""" + thor_utils_path = Path("easi/tasks/ebalfred/thor_utils.py") + assert not thor_utils_path.exists(), "thor_utils.py should be deleted" diff --git a/tests/test_ebalfred_task.py b/tests/test_ebalfred_task.py index 46282b6..9bd6825 100644 --- a/tests/test_ebalfred_task.py +++ b/tests/test_ebalfred_task.py @@ -65,15 +65,12 @@ def test_format_reset_config(self, task): "instruction": "Put a mug on the shelf.", "task_type": "pick_and_place_simple", "trial_id": "trial_T20190001", - "_data_dir": "/datasets/oscarqjh_EB-Alfred_easi", } config = task.format_reset_config(episode) - assert config["task_path"] == "pick_and_place_simple-Mug-None-Shelf-1/trial_T20190001" + assert config["episode_id"] == 0 + assert config["task"] == episode["task"] assert config["repeat_idx"] == 0 assert config["instruction"] == "Put a mug on the shelf." - assert config["episode_id"] == 0 - assert config["task_type"] == "pick_and_place_simple" - assert config["data_dir"] == "/datasets/oscarqjh_EB-Alfred_easi" def test_evaluate_episode(self, task): """Test metric computation from trajectory.""" diff --git a/tests/test_scaffold.py b/tests/test_scaffold.py new file mode 100644 index 0000000..5d94179 --- /dev/null +++ b/tests/test_scaffold.py @@ -0,0 +1,84 @@ +"""Tests for easi task scaffold command.""" +from pathlib import Path + +import pytest +import yaml + +from easi.tasks.scaffold import scaffold_task + + +class TestScaffold: + + def test_creates_task_directory(self, tmp_path): + scaffold_task("my_benchmark", "ai2thor:v2_1_0", output_dir=tmp_path / "easi" / "tasks") + task_dir = tmp_path / "easi" / "tasks" / "my_benchmark" + assert task_dir.is_dir() + + def test_creates_required_files(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "ai2thor:v2_1_0", output_dir=tasks_dir) + task_dir = tasks_dir / "my_benchmark" + assert (task_dir / "__init__.py").exists() + assert (task_dir / "task.py").exists() + assert (task_dir / "bridge.py").exists() + assert (task_dir / "my_benchmark.yaml").exists() + + def test_creates_test_file(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir, tests_dir=tmp_path / "tests") + assert (tmp_path / "tests" / "test_my_benchmark.py").exists() + + def test_test_file_has_class_name(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir, tests_dir=tmp_path / "tests") + content = (tmp_path / "tests" / "test_my_benchmark.py").read_text() + assert "MyBenchmarkTask" in content + assert "MyBenchmarkBridge" in content + + def test_yaml_has_correct_simulator(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) + assert config["simulator"] == "dummy:v1" + + def test_yaml_has_external_packages(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) + assert "external_packages" in config + + def test_yaml_has_simulator_kwargs(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) + assert "simulator_kwargs" in config + + def test_task_py_has_class_name(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + content = (tasks_dir / "my_benchmark" / "task.py").read_text() + assert "class MyBenchmarkTask(BaseTask):" in content + + def test_bridge_py_has_class_name(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + content = (tasks_dir / "my_benchmark" / "bridge.py").read_text() + assert "class MyBenchmarkBridge(BaseBridge):" in content + + def test_refuses_existing_directory(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + with pytest.raises(FileExistsError): + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + + def test_bridge_imports_base_bridge(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + content = (tasks_dir / "my_benchmark" / "bridge.py").read_text() + assert "from easi.simulators.base_bridge import BaseBridge" in content + + def test_task_has_get_bridge_script_path(self, tmp_path): + tasks_dir = tmp_path / "easi" / "tasks" + scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) + content = (tasks_dir / "my_benchmark" / "task.py").read_text() + assert "get_bridge_script_path" in content From 347a0caaa264e3576ebb3ee3361eb15157178965 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 16:49:30 +0800 Subject: [PATCH 006/239] [Feat] Added auto env install --- easi/cli.py | 18 +++++- easi/core/base_env_manager.py | 15 +++++ easi/core/base_task.py | 16 ++++- easi/core/protocols.py | 4 ++ easi/evaluation/runner.py | 9 +++ .../ai2thor/v2_1_0/requirements.txt | 3 - easi/simulators/base_bridge.py | 2 + easi/tasks/ebalfred/ebalfred_base.yaml | 6 +- .../tasks/ebalfred/ebalfred_common_sense.yaml | 6 +- .../ebalfred_complex_instruction.yaml | 6 +- .../tasks/ebalfred/ebalfred_long_horizon.yaml | 6 +- easi/tasks/ebalfred/ebalfred_spatial.yaml | 6 +- .../ebalfred/ebalfred_visual_appearance.yaml | 6 +- easi/tasks/scaffold.py | 4 +- tests/test_bridge_refactor.py | 60 +++++++++++++------ tests/test_scaffold.py | 10 ++-- 16 files changed, 141 insertions(+), 36 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 5922217..768a78e 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -42,6 +42,8 @@ def build_parser() -> argparse.ArgumentParser: env_install.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'") env_install.add_argument("--reinstall", action="store_true", help="Remove existing env and install from scratch") + env_install.add_argument("--with-task-deps", type=str, default=None, metavar="TASK", + help="Also install additional_deps from a task (e.g., 'ebalfred_base')") env_check = env_sub.add_parser("check", help="Check if environment is ready", parents=[common]) env_check.add_argument("simulator", type=str) @@ -121,7 +123,7 @@ def cmd_env_list() -> None: logger.info(" %s%s -- %s", pair, default_marker, entry.description) -def cmd_env_install(simulator: str, reinstall: bool = False) -> None: +def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str | None = None) -> None: from easi.simulators.registry import load_env_manager_class EnvManagerClass = load_env_manager_class(simulator) @@ -133,6 +135,18 @@ def cmd_env_install(simulator: str, reinstall: bool = False) -> None: logger.info("Installing environment: %s", env_manager.get_env_name()) env_manager.install() + + if with_task_deps: + from easi.tasks.registry import get_task_entry, load_task_class + + entry = get_task_entry(with_task_deps) + TaskClass = load_task_class(with_task_deps) + task = TaskClass(split_yaml_path=entry.config_path) + if task.additional_deps: + env_manager.install_additional_deps(task.additional_deps) + else: + logger.info("Task %s has no additional_deps.", with_task_deps) + logger.info("Done.") @@ -305,7 +319,7 @@ def main() -> None: if args.env_action == "list": cmd_env_list() elif args.env_action == "install": - cmd_env_install(args.simulator, reinstall=args.reinstall) + cmd_env_install(args.simulator, reinstall=args.reinstall, with_task_deps=args.with_task_deps) elif args.env_action == "check": cmd_env_check(args.simulator) else: diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index bc75465..0b31251 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -137,6 +137,21 @@ def install(self) -> None: return self._do_install() + def install_additional_deps(self, packages: list[str]) -> None: + """Install extra pip packages into this conda env via uv (idempotent). + + Called by EvaluationRunner when a task declares additional_deps + in its YAML config. + """ + if not packages: + return + python_exec = self.get_python_executable() + with spinner(f"Installing task dependencies: {', '.join(packages)}"): + self._run_command( + [python_exec, "-m", "uv", "pip", "install"] + packages, + "uv pip install (task deps)", + ) + def _do_install(self) -> None: """Execute the full install sequence (called under lock).""" env_name = self.get_env_name() diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 0e8757e..6c2068e 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -84,10 +84,22 @@ def get_bridge_script_path(self) -> Path | None: """ return None + @property + def simulator_configs(self) -> dict: + """Full simulator configuration from task YAML (includes additional_deps).""" + return self._config.get("simulator_configs", {}) + + @property + def additional_deps(self) -> list[str]: + """Extra pip packages to install in the simulator conda env.""" + return self.simulator_configs.get("additional_deps", []) + @property def simulator_kwargs(self) -> dict: - """Simulator configuration from task YAML (passed to bridge via CLI args).""" - return self._config.get("simulator_kwargs", {}) + """Bridge-facing kwargs (simulator_configs minus additional_deps).""" + cfg = dict(self.simulator_configs) + cfg.pop("additional_deps", None) + return cfg def get_instruction(self, episode: dict) -> str: """Return human-readable task instruction for this episode. diff --git a/easi/core/protocols.py b/easi/core/protocols.py index 77adc5a..fcb7fcc 100644 --- a/easi/core/protocols.py +++ b/easi/core/protocols.py @@ -72,5 +72,9 @@ def evaluate_episode( ) -> dict[str, float]: ... def get_bridge_script_path(self) -> Path | None: ... @property + def simulator_configs(self) -> dict: ... + @property + def additional_deps(self) -> list[str]: ... + @property def simulator_kwargs(self) -> dict: ... def __len__(self) -> int: ... diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 198f8b7..47a1fee 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -259,6 +259,15 @@ def _create_simulator(self, simulator_key: str, task=None): env_manager = EnvManagerClass() sim = SimClass() + # Auto-install simulator env if not ready + if not env_manager.env_is_ready(): + logger.info("Simulator environment not ready, auto-installing...") + env_manager.install() + + # Install task-level additional deps + if task and task.additional_deps: + env_manager.install_additional_deps(task.additional_deps) + # Task-specific bridge overrides simulator default bridge_path = ( (task.get_bridge_script_path() if task else None) diff --git a/easi/simulators/ai2thor/v2_1_0/requirements.txt b/easi/simulators/ai2thor/v2_1_0/requirements.txt index f55a859..e9c700f 100644 --- a/easi/simulators/ai2thor/v2_1_0/requirements.txt +++ b/easi/simulators/ai2thor/v2_1_0/requirements.txt @@ -7,6 +7,3 @@ flask==1.1.2 jinja2==2.11.3 markupsafe==1.1.1 itsdangerous==1.1.0 -gym -networkx -opencv-python diff --git a/easi/simulators/base_bridge.py b/easi/simulators/base_bridge.py index 8a002d2..425a85f 100644 --- a/easi/simulators/base_bridge.py +++ b/easi/simulators/base_bridge.py @@ -14,6 +14,8 @@ class MyBenchmarkBridge(BaseBridge): def _create_env(self, reset_config, simulator_kwargs): + # simulator_kwargs comes from task YAML's simulator_configs + # (with additional_deps stripped — bridge only gets runtime config) from external_package import MyEnv return MyEnv(**reset_config) diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index 5478719..d9d019c 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -12,9 +12,13 @@ dataset: split: "base" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 1e61251..71e86e7 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -12,9 +12,13 @@ dataset: split: "common_sense" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index a55539d..096ae18 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -12,9 +12,13 @@ dataset: split: "complex_instruction" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index a4d4413..a45ba7c 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -12,9 +12,13 @@ dataset: split: "long_horizon" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index dd2f04d..d25fbdb 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -12,9 +12,13 @@ dataset: split: "spatial" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 4189e5c..6724d07 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -12,9 +12,13 @@ dataset: split: "visual_appearance" zip_files: - "tasks.zip" -simulator_kwargs: +simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + additional_deps: + - "gym" + - "networkx" + - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" diff --git a/easi/tasks/scaffold.py b/easi/tasks/scaffold.py index e5577e2..c06e872 100644 --- a/easi/tasks/scaffold.py +++ b/easi/tasks/scaffold.py @@ -208,8 +208,8 @@ def _extract_image(self, obs): dataset: source: local path: null -simulator_kwargs: {{}} -external_packages: [] +simulator_configs: + additional_deps: [] ''' _TEST_TEMPLATE = '''\ diff --git a/tests/test_bridge_refactor.py b/tests/test_bridge_refactor.py index 7a3e50e..5a37fa4 100644 --- a/tests/test_bridge_refactor.py +++ b/tests/test_bridge_refactor.py @@ -5,7 +5,7 @@ - EBAlfredBridge subclasses BaseBridge (not AI2ThorBridge) - Vendor code is importable - get_bridge_script_path() works on BaseTask and EBAlfredTask -- simulator_kwargs property works +- simulator_configs / additional_deps / simulator_kwargs properties work """ from __future__ import annotations @@ -263,36 +263,53 @@ def test_ebalfred_bridge_path_different_from_simulator(self): assert "simulators" in str(sim_bridge) -# --- simulator_kwargs tests --- +# --- simulator_configs tests --- -class TestSimulatorKwargs: - """Test simulator_kwargs property on BaseTask.""" +class TestSimulatorConfigs: + """Test simulator_configs and additional_deps on BaseTask.""" - def test_ebalfred_has_simulator_kwargs(self): + def test_ebalfred_has_simulator_configs(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + configs = task.simulator_configs + assert isinstance(configs, dict) + assert configs.get("quality") == "MediumCloseFitShadows" + assert configs.get("screen_height") == 500 + + def test_ebalfred_has_additional_deps(self): + from easi.tasks.ebalfred.task import EBAlfredTask + task = EBAlfredTask() + deps = task.additional_deps + assert isinstance(deps, list) + assert "gym" in deps + assert "networkx" in deps + assert "opencv-python" in deps + + def test_ebalfred_simulator_kwargs_excludes_deps(self): + """simulator_kwargs should NOT contain additional_deps.""" from easi.tasks.ebalfred.task import EBAlfredTask task = EBAlfredTask() kwargs = task.simulator_kwargs - assert isinstance(kwargs, dict) + assert "additional_deps" not in kwargs assert kwargs.get("quality") == "MediumCloseFitShadows" assert kwargs.get("screen_height") == 500 - assert kwargs.get("screen_width") == 500 def test_ebalfred_no_eval_set(self): - """eval_set removed — episode data comes from HF dataset directly.""" + """eval_set removed -- episode data comes from HF dataset directly.""" from easi.tasks.ebalfred.task import EBAlfredTask task = EBAlfredTask() kwargs = task.simulator_kwargs assert "eval_set" not in kwargs - def test_dummy_task_empty_simulator_kwargs(self): + def test_dummy_task_empty_simulator_configs(self): from easi.tasks.dummy_task.task import DummyTask task = DummyTask() - kwargs = task.simulator_kwargs - assert isinstance(kwargs, dict) - assert kwargs == {} + assert task.simulator_configs == {} + assert task.additional_deps == [] + assert task.simulator_kwargs == {} - def test_all_ebalfred_splits_have_kwargs(self): - """All EB-Alfred split YAMLs should have simulator_kwargs.""" + def test_all_ebalfred_splits_have_configs(self): + """All EB-Alfred split YAMLs should have simulator_configs.""" from easi.tasks.registry import get_task_entry, load_task_class ebalfred_names = [ @@ -307,9 +324,10 @@ def test_all_ebalfred_splits_have_kwargs(self): entry = get_task_entry(name) TaskClass = load_task_class(name) task = TaskClass(split_yaml_path=entry.config_path) - kwargs = task.simulator_kwargs - assert isinstance(kwargs, dict), f"{name} simulator_kwargs is not a dict" - assert "quality" in kwargs, f"{name} missing quality in simulator_kwargs" + configs = task.simulator_configs + assert isinstance(configs, dict), f"{name} simulator_configs is not a dict" + assert "quality" in configs, f"{name} missing quality in simulator_configs" + assert "additional_deps" in configs, f"{name} missing additional_deps" # --- Protocol tests --- @@ -325,6 +343,14 @@ def test_protocol_has_simulator_kwargs(self): from easi.core.protocols import TaskProtocol assert hasattr(TaskProtocol, "simulator_kwargs") + def test_protocol_has_simulator_configs(self): + from easi.core.protocols import TaskProtocol + assert hasattr(TaskProtocol, "simulator_configs") + + def test_protocol_has_additional_deps(self): + from easi.core.protocols import TaskProtocol + assert hasattr(TaskProtocol, "additional_deps") + # --- Task simplification tests --- diff --git a/tests/test_scaffold.py b/tests/test_scaffold.py index 5d94179..cf37d33 100644 --- a/tests/test_scaffold.py +++ b/tests/test_scaffold.py @@ -41,17 +41,19 @@ def test_yaml_has_correct_simulator(self, tmp_path): config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) assert config["simulator"] == "dummy:v1" - def test_yaml_has_external_packages(self, tmp_path): + def test_yaml_has_simulator_configs(self, tmp_path): tasks_dir = tmp_path / "easi" / "tasks" scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) - assert "external_packages" in config + assert "simulator_configs" in config + assert "additional_deps" in config["simulator_configs"] - def test_yaml_has_simulator_kwargs(self, tmp_path): + def test_yaml_no_legacy_fields(self, tmp_path): tasks_dir = tmp_path / "easi" / "tasks" scaffold_task("my_benchmark", "dummy:v1", output_dir=tasks_dir) config = yaml.safe_load((tasks_dir / "my_benchmark" / "my_benchmark.yaml").read_text()) - assert "simulator_kwargs" in config + assert "simulator_kwargs" not in config + assert "external_packages" not in config def test_task_py_has_class_name(self, tmp_path): tasks_dir = tmp_path / "easi" / "tasks" From 65ec22b15870bdb417e90008a62f5fe83eb47136 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:00:22 +0800 Subject: [PATCH 007/239] [Feat] Add LLM response schemas with BaseResponseSchema --- easi/llm/schemas.py | 36 +++++++++++++++++++++++++ tests/test_llm_schemas.py | 57 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 easi/llm/schemas.py create mode 100644 tests/test_llm_schemas.py diff --git a/easi/llm/schemas.py b/easi/llm/schemas.py new file mode 100644 index 0000000..30bd230 --- /dev/null +++ b/easi/llm/schemas.py @@ -0,0 +1,36 @@ +"""Pydantic response schemas for structured LLM output. + +Each task can define its own schema extending BaseResponseSchema. +The schema's get_actions() method normalizes task-specific fields +into a standard list of action strings. +""" +from __future__ import annotations + +from pydantic import BaseModel + + +class BaseResponseSchema(BaseModel): + """Base class for all LLM response schemas. + + Subclasses MUST implement get_actions() to normalize their + task-specific fields into a list of action strings. + """ + + def get_actions(self) -> list[str]: + raise NotImplementedError + + +class ExecutableAction(BaseModel): + """A single action in an executable plan.""" + + action: str + + +class ActionPlanResponse(BaseResponseSchema): + """Default structured response for ReAct agents.""" + + reasoning: str + executable_plan: list[ExecutableAction] + + def get_actions(self) -> list[str]: + return [a.action for a in self.executable_plan] diff --git a/tests/test_llm_schemas.py b/tests/test_llm_schemas.py new file mode 100644 index 0000000..2195c2a --- /dev/null +++ b/tests/test_llm_schemas.py @@ -0,0 +1,57 @@ +"""Tests for LLM response schemas.""" +import json +import pytest +from pydantic import BaseModel + + +class TestBaseResponseSchema: + def test_base_schema_get_actions_raises(self): + from easi.llm.schemas import BaseResponseSchema + + class Bare(BaseResponseSchema): + pass + + with pytest.raises(NotImplementedError): + Bare().get_actions() + + def test_base_schema_is_pydantic_model(self): + from easi.llm.schemas import BaseResponseSchema + assert issubclass(BaseResponseSchema, BaseModel) + + +class TestActionPlanResponse: + def test_get_actions_returns_list_of_strings(self): + from easi.llm.schemas import ActionPlanResponse + + resp = ActionPlanResponse( + reasoning="I see a mug", + executable_plan=[ + {"action": "find a Mug"}, + {"action": "pick up the Mug"}, + ], + ) + assert resp.get_actions() == ["find a Mug", "pick up the Mug"] + + def test_empty_plan(self): + from easi.llm.schemas import ActionPlanResponse + + resp = ActionPlanResponse(reasoning="nothing to do", executable_plan=[]) + assert resp.get_actions() == [] + + def test_roundtrip_json(self): + from easi.llm.schemas import ActionPlanResponse + + resp = ActionPlanResponse( + reasoning="test", + executable_plan=[{"action": "Stop"}], + ) + data = json.loads(resp.model_dump_json()) + assert data["executable_plan"][0]["action"] == "Stop" + + +class TestExecutableAction: + def test_action_field(self): + from easi.llm.schemas import ExecutableAction + + a = ExecutableAction(action="MoveAhead") + assert a.action == "MoveAhead" From 9c8dd29527897ba9bbe5c3dc1f91d84af9e8c1b7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:01:54 +0800 Subject: [PATCH 008/239] [Feat] Add LLM kwargs parser, backend validation, model string builder --- easi/llm/utils.py | 73 ++++++++++++++++++++++++ tests/test_llm_utils.py | 120 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 easi/llm/utils.py create mode 100644 tests/test_llm_utils.py diff --git a/easi/llm/utils.py b/easi/llm/utils.py new file mode 100644 index 0000000..296eab7 --- /dev/null +++ b/easi/llm/utils.py @@ -0,0 +1,73 @@ +"""Utility functions for LLM backend configuration.""" +from __future__ import annotations + +import json +import os + +# Backend prefix mapping for LiteLLM model strings. +# vLLM and dummy both use OpenAI-compatible APIs. +_BACKEND_PREFIX = { + "openai": "openai", + "anthropic": "anthropic", + "gemini": "gemini", + "vllm": "openai", + "dummy": "openai", +} + +# Env vars required per backend. +_REQUIRED_ENV_VARS = { + "openai": "OPENAI_API_KEY", + "anthropic": "ANTHROPIC_API_KEY", + "gemini": "GOOGLE_API_KEY", +} + +# kwargs that belong to the inference server (vLLM CLI flags), not the API call. +_SERVER_KWARGS = { + "tensor_parallel_size", + "gpu_memory_utilization", + "max_model_len", + "dtype", + "quantization", + "enforce_eager", + "enable_prefix_caching", +} + + +def parse_llm_kwargs(raw: str | None) -> dict: + """Parse --llm-kwargs JSON string into a dict.""" + if not raw: + return {} + try: + result = json.loads(raw) + except json.JSONDecodeError as e: + raise ValueError(f"Invalid JSON for --llm-kwargs: {e}") from e + if not isinstance(result, dict): + raise ValueError("--llm-kwargs must be a JSON object (dict)") + return result + + +def split_kwargs(kwargs: dict) -> tuple[dict, dict]: + """Split kwargs into (server_kwargs, client_kwargs). + + Known server params (tensor_parallel_size, etc.) go to ServerManager. + Everything else (temperature, max_tokens, etc.) goes to LLMClient. + """ + server = {k: v for k, v in kwargs.items() if k in _SERVER_KWARGS} + client = {k: v for k, v in kwargs.items() if k not in _SERVER_KWARGS} + return server, client + + +def build_litellm_model(backend: str, model: str) -> str: + """Map EASI backend+model to a LiteLLM model string.""" + prefix = _BACKEND_PREFIX.get(backend, "openai") + return f"{prefix}/{model}" + + +def validate_backend(backend: str) -> None: + """Raise EnvironmentError if required env var is missing for backend.""" + env_var = _REQUIRED_ENV_VARS.get(backend) + if env_var and not os.environ.get(env_var): + raise EnvironmentError( + f"Backend '{backend}' requires the {env_var} environment variable. " + f"Set it with: export {env_var}=" + ) diff --git a/tests/test_llm_utils.py b/tests/test_llm_utils.py new file mode 100644 index 0000000..a2a6a24 --- /dev/null +++ b/tests/test_llm_utils.py @@ -0,0 +1,120 @@ +"""Tests for LLM utility functions.""" +import pytest + + +class TestParseLlmKwargs: + def test_none_returns_empty_dict(self): + from easi.llm.utils import parse_llm_kwargs + assert parse_llm_kwargs(None) == {} + + def test_empty_string_returns_empty_dict(self): + from easi.llm.utils import parse_llm_kwargs + assert parse_llm_kwargs("") == {} + + def test_valid_json(self): + from easi.llm.utils import parse_llm_kwargs + result = parse_llm_kwargs('{"tensor_parallel_size": 4, "temperature": 0.7}') + assert result == {"tensor_parallel_size": 4, "temperature": 0.7} + + def test_nested_json(self): + from easi.llm.utils import parse_llm_kwargs + result = parse_llm_kwargs('{"extra": {"key": "val"}}') + assert result == {"extra": {"key": "val"}} + + def test_invalid_json_raises(self): + from easi.llm.utils import parse_llm_kwargs + with pytest.raises(ValueError, match="Invalid JSON"): + parse_llm_kwargs("not json") + + +class TestSplitKwargs: + def test_splits_server_and_client(self): + from easi.llm.utils import split_kwargs + kwargs = { + "tensor_parallel_size": 4, + "gpu_memory_utilization": 0.9, + "temperature": 0.7, + "max_tokens": 1024, + } + server, client = split_kwargs(kwargs) + assert server == {"tensor_parallel_size": 4, "gpu_memory_utilization": 0.9} + assert client == {"temperature": 0.7, "max_tokens": 1024} + + def test_empty_dict(self): + from easi.llm.utils import split_kwargs + server, client = split_kwargs({}) + assert server == {} + assert client == {} + + def test_all_server_kwargs(self): + from easi.llm.utils import split_kwargs + kwargs = {"tensor_parallel_size": 4, "max_model_len": 8192} + server, client = split_kwargs(kwargs) + assert server == kwargs + assert client == {} + + def test_all_client_kwargs(self): + from easi.llm.utils import split_kwargs + kwargs = {"temperature": 0.5, "top_p": 0.9} + server, client = split_kwargs(kwargs) + assert server == {} + assert client == kwargs + + +class TestBuildLitellmModel: + def test_openai(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("openai", "gpt-4o") == "openai/gpt-4o" + + def test_anthropic(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("anthropic", "claude-sonnet-4-5-20250929") == "anthropic/claude-sonnet-4-5-20250929" + + def test_gemini(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("gemini", "gemini-2.0-flash") == "gemini/gemini-2.0-flash" + + def test_vllm_uses_openai_prefix(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("vllm", "Qwen/Qwen2.5-VL-72B") == "openai/Qwen/Qwen2.5-VL-72B" + + def test_dummy_uses_openai_prefix(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("dummy", "default") == "openai/default" + + def test_unknown_backend_falls_back(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("lmdeploy", "some-model") == "openai/some-model" + + +class TestValidateBackend: + def test_openai_missing_key(self, monkeypatch): + from easi.llm.utils import validate_backend + monkeypatch.delenv("OPENAI_API_KEY", raising=False) + with pytest.raises(EnvironmentError, match="OPENAI_API_KEY"): + validate_backend("openai") + + def test_openai_with_key(self, monkeypatch): + from easi.llm.utils import validate_backend + monkeypatch.setenv("OPENAI_API_KEY", "sk-test") + validate_backend("openai") # should not raise + + def test_anthropic_missing_key(self, monkeypatch): + from easi.llm.utils import validate_backend + monkeypatch.delenv("ANTHROPIC_API_KEY", raising=False) + with pytest.raises(EnvironmentError, match="ANTHROPIC_API_KEY"): + validate_backend("anthropic") + + def test_gemini_missing_key(self, monkeypatch): + from easi.llm.utils import validate_backend + monkeypatch.delenv("GOOGLE_API_KEY", raising=False) + with pytest.raises(EnvironmentError, match="GOOGLE_API_KEY"): + validate_backend("gemini") + + def test_vllm_no_key_needed(self): + from easi.llm.utils import validate_backend + validate_backend("vllm") # should not raise + + def test_dummy_no_key_needed(self): + from easi.llm.utils import validate_backend + validate_backend("dummy") # should not raise From e1a85ba7c287a44f5618b659aef67dcbbec0cfcb Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:08:16 +0800 Subject: [PATCH 009/239] [Feat] Add LLMClient wrapping LiteLLM + Instructor Unified client with generate() and generate_structured() methods, lazy imports, and cumulative usage tracking (tokens + cost). --- easi/llm/client.py | 132 ++++++++++++++++++++++++++++++++++++ tests/test_llm_client.py | 143 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 275 insertions(+) create mode 100644 easi/llm/client.py create mode 100644 tests/test_llm_client.py diff --git a/easi/llm/client.py b/easi/llm/client.py new file mode 100644 index 0000000..50f223b --- /dev/null +++ b/easi/llm/client.py @@ -0,0 +1,132 @@ +"""Unified LLM client wrapping LiteLLM + Instructor. + +Provides two generation modes: +- generate(): returns raw text (backward-compatible with LLMApiClient) +- generate_structured(): returns a validated Pydantic model (via Instructor) + +Usage tracking is cumulative — call get_usage() to snapshot, reset_usage() between episodes. +""" +from __future__ import annotations + +from typing import Any + +from pydantic import BaseModel + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Lazy imports to avoid requiring litellm/instructor when not needed. +litellm = None +instructor = None + + +def _ensure_imports() -> None: + """Import litellm and instructor on first use.""" + global litellm, instructor + if litellm is None: + try: + import litellm as _litellm + import instructor as _instructor + except ImportError as e: + raise ImportError( + "LLMClient requires litellm and instructor. " + "Install with: pip install easi[llm]" + ) from e + litellm = _litellm + instructor = _instructor + # Suppress litellm's verbose logging + litellm.suppress_debug_info = True + + +class LLMClient: + """Unified LLM client for all backends.""" + + def __init__( + self, + model: str, + base_url: str | None = None, + **kwargs: Any, + ): + self.model = model + self.base_url = base_url + self.default_kwargs = kwargs + self._usage = { + "prompt_tokens": 0, + "completion_tokens": 0, + "num_calls": 0, + "cost_usd": 0.0, + } + + def generate(self, messages: list[dict]) -> str: + """Generate text completion. Drop-in for LLMApiClient.generate().""" + _ensure_imports() + + call_kwargs: dict[str, Any] = { + "model": self.model, + "messages": messages, + **self.default_kwargs, + } + if self.base_url: + call_kwargs["api_base"] = self.base_url + + logger.trace("LLM call: model=%s, messages=%d", self.model, len(messages)) + response = litellm.completion(**call_kwargs) + self._track_usage(response) + + content = response.choices[0].message.content + logger.trace("LLM response: %s", content[:200] if content else "") + return content + + def generate_structured( + self, + messages: list[dict], + response_model: type[BaseModel], + ) -> BaseModel: + """Generate structured output validated against a Pydantic model.""" + _ensure_imports() + + client = instructor.from_litellm(litellm.completion) + + call_kwargs: dict[str, Any] = { + "model": self.model, + "messages": messages, + "response_model": response_model, + "max_retries": 2, + **self.default_kwargs, + } + if self.base_url: + call_kwargs["api_base"] = self.base_url + + logger.trace( + "LLM structured call: model=%s, schema=%s", + self.model, response_model.__name__, + ) + result = client.chat.completions.create(**call_kwargs) + return result + + def get_usage(self) -> dict: + """Return cumulative usage stats (copy).""" + return dict(self._usage) + + def reset_usage(self) -> None: + """Reset usage counters.""" + self._usage = { + "prompt_tokens": 0, + "completion_tokens": 0, + "num_calls": 0, + "cost_usd": 0.0, + } + + def _track_usage(self, response: Any) -> None: + """Accumulate token usage and cost from a LiteLLM response.""" + usage = getattr(response, "usage", None) + if usage: + self._usage["prompt_tokens"] += getattr(usage, "prompt_tokens", 0) + self._usage["completion_tokens"] += getattr(usage, "completion_tokens", 0) + self._usage["num_calls"] += 1 + try: + cost = litellm.completion_cost(completion_response=response) + self._usage["cost_usd"] += float(cost) + except Exception: + pass # Cost unavailable for local/unknown models diff --git a/tests/test_llm_client.py b/tests/test_llm_client.py new file mode 100644 index 0000000..2bb26fd --- /dev/null +++ b/tests/test_llm_client.py @@ -0,0 +1,143 @@ +"""Tests for LLMClient.""" +import json +import pytest +from unittest.mock import MagicMock, patch + + +class TestLLMClientInit: + def test_stores_config(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/gpt-4o", temperature=0.5, max_tokens=1024) + assert client.model == "openai/gpt-4o" + assert client.base_url is None + assert client.default_kwargs == {"temperature": 0.5, "max_tokens": 1024} + + def test_stores_base_url(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/test", base_url="http://localhost:8080/v1") + assert client.base_url == "http://localhost:8080/v1" + + +class TestLLMClientUsageTracking: + def test_initial_usage_is_zero(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/test") + usage = client.get_usage() + assert usage["prompt_tokens"] == 0 + assert usage["completion_tokens"] == 0 + assert usage["num_calls"] == 0 + assert usage["cost_usd"] == 0.0 + + def test_reset_usage(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/test") + client._usage["prompt_tokens"] = 100 + client._usage["num_calls"] = 5 + client.reset_usage() + assert client.get_usage()["prompt_tokens"] == 0 + assert client.get_usage()["num_calls"] == 0 + + def test_get_usage_returns_copy(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/test") + usage = client.get_usage() + usage["prompt_tokens"] = 999 + assert client.get_usage()["prompt_tokens"] == 0 + + +class TestLLMClientGenerate: + @patch("easi.llm.client.litellm") + def test_generate_returns_content(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = '{"executable_plan": [{"action": "Stop"}]}' + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 100 + mock_response.usage.completion_tokens = 20 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.001 + + client = LLMClient(model="openai/gpt-4o") + result = client.generate([{"role": "user", "content": "test"}]) + + assert result == '{"executable_plan": [{"action": "Stop"}]}' + mock_litellm.completion.assert_called_once() + + @patch("easi.llm.client.litellm") + def test_generate_tracks_usage(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "test" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 50 + mock_response.usage.completion_tokens = 10 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.002 + + client = LLMClient(model="openai/gpt-4o") + client.generate([{"role": "user", "content": "hello"}]) + client.generate([{"role": "user", "content": "world"}]) + + usage = client.get_usage() + assert usage["prompt_tokens"] == 100 + assert usage["completion_tokens"] == 20 + assert usage["num_calls"] == 2 + assert usage["cost_usd"] == pytest.approx(0.004) + + @patch("easi.llm.client.litellm") + def test_generate_passes_base_url(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + client = LLMClient(model="openai/test", base_url="http://localhost:8080/v1") + client.generate([{"role": "user", "content": "hi"}]) + + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("api_base") == "http://localhost:8080/v1" + + +class TestLLMClientGenerateStructured: + @patch("easi.llm.client.instructor") + @patch("easi.llm.client.litellm") + def test_generate_structured_returns_model(self, mock_litellm, mock_instructor): + from easi.llm.client import LLMClient + from easi.llm.schemas import ActionPlanResponse + + expected = ActionPlanResponse( + reasoning="I see a mug", + executable_plan=[{"action": "find a Mug"}], + ) + + mock_client = MagicMock() + mock_client.chat.completions.create.return_value = expected + mock_instructor.from_litellm.return_value = mock_client + + client = LLMClient(model="openai/gpt-4o") + result = client.generate_structured( + [{"role": "user", "content": "test"}], + response_model=ActionPlanResponse, + ) + + assert isinstance(result, ActionPlanResponse) + assert result.get_actions() == ["find a Mug"] + + +class TestLLMClientProtocolCompat: + def test_satisfies_llm_client_protocol(self): + from easi.core.protocols import LLMClientProtocol + from easi.llm.client import LLMClient + + client = LLMClient(model="openai/test") + assert isinstance(client, LLMClientProtocol) From ab27e7e3c6c3e519dbc36ab294a4a2c5aea566b2 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:08:26 +0800 Subject: [PATCH 010/239] [Feat] Add ServerManager for vLLM subprocess lifecycle Manages start/stop, port checking, health polling with timeout, and context manager support. Extensible for future backends. --- easi/llm/server_manager.py | 149 +++++++++++++++++++++++++++++++++++ tests/test_server_manager.py | 88 +++++++++++++++++++++ 2 files changed, 237 insertions(+) create mode 100644 easi/llm/server_manager.py create mode 100644 tests/test_server_manager.py diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py new file mode 100644 index 0000000..b44b71a --- /dev/null +++ b/easi/llm/server_manager.py @@ -0,0 +1,149 @@ +"""Manages lifecycle of local LLM inference servers (vLLM, etc.). + +Starts the server as a subprocess, waits for health check, and stops on exit. +""" +from __future__ import annotations + +import socket +import subprocess +import sys +import time +from pathlib import Path + +import requests + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +_HEALTH_POLL_INTERVAL = 5.0 +_DEFAULT_STARTUP_TIMEOUT = 300.0 + + +class ServerManager: + """Manages a local inference server subprocess.""" + + def __init__( + self, + backend: str, + model: str, + port: int = 8080, + server_kwargs: dict | None = None, + startup_timeout: float = _DEFAULT_STARTUP_TIMEOUT, + log_dir: Path | None = None, + ): + self.backend = backend + self.model = model + self.port = port + self.server_kwargs = server_kwargs or {} + self.startup_timeout = startup_timeout + self.log_dir = log_dir + self._process: subprocess.Popen | None = None + + def start(self) -> str: + """Start the server, wait for health, return base_url.""" + self._check_port() + + cmd = self._build_command() + logger.info("Starting %s server: %s", self.backend, " ".join(cmd)) + + log_file = None + if self.log_dir: + self.log_dir.mkdir(parents=True, exist_ok=True) + log_path = self.log_dir / f"{self.backend}_server.log" + log_file = open(log_path, "w") + logger.info("Server logs: %s", log_path) + + self._process = subprocess.Popen( + cmd, + stdout=log_file or subprocess.DEVNULL, + stderr=log_file or subprocess.DEVNULL, + ) + + base_url = f"http://localhost:{self.port}/v1" + self._wait_for_health(base_url) + logger.info("Server ready at %s", base_url) + return base_url + + def stop(self) -> None: + """Terminate the server process.""" + if self._process is not None: + logger.info("Stopping %s server (pid=%d)", self.backend, self._process.pid) + self._process.terminate() + try: + self._process.wait(timeout=30) + except subprocess.TimeoutExpired: + logger.warning("Server did not terminate, killing...") + self._process.kill() + self._process.wait(timeout=10) + self._process = None + + def is_running(self) -> bool: + """Check if server process is alive.""" + if self._process is None: + return False + return self._process.poll() is None + + def _check_port(self) -> None: + """Raise if port is already in use.""" + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + sock.bind(("127.0.0.1", self.port)) + except OSError: + raise RuntimeError( + f"Port {self.port} is already in use. " + f"Use --port to specify a different port, " + f"or --llm-url to connect to an existing server." + ) + finally: + sock.close() + + def _build_command(self) -> list[str]: + """Build the server launch command.""" + if self.backend == "vllm": + cmd = [ + sys.executable, "-m", "vllm.entrypoints.openai.api_server", + "--model", self.model, + "--port", str(self.port), + ] + for key, value in self.server_kwargs.items(): + flag = "--" + key.replace("_", "-") + cmd.extend([flag, str(value)]) + return cmd + else: + raise ValueError(f"Unsupported server backend: {self.backend}") + + def _wait_for_health(self, base_url: str) -> None: + """Poll /health until the server responds or timeout.""" + health_url = base_url.replace("/v1", "") + "/health" + deadline = time.monotonic() + self.startup_timeout + + while time.monotonic() < deadline: + if self._process and self._process.poll() is not None: + raise RuntimeError( + f"{self.backend} server exited with code {self._process.returncode}. " + f"Check server logs for details." + ) + try: + resp = requests.get(health_url, timeout=5) + if resp.status_code == 200: + return + except requests.ConnectionError: + pass + + time.sleep(_HEALTH_POLL_INTERVAL) + + self.stop() + log_hint = "" + if self.log_dir: + log_hint = f" Check logs at {self.log_dir / f'{self.backend}_server.log'}" + raise RuntimeError( + f"{self.backend} server failed to start within " + f"{self.startup_timeout}s.{log_hint}" + ) + + def __enter__(self) -> str: + return self.start() + + def __exit__(self, *exc) -> None: + self.stop() diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py new file mode 100644 index 0000000..4adc250 --- /dev/null +++ b/tests/test_server_manager.py @@ -0,0 +1,88 @@ +"""Tests for ServerManager — vLLM lifecycle management.""" +import socket +import pytest + + +class TestServerManagerInit: + def test_stores_config(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "Qwen/Qwen2.5-VL-72B", port=8080, + server_kwargs={"tensor_parallel_size": 4}) + assert sm.backend == "vllm" + assert sm.model == "Qwen/Qwen2.5-VL-72B" + assert sm.port == 8080 + assert sm.server_kwargs == {"tensor_parallel_size": 4} + + def test_default_port(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "some-model") + assert sm.port == 8080 + + +class TestBuildCommand: + def test_vllm_basic(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "Qwen/Qwen2.5-VL-72B", port=9090) + cmd = sm._build_command() + assert "-m" in cmd + assert "vllm.entrypoints.openai.api_server" in cmd + assert "--model" in cmd + assert "Qwen/Qwen2.5-VL-72B" in cmd + assert "--port" in cmd + assert "9090" in cmd + + def test_vllm_with_kwargs(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test-model", port=8080, + server_kwargs={"tensor_parallel_size": 4, + "gpu_memory_utilization": 0.9}) + cmd = sm._build_command() + assert "--tensor-parallel-size" in cmd + assert "4" in cmd + assert "--gpu-memory-utilization" in cmd + assert "0.9" in cmd + + def test_unsupported_backend_raises(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("unknown_backend", "test-model") + with pytest.raises(ValueError, match="Unsupported server backend"): + sm._build_command() + + +class TestPortCheck: + def test_port_available(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test", port=19876) + sm._check_port() # should not raise + + def test_port_taken(self): + from easi.llm.server_manager import ServerManager + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock.bind(("127.0.0.1", 19877)) + sock.listen(1) + try: + sm = ServerManager("vllm", "test", port=19877) + with pytest.raises(RuntimeError, match="already in use"): + sm._check_port() + finally: + sock.close() + + +class TestContextManager: + def test_context_manager_calls_stop(self): + from unittest.mock import MagicMock + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test", port=8080) + sm.start = MagicMock(return_value="http://localhost:8080/v1") + sm.stop = MagicMock() + with sm as url: + assert url == "http://localhost:8080/v1" + sm.stop.assert_called_once() + + +class TestIsRunning: + def test_not_running_when_no_process(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test") + assert sm.is_running() is False From 3e7010c5cdafd4d07c1c9a041ddf9c25c6689bb9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:37:30 +0800 Subject: [PATCH 011/239] [Feat] Add --backend, --model, --port, --llm-kwargs CLI args New arguments for `easi run` to select LLM backend and configure inference server. Backward compatible with existing --llm-url. --- easi/cli.py | 19 ++++++++++-- tests/test_cli_llm_args.py | 62 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 tests/test_cli_llm_args.py diff --git a/easi/cli.py b/easi/cli.py index 768a78e..77c3e16 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -87,6 +87,15 @@ def build_parser() -> argparse.ArgumentParser: run_parser.add_argument("--max-episodes", type=int, default=None) run_parser.add_argument("--llm-url", type=str, default=None, help="LLM server URL") run_parser.add_argument("--seed", type=int, default=None) + # New LLM backend args + run_parser.add_argument("--backend", type=str, default=None, + help="LLM backend: vllm, openai, anthropic, gemini, dummy") + run_parser.add_argument("--model", type=str, default="default", + help="Model name (HF path for vLLM, API name for proprietary)") + run_parser.add_argument("--port", type=int, default=8080, + help="Port for local inference server (default: 8080)") + run_parser.add_argument("--llm-kwargs", type=str, default=None, + help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) @@ -276,7 +285,8 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: sys.exit(1) -def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, llm_url, seed): +def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, + llm_url, seed, backend, model, port, llm_kwargs_raw): from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner( @@ -286,6 +296,10 @@ def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, llm_url, data_dir=data_dir, llm_base_url=llm_url, agent_seed=seed, + backend=backend, + model=model, + port=port, + llm_kwargs_raw=llm_kwargs_raw, ) results = runner.run(max_episodes=max_episodes) logger.info("Completed %d episodes.", len(results)) @@ -345,7 +359,8 @@ def main() -> None: elif args.command == "run": cmd_run(args.task, args.agent, args.output_dir, args.data_dir, - args.max_episodes, args.llm_url, args.seed) + args.max_episodes, args.llm_url, args.seed, + args.backend, args.model, args.port, args.llm_kwargs) elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/tests/test_cli_llm_args.py b/tests/test_cli_llm_args.py new file mode 100644 index 0000000..d68b37b --- /dev/null +++ b/tests/test_cli_llm_args.py @@ -0,0 +1,62 @@ +# tests/test_cli_llm_args.py +"""Tests for CLI LLM-related arguments.""" +import pytest + + +class TestBuildParser: + def test_run_has_backend_arg(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--backend", "vllm"]) + assert args.backend == "vllm" + + def test_run_backend_default_is_none(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.backend is None + + def test_run_has_model_arg(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--model", "gpt-4o"]) + assert args.model == "gpt-4o" + + def test_run_model_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.model == "default" + + def test_run_has_port_arg(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--port", "9090"]) + assert args.port == 9090 + + def test_run_port_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.port == 8080 + + def test_run_has_llm_kwargs(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args([ + "run", "dummy_task", + "--llm-kwargs", '{"tensor_parallel_size": 4}', + ]) + assert args.llm_kwargs == '{"tensor_parallel_size": 4}' + + def test_run_llm_kwargs_default_none(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.llm_kwargs is None + + def test_backward_compat_llm_url_still_works(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--llm-url", "http://localhost:8000"]) + assert args.llm_url == "http://localhost:8000" From 78568039d38561cb9f2c743eb13423dec00f72a8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:37:55 +0800 Subject: [PATCH 012/239] [Feat] Integrate LLMClient + ServerManager into EvaluationRunner Runner now resolves backend, auto-starts vLLM when needed, creates LLMClient for non-legacy backends, wraps structured output, and tracks LLM usage per-episode and per-run. --- easi/evaluation/runner.py | 148 ++++++++++++++++++++++++--- tests/test_runner_llm_integration.py | 74 ++++++++++++++ 2 files changed, 205 insertions(+), 17 deletions(-) create mode 100644 tests/test_runner_llm_integration.py diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 47a1fee..8412e06 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -52,6 +52,10 @@ def __init__( data_dir: Path | str = "./datasets", llm_base_url: str | None = None, agent_seed: int | None = None, + backend: str | None = None, + model: str = "default", + port: int = 8080, + llm_kwargs_raw: str | None = None, ): self.task_name = task_name self.agent_type = agent_type @@ -59,11 +63,36 @@ def __init__( self.data_dir = Path(data_dir) self.llm_base_url = llm_base_url self.agent_seed = agent_seed + self.backend = backend + self.model = model + self.port = port + self.llm_kwargs_raw = llm_kwargs_raw self.run_id = datetime.now().strftime("%Y%m%d_%H%M%S") + def _resolve_llm_backend(self) -> tuple[str | None, str | None]: + """Resolve which LLM backend to use. + + Returns (backend, base_url): + - (None, None) for dummy agent + - ("legacy", url) for --llm-url without --backend + - (backend_name, url_or_none) for --backend + """ + if self.agent_type == "dummy": + return None, None + + if self.backend: + return self.backend, self.llm_base_url + + if self.llm_base_url: + return "legacy", self.llm_base_url + + raise ValueError( + f"Agent '{self.agent_type}' requires --backend or --llm-url. " + f"Use --backend vllm|openai|anthropic|gemini or --llm-url ." + ) + def run(self, max_episodes: int | None = None) -> list[dict]: """Run evaluation and return per-episode metric dicts.""" - # Create structured output directory run_dir = self.output_dir / self.task_name / self.run_id episodes_dir = run_dir / "episodes" episodes_dir.mkdir(parents=True, exist_ok=True) @@ -74,6 +103,21 @@ def run(self, max_episodes: int | None = None) -> list[dict]: if max_episodes is not None: episodes = episodes[:max_episodes] + # 2. Resolve LLM backend and optionally start server + backend, base_url = self._resolve_llm_backend() + server = None + if backend == "vllm" and base_url is None: + from easi.llm.server_manager import ServerManager + from easi.llm.utils import parse_llm_kwargs, split_kwargs + + all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + server_kwargs, _ = split_kwargs(all_kwargs) + server = ServerManager( + "vllm", self.model, port=self.port, + server_kwargs=server_kwargs, log_dir=run_dir, + ) + base_url = server.start() + # Save run config config = { "task_name": self.task_name, @@ -82,14 +126,17 @@ def run(self, max_episodes: int | None = None) -> list[dict]: "run_id": self.run_id, "max_episodes": max_episodes, "total_episodes": len(episodes), + "backend": backend, + "model": self.model, } (run_dir / "config.json").write_text(json.dumps(config, indent=2)) - # 2. Create agent - agent = self._create_agent(task.action_space, task._config) + # 3. Create agent + agent = self._create_agent(task.action_space, task._config, + backend=backend, base_url=base_url) - # 3. Start simulator - sim, runner = self._create_simulator(task.simulator_key, task=task) + # 4. Start simulator + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) all_results = [] try: @@ -99,9 +146,7 @@ def run(self, max_episodes: int | None = None) -> list[dict]: "Episode %d/%d: %s", i + 1, len(episodes), episode_id, ) - # Create episode output directory - safe_id = _sanitize_dirname(episode_id) - episode_dir = episodes_dir / f"{i:03d}_{safe_id}" + episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" episode_dir.mkdir(exist_ok=True) result = self._run_episode( @@ -109,16 +154,21 @@ def run(self, max_episodes: int | None = None) -> list[dict]: ) all_results.append(result) - # Save per-episode result (episode_dir / "result.json").write_text( json.dumps(result, indent=2) ) finally: sim.close() + if server: + server.stop() - # 4. Aggregate and save summary + # 5. Aggregate and save summary summary = aggregate_metrics(all_results) + if backend and backend != "legacy": + summary["llm_usage"] = self._aggregate_llm_usage(all_results) + summary["model"] = self.model + summary["backend"] = backend (run_dir / "summary.json").write_text(json.dumps(summary, indent=2)) logger.info("Results saved to: %s", run_dir) logger.info("Summary: %s", summary) @@ -195,6 +245,11 @@ def _run_episode( metrics["episode_id"] = episode_id metrics["elapsed_seconds"] = round(elapsed, 2) + # Snapshot LLM usage for this episode + if hasattr(agent, 'llm_client') and hasattr(agent.llm_client, 'get_usage'): + metrics["llm_usage"] = agent.llm_client.get_usage() + agent.llm_client.reset_usage() + return metrics @staticmethod @@ -203,6 +258,28 @@ def _write_trajectory_entry(path: Path, entry: dict) -> None: with path.open("a") as f: f.write(json.dumps(entry) + "\n") + @staticmethod + def _aggregate_llm_usage(results: list[dict]) -> dict: + """Sum up llm_usage from per-episode results.""" + total = { + "total_calls": 0, + "total_prompt_tokens": 0, + "total_completion_tokens": 0, + "total_tokens": 0, + "total_cost_usd": 0.0, + } + for r in results: + usage = r.get("llm_usage", {}) + total["total_calls"] += usage.get("num_calls", 0) + total["total_prompt_tokens"] += usage.get("prompt_tokens", 0) + total["total_completion_tokens"] += usage.get("completion_tokens", 0) + total["total_cost_usd"] += usage.get("cost_usd", 0.0) + total["total_tokens"] = total["total_prompt_tokens"] + total["total_completion_tokens"] + n = len(results) or 1 + total["avg_prompt_tokens_per_episode"] = round(total["total_prompt_tokens"] / n) + total["avg_cost_per_episode_usd"] = round(total["total_cost_usd"] / n, 6) + return total + def _create_task(self): from easi.tasks.registry import get_task_entry, load_task_class @@ -213,22 +290,59 @@ def _create_task(self): data_dir=self.data_dir, ) - def _create_agent(self, action_space: list[str], task_config: dict): + def _create_agent(self, action_space: list[str], task_config: dict, + backend: str | None = None, base_url: str | None = None): from easi.utils.import_utils import import_class if self.agent_type == "dummy": from easi.agents.dummy_agent import DummyAgent - return DummyAgent(action_space=action_space, seed=self.agent_seed) + elif self.agent_type == "react": from easi.agents.react_agent import ReActAgent - from easi.llm.api_client import LLMApiClient - llm = LLMApiClient( - base_url=self.llm_base_url or "http://127.0.0.1:8000" - ) + # Create LLM client based on backend + if backend and backend != "legacy": + from easi.llm.client import LLMClient + from easi.llm.utils import ( + build_litellm_model, parse_llm_kwargs, + split_kwargs, validate_backend, + ) + + validate_backend(backend) + litellm_model = build_litellm_model(backend, self.model) + all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + _, client_kwargs = split_kwargs(all_kwargs) + + llm = LLMClient( + model=litellm_model, + base_url=base_url, + **client_kwargs, + ) + + # Wrap for structured output if configured + agent_config = task_config.get("agent", {}) + schema_class_name = agent_config.get("response_schema") + if schema_class_name: + import json as _json + SchemaClass = import_class(schema_class_name) + + def _structured_generate(messages): + result = llm.generate_structured(messages, response_model=SchemaClass) + actions = result.get_actions() + return _json.dumps({ + "executable_plan": [{"action": a} for a in actions] + }) + + llm.generate = _structured_generate + else: + # Legacy path: existing LLMApiClient + from easi.llm.api_client import LLMApiClient + llm = LLMApiClient( + base_url=base_url or "http://127.0.0.1:8000" + ) - # Load task-specific prompt builder if configured in yaml + # Load task-specific prompt builder prompt_builder = None agent_config = task_config.get("agent", {}) builder_class_name = agent_config.get("prompt_builder") diff --git a/tests/test_runner_llm_integration.py b/tests/test_runner_llm_integration.py new file mode 100644 index 0000000..6dec959 --- /dev/null +++ b/tests/test_runner_llm_integration.py @@ -0,0 +1,74 @@ +# tests/test_runner_llm_integration.py +"""Tests for EvaluationRunner LLM integration.""" +import pytest + + +class TestResolveBackend: + def test_backend_set_returns_backend(self): + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner("dummy_task", agent_type="react", + backend="openai", model="gpt-4o") + backend, url = runner._resolve_llm_backend() + assert backend == "openai" + + def test_llm_url_without_backend_returns_legacy(self): + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner("dummy_task", agent_type="react", + llm_base_url="http://localhost:8000") + backend, url = runner._resolve_llm_backend() + assert backend == "legacy" + assert url == "http://localhost:8000" + + def test_neither_set_for_react_raises(self): + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner("dummy_task", agent_type="react") + with pytest.raises(ValueError, match="requires --backend or --llm-url"): + runner._resolve_llm_backend() + + def test_dummy_agent_returns_none(self): + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner("dummy_task", agent_type="dummy") + backend, url = runner._resolve_llm_backend() + assert backend is None + + def test_backend_vllm_with_llm_url_skips_server(self): + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner("dummy_task", agent_type="react", + backend="vllm", model="test", + llm_base_url="http://localhost:9090/v1") + backend, url = runner._resolve_llm_backend() + assert backend == "vllm" + assert url == "http://localhost:9090/v1" + + +class TestAggregateLlmUsage: + def test_aggregate_empty(self): + from easi.evaluation.runner import EvaluationRunner + result = EvaluationRunner._aggregate_llm_usage([]) + assert result["total_calls"] == 0 + assert result["total_tokens"] == 0 + + def test_aggregate_single_episode(self): + from easi.evaluation.runner import EvaluationRunner + results = [ + {"llm_usage": {"num_calls": 4, "prompt_tokens": 800, "completion_tokens": 200, "cost_usd": 0.01}} + ] + agg = EvaluationRunner._aggregate_llm_usage(results) + assert agg["total_calls"] == 4 + assert agg["total_prompt_tokens"] == 800 + assert agg["total_completion_tokens"] == 200 + assert agg["total_tokens"] == 1000 + assert agg["total_cost_usd"] == 0.01 + + def test_aggregate_multiple_episodes(self): + from easi.evaluation.runner import EvaluationRunner + results = [ + {"llm_usage": {"num_calls": 3, "prompt_tokens": 500, "completion_tokens": 100, "cost_usd": 0.005}}, + {"llm_usage": {"num_calls": 5, "prompt_tokens": 700, "completion_tokens": 150, "cost_usd": 0.008}}, + ] + agg = EvaluationRunner._aggregate_llm_usage(results) + assert agg["total_calls"] == 8 + assert agg["total_prompt_tokens"] == 1200 + assert agg["total_completion_tokens"] == 250 + assert agg["total_tokens"] == 1450 + assert agg["avg_prompt_tokens_per_episode"] == 600 From 7231f0bcc78606dc9b7cf77d16b1091ba8afe81d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:38:54 +0800 Subject: [PATCH 013/239] [Feat] Add [llm] optional dependency group (litellm + instructor) --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 0707c92..50a23a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,10 @@ dev = [ "pytest>=7.0", "pytest-timeout>=2.0", ] +llm = [ + "litellm>=1.40", + "instructor>=1.0", +] [project.scripts] easi = "easi.cli:main" From e7f73c12d34cf5a77d09f5f7c8b56e44e76d36e7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 22:42:49 +0800 Subject: [PATCH 014/239] [Test] Add import smoke tests and full LLM pipeline integration test --- tests/test_llm_full_flow.py | 68 +++++++++++++++++++++++++++++++++++++ tests/test_llm_imports.py | 29 ++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 tests/test_llm_full_flow.py create mode 100644 tests/test_llm_imports.py diff --git a/tests/test_llm_full_flow.py b/tests/test_llm_full_flow.py new file mode 100644 index 0000000..28031ce --- /dev/null +++ b/tests/test_llm_full_flow.py @@ -0,0 +1,68 @@ +"""Full integration test for LLM inference pipeline.""" +import json +import pytest +from unittest.mock import MagicMock, patch + + +class TestFullFlow: + """Test: CLI args -> parse kwargs -> build model -> create client -> generate -> track usage.""" + + def test_parse_kwargs_to_split_to_client(self): + from easi.llm.utils import parse_llm_kwargs, split_kwargs, build_litellm_model + + raw = '{"tensor_parallel_size": 4, "temperature": 0.7, "max_tokens": 1024}' + kwargs = parse_llm_kwargs(raw) + server_kw, client_kw = split_kwargs(kwargs) + model = build_litellm_model("vllm", "Qwen/Qwen2.5-VL-72B") + + assert server_kw == {"tensor_parallel_size": 4} + assert client_kw == {"temperature": 0.7, "max_tokens": 1024} + assert model == "openai/Qwen/Qwen2.5-VL-72B" + + @patch("easi.llm.client.litellm") + def test_client_generate_and_track(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = '{"executable_plan": [{"action": "Stop"}]}' + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 200 + mock_response.usage.completion_tokens = 30 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.005 + + client = LLMClient(model="openai/gpt-4o", temperature=0.7) + + # Simulate 3 LLM calls (one episode) + for _ in range(3): + client.generate([{"role": "user", "content": "test"}]) + + usage = client.get_usage() + assert usage["num_calls"] == 3 + assert usage["prompt_tokens"] == 600 + assert usage["completion_tokens"] == 90 + assert usage["cost_usd"] == pytest.approx(0.015) + + # Reset for next episode + client.reset_usage() + assert client.get_usage()["num_calls"] == 0 + + def test_schema_normalization(self): + from easi.llm.schemas import ActionPlanResponse + + resp = ActionPlanResponse( + reasoning="I should find the apple", + executable_plan=[ + {"action": "find a Apple"}, + {"action": "pick up the Apple"}, + {"action": "clean the Apple"}, + ], + ) + actions = resp.get_actions() + normalized = json.dumps({ + "executable_plan": [{"action": a} for a in actions] + }) + data = json.loads(normalized) + assert len(data["executable_plan"]) == 3 + assert data["executable_plan"][0]["action"] == "find a Apple" diff --git a/tests/test_llm_imports.py b/tests/test_llm_imports.py new file mode 100644 index 0000000..3ccb602 --- /dev/null +++ b/tests/test_llm_imports.py @@ -0,0 +1,29 @@ +"""Tests for easi.llm public API imports.""" + + +class TestLlmImports: + def test_import_llm_client(self): + from easi.llm.client import LLMClient + assert LLMClient is not None + + def test_import_schemas(self): + from easi.llm.schemas import BaseResponseSchema, ActionPlanResponse, ExecutableAction + assert BaseResponseSchema is not None + assert ActionPlanResponse is not None + assert ExecutableAction is not None + + def test_import_server_manager(self): + from easi.llm.server_manager import ServerManager + assert ServerManager is not None + + def test_import_utils(self): + from easi.llm.utils import parse_llm_kwargs, split_kwargs, build_litellm_model, validate_backend + assert parse_llm_kwargs is not None + + def test_legacy_api_client_still_importable(self): + from easi.llm.api_client import LLMApiClient + assert LLMApiClient is not None + + def test_legacy_dummy_server_still_importable(self): + from easi.llm.dummy_server import run_server + assert run_server is not None From cb972eb4453a86e22766b56899897662bde694ff Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Feb 2026 23:11:02 +0800 Subject: [PATCH 015/239] [Fix] Address code review findings for LLM inference pipeline - Track usage in generate_structured() via instructor's _raw_response - Fix log file handle leak in ServerManager (store and close in stop()) - Remove duplicate agent_config computation in runner._create_agent() --- easi/evaluation/runner.py | 4 ++-- easi/llm/client.py | 9 +++++++++ easi/llm/server_manager.py | 11 +++++++---- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 8412e06..176c82d 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -301,6 +301,8 @@ def _create_agent(self, action_space: list[str], task_config: dict, elif self.agent_type == "react": from easi.agents.react_agent import ReActAgent + agent_config = task_config.get("agent", {}) + # Create LLM client based on backend if backend and backend != "legacy": from easi.llm.client import LLMClient @@ -321,7 +323,6 @@ def _create_agent(self, action_space: list[str], task_config: dict, ) # Wrap for structured output if configured - agent_config = task_config.get("agent", {}) schema_class_name = agent_config.get("response_schema") if schema_class_name: import json as _json @@ -344,7 +345,6 @@ def _structured_generate(messages): # Load task-specific prompt builder prompt_builder = None - agent_config = task_config.get("agent", {}) builder_class_name = agent_config.get("prompt_builder") if builder_class_name: BuilderClass = import_class(builder_class_name) diff --git a/easi/llm/client.py b/easi/llm/client.py index 50f223b..2c371fa 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -103,6 +103,15 @@ def generate_structured( self.model, response_model.__name__, ) result = client.chat.completions.create(**call_kwargs) + + # Track usage from the raw response attached by instructor + raw = getattr(result, "_raw_response", None) + if raw is not None: + self._track_usage(raw) + else: + # Fallback: at minimum count the call + self._usage["num_calls"] += 1 + return result def get_usage(self) -> dict: diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index b44b71a..d5a62ab 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -39,6 +39,7 @@ def __init__( self.startup_timeout = startup_timeout self.log_dir = log_dir self._process: subprocess.Popen | None = None + self._log_file = None def start(self) -> str: """Start the server, wait for health, return base_url.""" @@ -47,17 +48,16 @@ def start(self) -> str: cmd = self._build_command() logger.info("Starting %s server: %s", self.backend, " ".join(cmd)) - log_file = None if self.log_dir: self.log_dir.mkdir(parents=True, exist_ok=True) log_path = self.log_dir / f"{self.backend}_server.log" - log_file = open(log_path, "w") + self._log_file = open(log_path, "w") logger.info("Server logs: %s", log_path) self._process = subprocess.Popen( cmd, - stdout=log_file or subprocess.DEVNULL, - stderr=log_file or subprocess.DEVNULL, + stdout=self._log_file or subprocess.DEVNULL, + stderr=self._log_file or subprocess.DEVNULL, ) base_url = f"http://localhost:{self.port}/v1" @@ -77,6 +77,9 @@ def stop(self) -> None: self._process.kill() self._process.wait(timeout=10) self._process = None + if self._log_file is not None: + self._log_file.close() + self._log_file = None def is_running(self) -> bool: """Check if server process is alive.""" From c57b0543c114a1824cd55b3224d55c13348f53b5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 03:29:40 +0800 Subject: [PATCH 016/239] [Refactor] Introduce AgentMemory architecture + chat_history=True support Replace the tightly-coupled agent/prompt design with a memory-based architecture where AgentMemory holds shared state, PromptBuilder reads from memory to construct prompts and parse responses, and the agent is a thin orchestrator. Key changes: - AgentMemory + StepRecord dataclasses as shared agent state - New PromptBuilderProtocol: build_messages(memory) + parse_response(response, memory) - Simplified BaseAgent (removed _chat_history, abstract stubs, default act()) - ReActAgent rewritten as thin orchestrator delegating to builder - EBAlfredPromptBuilder gains chat_history=True mode with VLMPlanner parity - json_repair moved to easi/utils/ (old location re-exports) - Removed stateless flag from agent config (builder controls mode) --- easi/agents/dummy_agent.py | 29 +- easi/agents/prompt_builder.py | 127 ++--- easi/agents/react_agent.py | 170 ++---- easi/core/base_agent.py | 92 +--- easi/core/memory.py | 68 +++ easi/core/protocols.py | 3 - easi/evaluation/runner.py | 9 +- easi/tasks/ebalfred/ebalfred_base.yaml | 4 + .../tasks/ebalfred/ebalfred_common_sense.yaml | 4 + .../ebalfred_complex_instruction.yaml | 4 + .../tasks/ebalfred/ebalfred_long_horizon.yaml | 4 + easi/tasks/ebalfred/ebalfred_spatial.yaml | 4 + .../ebalfred/ebalfred_visual_appearance.yaml | 4 + easi/tasks/ebalfred/json_repair.py | 2 + easi/tasks/ebalfred/prompts.py | 437 ++++++++++++--- easi/utils/json_repair.py | 40 ++ tests/test_agent_memory.py | 92 ++++ tests/test_dummy_agent.py | 24 +- tests/test_ebalfred_task.py | 44 +- tests/test_json_repair.py | 76 +++ tests/test_prompt_parity.py | 510 ++++++++++++++++++ tests/test_react_agent.py | 153 +++--- 22 files changed, 1425 insertions(+), 475 deletions(-) create mode 100644 easi/core/memory.py create mode 100644 easi/tasks/ebalfred/json_repair.py create mode 100644 easi/utils/json_repair.py create mode 100644 tests/test_agent_memory.py create mode 100644 tests/test_json_repair.py create mode 100644 tests/test_prompt_parity.py diff --git a/easi/agents/dummy_agent.py b/easi/agents/dummy_agent.py index 2582b4c..fcdb2f4 100644 --- a/easi/agents/dummy_agent.py +++ b/easi/agents/dummy_agent.py @@ -1,5 +1,4 @@ """Dummy agent for testing — returns random actions without calling an LLM.""" - from __future__ import annotations import random @@ -19,31 +18,7 @@ def __init__(self, action_space: list[str], seed: int | None = None): super().__init__(llm_client=None, action_space=action_space) self._rng = random.Random(seed) - def _build_system_prompt(self, task_description: str) -> str: - return "" # no system prompt needed - - def _build_step_prompt(self, observation: Observation) -> str: - return "Choose an action." - - def _parse_action(self, llm_response: str) -> Action: - """Pick a random action from the action space.""" - action_name = self._rng.choice(self.action_space) - return Action(action_name=action_name) - def act(self, observation: Observation, task_description: str) -> Action: - """Override to skip LLM call entirely.""" + """Pick a random action from the action space.""" self._step_count += 1 - - action = self._parse_action("") - - # Still maintain chat history for compatibility - self._chat_history.append({ - "role": "user", - "content": f"Step {self._step_count}. Observation at {observation.rgb_path}", - }) - self._chat_history.append({ - "role": "assistant", - "content": f"Action: {action.action_name}", - }) - - return action + return Action(action_name=self._rng.choice(self.action_space)) diff --git a/easi/agents/prompt_builder.py b/easi/agents/prompt_builder.py index 12551ef..0c36a91 100644 --- a/easi/agents/prompt_builder.py +++ b/easi/agents/prompt_builder.py @@ -1,18 +1,18 @@ """PromptBuilder protocol and default implementation. -Decision #10: Both methods return OpenAI message format (list[dict]). -This supports interleaved text+image content for vision models, -and also works for text-only models (content is just a string). - -Contributors adding a new task only need to implement these 2 methods. +Both protocol methods receive AgentMemory as their state source. +Contributors adding a new task only need to implement build_messages +and parse_response. """ from __future__ import annotations import base64 +import json from pathlib import Path from typing import Protocol, runtime_checkable -from easi.core.episode import Observation +from easi.core.episode import Action, Observation +from easi.core.memory import AgentMemory from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -33,48 +33,32 @@ def _encode_image_base64(image_path: str) -> str | None: return f"data:{mime};base64,{data}" +def validate_action_name(action_name: str, action_space: list[str]) -> str | None: + """Validate action name against action_space. Returns canonical name or None.""" + if action_name in action_space: + return action_name + # Case-insensitive fallback + for valid in action_space: + if valid.lower() == action_name.lower(): + return valid + return None + + @runtime_checkable class PromptBuilderProtocol(Protocol): """Interface for task-specific prompt construction. - Both methods return OpenAI message format: list[dict]. - Each dict has "role" and "content" keys. - Content can be a string (text-only) or a list of content parts - (interleaved text + image_url for vision models). - Implementations are referenced in task.yaml via: agent: prompt_builder: "easi.tasks.my_task.prompts.MyPromptBuilder" """ - def build_system_prompt( - self, - action_space: list[str], - task_description: str, - ) -> list[dict]: - """Build system message(s). - - Returns: - List of OpenAI message dicts, e.g.: - [{"role": "system", "content": "You are an agent..."}] - """ + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build COMPLETE message list to send to LLM.""" ... - def build_step_prompt( - self, - observation: Observation, - task_description: str, - action_history: list[tuple[str, str]], - ) -> list[dict]: - """Build user message(s) for a single step, including observation image. - - Returns: - List of OpenAI message dicts with interleaved text+image, e.g.: - [{"role": "user", "content": [ - {"type": "text", "text": "Task: ..."}, - {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} - ]}] - """ + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into validated actions.""" ... @@ -117,49 +101,70 @@ class DefaultPromptBuilder: Based on the current observation image, decide your next action(s). Respond with valid JSON.""" - def build_system_prompt( - self, - action_space: list[str], - task_description: str, - ) -> list[dict]: + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build complete message list from memory state.""" + messages: list[dict] = [] + + # System message action_list = "\n".join( - f" {i}. {name}" for i, name in enumerate(action_space) + f" {i}. {name}" for i, name in enumerate(memory.action_space) ) - text = self.SYSTEM_TEMPLATE.format( + system_text = self.SYSTEM_TEMPLATE.format( action_list=action_list, - task_description=task_description, + task_description=memory.task_description, ) - return [{"role": "system", "content": text}] - - def build_step_prompt( - self, - observation: Observation, - task_description: str, - action_history: list[tuple[str, str]], - ) -> list[dict]: + messages.append({"role": "system", "content": system_text}) + + # User message with observation + action_history = memory.action_history if action_history: history_lines = [] for i, (action_name, feedback) in enumerate(action_history): - history_lines.append(f" Step {i+1}: {action_name} → {feedback}") + history_lines.append(f" Step {i+1}: {action_name} -> {feedback}") history_section = "## Action History\n" + "\n".join(history_lines) else: history_section = "This is the first step." text = self.STEP_TEMPLATE.format( - task_description=task_description, + task_description=memory.task_description, history_section=history_section, ) - # Build interleaved content parts content_parts: list[dict] = [{"type": "text", "text": text}] - - # Add observation image if available - if observation.rgb_path: - image_url = _encode_image_base64(observation.rgb_path) + if memory.current_observation and memory.current_observation.rgb_path: + image_url = _encode_image_base64(memory.current_observation.rgb_path) if image_url: content_parts.append({ "type": "image_url", "image_url": {"url": image_url}, }) - return [{"role": "user", "content": content_parts}] + messages.append({"role": "user", "content": content_parts}) + return messages + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse JSON response into validated actions.""" + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + action_name = entry.get("action", "") + validated = validate_action_name(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py index 1099b3b..b4c4f2d 100644 --- a/easi/agents/react_agent.py +++ b/easi/agents/react_agent.py @@ -1,20 +1,15 @@ """ReAct agent with multi-action buffering and PromptBuilder delegation. -Decision #9: LLM returns executable_plan as a list of actions. The agent -buffers all actions, pops one per act() call. While buffer is non-empty, -act() returns next buffered action without calling LLM. On action failure -(reported via add_feedback), buffer is cleared and next act() re-queries LLM. - -Decision #10: PromptBuilder returns OpenAI message format (list[dict]). -The agent appends these directly to chat_history and passes to LLM. +The agent is a thin orchestrator: it populates AgentMemory, delegates +prompt construction and response parsing to the PromptBuilder, and +manages action buffering. """ from __future__ import annotations -import json - from easi.agents.prompt_builder import DefaultPromptBuilder, PromptBuilderProtocol from easi.core.base_agent import BaseAgent from easi.core.episode import Action, Observation +from easi.core.memory import AgentMemory from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -24,145 +19,84 @@ class ReActAgent(BaseAgent): """ReAct agent with action buffering and pluggable prompt building. Flow per LLM call: - 1. PromptBuilder constructs OpenAI messages (with image) - 2. LLM returns JSON with executable_plan: [{action: ...}, ...] - 3. Agent validates ALL actions, buffers valid ones - 4. Returns first action; subsequent act() calls pop from buffer - 5. On failure feedback -> clear buffer -> next act() re-queries LLM + 1. PromptBuilder constructs messages from AgentMemory + 2. LLM returns response text + 3. PromptBuilder parses response into validated Actions + 4. Agent buffers actions, returns first + 5. Subsequent act() calls pop from buffer without LLM call + 6. On failure feedback -> clear buffer -> next act() re-queries LLM """ def __init__( self, llm_client, - action_space: list[str], + action_space: list[str] | None = None, prompt_builder: PromptBuilderProtocol | None = None, ): - super().__init__(llm_client=llm_client, action_space=action_space) + super().__init__(llm_client=llm_client, action_space=action_space or []) self.prompt_builder: PromptBuilderProtocol = prompt_builder or DefaultPromptBuilder() + self.memory = AgentMemory(action_space=self.action_space) self._action_buffer: list[Action] = [] - self._action_feedback: list[tuple[str, str]] = [] - self._task_description: str = "" def reset(self) -> None: super().reset() - self._action_buffer = [] - self._action_feedback = [] - self._task_description = "" + self.memory.clear() + self._action_buffer.clear() + + def update_action_space(self, action_space: list[str]) -> None: + """Update the action space (e.g., after dynamic expansion per episode).""" + self.action_space = action_space + self.memory.action_space = action_space + if hasattr(self.prompt_builder, 'set_action_space'): + self.prompt_builder.set_action_space(action_space) def act(self, observation: Observation, task_description: str) -> Action: """Return the next action. If buffer has pending actions, pop and return (no LLM call). - Otherwise, call LLM, parse executable_plan, buffer all actions, - return the first one. + Otherwise, call LLM, parse response via builder, buffer actions. """ - # Decision #9: return buffered action if available + # Buffered action path if self._action_buffer: - return self._action_buffer.pop(0) - - # Store task description for step prompts - self._task_description = task_description - - # Build system prompt on first call - if not self._chat_history: - system_messages = self.prompt_builder.build_system_prompt( - action_space=self.action_space, - task_description=task_description, - ) - self._chat_history.extend(system_messages) - - # Build step prompt (OpenAI message format with image) - step_messages = self.prompt_builder.build_step_prompt( - observation=observation, - task_description=task_description, - action_history=self._action_feedback, - ) - self._chat_history.extend(step_messages) - - # Call LLM - response = self.llm_client.generate(self._chat_history) - self._chat_history.append({"role": "assistant", "content": response}) + action = self._action_buffer.pop(0) + self.memory.record_step(observation, action, llm_response=None) + return action - self._step_count += 1 + # LLM call path + self.memory.current_observation = observation + self.memory.task_description = task_description + + messages = self.prompt_builder.build_messages(self.memory) + response = self.llm_client.generate(messages) - # Parse all actions from response - actions = self._parse_actions(response) + actions = self.prompt_builder.parse_response(response, self.memory) if not actions: - # Fallback: Stop or first action - return self._fallback_action() + action = self._fallback_action() + self.memory.record_step(observation, action, llm_response=response) + self._step_count += 1 + return action + + self.memory.record_step(observation, actions[0], llm_response=response) + self._step_count += 1 - # Buffer remaining actions, return first if len(actions) > 1: self._action_buffer = actions[1:] - return actions[0] - def _parse_actions(self, llm_response: str) -> list[Action]: - """Parse JSON response into a list of validated Actions. + return actions[0] - Returns empty list on parse failure (caller handles fallback). - """ - try: - data = json.loads(llm_response) - except json.JSONDecodeError as e: - logger.warning("Failed to parse LLM response as JSON: %s", e) - return [] - - plan = data.get("executable_plan", []) - if not isinstance(plan, list) or not plan: - logger.warning("No executable_plan in LLM response") - return [] - - actions = [] - for entry in plan: - if not isinstance(entry, dict): - continue - action_name = entry.get("action", "") - validated = self._validate_action_name(action_name) - if validated: - actions.append(Action(action_name=validated)) - else: - logger.warning("Skipping invalid action: '%s'", action_name) - # Stop processing further actions after an invalid one - break - - return actions - - def _validate_action_name(self, action_name: str) -> str | None: - """Validate action name against action_space. Returns canonical name or None.""" - if action_name in self.action_space: - return action_name - # Case-insensitive fallback - for valid in self.action_space: - if valid.lower() == action_name.lower(): - return valid - return None + def add_feedback(self, action_name: str, feedback: str) -> None: + """Record action feedback. Clear buffer on failure.""" + self.memory.record_feedback(feedback) + if any(kw in feedback.lower() for kw in ("fail", "error", "invalid")): + if self._action_buffer: + logger.info( + "Action '%s' failed, clearing %d buffered actions", + action_name, len(self._action_buffer), + ) + self._action_buffer.clear() def _fallback_action(self) -> Action: """Return a safe fallback action when parsing fails.""" if "Stop" in self.action_space: return Action(action_name="Stop") return Action(action_name=self.action_space[0]) - - def add_feedback(self, action_name: str, feedback: str) -> None: - """Record action feedback. Clear buffer on failure (Decision #9).""" - self._action_feedback.append((action_name, feedback)) - # Clear buffer on failure so next act() re-queries LLM - if "fail" in feedback.lower() or "error" in feedback.lower(): - if self._action_buffer: - logger.info("Action '%s' failed, clearing %d buffered actions", - action_name, len(self._action_buffer)) - self._action_buffer.clear() - - # --- BaseAgent abstract methods (not used directly, but required) --- - - def _build_system_prompt(self, task_description: str) -> str: - """Not used — ReActAgent delegates to PromptBuilder.""" - return "" - - def _build_step_prompt(self, observation: Observation) -> str: - """Not used — ReActAgent delegates to PromptBuilder.""" - return "" - - def _parse_action(self, llm_response: str) -> Action: - """Not used — ReActAgent uses _parse_actions instead.""" - return self._fallback_action() diff --git a/easi/core/base_agent.py b/easi/core/base_agent.py index b031501..610db6e 100644 --- a/easi/core/base_agent.py +++ b/easi/core/base_agent.py @@ -1,20 +1,9 @@ -"""Abstract base class for agents. - -An agent bridges the LLM inference endpoint and the simulator. It manages: -- Chat history across steps -- Prompt building (system prompt, per-step observation prompts) -- Parsing LLM text responses into structured Action objects - -Concrete agents subclass this and implement the three abstract methods: -_build_system_prompt, _build_step_prompt, _parse_action. -""" - +"""Abstract base class for agents.""" from __future__ import annotations from abc import ABC, abstractmethod from easi.core.episode import Action, Observation -from easi.core.exceptions import ActionParseError from easi.core.protocols import LLMClientProtocol from easi.utils.logging import get_logger @@ -27,26 +16,11 @@ class BaseAgent(ABC): def __init__(self, llm_client: LLMClientProtocol | None, action_space: list[str]): self.llm_client = llm_client self.action_space = action_space - self._chat_history: list[dict[str, str]] = [] self._step_count: int = 0 @abstractmethod - def _build_system_prompt(self, task_description: str) -> str: - """Build the system prompt describing the task and action space.""" - ... - - @abstractmethod - def _build_step_prompt(self, observation: Observation) -> str: - """Build the user message for a single step (includes observation description).""" - ... - - @abstractmethod - def _parse_action(self, llm_response: str) -> Action: - """Parse the LLM's text response into a structured Action. - - Raises: - ActionParseError: If the response cannot be parsed. - """ + def act(self, observation: Observation, task_description: str) -> Action: + """Return the next action given current observation and task.""" ... def add_feedback(self, action_name: str, feedback: str) -> None: @@ -57,63 +31,5 @@ def add_feedback(self, action_name: str, feedback: str) -> None: """ def reset(self) -> None: - """Clear chat history for a new episode.""" - self._chat_history = [] + """Reset agent state for a new episode.""" self._step_count = 0 - - def act(self, observation: Observation, task_description: str) -> Action: - """Full agent loop for one step. - - 1. Build system prompt on first call - 2. Build step prompt with observation - 3. Collect image paths from observation - 4. Call LLM inference endpoint - 5. Parse response into Action - 6. Append to chat history - """ - # Add system prompt on first step - if self._step_count == 0: - system_prompt = self._build_system_prompt(task_description) - if system_prompt: - self._chat_history.append({ - "role": "system", - "content": system_prompt, - }) - - # Build step prompt - self._step_count += 1 - step_prompt = self._build_step_prompt(observation) - - # Add user message to history - self._chat_history.append({"role": "user", "content": step_prompt}) - - # Call LLM - if self.llm_client is not None: - llm_response = self.llm_client.generate( - messages=self._chat_history, - ) - else: - llm_response = "" - - # Parse action - action = self._parse_action(llm_response) - - # Append assistant response to history - self._chat_history.append({ - "role": "assistant", - "content": llm_response, - }) - - logger.trace( - "Step %d: action=%s params=%s", - self._step_count, - action.action_name, - action.params, - ) - - return action - - @property - def chat_history(self) -> list[dict[str, str]]: - """Return a copy of the chat history.""" - return self._chat_history.copy() diff --git a/easi/core/memory.py b/easi/core/memory.py new file mode 100644 index 0000000..e47c21e --- /dev/null +++ b/easi/core/memory.py @@ -0,0 +1,68 @@ +"""Agent memory: shared state between agent and prompt builder.""" +from __future__ import annotations + +from dataclasses import dataclass, field + +from easi.core.episode import Action, Observation + + +@dataclass +class StepRecord: + """Record of a single agent step.""" + + observation: Observation + action: Action | None = None + feedback: str | None = None + llm_response: str | None = None # None for buffered actions + step_number: int = 0 + + +@dataclass +class AgentMemory: + """Shared state that the agent populates and the prompt builder reads.""" + + task_description: str = "" + action_space: list[str] = field(default_factory=list) + steps: list[StepRecord] = field(default_factory=list) + current_observation: Observation | None = None + + @property + def is_first_turn(self) -> bool: + """True when no completed steps exist yet.""" + return len(self.steps) == 0 + + @property + def action_history(self) -> list[tuple[str, str]]: + """(action_name, feedback) for completed steps with feedback.""" + return [ + (s.action.action_name, s.feedback) + for s in self.steps + if s.action and s.feedback is not None + ] + + def record_step( + self, + observation: Observation, + action: Action, + llm_response: str | None, + ) -> None: + """Record a completed step (action taken, awaiting feedback).""" + self.steps.append( + StepRecord( + observation=observation, + action=action, + llm_response=llm_response, + step_number=len(self.steps), + ) + ) + + def record_feedback(self, feedback: str) -> None: + """Attach feedback to the most recent step.""" + if self.steps: + self.steps[-1].feedback = feedback + + def clear(self) -> None: + """Reset memory for a new episode.""" + self.steps.clear() + self.current_observation = None + self.task_description = "" diff --git a/easi/core/protocols.py b/easi/core/protocols.py index fcb7fcc..21a00f5 100644 --- a/easi/core/protocols.py +++ b/easi/core/protocols.py @@ -50,9 +50,6 @@ def reset(self) -> None: ... def act(self, observation: Observation, task_description: str) -> Action: ... def add_feedback(self, action_name: str, feedback: str) -> None: ... - @property - def chat_history(self) -> list[dict]: ... - @runtime_checkable class TaskProtocol(Protocol): diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 176c82d..3d0ca8d 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -191,6 +191,12 @@ def _run_episode( episode_output_dir=str(episode_dir), ) + # Propagate dynamic action space from bridge (e.g., EB-Alfred per-episode actions) + dynamic_actions_json = observation.metadata.get("dynamic_action_space") + if dynamic_actions_json and hasattr(agent, 'update_action_space'): + dynamic_actions = json.loads(dynamic_actions_json) + agent.update_action_space(dynamic_actions) + # Write reset entry to trajectory trajectory_path = episode_dir / "trajectory.jsonl" self._write_trajectory_entry(trajectory_path, { @@ -348,7 +354,8 @@ def _structured_generate(messages): builder_class_name = agent_config.get("prompt_builder") if builder_class_name: BuilderClass = import_class(builder_class_name) - prompt_builder = BuilderClass() + builder_kwargs = agent_config.get("prompt_builder_kwargs", {}) + prompt_builder = BuilderClass(**builder_kwargs) return ReActAgent( llm_client=llm, diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index d9d019c..f5b2cbf 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 71e86e7..38fc17e 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 096ae18..e4b7d53 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index a45ba7c..55d93e4 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "long_horizon" + use_feedback: true diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index d25fbdb..a860616 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 6724d07..d997eb6 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -22,3 +22,7 @@ simulator_configs: - "opencv-python" agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true diff --git a/easi/tasks/ebalfred/json_repair.py b/easi/tasks/ebalfred/json_repair.py new file mode 100644 index 0000000..49dc898 --- /dev/null +++ b/easi/tasks/ebalfred/json_repair.py @@ -0,0 +1,2 @@ +"""Backward-compatible re-export. Canonical location: easi.utils.json_repair.""" +from easi.utils.json_repair import fix_json # noqa: F401 diff --git a/easi/tasks/ebalfred/prompts.py b/easi/tasks/ebalfred/prompts.py index 74adc57..f515945 100644 --- a/easi/tasks/ebalfred/prompts.py +++ b/easi/tasks/ebalfred/prompts.py @@ -1,109 +1,396 @@ -"""EB-Alfred-specific prompt builder (Decision #10: OpenAI message format). +"""EB-Alfred prompt builder matching EmbodiedBench VLMPlanner exactly. -Produces prompts in OpenAI message format with interleaved text+image, -tailored for the EB-Alfred household task domain. +Supports both chat_history=False (stateless) and chat_history=True modes. Referenced in ebalfred*.yaml via: agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" -Reference: EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py +Reference: EmbodiedBench/embodiedbench/planner/vlm_planner.py + EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py + EmbodiedBench/embodiedbench/planner/planner_utils.py """ from __future__ import annotations -from easi.agents.prompt_builder import _encode_image_base64 -from easi.core.episode import Observation +import json +from pathlib import Path + +from easi.agents.prompt_builder import _encode_image_base64, validate_action_name +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Exact system prompt from EmbodiedBench system_prompts.py (alfred_system_prompt). +# Three format placeholders: max_action_id, action_list, examples. +ALFRED_SYSTEM_PROMPT = '''## You are a robot operating in a home. Given a task, you must accomplish the task using a defined set of actions to achieve the desired outcome. + +## Action Descriptions and Validity Rules +\u2022 Find: Parameterized by the name of the receptacle to navigate to. So long as the object is present in the scene, this skill is always valid +\u2022 Pick up: Parameterized by the name of the object to pick. Only valid if the robot is close to the object, not holding another object, and the object is not inside a closed receptacle. +\u2022 Put down: Parameterized by the name of the object to put down to a nearby receptacle. Only valid if the robot is holding an object. +\u2022 Drop: Parameterized by the name of the object to put down. It is different from Put down action, as this does not guarantee the held object will be put into a specified receptacle. +\u2022 Open: Parameterized by the name of the receptacle to open. Only valid if the receptacle is closed and the robot is close to the receptacle. +\u2022 Close: Parameterized by the name of the receptacle to close. Only valid if the receptacle is open and the robot is close to the receptacle. +\u2022 Turn on: Parameterized by the name of the object to turn on. Only valid if the object is turned off and the robot is close to the object. +\u2022 Turn off: Parameterized by the name of the object to turn off. Only valid if the object is turned on and the robot is close to the object. +\u2022 Slice: Parameterized by the name of the object to slice. Only valid if the object is sliceable and the robot is close to the object. + + +## The available action id (0 ~ {}) and action names are: {}. + +{} + +## Guidelines +1. **Output Plan**: Avoid generating empty plan. Each plan should include no more than 20 actions. +2. **Visibility**: Always locate a visible object by the 'find' action before interacting with it. +3. **Action Guidelines**: Make sure match the action name and its corresponding action id in the output.\n Avoid performing actions that do not meet the defined validity criteria. For instance, if you want to put object in a receptacle, use 'put down' rather than 'drop' actions. +4. **Prevent Repeating Action Sequences**: Do not repeatedly execute the same action or sequence of actions.\n Try to modify the action sequence because previous actions do not lead to success. +5. **Multiple Instances**: There may be multiple instances of the same object, distinguished by an index following their names, e.g., Cabinet_2, Cabinet_3. You can explore these instances if you do not find the desired object in the current receptacle. +6. **Reflection on History and Feedback**: Use interaction history and feedback from the environment to refine and improve your current plan.\n If the last action is invalid, reflect on the reason, such as not adhering to action rules or missing preliminary actions, and adjust your plan accordingly. +''' + +# Output template from EmbodiedBench planner_utils.py (template, not template_lang). +OUTPUT_TEMPLATE = ''' +The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]} +The fields in above JSON follows the purpose below: +1. visual_state_description is for description of current state from the visual image, +2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, +3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, +4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name. +5. keep your plan efficient and concise. +!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!. +''' + +_CONFIG_DIR = Path(__file__).parent / "config" class EBAlfredPromptBuilder: - """Prompt builder for EB-Alfred household tasks in AI2-THOR. + """Prompt builder for EB-Alfred that exactly matches VLMPlanner output. - Returns OpenAI message format (list[dict]) with interleaved text+image. + Supports two modes: + - chat_history=False (default): Stateless. Every turn sends the full system + prompt + examples + instruction. No message accumulation. + - chat_history=True: First turn is identical. Subsequent turns send a minimal + prompt (instruction + history + reflection). Messages accumulate. """ - SYSTEM_TEMPLATE = """You are an embodied agent in an AI2-THOR household environment. You must complete household tasks by choosing high-level skill actions. - -## Task -{task_description} - -## Available Actions -Each action is a high-level skill. The simulator will handle low-level navigation and interaction. -{action_list} - -## Action Categories -- **find a **: Navigate to the specified object -- **pick up the **: Pick up an object (must be near it first) -- **put down the object in hand**: Place held object in the nearest receptacle -- **open/close the **: Open or close a container (Fridge, Cabinet, etc.) -- **turn on/off the **: Toggle an appliance (Faucet, Microwave, etc.) -- **slice the **: Slice a sliceable object (must be holding a knife) - -## Output Format -Respond with valid JSON: -{{ - "observation": "Describe what you see in the current image", - "reasoning": "Step-by-step reasoning about what to do next", - "plan": "Your high-level plan to complete the task", - "executable_plan": [ - {{"action": ""}} - ] -}} - -## Tips -- Find objects before trying to interact with them. -- To clean: put object in sink, turn on faucet, turn off faucet, pick up object. -- To heat: put object in microwave, turn on microwave, turn off microwave, pick up object. -- To cool: put object in fridge, close fridge, open fridge, pick up object. -- Output one action at a time for reliability. -""" + def __init__( + self, + n_shot: int = 10, + split: str = "base", + use_feedback: bool = True, + chat_history: bool = False, + ): + self.n_shot = n_shot + self.split = split + self.use_feedback = use_feedback + self.chat_history = chat_history + + # Load examples + if split == "long_horizon": + examples_file = _CONFIG_DIR / "alfred_long_horizon_examples.json" + else: + examples_file = _CONFIG_DIR / "alfred_examples.json" + + with open(examples_file) as f: + self._examples: list[str] = json.load(f) + + # Action space state (set via set_action_space or lazily in build_messages) + self._actions: list[str] = [] + self._action_str: str = "" + self._action_id_map: dict[str, int] = {} + self._id_action_map: dict[int, str] = {} + + def set_action_space(self, actions: list[str]) -> None: + """Update action space (e.g., after dynamic expansion per episode).""" + self._actions = list(actions) + self._action_str = self._build_action_list_str(actions) + self._action_id_map = {name: i for i, name in enumerate(actions)} + self._id_action_map = {i: name for i, name in enumerate(actions)} - STEP_TEMPLATE = """Task: {task_description} + def action_name_to_id(self, name: str) -> int | None: + """Look up action ID from name. Returns None if not found.""" + return self._action_id_map.get(name) -{history_section} + def action_id_to_name(self, action_id: int) -> str | None: + """Look up action name from ID. Returns None if not found.""" + return self._id_action_map.get(action_id) -Look at the current observation image and decide your next action. Respond with valid JSON.""" + @staticmethod + def _build_action_list_str(actions: list[str]) -> str: + """Build action list in VLMPlanner's get_availabel_action_prompt format.""" + parts = '' + for i in range(len(actions)): + parts += '\naction id ' + str(i) + ': ' + str(actions[i]) + if i < len(actions) - 1: + parts += ', ' + return parts - def build_system_prompt( + # ---- New PromptBuilderProtocol methods ---- + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build COMPLETE message list to send to LLM.""" + # Lazy-init action maps from memory.action_space + if not self._action_id_map or self._actions != memory.action_space: + self.set_action_space(memory.action_space) + + if self.chat_history: + return self._build_chat_history_messages(memory) + else: + return self._build_stateless_messages(memory) + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into validated actions.""" + from easi.utils.json_repair import fix_json + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + + # Support both {"action_id": int, "action_name": str} and {"action": str} + if "action_id" in entry: + action_id = entry["action_id"] + action_name = self.action_id_to_name(action_id) + if action_name is None: + action_name = entry.get("action_name", "") + else: + action_name = entry.get("action", "") + + validated = validate_action_name(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions + + # ---- Stateless mode (chat_history=False) ---- + + def _build_stateless_messages(self, memory: AgentMemory) -> list[dict]: + """Build full prompt each turn. No history accumulation.""" + prompt = self._build_prompt_text( + memory.task_description, memory.action_history, + ) + return self._wrap_as_user_message(prompt, memory.current_observation) + + def _build_prompt_text( self, - action_space: list[str], task_description: str, - ) -> list[dict]: - action_list = "\n".join( - f" {i}. {name}" for i, name in enumerate(action_space) + action_history: list[tuple[str, str]], + ) -> str: + """Build the full prompt text matching VLMPlanner.process_prompt(). + + Covers both first-turn and subsequent-turn paths with + chat_history=False (lines 53-63 and 78-94 of vlm_planner.py). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if len(action_history) == 0: + # First turn path (vlm_planner.py lines 53-63) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += f" You are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." + + else: + # Subsequent turn path, chat_history=False (vlm_planner.py lines 78-94) + # Note: VLMPlanner has TWO spaces after "Example" on line 80 (typo preserved) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + prompt += '\nStep {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + prompt += '\nStep {}, action id {}, {}'.format( + i, action_id, action_name, + ) + + prompt += f'''\n\n Considering the above interaction history and the current image state, to achieve the human instruction: '{user_instruction}', you are supposed to output in json. You need to describe current visual state from the image, summarize interaction history {'and environment feedback ' if self.use_feedback else ''}and reason why the last action or plan failed and did not finish the task, output your new plan to achieve the goal from current state. At the end, output the excutable plan with action ids(0 ~ {max_id}) from the available actions.''' + + # Append output template (VLMPlanner act() line 203: prompt + template) + prompt += OUTPUT_TEMPLATE + + return prompt + + # ---- Chat history mode (chat_history=True) ---- + + def _build_chat_history_messages(self, memory: AgentMemory) -> list[dict]: + """Build accumulated message history for chat_history=True mode. + + First turn: identical to stateless first turn. + Subsequent turns: reconstruct full message history from memory.steps, + then append current turn with minimal prompt. + """ + if memory.is_first_turn: + # First turn: same as stateless + return self._build_stateless_messages(memory) + + # Reconstruct message history from completed steps + messages: list[dict] = [] + + for step_idx, step in enumerate(memory.steps): + if step.llm_response is None: + # Buffered step — no user/assistant pair + continue + + if step_idx == 0: + # First step: full prompt (same as stateless first turn) + history_up_to = [] + else: + # Subsequent steps: collect action history up to this step + history_up_to = [ + (s.action.action_name, s.feedback) + for s in memory.steps[:step_idx] + if s.action and s.feedback is not None + ] + + if step_idx == 0: + prompt = self._build_first_turn_prompt(memory.task_description) + else: + prompt = self._build_chat_subsequent_prompt( + memory.task_description, history_up_to, + ) + + # User message + messages.extend( + self._wrap_as_user_message(prompt, step.observation) + ) + # Assistant message + messages.append({ + "role": "assistant", + "content": [{"type": "text", "text": step.llm_response}], + }) + + # Current turn: append new user message + # Collect full action history from all steps with feedback + all_history = memory.action_history + current_prompt = self._build_chat_subsequent_prompt( + memory.task_description, all_history, ) - text = self.SYSTEM_TEMPLATE.format( - action_list=action_list, - task_description=task_description, + messages.extend( + self._wrap_as_user_message(current_prompt, memory.current_observation) ) - return [{"role": "system", "content": text}] - def build_step_prompt( + return messages + + def _build_first_turn_prompt(self, task_description: str) -> str: + """Build first-turn prompt text (identical for both modes).""" + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = ALFRED_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += f" You are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." + prompt += OUTPUT_TEMPLATE + + return prompt + + def _build_chat_subsequent_prompt( self, - observation: Observation, task_description: str, action_history: list[tuple[str, str]], - ) -> list[dict]: - if action_history: - history_lines = [] - for i, (action_name, feedback) in enumerate(action_history): - status = "OK" if "success" in feedback.lower() else "FAILED" - history_lines.append(f" Step {i+1}: {action_name} → {status} ({feedback})") - history_section = "## Previous Actions\n" + "\n".join(history_lines) - else: - history_section = "This is your first action. Start by observing the environment." + ) -> str: + """Build minimal subsequent-turn prompt for chat_history=True. - text = self.STEP_TEMPLATE.format( - task_description=task_description, - history_section=history_section, - ) + VLMPlanner lines 66-77: no system prompt, no examples. + Uses "The human instruction is:" (no "## Now the"). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + prompt = f'The human instruction is: {user_instruction}.' + prompt += '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + prompt += '\nStep {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + prompt += '\nStep {}, action id {}, {}'.format( + i, action_id, action_name, + ) + + prompt += f'''\n\n Considering the above interaction history and the current image state, to achieve the human instruction: '{user_instruction}', you are supposed to output in json. You need to describe current visual state from the image, summarize interaction history {'and environment feedback ' if self.use_feedback else ''}and reason why the last action or plan failed and did not finish the task, output your new plan to achieve the goal from current state. At the end, output the excutable plan with action ids(0 ~ {max_id}) from the available actions.''' + + prompt += OUTPUT_TEMPLATE + + return prompt + + # ---- Helpers ---- + + @staticmethod + def _wrap_as_user_message(prompt: str, observation) -> list[dict]: + """Wrap prompt text + observation image as a user message. - # Build interleaved content parts (text + image) - content_parts: list[dict] = [{"type": "text", "text": text}] - if observation.rgb_path: + Image BEFORE text (VLMPlanner line 127). + """ + content: list[dict] = [] + if observation and observation.rgb_path: image_url = _encode_image_base64(observation.rgb_path) if image_url: - content_parts.append({ + content.append({ "type": "image_url", "image_url": {"url": image_url}, }) + content.append({"type": "text", "text": prompt}) - return [{"role": "user", "content": content_parts}] + return [{"role": "user", "content": content}] diff --git a/easi/utils/json_repair.py b/easi/utils/json_repair.py new file mode 100644 index 0000000..7b054a4 --- /dev/null +++ b/easi/utils/json_repair.py @@ -0,0 +1,40 @@ +"""JSON repair for LLM output. Ported from EmbodiedBench planner_utils.py.""" +from __future__ import annotations + +import re + + +def fix_json(json_str: str) -> str: + """Fix common JSON errors in LLM output. + + Handles: + - Single quotes -> double quotes + - Broken contractions from quote replacement + - Markdown code fences + - Unescaped quotes inside reasoning_and_reflection value + """ + # Replace single quotes with double quotes + json_str = json_str.replace("'", '"') + # Fix contractions that got broken by quote replacement + json_str = json_str.replace('"s ', "'s ") + json_str = json_str.replace('"re ', "'re ") + json_str = json_str.replace('"ll ', "'ll ") + json_str = json_str.replace('"t ', "'t ") + json_str = json_str.replace('"d ', "'d ") + json_str = json_str.replace('"m ', "'m ") + json_str = json_str.replace('"ve ', "'ve ") + json_str = json_str.replace('```json', '').replace('```', '') + + # Fix unescaped double quotes inside reasoning_and_reflection value. + # Pattern: match from the key's opening quote to just before "language_plan". + pattern = r'("reasoning_and_reflection"\s*:\s*")(?P.*?)(?=",\s*"language_plan")' + + def replacer(match): + prefix = match.group(1) + value = match.group("value") + # Escape any double quote that is not already escaped. + fixed_value = re.sub(r'(? 0 - + assert agent._step_count == 1 agent.reset() - assert len(agent.chat_history) == 0 - - def test_chat_history_grows(self, agent): - obs = Observation(rgb_path="/tmp/rgb.png") - agent.act(obs, "test") - assert len(agent.chat_history) == 2 # user + assistant - - agent.act(obs, "test") - assert len(agent.chat_history) == 4 - - def test_chat_history_is_copy(self, agent): - obs = Observation(rgb_path="/tmp/rgb.png") - agent.act(obs, "test") - - history = agent.chat_history - history.clear() - assert len(agent.chat_history) == 2 # original unchanged + assert agent._step_count == 0 diff --git a/tests/test_ebalfred_task.py b/tests/test_ebalfred_task.py index 9bd6825..acdc44d 100644 --- a/tests/test_ebalfred_task.py +++ b/tests/test_ebalfred_task.py @@ -126,30 +126,42 @@ def test_split_specific_task_loading(self): class TestEBAlfredPromptBuilder: - def test_system_prompt_returns_messages(self): + def test_build_messages_first_turn(self): + """First turn: full system prompt in user message.""" from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder + from easi.core.memory import AgentMemory builder = EBAlfredPromptBuilder() - messages = builder.build_system_prompt( - action_space=get_global_action_space(), + actions = get_global_action_space() + memory = AgentMemory( task_description="Put a mug on the shelf.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), ) + messages = builder.build_messages(memory) assert isinstance(messages, list) - assert messages[0]["role"] == "system" - content = messages[0]["content"] - assert "find a" in content - assert "pick up" in content - assert "Put a mug on the shelf" in content - assert "household" in content.lower() - - def test_step_prompt_returns_messages_with_history(self): + assert messages[0]["role"] == "user" + text_content = messages[0]["content"][-1]["text"] + assert "You are a robot operating in a home" in text_content + # Action space should be initialized internally + assert builder.action_name_to_id("find a Cart") == 0 + + def test_build_messages_with_history(self): from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder + from easi.core.memory import AgentMemory + from easi.core.episode import Action builder = EBAlfredPromptBuilder() - obs = Observation(rgb_path="/tmp/rgb.png") - messages = builder.build_step_prompt( - observation=obs, + actions = get_global_action_space() + memory = AgentMemory( task_description="Put a mug on the shelf.", - action_history=[("find a Mug", "success"), ("pick up the Mug", "failed: not close enough")], + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), ) + obs = Observation(rgb_path="/tmp/rgb.png") + memory.record_step(obs, Action(action_name="find a Mug"), llm_response="r1") + memory.record_feedback("success") + memory.record_step(obs, Action(action_name="pick up the Mug"), llm_response="r2") + memory.record_feedback("failed: not close enough") + messages = builder.build_messages(memory) assert isinstance(messages, list) assert messages[0]["role"] == "user" text_content = "" @@ -157,7 +169,7 @@ def test_step_prompt_returns_messages_with_history(self): if part["type"] == "text": text_content += part["text"] assert "find a Mug" in text_content - assert "FAILED" in text_content + assert "failed: not close enough" in text_content def test_conforms_to_protocol(self): from easi.tasks.ebalfred.prompts import EBAlfredPromptBuilder diff --git a/tests/test_json_repair.py b/tests/test_json_repair.py new file mode 100644 index 0000000..f6dad8c --- /dev/null +++ b/tests/test_json_repair.py @@ -0,0 +1,76 @@ +"""Tests for JSON repair utility (ported from EmbodiedBench planner_utils).""" +import json + +import pytest + +from easi.utils.json_repair import fix_json + + +class TestFixJson: + def test_single_quotes_to_double(self): + s = "{'key': 'value'}" + result = fix_json(s) + assert '"key"' in result + assert '"value"' in result + + def test_contractions_preserved(self): + s = "{'text': \"it's a test and we're here\"}" + result = fix_json(s) + assert "'s" in result + assert "'re" in result + + def test_markdown_fences_stripped(self): + s = '```json\n{"key": "value"}\n```' + result = fix_json(s) + assert "```" not in result + data = json.loads(result) + assert data["key"] == "value" + + def test_unescaped_quotes_in_reasoning(self): + s = '{"reasoning_and_reflection": "He said "hello" to the robot", "language_plan": "go"}' + result = fix_json(s) + data = json.loads(result) + assert "language_plan" in data + + def test_valid_json_passthrough(self): + original = '{"key": "value", "num": 42}' + result = fix_json(original) + assert json.loads(result) == json.loads(original) + + def test_contraction_ll(self): + s = "{'text': \"I'll do it\"}" + result = fix_json(s) + assert "'ll" in result + + def test_contraction_t(self): + s = "{'text': \"don't stop\"}" + result = fix_json(s) + assert "'t" in result + + def test_contraction_d(self): + s = "{'text': \"I'd go\"}" + result = fix_json(s) + assert "'d" in result + + def test_contraction_m(self): + s = "{'text': \"I'm here\"}" + result = fix_json(s) + assert "'m" in result + + def test_contraction_ve(self): + s = "{'text': \"I've been\"}" + result = fix_json(s) + assert "'ve" in result + + def test_full_llm_output_with_single_quotes(self): + """Simulate a typical LLM output that uses single quotes.""" + s = """{'visual_state_description': 'I see a kitchen', 'reasoning_and_reflection': 'The robot hasn't found the mug yet', 'language_plan': 'Find the mug', 'executable_plan': [{'action_id': 14, 'action_name': 'find a Mug'}]}""" + result = fix_json(s) + data = json.loads(result) + assert data["executable_plan"][0]["action_id"] == 14 + assert data["executable_plan"][0]["action_name"] == "find a Mug" + + def test_backward_compat_import(self): + """Old import path still works via re-export.""" + from easi.tasks.ebalfred.json_repair import fix_json as old_fix_json + assert old_fix_json is fix_json diff --git a/tests/test_prompt_parity.py b/tests/test_prompt_parity.py new file mode 100644 index 0000000..1396d9f --- /dev/null +++ b/tests/test_prompt_parity.py @@ -0,0 +1,510 @@ +"""Tests verifying EBAlfredPromptBuilder produces prompts matching VLMPlanner.""" +import json + +import pytest + +from easi.core.episode import Action, Observation +from easi.core.memory import AgentMemory +from easi.tasks.ebalfred.actions import get_global_action_space +from easi.tasks.ebalfred.prompts import ( + ALFRED_SYSTEM_PROMPT, + OUTPUT_TEMPLATE, + EBAlfredPromptBuilder, +) + + +@pytest.fixture +def action_space(): + return get_global_action_space() + + +@pytest.fixture +def builder(action_space): + b = EBAlfredPromptBuilder(n_shot=10, split="base") + b.set_action_space(action_space) + return b + + +@pytest.fixture +def obs(tmp_path): + img = tmp_path / "test.png" + img.write_bytes(b'\x89PNG\r\n\x1a\n' + b'\x00' * 100) + return Observation(rgb_path=str(img)) + + +def _make_memory(action_space, obs, task="Put a mug on the shelf.", + steps=None): + """Helper to build AgentMemory with optional step history.""" + mem = AgentMemory( + task_description=task, + action_space=action_space, + current_observation=obs, + ) + if steps: + for action_name, feedback, llm_resp in steps: + mem.record_step(obs, Action(action_name=action_name), llm_response=llm_resp) + if feedback is not None: + mem.record_feedback(feedback) + return mem + + +class TestPromptParity: + def test_first_turn_contains_system_prompt_text(self, builder, obs, action_space): + """Full system prompt embedded in step prompt.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "You are a robot operating in a home" in text + assert "Action Descriptions and Validity Rules" in text + + def test_action_list_format(self, builder, obs, action_space): + """Action IDs in 'action id N: name' format.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "action id 0: find a Cart" in text + actions = get_global_action_space() + last_idx = len(actions) - 1 + assert f"action id {last_idx}: {actions[-1]}" in text + + def test_examples_included(self, builder, obs, action_space): + """10 few-shot examples present.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "Task Execution Example 0" in text + assert "Task Execution Example 9" in text + + def test_output_template_appended(self, builder, obs, action_space): + """VLMPlanner output template with field descriptions.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "visual_state_description" in text + assert "avoid using any contractions" in text + assert "action_id" in text + assert "action_name" in text + + def test_image_before_text(self, builder, obs, action_space): + """Image content part comes before text part.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + content = msgs[0]["content"] + assert content[0]["type"] == "image_url" + assert content[-1]["type"] == "text" + + def test_history_format_matches_vlmplanner(self, builder, obs, action_space): + """History uses 'Step N, action id ID, name, env feedback: ...'.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp"), + ]) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + alarm_id = builder.action_name_to_id("find a AlarmClock") + expected = f"Step 0, action id {alarm_id}, find a AlarmClock, env feedback: Last action executed successfully." + assert expected in text + + def test_instruction_rstrip_dot(self, builder, obs, action_space): + """Trailing period stripped from instruction.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "human instruction is: Put a mug on the shelf." in text + assert "Put a mug on the shelf.." not in text + + def test_long_horizon_uses_different_examples(self): + """long_horizon split loads from alfred_long_horizon_examples.json.""" + builder_lh = EBAlfredPromptBuilder(n_shot=10, split="long_horizon") + builder_base = EBAlfredPromptBuilder(n_shot=10, split="base") + assert builder_lh._examples != builder_base._examples + + def test_subsequent_turn_includes_full_prompt(self, builder, obs, action_space): + """Even with history, full system prompt + examples re-included (stateless).""" + mem = _make_memory(action_space, obs, steps=[ + ("find a Mug", "success", "resp"), + ]) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "You are a robot operating in a home" in text + assert "Action Descriptions and Validity Rules" in text + assert "Task Execution Example" in text + assert "action history:" in text + + def test_first_turn_instruction_format(self, builder, obs, action_space): + """First turn has specific instruction format from VLMPlanner.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "Now the human instruction is: Put a mug on the shelf." in text + assert "describe current visual state from the image" in text + + def test_subsequent_turn_reflection_prompt(self, builder, obs, action_space): + """Subsequent turns include reflection prompt from VLMPlanner.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a Mug", "success", "resp"), + ]) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "Considering the above interaction history" in text + assert "reason why the last action or plan failed" in text + + def test_guidelines_section(self, builder, obs, action_space): + """Guidelines section matches VLMPlanner system prompt.""" + mem = _make_memory(action_space, obs) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "Avoid generating empty plan" in text + assert "Prevent Repeating Action Sequences" in text + assert "Multiple Instances" in text + assert "Reflection on History and Feedback" in text + + def test_no_feedback_mode(self, obs): + """use_feedback=False omits env feedback from history.""" + builder = EBAlfredPromptBuilder(n_shot=10, split="base", use_feedback=False) + actions = get_global_action_space() + mem = _make_memory(actions, obs, task="test", steps=[ + ("find a Mug", "success", "resp"), + ]) + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "env feedback:" not in text + + def test_action_id_map(self, builder): + """Action ID map correctly maps names to indices.""" + assert builder.action_name_to_id("find a Cart") == 0 + assert builder.action_name_to_id("find a Potato") == 1 + assert builder.action_id_to_name(0) == "find a Cart" + + def test_n_shot_0_no_examples(self, obs): + """n_shot=0 produces no examples in prompt.""" + builder = EBAlfredPromptBuilder(n_shot=0, split="base") + actions = get_global_action_space() + mem = _make_memory(actions, obs, task="test") + msgs = builder.build_messages(mem) + text = msgs[0]["content"][-1]["text"] + assert "Task Execution Example" not in text + + +class TestStatelessAgent: + @pytest.fixture + def mock_llm(self): + class MockLLM: + def __init__(self): + self.call_count = 0 + self.last_messages = None + + def generate(self, messages): + self.call_count += 1 + self.last_messages = messages + return json.dumps({ + "visual_state_description": "I see a room.", + "reasoning_and_reflection": "I need to find the mug.", + "language_plan": "1. find a Mug", + "executable_plan": [ + {"action_id": 14, "action_name": "find a Mug"} + ], + }) + return MockLLM() + + def test_no_history_accumulation(self, mock_llm): + """Stateless builder: memory grows but prompt is always rebuilt from scratch.""" + from easi.agents.react_agent import ReActAgent + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=mock_llm, + action_space=actions, + prompt_builder=builder, + ) + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Put a mug on the shelf.") + agent.add_feedback("find a Mug", "success") + # Memory should have steps but builder rebuilds each turn + assert len(agent.memory.steps) == 1 + agent.act(obs, "Put a mug on the shelf.") + assert len(agent.memory.steps) == 2 + + def test_action_id_parsing(self, mock_llm): + """Parses {"action_id": int, "action_name": str} format.""" + from easi.agents.react_agent import ReActAgent + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=mock_llm, + action_space=actions, + prompt_builder=builder, + ) + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Put a mug on the shelf.") + assert action.action_name == "find a Mug" + + def test_update_action_space(self, mock_llm): + """Dynamic action space update works.""" + from easi.agents.react_agent import ReActAgent + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=mock_llm, + action_space=actions, + prompt_builder=builder, + ) + + new_actions = actions + ["find a Cabinet_2", "find a Cabinet_3"] + agent.update_action_space(new_actions) + assert "find a Cabinet_2" in agent.action_space + assert builder.action_name_to_id("find a Cabinet_2") is not None + + def test_buffer_cleared_on_invalid(self, mock_llm): + """'invalid' in feedback clears buffer.""" + from easi.agents.react_agent import ReActAgent + + # LLM returns multi-action plan + mock_llm.generate = lambda msgs: json.dumps({ + "executable_plan": [ + {"action_id": 14, "action_name": "find a Mug"}, + {"action_id": 0, "action_name": "find a Cart"}, + ], + }) + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=mock_llm, + action_space=actions, + prompt_builder=builder, + ) + + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "test") # returns find a Mug, buffers find a Cart + assert len(agent._action_buffer) == 1 + + agent.add_feedback("find a Mug", "invalid action") + assert len(agent._action_buffer) == 0 + + def test_json_repair_applied(self): + """JSON repair is applied via parse_response.""" + from easi.agents.react_agent import ReActAgent + + class MockLLMWithBadJson: + def generate(self, messages): + return "{'visual_state_description': 'room', 'reasoning_and_reflection': 'think', 'language_plan': 'plan', 'executable_plan': [{'action_id': 14, 'action_name': 'find a Mug'}]}" + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=MockLLMWithBadJson(), + action_space=actions, + prompt_builder=builder, + ) + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "test") + assert action.action_name == "find a Mug" + + def test_reset_clears_memory(self, mock_llm): + """Reset clears memory.""" + from easi.agents.react_agent import ReActAgent + + actions = get_global_action_space() + builder = EBAlfredPromptBuilder(n_shot=10, split="base") + agent = ReActAgent( + llm_client=mock_llm, + action_space=actions, + prompt_builder=builder, + ) + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "test") + assert len(agent.memory.steps) == 1 + agent.reset() + assert len(agent.memory.steps) == 0 + + +class TestChatHistoryMode: + """Tests for chat_history=True mode matching VLMPlanner.""" + + @pytest.fixture + def ch_builder(self, action_space): + b = EBAlfredPromptBuilder(n_shot=10, split="base", chat_history=True) + b.set_action_space(action_space) + return b + + def test_first_turn_same_as_stateless(self, ch_builder, obs, action_space): + """First turn prompt is identical for both modes.""" + stateless_builder = EBAlfredPromptBuilder(n_shot=10, split="base", chat_history=False) + stateless_builder.set_action_space(action_space) + + mem = _make_memory(action_space, obs) + ch_msgs = ch_builder.build_messages(mem) + st_msgs = stateless_builder.build_messages(mem) + + ch_text = ch_msgs[0]["content"][-1]["text"] + st_text = st_msgs[0]["content"][-1]["text"] + assert ch_text == st_text + + def test_subsequent_turn_no_system_prompt(self, ch_builder, obs, action_space): + """Subsequent turns do NOT contain 'You are a robot' system prompt.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + # Last message is the current turn + last_text = msgs[-1]["content"][-1]["text"] + assert "You are a robot operating in a home" not in last_text + + def test_subsequent_turn_no_examples(self, ch_builder, obs, action_space): + """Subsequent turns do NOT contain examples.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + last_text = msgs[-1]["content"][-1]["text"] + assert "Task Execution Example" not in last_text + + def test_subsequent_turn_instruction_prefix(self, ch_builder, obs, action_space): + """Subsequent turns use 'The human instruction is:' not '## Now the'.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + last_text = msgs[-1]["content"][-1]["text"] + assert "The human instruction is: Put a mug on the shelf." in last_text + assert "## Now the human instruction is" not in last_text + + def test_subsequent_turn_has_history(self, ch_builder, obs, action_space): + """Subsequent turns include action history.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + last_text = msgs[-1]["content"][-1]["text"] + alarm_id = ch_builder.action_name_to_id("find a AlarmClock") + assert f"Step 0, action id {alarm_id}, find a AlarmClock" in last_text + + def test_subsequent_turn_has_output_template(self, ch_builder, obs, action_space): + """Subsequent turns include OUTPUT_TEMPLATE.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + last_text = msgs[-1]["content"][-1]["text"] + assert "visual_state_description" in last_text + assert "avoid using any contractions" in last_text + + def test_subsequent_turn_has_reflection(self, ch_builder, obs, action_space): + """Subsequent turns include reflection prompt.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "Last action executed successfully.", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + last_text = msgs[-1]["content"][-1]["text"] + assert "Considering the above interaction history" in last_text + + def test_message_accumulation(self, ch_builder, obs, action_space): + """Messages grow with user/assistant pairs.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "success", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + # 1 past user + 1 past assistant + 1 current user = 3 + assert len(msgs) == 3 + assert msgs[0]["role"] == "user" + assert msgs[1]["role"] == "assistant" + assert msgs[2]["role"] == "user" + + # Add another step + mem2 = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "success", "resp1"), + ("find a Mug", "success", "resp2"), + ]) + msgs2 = ch_builder.build_messages(mem2) + # 2 past user + 2 past assistant + 1 current user = 5 + assert len(msgs2) == 5 + + def test_assistant_response_list_format(self, ch_builder, obs, action_space): + """Assistant response uses [{"type": "text", "text": ...}] format.""" + mem = _make_memory(action_space, obs, steps=[ + ("find a AlarmClock", "success", "resp1"), + ]) + msgs = ch_builder.build_messages(mem) + assistant_msg = msgs[1] + assert assistant_msg["role"] == "assistant" + assert isinstance(assistant_msg["content"], list) + assert assistant_msg["content"][0]["type"] == "text" + assert assistant_msg["content"][0]["text"] == "resp1" + + def test_buffered_steps_skipped_in_messages(self, ch_builder, obs, action_space): + """Steps with llm_response=None (buffered) don't produce user/assistant pairs.""" + mem = AgentMemory( + task_description="Put a mug on the shelf.", + action_space=action_space, + current_observation=obs, + ) + # Step 0: LLM call + mem.record_step(obs, Action(action_name="find a AlarmClock"), llm_response="resp1") + mem.record_feedback("success") + # Step 1: buffered (no LLM call) + mem.record_step(obs, Action(action_name="find a Mug"), llm_response=None) + mem.record_feedback("success") + + msgs = ch_builder.build_messages(mem) + # Only 1 past user/assistant pair (step 0), skip step 1, + 1 current user = 3 + assert len(msgs) == 3 + + +class TestParseResponse: + """Tests for EBAlfredPromptBuilder.parse_response.""" + + @pytest.fixture + def builder(self, action_space): + b = EBAlfredPromptBuilder(n_shot=10, split="base") + b.set_action_space(action_space) + return b + + def test_parse_valid_action_id_format(self, builder, action_space): + """Parses {"action_id": int, "action_name": str}.""" + mem = AgentMemory(action_space=action_space) + response = json.dumps({ + "executable_plan": [{"action_id": 14, "action_name": "find a Mug"}], + }) + actions = builder.parse_response(response, mem) + assert len(actions) == 1 + assert actions[0].action_name == "find a Mug" + + def test_parse_valid_action_format(self, builder, action_space): + """Parses {"action": str}.""" + mem = AgentMemory(action_space=action_space) + response = json.dumps({ + "executable_plan": [{"action": "find a Mug"}], + }) + actions = builder.parse_response(response, mem) + assert len(actions) == 1 + assert actions[0].action_name == "find a Mug" + + def test_parse_json_repair(self, builder, action_space): + """Single quotes are fixed by JSON repair.""" + mem = AgentMemory(action_space=action_space) + response = "{'executable_plan': [{'action_id': 14, 'action_name': 'find a Mug'}]}" + actions = builder.parse_response(response, mem) + assert len(actions) == 1 + assert actions[0].action_name == "find a Mug" + + def test_parse_invalid_action_stops(self, builder, action_space): + """Stops processing on first invalid action.""" + mem = AgentMemory(action_space=action_space) + response = json.dumps({ + "executable_plan": [ + {"action_id": 14, "action_name": "find a Mug"}, + {"action_id": 9999, "action_name": "fly to moon"}, + ], + }) + actions = builder.parse_response(response, mem) + assert len(actions) == 1 + assert actions[0].action_name == "find a Mug" + + def test_parse_invalid_json_returns_empty(self, builder, action_space): + """Completely invalid JSON returns empty list.""" + mem = AgentMemory(action_space=action_space) + actions = builder.parse_response("not json at all", mem) + assert actions == [] diff --git a/tests/test_react_agent.py b/tests/test_react_agent.py index fa77702..28724ed 100644 --- a/tests/test_react_agent.py +++ b/tests/test_react_agent.py @@ -1,11 +1,12 @@ """Tests for the ReAct agent and PromptBuilder protocol.""" -import base64 import json + import pytest -from easi.agents.prompt_builder import PromptBuilderProtocol, DefaultPromptBuilder +from easi.agents.prompt_builder import DefaultPromptBuilder, PromptBuilderProtocol from easi.agents.react_agent import ReActAgent from easi.core.episode import Action, Observation +from easi.core.memory import AgentMemory class MockLLMClient: @@ -25,75 +26,93 @@ def generate(self, messages): class TestDefaultPromptBuilder: - def test_build_system_prompt_returns_messages(self): + def test_build_messages_returns_system_and_user(self): builder = DefaultPromptBuilder() - messages = builder.build_system_prompt( - action_space=["MoveAhead", "Stop"], + memory = AgentMemory( task_description="Go to the kitchen.", + action_space=["MoveAhead", "Stop"], + current_observation=Observation(rgb_path="/tmp/rgb.png"), ) - # Decision #10: returns OpenAI message format + messages = builder.build_messages(memory) assert isinstance(messages, list) assert messages[0]["role"] == "system" - content = messages[0]["content"] - assert "MoveAhead" in content - assert "JSON" in content + assert "MoveAhead" in messages[0]["content"] + assert "JSON" in messages[0]["content"] + assert messages[1]["role"] == "user" - def test_build_step_prompt_returns_messages(self): - obs = Observation(rgb_path="/tmp/rgb.png") - builder = DefaultPromptBuilder() - messages = builder.build_step_prompt( - observation=obs, - task_description="Go to the kitchen.", - action_history=[], - ) - # Decision #10: returns list of OpenAI message dicts - assert isinstance(messages, list) - assert messages[0]["role"] == "user" - # Content should be a list with text + image parts - content = messages[0]["content"] - assert isinstance(content, list) - text_parts = [p for p in content if p["type"] == "text"] - assert len(text_parts) >= 1 - - def test_build_step_prompt_includes_image(self, tmp_path): - # Create a real image file + def test_build_messages_includes_image(self, tmp_path): img_path = tmp_path / "test.png" img_path.write_bytes(b'\x89PNG\r\n\x1a\n' + b'\x00' * 100) - obs = Observation(rgb_path=str(img_path)) builder = DefaultPromptBuilder() - messages = builder.build_step_prompt( - observation=obs, + memory = AgentMemory( task_description="Go to the kitchen.", - action_history=[], + action_space=["MoveAhead", "Stop"], + current_observation=Observation(rgb_path=str(img_path)), ) - content = messages[0]["content"] + messages = builder.build_messages(memory) + content = messages[1]["content"] image_parts = [p for p in content if p["type"] == "image_url"] assert len(image_parts) == 1 assert image_parts[0]["image_url"]["url"].startswith("data:image/png;base64,") - def test_build_step_prompt_with_history(self): - obs = Observation(rgb_path="/tmp/rgb.png") + def test_build_messages_with_history(self): builder = DefaultPromptBuilder() - messages = builder.build_step_prompt( - observation=obs, + memory = AgentMemory( task_description="Go to the kitchen.", - action_history=[("MoveAhead", "success"), ("TurnLeft", "failed")], + action_space=["MoveAhead", "TurnLeft", "Stop"], + current_observation=Observation(rgb_path="/tmp/rgb.png"), ) + obs = Observation(rgb_path="/tmp/rgb.png") + memory.record_step(obs, Action(action_name="MoveAhead"), llm_response="r1") + memory.record_feedback("success") + memory.record_step(obs, Action(action_name="TurnLeft"), llm_response="r2") + memory.record_feedback("failed") + messages = builder.build_messages(memory) text_content = "" - for part in messages[0]["content"]: + for part in messages[1]["content"]: if part["type"] == "text": text_content += part["text"] assert "MoveAhead" in text_content assert "TurnLeft" in text_content + def test_parse_response_valid(self): + builder = DefaultPromptBuilder() + memory = AgentMemory(action_space=["MoveAhead", "TurnLeft", "Stop"]) + response = json.dumps({ + "executable_plan": [{"action": "MoveAhead"}, {"action": "TurnLeft"}], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "MoveAhead" + assert actions[1].action_name == "TurnLeft" + + def test_parse_response_invalid_json(self): + builder = DefaultPromptBuilder() + memory = AgentMemory(action_space=["MoveAhead", "Stop"]) + actions = builder.parse_response("not json", memory) + assert actions == [] + + def test_parse_response_invalid_action(self): + builder = DefaultPromptBuilder() + memory = AgentMemory(action_space=["MoveAhead", "Stop"]) + response = json.dumps({ + "executable_plan": [{"action": "FlyToMoon"}], + }) + actions = builder.parse_response(response, memory) + assert actions == [] + class CustomPromptBuilder: """A custom prompt builder for testing the delegation pattern.""" - def build_system_prompt(self, action_space, task_description): - return [{"role": "system", "content": f"CUSTOM SYSTEM: {task_description}"}] + def build_messages(self, memory): + return [ + {"role": "system", "content": f"CUSTOM SYSTEM: {memory.task_description}"}, + {"role": "user", "content": f"CUSTOM STEP: steps={len(memory.steps)}"}, + ] - def build_step_prompt(self, observation, task_description, action_history): - return [{"role": "user", "content": f"CUSTOM STEP: history_len={len(action_history)}"}] + def parse_response(self, llm_response, memory): + data = json.loads(llm_response) + return [Action(action_name=e["action"]) for e in data.get("executable_plan", [])] class TestReActAgent: @@ -137,23 +156,16 @@ def test_calls_llm_once(self, agent): agent.act(obs, "Go to the goal.") assert agent.llm_client.call_count == 1 - def test_chat_history_has_system_prompt(self, agent): - obs = Observation(rgb_path="/tmp/rgb.png") - agent.act(obs, "Go to the goal.") - history = agent.chat_history - assert history[0]["role"] == "system" - def test_default_prompt_builder_used(self, agent): assert isinstance(agent.prompt_builder, DefaultPromptBuilder) def test_custom_prompt_builder(self, custom_agent): obs = Observation(rgb_path="/tmp/rgb.png") custom_agent.act(obs, "Go to the goal.") - history = custom_agent.chat_history - assert history[0]["role"] == "system" - assert "CUSTOM SYSTEM:" in history[0]["content"] + # Agent should have recorded the step in memory + assert len(custom_agent.memory.steps) == 1 - # --- Decision #9: Action buffering tests --- + # --- Action buffering tests --- def test_multi_action_buffer(self, multi_action_agent): """LLM returns 3 actions; first act() returns first, subsequent act()s @@ -162,30 +174,29 @@ def test_multi_action_buffer(self, multi_action_agent): a1 = multi_action_agent.act(obs, "Go to the goal.") assert a1.action_name == "MoveAhead" - assert multi_action_agent.llm_client.call_count == 1 # LLM called + assert multi_action_agent.llm_client.call_count == 1 multi_action_agent.add_feedback("MoveAhead", "success") a2 = multi_action_agent.act(obs, "Go to the goal.") assert a2.action_name == "TurnLeft" - assert multi_action_agent.llm_client.call_count == 1 # NOT called again + assert multi_action_agent.llm_client.call_count == 1 multi_action_agent.add_feedback("TurnLeft", "success") a3 = multi_action_agent.act(obs, "Go to the goal.") assert a3.action_name == "MoveAhead" - assert multi_action_agent.llm_client.call_count == 1 # Still NOT called + assert multi_action_agent.llm_client.call_count == 1 def test_buffer_cleared_on_failure(self, multi_action_agent): """When add_feedback reports failure, buffer is cleared. Next act() re-queries LLM.""" obs = Observation(rgb_path="/tmp/rgb.png") - multi_action_agent.act(obs, "Go to the goal.") # returns MoveAhead, buffers [TurnLeft, MoveAhead] + multi_action_agent.act(obs, "Go to the goal.") assert multi_action_agent.llm_client.call_count == 1 multi_action_agent.add_feedback("MoveAhead", "failed: obstacle ahead") - # Buffer should be cleared - multi_action_agent.act(obs, "Go to the goal.") # should re-query LLM + multi_action_agent.act(obs, "Go to the goal.") assert multi_action_agent.llm_client.call_count == 2 def test_buffer_empty_after_all_consumed(self, multi_action_agent): @@ -200,12 +211,11 @@ def test_buffer_empty_after_all_consumed(self, multi_action_agent): multi_action_agent.add_feedback("MoveAhead", "success") assert multi_action_agent.llm_client.call_count == 1 - # Buffer exhausted — next call should query LLM multi_action_agent.act(obs, "Go to the goal.") assert multi_action_agent.llm_client.call_count == 2 def test_parse_error_returns_stop(self): - """When LLM returns invalid JSON, agent returns Stop (no buffering).""" + """When LLM returns invalid JSON, agent returns Stop.""" llm = type('MockLLM', (), {'generate': lambda self, m: 'not json at all'})() agent = ReActAgent( llm_client=llm, @@ -214,7 +224,7 @@ def test_parse_error_returns_stop(self): obs = Observation(rgb_path="/tmp/rgb.png") action = agent.act(obs, "Go to the goal.") assert action.action_name == "Stop" - assert not agent._action_buffer # buffer empty + assert not agent._action_buffer def test_invalid_action_name_fallback(self): """When LLM returns action not in action_space, fallback to Stop.""" @@ -227,10 +237,23 @@ def test_invalid_action_name_fallback(self): action = agent.act(obs, "Go to the goal.") assert action.action_name == "Stop" - def test_reset_clears_buffer_and_history(self, multi_action_agent): + def test_reset_clears_buffer_and_memory(self, multi_action_agent): obs = Observation(rgb_path="/tmp/rgb.png") multi_action_agent.act(obs, "Go to the goal.") multi_action_agent.reset() - assert len(multi_action_agent.chat_history) == 0 + assert len(multi_action_agent.memory.steps) == 0 assert len(multi_action_agent._action_buffer) == 0 - assert len(multi_action_agent._action_feedback) == 0 + + def test_memory_records_steps(self, agent): + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go to the goal.") + assert len(agent.memory.steps) == 1 + assert agent.memory.steps[0].action.action_name == "MoveAhead" + assert agent.memory.steps[0].llm_response is not None + + def test_buffered_steps_have_no_llm_response(self, multi_action_agent): + obs = Observation(rgb_path="/tmp/rgb.png") + multi_action_agent.act(obs, "Go to the goal.") + multi_action_agent.add_feedback("MoveAhead", "success") + multi_action_agent.act(obs, "Go to the goal.") # buffered + assert multi_action_agent.memory.steps[1].llm_response is None From ad58088facc69b9a814cc31151d00014f20c8cc8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 12:19:18 +0800 Subject: [PATCH 017/239] [Refactor] Add response_format pass-through for structured LLM output Builder-owned schema enforcement: prompt builders can now optionally implement get_response_format() to provide a JSON schema dict that gets passed through to litellm. ReActAgent handles fallback automatically when the backend doesn't support response_format. - LLMClient.generate() accepts optional response_format param - ReActAgent._generate_with_fallback() tries schema, caches on failure - EBAlfredPromptBuilder.get_response_format() returns vlm_generation_guide - Remove dead code: instructor dep, Pydantic schemas, monkey-patching --- easi/agents/prompt_builder.py | 13 ++++ easi/agents/react_agent.py | 57 ++++++++++++++- easi/evaluation/runner.py | 15 ---- easi/llm/client.py | 60 +++------------ easi/llm/schemas.py | 36 --------- easi/tasks/ebalfred/prompts.py | 59 +++++++++++++++ pyproject.toml | 1 - tests/test_llm_client.py | 49 ++++++++----- tests/test_llm_full_flow.py | 18 ----- tests/test_llm_imports.py | 6 -- tests/test_llm_schemas.py | 57 --------------- tests/test_prompt_parity.py | 33 +++++++++ tests/test_react_agent.py | 129 ++++++++++++++++++++++++++++++++- 13 files changed, 329 insertions(+), 204 deletions(-) delete mode 100644 easi/llm/schemas.py delete mode 100644 tests/test_llm_schemas.py diff --git a/easi/agents/prompt_builder.py b/easi/agents/prompt_builder.py index 0c36a91..d7280e3 100644 --- a/easi/agents/prompt_builder.py +++ b/easi/agents/prompt_builder.py @@ -51,6 +51,19 @@ class PromptBuilderProtocol(Protocol): Implementations are referenced in task.yaml via: agent: prompt_builder: "easi.tasks.my_task.prompts.MyPromptBuilder" + + Required methods: + build_messages(memory) -> list[dict] + parse_response(llm_response, memory) -> list[Action] + + Optional methods: + get_response_format(memory) -> dict | None + Return a response_format dict for API-level JSON enforcement. + E.g. {"type": "json_schema", "json_schema": {"name": "...", "schema": {...}}} + When provided, the agent passes it to LLMClient.generate(). + If the backend doesn't support it, the agent falls back to + prompt-only (the template is already in the messages). + Builders that don't implement this get no schema enforcement. """ def build_messages(self, memory: AgentMemory) -> list[dict]: diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py index b4c4f2d..87bf1a8 100644 --- a/easi/agents/react_agent.py +++ b/easi/agents/react_agent.py @@ -15,6 +15,26 @@ logger = get_logger(__name__) +def _format_messages_for_log(messages: list[dict]) -> str: + """Extract readable text from OpenAI-format messages for logging.""" + parts = [] + for msg in messages: + role = msg.get("role", "?") + content = msg.get("content", "") + if isinstance(content, str): + text = content + elif isinstance(content, list): + text_parts = [p.get("text", "") for p in content if p.get("type") == "text"] + n_images = sum(1 for p in content if p.get("type") == "image_url") + text = "".join(text_parts) + if n_images: + text = f"[{n_images} image(s)]\n{text}" + else: + text = str(content) + parts.append(f"--- {role} ---\n{text}") + return "\n".join(parts) + + class ReActAgent(BaseAgent): """ReAct agent with action buffering and pluggable prompt building. @@ -37,6 +57,7 @@ def __init__( self.prompt_builder: PromptBuilderProtocol = prompt_builder or DefaultPromptBuilder() self.memory = AgentMemory(action_space=self.action_space) self._action_buffer: list[Action] = [] + self._supports_response_format: bool | None = None # None = unknown def reset(self) -> None: super().reset() @@ -67,7 +88,19 @@ def act(self, observation: Observation, task_description: str) -> Action: self.memory.task_description = task_description messages = self.prompt_builder.build_messages(self.memory) - response = self.llm_client.generate(messages) + + logger.trace("Step %d prompt (%d messages):\n%s", + self._step_count + 1, len(messages), + _format_messages_for_log(messages)) + + # Query builder for response_format (optional method) + get_rf = getattr(self.prompt_builder, 'get_response_format', None) + response_format = get_rf(self.memory) if get_rf else None + + response = self._generate_with_fallback(messages, response_format) + + logger.trace("Step %d LLM response:\n%s", + self._step_count + 1, response) actions = self.prompt_builder.parse_response(response, self.memory) if not actions: @@ -100,3 +133,25 @@ def _fallback_action(self) -> Action: if "Stop" in self.action_space: return Action(action_name="Stop") return Action(action_name=self.action_space[0]) + + def _generate_with_fallback( + self, messages: list[dict], response_format: dict | None, + ) -> str: + """Call LLM with optional response_format, falling back on failure. + + If response_format is provided and the backend doesn't support it, + the failure is caught, cached, and retried without response_format. + The prompt template is already in messages, so fallback always works. + """ + if response_format is None or self._supports_response_format is False: + return self.llm_client.generate(messages) + + try: + return self.llm_client.generate(messages, response_format=response_format) + except Exception as e: + logger.warning( + "response_format not supported by backend, " + "falling back to prompt-only: %s", e, + ) + self._supports_response_format = False + return self.llm_client.generate(messages) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 3d0ca8d..d971373 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -327,21 +327,6 @@ def _create_agent(self, action_space: list[str], task_config: dict, base_url=base_url, **client_kwargs, ) - - # Wrap for structured output if configured - schema_class_name = agent_config.get("response_schema") - if schema_class_name: - import json as _json - SchemaClass = import_class(schema_class_name) - - def _structured_generate(messages): - result = llm.generate_structured(messages, response_model=SchemaClass) - actions = result.get_actions() - return _json.dumps({ - "executable_plan": [{"action": a} for a in actions] - }) - - llm.generate = _structured_generate else: # Legacy path: existing LLMApiClient from easi.llm.api_client import LLMApiClient diff --git a/easi/llm/client.py b/easi/llm/client.py index 2c371fa..e50ed94 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -1,8 +1,7 @@ -"""Unified LLM client wrapping LiteLLM + Instructor. +"""Unified LLM client wrapping LiteLLM. -Provides two generation modes: -- generate(): returns raw text (backward-compatible with LLMApiClient) -- generate_structured(): returns a validated Pydantic model (via Instructor) +Provides text generation with optional response_format pass-through +for API-level JSON schema enforcement. Usage tracking is cumulative — call get_usage() to snapshot, reset_usage() between episodes. """ @@ -10,31 +9,26 @@ from typing import Any -from pydantic import BaseModel - from easi.utils.logging import get_logger logger = get_logger(__name__) -# Lazy imports to avoid requiring litellm/instructor when not needed. +# Lazy imports to avoid requiring litellm when not needed. litellm = None -instructor = None def _ensure_imports() -> None: - """Import litellm and instructor on first use.""" - global litellm, instructor + """Import litellm on first use.""" + global litellm if litellm is None: try: import litellm as _litellm - import instructor as _instructor except ImportError as e: raise ImportError( - "LLMClient requires litellm and instructor. " + "LLMClient requires litellm. " "Install with: pip install easi[llm]" ) from e litellm = _litellm - instructor = _instructor # Suppress litellm's verbose logging litellm.suppress_debug_info = True @@ -58,7 +52,7 @@ def __init__( "cost_usd": 0.0, } - def generate(self, messages: list[dict]) -> str: + def generate(self, messages: list[dict], response_format: dict | None = None) -> str: """Generate text completion. Drop-in for LLMApiClient.generate().""" _ensure_imports() @@ -69,6 +63,8 @@ def generate(self, messages: list[dict]) -> str: } if self.base_url: call_kwargs["api_base"] = self.base_url + if response_format is not None: + call_kwargs["response_format"] = response_format logger.trace("LLM call: model=%s, messages=%d", self.model, len(messages)) response = litellm.completion(**call_kwargs) @@ -78,42 +74,6 @@ def generate(self, messages: list[dict]) -> str: logger.trace("LLM response: %s", content[:200] if content else "") return content - def generate_structured( - self, - messages: list[dict], - response_model: type[BaseModel], - ) -> BaseModel: - """Generate structured output validated against a Pydantic model.""" - _ensure_imports() - - client = instructor.from_litellm(litellm.completion) - - call_kwargs: dict[str, Any] = { - "model": self.model, - "messages": messages, - "response_model": response_model, - "max_retries": 2, - **self.default_kwargs, - } - if self.base_url: - call_kwargs["api_base"] = self.base_url - - logger.trace( - "LLM structured call: model=%s, schema=%s", - self.model, response_model.__name__, - ) - result = client.chat.completions.create(**call_kwargs) - - # Track usage from the raw response attached by instructor - raw = getattr(result, "_raw_response", None) - if raw is not None: - self._track_usage(raw) - else: - # Fallback: at minimum count the call - self._usage["num_calls"] += 1 - - return result - def get_usage(self) -> dict: """Return cumulative usage stats (copy).""" return dict(self._usage) diff --git a/easi/llm/schemas.py b/easi/llm/schemas.py deleted file mode 100644 index 30bd230..0000000 --- a/easi/llm/schemas.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Pydantic response schemas for structured LLM output. - -Each task can define its own schema extending BaseResponseSchema. -The schema's get_actions() method normalizes task-specific fields -into a standard list of action strings. -""" -from __future__ import annotations - -from pydantic import BaseModel - - -class BaseResponseSchema(BaseModel): - """Base class for all LLM response schemas. - - Subclasses MUST implement get_actions() to normalize their - task-specific fields into a list of action strings. - """ - - def get_actions(self) -> list[str]: - raise NotImplementedError - - -class ExecutableAction(BaseModel): - """A single action in an executable plan.""" - - action: str - - -class ActionPlanResponse(BaseResponseSchema): - """Default structured response for ReAct agents.""" - - reasoning: str - executable_plan: list[ExecutableAction] - - def get_actions(self) -> list[str]: - return [a.action for a in self.executable_plan] diff --git a/easi/tasks/ebalfred/prompts.py b/easi/tasks/ebalfred/prompts.py index f515945..b54f124 100644 --- a/easi/tasks/ebalfred/prompts.py +++ b/easi/tasks/ebalfred/prompts.py @@ -65,6 +65,56 @@ !!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!. ''' +# JSON schema matching EmbodiedBench's vlm_generation_guide from +# embodiedbench/planner/planner_config/generation_guide.py +EBALFRED_RESPONSE_SCHEMA = { + "type": "json_schema", + "json_schema": { + "name": "embodied_planning", + "schema": { + "type": "object", + "properties": { + "visual_state_description": { + "type": "string", + "description": "Description of current state from the visual image", + }, + "reasoning_and_reflection": { + "type": "string", + "description": "summarize the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task", + }, + "language_plan": { + "type": "string", + "description": "The list of actions to achieve the user instruction. Each action is started by the step number and the action name", + }, + "executable_plan": { + "type": "array", + "description": "A list of actions needed to achieve the user instruction, with each action having an action ID and a name. Do not output empty list.", + "items": { + "type": "object", + "properties": { + "action_id": { + "type": "integer", + "description": "The action ID to select from the available actions given by the prompt", + }, + "action_name": { + "type": "string", + "description": "The name of the action", + }, + }, + "required": ["action_id", "action_name"], + }, + }, + }, + "required": [ + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + ], + }, + }, +} + _CONFIG_DIR = Path(__file__).parent / "config" @@ -182,6 +232,15 @@ def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action] return actions + def get_response_format(self, memory: AgentMemory) -> dict: + """Return JSON schema for API-level enforcement. + + Matches EmbodiedBench's vlm_generation_guide. The OUTPUT_TEMPLATE + is always in the prompt as a fallback for backends that don't + support response_format. + """ + return EBALFRED_RESPONSE_SCHEMA + # ---- Stateless mode (chat_history=False) ---- def _build_stateless_messages(self, memory: AgentMemory) -> list[dict]: diff --git a/pyproject.toml b/pyproject.toml index 50a23a8..12a51c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,6 @@ dev = [ ] llm = [ "litellm>=1.40", - "instructor>=1.0", ] [project.scripts] diff --git a/tests/test_llm_client.py b/tests/test_llm_client.py index 2bb26fd..7922499 100644 --- a/tests/test_llm_client.py +++ b/tests/test_llm_client.py @@ -107,31 +107,44 @@ def test_generate_passes_base_url(self, mock_litellm): call_kwargs = mock_litellm.completion.call_args assert call_kwargs.kwargs.get("api_base") == "http://localhost:8080/v1" - -class TestLLMClientGenerateStructured: - @patch("easi.llm.client.instructor") @patch("easi.llm.client.litellm") - def test_generate_structured_returns_model(self, mock_litellm, mock_instructor): + def test_generate_passes_response_format(self, mock_litellm): from easi.llm.client import LLMClient - from easi.llm.schemas import ActionPlanResponse - expected = ActionPlanResponse( - reasoning="I see a mug", - executable_plan=[{"action": "find a Mug"}], - ) + mock_choice = MagicMock() + mock_choice.message.content = '{"executable_plan": [{"action": "Stop"}]}' + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + rf = {"type": "json_schema", "json_schema": {"name": "test", "schema": {"type": "object"}}} + client = LLMClient(model="openai/gpt-4o") + client.generate([{"role": "user", "content": "test"}], response_format=rf) - mock_client = MagicMock() - mock_client.chat.completions.create.return_value = expected - mock_instructor.from_litellm.return_value = mock_client + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("response_format") == rf + + @patch("easi.llm.client.litellm") + def test_generate_omits_response_format_when_none(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 client = LLMClient(model="openai/gpt-4o") - result = client.generate_structured( - [{"role": "user", "content": "test"}], - response_model=ActionPlanResponse, - ) + client.generate([{"role": "user", "content": "test"}]) - assert isinstance(result, ActionPlanResponse) - assert result.get_actions() == ["find a Mug"] + call_kwargs = mock_litellm.completion.call_args + assert "response_format" not in call_kwargs.kwargs class TestLLMClientProtocolCompat: diff --git a/tests/test_llm_full_flow.py b/tests/test_llm_full_flow.py index 28031ce..20cff21 100644 --- a/tests/test_llm_full_flow.py +++ b/tests/test_llm_full_flow.py @@ -48,21 +48,3 @@ def test_client_generate_and_track(self, mock_litellm): client.reset_usage() assert client.get_usage()["num_calls"] == 0 - def test_schema_normalization(self): - from easi.llm.schemas import ActionPlanResponse - - resp = ActionPlanResponse( - reasoning="I should find the apple", - executable_plan=[ - {"action": "find a Apple"}, - {"action": "pick up the Apple"}, - {"action": "clean the Apple"}, - ], - ) - actions = resp.get_actions() - normalized = json.dumps({ - "executable_plan": [{"action": a} for a in actions] - }) - data = json.loads(normalized) - assert len(data["executable_plan"]) == 3 - assert data["executable_plan"][0]["action"] == "find a Apple" diff --git a/tests/test_llm_imports.py b/tests/test_llm_imports.py index 3ccb602..1436ee1 100644 --- a/tests/test_llm_imports.py +++ b/tests/test_llm_imports.py @@ -6,12 +6,6 @@ def test_import_llm_client(self): from easi.llm.client import LLMClient assert LLMClient is not None - def test_import_schemas(self): - from easi.llm.schemas import BaseResponseSchema, ActionPlanResponse, ExecutableAction - assert BaseResponseSchema is not None - assert ActionPlanResponse is not None - assert ExecutableAction is not None - def test_import_server_manager(self): from easi.llm.server_manager import ServerManager assert ServerManager is not None diff --git a/tests/test_llm_schemas.py b/tests/test_llm_schemas.py deleted file mode 100644 index 2195c2a..0000000 --- a/tests/test_llm_schemas.py +++ /dev/null @@ -1,57 +0,0 @@ -"""Tests for LLM response schemas.""" -import json -import pytest -from pydantic import BaseModel - - -class TestBaseResponseSchema: - def test_base_schema_get_actions_raises(self): - from easi.llm.schemas import BaseResponseSchema - - class Bare(BaseResponseSchema): - pass - - with pytest.raises(NotImplementedError): - Bare().get_actions() - - def test_base_schema_is_pydantic_model(self): - from easi.llm.schemas import BaseResponseSchema - assert issubclass(BaseResponseSchema, BaseModel) - - -class TestActionPlanResponse: - def test_get_actions_returns_list_of_strings(self): - from easi.llm.schemas import ActionPlanResponse - - resp = ActionPlanResponse( - reasoning="I see a mug", - executable_plan=[ - {"action": "find a Mug"}, - {"action": "pick up the Mug"}, - ], - ) - assert resp.get_actions() == ["find a Mug", "pick up the Mug"] - - def test_empty_plan(self): - from easi.llm.schemas import ActionPlanResponse - - resp = ActionPlanResponse(reasoning="nothing to do", executable_plan=[]) - assert resp.get_actions() == [] - - def test_roundtrip_json(self): - from easi.llm.schemas import ActionPlanResponse - - resp = ActionPlanResponse( - reasoning="test", - executable_plan=[{"action": "Stop"}], - ) - data = json.loads(resp.model_dump_json()) - assert data["executable_plan"][0]["action"] == "Stop" - - -class TestExecutableAction: - def test_action_field(self): - from easi.llm.schemas import ExecutableAction - - a = ExecutableAction(action="MoveAhead") - assert a.action == "MoveAhead" diff --git a/tests/test_prompt_parity.py b/tests/test_prompt_parity.py index 1396d9f..c2a55e1 100644 --- a/tests/test_prompt_parity.py +++ b/tests/test_prompt_parity.py @@ -508,3 +508,36 @@ def test_parse_invalid_json_returns_empty(self, builder, action_space): mem = AgentMemory(action_space=action_space) actions = builder.parse_response("not json at all", mem) assert actions == [] + + +class TestGetResponseFormat: + """Test that get_response_format returns correct schema.""" + + def test_returns_json_schema_dict(self): + builder = EBAlfredPromptBuilder(n_shot=1, split="base") + builder.set_action_space(["find a Mug", "pick up the Mug", "Stop"]) + memory = AgentMemory( + action_space=["find a Mug", "pick up the Mug", "Stop"], + ) + rf = builder.get_response_format(memory) + assert rf["type"] == "json_schema" + assert rf["json_schema"]["name"] == "embodied_planning" + schema = rf["json_schema"]["schema"] + assert "executable_plan" in schema["properties"] + assert schema["properties"]["executable_plan"]["type"] == "array" + items = schema["properties"]["executable_plan"]["items"] + assert "action_id" in items["properties"] + assert "action_name" in items["properties"] + + def test_schema_matches_vlm_generation_guide(self): + """Verify our schema has the same required fields as EmbodiedBench.""" + from easi.tasks.ebalfred.prompts import EBALFRED_RESPONSE_SCHEMA + schema = EBALFRED_RESPONSE_SCHEMA["json_schema"]["schema"] + assert set(schema["required"]) == { + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + } + items_required = set(schema["properties"]["executable_plan"]["items"]["required"]) + assert items_required == {"action_id", "action_name"} diff --git a/tests/test_react_agent.py b/tests/test_react_agent.py index 28724ed..a55e24d 100644 --- a/tests/test_react_agent.py +++ b/tests/test_react_agent.py @@ -14,9 +14,11 @@ class MockLLMClient: def __init__(self, actions=None): self.actions = actions or [{"action": "MoveAhead"}] self.call_count = 0 + self.last_response_format = None - def generate(self, messages): + def generate(self, messages, response_format=None): self.call_count += 1 + self.last_response_format = response_format return json.dumps({ "observation": "I see a room.", "reasoning": "I should move forward.", @@ -216,7 +218,7 @@ def test_buffer_empty_after_all_consumed(self, multi_action_agent): def test_parse_error_returns_stop(self): """When LLM returns invalid JSON, agent returns Stop.""" - llm = type('MockLLM', (), {'generate': lambda self, m: 'not json at all'})() + llm = type('MockLLM', (), {'generate': lambda self, m, response_format=None: 'not json at all'})() agent = ReActAgent( llm_client=llm, action_space=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], @@ -257,3 +259,126 @@ def test_buffered_steps_have_no_llm_response(self, multi_action_agent): multi_action_agent.add_feedback("MoveAhead", "success") multi_action_agent.act(obs, "Go to the goal.") # buffered assert multi_action_agent.memory.steps[1].llm_response is None + + +_SENTINEL = object() + + +class SchemaPromptBuilder: + """Builder that provides a response_format schema.""" + def __init__(self, schema=_SENTINEL): + self._schema = {"type": "json_object"} if schema is _SENTINEL else schema + + def build_messages(self, memory): + return [{"role": "user", "content": "test"}] + + def parse_response(self, llm_response, memory): + data = json.loads(llm_response) + return [Action(action_name=e["action"]) for e in data.get("executable_plan", [])] + + def get_response_format(self, memory): + return self._schema + + +class TestResponseFormatFallback: + def test_response_format_passed_when_builder_provides_it(self): + """When builder has get_response_format(), it's passed to generate().""" + llm = MockLLMClient([{"action": "MoveAhead"}]) + schema = {"type": "json_schema", "json_schema": {"name": "test", "schema": {"type": "object"}}} + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "Stop"], + prompt_builder=SchemaPromptBuilder(schema=schema), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go.") + assert llm.last_response_format == schema + + def test_no_response_format_when_builder_lacks_method(self): + """When builder doesn't have get_response_format(), no response_format is passed.""" + llm = MockLLMClient([{"action": "MoveAhead"}]) + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "Stop"], + prompt_builder=CustomPromptBuilder(), # no get_response_format + ) + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go.") + assert llm.last_response_format is None + + def test_fallback_on_exception(self): + """When generate() raises with response_format, agent retries without it.""" + call_log = [] + + class FailOnSchemaLLM: + call_count = 0 + last_response_format = None + + def generate(self, messages, response_format=None): + self.call_count += 1 + call_log.append(response_format) + if response_format is not None: + raise Exception("response_format not supported") + return json.dumps({ + "executable_plan": [{"action": "MoveAhead"}], + }) + + llm = FailOnSchemaLLM() + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "Stop"], + prompt_builder=SchemaPromptBuilder(), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + action = agent.act(obs, "Go.") + + assert action.action_name == "MoveAhead" + assert llm.call_count == 2 # first with schema (failed), second without + assert call_log[0] is not None # first call had schema + assert call_log[1] is None # second call without schema + + def test_fallback_cached_after_first_failure(self): + """After first failure, subsequent calls skip response_format entirely.""" + call_log = [] + + class FailOnSchemaLLM: + call_count = 0 + + def generate(self, messages, response_format=None): + self.call_count += 1 + call_log.append(response_format) + if response_format is not None: + raise Exception("not supported") + return json.dumps({ + "executable_plan": [{"action": "MoveAhead"}], + }) + + llm = FailOnSchemaLLM() + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "Stop"], + prompt_builder=SchemaPromptBuilder(), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + + # First call: tries with schema, fails, retries without = 2 calls + agent.act(obs, "Go.") + assert llm.call_count == 2 + + # Second call: skips schema entirely = 1 call + agent.add_feedback("MoveAhead", "success") + agent.act(obs, "Go.") + assert llm.call_count == 3 # only 1 more call, not 2 + assert call_log[2] is None # went straight to no-schema + + def test_response_format_none_returns_none(self): + """Builder returning None means no response_format enforcement.""" + llm = MockLLMClient([{"action": "MoveAhead"}]) + agent = ReActAgent( + llm_client=llm, + action_space=["MoveAhead", "Stop"], + prompt_builder=SchemaPromptBuilder(schema=None), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + agent.act(obs, "Go.") + assert llm.last_response_format is None From 33aa6206ddc0b7bdcef71ffeeb0d88f5289b3498 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 12:27:20 +0800 Subject: [PATCH 018/239] [Fix] Upated task yaml for ebalfred --- easi/tasks/ebalfred/bridge.py | 12 ++++++++++++ easi/tasks/ebalfred/config/alfred_examples.json | 12 ++++++++++++ .../config/alfred_long_horizon_examples.json | 9 +++++++++ easi/tasks/ebalfred/ebalfred_base.yaml | 1 + easi/tasks/ebalfred/ebalfred_common_sense.yaml | 1 + .../tasks/ebalfred/ebalfred_complex_instruction.yaml | 1 + easi/tasks/ebalfred/ebalfred_long_horizon.yaml | 3 ++- easi/tasks/ebalfred/ebalfred_spatial.yaml | 1 + easi/tasks/ebalfred/ebalfred_visual_appearance.yaml | 1 + 9 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 easi/tasks/ebalfred/config/alfred_examples.json create mode 100644 easi/tasks/ebalfred/config/alfred_long_horizon_examples.json diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py index f5a2468..297f832 100644 --- a/easi/tasks/ebalfred/bridge.py +++ b/easi/tasks/ebalfred/bridge.py @@ -13,6 +13,7 @@ from __future__ import annotations +import json import sys from pathlib import Path @@ -66,6 +67,17 @@ def _extract_info(self, info): "feedback": str(info.get("env_feedback", "")), } + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Override to include dynamic action space in reset response metadata.""" + response = super()._make_response(obs, reward, done, info) + # After reset, env.language_skill_set contains the per-episode + # dynamic action space (global actions + scene-specific instances). + if self.env is not None and hasattr(self.env, 'language_skill_set'): + response["observation"]["metadata"]["dynamic_action_space"] = json.dumps( + self.env.language_skill_set + ) + return response + if __name__ == "__main__": EBAlfredBridge.main() diff --git a/easi/tasks/ebalfred/config/alfred_examples.json b/easi/tasks/ebalfred/config/alfred_examples.json new file mode 100644 index 0000000..dfef5ab --- /dev/null +++ b/easi/tasks/ebalfred/config/alfred_examples.json @@ -0,0 +1,12 @@ +[ + "Human instruction: Pick up the alarm clock and turn on the lamp.\nOutput: {\n'language_plan': 'First, locate the alarm clock in the room. Once found, carefully pick up the alarm clock. Next, identify the location of the desk lamp. After locating the desk lamp, proceed to turn it on.',\n'executable_plan': [\n{\"action_id\": 57, \"action_name\": \"find a AlarmClock\"}\n{\"action_id\": 98, \"action_name\": \"pick up the AlarmClock\"}\n{\"action_id\": 63, \"action_name\": \"find a DeskLamp\"}\n{\"action_id\": 151, \"action_name\": \"turn on the DeskLamp\"}\n]}", + "Human instruction: Examine a credit card by the light of a tall lamp.\nOutput: {\n'language_plan': 'Start by locating the credit card in the room. Once you have found the credit card, proceed to pick it up. Then, search for the floor lamp and find its location. After finding the floor lamp, turn it on to illuminate the area so you can examine the credit card effectively.',\n'executable_plan': [\n{\"action_id\": 56, \"action_name\": \"find a CreditCard\"}\n{\"action_id\": 96, \"action_name\": \"pick up the CreditCard\"}\n{\"action_id\": 27, \"action_name\": \"find a FloorLamp\"}\n{\"action_id\": 153, \"action_name\": \"turn on the FloorLamp\"}\n]}", + "Human instruction: Use lamp light to look at the remote.\nOutput: {\n'language_plan': 'First, locate the remote control in the room. Once the remote control is found, pick it up carefully. Next, search for the floor lamp and determine its location. After you have located the floor lamp, turn it on to provide sufficient light for examining the remote control.',\n'executable_plan': [\n{\"action_id\": 68, \"action_name\": \"find a RemoteControl\"}\n{\"action_id\": 116, \"action_name\": \"pick up the RemoteControl\"}\n{\"action_id\": 27, \"action_name\": \"find a FloorLamp\"}\n{\"action_id\": 153, \"action_name\": \"turn on the FloorLamp\"}\n]}", + "Human instruction: Set the box on the table.\nOutput: {\n'language_plan': 'First, locate the box within the room. After finding the box, gently pick it up. Next, search for the dining table and identify its location. Once the dining table is found, place the box on the table carefully.',\n'executable_plan': [\n{\"action_id\": 61, \"action_name\": \"find a Box\"}\n{\"action_id\": 103, \"action_name\": \"pick up the Box\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Place a heated slice of tomato in the kitchen sink.\nOutput: {\n'language_plan': 'Find a butter knife and pick it up, locate a tomato and slice it. Find a sink and put down the knife. Locate a slice of tomato and pick it up, find a microwave, and open it. Place the tomato slice inside and close the microwave. Turn on the microwave to heat the tomato slice, then turn off the microwave and open it. Pick up the heated tomato slice, close the microwave, locate the kitchen sink, and place the heated tomato slice in the sink.',\n'executable_plan': [\n{\"action_id\": 36, \"action_name\": \"find a ButterKnife\"}\n{\"action_id\": 130, \"action_name\": \"pick up the ButterKnife\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 159, \"action_name\": \"slice the Tomato\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Move the towel on the hanger into the cabinet.\nOutput: {\n'language_plan': 'Begin by locating the hand towel on the hanger. Once you have found the hand towel, proceed to pick it up. Next, search for the cabinet and identify its location. After finding the cabinet, open it. Place the hand towel inside the cabinet, and finally, close the cabinet door.',\n'executable_plan': [\n{\"action_id\": 9, \"action_name\": \"find a HandTowel\"}\n{\"action_id\": 89, \"action_name\": \"pick up the HandTowel\"}\n{\"action_id\": 48, \"action_name\": \"find a Cabinet\"}\n{\"action_id\": 145, \"action_name\": \"open the Cabinet\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 146, \"action_name\": \"close the Cabinet\"}\n]}", + "Human instruction: Place the microwaved slice of apple on to the white table.\nOutput: {\n'language_plan': 'Locate an apple and pick it up, find a dining table and put the apple down, look for a knife and pick it up, find another apple and slice it, find the dining table and put the knife down, locate an apple and pick it up, search for a microwave and open it, put the apple in the microwave and close it, turn on the microwave to heat the apple slice, turn off the microwave and open it, pick up the microwaved apple slice, close the microwave, find the white table, and place the microwaved apple slice on the white table.',\n'executable_plan': [\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 160, \"action_name\": \"slice the Apple\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: slice a loaf of bread put a slice on the counter.\nOutput: {\n'language_plan': 'First locate a knife and pick it up, find a loaf of bread, and slice the bread. Find a cabinet, open it, and put the knife inside, then close the cabinet. Find a slice of bread, pick it up, find the countertop, and place the slice of bread on the counter.',\n'executable_plan': [\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 53, \"action_name\": \"find a Bread\"}\n{\"action_id\": 161, \"action_name\": \"slice the Bread\"}\n{\"action_id\": 48, \"action_name\": \"find a Cabinet\"}\n{\"action_id\": 145, \"action_name\": \"open the Cabinet\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 146, \"action_name\": \"close the Cabinet\"}\n{\"action_id\": 53, \"action_name\": \"find a Bread\"}\n{\"action_id\": 92, \"action_name\": \"pick up the Bread\"}\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 53, \"action_name\": \"find a Bread\"}\n{\"action_id\": 92, \"action_name\": \"pick up the Bread\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 39, \"action_name\": \"find a CounterTop\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Put a clean pan in the refrigerator.\nOutput: {\n'language_plan': 'Locate a pan and pick it up, find a sink, and put the pan down in the sink. Find a faucet, turn it on to clean the pan, and then turn it off. Pick up the cleaned pan, find the refrigerator, open the refrigerator, place the pan inside, and close the refrigerator.',\n'executable_plan': [\n{\"action_id\": 7, \"action_name\": \"find a Pan\"}\n{\"action_id\": 86, \"action_name\": \"pick up the Pan\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 2, \"action_name\": \"find a Faucet\"}\n{\"action_id\": 155, \"action_name\": \"turn on the Faucet\"}\n{\"action_id\": 156, \"action_name\": \"turn off the Faucet\"}\n{\"action_id\": 7, \"action_name\": \"find a Pan\"}\n{\"action_id\": 86, \"action_name\": \"pick up the Pan\"}\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n]}", + "Human instruction: Put a box from the couch with a phone in it on the black desk.\nOutput: {\n'language_plan': 'First, find the phone, pick it up, locate the box on the couch, place the phone inside the box, pick up the box, find the black desk, and place the box on the desk.',\n'executable_plan': [\n{\"action_id\": 12, \"action_name\": \"find a CellPhone\"}\n{\"action_id\": 93, \"action_name\": \"pick up the CellPhone\"}\n{\"action_id\": 61, \"action_name\": \"find a Box\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 103, \"action_name\": \"pick up the Box\"}\n{\"action_id\": 49, \"action_name\": \"find a Desk\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/config/alfred_long_horizon_examples.json b/easi/tasks/ebalfred/config/alfred_long_horizon_examples.json new file mode 100644 index 0000000..ed53e53 --- /dev/null +++ b/easi/tasks/ebalfred/config/alfred_long_horizon_examples.json @@ -0,0 +1,9 @@ +[ + "Human instruction: Place the microwaved slice of apple on to the white table.\nOutput: {\n'language_plan': 'Locate an apple and pick it up, find a dining table and put the apple down, look for a knife and pick it up, find the apple and slice it. After slicing, I need to find a place like the dining table to put the knife down. After that, find an apple slice and pick it up, search for a microwave and open it, put the apple in the microwave and close it, turn on the microwave to heat the apple slice, turn off the microwave and open it, pick up the microwaved apple slice, close the microwave, find the white table, and place the microwaved apple slice on the white table.',\n'executable_plan': [\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 160, \"action_name\": \"slice the Apple\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 18, \"action_name\": \"find a DiningTable\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Place a heated slice of tomato in the kitchen sink.\nOutput: {\n'language_plan': 'First, I can use both a knife or a butter knife to slice the tomato. So, I find a butter knife and pick it up, locate a tomato and slice it. After slicing, I need to put down the knife. So I find a sink and put down the knife. Locate a slice of tomato and pick it up, find a microwave, and open it. Place the tomato slice inside and close the microwave. Turn on the microwave to heat the tomato slice, then turn off the microwave and open it. Pick up the heated tomato slice, close the microwave, locate the kitchen sink, and place the heated tomato slice in the sink.',\n'executable_plan': [\n{\"action_id\": 36, \"action_name\": \"find a ButterKnife\"}\n{\"action_id\": 130, \"action_name\": \"pick up the ButterKnife\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 159, \"action_name\": \"slice the Tomato\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Chill a potato in the refrigerator, prepare cook it in the microwave.\nOutput: {\n'language_plan': 'First locate a potato and pick it up, find the refrigerator, open it, and place the potato inside to chill. Close the refrigerator. After chilling, open the refrigerator again, find the potato, and pick it up. Close the refrigerator, find the microwave, open it, place the potato inside, and close the microwave to prepare it for cooking.',\n'executable_plan': [\n{\"action_id\": 1, \"action_name\": \"find a Potato\"}\n{\"action_id\": 81, \"action_name\": \"pick up the Potato\"}\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 1, \"action_name\": \"find a Potato\"}\n{\"action_id\": 81, \"action_name\": \"pick up the Potato\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n]}", + "Human instruction: Heat up a potato and place it in the blue bin.\nOutput: {\n'language_plan': 'Locate the fridge and open it, find a potato inside and pick it up, then close the fridge. Find the microwave and open it, place the potato inside, and close the microwave. Turn on the microwave to heat the potato and turn it off after heating. Open the microwave and pick up the heated potato. Close the microwave, locate the blue bin, and place the heated potato in the blue bin.',\n'executable_plan': [\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 1, \"action_name\": \"find a Potato\"}\n{\"action_id\": 81, \"action_name\": \"pick up the Potato\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 1, \"action_name\": \"find a Potato\"}\n{\"action_id\": 81, \"action_name\": \"pick up the Potato\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 40, \"action_name\": \"find a GarbageCan\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Transfer a tomato slice cooked in the microwave to the sink.\nOutput: {\n'language_plan': 'To achieve the goal, I need to find a knife and pick it up. Then, find a tomato and slice it. Since I cannot pick tomato when holding the knife, I need to put the knife at some place to keep safe. So I find a sink and put it down. Then I come back to find the sliced tomato and pick it up. Next, find the microwave and open it, put tomato slice down, and close it. After that, turn on the microwave, wait for sometime and turn off and open it. Find the tomato slice, pick it up, and close the microwave. Find a sink and put it down.',\n'executable_plan': [\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 159, \"action_name\": \"slice the Tomato\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 149, \"action_name\": \"turn on the Microwave\"}\n{\"action_id\": 150, \"action_name\": \"turn off the Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 35, \"action_name\": \"find a Tomato\"}\n{\"action_id\": 129, \"action_name\": \"pick up the Tomato\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n{\"action_id\": 79, \"action_name\": \"find a Sink\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Slice some lettuce and cool it in the refrigerator so you can put it on the counter top.\nOutput: {\n'language_plan': 'First, find a knife and pick it up, then locate a lettuce and slice it. Since I'm holding a knife, I need to put down the knife on the counter top for safety. Next, find the sliced lettuce and pick it up. Locate the fridge, open it, and place the lettuce inside to cool. After cooling, open the fridge, find the lettuce, and pick it up. Close the fridge, then find the counter top and put the lettuce down on it.',\n'executable_plan': [\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 55, \"action_name\": \"find a Lettuce\"}\n{\"action_id\": 158, \"action_name\": \"slice the Lettuce\"}\n{\"action_id\": 39, \"action_name\": \"find a CounterTop\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 55, \"action_name\": \"find a Lettuce\"}\n{\"action_id\": 95, \"action_name\": \"pick up the Lettuce\"}\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 55, \"action_name\": \"find a Lettuce\"}\n{\"action_id\": 95, \"action_name\": \"pick up the Lettuce\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 39, \"action_name\": \"find a CounterTop\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n]}", + "Human instruction: Put a chilled slice of apple in the microwave.\nOutput: {\n'language_plan': 'Firstly, locate the knife and pick it up, then find an apple and slice it. Before picking anything, I need to put down the knife on the counter top for safe handling. Find the apple slice, pick it up, and then find the fridge. Open the fridge, place the apple slice inside, and close the fridge to chill it. After chilling, open the fridge, find the apple slice, and pick it up. Close the fridge, locate the microwave, open it, and place the apple slice inside, then close the microwave.',\n'executable_plan': [\n{\"action_id\": 34, \"action_name\": \"find a Knife\"}\n{\"action_id\": 127, \"action_name\": \"pick up the Knife\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 160, \"action_name\": \"slice the Apple\"}\n{\"action_id\": 39, \"action_name\": \"find a CounterTop\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 78, \"action_name\": \"find a Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 139, \"action_name\": \"open the Fridge\"}\n{\"action_id\": 22, \"action_name\": \"find a Apple\"}\n{\"action_id\": 107, \"action_name\": \"pick up the Apple\"}\n{\"action_id\": 140, \"action_name\": \"close the Fridge\"}\n{\"action_id\": 38, \"action_name\": \"find a Microwave\"}\n{\"action_id\": 143, \"action_name\": \"open the Microwave\"}\n{\"action_id\": 133, \"action_name\": \"put down the object in hand\"}\n{\"action_id\": 144, \"action_name\": \"close the Microwave\"}\n]}" +] \ No newline at end of file diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index f5b2cbf..dc684d1 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -26,3 +26,4 @@ agent: n_shot: 10 split: "base" use_feedback: true + chat_history: false diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 38fc17e..3ada24a 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -26,3 +26,4 @@ agent: n_shot: 10 split: "base" use_feedback: true + chat_history: false diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index e4b7d53..7d54154 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -26,3 +26,4 @@ agent: n_shot: 10 split: "base" use_feedback: true + chat_history: false diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 55d93e4..0efb2fa 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -23,6 +23,7 @@ simulator_configs: agent: prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" prompt_builder_kwargs: - n_shot: 10 + n_shot: 7 split: "long_horizon" use_feedback: true + chat_history: true diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index a860616..f190d0d 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -26,3 +26,4 @@ agent: n_shot: 10 split: "base" use_feedback: true + chat_history: false diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index d997eb6..4c7311f 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -26,3 +26,4 @@ agent: n_shot: 10 split: "base" use_feedback: true + chat_history: false From ed77434cd0a1420c781e563dc927e687c0023923 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 12:38:58 +0800 Subject: [PATCH 019/239] [Refactor] Move dynamic_action_space handling from runner to task hook Add BaseTask.on_episode_reset() hook for task-specific post-reset setup. EBAlfredTask overrides it to update agent action space from bridge metadata, removing EB-Alfred-specific logic from the general EvaluationRunner. --- easi/core/base_task.py | 13 +++++++++++++ easi/evaluation/runner.py | 7 ++----- easi/tasks/ebalfred/task.py | 8 ++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 6c2068e..afb6ea4 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -74,6 +74,19 @@ def evaluate_episode( """ ... + # --- Hooks --- + + def on_episode_reset(self, observation, agent) -> None: + """Called after simulator reset, before the agent-simulator loop. + + Override in subclasses to perform task-specific setup, e.g. updating + the agent's action space from bridge metadata. + + Args: + observation: The initial observation from sim.reset(). + agent: The agent instance (may have update_action_space, etc.). + """ + # --- Shared implementation --- def get_bridge_script_path(self) -> Path | None: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index d971373..243dc37 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -191,11 +191,8 @@ def _run_episode( episode_output_dir=str(episode_dir), ) - # Propagate dynamic action space from bridge (e.g., EB-Alfred per-episode actions) - dynamic_actions_json = observation.metadata.get("dynamic_action_space") - if dynamic_actions_json and hasattr(agent, 'update_action_space'): - dynamic_actions = json.loads(dynamic_actions_json) - agent.update_action_space(dynamic_actions) + # Task-specific post-reset setup (e.g., per-episode action space) + task.on_episode_reset(observation, agent) # Write reset entry to trajectory trajectory_path = episode_dir / "trajectory.jsonl" diff --git a/easi/tasks/ebalfred/task.py b/easi/tasks/ebalfred/task.py index 5771f65..607af66 100644 --- a/easi/tasks/ebalfred/task.py +++ b/easi/tasks/ebalfred/task.py @@ -13,6 +13,7 @@ """ from __future__ import annotations +import json from pathlib import Path from easi.core.base_task import BaseTask @@ -37,6 +38,13 @@ def get_bridge_script_path(self) -> Path: """Return path to the EB-Alfred-specific bridge script.""" return Path(__file__).parent / "bridge.py" + def on_episode_reset(self, observation, agent) -> None: + """Update agent action space from per-episode bridge metadata.""" + dynamic_actions_json = observation.metadata.get("dynamic_action_space") + if dynamic_actions_json and hasattr(agent, 'update_action_space'): + dynamic_actions = json.loads(dynamic_actions_json) + agent.update_action_space(dynamic_actions) + def get_instruction(self, episode: dict) -> str: """EB-Alfred uses 'instruction' field from HF row.""" return episode.get("instruction", self.name) From 4483419052b70a448fd0acee835ebf93b5bcff7b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 13:11:28 +0800 Subject: [PATCH 020/239] [Feat] Enrich run outputs with LLM responses, instruction, and full config - trajectory.jsonl: add llm_response field to each step entry - result.json: add instruction field for each episode - config.json: include all CLI options and full task YAML config --- easi/evaluation/runner.py | 28 ++++++++++++++++++++++------ tests/test_e2e_evaluation.py | 11 +++++++---- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 243dc37..619d070 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -120,14 +120,23 @@ def run(self, max_episodes: int | None = None) -> list[dict]: # Save run config config = { - "task_name": self.task_name, - "agent_type": self.agent_type, - "agent_seed": self.agent_seed, "run_id": self.run_id, - "max_episodes": max_episodes, "total_episodes": len(episodes), - "backend": backend, - "model": self.model, + "cli_options": { + "task_name": self.task_name, + "agent_type": self.agent_type, + "output_dir": str(self.output_dir), + "data_dir": str(self.data_dir), + "max_episodes": max_episodes, + "llm_base_url": self.llm_base_url, + "agent_seed": self.agent_seed, + "backend": self.backend, + "model": self.model, + "port": self.port, + "llm_kwargs_raw": self.llm_kwargs_raw, + }, + "resolved_backend": backend, + "task_config": task._config, } (run_dir / "config.json").write_text(json.dumps(config, indent=2)) @@ -216,11 +225,17 @@ def _run_episode( step_result = sim.step(action) trajectory.append(step_result) + # Get LLM response from agent memory (None for buffered actions) + llm_response = None + if hasattr(agent, 'memory') and agent.memory.steps: + llm_response = agent.memory.steps[-1].llm_response + # Write step entry to trajectory self._write_trajectory_entry(trajectory_path, { "step": step + 1, "type": "step", "action": action.action_name, + "llm_response": llm_response, "rgb_path": Path(step_result.observation.rgb_path).name, "agent_pose": step_result.observation.agent_pose, "reward": step_result.reward, @@ -246,6 +261,7 @@ def _run_episode( # Evaluate metrics = task.evaluate_episode(episode, trajectory) metrics["episode_id"] = episode_id + metrics["instruction"] = task_description metrics["elapsed_seconds"] = round(elapsed, 2) # Snapshot LLM usage for this episode diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index f1e7c4c..f55979d 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -161,11 +161,14 @@ def test_config_json_saved(self, tmp_path): run_dir = _find_run_dir(output_dir) config = json.loads((run_dir / "config.json").read_text()) - assert config["task_name"] == "dummy_task" - assert config["agent_type"] == "dummy" - assert config["agent_seed"] == 42 - assert config["max_episodes"] == 1 + assert config["cli_options"]["task_name"] == "dummy_task" + assert config["cli_options"]["agent_type"] == "dummy" + assert config["cli_options"]["agent_seed"] == 42 + assert config["cli_options"]["max_episodes"] == 1 assert "run_id" in config + # Task YAML config is included + assert "task_config" in config + assert config["task_config"]["name"] == "dummy_task" def test_trajectory_jsonl_format(self, tmp_path): """Verify trajectory.jsonl has correct format.""" From c8648b3f66feacf24e0bb4983b8ed1d95859b33e Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 19:41:05 +0800 Subject: [PATCH 021/239] [Feat] Add retry and resume support for evaluation runs Retry: LLMClient passes num_retries to litellm.completion() for automatic exponential backoff on transient errors (timeouts, rate limits). Configurable via --max-retries (default 3). Resume: --resume loads config.json from a previous run, skips completed episodes, clears and re-runs the last episode (which may have been interrupted), then continues the remaining episodes. All CLI options are restored from config.json so only --resume is needed. --- docs/plans/2026-02-15-retry-resume-design.md | 137 ++++ docs/plans/2026-02-15-retry-resume-plan.md | 661 +++++++++++++++++++ easi/cli.py | 55 +- easi/evaluation/runner.py | 50 +- easi/llm/client.py | 3 + tests/test_e2e_evaluation.py | 213 ++++++ tests/test_llm_client.py | 50 ++ 7 files changed, 1164 insertions(+), 5 deletions(-) create mode 100644 docs/plans/2026-02-15-retry-resume-design.md create mode 100644 docs/plans/2026-02-15-retry-resume-plan.md diff --git a/docs/plans/2026-02-15-retry-resume-design.md b/docs/plans/2026-02-15-retry-resume-design.md new file mode 100644 index 0000000..ce8404c --- /dev/null +++ b/docs/plans/2026-02-15-retry-resume-design.md @@ -0,0 +1,137 @@ +# Retry & Resume Design + +## Goal + +Make evaluation runs resilient to transient LLM errors (timeouts, rate limits) and resumable after crashes. + +## Feature 1: Adaptive Retry + +Use LiteLLM's built-in `num_retries` parameter. LiteLLM uses tenacity internally for exponential backoff with jitter, and retries on `Timeout`, `RateLimitError`, `APIConnectionError`, and `InternalServerError`. + +### LLMClient + +`LLMClient.__init__` gains a `num_retries` parameter (default 3). It's passed through to `litellm.completion()`: + +```python +class LLMClient: + def __init__(self, model, base_url=None, num_retries=3, **kwargs): + self.num_retries = num_retries + ... + + def generate(self, messages, response_format=None): + call_kwargs = { + "model": self.model, + "messages": messages, + "num_retries": self.num_retries, + **self.default_kwargs, + } + ... +``` + +### CLI + +Add `--max-retries` (default 3) to `easi run`. Passed through: CLI -> `EvaluationRunner` -> `LLMClient(num_retries=...)`. + +### EvaluationRunner + +`__init__` gains `max_retries: int = 3`. In `_create_agent()`, passes it to `LLMClient`. + +## Feature 2: Resume + +Allow `--resume ` to continue a crashed run from where it left off. + +### How it works + +1. **Load existing config**: Read `config.json` from the resume dir. Validate `task_name` matches. +2. **Scan completed episodes**: Glob `episodes/*/result.json`. Each existing `result.json` = completed episode. Parse them into `all_results`. +3. **Re-run last completed episode**: The last episode may have been cut off mid-way. Pop it from `all_results`, clear its directory (delete `result.json`, `trajectory.jsonl`, `step_*.png`), and re-run it from scratch. +4. **Skip earlier episodes**: Start the episode loop from `len(all_results)` instead of 0. +5. **Reuse run_dir**: Don't create a new `run_id`. Write to the same directory. + +### _load_completed_results + +```python +def _load_completed_results(self, run_dir: Path) -> list[dict]: + episodes_dir = run_dir / "episodes" + result_files = sorted(episodes_dir.glob("*/result.json")) + + if not result_files: + return [] + + # Load all completed results except the last + all_results = [] + for rf in result_files[:-1]: + all_results.append(json.loads(rf.read_text())) + + # Clean the last episode directory for re-run + last_episode_dir = result_files[-1].parent + for f in last_episode_dir.iterdir(): + f.unlink() + + return all_results +``` + +### run() changes + +```python +def run(self, max_episodes=None): + if self.resume_dir: + run_dir = self.resume_dir + all_results = self._load_completed_results(run_dir) + start_index = len(all_results) + else: + run_dir = self.output_dir / self.task_name / self.run_id + all_results = [] + start_index = 0 + + ... + for i, episode in enumerate(episodes): + if i < start_index: + continue + ... +``` + +### CLI + +Add `--resume ` to `easi run`. Passed to `EvaluationRunner(resume_dir=...)`. + +### Example + +```bash +# First run — crashes at episode 15 +easi run ebalfred_base --agent react --backend openai --model gpt-4o + +# Resume — skips episodes 0-13, re-runs 14 (cleared), continues 15-49 +easi run ebalfred_base --agent react --backend openai --model gpt-4o \ + --resume logs/ebalfred_base/20260215_164200/ +``` + +## Files Changed + +| File | Change | +|---|---| +| `easi/llm/client.py` | Add `num_retries` param, pass to `litellm.completion()` | +| `easi/evaluation/runner.py` | Add `max_retries`, `resume_dir` params. Add `_load_completed_results()`. Modify `run()` for resume. | +| `easi/cli.py` | Add `--max-retries` (default 3) and `--resume` (path) flags | +| `tests/test_llm_client.py` | Test `num_retries` pass-through | +| `tests/test_e2e_evaluation.py` | Test resume: run 3 episodes, simulate crash, resume skips completed, re-runs last | + +## Data Flow + +``` +CLI --max-retries 3 --resume logs/ebalfred_base/20260215_164200/ + | + v +EvaluationRunner(max_retries=3, resume_dir=Path(...)) + | + +---> _load_completed_results(run_dir) + | scan episodes/*/result.json + | load results [0..N-2] + | clear episode dir [N-1] + | return results, start_index = N-1 + | + +---> _create_agent(...) + | LLMClient(num_retries=3) + | + +---> episode loop: skip i < start_index, run rest normally +``` diff --git a/docs/plans/2026-02-15-retry-resume-plan.md b/docs/plans/2026-02-15-retry-resume-plan.md new file mode 100644 index 0000000..d4e5090 --- /dev/null +++ b/docs/plans/2026-02-15-retry-resume-plan.md @@ -0,0 +1,661 @@ +# Retry & Resume Implementation Plan + +> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** Make evaluation runs resilient to transient LLM errors and resumable after crashes. + +**Architecture:** Two independent features wired through CLI → EvaluationRunner → LLMClient. Retry uses LiteLLM's built-in `num_retries` parameter (exponential backoff with jitter). Resume scans existing `result.json` files to skip completed episodes. + +**Tech Stack:** Python, LiteLLM (`num_retries`), pytest, argparse + +**Design doc:** `docs/plans/2026-02-15-retry-resume-design.md` + +--- + +### Task 1: Add `num_retries` to LLMClient + +**Files:** +- Modify: `easi/llm/client.py:39-47` (constructor), `easi/llm/client.py:59-63` (generate call_kwargs) +- Test: `tests/test_llm_client.py` + +**Step 1: Write the failing tests** + +Add to `tests/test_llm_client.py`: + +```python +class TestLLMClientRetries: + def test_default_num_retries(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/gpt-4o") + assert client.num_retries == 3 + + def test_custom_num_retries(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/gpt-4o", num_retries=5) + assert client.num_retries == 5 + + @patch("easi.llm.client.litellm") + def test_num_retries_passed_to_litellm(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + client = LLMClient(model="openai/gpt-4o", num_retries=7) + client.generate([{"role": "user", "content": "hi"}]) + + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("num_retries") == 7 + + @patch("easi.llm.client.litellm") + def test_zero_retries_passed_through(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + client = LLMClient(model="openai/gpt-4o", num_retries=0) + client.generate([{"role": "user", "content": "hi"}]) + + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("num_retries") == 0 +``` + +**Step 2: Run tests to verify they fail** + +Run: `.venv/bin/pytest tests/test_llm_client.py::TestLLMClientRetries -v` +Expected: FAIL — `LLMClient` has no `num_retries` attribute + +**Step 3: Implement** + +In `easi/llm/client.py`, modify the constructor (lines 39-47): + +```python +def __init__( + self, + model: str, + base_url: str | None = None, + num_retries: int = 3, + **kwargs: Any, +): + self.model = model + self.base_url = base_url + self.num_retries = num_retries + self.default_kwargs = kwargs + self._usage = { + "prompt_tokens": 0, + "completion_tokens": 0, + "num_calls": 0, + "cost_usd": 0.0, + } +``` + +In `generate()` (lines 59-63), add `num_retries` to `call_kwargs`: + +```python +call_kwargs: dict[str, Any] = { + "model": self.model, + "messages": messages, + "num_retries": self.num_retries, + **self.default_kwargs, +} +``` + +**Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_llm_client.py -v` +Expected: ALL PASS (existing + new) + +**Step 5: Commit** + +```bash +git add easi/llm/client.py tests/test_llm_client.py +git commit -m "feat: add num_retries to LLMClient for LiteLLM retry support" +``` + +--- + +### Task 2: Wire `max_retries` through EvaluationRunner + +**Files:** +- Modify: `easi/evaluation/runner.py:47-69` (constructor), `easi/evaluation/runner.py:338-342` (LLMClient instantiation) +- Test: `tests/test_e2e_evaluation.py` + +**Step 1: Write the failing test** + +Add to `tests/test_e2e_evaluation.py`: + +```python +def test_max_retries_stored(self, tmp_path): + """Verify max_retries is stored and appears in config.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=5, + ) + assert runner.max_retries == 5 + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + config = json.loads((run_dir / "config.json").read_text()) + assert config["cli_options"]["max_retries"] == 5 +``` + +**Step 2: Run test to verify it fails** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestE2EEvaluation::test_max_retries_stored -v` +Expected: FAIL — `EvaluationRunner.__init__()` got unexpected keyword `max_retries` + +**Step 3: Implement** + +In `easi/evaluation/runner.py`, add `max_retries` to constructor (line 59, after `port`): + +```python +def __init__( + self, + task_name: str, + agent_type: str = "dummy", + output_dir: Path | str = "./logs", + data_dir: Path | str = "./datasets", + llm_base_url: str | None = None, + agent_seed: int | None = None, + backend: str | None = None, + model: str = "default", + port: int = 8080, + llm_kwargs_raw: str | None = None, + max_retries: int = 3, +): + ... + self.max_retries = max_retries + ... +``` + +Add `max_retries` to the config dict in `run()` (inside `cli_options`): + +```python +"max_retries": self.max_retries, +``` + +In `_create_agent()`, pass `num_retries` to `LLMClient` (around line 338): + +```python +llm = LLMClient( + model=litellm_model, + base_url=base_url, + num_retries=self.max_retries, + **client_kwargs, +) +``` + +**Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` +Expected: ALL PASS + +**Step 5: Commit** + +```bash +git add easi/evaluation/runner.py tests/test_e2e_evaluation.py +git commit -m "feat: wire max_retries through EvaluationRunner to LLMClient" +``` + +--- + +### Task 3: Add `--max-retries` CLI flag + +**Files:** +- Modify: `easi/cli.py:80-98` (run_parser args), `easi/cli.py:288-303` (cmd_run) + +**Step 1: Write the failing test** + +Add to `tests/test_e2e_evaluation.py` (or create a quick inline test): + +This is a CLI integration test. Since the existing tests are E2E with `EvaluationRunner`, we can verify the CLI parser separately: + +```python +def test_cli_max_retries_default(): + """CLI --max-retries defaults to 3.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.max_retries == 3 + +def test_cli_max_retries_custom(): + """CLI --max-retries is parseable.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--max-retries", "5"]) + assert args.max_retries == 5 +``` + +Add these to a new `TestCLIParsing` class in `tests/test_e2e_evaluation.py`. + +**Step 2: Run test to verify it fails** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestCLIParsing -v` +Expected: FAIL — `args` has no attribute `max_retries` + +**Step 3: Implement** + +In `easi/cli.py`, add after line 98 (`--llm-kwargs`): + +```python +run_parser.add_argument("--max-retries", type=int, default=3, + help="Max LLM retry attempts on transient errors (default: 3)") +``` + +In `cmd_run` (line 288), add `max_retries` parameter and pass to `EvaluationRunner`: + +```python +def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, + llm_url, seed, backend, model, port, llm_kwargs_raw, max_retries): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner( + task_name=task_name, + agent_type=agent_type, + output_dir=output_dir, + data_dir=data_dir, + llm_base_url=llm_url, + agent_seed=seed, + backend=backend, + model=model, + port=port, + llm_kwargs_raw=llm_kwargs_raw, + max_retries=max_retries, + ) + ... +``` + +In `main()` dispatch (line 361), add `args.max_retries`: + +```python +cmd_run(args.task, args.agent, args.output_dir, args.data_dir, + args.max_episodes, args.llm_url, args.seed, + args.backend, args.model, args.port, args.llm_kwargs, + args.max_retries) +``` + +**Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` +Expected: ALL PASS + +**Step 5: Commit** + +```bash +git add easi/cli.py tests/test_e2e_evaluation.py +git commit -m "feat: add --max-retries CLI flag for LLM retry control" +``` + +--- + +### Task 4: Add `--resume` CLI flag and `resume_dir` to EvaluationRunner + +**Files:** +- Modify: `easi/cli.py:98-99` (run_parser args), `easi/cli.py:288-303` (cmd_run) +- Modify: `easi/evaluation/runner.py:47-70` (constructor) + +**Step 1: Write the failing tests** + +Add to `TestCLIParsing` in `tests/test_e2e_evaluation.py`: + +```python +def test_cli_resume_default(): + """CLI --resume defaults to None.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.resume is None + +def test_cli_resume_custom(): + """CLI --resume accepts a path.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--resume", "/tmp/logs/run_123"]) + assert args.resume == "/tmp/logs/run_123" +``` + +Add to `TestE2EEvaluation`: + +```python +def test_resume_dir_stored(self, tmp_path): + """Verify resume_dir is stored.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + resume_dir=tmp_path / "old_run", + ) + assert runner.resume_dir == tmp_path / "old_run" +``` + +**Step 2: Run tests to verify they fail** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestCLIParsing::test_cli_resume_default tests/test_e2e_evaluation.py::TestCLIParsing::test_cli_resume_custom tests/test_e2e_evaluation.py::TestE2EEvaluation::test_resume_dir_stored -v` +Expected: FAIL + +**Step 3: Implement** + +In `easi/cli.py`, add after `--max-retries`: + +```python +run_parser.add_argument("--resume", type=str, default=None, + help="Path to a previous run directory to resume from") +``` + +In `easi/evaluation/runner.py` constructor, add `resume_dir`: + +```python +def __init__( + self, + ... + max_retries: int = 3, + resume_dir: Path | str | None = None, +): + ... + self.max_retries = max_retries + self.resume_dir = Path(resume_dir) if resume_dir else None + ... +``` + +In `easi/cli.py` `cmd_run`, add `resume` parameter and pass to `EvaluationRunner`: + +```python +def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, + llm_url, seed, backend, model, port, llm_kwargs_raw, + max_retries, resume): + ... + runner = EvaluationRunner( + ... + max_retries=max_retries, + resume_dir=resume, + ) + ... +``` + +In `main()` dispatch, add `args.resume`: + +```python +cmd_run(args.task, args.agent, args.output_dir, args.data_dir, + args.max_episodes, args.llm_url, args.seed, + args.backend, args.model, args.port, args.llm_kwargs, + args.max_retries, args.resume) +``` + +**Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` +Expected: ALL PASS + +**Step 5: Commit** + +```bash +git add easi/cli.py easi/evaluation/runner.py tests/test_e2e_evaluation.py +git commit -m "feat: add --resume CLI flag and resume_dir to EvaluationRunner" +``` + +--- + +### Task 5: Implement `_load_completed_results()` and resume logic in `run()` + +**Files:** +- Modify: `easi/evaluation/runner.py:94-185` (run method + new helper) +- Test: `tests/test_e2e_evaluation.py` + +**Step 1: Write the failing tests** + +Add to `TestE2EEvaluation` in `tests/test_e2e_evaluation.py`: + +```python +def test_resume_skips_completed_episodes(self, tmp_path): + """Resume skips completed episodes and re-runs the last one.""" + output_dir = tmp_path / "logs" + + # First run: complete 3 episodes + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + results1 = runner1.run() + assert len(results1) == 3 + + run_dir = _find_run_dir(output_dir) + + # Resume: should re-run episode 2 (last), skip 0 and 1 + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results2 = runner2.run() + assert len(results2) == 3 # 2 loaded + 1 re-run (episode 2) + +def test_resume_clears_last_episode_dir(self, tmp_path): + """Resume clears the last episode directory before re-running.""" + output_dir = tmp_path / "logs" + + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + runner1.run() + + run_dir = _find_run_dir(output_dir) + episodes_dir = run_dir / "episodes" + episode_dirs = sorted(episodes_dir.iterdir()) + last_ep_dir = episode_dirs[-1] + + # Add a marker file to the last episode dir + marker = last_ep_dir / "marker.txt" + marker.write_text("should be deleted") + + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + runner2.run() + + # Marker should be gone (dir was cleared) + assert not marker.exists() + # But result.json should exist (re-run completed) + assert (last_ep_dir / "result.json").exists() + +def test_resume_produces_valid_summary(self, tmp_path): + """Resumed run produces a valid summary with all episodes.""" + output_dir = tmp_path / "logs" + + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + runner1.run() + + run_dir = _find_run_dir(output_dir) + + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results2 = runner2.run() + + summary = json.loads((run_dir / "summary.json").read_text()) + assert summary["num_episodes"] == 3 + +def test_resume_empty_run_dir(self, tmp_path): + """Resume with no completed episodes runs all from scratch.""" + output_dir = tmp_path / "logs" + run_dir = output_dir / "dummy_task" / "fake_run" + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True) + + # Write a minimal config.json so resume can read it + import json + config = {"run_id": "fake_run", "cli_options": {"task_name": "dummy_task"}} + (run_dir / "config.json").write_text(json.dumps(config)) + + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results = runner.run() + assert len(results) == 3 # All episodes run from scratch +``` + +**Step 2: Run tests to verify they fail** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestE2EEvaluation::test_resume_skips_completed_episodes -v` +Expected: FAIL — resume logic not implemented + +**Step 3: Implement** + +Add `_load_completed_results()` method to `EvaluationRunner`: + +```python +def _load_completed_results(self, run_dir: Path) -> list[dict]: + """Load results from a previous run for resume. + + Returns results from all completed episodes except the last one. + The last episode directory is cleared for re-run (it may have been + interrupted mid-way). + """ + episodes_dir = run_dir / "episodes" + if not episodes_dir.exists(): + return [] + + result_files = sorted(episodes_dir.glob("*/result.json")) + if not result_files: + return [] + + # Load all completed results except the last + all_results = [] + for rf in result_files[:-1]: + all_results.append(json.loads(rf.read_text())) + + # Clear the last episode directory for re-run + last_episode_dir = result_files[-1].parent + for f in last_episode_dir.iterdir(): + f.unlink() + + return all_results +``` + +Modify `run()` to support resume — change the beginning of the method: + +```python +def run(self, max_episodes: int | None = None) -> list[dict]: + """Run evaluation and return per-episode metric dicts.""" + if self.resume_dir: + run_dir = self.resume_dir + all_results = self._load_completed_results(run_dir) + start_index = len(all_results) + logger.info( + "Resuming from %s — %d completed episodes, starting from %d", + run_dir, len(all_results), start_index, + ) + else: + run_dir = self.output_dir / self.task_name / self.run_id + all_results = [] + start_index = 0 + + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True, exist_ok=True) + + # 1. Load task + task = self._create_task() + episodes = task.load_episodes() + if max_episodes is not None: + episodes = episodes[:max_episodes] + + ... # rest stays the same until the episode loop + + for i, episode in enumerate(episodes): + if i < start_index: + continue + ... # existing episode loop body +``` + +**Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` +Expected: ALL PASS + +**Step 5: Run the full test suite** + +Run: `.venv/bin/pytest tests/ -v --timeout=60` +Expected: ALL PASS + +**Step 6: Commit** + +```bash +git add easi/evaluation/runner.py tests/test_e2e_evaluation.py +git commit -m "feat: implement resume logic — scan completed episodes, re-run last" +``` + +--- + +## Dependency Graph + +``` +Task 1 (LLMClient num_retries) + └──> Task 2 (Runner max_retries wiring) + └──> Task 3 (CLI --max-retries) + +Task 4 (CLI --resume + resume_dir) + └──> Task 5 (Resume logic in run()) +``` + +Tasks 1-3 (retry) and Tasks 4-5 (resume) are independent chains. +Tasks 1+4 can run in parallel. Tasks 2+5 can run in parallel (after 1 and 4 respectively). + +## Verification + +```bash +# Full test suite +.venv/bin/pytest tests/ -v --timeout=60 + +# Quick CLI smoke test +.venv/bin/easi run dummy_task --agent dummy --max-retries 5 +.venv/bin/easi run dummy_task --agent dummy --resume logs/dummy_task// +``` + +## Files Changed Summary + +| File | Change | +|---|---| +| `easi/llm/client.py` | Add `num_retries` param (default 3), pass to `litellm.completion()` | +| `easi/evaluation/runner.py` | Add `max_retries` + `resume_dir` params, `_load_completed_results()`, resume logic in `run()` | +| `easi/cli.py` | Add `--max-retries` (default 3) and `--resume` (path) CLI flags | +| `tests/test_llm_client.py` | 4 new tests for `num_retries` | +| `tests/test_e2e_evaluation.py` | ~8 new tests for retry config + resume | diff --git a/easi/cli.py b/easi/cli.py index 77c3e16..a9d300b 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -78,7 +78,9 @@ def build_parser() -> argparse.ArgumentParser: # --- run command --- run_parser = subparsers.add_parser("run", help="Run a full evaluation", parents=[common]) - run_parser.add_argument("task", type=str, help="Task name (e.g., 'dummy_task', 'ebalfred_base')") + run_parser.add_argument("task", type=str, nargs="?", default=None, + help="Task name (e.g., 'dummy_task', 'ebalfred_base'). " + "Optional when --resume is provided.") run_parser.add_argument("--agent", type=str, default="dummy", choices=["dummy", "react"]) run_parser.add_argument("--output-dir", type=str, default="./logs", help="Base output directory (creates ///)") @@ -96,6 +98,10 @@ def build_parser() -> argparse.ArgumentParser: help="Port for local inference server (default: 8080)") run_parser.add_argument("--llm-kwargs", type=str, default=None, help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') + run_parser.add_argument("--max-retries", type=int, default=3, + help="Max LLM retry attempts on transient errors (default: 3)") + run_parser.add_argument("--resume", type=str, default=None, + help="Path to a previous run directory to resume from") # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) @@ -286,9 +292,49 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, - llm_url, seed, backend, model, port, llm_kwargs_raw): + llm_url, seed, backend, model, port, llm_kwargs_raw, + max_retries, resume): + import json as _json + from pathlib import Path + from easi.evaluation.runner import EvaluationRunner + # When resuming, load saved config and use as defaults + if resume: + config_path = Path(resume) / "config.json" + if not config_path.exists(): + logger.error("Resume directory has no config.json: %s", resume) + sys.exit(1) + saved = _json.loads(config_path.read_text()) + opts = saved.get("cli_options", {}) + + # Saved config provides defaults; CLI args override + task_name = task_name or opts.get("task_name") + if agent_type == "dummy" and opts.get("agent_type"): + agent_type = opts["agent_type"] + if output_dir == "./logs" and opts.get("output_dir"): + output_dir = opts["output_dir"] + if data_dir == "./datasets" and opts.get("data_dir"): + data_dir = opts["data_dir"] + if llm_url is None: + llm_url = opts.get("llm_base_url") + if seed is None: + seed = opts.get("agent_seed") + if backend is None: + backend = opts.get("backend") + if model == "default" and opts.get("model", "default") != "default": + model = opts["model"] + if port == 8080 and opts.get("port", 8080) != 8080: + port = opts["port"] + if llm_kwargs_raw is None: + llm_kwargs_raw = opts.get("llm_kwargs_raw") + if max_retries == 3 and opts.get("max_retries", 3) != 3: + max_retries = opts["max_retries"] + + if not task_name: + logger.error("Task name is required. Provide it as a positional arg or use --resume.") + sys.exit(1) + runner = EvaluationRunner( task_name=task_name, agent_type=agent_type, @@ -300,6 +346,8 @@ def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, model=model, port=port, llm_kwargs_raw=llm_kwargs_raw, + max_retries=max_retries, + resume_dir=resume, ) results = runner.run(max_episodes=max_episodes) logger.info("Completed %d episodes.", len(results)) @@ -360,7 +408,8 @@ def main() -> None: elif args.command == "run": cmd_run(args.task, args.agent, args.output_dir, args.data_dir, args.max_episodes, args.llm_url, args.seed, - args.backend, args.model, args.port, args.llm_kwargs) + args.backend, args.model, args.port, args.llm_kwargs, + args.max_retries, args.resume) elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 619d070..786d716 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -56,6 +56,8 @@ def __init__( model: str = "default", port: int = 8080, llm_kwargs_raw: str | None = None, + max_retries: int = 3, + resume_dir: Path | str | None = None, ): self.task_name = task_name self.agent_type = agent_type @@ -67,6 +69,8 @@ def __init__( self.model = model self.port = port self.llm_kwargs_raw = llm_kwargs_raw + self.max_retries = max_retries + self.resume_dir = Path(resume_dir) if resume_dir else None self.run_id = datetime.now().strftime("%Y%m%d_%H%M%S") def _resolve_llm_backend(self) -> tuple[str | None, str | None]: @@ -93,7 +97,19 @@ def _resolve_llm_backend(self) -> tuple[str | None, str | None]: def run(self, max_episodes: int | None = None) -> list[dict]: """Run evaluation and return per-episode metric dicts.""" - run_dir = self.output_dir / self.task_name / self.run_id + if self.resume_dir: + run_dir = self.resume_dir + all_results = self._load_completed_results(run_dir) + start_index = len(all_results) + logger.info( + "Resuming from %s — %d completed episodes, starting from %d", + run_dir, len(all_results), start_index, + ) + else: + run_dir = self.output_dir / self.task_name / self.run_id + all_results = [] + start_index = 0 + episodes_dir = run_dir / "episodes" episodes_dir.mkdir(parents=True, exist_ok=True) @@ -134,6 +150,7 @@ def run(self, max_episodes: int | None = None) -> list[dict]: "model": self.model, "port": self.port, "llm_kwargs_raw": self.llm_kwargs_raw, + "max_retries": self.max_retries, }, "resolved_backend": backend, "task_config": task._config, @@ -147,9 +164,10 @@ def run(self, max_episodes: int | None = None) -> list[dict]: # 4. Start simulator sim, sim_runner = self._create_simulator(task.simulator_key, task=task) - all_results = [] try: for i, episode in enumerate(episodes): + if i < start_index: + continue episode_id = episode.get("episode_id", f"ep_{i}") logger.info( "Episode %d/%d: %s", i + 1, len(episodes), episode_id, @@ -184,6 +202,33 @@ def run(self, max_episodes: int | None = None) -> list[dict]: return all_results + def _load_completed_results(self, run_dir: Path) -> list[dict]: + """Load results from a previous run for resume. + + Returns results from all completed episodes except the last one. + The last episode directory is cleared for re-run (it may have been + interrupted mid-way). + """ + episodes_dir = run_dir / "episodes" + if not episodes_dir.exists(): + return [] + + result_files = sorted(episodes_dir.glob("*/result.json")) + if not result_files: + return [] + + # Load all completed results except the last + all_results = [] + for rf in result_files[:-1]: + all_results.append(json.loads(rf.read_text())) + + # Clear the last episode directory for re-run + last_episode_dir = result_files[-1].parent + for f in last_episode_dir.iterdir(): + f.unlink() + + return all_results + def _run_episode( self, sim, agent, task, episode: dict, index: int, episode_dir: Path, ) -> dict: @@ -338,6 +383,7 @@ def _create_agent(self, action_space: list[str], task_config: dict, llm = LLMClient( model=litellm_model, base_url=base_url, + num_retries=self.max_retries, **client_kwargs, ) else: diff --git a/easi/llm/client.py b/easi/llm/client.py index e50ed94..3af6f46 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -40,10 +40,12 @@ def __init__( self, model: str, base_url: str | None = None, + num_retries: int = 3, **kwargs: Any, ): self.model = model self.base_url = base_url + self.num_retries = num_retries self.default_kwargs = kwargs self._usage = { "prompt_tokens": 0, @@ -59,6 +61,7 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> call_kwargs: dict[str, Any] = { "model": self.model, "messages": messages, + "num_retries": self.num_retries, **self.default_kwargs, } if self.base_url: diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index f55979d..f9017f7 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -219,3 +219,216 @@ def test_images_saved_to_episode_dir(self, tmp_path): assert len(png_files) >= 2 # At least reset + one step assert png_files[0].name == "rgb_0000.png" assert png_files[1].name == "rgb_0001.png" + + def test_max_retries_stored(self, tmp_path): + """Verify max_retries is stored and appears in config.""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=5, + ) + assert runner.max_retries == 5 + runner.run(max_episodes=1) + + run_dir = _find_run_dir(output_dir) + config = json.loads((run_dir / "config.json").read_text()) + assert config["cli_options"]["max_retries"] == 5 + + def test_resume_dir_stored(self, tmp_path): + """Verify resume_dir is stored.""" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=tmp_path / "logs", + resume_dir=tmp_path / "old_run", + ) + assert runner.resume_dir == tmp_path / "old_run" + + def test_resume_skips_completed_episodes(self, tmp_path): + """Resume skips completed episodes and re-runs the last one.""" + output_dir = tmp_path / "logs" + + # First run: complete all 3 episodes + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + results1 = runner1.run() + assert len(results1) == 3 + + run_dir = _find_run_dir(output_dir) + + # Resume: should load episodes 0-1, re-run episode 2 + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results2 = runner2.run() + assert len(results2) == 3 # 2 loaded + 1 re-run + + def test_resume_clears_last_episode_dir(self, tmp_path): + """Resume clears the last episode directory before re-running.""" + output_dir = tmp_path / "logs" + + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + runner1.run() + + run_dir = _find_run_dir(output_dir) + episodes_dir = run_dir / "episodes" + episode_dirs = sorted(episodes_dir.iterdir()) + last_ep_dir = episode_dirs[-1] + + # Add a marker file to the last episode dir + marker = last_ep_dir / "marker.txt" + marker.write_text("should be deleted") + + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + runner2.run() + + # Marker should be gone (dir was cleared) + assert not marker.exists() + # But result.json should exist (re-run completed) + assert (last_ep_dir / "result.json").exists() + + def test_resume_produces_valid_summary(self, tmp_path): + """Resumed run produces a valid summary with all episodes.""" + output_dir = tmp_path / "logs" + + runner1 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + agent_seed=42, + ) + runner1.run() + + run_dir = _find_run_dir(output_dir) + + runner2 = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results2 = runner2.run() + + summary = json.loads((run_dir / "summary.json").read_text()) + assert summary["num_episodes"] == 3 + + def test_resume_empty_run_dir(self, tmp_path): + """Resume with no completed episodes runs all from scratch.""" + output_dir = tmp_path / "logs" + run_dir = output_dir / "dummy_task" / "fake_run" + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True) + + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + resume_dir=run_dir, + agent_seed=42, + ) + results = runner.run() + assert len(results) == 3 # All episodes run from scratch + + +class TestResumeConfigLoading: + def test_resume_loads_config_from_run_dir(self, tmp_path): + """cmd_run with --resume loads task_name and options from config.json.""" + from easi.cli import cmd_run + + output_dir = tmp_path / "logs" + + # First run with specific options + cmd_run( + task_name="dummy_task", + agent_type="dummy", + output_dir=str(output_dir), + data_dir="./datasets", + max_episodes=2, + llm_url=None, + seed=42, + backend=None, + model="default", + port=8080, + llm_kwargs_raw=None, + max_retries=3, + resume=None, + ) + + run_dir = _find_run_dir(output_dir) + + # Resume without specifying task_name — should load from config.json + cmd_run( + task_name=None, + agent_type="dummy", + output_dir="./logs", + data_dir="./datasets", + max_episodes=None, + llm_url=None, + seed=None, + backend=None, + model="default", + port=8080, + llm_kwargs_raw=None, + max_retries=3, + resume=str(run_dir), + ) + + # Should have completed successfully (3 total episodes from config) + summary = json.loads((run_dir / "summary.json").read_text()) + assert summary["num_episodes"] == 3 + + +class TestCLIParsing: + def test_cli_max_retries_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.max_retries == 3 + + def test_cli_max_retries_custom(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--max-retries", "5"]) + assert args.max_retries == 5 + + def test_cli_resume_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.resume is None + + def test_cli_resume_custom(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task", "--resume", "/tmp/logs/run_123"]) + assert args.resume == "/tmp/logs/run_123" + + def test_cli_resume_without_task(self): + """--resume should work without specifying a task name.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "--resume", "/tmp/logs/run_123"]) + assert args.resume == "/tmp/logs/run_123" + assert args.task is None diff --git a/tests/test_llm_client.py b/tests/test_llm_client.py index 7922499..2ac46a3 100644 --- a/tests/test_llm_client.py +++ b/tests/test_llm_client.py @@ -147,6 +147,56 @@ def test_generate_omits_response_format_when_none(self, mock_litellm): assert "response_format" not in call_kwargs.kwargs +class TestLLMClientRetries: + def test_default_num_retries(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/gpt-4o") + assert client.num_retries == 3 + + def test_custom_num_retries(self): + from easi.llm.client import LLMClient + client = LLMClient(model="openai/gpt-4o", num_retries=5) + assert client.num_retries == 5 + + @patch("easi.llm.client.litellm") + def test_num_retries_passed_to_litellm(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + client = LLMClient(model="openai/gpt-4o", num_retries=7) + client.generate([{"role": "user", "content": "hi"}]) + + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("num_retries") == 7 + + @patch("easi.llm.client.litellm") + def test_zero_retries_passed_through(self, mock_litellm): + from easi.llm.client import LLMClient + + mock_choice = MagicMock() + mock_choice.message.content = "ok" + mock_response = MagicMock() + mock_response.choices = [mock_choice] + mock_response.usage.prompt_tokens = 10 + mock_response.usage.completion_tokens = 5 + mock_litellm.completion.return_value = mock_response + mock_litellm.completion_cost.return_value = 0.0 + + client = LLMClient(model="openai/gpt-4o", num_retries=0) + client.generate([{"role": "user", "content": "hi"}]) + + call_kwargs = mock_litellm.completion.call_args + assert call_kwargs.kwargs.get("num_retries") == 0 + + class TestLLMClientProtocolCompat: def test_satisfies_llm_client_protocol(self): from easi.core.protocols import LLMClientProtocol From 912cfb07c5cb5cb186c85a88cc6185ef5956ebba Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 20:37:34 +0800 Subject: [PATCH 022/239] [Fix] Default --agent to react instead of dummy --- easi/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/cli.py b/easi/cli.py index a9d300b..87662a8 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -81,7 +81,7 @@ def build_parser() -> argparse.ArgumentParser: run_parser.add_argument("task", type=str, nargs="?", default=None, help="Task name (e.g., 'dummy_task', 'ebalfred_base'). " "Optional when --resume is provided.") - run_parser.add_argument("--agent", type=str, default="dummy", choices=["dummy", "react"]) + run_parser.add_argument("--agent", type=str, default="react", choices=["dummy", "react"]) run_parser.add_argument("--output-dir", type=str, default="./logs", help="Base output directory (creates ///)") run_parser.add_argument("--data-dir", type=str, default="./datasets", From 36aff7be58781f6c1eac61f60f81985af6e811d6 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 21:50:09 +0800 Subject: [PATCH 023/239] [Feat] Add per-episode retry with simulator re-launch and fix max_steps bug Fix max_steps mismatch where YAML configured 50 but vendor EBAlfEnv hardcoded 30. Now max_steps flows from YAML through simulator_kwargs to the bridge and vendor env. Add per-episode retry in EvaluationRunner: on crash (e.g. AI2-THOR Unity segfault), the episode dir is cleared, the simulator is re-launched, and the episode is retried up to max_retries times. If all retries are exhausted the episode is recorded as failed and the runner continues to the next episode. --- easi/core/base_task.py | 3 +- easi/evaluation/runner.py | 46 ++++++++- easi/tasks/ebalfred/bridge.py | 2 + easi/tasks/ebalfred/vendor/EBAlfEnv.py | 5 +- tests/test_bridge_refactor.py | 2 +- tests/test_e2e_evaluation.py | 124 +++++++++++++++++++++++++ 6 files changed, 175 insertions(+), 7 deletions(-) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index afb6ea4..7cc91e7 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -109,9 +109,10 @@ def additional_deps(self) -> list[str]: @property def simulator_kwargs(self) -> dict: - """Bridge-facing kwargs (simulator_configs minus additional_deps).""" + """Bridge-facing kwargs (simulator_configs minus additional_deps + max_steps).""" cfg = dict(self.simulator_configs) cfg.pop("additional_deps", None) + cfg["max_steps"] = self.max_steps return cfg def get_instruction(self, episode: dict) -> str: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 786d716..a75abeb 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -176,9 +176,42 @@ def run(self, max_episodes: int | None = None) -> list[dict]: episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" episode_dir.mkdir(exist_ok=True) - result = self._run_episode( - sim, agent, task, episode, i, episode_dir, - ) + result = None + for attempt in range(1, self.max_retries + 1): + try: + result = self._run_episode( + sim, agent, task, episode, i, episode_dir, + ) + break + except Exception as exc: + logger.warning( + "Episode %s attempt %d/%d failed: %s", + episode_id, attempt, self.max_retries, exc, + ) + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info("Re-launching simulator for retry...") + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "Episode %s failed after %d attempts, skipping", + episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + all_results.append(result) (episode_dir / "result.json").write_text( @@ -316,6 +349,13 @@ def _run_episode( return metrics + @staticmethod + def _clear_episode_dir(episode_dir: Path) -> None: + """Remove all files in an episode directory for a clean retry.""" + for f in episode_dir.iterdir(): + if f.is_file(): + f.unlink() + @staticmethod def _write_trajectory_entry(path: Path, entry: dict) -> None: """Append a single JSON line to the trajectory file.""" diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py index 297f832..829a9eb 100644 --- a/easi/tasks/ebalfred/bridge.py +++ b/easi/tasks/ebalfred/bridge.py @@ -35,6 +35,7 @@ def _create_env(self, reset_config, simulator_kwargs): # (e.g. datasets/oscarqjh_EB-Alfred_easi/tasks) data_dir = reset_config.get("data_dir") or simulator_kwargs.get("data_dir") resolution = simulator_kwargs.get("screen_height", 500) + max_steps = simulator_kwargs.get("max_steps", 30) # x_display from YAML, falling back to DISPLAY env var (set by xvfb-run) x_display = simulator_kwargs.get( "x_display", os.environ.get("DISPLAY", ":0").lstrip(":") @@ -43,6 +44,7 @@ def _create_env(self, reset_config, simulator_kwargs): resolution=resolution, data_dir=data_dir, x_display=x_display, + max_steps=max_steps, ) def _on_reset(self, env, reset_config): diff --git a/easi/tasks/ebalfred/vendor/EBAlfEnv.py b/easi/tasks/ebalfred/vendor/EBAlfEnv.py index 4d5a44b..9e17700 100644 --- a/easi/tasks/ebalfred/vendor/EBAlfEnv.py +++ b/easi/tasks/ebalfred/vendor/EBAlfEnv.py @@ -88,7 +88,7 @@ class EBAlfEnv(gym.Env): action_space (gym.spaces.Discrete): Discrete action space language_skill_set (list): Readable action descriptions """ - def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=None, x_display=None): + def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=None, x_display=None, max_steps=30): """ Initialize the AI2THOR environment. @@ -98,6 +98,7 @@ def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=No resolution: screen resolution for AI2-THOR data_dir: path to task JSON files (e.g. datasets/.../tasks) x_display: X display number for AI2-THOR + max_steps: maximum steps per episode (from task YAML config) """ super().__init__() self.reward_config_path = ALFRED_REWARD_PATH @@ -111,7 +112,7 @@ def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=No # Episode tracking self._reset = False self._current_step = 0 - self._max_episode_steps = 30 + self._max_episode_steps = max_steps self._cur_invalid_actions = 0 self._max_invalid_actions = 10 self._episode_start_time = 0 diff --git a/tests/test_bridge_refactor.py b/tests/test_bridge_refactor.py index 5a37fa4..bcb7858 100644 --- a/tests/test_bridge_refactor.py +++ b/tests/test_bridge_refactor.py @@ -306,7 +306,7 @@ def test_dummy_task_empty_simulator_configs(self): task = DummyTask() assert task.simulator_configs == {} assert task.additional_deps == [] - assert task.simulator_kwargs == {} + assert task.simulator_kwargs == {"max_steps": 100} def test_all_ebalfred_splits_have_configs(self): """All EB-Alfred split YAMLs should have simulator_configs.""" diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index f9017f7..c6ec49c 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -352,6 +352,130 @@ def test_resume_empty_run_dir(self, tmp_path): assert len(results) == 3 # All episodes run from scratch +class TestEpisodeRetry: + def test_retry_on_episode_failure(self, tmp_path): + """Episodes that crash are retried and succeed on subsequent attempt.""" + from unittest.mock import patch + + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=3, + ) + + call_count = {"n": 0} + original_run_episode = runner._run_episode + + def failing_first_call(*args, **kwargs): + call_count["n"] += 1 + if call_count["n"] == 1: + raise RuntimeError("Simulated bridge crash") + return original_run_episode(*args, **kwargs) + + with patch.object(runner, "_run_episode", side_effect=failing_first_call): + results = runner.run(max_episodes=1) + + assert len(results) == 1 + assert "error" not in results[0] + assert results[0]["success"] in (0.0, 1.0) + + def test_retry_exhausted_records_failure(self, tmp_path): + """Episode recorded as failure after all retries exhausted.""" + from unittest.mock import patch + + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=2, + ) + + with patch.object( + runner, "_run_episode", + side_effect=RuntimeError("persistent crash"), + ): + results = runner.run(max_episodes=1) + + assert len(results) == 1 + assert results[0]["success"] == 0.0 + assert "error" in results[0] + assert "persistent crash" in results[0]["error"] + + def test_retry_clears_partial_files(self, tmp_path): + """Retry clears partial files from the failed attempt.""" + from unittest.mock import patch + + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=2, + ) + + original_run_episode = runner._run_episode + + def write_then_crash(sim, agent, task, episode, index, episode_dir): + # Write a partial file then crash + (episode_dir / "partial.txt").write_text("partial data") + raise RuntimeError("crash mid-episode") + + call_count = {"n": 0} + + def crash_then_succeed(*args, **kwargs): + call_count["n"] += 1 + if call_count["n"] == 1: + return write_then_crash(*args, **kwargs) + return original_run_episode(*args, **kwargs) + + with patch.object(runner, "_run_episode", side_effect=crash_then_succeed): + results = runner.run(max_episodes=1) + + assert len(results) == 1 + # The partial file should have been cleaned up + run_dir = _find_run_dir(output_dir) + episode_dirs = sorted((run_dir / "episodes").iterdir()) + assert not (episode_dirs[0] / "partial.txt").exists() + # But result.json from successful retry should exist + assert (episode_dirs[0] / "result.json").exists() + + def test_retry_continues_to_next_episode(self, tmp_path): + """After exhausting retries on one episode, runner continues to the next.""" + from unittest.mock import patch + + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_retries=1, + ) + + original_run_episode = runner._run_episode + call_count = {"n": 0} + + def fail_first_episode(*args, **kwargs): + call_count["n"] += 1 + # Fail only the first episode (call 1) + if call_count["n"] == 1: + raise RuntimeError("episode 0 crash") + return original_run_episode(*args, **kwargs) + + with patch.object(runner, "_run_episode", side_effect=fail_first_episode): + results = runner.run(max_episodes=2) + + # Both episodes should have results + assert len(results) == 2 + # First episode failed + assert results[0]["success"] == 0.0 + assert "error" in results[0] + # Second episode succeeded + assert "error" not in results[1] + + class TestResumeConfigLoading: def test_resume_loads_config_from_run_dir(self, tmp_path): """cmd_run with --resume loads task_name and options from config.json.""" From 02ed1e20e02fd92c840e0356730439ab352f3082 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 23:59:03 +0800 Subject: [PATCH 024/239] [Feat] Add EB-Navigation benchmark integration Integrate EmbodiedBench EB-Navigation into EASI with vendored env, task bridge, prompt builder, and 5 split configs (ai2thor v5.0.0). --- easi/tasks/ebnavigation/__init__.py | 0 easi/tasks/ebnavigation/actions.py | 24 + easi/tasks/ebnavigation/bridge.py | 76 +++ .../config/navigation_examples.json | 5 + .../tasks/ebnavigation/ebnavigation_base.yaml | 22 + .../ebnavigation_common_sense.yaml | 22 + .../ebnavigation_complex_instruction.yaml | 22 + .../ebnavigation_long_horizon.yaml | 22 + .../ebnavigation_visual_appearance.yaml | 22 + easi/tasks/ebnavigation/prompts.py | 464 ++++++++++++++++++ easi/tasks/ebnavigation/task.py | 84 ++++ easi/tasks/ebnavigation/vendor/EBNavEnv.py | 159 ++++++ easi/tasks/ebnavigation/vendor/__init__.py | 0 tests/test_ebnavigation_task.py | 314 ++++++++++++ 14 files changed, 1236 insertions(+) create mode 100644 easi/tasks/ebnavigation/__init__.py create mode 100644 easi/tasks/ebnavigation/actions.py create mode 100644 easi/tasks/ebnavigation/bridge.py create mode 100644 easi/tasks/ebnavigation/config/navigation_examples.json create mode 100644 easi/tasks/ebnavigation/ebnavigation_base.yaml create mode 100644 easi/tasks/ebnavigation/ebnavigation_common_sense.yaml create mode 100644 easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml create mode 100644 easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml create mode 100644 easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml create mode 100644 easi/tasks/ebnavigation/prompts.py create mode 100644 easi/tasks/ebnavigation/task.py create mode 100644 easi/tasks/ebnavigation/vendor/EBNavEnv.py create mode 100644 easi/tasks/ebnavigation/vendor/__init__.py create mode 100644 tests/test_ebnavigation_task.py diff --git a/easi/tasks/ebnavigation/__init__.py b/easi/tasks/ebnavigation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebnavigation/actions.py b/easi/tasks/ebnavigation/actions.py new file mode 100644 index 0000000..efc6fd4 --- /dev/null +++ b/easi/tasks/ebnavigation/actions.py @@ -0,0 +1,24 @@ +"""EB-Navigation action space definitions. + +Reference: EmbodiedBench/embodiedbench/envs/eb_navigation/EBNavEnv.py +""" +from __future__ import annotations + +DISCRETE_ACTIONS = [ + "Move forward by 0.25", + "Move backward by 0.25", + "Move rightward by 0.25", + "Move leftward by 0.25", + "Rotate to the right by 90 degrees.", + "Rotate to the left by 90 degrees.", + "Tilt the camera upward by 30 degrees.", + "Tilt the camera downward by 30 degrees.", +] + +# Mapping from action text to integer index (for bridge) +ACTION_NAME_TO_ID = {name: i for i, name in enumerate(DISCRETE_ACTIONS)} + + +def get_action_space() -> list[str]: + """Return the EB-Navigation discrete action space (8 actions).""" + return list(DISCRETE_ACTIONS) diff --git a/easi/tasks/ebnavigation/bridge.py b/easi/tasks/ebnavigation/bridge.py new file mode 100644 index 0000000..b2eab04 --- /dev/null +++ b/easi/tasks/ebnavigation/bridge.py @@ -0,0 +1,76 @@ +"""EB-Navigation bridge -- wraps vendored EBNavEnv via BaseBridge. + +This script runs inside the easi_ai2thor_v5_0_0 conda env (Python 3.10). +Communicates with parent process via filesystem IPC. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge + + +class EBNavigationBridge(BaseBridge): + """Thin BaseBridge wrapper around vendored EBNavEnv.""" + + # Action text -> integer ID mapping (populated on env creation) + _action_map: dict[str, int] = {} + + def _create_env(self, reset_config, simulator_kwargs): + from easi.tasks.ebnavigation.actions import ACTION_NAME_TO_ID + from easi.tasks.ebnavigation.vendor.EBNavEnv import EBNavEnv + + self._action_map = ACTION_NAME_TO_ID + resolution = simulator_kwargs.get("screen_height", 500) + max_steps = simulator_kwargs.get("max_steps", 20) + fov = simulator_kwargs.get("fov", 100) + return EBNavEnv(resolution=resolution, fov=fov, max_steps=max_steps) + + def _on_reset(self, env, reset_config): + episode = { + "scene": reset_config["scene"], + "agent_pose": json.loads(reset_config["agent_pose"]) + if isinstance(reset_config["agent_pose"], str) + else reset_config["agent_pose"], + "target_object_id": reset_config["target_object_id"], + "target_position": json.loads(reset_config["target_position"]) + if isinstance(reset_config["target_position"], str) + else reset_config["target_position"], + "instruction": reset_config["instruction"], + } + return env.reset(episode=episode) + + def _on_step(self, env, action_text): + action_id = self._action_map.get(action_text, -1) + if action_id < 0: + # Try case-insensitive match + for name, idx in self._action_map.items(): + if name.lower() == action_text.lower(): + action_id = idx + break + return env.step(action_id) + + def _extract_image(self, obs): + return obs["head_rgb"] + + def _extract_info(self, info): + return { + "task_success": float(info.get("task_success", 0.0)), + "distance": float(info.get("distance", 0.0)), + "last_action_success": float(info.get("last_action_success", 0.0)), + "feedback": str(info.get("env_feedback", "")), + "action_id": int(info.get("action_id", -1)), + } + + +if __name__ == "__main__": + EBNavigationBridge.main() diff --git a/easi/tasks/ebnavigation/config/navigation_examples.json b/easi/tasks/ebnavigation/config/navigation_examples.json new file mode 100644 index 0000000..b483efa --- /dev/null +++ b/easi/tasks/ebnavigation/config/navigation_examples.json @@ -0,0 +1,5 @@ +[ + "\nHuman Instruction : Navigate to the floorlamp and be as close as possible.\n\nReasoning and reflection: I can see the floorlmap is at left side in front of me, next to the TVStand. Around me is a Cabinet at my left side. Following the guideline, since the floorlamp is at left side, I can approach it by a series of moving forward and left/rightward. Since currently there is an obstacle at my left, I will first move forward twice.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is executed successfully;\n\nReasoning and reflection: I can see now I get closer to the floorlamp. It is still located in front of me at the left. I will try move forward and move leftward in series.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is executed successfully; Step 6 is executed successfully; Step 7 is Invalid, as a StandardIslandHeight is blocking you from moving forward.\n\nReasoning and reflection: I am a lot closer to the floorlamp by a series a forward and leftward movement. It is still in front of me. However, The last action is invalid, showing that I am blocked from moving forward.That means there is an obstacle in front of me and I can see it is probably a small table. Following the strategy, I can get away by first moving to the left and move forward. \nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully; Step 11 is executed successfully;\n\nReasoning and reflection: I can see that the floorlamp is at the right side of me, slight in the front. I think it in effect of consecutively moving leftward. Also, I have got away with the obstacle.Now I need to move right and I will probably be close to the floorlamp.\nExecutable plans: [[2, Move rightward by 0.25], [2, Move rightward by 0.25]]]\n\nEnvironment Feedback: Step 12 is executed successfully; Step 13 is executed successfully. \n\nReasoning and reflection: Last two action brought me closer to the floorlamp, however, following the strategy, I should not complete now since I can still be closer to the floorlamp by moving forward a few steps.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 14 is executed successfully; Step 15 is executed successfully; Step 16 is executed successfully.\n\n\nTask Success\n", + "\nHuman Instruction: Navigate to the computer on the desk and be as close as possible.\n\nReasoning and reflection: According to your instruction, I first need to locate the target object. I can see that the computer is located in my left front direction, placed on a desk. Next, I analyze the obstacles around me. In front of me, slightly to the right, there is a chair blocking my direct path. To avoid it, I decide to move leftward first, followed by a forward movement to approach the desk.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I am now closer to the desk, and I can still see the computer on it. It remains in my left front direction. My last leftward movement failed because a StandardHeightTable is blocking my path. However, following the strategy, I need not address the invalid action since forward movement can still bring me closer to the target object. So I will still make forward movements for now. \nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I can see that I am getting closer but the last forward move is blocked. Following the strategy, I need to address the invalid action now since it is an obstacle blocking from moving closer in the direction of target object. The computer is at my left side in the front, to bypass this obstacle, I plan to first move leftward again to create more space, then try moving forward once more to get closer to the desk and the computer.\nExecutable plans: [[3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 6 is executed successfully; Step 7 is invalid because the StandardHeight is blocking the movement.\n\nReasoning and reflection: I can see that the computer is still in my left front direction. However, the chair continues to block my path. From the environment feedback, I observed that while my leftward movement was successful, my forward movement was still blocked. This indicates that I didn't move far enough left to fully bypass the obstacle. To address this, I decide to move leftward two more times to ensure a clear path, then try moving forward again.\nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully.\n\nReasoning and reflection: Now, I can see that the computer has shifted to my right front direction. There are no longer any visible obstacles blocking my way. I deduce that the computer is now to my right because my previous leftward movements adjusted my position significantly to clear the earlier obstacle. Since the path is clear, I plan to approach the computer by moving forward three times and then rightward once to align myself next to it.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25], [2, Move rightward by 0.25]]\n\nEnvironment Feedback: Step 11 is executed successfully; Step 12 is executed successfully; Step 13 is executed successfully; Step 14 is executed successfully.\n\n\nTask Success\n\n", + "\nHuman Instruction: Navigate to the book and be as close as possible.\n\nReasoning and reflection: At the moment, I cannot see the book in my current field of view. According to the strategy you provided, I will rotate my view ninety degrees at a time until I locate the target object. Since rotation changes my vision, I will not plan any other actions until the book is visible.\nExecutable plans: [[4, Rotate to the right by 90 degrees]]\n\nEnvironment Feedback: Step 1 is executed successfully. The book is still not visible in my current field of view.\n\nReasoning and reflection: I still cannot see the book in my current field of view. Following your instruction, I will rotate ninety degrees again. As the rotation may change my view, I will not plan any additional actions until I locate the book.\nExecutable plans: [[4, Rotate to the right by 90 degrees]]\n\nEnvironment Feedback: Step 2 is executed successfully. The book is now visible directly in front of me, placed on a shelf.\n\nReasoning and reflection: I have located the target object. The book is directly in front of me on a shelf. Following the strategy you provided, I will stop rotating now and start planning my navigation to get close to the book. Since the book is in front of me, I will first move two steps to the right to adjust my position, and then move forward three steps to approach it.\nExecutable plans: [[2, Move rightward by 0.25], [2, Move rightward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 to Step 7 are all executed successfully.\n\nReasoning and reflection: I can now see that the book is directly in front of me, but I have not yet moved close enough to it. According to the standard, I should move closer to the book. Therefore, I decide to move forward three more times to reach the desired position.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8, Step 9, and Step 10 are all executed successfully.\n\nTask Success\n\n\n" +] diff --git a/easi/tasks/ebnavigation/ebnavigation_base.yaml b/easi/tasks/ebnavigation/ebnavigation_base.yaml new file mode 100644 index 0000000..acd13d2 --- /dev/null +++ b/easi/tasks/ebnavigation/ebnavigation_base.yaml @@ -0,0 +1,22 @@ +name: ebnavigation_base +display_name: "EB-Navigation Base Split" +description: "Base evaluation split for EB-Navigation (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null + split: "base" +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + split: "base" + use_feedback: true + chat_history: true diff --git a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml new file mode 100644 index 0000000..c5829aa --- /dev/null +++ b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml @@ -0,0 +1,22 @@ +name: ebnavigation_common_sense +display_name: "EB-Navigation Common Sense Split" +description: "Common sense evaluation split for EB-Navigation (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null + split: "common_sense" +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + split: "common_sense" + use_feedback: true + chat_history: true diff --git a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml new file mode 100644 index 0000000..d28ab11 --- /dev/null +++ b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml @@ -0,0 +1,22 @@ +name: ebnavigation_complex_instruction +display_name: "EB-Navigation Complex Instruction Split" +description: "Complex instruction evaluation split for EB-Navigation (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null + split: "complex_instruction" +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + split: "complex_instruction" + use_feedback: true + chat_history: true diff --git a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml new file mode 100644 index 0000000..e675848 --- /dev/null +++ b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml @@ -0,0 +1,22 @@ +name: ebnavigation_long_horizon +display_name: "EB-Navigation Long Horizon Split" +description: "Long horizon evaluation split for EB-Navigation (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null + split: "long_horizon" +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + split: "long_horizon" + use_feedback: true + chat_history: true diff --git a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml new file mode 100644 index 0000000..198c82c --- /dev/null +++ b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml @@ -0,0 +1,22 @@ +name: ebnavigation_visual_appearance +display_name: "EB-Navigation Visual Appearance Split" +description: "Visual appearance evaluation split for EB-Navigation (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null + split: "visual_appearance" +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + split: "visual_appearance" + use_feedback: true + chat_history: true diff --git a/easi/tasks/ebnavigation/prompts.py b/easi/tasks/ebnavigation/prompts.py new file mode 100644 index 0000000..721a995 --- /dev/null +++ b/easi/tasks/ebnavigation/prompts.py @@ -0,0 +1,464 @@ +"""EB-Navigation prompt builder matching EmbodiedBench nav_planner. + +Reference: EmbodiedBench/embodiedbench/planner/nav_planner.py + EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py:75-99 + EmbodiedBench/embodiedbench/evaluator/config/eb_navigation_example.py + EmbodiedBench/embodiedbench/planner/planner_utils.py:20-29 +""" +from __future__ import annotations + +import json +from pathlib import Path + +from easi.agents.prompt_builder import _encode_image_base64, validate_action_name +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# System prompt from EmbodiedBench (eb_navigation_system_prompt). +# Three format placeholders: max_action_id, action_list, examples. +NAVIGATION_SYSTEM_PROMPT = '''## You are a robot operating in a home. You can do various tasks and output a sequence of actions to accomplish a given task with images of your status. + +## The available action id (0 ~ {}) and action names are: {}. + +*** Strategy *** + +1. Locate the Target Object Type: Clearly describe the spatial location of the target object \ +from the observation image (i.e. in the front left side, a few steps from current standing point). + +2. Navigate by *** Using Move forward and Move right/left as main strategy ***, since any point can be reached through a combination of those. \ +When planning for movement, reason based on target object's location and obstacles around you. \ + +3. Focus on primary goal: Only address invalid action when it blocks you from moving closer in the direction to target object. In other words, \ +do not overly focus on correcting invalid actions when direct movement towards target object can still bring you closer. \ + +4. *** Use Rotation Sparingly ***, only when you lose track of the target object and it's not in your view. If so, plan nothing but ONE ROTATION at a step until that object appears in your view. \ +After the target object appears, start navigation and avoid using rotation until you lose sight of the target again. + +5. *** Do not complete task too early until you can not move any closer to the object, i.e. try to be as close as possible. + +{} + +---------- + +''' + +# Output template from EmbodiedBench planner_utils.py (template, not template_lang). +OUTPUT_TEMPLATE = ''' +The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]} +The fields in above JSON follows the purpose below: +1. visual_state_description is for description of current state from the visual image, +2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, +3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, +4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name. +5. keep your plan efficient and concise. +!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!. +''' + +# JSON schema matching EmbodiedBench navigation output format. +EBNAVIGATION_RESPONSE_SCHEMA = { + "type": "json_schema", + "json_schema": { + "name": "embodied_planning", + "schema": { + "type": "object", + "properties": { + "visual_state_description": { + "type": "string", + "description": "Description of current state from the visual image", + }, + "reasoning_and_reflection": { + "type": "string", + "description": "summarize the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task", + }, + "language_plan": { + "type": "string", + "description": "The list of actions to achieve the user instruction. Each action is started by the step number and the action name", + }, + "executable_plan": { + "type": "array", + "description": "A list of actions needed to achieve the user instruction, with each action having an action ID and a name. Do not output empty list.", + "items": { + "type": "object", + "properties": { + "action_id": { + "type": "integer", + "description": "The action ID to select from the available actions given by the prompt", + }, + "action_name": { + "type": "string", + "description": "The name of the action", + }, + }, + "required": ["action_id", "action_name"], + }, + }, + }, + "required": [ + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + ], + }, + }, +} + +MESSAGE_WINDOW_LEN = 5 + +_CONFIG_DIR = Path(__file__).parent / "config" + + +class EBNavigationPromptBuilder: + """Prompt builder for EB-Navigation matching nav_planner output. + + Supports two modes: + - chat_history=False (default): Stateless. Every turn sends a single user + message with the full system prompt, examples, instruction, and history. + - chat_history=True: Messages accumulate with sliding window (5 messages). + Each user message still includes the full system prompt and examples. + """ + + def __init__( + self, + n_shot: int = 3, + split: str = "base", + use_feedback: bool = True, + chat_history: bool = True, + ): + self.n_shot = n_shot + self.split = split + self.use_feedback = use_feedback + self.chat_history = chat_history + + # Load examples + examples_file = _CONFIG_DIR / "navigation_examples.json" + with open(examples_file) as f: + self._examples: list[str] = json.load(f) + + # Action space state + self._actions: list[str] = [] + self._action_str: str = "" + self._action_id_map: dict[str, int] = {} + self._id_action_map: dict[int, str] = {} + + def set_action_space(self, actions: list[str]) -> None: + """Update action space.""" + self._actions = list(actions) + self._action_str = self._build_action_list_str(actions) + self._action_id_map = {name: i for i, name in enumerate(actions)} + self._id_action_map = {i: name for i, name in enumerate(actions)} + + def action_name_to_id(self, name: str) -> int | None: + """Look up action ID from name. Returns None if not found.""" + return self._action_id_map.get(name) + + def action_id_to_name(self, action_id: int) -> str | None: + """Look up action name from ID. Returns None if not found.""" + return self._id_action_map.get(action_id) + + @staticmethod + def _build_action_list_str(actions: list[str]) -> str: + """Build action list in nav_planner's get_availabel_action_prompt format.""" + parts = '' + for i in range(len(actions)): + parts += '\naction id ' + str(i) + ': ' + str(actions[i]) + if i < len(actions) - 1: + parts += ', ' + return parts + + # ---- PromptBuilderProtocol methods ---- + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build COMPLETE message list to send to LLM.""" + if not self._action_id_map or self._actions != memory.action_space: + self.set_action_space(memory.action_space) + + if self.chat_history: + return self._build_chat_history_messages(memory) + else: + return self._build_stateless_messages(memory) + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into validated actions.""" + from easi.utils.json_repair import fix_json + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + + # Support both {"action_id": int, "action_name": str} and {"action": str} + if "action_id" in entry: + action_id = entry["action_id"] + action_name = self.action_id_to_name(action_id) + if action_name is None: + action_name = entry.get("action_name", "") + else: + action_name = entry.get("action", entry.get("action_name", "")) + + validated = validate_action_name(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions + + def get_response_format(self, memory: AgentMemory) -> dict: + """Return JSON schema for API-level enforcement.""" + return EBNAVIGATION_RESPONSE_SCHEMA + + # ---- Stateless mode (chat_history=False) ---- + + def _build_stateless_messages(self, memory: AgentMemory) -> list[dict]: + """Build full prompt each turn. No history accumulation.""" + prompt = self._build_prompt_text( + memory.task_description, memory.action_history, + ) + return self._wrap_as_user_message(prompt, memory.current_observation) + + def _build_prompt_text( + self, + task_description: str, + action_history: list[tuple[str, str]], + ) -> str: + """Build the full prompt text matching nav_planner.process_prompt(). + + Covers both first-turn and subsequent-turn paths with + chat_history=False (nav_planner.py lines 92-136). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if len(action_history) == 0: + # First turn path (nav_planner.py lines 96-104) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += self._make_first_prompt_suffix(max_id) + + else: + # Subsequent turn path, chat_history=False (nav_planner.py lines 122-134) + # Note: Double space after "Example" on subsequent turns (typo preserved) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += self._format_action_history(action_history) + prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" + + return prompt + + # ---- Chat history mode (chat_history=True) ---- + + def _build_chat_history_messages(self, memory: AgentMemory) -> list[dict]: + """Build accumulated message history for chat_history=True mode. + + First turn: identical to stateless first turn. + Subsequent turns: reconstruct message history from memory.steps, + each user message includes full system prompt (nav_planner pattern). + Apply sliding window (MESSAGE_WINDOW_LEN=5). + """ + if memory.is_first_turn: + return self._build_stateless_messages(memory) + + # Reconstruct message history from completed steps + messages: list[dict] = [] + + for step_idx, step in enumerate(memory.steps): + if step.llm_response is None: + # Buffered step -- no user/assistant pair + continue + + if step_idx == 0: + history_up_to = [] + else: + history_up_to = [ + (s.action.action_name, s.feedback) + for s in memory.steps[:step_idx] + if s.action and s.feedback is not None + ] + + if step_idx == 0: + prompt = self._build_first_turn_full_prompt(memory.task_description) + else: + prompt = self._build_chat_subsequent_prompt( + memory.task_description, history_up_to, + ) + + messages.extend( + self._wrap_as_user_message(prompt, step.observation) + ) + messages.append({ + "role": "assistant", + "content": [{"type": "text", "text": step.llm_response}], + }) + + # Current turn + all_history = memory.action_history + current_prompt = self._build_chat_subsequent_prompt( + memory.task_description, all_history, + ) + messages.extend( + self._wrap_as_user_message(current_prompt, memory.current_observation) + ) + + # Apply sliding window + return messages[-MESSAGE_WINDOW_LEN:] + + def _build_first_turn_full_prompt(self, task_description: str) -> str: + """Build first-turn prompt (identical for both modes).""" + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += self._make_first_prompt_suffix(max_id) + + return prompt + + def _build_chat_subsequent_prompt( + self, + task_description: str, + action_history: list[tuple[str, str]], + ) -> str: + """Build subsequent-turn prompt for chat_history=True. + + In nav_planner, chat_history subsequent turns still include the full + system prompt but use "## The human instruction" (no "Now the"). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + # Double space after "Example" on subsequent turns (typo preserved) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = NAVIGATION_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## The human instruction is: {user_instruction}.' + prompt += self._format_action_history(action_history) + prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" + + return prompt + + # ---- Helpers ---- + + def _make_first_prompt_suffix(self, max_id: int) -> str: + """First-turn prompt suffix (nav_planner.py lines 56-62). + + Uses 'Aim for about 1-2 actions'. + """ + return ( + f'''To achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' + f'''\nAim for about 1-2 actions in this step. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' + f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' + f'''\n\nThe input given to you is an first person view observation. Plan accordingly based on the visual observation.''' + f'''\n\nYou are supposed to output in JSON.{OUTPUT_TEMPLATE}''' + ) + + def _make_following_prompt_suffix(self, max_id: int) -> str: + """Following-turn prompt suffix (nav_planner.py lines 64-70). + + Uses 'Aim for about 5-6 actions'. + """ + return ( + f'''To achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' + f'''\nAim for about 5-6 actions in this step to be closer to the target object. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' + f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' + f'''\n\nThe input given to you is an first person view observation. Plan accordingly based on the visual observation.''' + f'''\n\nYou are supposed to output in JSON.{OUTPUT_TEMPLATE}''' + ) + + def _format_action_history(self, action_history: list[tuple[str, str]]) -> str: + """Format action history matching nav_planner line 117-118. + + Format: 'Step {i}, action id {id}, {name}, env feedback: {fb}' + """ + text = '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + text += '\n Step {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + text += '\n Step {}, action id {}, {}'.format( + i, action_id, action_name, + ) + return text + + @staticmethod + def _wrap_as_user_message(prompt: str, observation) -> list[dict]: + """Wrap prompt text + observation image as a user message. + + Image BEFORE text (nav_planner line 200-211). + """ + content: list[dict] = [] + if observation and observation.rgb_path: + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content.append({ + "type": "image_url", + "image_url": {"url": image_url}, + }) + content.append({"type": "text", "text": prompt}) + + return [{"role": "user", "content": content}] diff --git a/easi/tasks/ebnavigation/task.py b/easi/tasks/ebnavigation/task.py new file mode 100644 index 0000000..f321823 --- /dev/null +++ b/easi/tasks/ebnavigation/task.py @@ -0,0 +1,84 @@ +"""EB-Navigation task for EASI. + +Adapts the EmbodiedBench EB-Navigation benchmark to EASI's task interface. +Supports 5 splits via per-split .yaml configs. + +Episode data flows from HF dataset -> task.format_reset_config() -> bridge +reset_config -> EBNavEnv.reset(episode). +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult +from easi.tasks.ebnavigation.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBNavigationTask(BaseTask): + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "ebnavigation_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map EB-Navigation HF row to bridge reset config.""" + return { + "episode_id": episode.get("id", "unknown"), + "scene": episode["scene"], + "instruction": episode["instruction"], + "target_object_type": episode.get("target_object_type", ""), + "target_object_id": episode.get("target_object_id", ""), + "target_position": episode["target_position"], + "agent_pose": episode["agent_pose"], + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract metrics from trajectory. + + The bridge reports task_success and distance in StepResult.info. + """ + if not trajectory: + return { + "task_success": 0.0, + "distance_to_target": -1.0, + "num_steps": 0.0, + } + + last_step = trajectory[-1] + return { + "task_success": last_step.info.get("task_success", 0.0), + "distance_to_target": last_step.info.get("distance", -1.0), + "num_steps": float(len(trajectory)), + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download.""" + return [ + { + "id": 0, + "scene": "FloorPlan11", + "instruction": "navigate to the Bread in the room and be as close as possible to it", + "target_object_type": "Bread", + "target_object_id": "Bread|+01.30|+00.98|-01.53", + "target_position": {"x": 1.3, "y": 0.98, "z": -1.53}, + "agent_pose": { + "position": {"x": -0.75, "y": 0.9009992, "z": -1.75}, + "rotation": 90.0, + "horizon": 0.0, + }, + }, + ] diff --git a/easi/tasks/ebnavigation/vendor/EBNavEnv.py b/easi/tasks/ebnavigation/vendor/EBNavEnv.py new file mode 100644 index 0000000..5a39337 --- /dev/null +++ b/easi/tasks/ebnavigation/vendor/EBNavEnv.py @@ -0,0 +1,159 @@ +"""Vendored EB-Navigation environment for EASI. + +Adapted from EmbodiedBench/embodiedbench/envs/eb_navigation/EBNavEnv.py. +Changes: removed internal dataset loading, gym dependency, logging/saving. +EASI provides episodes via reset(episode) and the bridge handles image saving. +""" +from __future__ import annotations + +import math + +import ai2thor.controller +import numpy as np +from ai2thor.platform import CloudRendering + +SUCCESS_THRESHOLD = 1 # meters (horizontal distance) + + +class EBNavEnv: + """AI2-THOR navigation environment for EB-Navigation benchmark.""" + + def __init__(self, resolution: int = 500, fov: int = 100, max_steps: int = 20): + self.resolution = resolution + self.config = { + "agentMode": "default", + "gridSize": 0.1, + "visibilityDistance": 10, + "renderDepthImage": True, + "renderInstanceSegmentation": True, + "width": resolution, + "height": resolution, + "fieldOfView": fov, + "platform": CloudRendering, + } + self.env = ai2thor.controller.Controller(**self.config) + self._max_episode_steps = max_steps + self._current_step = 0 + self.episode_data = None + self._last_event = None + + def reset(self, episode: dict) -> dict: + """Reset environment with episode data from EASI. + + Args: + episode: Dict with keys: scene, agent_pose, target_object_id, + target_position, instruction. + """ + self.episode_data = episode + scene_name = episode["scene"] + + self._last_event = self.env.reset(scene=scene_name) + + # Teleport agent to starting pose + pose = episode["agent_pose"] + self.env.step( + action="Teleport", + position={ + "x": pose["position"]["x"], + "y": pose["position"]["y"], + "z": pose["position"]["z"], + }, + rotation={ + "x": 0, + "y": pose["rotation"], + "z": 0, + }, + horizon=pose["horizon"], + standing=True, + ) + + self._current_step = 0 + return {"head_rgb": self.env.last_event.frame} + + def step(self, action_id: int) -> tuple[dict, float, bool, dict]: + """Execute one discrete action. + + Args: + action_id: Integer 0-7 mapping to DISCRETE_ACTIONS. + + Returns: + (obs, reward, done, info) tuple. + """ + self._current_step += 1 + + if not isinstance(action_id, int) or action_id < 0 or action_id > 7: + action_id = np.random.randint(8) + + self._execute_action(action_id) + reward, distance = self.measure_success() + + done = self._current_step >= self._max_episode_steps or reward > 0 + + obs = {"head_rgb": self.env.last_event.frame} + info = { + "task_success": reward, + "distance": distance, + "env_feedback": self._get_env_feedback(), + "last_action_success": float( + self.env.last_event.metadata["lastActionSuccess"] + ), + "env_step": self._current_step, + "action_id": action_id, + } + return obs, reward, done, info + + def _execute_action(self, action_id: int) -> None: + """Map discrete action ID to AI2-THOR controller action. + + Reference: EBNavEnv.discrete_action_mapper() + """ + if action_id == 0: + self._last_event = self.env.step(action="MoveAhead", moveMagnitude=0.25) + elif action_id == 1: + self._last_event = self.env.step(action="MoveBack", moveMagnitude=0.25) + elif action_id == 2: + self._last_event = self.env.step(action="MoveRight", moveMagnitude=0.25) + elif action_id == 3: + self._last_event = self.env.step(action="MoveLeft", moveMagnitude=0.25) + elif action_id == 4: + self._last_event = self.env.step(action="RotateRight", degrees=90) + elif action_id == 5: + self._last_event = self.env.step(action="RotateLeft", degrees=90) + elif action_id == 6: + self._last_event = self.env.step(action="LookUp", degrees=30) + elif action_id == 7: + self._last_event = self.env.step(action="LookDown", degrees=30) + + def measure_success(self) -> tuple[float, float]: + """Compute success (1.0/0.0) and horizontal distance to target. + + Reference: EBNavEnv.measure_success() -- uses XZ-plane distance. + """ + agent_position = self.env.last_event.metadata["agent"]["position"] + target_position = self.episode_data["target_position"] + + dist = math.sqrt( + (agent_position["x"] - target_position["x"]) ** 2 + + (agent_position["z"] - target_position["z"]) ** 2 + ) + success = float(dist <= SUCCESS_THRESHOLD) + return success, dist + + def _get_env_feedback(self) -> str: + """Build feedback string from last event. + + Reference: EBNavEnv.get_env_feedback() with verbosity=0. + """ + event = self._last_event + last_action = event.metadata.get("lastAction", "") + success = event.metadata.get("lastActionSuccess", False) + error = event.metadata.get("errorMessage", "") + + if success: + return f"Last action {last_action} executed successfully." + else: + return f"Last action {last_action} is invalid. {error}" + + def close(self) -> None: + """Shut down the AI2-THOR controller.""" + self.env.stop() diff --git a/easi/tasks/ebnavigation/vendor/__init__.py b/easi/tasks/ebnavigation/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_ebnavigation_task.py b/tests/test_ebnavigation_task.py new file mode 100644 index 0000000..85304b2 --- /dev/null +++ b/tests/test_ebnavigation_task.py @@ -0,0 +1,314 @@ +"""Tests for the EB-Navigation task (offline, no simulator needed).""" +import json + +import pytest + +from easi.core.episode import Action, Observation, StepResult +from easi.tasks.ebnavigation.actions import ( + ACTION_NAME_TO_ID, + DISCRETE_ACTIONS, + get_action_space, +) +from easi.tasks.ebnavigation.task import EBNavigationTask + + +class TestEBNavigationActionSpace: + def test_action_space_has_8_actions(self): + actions = get_action_space() + assert len(actions) == 8 + + def test_action_space_contents(self): + actions = get_action_space() + assert "Move forward by 0.25" in actions + assert "Move backward by 0.25" in actions + assert "Move rightward by 0.25" in actions + assert "Move leftward by 0.25" in actions + assert "Rotate to the right by 90 degrees." in actions + assert "Rotate to the left by 90 degrees." in actions + assert "Tilt the camera upward by 30 degrees." in actions + assert "Tilt the camera downward by 30 degrees." in actions + + def test_action_name_to_id_mapping(self): + assert ACTION_NAME_TO_ID["Move forward by 0.25"] == 0 + assert ACTION_NAME_TO_ID["Move backward by 0.25"] == 1 + assert ACTION_NAME_TO_ID["Move rightward by 0.25"] == 2 + assert ACTION_NAME_TO_ID["Move leftward by 0.25"] == 3 + assert ACTION_NAME_TO_ID["Rotate to the right by 90 degrees."] == 4 + assert ACTION_NAME_TO_ID["Rotate to the left by 90 degrees."] == 5 + assert ACTION_NAME_TO_ID["Tilt the camera upward by 30 degrees."] == 6 + assert ACTION_NAME_TO_ID["Tilt the camera downward by 30 degrees."] == 7 + assert len(ACTION_NAME_TO_ID) == 8 + + def test_action_space_returns_copy(self): + a1 = get_action_space() + a2 = get_action_space() + assert a1 == a2 + assert a1 is not a2 + + def test_discrete_actions_matches_source(self): + """Verify action text matches EBNavEnv.DISCRETE_SKILLSET exactly.""" + assert DISCRETE_ACTIONS[0] == "Move forward by 0.25" + assert DISCRETE_ACTIONS[7] == "Tilt the camera downward by 30 degrees." + + +class TestEBNavigationTask: + @pytest.fixture + def task(self): + return EBNavigationTask() + + def test_name(self, task): + assert task.name == "ebnavigation_base" + + def test_simulator_key(self, task): + assert task.simulator_key == "ai2thor:v5_0_0" + + def test_action_space_loaded(self, task): + assert len(task.action_space) == 8 + + def test_max_steps(self, task): + assert task.max_steps == 20 + + def test_format_reset_config(self, task): + """Test the adapter from EB-Navigation HF row to bridge reset config.""" + episode = { + "id": 0, + "scene": "FloorPlan11", + "instruction": "navigate to the Bread", + "target_object_type": "Bread", + "target_object_id": "Bread|+01.30|+00.98|-01.53", + "target_position": {"x": 1.3, "y": 0.98, "z": -1.53}, + "agent_pose": { + "position": {"x": -0.75, "y": 0.9009992, "z": -1.75}, + "rotation": 90.0, + "horizon": 0.0, + }, + } + config = task.format_reset_config(episode) + assert config["episode_id"] == 0 + assert config["scene"] == "FloorPlan11" + assert config["instruction"] == "navigate to the Bread" + assert config["target_object_type"] == "Bread" + assert config["target_object_id"] == "Bread|+01.30|+00.98|-01.53" + assert config["target_position"]["x"] == 1.3 + assert config["agent_pose"]["rotation"] == 90.0 + + def test_evaluate_episode(self, task): + """Test metric computation from trajectory.""" + episode = { + "id": 0, "scene": "FloorPlan11", + "instruction": "test", + "target_position": {"x": 0, "y": 0, "z": 0}, + "agent_pose": {"position": {"x": 0, "y": 0, "z": 0}, "rotation": 0, "horizon": 0}, + } + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False, + info={"task_success": 0.0, "distance": 2.5}), + StepResult(observation=obs, reward=1.0, done=True, + info={"task_success": 1.0, "distance": 0.8}), + ] + metrics = task.evaluate_episode(episode, trajectory) + assert metrics["task_success"] == 1.0 + assert metrics["distance_to_target"] == 0.8 + assert metrics["num_steps"] == 2 + + def test_evaluate_empty_trajectory(self, task): + episode = { + "id": 0, "scene": "FloorPlan11", + "instruction": "test", + "target_position": {"x": 0, "y": 0, "z": 0}, + "agent_pose": {"position": {"x": 0, "y": 0, "z": 0}, "rotation": 0, "horizon": 0}, + } + metrics = task.evaluate_episode(episode, []) + assert metrics["task_success"] == 0.0 + assert metrics["distance_to_target"] == -1.0 + assert metrics["num_steps"] == 0.0 + + def test_get_instruction(self, task): + episode = {"instruction": "navigate to the Bread"} + assert task.get_instruction(episode) == "navigate to the Bread" + + def test_builtin_episodes(self, task): + episodes = task._get_builtin_episodes() + assert len(episodes) == 1 + assert episodes[0]["scene"] == "FloorPlan11" + assert episodes[0]["target_object_type"] == "Bread" + assert "agent_pose" in episodes[0] + assert "target_position" in episodes[0] + + def test_task_registry_discovers_all_splits(self): + """Registry should discover all EB-Navigation split yamls.""" + from easi.tasks.registry import list_tasks, refresh + refresh() + tasks = list_tasks() + assert "ebnavigation_base" in tasks + assert "ebnavigation_common_sense" in tasks + assert "ebnavigation_complex_instruction" in tasks + assert "ebnavigation_long_horizon" in tasks + assert "ebnavigation_visual_appearance" in tasks + + def test_split_specific_task_loading(self): + """Loading ebnavigation_base should give a task with correct config.""" + from easi.tasks.registry import get_task_entry, refresh + refresh() + entry = get_task_entry("ebnavigation_base") + assert entry.simulator_key == "ai2thor:v5_0_0" + assert entry.config_path.name == "ebnavigation_base.yaml" + + def test_bridge_script_path(self, task): + bridge_path = task.get_bridge_script_path() + assert bridge_path is not None + assert bridge_path.name == "bridge.py" + assert bridge_path.exists() + + +class TestEBNavigationPromptBuilder: + def test_build_messages_first_turn(self): + """First turn: full system prompt in user message.""" + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + actions = get_action_space() + memory = AgentMemory( + task_description="Navigate to the Bread.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + messages = builder.build_messages(memory) + assert isinstance(messages, list) + assert messages[0]["role"] == "user" + text_content = messages[0]["content"][-1]["text"] + assert "robot operating in a home" in text_content + assert "Move forward by 0.25" in text_content + assert "Strategy" in text_content + assert "1-2 actions" in text_content + assert builder.action_name_to_id("Move forward by 0.25") == 0 + + def test_build_messages_with_history(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + actions = get_action_space() + memory = AgentMemory( + task_description="Navigate to the Bread.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + memory.record_step(obs, Action(action_name="Move forward by 0.25"), llm_response="r1") + memory.record_feedback("success") + memory.record_step(obs, Action(action_name="Move leftward by 0.25"), llm_response="r2") + memory.record_feedback("failed: blocked") + messages = builder.build_messages(memory) + assert isinstance(messages, list) + # With chat_history=True, we get accumulated messages + # Last message should be user + assert messages[-1]["role"] == "user" + text_content = "" + for part in messages[-1]["content"]: + if part["type"] == "text": + text_content += part["text"] + assert "Move forward by 0.25" in text_content + assert "5-6 actions" in text_content + + def test_build_messages_stateless(self): + """Stateless mode (chat_history=False) produces single user message each turn.""" + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder(chat_history=False) + actions = get_action_space() + memory = AgentMemory( + task_description="Navigate to the Bread.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + memory.record_step(obs, Action(action_name="Move forward by 0.25"), llm_response="r1") + memory.record_feedback("success") + messages = builder.build_messages(memory) + # Stateless: single user message + assert len(messages) == 1 + assert messages[0]["role"] == "user" + + def test_parse_response_valid(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + actions = get_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + builder.set_action_space(actions) + response = json.dumps({ + "visual_state_description": "I see a room.", + "reasoning_and_reflection": "I should move forward.", + "language_plan": "Step 1: Move forward", + "executable_plan": [ + {"action_id": 0, "action_name": "Move forward by 0.25"}, + {"action_id": 0, "action_name": "Move forward by 0.25"}, + ], + }) + parsed = builder.parse_response(response, memory) + assert len(parsed) == 2 + assert parsed[0].action_name == "Move forward by 0.25" + assert parsed[1].action_name == "Move forward by 0.25" + + def test_parse_response_invalid_json(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + actions = get_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + builder.set_action_space(actions) + parsed = builder.parse_response("not json at all {{}", memory) + assert parsed == [] + + def test_parse_response_invalid_action_id(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + actions = get_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + builder.set_action_space(actions) + response = json.dumps({ + "visual_state_description": "test", + "reasoning_and_reflection": "test", + "language_plan": "test", + "executable_plan": [ + {"action_id": 0, "action_name": "Move forward by 0.25"}, + {"action_id": 99, "action_name": "invalid action"}, + ], + }) + parsed = builder.parse_response(response, memory) + # Should get first valid action, then break on invalid + assert len(parsed) == 1 + assert parsed[0].action_name == "Move forward by 0.25" + + def test_conforms_to_protocol(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.agents.prompt_builder import PromptBuilderProtocol + builder = EBNavigationPromptBuilder() + assert isinstance(builder, PromptBuilderProtocol) + + def test_response_format(self): + from easi.tasks.ebnavigation.prompts import EBNavigationPromptBuilder + from easi.core.memory import AgentMemory + builder = EBNavigationPromptBuilder() + memory = AgentMemory( + task_description="test", + action_space=get_action_space(), + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + schema = builder.get_response_format(memory) + assert schema["type"] == "json_schema" + assert "executable_plan" in schema["json_schema"]["schema"]["properties"] From 9c8d7ee944e2d58fc076bbb17bf987eae1bd461c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Feb 2026 23:59:29 +0800 Subject: [PATCH 025/239] [Refactor] Replace YAML action_space with BaseTask._build_action_space() Remove action_space field from all YAML configs and TaskEntry. Tasks now define their action space via _build_action_space() override with caching, eliminating the confusing pattern of empty YAML fields. --- easi/cli.py | 1 - easi/core/base_task.py | 12 +++++++++++- easi/tasks/dummy_task/task.py | 6 ++++++ easi/tasks/dummy_task/task.yaml | 7 ------- easi/tasks/ebalfred/ebalfred_base.yaml | 1 - easi/tasks/ebalfred/ebalfred_common_sense.yaml | 1 - .../tasks/ebalfred/ebalfred_complex_instruction.yaml | 1 - easi/tasks/ebalfred/ebalfred_long_horizon.yaml | 1 - easi/tasks/ebalfred/ebalfred_spatial.yaml | 1 - easi/tasks/ebalfred/ebalfred_visual_appearance.yaml | 1 - easi/tasks/ebalfred/task.py | 6 ++---- easi/tasks/registry.py | 2 -- easi/tasks/scaffold.py | 2 -- tests/test_dummy_task.py | 1 - 14 files changed, 19 insertions(+), 24 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 87662a8..7bd4a56 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -204,7 +204,6 @@ def cmd_task_info(task_name: str) -> None: logger.info(" Name: %s", entry.name) logger.info(" Description: %s", entry.description) logger.info(" Simulator: %s", entry.simulator_key) - logger.info(" Actions: %s", ", ".join(entry.action_space)) logger.info(" Max steps: %s", entry.max_steps) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 7cc91e7..ad3b442 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -49,6 +49,7 @@ def __init__( self._split_yaml_path = split_yaml_path self._config = self._load_config() self._episodes: list[dict] | None = None + self._action_space_cache: list[str] | None = None self._data_dir = data_dir @abstractmethod @@ -134,7 +135,16 @@ def simulator_key(self) -> str: @property def action_space(self) -> list[str]: - return self._config["action_space"] + if self._action_space_cache is None: + self._action_space_cache = self._build_action_space() + return self._action_space_cache + + def _build_action_space(self) -> list[str]: + """Return the action space for this task. + + Override in subclasses to define the action space programmatically. + """ + return [] @property def max_steps(self) -> int: diff --git a/easi/tasks/dummy_task/task.py b/easi/tasks/dummy_task/task.py index 8030304..c55756a 100644 --- a/easi/tasks/dummy_task/task.py +++ b/easi/tasks/dummy_task/task.py @@ -12,12 +12,18 @@ from easi.core.episode import StepResult +DUMMY_ACTIONS = ["MoveAhead", "TurnLeft", "TurnRight", "Stop"] + + class DummyTask(BaseTask): """A dummy task for testing the evaluation pipeline.""" def get_task_yaml_path(self) -> Path: return Path(__file__).parent / "task.yaml" + def _build_action_space(self) -> list[str]: + return list(DUMMY_ACTIONS) + def format_reset_config(self, episode: dict) -> dict: """Map a dummy episode to simulator reset config. diff --git a/easi/tasks/dummy_task/task.yaml b/easi/tasks/dummy_task/task.yaml index 206ff3b..2129c4c 100644 --- a/easi/tasks/dummy_task/task.yaml +++ b/easi/tasks/dummy_task/task.yaml @@ -5,13 +5,6 @@ description: "A dummy task for testing the pipeline end-to-end" # Pin to a specific versioned simulator simulator: "dummy:v1" -# Action space available to the agent -action_space: - - MoveAhead - - TurnLeft - - TurnRight - - Stop - # Dataset source dataset: source: "local" diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index dc684d1..8f71bc7 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Base Split" description: "Base evaluation split for EB-Alfred" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 3ada24a..d14306b 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Common Sense Split" description: "Common sense evaluation split testing implicit knowledge" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 7d54154..8954a8c 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Complex Instruction Split" description: "Complex instruction evaluation split with nuanced language" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 0efb2fa..840a32b 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Long Horizon Split" description: "Long-horizon evaluation split requiring multi-step planning" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index f190d0d..2025d03 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Spatial Split" description: "Spatial reasoning evaluation split" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 4c7311f..ae3a300 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -3,7 +3,6 @@ display_name: "EB-Alfred Visual Appearance Split" description: "Visual appearance evaluation split testing visual grounding" simulator: "ai2thor:v2_1_0" task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -action_space: [] max_steps: 50 dataset: source: huggingface diff --git a/easi/tasks/ebalfred/task.py b/easi/tasks/ebalfred/task.py index 607af66..101679f 100644 --- a/easi/tasks/ebalfred/task.py +++ b/easi/tasks/ebalfred/task.py @@ -26,10 +26,8 @@ class EBAlfredTask(BaseTask): - def __init__(self, data_dir: Path | None = None, split_yaml_path: Path | None = None): - super().__init__(data_dir=data_dir, split_yaml_path=split_yaml_path) - # Override static action space with dynamic one - self._config["action_space"] = get_global_action_space() + def _build_action_space(self) -> list[str]: + return get_global_action_space() def get_task_yaml_path(self) -> Path: return Path(__file__).parent / "ebalfred_base.yaml" diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py index efdadff..3d96ad2 100644 --- a/easi/tasks/registry.py +++ b/easi/tasks/registry.py @@ -30,7 +30,6 @@ class TaskEntry: description: str simulator_key: str task_class: str # fully qualified class name - action_space: list[str] max_steps: int config_path: Path @@ -73,7 +72,6 @@ def _discover_tasks(tasks_dir: Path | None = None) -> dict[str, TaskEntry]: description=config.get("description", ""), simulator_key=config["simulator"], task_class=config["task_class"], - action_space=config.get("action_space", []), max_steps=config.get("max_steps", 500), config_path=task_yaml_path, ) diff --git a/easi/tasks/scaffold.py b/easi/tasks/scaffold.py index c06e872..8766cba 100644 --- a/easi/tasks/scaffold.py +++ b/easi/tasks/scaffold.py @@ -203,7 +203,6 @@ def _extract_image(self, obs): description: "TODO: Add description" simulator: "{simulator}" task_class: "easi.tasks.{name}.task.{class_name}Task" -action_space: [] max_steps: {max_steps} dataset: source: local @@ -239,7 +238,6 @@ def test_get_bridge_script_path(self, tmp_path): "description: test\\n" "simulator: dummy:v1\\n" "task_class: easi.tasks.{name}.task.{class_name}Task\\n" - "action_space: []\\n" "max_steps: 10\\n" "dataset:\\n" " source: local\\n" diff --git a/tests/test_dummy_task.py b/tests/test_dummy_task.py index c2776bf..519de31 100644 --- a/tests/test_dummy_task.py +++ b/tests/test_dummy_task.py @@ -80,7 +80,6 @@ def test_get_task_entry(self): entry = get_task_entry("dummy_task") assert entry.name == "dummy_task" assert entry.simulator_key == "dummy:v1" - assert "MoveAhead" in entry.action_space def test_load_task_class(self): TaskClass = load_task_class("dummy_task") From 19f8e8e0ecdc1247a6cdb168a1e46f5b39907ed0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 01:12:16 +0800 Subject: [PATCH 026/239] [Feat] Implement real AI2-THOR v5.0.0 bridge and switch to Linux64 platform Replace stub bridge with working AI2ThorV5Bridge class that starts a real controller, handles scene reset and discrete navigation actions. Switch platform from CloudRendering to Linux64. Increase sim test timeout default from 30s to 200s for THOR startup. --- easi/cli.py | 4 +- easi/simulators/ai2thor/v5_0_0/bridge.py | 286 +++++++++++++++------ easi/tasks/ebnavigation/vendor/EBNavEnv.py | 4 +- 3 files changed, 209 insertions(+), 85 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 7bd4a56..d6e8107 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -73,8 +73,8 @@ def build_parser() -> argparse.ArgumentParser: sim_test = sim_sub.add_parser("test", help="Run a smoke test (reset + N steps)", parents=[common]) sim_test.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v5_0_0'") sim_test.add_argument("--steps", type=int, default=5, help="Number of steps") - sim_test.add_argument("--timeout", type=float, default=30.0, - help="Bridge startup timeout in seconds (default: 30)") + sim_test.add_argument("--timeout", type=float, default=200.0, + help="Bridge startup timeout in seconds (default: 200)") # --- run command --- run_parser = subparsers.add_parser("run", help="Run a full evaluation", parents=[common]) diff --git a/easi/simulators/ai2thor/v5_0_0/bridge.py b/easi/simulators/ai2thor/v5_0_0/bridge.py index 0d931d3..96136f4 100644 --- a/easi/simulators/ai2thor/v5_0_0/bridge.py +++ b/easi/simulators/ai2thor/v5_0_0/bridge.py @@ -1,17 +1,22 @@ -"""Bridge subprocess for AI2-THOR v5.0.0 (modern API). +"""Bridge subprocess for AI2-THOR v5.0.0 (CloudRendering API). -This script runs inside the ai2thor v5.0.0 conda environment. -The v5 API is significantly different from v2.1.0. +This script runs inside the easi_ai2thor_v5_0_0 conda environment. +It starts a real AI2-THOR controller using the CloudRendering platform +and handles reset/step/close commands via filesystem IPC. -NOTE: This is a stub. Structure demonstrates how a real bridge works. +Task-specific bridges (e.g., EBNavigationBridge) use the vendored env +directly and extend BaseBridge. This generic bridge is used by +`easi sim test ai2thor:v5_0_0` for smoke testing the simulator install. Usage: - python bridge.py --workspace /tmp/easi_xxx + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] """ from __future__ import annotations import argparse +import json +import os import sys from pathlib import Path @@ -33,89 +38,208 @@ logger = get_logger(__name__) - -def run_bridge(workspace: Path) -> None: - """Main bridge loop for AI2-THOR v5.0.0.""" - logger.info("AI2-THOR v5.0.0 bridge starting (workspace: %s)", workspace) - - # In a real implementation: - # from ai2thor.controller import Controller - # controller = Controller(width=1280, height=720, renderDepthImage=True) - - write_status(workspace, ready=True) - - step_count = 0 - - while True: - try: - command = poll_for_command(workspace, timeout=300.0) - except Exception as e: - logger.error("Failed to read command: %s", e) - break - - cmd_type = command.get("type") - - if cmd_type == "reset": - episode_id = command.get("episode_id", "unknown") - reset_config = command.get("reset_config", {}) - logger.info("Reset: episode_id=%s", episode_id) - - # Stub: controller.reset(scene=scene_id) - # v5 API: controller.step(action="Initialize", ...) - step_count = 0 - - rgb_path = workspace / "rgb_0000.png" - depth_path = workspace / "depth_0000.png" - rgb_path.write_bytes(b"STUB_IMAGE") - depth_path.write_bytes(b"STUB_DEPTH") - - response = make_observation_response( - rgb_path=str(rgb_path), - depth_path=str(depth_path), - agent_pose=[0.0, 0.9, 0.0, 0.0, 0.0, 0.0], - metadata={"episode_id": episode_id, "step": "0"}, - ) - write_response(workspace, response) - - elif cmd_type == "step": - step_count += 1 - action = parse_action_from_command(command) - logger.trace("Step %d: action=%s", step_count, action.action_name) - - # Stub: event = controller.step(action=action_name, **params) - # v5 API returns event with frame, depth, metadata - - rgb_name = f"rgb_{step_count:04d}.png" - depth_name = f"depth_{step_count:04d}.png" - (workspace / rgb_name).write_bytes(b"STUB_IMAGE") - (workspace / depth_name).write_bytes(b"STUB_DEPTH") - - response = make_observation_response( - rgb_path=str(workspace / rgb_name), - depth_path=str(workspace / depth_name), - agent_pose=[float(step_count) * 0.25, 0.9, 0.0, 0.0, 0.0, 0.0], - metadata={"step": str(step_count)}, - done=action.action_name == "Stop", - ) - write_response(workspace, response) - - elif cmd_type == "close": - logger.info("Close command received") - # Stub: controller.stop() - write_response(workspace, {"status": "ok"}) - break - - else: - write_response(workspace, make_error_response(f"Unknown command: {cmd_type}")) +# Default v5 configuration +DEFAULT_WIDTH = 500 +DEFAULT_HEIGHT = 500 +DEFAULT_FOV = 100 +DEFAULT_GRID_SIZE = 0.25 +DEFAULT_VISIBILITY_DISTANCE = 10 +DEFAULT_SCENE = "FloorPlan1" + + +class AI2ThorV5Bridge: + """Generic AI2-THOR v5.0.0 bridge for smoke testing. + + Uses Linux64 platform (headless GPU rendering). + """ + + def __init__(self, workspace, simulator_kwargs=None): + self.workspace = Path(workspace) + self.simulator_kwargs = simulator_kwargs or {} + self.controller = None + self.step_count = 0 + self.episode_output_dir = None + + def start(self): + """Initialize AI2-THOR v5 controller with Linux64.""" + from ai2thor.controller import Controller + from ai2thor.platform import Linux64 + + width = self.simulator_kwargs.get("screen_width", DEFAULT_WIDTH) + height = self.simulator_kwargs.get("screen_height", DEFAULT_HEIGHT) + fov = self.simulator_kwargs.get("fov", DEFAULT_FOV) + grid_size = self.simulator_kwargs.get("grid_size", DEFAULT_GRID_SIZE) + + logger.info( + "Starting AI2-THOR v5.0.0 controller (Linux64, %dx%d)...", + width, height, + ) + self.controller = Controller( + agentMode="default", + gridSize=grid_size, + visibilityDistance=DEFAULT_VISIBILITY_DISTANCE, + renderDepthImage=True, + renderInstanceSegmentation=True, + width=width, + height=height, + fieldOfView=fov, + platform=Linux64, + ) + logger.info("AI2-THOR v5.0.0 controller started.") + + def stop(self): + """Stop the AI2-THOR controller.""" + if self.controller is not None: + try: + self.controller.stop() + except Exception: + pass + self.controller = None + + def reset(self, reset_config): + """Reset to a scene for smoke testing.""" + self.step_count = 0 + scene = reset_config.get("scene", DEFAULT_SCENE) + + logger.info("Resetting to scene: %s", scene) + event = self.controller.reset(scene=scene) + + return self._make_observation_response(event) + + def step(self, action_name): + """Execute one action and return observation.""" + self.step_count += 1 + + # Map common action names to THOR API calls + event = self._dispatch_action(action_name) + + success = event.metadata.get("lastActionSuccess", False) + error = event.metadata.get("errorMessage", "") + done = action_name == "Stop" + + info = { + "last_action_success": 1.0 if success else 0.0, + "env_step": float(self.step_count), + } + if not success and error: + info["error"] = error + + return self._make_observation_response( + event, reward=0.0, done=done, info=info, + ) + + def _dispatch_action(self, action_name): + """Execute a THOR action, handling common navigation actions.""" + # Standard navigation actions with default magnitudes + action_params = {} + + if action_name in ("MoveAhead", "MoveBack", "MoveRight", "MoveLeft"): + action_params = {"moveMagnitude": DEFAULT_GRID_SIZE} + elif action_name in ("RotateRight", "RotateLeft"): + action_params = {"degrees": 90} + elif action_name in ("LookUp", "LookDown"): + action_params = {"degrees": 30} + + return self.controller.step(action=action_name, **action_params) + + def _make_observation_response(self, event, reward=0.0, done=False, info=None): + """Save RGB frame and return IPC response.""" + from PIL import Image + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + rgb_path = save_dir / ("rgb_%04d.png" % self.step_count) + + Image.fromarray(event.frame).save(str(rgb_path)) + + agent = event.metadata["agent"] + pose = [ + agent["position"]["x"], + agent["position"]["y"], + agent["position"]["z"], + agent["rotation"]["y"], + agent.get("cameraHorizon", 0), + 0, + ] + + return make_observation_response( + rgb_path=str(rgb_path), + agent_pose=pose, + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=info or {}, + ) + + def run(self): + """Main IPC loop.""" + logger.info("AI2-THOR v5.0.0 bridge starting (workspace: %s)", self.workspace) + self.start() + + write_status(self.workspace, ready=True) + + while True: + try: + command = poll_for_command(self.workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + reset_config = command.get("reset_config", {}) + logger.info("Reset: episode_id=%s", episode_id) + + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + self.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) + else: + self.episode_output_dir = None + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "step": + action = parse_action_from_command(command) + logger.trace("Step %d: action=%s", self.step_count + 1, action.action_name) + + try: + response = self.step(action.action_name) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "close": + logger.info("Close command received") + self.stop() + write_response(self.workspace, {"status": "ok"}) + break + + else: + write_response(self.workspace, make_error_response("Unknown command: %s" % cmd_type)) def main() -> None: parser = argparse.ArgumentParser(description="AI2-THOR v5.0.0 bridge") parser.add_argument("--workspace", type=Path, required=True) - args = parser.parse_args() + parser.add_argument("--data-dir", type=Path, default=None) + parser.add_argument("--simulator-kwargs", type=str, default=None, + help="JSON string of simulator configuration") + args, _ = parser.parse_known_args() setup_logging("DEBUG") - run_bridge(workspace=args.workspace) + + sim_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + bridge = AI2ThorV5Bridge(workspace=args.workspace, simulator_kwargs=sim_kwargs) + bridge.run() if __name__ == "__main__": diff --git a/easi/tasks/ebnavigation/vendor/EBNavEnv.py b/easi/tasks/ebnavigation/vendor/EBNavEnv.py index 5a39337..eac5986 100644 --- a/easi/tasks/ebnavigation/vendor/EBNavEnv.py +++ b/easi/tasks/ebnavigation/vendor/EBNavEnv.py @@ -10,7 +10,7 @@ import ai2thor.controller import numpy as np -from ai2thor.platform import CloudRendering +from ai2thor.platform import Linux64 SUCCESS_THRESHOLD = 1 # meters (horizontal distance) @@ -29,7 +29,7 @@ def __init__(self, resolution: int = 500, fov: int = 100, max_steps: int = 20): "width": resolution, "height": resolution, "fieldOfView": fov, - "platform": CloudRendering, + "platform": Linux64, } self.env = ai2thor.controller.Controller(**self.config) self._max_episode_steps = max_steps From ca6cfff71f6d6f352ed2d10ea1fe55de44b72707 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 01:12:44 +0800 Subject: [PATCH 027/239] [Fix] Align EB-Navigation prompts with EmbodiedBench source exactly Fix OUTPUT_TEMPLATE trailing spaces on 3 lines and regenerate navigation_examples.json from source to fix line continuation artifact and curly quote mismatch. Verified character-level parity. --- .../config/navigation_examples.json | 6 +++--- easi/tasks/ebnavigation/prompts.py | 19 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/easi/tasks/ebnavigation/config/navigation_examples.json b/easi/tasks/ebnavigation/config/navigation_examples.json index b483efa..3034041 100644 --- a/easi/tasks/ebnavigation/config/navigation_examples.json +++ b/easi/tasks/ebnavigation/config/navigation_examples.json @@ -1,5 +1,5 @@ [ - "\nHuman Instruction : Navigate to the floorlamp and be as close as possible.\n\nReasoning and reflection: I can see the floorlmap is at left side in front of me, next to the TVStand. Around me is a Cabinet at my left side. Following the guideline, since the floorlamp is at left side, I can approach it by a series of moving forward and left/rightward. Since currently there is an obstacle at my left, I will first move forward twice.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is executed successfully;\n\nReasoning and reflection: I can see now I get closer to the floorlamp. It is still located in front of me at the left. I will try move forward and move leftward in series.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is executed successfully; Step 6 is executed successfully; Step 7 is Invalid, as a StandardIslandHeight is blocking you from moving forward.\n\nReasoning and reflection: I am a lot closer to the floorlamp by a series a forward and leftward movement. It is still in front of me. However, The last action is invalid, showing that I am blocked from moving forward.That means there is an obstacle in front of me and I can see it is probably a small table. Following the strategy, I can get away by first moving to the left and move forward. \nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully; Step 11 is executed successfully;\n\nReasoning and reflection: I can see that the floorlamp is at the right side of me, slight in the front. I think it in effect of consecutively moving leftward. Also, I have got away with the obstacle.Now I need to move right and I will probably be close to the floorlamp.\nExecutable plans: [[2, Move rightward by 0.25], [2, Move rightward by 0.25]]]\n\nEnvironment Feedback: Step 12 is executed successfully; Step 13 is executed successfully. \n\nReasoning and reflection: Last two action brought me closer to the floorlamp, however, following the strategy, I should not complete now since I can still be closer to the floorlamp by moving forward a few steps.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 14 is executed successfully; Step 15 is executed successfully; Step 16 is executed successfully.\n\n\nTask Success\n", - "\nHuman Instruction: Navigate to the computer on the desk and be as close as possible.\n\nReasoning and reflection: According to your instruction, I first need to locate the target object. I can see that the computer is located in my left front direction, placed on a desk. Next, I analyze the obstacles around me. In front of me, slightly to the right, there is a chair blocking my direct path. To avoid it, I decide to move leftward first, followed by a forward movement to approach the desk.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I am now closer to the desk, and I can still see the computer on it. It remains in my left front direction. My last leftward movement failed because a StandardHeightTable is blocking my path. However, following the strategy, I need not address the invalid action since forward movement can still bring me closer to the target object. So I will still make forward movements for now. \nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I can see that I am getting closer but the last forward move is blocked. Following the strategy, I need to address the invalid action now since it is an obstacle blocking from moving closer in the direction of target object. The computer is at my left side in the front, to bypass this obstacle, I plan to first move leftward again to create more space, then try moving forward once more to get closer to the desk and the computer.\nExecutable plans: [[3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 6 is executed successfully; Step 7 is invalid because the StandardHeight is blocking the movement.\n\nReasoning and reflection: I can see that the computer is still in my left front direction. However, the chair continues to block my path. From the environment feedback, I observed that while my leftward movement was successful, my forward movement was still blocked. This indicates that I didn't move far enough left to fully bypass the obstacle. To address this, I decide to move leftward two more times to ensure a clear path, then try moving forward again.\nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully.\n\nReasoning and reflection: Now, I can see that the computer has shifted to my right front direction. There are no longer any visible obstacles blocking my way. I deduce that the computer is now to my right because my previous leftward movements adjusted my position significantly to clear the earlier obstacle. Since the path is clear, I plan to approach the computer by moving forward three times and then rightward once to align myself next to it.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25], [2, Move rightward by 0.25]]\n\nEnvironment Feedback: Step 11 is executed successfully; Step 12 is executed successfully; Step 13 is executed successfully; Step 14 is executed successfully.\n\n\nTask Success\n\n", + "\nHuman Instruction : Navigate to the floorlamp and be as close as possible.\n\nReasoning and reflection: I can see the floorlmap is at left side in front of me, next to the TVStand. Around me is a Cabinet at my left side. Following the guideline, since the floorlamp is at left side, I can approach itby a series of moving forward and left/rightward. Since currently there is an obstacle at my left, I will first move forward twice.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is executed successfully;\n\nReasoning and reflection: I can see now I get closer to the floorlamp. It is still located in front of me at the left. I will try move forward and move leftward in series.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is executed successfully; Step 6 is executed successfully; Step 7 is Invalid, as a StandardIslandHeight is blocking you from moving forward.\n\nReasoning and reflection: I am a lot closer to the floorlamp by a series a forward and leftward movement. It is still in front of me. However, The last action is invalid, showing that I am blocked from moving forward.That means there is an obstacle in front of me and I can see it is probably a small table. Following the strategy, I can get away by first moving to the left and move forward. \nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully; Step 11 is executed successfully;\n\nReasoning and reflection: I can see that the floorlamp is at the right side of me, slight in the front. I think it in effect of consecutively moving leftward. Also, I have got away with the obstacle.Now I need to move right and I will probably be close to the floorlamp.\nExecutable plans: [[2, Move rightward by 0.25], [2, Move rightward by 0.25]]]\n\nEnvironment Feedback: Step 12 is executed successfully; Step 13 is executed successfully. \n\nReasoning and reflection: Last two action brought me closer to the floorlamp, however, following the strategy, I should not complete now since I can still be closer to the floorlamp by moving forward a few steps.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 14 is executed successfully; Step 15 is executed successfully; Step 16 is executed successfully.\n\n\nTask Success\n", + "\nHuman Instruction: Navigate to the computer on the desk and be as close as possible.\n\nReasoning and reflection: According to your instruction, I first need to locate the target object. I can see that the computer is located in my left front direction, placed on a desk. Next, I analyze the obstacles around me. In front of me, slightly to the right, there is a chair blocking my direct path. To avoid it, I decide to move leftward first, followed by a forward movement to approach the desk.\nExecutable plans: [[0, Move forward by 0.25], [3, Move leftward by 0.25]]\n\nEnvironment Feedback: Step 1 is executed successfully; Step 2 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I am now closer to the desk, and I can still see the computer on it. It remains in my left front direction. My last leftward movement failed because a StandardHeightTable is blocking my path. However, following the strategy, I need not address the invalid action since forward movement can still bring me closer to the target object. So I will still make forward movements for now. \nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 is executed successfully; Step 4 is executed successfully; Step 5 is Invalid, as a StandardHeightTable is blocking you from moving forward.\n\nReasoning and reflection: I can see that I am getting closer but the last forward move is blocked. Following the strategy, I need to address the invalid action now since it is an obstacle blocking from moving closer in the direction of target object. The computer is at my left side in the front, to bypass this obstacle, I plan to first move leftward again to create more space, then try moving forward once more to get closer to the desk and the computer.\nExecutable plans: [[3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 6 is executed successfully; Step 7 is invalid because the StandardHeight is blocking the movement.\n\nReasoning and reflection: I can see that the computer is still in my left front direction. However, the chair continues to block my path. From the environment feedback, I observed that while my leftward movement was successful, my forward movement was still blocked. This indicates that I didn’t move far enough left to fully bypass the obstacle. To address this, I decide to move leftward two more times to ensure a clear path, then try moving forward again.\nExecutable plans: [[3, Move leftward by 0.25], [3, Move leftward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8 is executed successfully; Step 9 is executed successfully; Step 10 is executed successfully.\n\nReasoning and reflection: Now, I can see that the computer has shifted to my right front direction. There are no longer any visible obstacles blocking my way. I deduce that the computer is now to my right because my previous leftward movements adjusted my position significantly to clear the earlier obstacle. Since the path is clear, I plan to approach the computer by moving forward three times and then rightward once to align myself next to it.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25], [2, Move rightward by 0.25]]\n\nEnvironment Feedback: Step 11 is executed successfully; Step 12 is executed successfully; Step 13 is executed successfully; Step 14 is executed successfully.\n\n\nTask Success\n\n", "\nHuman Instruction: Navigate to the book and be as close as possible.\n\nReasoning and reflection: At the moment, I cannot see the book in my current field of view. According to the strategy you provided, I will rotate my view ninety degrees at a time until I locate the target object. Since rotation changes my vision, I will not plan any other actions until the book is visible.\nExecutable plans: [[4, Rotate to the right by 90 degrees]]\n\nEnvironment Feedback: Step 1 is executed successfully. The book is still not visible in my current field of view.\n\nReasoning and reflection: I still cannot see the book in my current field of view. Following your instruction, I will rotate ninety degrees again. As the rotation may change my view, I will not plan any additional actions until I locate the book.\nExecutable plans: [[4, Rotate to the right by 90 degrees]]\n\nEnvironment Feedback: Step 2 is executed successfully. The book is now visible directly in front of me, placed on a shelf.\n\nReasoning and reflection: I have located the target object. The book is directly in front of me on a shelf. Following the strategy you provided, I will stop rotating now and start planning my navigation to get close to the book. Since the book is in front of me, I will first move two steps to the right to adjust my position, and then move forward three steps to approach it.\nExecutable plans: [[2, Move rightward by 0.25], [2, Move rightward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 3 to Step 7 are all executed successfully.\n\nReasoning and reflection: I can now see that the book is directly in front of me, but I have not yet moved close enough to it. According to the standard, I should move closer to the book. Therefore, I decide to move forward three more times to reach the desired position.\nExecutable plans: [[0, Move forward by 0.25], [0, Move forward by 0.25], [0, Move forward by 0.25]]\n\nEnvironment Feedback: Step 8, Step 9, and Step 10 are all executed successfully.\n\nTask Success\n\n\n" -] +] \ No newline at end of file diff --git a/easi/tasks/ebnavigation/prompts.py b/easi/tasks/ebnavigation/prompts.py index 721a995..a5b21aa 100644 --- a/easi/tasks/ebnavigation/prompts.py +++ b/easi/tasks/ebnavigation/prompts.py @@ -46,16 +46,15 @@ ''' # Output template from EmbodiedBench planner_utils.py (template, not template_lang). -OUTPUT_TEMPLATE = ''' -The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]} -The fields in above JSON follows the purpose below: -1. visual_state_description is for description of current state from the visual image, -2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, -3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, -4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name. -5. keep your plan efficient and concise. -!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!. -''' +OUTPUT_TEMPLATE = "\n" \ +"The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]}\n" \ +"The fields in above JSON follows the purpose below:\n" \ +"1. visual_state_description is for description of current state from the visual image, \n" \ +"2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, \n" \ +"3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, \n" \ +"4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name.\n" \ +"5. keep your plan efficient and concise.\n" \ +"!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!.\n" # JSON schema matching EmbodiedBench navigation output format. EBNAVIGATION_RESPONSE_SCHEMA = { From c7c2d80cc7bf1d23b6c63ae2666fbe05c1257a66 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 10:01:03 +0800 Subject: [PATCH 028/239] [Fix] Updated ebnavigation prompt --- easi/tasks/ebnavigation/prompts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ebnavigation/prompts.py b/easi/tasks/ebnavigation/prompts.py index a5b21aa..81a1333 100644 --- a/easi/tasks/ebnavigation/prompts.py +++ b/easi/tasks/ebnavigation/prompts.py @@ -406,7 +406,7 @@ def _make_first_prompt_suffix(self, max_id: int) -> str: Uses 'Aim for about 1-2 actions'. """ return ( - f'''To achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' + f'''\nTo achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' f'''\nAim for about 1-2 actions in this step. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' f'''\n\nThe input given to you is an first person view observation. Plan accordingly based on the visual observation.''' @@ -419,7 +419,7 @@ def _make_following_prompt_suffix(self, max_id: int) -> str: Uses 'Aim for about 5-6 actions'. """ return ( - f'''To achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' + f'''\nTo achieve the task, 1. Reason about the current visual state and your final goal, and 2. Reflect on the effect of previous actions. 3. Summarize how you learn from the Strategy and Examples provided ''' f'''\nAim for about 5-6 actions in this step to be closer to the target object. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' f'''\n\nThe input given to you is an first person view observation. Plan accordingly based on the visual observation.''' From d73cb20390b96ea155f2c7303edc983feb6b4560 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:00:35 +0800 Subject: [PATCH 029/239] [Feat] Add EB-Habitat benchmark integration - Add habitat_sim:v0_3_0 simulator registration (conda env + manifest) - Vendor EBHabEnv from EmbodiedBench with fixed imports - Add EBHabitatTask with dynamic action space via on_episode_reset hook - Add EBHabitatPromptBuilder matching VLMPlanner prompt construction - Add 6 per-split YAML configs (base, common_sense, complex_instruction, spatial_relationship, visual_appearance, long_horizon) - Add 26 offline tests for actions, task, prompts, and registry - Move EB-Habitat-specific deps (gym, hydra-core, omegaconf, imageio, habitat-lab) from simulator requirements.txt to task YAML additional_deps --- easi/simulators/ai2thor/manifest.yaml | 4 +- easi/simulators/habitat_sim/__init__.py | 0 easi/simulators/habitat_sim/manifest.yaml | 9 + .../simulators/habitat_sim/v0_3_0/__init__.py | 6 + easi/simulators/habitat_sim/v0_3_0/bridge.py | 64 ++ .../habitat_sim/v0_3_0/conda_env.yaml | 8 + .../habitat_sim/v0_3_0/env_manager.py | 35 + .../habitat_sim/v0_3_0/requirements.txt | 2 + .../habitat_sim/v0_3_0/simulator.py | 22 + easi/tasks/ebhabitat/__init__.py | 0 easi/tasks/ebhabitat/actions.py | 37 + easi/tasks/ebhabitat/bridge.py | 109 +++ .../ebhabitat/config/habitat_examples.json | 13 + easi/tasks/ebhabitat/ebhabitat_base.yaml | 30 + .../ebhabitat/ebhabitat_common_sense.yaml | 30 + .../ebhabitat_complex_instruction.yaml | 30 + .../ebhabitat/ebhabitat_long_horizon.yaml | 30 + .../ebhabitat_spatial_relationship.yaml | 30 + .../ebhabitat_visual_appearance.yaml | 30 + easi/tasks/ebhabitat/prompts.py | 419 ++++++++++ easi/tasks/ebhabitat/task.py | 83 ++ easi/tasks/ebhabitat/vendor/EBHabEnv.py | 371 +++++++++ easi/tasks/ebhabitat/vendor/__init__.py | 4 + easi/tasks/ebhabitat/vendor/actions.py | 182 +++++ .../tasks/ebhabitat/vendor/config/__init__.py | 1 + .../config/default_structured_configs.py | 556 +++++++++++++ .../vendor/config/task/dataset_v1.yaml | 10 + .../config/task/language_rearrangement.yaml | 99 +++ .../config/task/pddl_domain_replica_cad.yaml | 292 +++++++ .../vendor/config/task/task_obs/visual.yaml | 24 + .../ebhabitat/vendor/dataset/__init__.py | 5 + .../ebhabitat/vendor/dataset/episodes.py | 343 ++++++++ easi/tasks/ebhabitat/vendor/dataset/utils.py | 70 ++ easi/tasks/ebhabitat/vendor/measures.py | 763 ++++++++++++++++++ easi/tasks/ebhabitat/vendor/predicate_task.py | 380 +++++++++ easi/tasks/ebhabitat/vendor/sensors.py | 422 ++++++++++ easi/tasks/ebhabitat/vendor/utils.py | 207 +++++ tests/test_ebhabitat_task.py | 264 ++++++ 38 files changed, 4982 insertions(+), 2 deletions(-) create mode 100644 easi/simulators/habitat_sim/__init__.py create mode 100644 easi/simulators/habitat_sim/manifest.yaml create mode 100644 easi/simulators/habitat_sim/v0_3_0/__init__.py create mode 100644 easi/simulators/habitat_sim/v0_3_0/bridge.py create mode 100644 easi/simulators/habitat_sim/v0_3_0/conda_env.yaml create mode 100644 easi/simulators/habitat_sim/v0_3_0/env_manager.py create mode 100644 easi/simulators/habitat_sim/v0_3_0/requirements.txt create mode 100644 easi/simulators/habitat_sim/v0_3_0/simulator.py create mode 100644 easi/tasks/ebhabitat/__init__.py create mode 100644 easi/tasks/ebhabitat/actions.py create mode 100644 easi/tasks/ebhabitat/bridge.py create mode 100644 easi/tasks/ebhabitat/config/habitat_examples.json create mode 100644 easi/tasks/ebhabitat/ebhabitat_base.yaml create mode 100644 easi/tasks/ebhabitat/ebhabitat_common_sense.yaml create mode 100644 easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml create mode 100644 easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml create mode 100644 easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml create mode 100644 easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml create mode 100644 easi/tasks/ebhabitat/prompts.py create mode 100644 easi/tasks/ebhabitat/task.py create mode 100644 easi/tasks/ebhabitat/vendor/EBHabEnv.py create mode 100644 easi/tasks/ebhabitat/vendor/__init__.py create mode 100644 easi/tasks/ebhabitat/vendor/actions.py create mode 100644 easi/tasks/ebhabitat/vendor/config/__init__.py create mode 100644 easi/tasks/ebhabitat/vendor/config/default_structured_configs.py create mode 100644 easi/tasks/ebhabitat/vendor/config/task/dataset_v1.yaml create mode 100644 easi/tasks/ebhabitat/vendor/config/task/language_rearrangement.yaml create mode 100644 easi/tasks/ebhabitat/vendor/config/task/pddl_domain_replica_cad.yaml create mode 100644 easi/tasks/ebhabitat/vendor/config/task/task_obs/visual.yaml create mode 100644 easi/tasks/ebhabitat/vendor/dataset/__init__.py create mode 100644 easi/tasks/ebhabitat/vendor/dataset/episodes.py create mode 100644 easi/tasks/ebhabitat/vendor/dataset/utils.py create mode 100644 easi/tasks/ebhabitat/vendor/measures.py create mode 100644 easi/tasks/ebhabitat/vendor/predicate_task.py create mode 100644 easi/tasks/ebhabitat/vendor/sensors.py create mode 100644 easi/tasks/ebhabitat/vendor/utils.py create mode 100644 tests/test_ebhabitat_task.py diff --git a/easi/simulators/ai2thor/manifest.yaml b/easi/simulators/ai2thor/manifest.yaml index ef2039b..d6d8356 100644 --- a/easi/simulators/ai2thor/manifest.yaml +++ b/easi/simulators/ai2thor/manifest.yaml @@ -3,12 +3,12 @@ display_name: "AI2-THOR" default_version: "v5_0_0" versions: v2_1_0: - description: "AI2-THOR 2.1.0 — used by embodiedbench ALFRED track (legacy API)" + description: "AI2-THOR 2.1.0 — currently used by eb-alfred" simulator_class: "easi.simulators.ai2thor.v2_1_0.simulator.AI2ThorSimulatorV210" env_manager_class: "easi.simulators.ai2thor.v2_1_0.env_manager.AI2ThorEnvManagerV210" python_version: "3.8" v5_0_0: - description: "AI2-THOR 5.0.0 — latest version, modern API" + description: "AI2-THOR 5.0.0 — currently used by eb-navigation" simulator_class: "easi.simulators.ai2thor.v5_0_0.simulator.AI2ThorSimulatorV500" env_manager_class: "easi.simulators.ai2thor.v5_0_0.env_manager.AI2ThorEnvManagerV500" python_version: "3.10" diff --git a/easi/simulators/habitat_sim/__init__.py b/easi/simulators/habitat_sim/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/habitat_sim/manifest.yaml b/easi/simulators/habitat_sim/manifest.yaml new file mode 100644 index 0000000..2873ce3 --- /dev/null +++ b/easi/simulators/habitat_sim/manifest.yaml @@ -0,0 +1,9 @@ +name: habitat_sim +display_name: "Habitat Simulator" +default_version: "v0_3_0" +versions: + v0_3_0: + description: "Habitat 0.3.0 — currently used by eb-habitat" + simulator_class: "easi.simulators.habitat_sim.v0_3_0.simulator.HabitatSimulatorV030" + env_manager_class: "easi.simulators.habitat_sim.v0_3_0.env_manager.HabitatEnvManagerV030" + python_version: "3.10" diff --git a/easi/simulators/habitat_sim/v0_3_0/__init__.py b/easi/simulators/habitat_sim/v0_3_0/__init__.py new file mode 100644 index 0000000..8f1222c --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/__init__.py @@ -0,0 +1,6 @@ +"""Habitat simulator v0.3.0.""" + +from easi.simulators.habitat_sim.v0_3_0.env_manager import HabitatEnvManagerV030 +from easi.simulators.habitat_sim.v0_3_0.simulator import HabitatSimulatorV030 + +__all__ = ["HabitatSimulatorV030", "HabitatEnvManagerV030"] diff --git a/easi/simulators/habitat_sim/v0_3_0/bridge.py b/easi/simulators/habitat_sim/v0_3_0/bridge.py new file mode 100644 index 0000000..0dc0c42 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/bridge.py @@ -0,0 +1,64 @@ +"""Generic Habitat v0.3.0 bridge for smoke testing. + +This script runs inside the easi_habitat_sim_v0_3_0 conda environment. +Task-specific bridges (e.g., EBHabitatBridge) extend BaseBridge directly. +This generic bridge is used by `easi sim test habitat_sim:v0_3_0`. + +Usage: + python bridge.py --workspace /tmp/easi_xxx +""" + +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import poll_for_command, write_response, write_status +from easi.communication.schemas import make_error_response +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + + +class HabitatV030Bridge: + """Smoke test bridge — verifies habitat-sim imports work.""" + + def __init__(self, workspace): + self.workspace = Path(workspace) + + def run(self): + import habitat_sim + + logger.info("habitat-sim %s loaded successfully", habitat_sim.__version__) + write_status(self.workspace, ready=True) + + while True: + command = poll_for_command(self.workspace, timeout=60.0) + if command.get("type") == "close": + write_response(self.workspace, {"status": "ok"}) + break + write_response( + self.workspace, + make_error_response( + "Smoke test bridge: only 'close' supported" + ), + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--simulator-kwargs", type=str, default=None) + args, _ = parser.parse_known_args() + setup_logging("DEBUG") + bridge = HabitatV030Bridge(workspace=args.workspace) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml new file mode 100644 index 0000000..2184e90 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml @@ -0,0 +1,8 @@ +name: easi_habitat_sim_v0_3_0 +channels: + - aihabitat + - conda-forge + - defaults +dependencies: + - python=3.10 + - habitat-sim=0.3.0=*withbullet*headless* diff --git a/easi/simulators/habitat_sim/v0_3_0/env_manager.py b/easi/simulators/habitat_sim/v0_3_0/env_manager.py new file mode 100644 index 0000000..7c6edb6 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/env_manager.py @@ -0,0 +1,35 @@ +"""Environment manager for Habitat v0.3.0.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class HabitatEnvManagerV030(BaseEnvironmentManager): + """Environment manager for Habitat 0.3.0.""" + + @property + def simulator_name(self) -> str: + return "habitat_sim" + + @property + def version(self) -> str: + return "v0_3_0" + + @property + def needs_display(self) -> bool: + return False # habitat-sim headless build uses EGL + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda"] + + def get_validation_import(self) -> str: + return "import habitat_sim; import habitat" diff --git a/easi/simulators/habitat_sim/v0_3_0/requirements.txt b/easi/simulators/habitat_sim/v0_3_0/requirements.txt new file mode 100644 index 0000000..220ee24 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/requirements.txt @@ -0,0 +1,2 @@ +numpy>=1.24 +Pillow>=10.0 diff --git a/easi/simulators/habitat_sim/v0_3_0/simulator.py b/easi/simulators/habitat_sim/v0_3_0/simulator.py new file mode 100644 index 0000000..c9b954e --- /dev/null +++ b/easi/simulators/habitat_sim/v0_3_0/simulator.py @@ -0,0 +1,22 @@ +"""Habitat simulator v0.3.0.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class HabitatSimulatorV030(BaseSimulator): + """Habitat 0.3.0 simulator (ReplicaCAD rearrangement).""" + + @property + def name(self) -> str: + return "habitat_sim" + + @property + def version(self) -> str: + return "v0_3_0" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/easi/tasks/ebhabitat/__init__.py b/easi/tasks/ebhabitat/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebhabitat/actions.py b/easi/tasks/ebhabitat/actions.py new file mode 100644 index 0000000..4639354 --- /dev/null +++ b/easi/tasks/ebhabitat/actions.py @@ -0,0 +1,37 @@ +"""EB-Habitat action space definitions. + +The action space is DYNAMIC — it depends on the PDDL domain grounding +which varies per scene/episode. After EBHabEnv.__init__(), the actions +are available as env.language_skill_set (list of ~70 natural language strings). + +This module provides the transform_action_to_natural_language function +and a placeholder global action space for offline testing. + +Reference: EBHabEnv.py lines 76-107, 158-159 +""" + +from __future__ import annotations + +# Placeholder global action space for offline testing. +# Real action space is extracted from the env at runtime. +PLACEHOLDER_ACTIONS = [ + "navigate to the table 1", + "navigate to the table 2", + "navigate to the TV stand", + "navigate to the left counter in the kitchen", + "navigate to the right counter in the kitchen", + "navigate to the sink in the kitchen", + "navigate to the sofa", + "navigate to the refrigerator push point", + "pick up the toy airplane", + "place at the table 1", + "open the refrigerator", + "close the refrigerator", + "open the cabinet 4", + "close the cabinet 4", +] + + +def get_placeholder_action_space() -> list[str]: + """Return a placeholder action space for offline testing.""" + return list(PLACEHOLDER_ACTIONS) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py new file mode 100644 index 0000000..4c9644a --- /dev/null +++ b/easi/tasks/ebhabitat/bridge.py @@ -0,0 +1,109 @@ +"""EB-Habitat bridge — wraps vendored EBHabEnv via BaseBridge. + +This script runs inside the easi_habitat_sim_v0_3_0 conda env (Python 3.10). +Communicates with parent process via filesystem IPC. + +The bridge handles: +- Creating EBHabEnv with data_dir/dataset_dir from extracted zip files +- Mapping action text -> integer ID for env.step() +- Sending dynamic action space in reset response metadata +- Extracting task_success, task_progress, subgoal_reward from env info + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/data] [--simulator-kwargs '{}'] +""" + +from __future__ import annotations + +import json +import os +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge + + +class EBHabitatBridge(BaseBridge): + """BaseBridge wrapper around vendored EBHabEnv.""" + + _action_map: dict[str, int] = {} + _language_skill_set: list[str] = [] + + def _create_env(self, reset_config, simulator_kwargs): + from easi.tasks.ebhabitat.vendor.EBHabEnv import EBHabEnv + + # Resolve data directories from extracted zip files + data_dir = simulator_kwargs.get("data_dir") + dataset_dir = None + if data_dir: + # datasets.zip extracts pickle files to data_dir/datasets/ + candidate = Path(data_dir) / "datasets" + if candidate.exists(): + dataset_dir = str(candidate) + + eval_set = reset_config.get("eval_set", "base") + resolution = simulator_kwargs.get("screen_height", 500) + + env = EBHabEnv( + eval_set=eval_set, + data_dir=data_dir, + dataset_dir=dataset_dir, + resolution=resolution, + ) + + # Extract dynamic action space + self._language_skill_set = env.language_skill_set + self._action_map = {name: i for i, name in enumerate(self._language_skill_set)} + + return env + + def _on_reset(self, env, reset_config): + return env.reset() + + def _on_step(self, env, action_text): + # Map action text to integer ID + action_id = self._action_map.get(action_text, -1) + if action_id < 0: + # Try case-insensitive match + for name, idx in self._action_map.items(): + if name.lower() == action_text.lower(): + action_id = idx + break + if action_id < 0: + # Random action as fallback (matches EBHabEnv behavior) + action_id = np.random.randint(len(self._language_skill_set)) + + return env.step(action_id) + + def _extract_image(self, obs): + from easi.tasks.ebhabitat.vendor.utils import observations_to_image + return observations_to_image(obs, "head_rgb") + + def _extract_info(self, info): + return { + "task_success": float(info.get("task_success", 0.0)), + "task_progress": float(info.get("task_progress", 0.0)), + "subgoal_reward": float(info.get("subgoal_reward", 0.0)), + "last_action_success": float(info.get("last_action_success", 0.0)), + "feedback": str(info.get("env_feedback", "")), + "action_id": int(info.get("action_id", -1)), + } + + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Override to include dynamic action space in metadata.""" + response = super()._make_response(obs, reward, done, info) + if self._language_skill_set: + response["observation"]["metadata"]["dynamic_action_space"] = json.dumps( + self._language_skill_set + ) + return response + + +if __name__ == "__main__": + EBHabitatBridge.main() diff --git a/easi/tasks/ebhabitat/config/habitat_examples.json b/easi/tasks/ebhabitat/config/habitat_examples.json new file mode 100644 index 0000000..b73f984 --- /dev/null +++ b/easi/tasks/ebhabitat/config/habitat_examples.json @@ -0,0 +1,13 @@ +[ + "Human instruction: Put both an toy airplane and a bowl onto the black table.\nOutput: {'language_plan': 'To achieve the goal, the robot must locate the toy airplane and the bowl in the room and then move each item to the black table. There are two tables in the room, and the robot identifies table 1 as the black table. Therefore, the objective is to place both objects on table 1. The plan is as follows: first, navigate to the sofa, pick up the airplane, move to table 1, and place the airplane there. Then, proceed to table 2, where the bowl might be, pick up the bowl, return to table 1, and set the bowl there.', 'executable_plan': [{'action_id': 12, 'action_name': 'navigate to the sofa'}, {'action_id': 47, 'action_name': 'pick up the toy airplane'}, {'action_id': 6, 'action_description': 'navigate to the table 1'}, {'action_id': 50, 'action_description': 'place at the table 1'}, {'action_id': 7, 'action_description': 'navigate to the table 2'}, {'action_id': 42, 'action_description': 'pick up the bowl'}, {'action_id': 6, 'action_description': 'navigate to the table 1'}, {'action_id': 50, 'action_description': 'place at the table 1'}]}", + "Human instruction: I made a mistake and left the fridge open. Can you assist me by closing it?\nOutput: {'language_plan': 'The objective is for the robot to close the refrigerator. To do so, the robot first navigates to the refrigerator and then closes it.', executable_plan': [{'action_id': 13, 'action_name': 'navigate to the refrigerator'}, {'action_id': 61, 'action_name': 'close the refrigerator'}]}", + "Human instruction: Displace the sponge from the left counter.\nOutput: {'language_plan': 'To accomplish this task, the robot should navigate to the left counter to pick up the sponge. It should then move to another location, such as table 2, and place the sponge there.', 'executable_plan': [{'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 28, 'action_name': 'pick up the sponge'}, {'action_id': 7, 'action_name': 'navigate to the table 2'}, {'action_id': 51, 'action_name': 'place at the table 2'}]}", + "Human instruction: Collect a banana from the sofa and place it in the right counter.\nOutput: {'language_plan: 'The plan is to start by navigating to the sofa, picking up the banana, then moving to the right counter and placing the banana there.', 'executable_plan': [{'action_id': 12, 'action_name': 'navigate to the sofa'}, {'action_id': 37, 'action_name': 'pick up the banana'}, {'action_id': 10, 'action_name': 'navigate to the right counter in the kitchen'}, {'action_id': 54, 'action_name': 'place at the right counter in the kitchen'}]}", + "Human instruction: Arrange an apple and a scissors on the left counter.\nOutput: {'language_plan': 'The instruction requires finding an apple and a pair of scissors and relocating them to the left counter. First, the robot moves to the left counter to pick up the scissors, if present. Upon success, it places the scissors on the counter and then moves to table 1 to pick up an apple. Once successful, it returns to the left counter and places the apple there.', 'executable_plan': [{'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 21, 'action_name': 'pick up the scissors'}, {'action_id': 55, 'action_name': 'place at the left counter in the kitchen'}, {'action_id': 6, 'action_name': 'navigate to the table 1'}, {'action_id': 33, 'action_name': 'pick up the apple'}, {'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 55, 'action_name': 'place at the left counter in the kitchen'}]}", + "Human instruction: I need you to switch the places of lemon and pear in left counter and sofa.\nOutput: {'language_plan': 'To achieve this goal, the robot first navigates to the left counter, picks up the lemon, then moves to the sofa and places the lemon there. Afterward, it picks up the pear from the sofa, navigates back to the left counter, and places the pear there.', 'executable_plan': [{'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 34, 'action_name': 'pick up the lemon'}, {'action_id': 12, 'action_name': 'navigate to the sofa'}, {'action_id': 56, 'action_name': 'place at the sofa'}, {'action_id': 31, 'action_name': 'pick up the pear'}, {'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 55, 'action_name': 'place at the left counter in the kitchen'}]}", + "Human instruction: Relocate a sponge to its assigned brown table.\nOutput: {'language_plan': 'First, the robot needs to locate the sponge. Upon exploration, the sponge is found on the TV stand. The robot then navigates to the TV stand, picks up the sponge, and moves it to table 2, identified as the brown table, placing the sponge there.', 'executable_plan': [{'action_id': 8, 'action_name': 'navigate to the TV stand'}, {'action_id': 28, 'action_name': 'pick up the sponge'}, {'action_id': 7, 'action_name': 'navigate to the table 2'}, {'action_id': 51, 'action_name': 'place at the table 2'}]}", + "Human instruction: Lay an can and a peach on the right counter.\nOutput: {'language_plan': 'The plan involves first finding the peach and the can. First, navigating to table 2 where the robot observed the peach, picks it up, and moves to the right counter to place it. Then, the robot navigates to the TV stand to find a can, picks it up, and returns to the right counter to place the can.', 'executable_plan': [{'action_id': 7, 'action_name': 'navigate to the table 2'}, {'action_id': 32, 'action_name': 'pick up the peach'}, {'action_id': 10, 'action_name': 'navigate to the right counter in the kitchen'}, {'action_id': 54, 'action_name': 'place at the right counter in the kitchen'}, {'action_id': 8, 'action_name': 'navigate to the TV stand'}, {'action_id': 35, 'action_name': 'pick up the can'}, {'action_id': 10, 'action_name': 'navigate to the right counter in the kitchen'}, {'action_id': 54, 'action_name': 'place at the right counter in the kitchen'}]}", + "Human instruction: In black table and right counter, could you swap the locations of scissors and pear?\nOutput: {'language_plan': 'The task is to swap the locations of a pair of scissors and a pear between the black table (identified as table 1) and the right counter. To accomplish this, the robot should first navigate to table 1 to pick up the scissors. Then, it will move to the right counter in the kitchen and place the scissors there. Subsequently, the robot will pick up the pear from the right counter, navigate back to table 1, and place the pear there. ', 'executable_plan': [{'action_id': 6, 'action_name': 'navigate to the table 1'}, {'action_id': 21, 'action_name': 'pick up the scissors'}, {'action_id': 10, 'action_name': 'navigate to the right counter in the kitchen'}, {'action_id': 54, 'action_name': 'place at the right counter in the kitchen'}, {'action_id': 31, 'action_name': 'pick up the pear'}, {'action_id': 11, 'action_name': 'navigate to the table 1'}, {'action_id': 50, 'action_name': 'place at the table 1'}]}", + "Human instruction: Move the spoon off the right counter.\nOutput: {'language_plan': 'The plan involves first locating the spoon on the right counter in the kitchen. The robot should navigate to the right counter, pick up the spoon, and then move to the left counter in the kitchen to place it there', 'executable_plan': [{'action_id': 10, 'action_name': 'navigate to the right counter in the kitchen'}, {'action_id': 26, 'action_name': 'pick up the spoon'}, {'action_id': 11, 'action_name': 'navigate to the left counter in the kitchen'}, {'action_id': 55, 'action_name': 'place at the left counter in the kitchen'}]}" +] + \ No newline at end of file diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml new file mode 100644 index 0000000..a1473bf --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_base +display_name: "EB-Habitat Base Split" +description: "Base evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "base" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml new file mode 100644 index 0000000..0c9ca26 --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_common_sense +display_name: "EB-Habitat Common Sense Split" +description: "Common sense evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "common_sense" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "common_sense" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml new file mode 100644 index 0000000..95af881 --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_complex_instruction +display_name: "EB-Habitat Complex Instruction Split" +description: "Complex instruction evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "complex_instruction" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "complex_instruction" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml new file mode 100644 index 0000000..a41cd43 --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_long_horizon +display_name: "EB-Habitat Long Horizon Split" +description: "Long horizon evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "long_horizon" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "long_horizon" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml new file mode 100644 index 0000000..a1c67fa --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_spatial_relationship +display_name: "EB-Habitat Spatial Relationship Split" +description: "Spatial relationship evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "spatial_relationship" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "spatial_relationship" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml new file mode 100644 index 0000000..a558250 --- /dev/null +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -0,0 +1,30 @@ +name: ebhabitat_visual_appearance +display_name: "EB-Habitat Visual Appearance Split" +description: "Visual appearance evaluation split for EB-Habitat (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 30 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + split: "visual_appearance" + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "visual_appearance" + use_feedback: true + chat_history: false diff --git a/easi/tasks/ebhabitat/prompts.py b/easi/tasks/ebhabitat/prompts.py new file mode 100644 index 0000000..c3f445a --- /dev/null +++ b/easi/tasks/ebhabitat/prompts.py @@ -0,0 +1,419 @@ +"""EB-Habitat prompt builder matching EmbodiedBench VLMPlanner exactly. + +Supports both chat_history=False (stateless) and chat_history=True modes. +Referenced in ebhabitat*.yaml via: + agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + +Reference: EmbodiedBench/embodiedbench/planner/vlm_planner.py + EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py:28-48 + EmbodiedBench/embodiedbench/planner/planner_utils.py +""" +from __future__ import annotations + +import json +from pathlib import Path + +from easi.agents.prompt_builder import _encode_image_base64, validate_action_name +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Exact system prompt from EmbodiedBench system_prompts.py (habitat_system_prompt). +# Three format placeholders: max_action_id, action_list, examples. +HABITAT_SYSTEM_PROMPT = '''## You are a robot operating in a home. Given a task, you must accomplish the task using a defined set of actions to achieve the desired outcome. + +## Action Descriptions and Validity Rules +\u2022 Navigation: Parameterized by the name of the receptacle to navigate to. So long as the receptacle is present in the scene, this skill is always valid +\u2022 Pick: Parameterized by the name of the object to pick. Only valid if the robot is close to the object, not holding another object, and the object is not inside a closed receptacle. +\u2022 Place: Parameterized by the name of the receptacle to place the object on. Only valid if the robot is close to the receptacle and is holding an object. +\u2022 Open: Parameterized by the name of the receptacle to open. Only valid if the receptacle is closed and the robot is close to the receptacle. +\u2022 Close: Parameterized by the name of the receptacle to close. Only valid if the receptacle is open and the robot is close to the receptacle. + +## The available action id (0 ~ {}) and action names are: {}. + +{} + +## Guidelines +1. **Output Plan**: Avoid generating empty plan. Each plan should include no more than 20 actions. +2. **Visibility**: If an object is not currently visible, use the "Navigation" action to locate it or its receptacle before attempting other operations. +3. **Action Validity**: Make sure match the action name and its corresponding action id in the output.\n Avoid performing actions that do not meet the defined validity criteria. +4. **Prevent Repeating Action Sequences**: Do not repeatedly execute the same action or sequence of actions.\n Try to modify the action sequence because previous actions do not lead to success. +5. **Multiple Instances**: There may be multiple instances of the same object, distinguished by an index following their names, e.g., cabinet 2, cabinet 3. You can explore these instances if you do not find the desired object in the current receptacle. +6. **Reflection on History and Feedback**: Use interaction history and feedback from the environment to refine and enhance your current strategies and actions. If the last action is invalid, reflect on the reason, such as not adhering to action rules or missing preliminary actions, and adjust your plan accordingly. +''' + +# Output template from EmbodiedBench planner_utils.py (template, not template_lang). +# Shared across all EmbodiedBench benchmarks (Alfred, Habitat, etc.). +OUTPUT_TEMPLATE = ''' +The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]} +The fields in above JSON follows the purpose below: +1. visual_state_description is for description of current state from the visual image, +2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, +3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, +4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name. +5. keep your plan efficient and concise. +!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!. +''' + +# JSON schema for structured output (same as EB-Alfred) +EBHABITAT_RESPONSE_SCHEMA = { + "type": "json_schema", + "json_schema": { + "name": "embodied_planning", + "schema": { + "type": "object", + "properties": { + "visual_state_description": { + "type": "string", + "description": "Description of current state from the visual image", + }, + "reasoning_and_reflection": { + "type": "string", + "description": "summarize the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task", + }, + "language_plan": { + "type": "string", + "description": "The list of actions to achieve the user instruction. Each action is started by the step number and the action name", + }, + "executable_plan": { + "type": "array", + "description": "A list of actions needed to achieve the user instruction, with each action having an action ID and a name. Do not output empty list.", + "items": { + "type": "object", + "properties": { + "action_id": { + "type": "integer", + "description": "The action ID to select from the available actions given by the prompt", + }, + "action_name": { + "type": "string", + "description": "The name of the action", + }, + }, + "required": ["action_id", "action_name"], + }, + }, + }, + "required": [ + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + ], + }, + }, +} + +_CONFIG_DIR = Path(__file__).parent / "config" + + +class EBHabitatPromptBuilder: + """Prompt builder for EB-Habitat that exactly matches VLMPlanner output. + + Supports two modes: + - chat_history=False (default): Stateless. Every turn sends the full system + prompt + examples + instruction. No message accumulation. + - chat_history=True: First turn is identical. Subsequent turns send a minimal + prompt (instruction + history + reflection). Messages accumulate. + """ + + def __init__( + self, + n_shot: int = 10, + split: str = "base", + use_feedback: bool = True, + chat_history: bool = False, + ): + self.n_shot = n_shot + self.split = split + self.use_feedback = use_feedback + self.chat_history = chat_history + + # Load examples (same file for all splits, unlike EB-Alfred) + examples_file = _CONFIG_DIR / "habitat_examples.json" + with open(examples_file) as f: + self._examples: list[str] = json.load(f) + + # Action space state + self._actions: list[str] = [] + self._action_str: str = "" + self._action_id_map: dict[str, int] = {} + self._id_action_map: dict[int, str] = {} + + def set_action_space(self, actions: list[str]) -> None: + """Update action space (e.g., after dynamic expansion per episode).""" + self._actions = list(actions) + self._action_str = self._build_action_list_str(actions) + self._action_id_map = {name: i for i, name in enumerate(actions)} + self._id_action_map = {i: name for i, name in enumerate(actions)} + + def action_name_to_id(self, name: str) -> int | None: + return self._action_id_map.get(name) + + def action_id_to_name(self, action_id: int) -> str | None: + return self._id_action_map.get(action_id) + + @staticmethod + def _build_action_list_str(actions: list[str]) -> str: + """Build action list in VLMPlanner's get_availabel_action_prompt format.""" + parts = '' + for i in range(len(actions)): + parts += '\naction id ' + str(i) + ': ' + str(actions[i]) + if i < len(actions) - 1: + parts += ', ' + return parts + + # ---- PromptBuilderProtocol methods ---- + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build COMPLETE message list to send to LLM.""" + if not self._action_id_map or self._actions != memory.action_space: + self.set_action_space(memory.action_space) + + if self.chat_history: + return self._build_chat_history_messages(memory) + else: + return self._build_stateless_messages(memory) + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into validated actions.""" + from easi.utils.json_repair import fix_json + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + + if "action_id" in entry: + action_id = entry["action_id"] + action_name = self.action_id_to_name(action_id) + if action_name is None: + action_name = entry.get("action_name", "") + else: + action_name = entry.get("action", "") + + validated = validate_action_name(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions + + def get_response_format(self, memory: AgentMemory) -> dict: + """Return JSON schema for API-level enforcement.""" + return EBHABITAT_RESPONSE_SCHEMA + + # ---- Stateless mode (chat_history=False) ---- + + def _build_stateless_messages(self, memory: AgentMemory) -> list[dict]: + """Build full prompt each turn. No history accumulation.""" + prompt = self._build_prompt_text( + memory.task_description, memory.action_history, + ) + return self._wrap_as_user_message(prompt, memory.current_observation) + + def _build_prompt_text( + self, + task_description: str, + action_history: list[tuple[str, str]], + ) -> str: + """Build the full prompt text matching VLMPlanner.process_prompt(). + + Covers both first-turn and subsequent-turn paths with + chat_history=False (lines 53-63 and 78-94 of vlm_planner.py). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if len(action_history) == 0: + # First turn path (vlm_planner.py lines 53-63) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += f" You are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." + + else: + # Subsequent turn path, chat_history=False (vlm_planner.py lines 78-94) + # Note: VLMPlanner has TWO spaces after "Example" on line 80 (preserved) + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + prompt += '\nStep {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + prompt += '\nStep {}, action id {}, {}'.format( + i, action_id, action_name, + ) + + prompt += f'''\n\n Considering the above interaction history and the current image state, to achieve the human instruction: '{user_instruction}', you are supposed to output in json. You need to describe current visual state from the image, summarize interaction history {'and environment feedback ' if self.use_feedback else ''}and reason why the last action or plan failed and did not finish the task, output your new plan to achieve the goal from current state. At the end, output the excutable plan with action ids(0 ~ {max_id}) from the available actions.''' + + # Append output template (VLMPlanner act() line 203: prompt + template) + prompt += OUTPUT_TEMPLATE + + return prompt + + # ---- Chat history mode (chat_history=True) ---- + + def _build_chat_history_messages(self, memory: AgentMemory) -> list[dict]: + """Build accumulated message history for chat_history=True mode.""" + if memory.is_first_turn: + return self._build_stateless_messages(memory) + + messages: list[dict] = [] + + for step_idx, step in enumerate(memory.steps): + if step.llm_response is None: + continue + + if step_idx == 0: + prompt = self._build_first_turn_prompt(memory.task_description) + else: + history_up_to = [ + (s.action.action_name, s.feedback) + for s in memory.steps[:step_idx] + if s.action and s.feedback is not None + ] + prompt = self._build_chat_subsequent_prompt( + memory.task_description, history_up_to, + ) + + messages.extend( + self._wrap_as_user_message(prompt, step.observation) + ) + messages.append({ + "role": "assistant", + "content": [{"type": "text", "text": step.llm_response}], + }) + + all_history = memory.action_history + current_prompt = self._build_chat_subsequent_prompt( + memory.task_description, all_history, + ) + messages.extend( + self._wrap_as_user_message(current_prompt, memory.current_observation) + ) + + return messages + + def _build_first_turn_prompt(self, task_description: str) -> str: + """Build first-turn prompt text (identical for both modes).""" + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + if self.n_shot >= 1: + examples_str = '\n\n'.join([ + f'## Task Execution Example {i}: \n {x}' + for i, x in enumerate(self._examples[:self.n_shot]) + ]) + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, examples_str, + ) + else: + prompt = HABITAT_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + prompt += f" You are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." + prompt += OUTPUT_TEMPLATE + + return prompt + + def _build_chat_subsequent_prompt( + self, + task_description: str, + action_history: list[tuple[str, str]], + ) -> str: + """Build minimal subsequent-turn prompt for chat_history=True. + + VLMPlanner lines 66-77: no system prompt, no examples. + Uses "The human instruction is:" (no "## Now the"). + """ + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + prompt = f'The human instruction is: {user_instruction}.' + prompt += '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + prompt += '\nStep {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + prompt += '\nStep {}, action id {}, {}'.format( + i, action_id, action_name, + ) + + prompt += f'''\n\n Considering the above interaction history and the current image state, to achieve the human instruction: '{user_instruction}', you are supposed to output in json. You need to describe current visual state from the image, summarize interaction history {'and environment feedback ' if self.use_feedback else ''}and reason why the last action or plan failed and did not finish the task, output your new plan to achieve the goal from current state. At the end, output the excutable plan with action ids(0 ~ {max_id}) from the available actions.''' + + prompt += OUTPUT_TEMPLATE + + return prompt + + # ---- Helpers ---- + + @staticmethod + def _wrap_as_user_message(prompt: str, observation) -> list[dict]: + """Wrap prompt text + observation image as a user message. + + Image BEFORE text (VLMPlanner line 127). + """ + content: list[dict] = [] + if observation and observation.rgb_path: + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content.append({ + "type": "image_url", + "image_url": {"url": image_url}, + }) + content.append({"type": "text", "text": prompt}) + + return [{"role": "user", "content": content}] diff --git a/easi/tasks/ebhabitat/task.py b/easi/tasks/ebhabitat/task.py new file mode 100644 index 0000000..f4118f6 --- /dev/null +++ b/easi/tasks/ebhabitat/task.py @@ -0,0 +1,83 @@ +"""EB-Habitat task for EASI. + +Adapts the EmbodiedBench EB-Habitat benchmark to EASI's task interface. +Supports 6 splits via per-split .yaml configs. + +Episode data flows from HF dataset -> task.format_reset_config() -> bridge +reset_config -> EBHabEnv.reset(). The bridge handles episode loading +from pickle files; EASI provides instruction/metadata from JSONL. +""" + +from __future__ import annotations + +import json +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult +from easi.tasks.ebhabitat.actions import get_placeholder_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBHabitatTask(BaseTask): + + def _build_action_space(self) -> list[str]: + return get_placeholder_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "ebhabitat_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def on_episode_reset(self, observation, agent) -> None: + """Update agent action space from per-episode bridge metadata.""" + dynamic_actions_json = observation.metadata.get("dynamic_action_space") + if dynamic_actions_json and hasattr(agent, 'update_action_space'): + dynamic_actions = json.loads(dynamic_actions_json) + agent.update_action_space(dynamic_actions) + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map EB-Habitat HF row to bridge reset config.""" + return { + "episode_id": episode.get("id", "unknown"), + "eval_set": self._config.get("dataset", {}).get("split", "base"), + "instruction": episode.get("instruction", ""), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract metrics from trajectory.""" + if not trajectory: + return { + "task_success": 0.0, + "task_progress": 0.0, + "subgoal_reward": 0.0, + "num_steps": 0.0, + } + + last_step = trajectory[-1] + return { + "task_success": last_step.info.get("task_success", 0.0), + "task_progress": last_step.info.get("task_progress", 0.0), + "subgoal_reward": last_step.info.get("subgoal_reward", 0.0), + "num_steps": float(len(trajectory)), + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download.""" + return [ + { + "id": 0, + "episode_id": "140", + "instruction": "Find a toy airplane and move it to the right counter.", + "instruct_id": "f0917e29", + "scene_id": "data/replica_cad/configs/scenes/v3_sc3_staging_02.scene_instance.json", + }, + ] diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py new file mode 100644 index 0000000..b99379e --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -0,0 +1,371 @@ +""" +Habitat Environment for Household Robot Task Simulation + +This module provides a custom OpenAI Gym environment for simulating household robot tasks +using the habitat framework. It supports various object interactions and task scenarios. +The code is based on https://github.com/facebookresearch/habitat-lab and https://github.com/apple/ml-llarp + +Dependencies: +- habitat-lab +- gym +- numpy +- PIL +""" +import gym +import os +import time +import json +import imageio +from PIL import Image +import numpy as np +import habitat +import hydra +from habitat.datasets import make_dataset +from easi.tasks.ebhabitat.vendor.config.default_structured_configs import ( + ThirdRGBSensorConfig, +) +from habitat.gym.gym_definitions import _add_sim_sensor_to_config +from omegaconf import OmegaConf + +from habitat_sim.utils import viz_utils as vut +from easi.tasks.ebhabitat.vendor.config import default_structured_configs +import easi.tasks.ebhabitat.vendor.predicate_task +import easi.tasks.ebhabitat.vendor.config +import easi.tasks.ebhabitat.vendor.measures +from easi.tasks.ebhabitat.vendor.utils import observations_to_image, merge_to_file, draw_text +from easi.utils.logging import get_logger +logger = get_logger(__name__) + +HABITAT_CONFIG_PATH = os.path.join(os.path.dirname(__file__), 'config/task/language_rearrangement.yaml') + + +ValidEvalSets = [ + 'base', 'common_sense', 'complex_instruction', + 'spatial_relationship', 'visual_appearance', 'long_horizon' + ] + +def add_receptacle(string, skill): + if 'table_0' in skill[1][0]: + string += 'table ' + skill[1][0].split('table_0')[1] + elif 'fridge' in skill[1][0]: + string += 'refrigerator push point' + elif 'refrigerator' in skill[1][0]: + string += 'refrigerator' + elif 'drawer_right' in skill[1][0]: + string += 'right drawer of the kitchen counter' + elif 'drawer_left' in skill[1][0]: + string += 'left drawer of the kitchen counter' + elif 'chair_0' in skill[1][0]: + string += 'chair ' + skill[1][0].split('chair_0')[1] + elif 'tvstand' in skill[1][0]: + string += 'TV stand' + elif 'counter_left' in skill[1][0]: + string += 'left counter in the kitchen' + elif 'counter_right' in skill[1][0]: + string += 'right counter in the kitchen' + elif 'sink' in skill[1][0]: + string += 'sink in the kitchen' + elif 'sofa' in skill[1][0]: + string += 'sofa' + elif 'cab' in skill[1][0]: + string += 'cabinet ' + skill[1][0].split('_')[-1] + else: + raise NotImplementedError + return string + + +def transform_action_to_natural_language(skill_set): + language_skill_set = [] + for skill in skill_set: + if 'nav' in skill[0]: + string = 'navigate to the ' + string = add_receptacle(string, skill) + elif 'pick' in skill[0]: + string = 'pick up the ' + skill[0].split('_')[1] + elif 'open' in skill[0]: + string = 'open the ' + if 'fridge' in skill[0]: + string += 'refrigerator' + elif 'cab' in skill[0]: + string += 'cabinet ' + skill[1][0].split('_')[-1] + else: + raise NotImplementedError + elif 'close' in skill[0]: + string = 'close the ' + if 'fridge' in skill[0]: + string += 'refrigerator' + elif 'cab' in skill[0]: + string += 'cabinet ' + skill[1][0].split('_')[-1] + else: + raise NotImplementedError + elif 'place' in skill[0]: + string = 'place at the ' + string = add_receptacle(string, skill) + else: + raise NotImplementedError + + language_skill_set.append(string) + return language_skill_set + + + +class EBHabEnv(gym.Env): + def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, + start_epi_index=0, resolution=500, recording=False, + data_dir=None, dataset_dir=None): + """ + Initialize the HabitatRearrange environment. + + Args: + data_dir: Path to simulator assets (scenes, objects, robots). + If provided, a 'data' symlink is created for Habitat config resolution. + dataset_dir: Path to directory containing {split}.pickle files. + Defaults to vendor/datasets/ if not provided. + """ + # load config + hydra.core.global_hydra.GlobalHydra.instance().clear() + self.config = habitat.get_config(HABITAT_CONFIG_PATH) + _add_sim_sensor_to_config(self.config, ThirdRGBSensorConfig()) + # set the dataset + assert eval_set in ValidEvalSets + OmegaConf.set_readonly(self.config, False) + if dataset_dir: + self.config.habitat.dataset.data_path = os.path.join(dataset_dir, '{}.pickle'.format(eval_set)) + else: + self.config.habitat.dataset.data_path = os.path.join(os.path.dirname(__file__), 'datasets/{}.pickle'.format(eval_set)) + # Create 'data' symlink for Habitat scene asset resolution + if data_dir: + from pathlib import Path + data_link = Path('data') + if not data_link.exists(): + try: + os.symlink(os.path.abspath(data_dir), str(data_link)) + except OSError: + logger.warning("Could not create 'data' symlink to %s", data_dir) + self.config.habitat.simulator.agents.main_agent.sim_sensors.head_rgb_sensor.height = resolution + self.config.habitat.simulator.agents.main_agent.sim_sensors.head_rgb_sensor.width = resolution + self.resolution = resolution + + # modify config path to ease data loading + self.dataset = make_dataset(self.config.habitat.dataset.type, config=self.config.habitat.dataset) + + # initilaize env + self.env = habitat.gym.make_gym_from_config(self.config, self.dataset) + self.observation_space = self.env.observation_space + # action of LanguageRearangeEnv is discrete value from 0 to 69 + self.action_space = self.env.action_space + + # Episode tracking + self.down_sample_ratio = down_sample_ratio + self.number_of_episodes = self.env.number_of_episodes * down_sample_ratio + self._reset = False + self._current_episode_num = 0 + while start_epi_index >= 1 and self._current_episode_num < start_epi_index: + self.env.reset(return_info=False) + self._current_episode_num += 1 + + self._current_step = 0 + self._max_episode_steps = 30 + self._cur_invalid_actions = 0 + self._max_invalid_actions = 10 + self._episode_start_time = 0 + # is holding an object + self.is_holding = False + self.episode_log = [] + + # init instruction and skill sets + self.episode_language_instruction = '' + self.episode_data = None + self.skill_set = self.env.env.env._env.task.actions['pddl_hl_action']._action_datas + self.language_skill_set = transform_action_to_natural_language(self.skill_set) + + # env feedback and image save + # feedback verbosity, 0: concise, 1: verbose + self.feedback_verbosity = 1 + self.log_path = 'running/eb_habitat/{}'.format(exp_name) + # video recorder + self.recording = recording + self.episode_video = [] + + def current_episode(self, all_info: bool = False): + return self.env.current_episode(all_info) + + + def reset(self, **kwargs): + """ + Reset the environment for a new episode. The env will iterate over all the task data from the dataset + Returns: observation + """ + assert self._current_episode_num <= self.number_of_episodes + obs, info = self.env.reset(return_info=True, **kwargs) + logger.info('Episode {}: {}'.format(str(self._current_episode_num), str(self.current_episode()))) + self.episode_language_instruction = info['lang_goal'] + self.episode_data = self.dataset.episodes[self._current_episode_num] + self._current_step = 0 + self._cur_invalid_actions = 0 + self._current_episode_num += 1 + self.is_holding = False + self._reset = True + self.episode_log = [] + if self.recording: + self.episode_video = [] + self._episode_start_time = time.time() + return obs + + def get_env_feedback(self, info): + """ + Generate feedback message for the current step. + Args: + info (dict): Action execution information + Returns: + str: Descriptive message about step outcome + """ + if info['was_prev_action_invalid']: + env_feedback = 'Last action is invalid.' + if 'pick' in info['action'] and self.feedback_verbosity: + if self.is_holding: + env_feedback += ' Robot cannot pick any object when holding something. Please place the object before picking something.' + else: + env_feedback += ' Robot cannot pick any object that is not near the robot. Navigate to other place to find the object.' + elif 'place' in info['action'] and self.feedback_verbosity: + if self.is_holding: + env_feedback += ' Robot cannot place any object that is not near the robot. Navigate to other place to find the object.' + else: + env_feedback += ' Robot cannot place any object when not holding something. Please pick the object before place it.' + elif 'open' in info['action'] and self.feedback_verbosity: + env_feedback += " Check whether the receptacle is already open or the robot is not near the receptacle." + elif 'close' in info['action'] and self.feedback_verbosity: + env_feedback += " Check whether the receptacle is already closed or the robot is not near the receptacle." + else: + env_feedback = 'Last action executed successfully' + if 'pick' in info['action'] and self.feedback_verbosity: + self.is_holding = True + env_feedback += ' and you are holding {}.'.format(info['action'].split('(')[0].split('_')[1]) + elif 'place' in info['action'] and self.feedback_verbosity: + self.is_holding = False + env_feedback += ' and you are holding nothing.' + elif 'open' in info['action'] and self.feedback_verbosity: + if 'fridge' in info['action']: + env_feedback += ' and now refrigerator is open.' + elif 'cab' in info['action']: + env_feedback += ' and now cabinet {} is open.'.format(info['action'].split('(')[1].strip(')').split('_')[1]) + else: + raise NotImplementedError + elif 'close' in info['action'] and self.feedback_verbosity: + if 'fridge' in info['action']: + env_feedback += ' and now refrigerator is closed.' + elif 'cab' in info['action']: + env_feedback += ' and now cabinet {} is closed.'.format(info['action'].split('(')[1].strip(')').split('_')[1]) + else: + raise NotImplementedError + else: + env_feedback += '.' + + # we don't use this info + # env_feedback += ' The current task progress is {}.'.format(info['task_progress']) + return env_feedback + + def step(self, action, reasoning='', **kwargs): + """ + Execute a single environment step. + Args: + action (int): Index of action in action space + Returns: + tuple: (observation, reward, done, environment feedback) + """ + assert self._reset, 'Reset env before stepping' + self._current_step += 1 + obs, reward, done, info = self.env.step(action, **kwargs) + if self.recording: + self.episode_video.append(self.env.render("rgb_array")) + + if info['was_prev_action_invalid']: + self._cur_invalid_actions += 1 + + # if exceed the max step + if self._current_step >= self._max_episode_steps or self._cur_invalid_actions >= self._max_invalid_actions: + done = True + # env feedback + env_feedback = self.get_env_feedback(info) + info['env_feedback'] = env_feedback + info['env_step'] = self._current_step + info['episode_elapsed_seconds'] = time.time() - self._episode_start_time, + info['action_id'] = action + info['action_description'] = self.language_skill_set[action] + info['reasoning'] = reasoning + info['instruction'] = self.episode_language_instruction + info['last_action_success'] = 1 - float(info['was_prev_action_invalid']) + info['task_success'] = info['predicate_task_success'] + if info['task_success']: + info['task_progress'] = 1.0 + self.episode_log.append(info) + return obs, reward, done, info + + def seed(self, seed=None): + self.env.seed(seed) + + def save_image(self, obs, key='head_rgb'): + """Save current agent observation as a PNG image.""" + folder = self.log_path + '/images/episode_{}'.format(self._current_episode_num) + if not os.path.exists(folder): + os.makedirs(folder) + img = Image.fromarray(observations_to_image(obs, key)) + # time_stamp = time.strftime("%Y%m%d_%H%M%S", time.localtime()) + image_path = os.path.join(folder, 'episode_{}_step_{}.png'.format(self._current_episode_num, self._current_step)) #, time_stamp)) + img.save(image_path) + return image_path + + def save_episode_log(self): + if not os.path.exists(self.log_path): + os.makedirs(self.log_path) + # time_stamp = time.strftime("%Y%m%d_%H%M%S", time.localtime()) + filename = 'episode_{}_step_{}.json'.format(self._current_episode_num, self._current_step) #, time_stamp) + if len(self.episode_log): + with open(os.path.join(self.log_path, filename), 'w', encoding='utf-8') as f: + for item in self.episode_log: + json.dump(item, f, ensure_ascii=False) + f.write('\n') + + if len(self.episode_video): + folder = self.log_path + '/video' + if not os.path.exists(folder): + os.makedirs(folder) + video_writer = imageio.get_writer(os.path.join(folder, 'video_episode_{}_steps_{}.mp4'.format(self._current_episode_num, self._current_step)), fps=30) + for data in self.episode_video: + video_writer.append_data(data) + video_writer.close() + + + + def render(self, mode: str = "rgb"): + return self.env.render(mode) + + def close(self) -> None: + """Terminate the environment.""" + self.env.close() + + +if __name__ == '__main__': + """ + Example usage of the EBHabEnv environment. + Demonstrates environment interaction with random actions. + """ + env = EBHabEnv(eval_set='base') + obs = env.reset() + print([(i, name) for i, name in enumerate(env.language_skill_set)]) + for _ in range(30): + env.save_image(obs) + action = int(input('action id: ')) #env.action_space.sample() + if action in env.language_skill_set: + action = env.language_skill_set.index(action) + else: + action = int(action) + if action < 0: + break + + obs_new, reward, done, info = env.step(action) + print(reward, done, info) + env.save_image(obs_new) + if done: + break + env.close() diff --git a/easi/tasks/ebhabitat/vendor/__init__.py b/easi/tasks/ebhabitat/vendor/__init__.py new file mode 100644 index 0000000..e7b3339 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/__init__.py @@ -0,0 +1,4 @@ +"""Vendored EB-Habitat environment from EmbodiedBench. + +Side-effect imports register Habitat tasks and measures. +""" diff --git a/easi/tasks/ebhabitat/vendor/actions.py b/easi/tasks/ebhabitat/vendor/actions.py new file mode 100644 index 0000000..15f03df --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/actions.py @@ -0,0 +1,182 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +from typing import Any, Optional +import numpy as np +from gym import spaces +from habitat.core.registry import registry +from habitat.tasks.rearrange.actions.articulated_agent_action import \ + ArticulatedAgentAction +from habitat.tasks.rearrange.actions.grip_actions import ( + GazeGraspAction, GripSimulatorTaskAction, MagicGraspAction, + SuctionGraspAction) +from habitat.tasks.rearrange.rearrange_sim import RearrangeSim + +from easi.tasks.ebhabitat.vendor.utils import get_allowed_actions + + +@registry.register_task_action +class CustomArmAbsJointAction(ArticulatedAgentAction): + @property + def action_space(self): + return spaces.Dict( + { + "arm_joint_action": spaces.Box( + shape=(self._config.arm_joint_dimensionality,), + low=-255.0, + high=255.0, + dtype=np.float32, + ) + } + ) + + def step(self, *args, arm_joint_action, **kwargs): + if np.sum(arm_joint_action) < 1e-3: + # Don't change the arm position if this action wasn't invoked (set to 0). + return + # No clipping because the arm is being set to exactly where it needs to + # go. + self.cur_articulated_agent.arm_joint_pos = arm_joint_action + + +@registry.register_task_action +class SafeSuctionGraspAction(MagicGraspAction): + def __init__(self, *args, config, sim: RearrangeSim, **kwargs): + super().__init__(*args, config=config, sim=sim, **kwargs) + self._sim: RearrangeSim = sim + self._prevent_change_duration = config.prevent_gripper_change_duration + + def reset(self, *args: Any, **kwargs: Any) -> None: + self._step_count = 0 + super().reset(*args, **kwargs) + + def step(self, grip_action, should_step=True, *args, **kwargs): + self._step_count += 1 + if grip_action is None: + return + + if self._step_count < self._prevent_change_duration: + return + + if grip_action >= 0 and not self.cur_grasp_mgr.is_grasped: + self._grasp() + elif grip_action < 0 and self.cur_grasp_mgr.is_grasped: + self._ungrasp() + + +@registry.register_task_action +class KinematicArmEEAction(ArticulatedAgentAction): + """Uses inverse kinematics (requires pybullet) to apply end-effector position control for the articulated_agent's arm.""" + + def __init__(self, *args, sim: RearrangeSim, **kwargs): + self.ee_target: Optional[np.ndarray] = None + self.ee_index: Optional[int] = 0 + super().__init__(*args, sim=sim, **kwargs) + self._sim: RearrangeSim = sim + self._render_ee_target = False # self._config.get("render_ee_target", False) + self._ee_ctrl_lim = self._config.ee_ctrl_lim + + def reset(self, *args, **kwargs): + super().reset() + cur_ee = self._ik_helper.calc_fk( + np.array(self._sim.articulated_agent.arm_joint_pos) + ) + + self.ee_target = cur_ee + + @property + def action_space(self): + return spaces.Box(shape=(3,), low=-255.0, high=255.0, dtype=np.float32) + + def apply_ee_constraints(self): + self.ee_target = np.clip( + self.ee_target, + self._sim.articulated_agent.params.ee_constraint[self.ee_index, :, 0], + self._sim.articulated_agent.params.ee_constraint[self.ee_index, :, 1], + ) + + def set_desired_ee_pos(self, ee_delta: np.ndarray) -> None: + self.ee_target += np.array(ee_delta) + + self.apply_ee_constraints() + + joint_pos = np.array(self._sim.articulated_agent.arm_joint_pos) + joint_vel = np.zeros(joint_pos.shape) + + self._ik_helper.set_arm_state(joint_pos, joint_vel) + + des_joint_pos = self._ik_helper.calc_ik(self.ee_target) + des_joint_pos = list(des_joint_pos) + self._sim.articulated_agent.arm_joint_pos = des_joint_pos + + def step(self, ee_delta, **kwargs): + speed = np.linalg.norm(ee_delta) + if speed == 0.0: + # Only act when called. + return + if speed > self._ee_ctrl_lim: + # Clip norm. + ee_delta *= self._ee_ctrl_lim / speed + self.set_desired_ee_pos(ee_delta) + + if self._render_ee_target: + global_pos = ( + self._sim.articulated_agent.base_transformation.transform_point( + self.ee_target + ) + ) + self._sim.viz_ids["ee_target"] = self._sim.visualize_position( + global_pos, self._sim.viz_ids["ee_target"] + ) + + +@registry.register_task_action +class PddlHlAction(ArticulatedAgentAction): + def __init__(self, *args, config, task, **kwargs): + actions = get_allowed_actions(task.pddl_problem, config.allowed_actions) + + self._action_datas = [] + for action in actions: + self._action_datas.append( + (action.name, [p.name for p in action.param_values]) + ) + super().__init__(*args, config=config, task=task, **kwargs) + + @property + def action_space(self): + return spaces.Discrete(len(self._action_datas)) + + @property + def was_prev_action_invalid(self): + return self._was_prev_action_invalid + + def reset(self, *args, task, **kwargs): + self._was_prev_action_invalid = False + self._prev_action = None + + def step(self, *args, sel, task, **kwargs): + pddl = task.pddl_problem + action_name, param_names = self._action_datas[sel] + + # Get the current up to date PDDL action. + param_values = [] + missing_entity = False + for name in param_names: + if name not in pddl.all_entities: + missing_entity = True + break + param_values.append(pddl.all_entities[name]) + + if missing_entity: + # self._was_prev_action_invalid = True + # return + raise ValueError("MISSING ENTITY. THIS SHOULDNT HAPPEN") + + apply_action = task.pddl_problem.actions[action_name].clone() + apply_action.set_param_values(param_values) + + self._was_prev_action_invalid = not apply_action.apply_if_true( + task.pddl_problem.sim_info + ) + self._prev_action = apply_action diff --git a/easi/tasks/ebhabitat/vendor/config/__init__.py b/easi/tasks/ebhabitat/vendor/config/__init__.py new file mode 100644 index 0000000..53c658e --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/__init__.py @@ -0,0 +1 @@ +from . import default_structured_configs diff --git a/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py b/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py new file mode 100644 index 0000000..094f600 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py @@ -0,0 +1,556 @@ +""" +Contains the structured config definitions. +""" + +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional + +import attr +from habitat.config.default_structured_configs import ( + ActionConfig, ArmActionConfig, HabitatSimRGBSensorConfig, LabSensorConfig, + MeasurementConfig, TaskConfig) +from hydra.core.config_store import ConfigStore +from omegaconf import MISSING + +cs = ConfigStore.instance() + + +########################################################################## +# Tasks +########################################################################## +@dataclass +class RearrangePredTaskConfig(TaskConfig): + start_template: Optional[List[str]] = MISSING + goal_template: Optional[Dict[str, Any]] = MISSING + sample_entities: Dict[str, Any] = MISSING + # Filters out instructions from the trainer dataset. + filter_instructs: Optional[List[str]] = None + # How many episodes per env worker to limit to. + filter_down_num: Optional[int] = None + force_scene_per_worker: bool = False + fix_agent_pos: bool = False + # Tokenizer used for a variety of sensors and measurements. + tokenizer_name: str = "google/flan-t5-small" + skip_load_receps: bool = False + force_gym_option: str = "nav_sanity" + force_gym_overrides: Any = None + gym_options: Any = None + # If true, this will only log the shared keys between all environments. + gym_safe_mode: bool = False + # If true, this will fix the action space to be the same dimension for all tasks. + fix_action_space: bool = False + # If true, will disable adding any prompt to the instruction. + no_prompt: bool = False + # If False, this will disable language action space for discrete action + # envs. + use_lang_actions: bool = True + sample_entities_use_constant_sampling: bool = False + + +@dataclass +class CustomArmActionConfig(ArmActionConfig): + prevent_gripper_change_duration: int = 0 + + +@dataclass +class CustomArmAbsJointActionConfig(ActionConfig): + type: str = "CustomArmAbsJointAction" + arm_joint_dimensionality: int = 7 + + +@dataclass +class PddlHlActionConfig(ActionConfig): + type: str = "PddlHlAction" + allowed_actions: List[str] = field(default_factory=list) + + +cs.store( + package="habitat.task", + group="habitat/task", + name="llarp_task_config_base", + node=RearrangePredTaskConfig, +) +cs.store( + package="habitat.task.actions.arm_joint_action", + group="habitat/task/actions", + name="arm_joint_action", + node=CustomArmAbsJointActionConfig, +) +cs.store( + package="habitat.task.actions.pddl_hl_action", + group="habitat/task/actions", + name="pddl_hl_action", + node=PddlHlActionConfig, +) +cs.store( + package="habitat.task.actions.arm_action", + group="habitat/task/actions", + name="arm_action", + node=CustomArmActionConfig, +) + +########################################################################## + + +########################################################################## +# Sensors +########################################################################## +@dataclass +class OneHotTargetSensorConfig(LabSensorConfig): + type: str = "OneHotTargetSensor" + sampled_idx: int = 0 + + +@dataclass +class AllObjectPositionsSensorConfig(LabSensorConfig): + type: str = "AllObjectPositionsSensor" + + +@dataclass +class StepCountSensorConfig(LabSensorConfig): + type: str = "StepCountSensor" + + +@dataclass +class WindowDebugSensorConfig(LabSensorConfig): + type: str = "WindowDebugSensor" + + +@dataclass +class ClosestTargetObjectPosSensorConfig(LabSensorConfig): + type: str = "ClosestTargetObjectPosSensor" + + +@dataclass +class VocabLangGoalSensorConfig(LabSensorConfig): + type: str = "VocabLangGoalSensor" + max_len: int = 30 + add_special_tokens: bool = True + + +@dataclass +class SimpleTargetSensorConfig(LabSensorConfig): + type: str = "SimpleTargetSensor" + # Without the special start token, this is 4. + max_len: int = 5 + add_special_tokens: bool = True + + +@dataclass +class LlamaVocabLangGoalSensorConfig(LabSensorConfig): + type: str = "LlamaVocabLangGoalSensor" + max_len: int = 30 + tokenizer_name: str = "data/hf_llama_7B/" + + +@dataclass +class T5VocabLangGoalSensorConfig(LabSensorConfig): + type: str = "T5VocabLangGoalSensor" + max_len: int = 30 + + +@dataclass +class ObsLangSensorConfig(LabSensorConfig): + type: str = "ObsLangSensor" + max_len: int = 30 + + +@dataclass +class VocabEmbedSensorConfig(LabSensorConfig): + type: str = "VocabEmbedSensor" + hidden_dim: int = 512 + embed_path: str = "minidata/llm_hxs.pt" + + +@dataclass +class TopDownRGBSensorConfig(HabitatSimRGBSensorConfig): + uuid: str = "top_down_rgb" + width: int = 1024 + height: int = 1024 + + +@dataclass +class ThirdRGBSensorConfig(HabitatSimRGBSensorConfig): + type: str = "HabitatSimRGBSensor" + uuid: str = "third_rgb" + width: int = 500 + height: int = 500 + + +cs.store( + group="habitat/simulator/sim_sensors", + name="third_rgb_sensor", + node=ThirdRGBSensorConfig, +) + +cs.store( + group="habitat/simulator/sim_sensors", + name="top_down_rgb", + node=TopDownRGBSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.one_hot_target_sensor", + group="habitat/task/lab_sensors", + name="one_hot_target_sensor", + node=OneHotTargetSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.all_obj_pos_sensor", + group="habitat/task/lab_sensors", + name="all_obj_pos_sensor", + node=AllObjectPositionsSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.step_count", + group="habitat/task/lab_sensors", + name="step_count", + node=StepCountSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.debug_info", + group="habitat/task/lab_sensors", + name="debug_info", + node=WindowDebugSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.closest_targ_obj_pos_sensor", + group="habitat/task/lab_sensors", + name="closest_targ_obj_pos_sensor", + node=ClosestTargetObjectPosSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.vocab_lang_goal", + group="habitat/task/lab_sensors", + name="vocab_lang_goal", + node=VocabLangGoalSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.simple_lang_goal", + group="habitat/task/lab_sensors", + name="simple_lang_goal", + node=SimpleTargetSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.llama_vocab_lang_goal", + group="habitat/task/lab_sensors", + name="llama_vocab_lang_goal", + node=LlamaVocabLangGoalSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.t5_vocab_lang_goal", + group="habitat/task/lab_sensors", + name="t5_vocab_lang_goal", + node=T5VocabLangGoalSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.obs_lang", + group="habitat/task/lab_sensors", + name="obs_lang", + node=ObsLangSensorConfig, +) +cs.store( + package="habitat.task.lab_sensors.vocab_embed_sensor", + group="habitat/task/lab_sensors", + name="vocab_embed_sensor", + node=VocabEmbedSensorConfig, +) +########################################################################## + + +########################################################################## +# Measures +########################################################################## +@dataclass +class PredicateTaskSuccessConfig(MeasurementConfig): + type: str = "PredicateTaskSuccess" + must_call_stop: bool = True + allows_invalid_actions: bool = True + sanity_end_task: bool = False + + +@dataclass +class WaitPredicateTaskSuccessConfig(MeasurementConfig): + type: str = "WaitPredicateTaskSuccess" + must_call_stop: bool = True + allows_invalid_actions: bool = True + wait_after_steps: int = 0 + + +@dataclass +class SimpleLangGoalConfig(MeasurementConfig): + type: str = "SimpleLangGoalMeasure" + + +@dataclass +class ZeroMeasureConfig(MeasurementConfig): + type: str = "ZeroMeasure" + + +@dataclass +class OneMeasureConfig(MeasurementConfig): + type: str = "OneMeasure" + + +@dataclass +class TaskCondSuccessConfig(MeasurementConfig): + type: str = "TaskCondSuccess" + + +@dataclass +class TargetNameMeasureConfig(MeasurementConfig): + type: str = "TargetNameMeasure" + + +@dataclass +class LangGoalConfig(MeasurementConfig): + type: str = "LangGoalMeasure" + + +@dataclass +class WasPrevActionInvalidConfig(MeasurementConfig): + type: str = "WasPrevActionInvalid" + pddl_action_name: str = "pddl_apply_action" + + +@dataclass +class PrevActionNameConfig(MeasurementConfig): + type: str = "PrevActionName" + pddl_action_name: str = "pddl_apply_action" + + +@dataclass +class NumInvalidActionsConfig(MeasurementConfig): + type: str = "NumInvalidActions" + + +@dataclass +class EEToClosestTargetDistConfig(MeasurementConfig): + type: str = "EEToClosestTargetDist" + + +@dataclass +class TaskProgressMonitor(MeasurementConfig): + type: str = "TaskProgressMonitor" + + +@dataclass +class SubgoalRewardConfig(MeasurementConfig): + type: str = "SubgoalReward" + invalid_ac_pen: float = 0.01 + progress_reward_factor: float = 1.0 + + +@dataclass +class BreakdownMeasureConfig(MeasurementConfig): + type: str = "BreakdownMeasure" + other_measures: List[str] = field(default_factory=list) + log_counts: bool = True + + +@dataclass +class ObjPickRewardConfig(MeasurementConfig): + type: str = "ObjPickReward" + dist_reward: float = 2.0 + pick_reward: float = 2.0 + constraint_violate_pen: float = 1.0 + drop_pen: float = 0.5 + wrong_pick_pen: float = 0.5 + force_pen: float = 0.0001 + max_force_pen: float = 0.01 + force_end_pen: float = 1.0 + use_diff: bool = True + drop_obj_should_end: bool = True + wrong_pick_should_end: bool = True + + +@dataclass +class PddlGoalBreakdownConfig(MeasurementConfig): + type: str = "PddlGoalBreakdownMeasure" + + +@dataclass +class PddlGoalDistanceConfig(MeasurementConfig): + type: str = "PddlGoalDistanceMeasure" + + +@dataclass +class PddlDenseRewardConfig(MeasurementConfig): + type: str = "PddlDenseReward" + constraint_violate_pen: float = 1.0 + force_pen: float = 0.0 + max_force_pen: float = 0.0 + force_end_pen: float = 1.0 + subgoal_dist_scale: Dict[str, float] = field(default_factory=dict) + subgoal_rewards: Dict[str, float] = field(default_factory=dict) + + +@dataclass +class ObjPlaceRewardConfig(MeasurementConfig): + type: str = "ObjPlaceReward" + constraint_violate_pen: float = 1.0 + force_pen: float = 0.0001 + max_force_pen: float = 0.01 + force_end_pen: float = 1.0 + + +@dataclass +class ObjNavDistToGoalConfig(MeasurementConfig): + type: str = "ObjNavDistToGoal" + + +@dataclass +class ObjNavRewardConfig(MeasurementConfig): + type: str = "ObjNavReward" + constraint_violate_pen: float = 1.0 + force_pen: float = 0.0001 + max_force_pen: float = 0.01 + force_end_pen: float = 1.0 + dist_reward: float = 1.0 + + +cs.store( + package="habitat.task.measurements.ee_obj_dist", + group="habitat/task/measurements", + name="ee_obj_dist", + node=EEToClosestTargetDistConfig, +) +cs.store( + package="habitat.task.measurements.task_progress", + group="habitat/task/measurements", + name="task_progress", + node=TaskProgressMonitor, +) +cs.store( + package="habitat.task.measurements.breakdown", + group="habitat/task/measurements", + name="breakdown", + node=BreakdownMeasureConfig, +) + + +cs.store( + package="habitat.task.measurements.subgoal_reward", + group="habitat/task/measurements", + name="subgoal_reward", + node=SubgoalRewardConfig, +) + +cs.store( + package="habitat.task.measurements.pddl_dense_reward", + group="habitat/task/measurements", + name="pddl_dense_reward", + node=PddlDenseRewardConfig, +) +cs.store( + package="habitat.task.measurements.pddl_subgoal_breakdown", + group="habitat/task/measurements", + name="pddl_subgoal_breakdown", + node=PddlGoalBreakdownConfig, +) +cs.store( + package="habitat.task.measurements.pddl_subgoal_distances", + group="habitat/task/measurements", + name="pddl_subgoal_distances", + node=PddlGoalDistanceConfig, +) + + +cs.store( + package="habitat.task.measurements.obj_pick_reward", + group="habitat/task/measurements", + name="obj_pick_reward", + node=ObjPickRewardConfig, +) + +cs.store( + package="habitat.task.measurements.obj_place_reward", + group="habitat/task/measurements", + name="obj_place_reward", + node=ObjPlaceRewardConfig, +) + +cs.store( + package="habitat.task.measurements.simple_lang_goal", + group="habitat/task/measurements", + name="simple_lang_goal", + node=SimpleLangGoalConfig, +) + +cs.store( + package="habitat.task.measurements.zero_measure", + group="habitat/task/measurements", + name="zero_measure", + node=ZeroMeasureConfig, +) + +cs.store( + package="habitat.task.measurements.one_measure", + group="habitat/task/measurements", + name="one_measure", + node=OneMeasureConfig, +) + +cs.store( + package="habitat.task.measurements.obj_nav_dist_to_goal", + group="habitat/task/measurements", + name="obj_nav_dist_to_goal", + node=ObjNavDistToGoalConfig, +) + +cs.store( + package="habitat.task.measurements.obj_nav_reward", + group="habitat/task/measurements", + name="obj_nav_reward", + node=ObjNavRewardConfig, +) + +cs.store( + package="habitat.task.measurements.target_name", + group="habitat/task/measurements", + name="target_name", + node=TargetNameMeasureConfig, +) +cs.store( + package="habitat.task.measurements.was_prev_action_invalid", + group="habitat/task/measurements", + name="was_prev_action_invalid", + node=WasPrevActionInvalidConfig, +) +cs.store( + package="habitat.task.measurements.prev_action_name", + group="habitat/task/measurements", + name="prev_action_name", + node=PrevActionNameConfig, +) +cs.store( + package="habitat.task.measurements.num_invalid_actions", + group="habitat/task/measurements", + name="num_invalid_actions", + node=NumInvalidActionsConfig, +) +cs.store( + package="habitat.task.measurements.lang_goal", + group="habitat/task/measurements", + name="lang_goal", + node=LangGoalConfig, +) +cs.store( + package="habitat.task.measurements.predicate_task_success", + group="habitat/task/measurements", + name="predicate_task_success", + node=PredicateTaskSuccessConfig, +) +cs.store( + package="habitat.task.measurements.wait_predicate_task_success", + group="habitat/task/measurements", + name="wait_predicate_task_success", + node=WaitPredicateTaskSuccessConfig, +) + +cs.store( + package="habitat.task.measurements.task_cond_success", + group="habitat/task/measurements", + name="task_cond_success", + node=TaskCondSuccessConfig, +) +########################################################################## diff --git a/easi/tasks/ebhabitat/vendor/config/task/dataset_v1.yaml b/easi/tasks/ebhabitat/vendor/config/task/dataset_v1.yaml new file mode 100644 index 0000000..335254f --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/task/dataset_v1.yaml @@ -0,0 +1,10 @@ +# @package habitat.dataset + +defaults: + - /habitat/dataset: dataset_config_schema + - _self_ + +type: LangRearrangeDataset-v0 +data_path: "datasets/train.pickle" +split: train +scenes_dir: "data/replica_cad/" diff --git a/easi/tasks/ebhabitat/vendor/config/task/language_rearrangement.yaml b/easi/tasks/ebhabitat/vendor/config/task/language_rearrangement.yaml new file mode 100644 index 0000000..8abba44 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/task/language_rearrangement.yaml @@ -0,0 +1,99 @@ +# @package _global_ + +defaults: + - /habitat: habitat_config_base + - /habitat/task: llarp_task_config_base + - dataset_v1 + - task_obs: visual + - /habitat/task/measurements: + - num_steps + - was_prev_action_invalid + - predicate_task_success + - lang_goal + - task_progress + - subgoal_reward + - num_invalid_actions + - prev_action_name + - /habitat/task/actions: + - pddl_hl_action + - _self_ + +habitat: + environment: + max_episode_steps: 30 + + simulator: + type: RearrangeSim-v0 + additional_object_paths: + - data/objects/ycb/configs/ + - data/replica_cad/configs/objects/ + needs_markers: False + concur_render: False + + create_renderer: True + agents_order: ['main_agent'] + renderer: + enable_batch_renderer: False + composite_files: + - "data/composite_replica/replica.gltf" + + # The geometric goal position is not used. + debug_render_goal: False + debug_render: False + auto_sleep: True + kinematic_mode: True + ac_freq_ratio: 1 + step_physics: False + should_setup_semantic_ids: False + + habitat_sim_v0: + allow_sliding: False + enable_hbao: False + enable_physics: True + enable_gfx_replay_save: False + + task: + type: "RearrangePredicateTask-v0" + constraint_violation_ends_episode: False + constraint_violation_drops_object: True + end_on_success: True + + filter_instructs: null + filter_down_num: null + force_scene_per_worker: False + + # PDDL task settings. + task_spec_base_path: "task/" + pddl_domain_def: "pddl_domain_replica_cad" + # Robot randomly spawns + start_template: null + goal_template: null + sample_entities: {} + + success_measure: "predicate_task_success" + + # Sparse reward for reaching each subgoal. + reward_measure: "subgoal_reward" + success_reward: 10.0 + # Per timestep reward (negative means penalty). + slack_reward: 0.0 + actions: + pddl_hl_action: + allowed_actions: + - nav + - pick + - place + - open_fridge + - close_fridge + - open_cab + - close_cab + measurements: + was_prev_action_invalid: + pddl_action_name: "pddl_hl_action" + prev_action_name: + pddl_action_name: "pddl_hl_action" + predicate_task_success: + must_call_stop: False + subgoal_reward: + invalid_ac_pen: 0.05 + progress_reward_factor: 5.0 diff --git a/easi/tasks/ebhabitat/vendor/config/task/pddl_domain_replica_cad.yaml b/easi/tasks/ebhabitat/vendor/config/task/pddl_domain_replica_cad.yaml new file mode 100644 index 0000000..b2260e5 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/task/pddl_domain_replica_cad.yaml @@ -0,0 +1,292 @@ +# Defines the PDDL domain of tasks in ReplicaCAD. + +types: + static_obj_type: + - recep_type + - movable_entity_type + movable_entity_type: + - stackable_entity_type + recep_type: + - static_receptacle_entity_type + - art_receptacle_entity_type + - nav_receptacle + art_receptacle_entity_type: + - cab_type + - fridge_type + nav_receptacle: + - static_receptacle_entity_type + - art_receptacle_entity_type + static_receptacle_entity_type: + - place_receptacle + + + +constants: + - name: cab_push_point_7 + expr_type: cab_type + - name: cab_push_point_6 + expr_type: cab_type + - name: cab_push_point_5 + expr_type: cab_type + - name: cab_push_point_4 + expr_type: cab_type + - name: fridge_push_point + expr_type: fridge_type + - name: robot_0 + expr_type: robot_entity_type + +predicates: + - name: in + args: + - name: obj + expr_type: movable_entity_type + - name: receptacle + expr_type: art_receptacle_entity_type + set_state: + obj_states: + obj: receptacle + + # - name: stacked_on_top + # args: + # - name: base_obj + # expr_type: stackable_entity_type + # - name: on_top_obj + # expr_type: stackable_entity_type + # set_state: + # obj_states: + # on_top_obj: base_obj + + - name: on_top + args: + - name: obj + expr_type: movable_entity_type + - name: receptacle + expr_type: static_receptacle_entity_type + set_state: + obj_states: + obj: receptacle + recep_scaling: [1.0, 1.25, 1.0] + + - name: holding + args: + - name: obj + expr_type: movable_entity_type + set_state: + robot_states: + robot_0: + holding: obj + + - name: not_holding + args: [] + set_state: + robot_states: + robot_0: + should_drop: True + + - name: opened_cab + args: + - name: cab_id + expr_type: cab_type + set_state: + art_states: + cab_id: + value: 0.45 + cmp: 'greater' + override_thresh: 0.1 + + - name: closed_cab + args: + - name: cab_id + expr_type: cab_type + set_state: + art_states: + cab_id: + value: 0.0 + cmp: 'close' + + + - name: opened_fridge + args: + - name: fridge_id + expr_type: fridge_type + set_state: + art_states: + fridge_id: + value: 1.22 + cmp: 'greater' + + - name: closed_fridge + args: + - name: fridge_id + expr_type: fridge_type + set_state: + art_states: + fridge_id: + value: 0.0 + cmp: 'close' + + # Place the robot as close as possible. Don't check any collision conditions + - name: robot_at_closest + args: + - name: Y + expr_type: static_obj_type + set_state: + robot_states: + robot_0: + pos: Y + place_at_pos_dist: -1.0 + base_angle_noise: 0.0 + place_at_angle_thresh: 1.0 + + - name: robot_at_obj + args: + - name: Y + expr_type: movable_entity_type + set_state: + robot_states: + robot_0: + pos: Y + place_at_pos_dist: 1.5 + base_angle_noise: 0.0 + place_at_angle_thresh: 1.0 + + - name: robot_at + args: + - name: Y + expr_type: static_obj_type + set_state: + robot_states: + robot_0: + pos: Y + place_at_pos_dist: 2.0 + base_angle_noise: 0.0 + place_at_angle_thresh: 1.57 + + - name: at + args: + - name: obj + expr_type: movable_entity_type + - name: at_entity + expr_type: recep_type + set_state: + obj_states: + obj: at_entity + +actions: + - name: noop + parameters: {} + precondition: null + postcondition: [] + + # Only defined relative to place receptacles. + - name: nav + parameters: + - name: entity + expr_type: nav_receptacle + precondition: null + postcondition: + - robot_at_closest(entity) + + - name: pick + parameters: + - name: obj + expr_type: movable_entity_type + - name: robot + expr_type: robot_entity_type + precondition: + expr_type: AND + sub_exprs: + - not_holding() + - robot_at_obj(obj) + - quantifier: FORALL + inputs: + - name: recep + expr_type: cab_type + expr_type: NAND + sub_exprs: + - in(obj, recep) + - closed_cab(recep) + postcondition: + - holding(obj) + + # - name: place_on_top + # parameters: + # - name: base_obj + # expr_type: stackable_entity_type + # precondition: + # expr_type: AND + # quantifier: EXISTS + # inputs: + # - name: place_obj + # expr_type: stackable_entity_type + # sub_exprs: + # - holding(place_obj) + # - robot_at(base_obj) + # postcondition: + # - not_holding() + # - stacked_on_top(place_obj, base_obj) + + - name: place + parameters: + - name: recep + expr_type: place_receptacle + precondition: + expr_type: AND + quantifier: EXISTS + inputs: + - name: place_obj + expr_type: movable_entity_type + sub_exprs: + - holding(place_obj) + - robot_at(recep) + postcondition: + - not_holding() + - at(place_obj, recep) + + - name: open_fridge + parameters: + - name: fridge_id + expr_type: fridge_type + precondition: + expr_type: AND + sub_exprs: + - robot_at(fridge_id) + - closed_fridge(fridge_id) + postcondition: + - opened_fridge(fridge_id) + + - name: close_fridge + parameters: + - name: fridge_id + expr_type: fridge_type + precondition: + expr_type: AND + sub_exprs: + - robot_at(fridge_id) + - opened_fridge(fridge_id) + postcondition: + - closed_fridge(fridge_id) + + - name: open_cab + parameters: + - name: marker + expr_type: cab_type + precondition: + expr_type: AND + sub_exprs: + - robot_at(marker) + - closed_cab(marker) + postcondition: + - opened_cab(marker) + + - name: close_cab + parameters: + - name: marker + expr_type: cab_type + precondition: + expr_type: AND + sub_exprs: + - robot_at(marker) + - opened_cab(marker) + postcondition: + - closed_cab(marker) diff --git a/easi/tasks/ebhabitat/vendor/config/task/task_obs/visual.yaml b/easi/tasks/ebhabitat/vendor/config/task/task_obs/visual.yaml new file mode 100644 index 0000000..70d3feb --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/config/task/task_obs/visual.yaml @@ -0,0 +1,24 @@ +# @package _global_ +defaults: + - /habitat/simulator/sensor_setups@habitat.simulator.agents.main_agent: rgb_head_agent + - /habitat/task/lab_sensors: + - is_holding_sensor + - debug_info +habitat: + gym: + obs_keys: + # Visual sensors + - head_rgb + # - third_rgb # remove for other tasks + - debug_info + simulator: + agents: + main_agent: + sim_sensors: + head_rgb_sensor: + width: 500 + height: 500 + radius: 0.3 + articulated_agent_urdf: ./data/robots/hab_fetch/robots/hab_suction.urdf + articulated_agent_type: FetchSuctionRobot + joint_start_noise: 0.0 diff --git a/easi/tasks/ebhabitat/vendor/dataset/__init__.py b/easi/tasks/ebhabitat/vendor/dataset/__init__.py new file mode 100644 index 0000000..1408f5e --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/dataset/__init__.py @@ -0,0 +1,5 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +from .episodes import LangRearrangeDatasetV0, LangRearrangeEpisode diff --git a/easi/tasks/ebhabitat/vendor/dataset/episodes.py b/easi/tasks/ebhabitat/vendor/dataset/episodes.py new file mode 100644 index 0000000..7633a78 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/dataset/episodes.py @@ -0,0 +1,343 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +import os +import json +import pickle +import random +from itertools import groupby +from typing import Any, Dict, List, Optional + +import attr +import numpy as np +from habitat.core.dataset import EpisodeIterator +from habitat.core.logging import logger +from habitat.core.registry import registry +from habitat.core.utils import DatasetFloatJSONEncoder +from habitat.datasets.rearrange.rearrange_dataset import (RearrangeDatasetV0, + RearrangeEpisode) +# from habitat.datasets.utils import check_and_gen_physics_config +from habitat.tasks.rearrange.multi_task.pddl_predicate import Predicate + +DEFAULT_PHYSICS_CONFIG_PATH = os.path.join(os.path.dirname(__file__), '../data/default.physics_config.json') + +def check_and_gen_physics_config(): + if os.path.exists(DEFAULT_PHYSICS_CONFIG_PATH): + return + # Config is sourced from + # https://github.com/facebookresearch/habitat-sim/blob/main/data/default.physics_config.json + physics_config = { + "physics_simulator": "bullet", + "timestep": 0.008, + "gravity": [0, -9.8, 0], + "friction_coefficient": 0.4, + "restitution_coefficient": 0.1, + "rigid object paths": ["objects"], + } + with open(DEFAULT_PHYSICS_CONFIG_PATH, "w") as f: + json.dump(physics_config, f) + + +@attr.s(auto_attribs=True, kw_only=True) +class LangRearrangeEpisode(RearrangeEpisode): + instruction: str + sampled_entities: Dict[str, str] + # str form of predicates + start_preds: List[str] + goal_preds: Dict[str, Any] + instruct_id: str + sampler_info: Dict[str, str] + # str form of predicates + subgoals: List[List[str]] = None + + +@registry.register_dataset(name="LangRearrangeDataset-v0") +class LangRearrangeDatasetV0(RearrangeDatasetV0): + def __init__(self, config=None, preset_eps=None) -> None: + self.config = config + + check_and_gen_physics_config() + + self.episodes = [] + + if config is None: + return + + if preset_eps is None: + datasetfile_path = config.data_path.format(split=config.split) + logger.info(f"Loading from {datasetfile_path}") + with open(datasetfile_path, "rb") as f: + self.from_binary(pickle.load(f), scenes_dir=config.scenes_dir) + + self.episodes = list( + filter(self.build_content_scenes_filter(config), self.episodes) + ) + else: + self.episodes = preset_eps + + def to_json(self) -> str: + result = DatasetFloatJSONEncoder().encode(self) + return result + + def to_binary(self) -> str: + def access_idx(k, name_to_idx): + if len(name_to_idx) == 0: + name_to_idx[k] = 0 + if k not in name_to_idx: + name_to_idx[k] = max(name_to_idx.values()) + 1 + return name_to_idx[k] + + def encode_name_dict(d, name_to_idx): + ret_d = {} + for k, v in d.items(): + ret_d[access_idx(k, name_to_idx)] = v + return ret_d + + all_transforms = [] + name_to_idx = {} + all_eps = [] + + for ep in self.episodes: + new_ep_data = attr.asdict(ep) + rigid_objs = [] + for name, T in ep.rigid_objs: + rigid_objs.append([access_idx(name, name_to_idx), len(all_transforms)]) + all_transforms.append(T) + + name_to_recep = [] + for name, recep in ep.name_to_receptacle.items(): + name_to_recep.append( + [access_idx(name, name_to_idx), access_idx(recep, name_to_idx)] + ) + new_ep_data["rigid_objs"] = np.array(rigid_objs) + new_ep_data["ao_states"] = encode_name_dict(ep.ao_states, name_to_idx) + new_ep_data["name_to_receptacle"] = np.array(name_to_recep) + new_ep_data["additional_obj_config_paths"] = list( + new_ep_data["additional_obj_config_paths"] + ) + del new_ep_data["_shortest_path_cache"] + + new_markers = [] + for marker_data in ep.markers: + new_markers.append( + [ + access_idx(marker_data["name"], name_to_idx), + access_idx(marker_data["type"], name_to_idx), + np.array(marker_data["params"]["offset"]), + access_idx(marker_data["params"]["link"], name_to_idx), + access_idx(marker_data["params"]["object"], name_to_idx), + ] + ) + + new_ep_data["markers"] = new_markers + + all_eps.append(new_ep_data) + + idx_to_name = {} + for k, v in name_to_idx.items(): + # idx_to_name should define a 1-1 mapping between the name and the + # name index. + assert v not in idx_to_name + idx_to_name[v] = k + + return { + "all_transforms": np.array(all_transforms), + "idx_to_name": idx_to_name, + "all_eps": all_eps, + } + + def from_binary( + self, data_dict: Dict[str, Any], scenes_dir: Optional[str] = None + ) -> None: + all_T = data_dict["all_transforms"] + idx_to_name = data_dict["idx_to_name"] + for i, ep in enumerate(data_dict["all_eps"]): + ep["rigid_objs"] = [ + [idx_to_name[ni], all_T[ti]] for ni, ti in ep["rigid_objs"] + ] + ep["ao_states"] = {idx_to_name[ni]: v for ni, v in ep["ao_states"].items()} + ep["name_to_receptacle"] = { + idx_to_name[k]: idx_to_name[v] for k, v in ep["name_to_receptacle"] + } + + new_markers = [] + for name, mtype, offset, link, obj in ep["markers"]: + new_markers.append( + { + "name": idx_to_name[name], + "type": idx_to_name[mtype], + "params": { + "offset": offset, + "link": idx_to_name[link], + "object": idx_to_name[obj], + }, + } + ) + ep["markers"] = new_markers + + rearrangement_episode = LangRearrangeEpisode(**ep) + rearrangement_episode.episode_id = str(i) + self.episodes.append(rearrangement_episode) + + def from_json(self, json_str: str, scenes_dir: Optional[str] = None) -> None: + deserialized = json.loads(json_str) + + for i, episode in enumerate(deserialized["episodes"]): + rearrangement_episode = LangRearrangeEpisode(**episode) + rearrangement_episode.episode_id = str(i) + + self.episodes.append(rearrangement_episode) + + def get_episode_iterator(self, *args, **kwargs): + return CustomEpisodeIterator(self.episodes, *args, **kwargs) + + +class CustomEpisodeIterator(EpisodeIterator): + def __init__( + self, + episodes, + cycle: bool = True, + shuffle: bool = True, + group_by_scene: bool = False, + max_scene_repeat_episodes: int = -1, + max_scene_repeat_steps: int = -1, + num_episode_sample: int = -1, + step_repetition_range: float = 0.2, + seed: int = None, + ) -> None: + if seed: + random.seed(seed) + np.random.seed(seed) + + # sample episodes + if num_episode_sample >= 0: + episodes = np.random.choice( # type: ignore[assignment] + episodes, num_episode_sample, replace=False # type: ignore[arg-type] + ) + + if not isinstance(episodes, list): + episodes = list(episodes) + + self.episodes = episodes + self.cycle = cycle + self.group_by_scene = group_by_scene + self.shuffle = shuffle + + if shuffle: + random.shuffle(self.episodes) + + if group_by_scene: + self.episodes = self._group_scenes(self.episodes) + + self.max_scene_repetition_episodes = max_scene_repeat_episodes + self.max_scene_repetition_steps = max_scene_repeat_steps + + self._rep_count = -1 # 0 corresponds to first episode already returned + self._step_count = 0 + self._prev_scene_id: Optional[str] = None + + self._iterator = iter(self.episodes) + + self.step_repetition_range = step_repetition_range + self._set_shuffle_intervals() + + def __iter__(self): + return self + + def __next__(self): + self._forced_scene_switch_if() + next_episode = next(self._iterator, None) + if next_episode is None: + if not self.cycle: + raise StopIteration + + self._iterator = iter(self.episodes) + + if self.shuffle: + self._shuffle() + + next_episode = next(self._iterator) + + if ( + self._prev_scene_id != next_episode.scene_id + and self._prev_scene_id is not None + ): + self._rep_count = 0 + self._step_count = 0 + + self._prev_scene_id = next_episode.scene_id + return next_episode + + def _forced_scene_switch(self) -> None: + grouped_episodes = [ + list(g) for k, g in groupby(self._iterator, key=lambda x: x.scene_id) + ] + + if len(grouped_episodes) > 1: + # Ensure we swap by moving the current group to the end + grouped_episodes = grouped_episodes[1:] + grouped_episodes[0:1] + + self._iterator = iter(sum(grouped_episodes, [])) + + def _shuffle(self) -> None: + assert self.shuffle + episodes = list(self._iterator) + + random.shuffle(episodes) + + if self.group_by_scene: + episodes = self._group_scenes(episodes) + + self._iterator = iter(episodes) + + def _group_scenes(self, episodes): + assert self.group_by_scene + + scene_sort_keys: Dict[str, int] = {} + for e in episodes: + if e.scene_id not in scene_sort_keys: + scene_sort_keys[e.scene_id] = len(scene_sort_keys) + + return sorted(episodes, key=lambda e: scene_sort_keys[e.scene_id]) + + def step_taken(self) -> None: + self._step_count += 1 + + @staticmethod + def _randomize_value(value: int, value_range: float) -> int: + return random.randint( + int(value * (1 - value_range)), int(value * (1 + value_range)) + ) + + def _set_shuffle_intervals(self) -> None: + if self.max_scene_repetition_episodes > 0: + self._max_rep_episode = self.max_scene_repetition_episodes + else: + self._max_rep_episode = None + + if self.max_scene_repetition_steps > 0: + self._max_rep_step = self._randomize_value( + self.max_scene_repetition_steps, self.step_repetition_range + ) + else: + self._max_rep_step = None + + def _forced_scene_switch_if(self) -> None: + do_switch = False + self._rep_count += 1 + + # Shuffle if a scene has been selected more than _max_rep_episode times in a row + if ( + self._max_rep_episode is not None + and self._rep_count >= self._max_rep_episode + ): + do_switch = True + + # Shuffle if a scene has been used for more than _max_rep_step steps in a row + if self._max_rep_step is not None and self._step_count >= self._max_rep_step: + do_switch = True + + if do_switch: + self._forced_scene_switch() + self._set_shuffle_intervals() diff --git a/easi/tasks/ebhabitat/vendor/dataset/utils.py b/easi/tasks/ebhabitat/vendor/dataset/utils.py new file mode 100644 index 0000000..e1b5428 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/dataset/utils.py @@ -0,0 +1,70 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +import inspect +import os +import os.path as osp +from typing import Dict, List, Tuple + +import yaml + +# import llarp.dataset + +ALL_CATS_NAME = "all_cats" +INSTRUCTION_FILE = "instructions.yaml" + +# Standard buckets. +LOCAL_DATASETS_PATH = os.path.join(os.path.dirname(__file__), "data/datasets") + + +def get_instruct_data(): + instructs_path = osp.dirname(inspect.getfile(__file__)) + instructs_cfg = osp.join(instructs_path, "configs", INSTRUCTION_FILE) + with open(instructs_cfg, "r") as f: + instructs = yaml.load(f, Loader=yaml.FullLoader) + return instructs + + +def get_name_mappings() -> Dict[str, str]: + """ + Gets the friendly name mappings from the instruction file. + """ + instructs = get_instruct_data() + return instructs["name_mappings"] + + +def get_all_instruct_ids(): + instructs = get_instruct_data() + return sorted([str(x) for x in instructs["instructions"].keys()]) + + +def get_category_info(skip_load_receps=False): + """ + Get the list of all categories and a mapping from object name to category. + """ + dataset_path = osp.dirname(__file__) + dataset_cfg = osp.join(dataset_path, "configs", "dataset.yaml") + + # Load dataset_cfg as a dict + with open(dataset_cfg, "r") as f: + dataset = yaml.load(f, Loader=yaml.FullLoader) + cat_groups = dataset["category_groups"] + all_receps_cat = dataset["receptacle_sets"][0] + assert all_receps_cat["name"] == "all_receps" + all_obj_cats = dataset["category_groups"][ALL_CATS_NAME]["included"] + + all_cats = [] + if not skip_load_receps: + all_cats.extend(all_receps_cat["included_receptacle_substrings"]) + all_cats.extend(all_obj_cats) + + obj_to_cls = {} + for oset in dataset["object_sets"]: + if oset["name"] == "CLUTTER_OBJECTS": + continue + for oname in oset["included_substrings"]: + if oname in obj_to_cls: + raise ValueError(f"Object {oname} is in multiple sets") + obj_to_cls[oname] = oset["name"] + return all_cats, all_obj_cats, obj_to_cls diff --git a/easi/tasks/ebhabitat/vendor/measures.py b/easi/tasks/ebhabitat/vendor/measures.py new file mode 100644 index 0000000..0cad7e8 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/measures.py @@ -0,0 +1,763 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +from collections import defaultdict + +import numpy as np +from habitat.core.embodied_task import Measure +from habitat.core.registry import registry +from habitat.tasks.rearrange.multi_task.pddl_logical_expr import \ + LogicalExprType +from habitat.tasks.rearrange.multi_task.pddl_predicate import Predicate +from habitat.tasks.rearrange.rearrange_sensors import ( + DoesWantTerminate, EndEffectorToRestDistance, RearrangeReward) + +from easi.tasks.ebhabitat.vendor.dataset.utils import get_all_instruct_ids +from easi.tasks.ebhabitat.vendor.sensors import SimpleTargetSensor + + +@registry.register_measure +class TargetNameMeasure(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + + @staticmethod + def _get_uuid(*args, **kwargs): + return "target" + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = ",".join([str(x) for x in task.get_sampled()]) + + +@registry.register_measure +class LangGoalMeasure(Measure): + cls_uuid = "lang_goal" + + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + + @staticmethod + def _get_uuid(*args, **kwargs): + return LangGoalMeasure.cls_uuid + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = task.lang_goal + + +@registry.register_measure +class SimpleLangGoalMeasure(Measure): + cls_uuid = "simple_lang_goal" + + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + + @staticmethod + def _get_uuid(*args, **kwargs): + return SimpleLangGoalMeasure.cls_uuid + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, task, **kwargs): + target_sensor = task.sensor_suite.sensors[SimpleTargetSensor.uuid] + self._metric = target_sensor.cur_lang_goal + + +@registry.register_measure +class TaskProgressMonitor(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + + @staticmethod + def _get_uuid(*args, **kwargs): + return "task_progress" + + def reset_metric(self, *args, task, **kwargs): + self._achieved = defaultdict(lambda: False) + self._total_count = len(task.subgoals) + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + for i, subgoal in enumerate(task.subgoals): + if self._achieved[i]: + continue + self._achieved[i] = all( + pred.is_true(task.pddl.sim_info) for pred in subgoal + ) + + self._metric = sum(self._achieved.values()) / max(self._total_count, 1) + + +@registry.register_measure +class WasPrevActionInvalid(Measure): + cls_uuid = "was_prev_action_invalid" + + def __init__(self, config, *args, **kwargs): + self._pddl_action_name = config.pddl_action_name + super().__init__(**kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return WasPrevActionInvalid.cls_uuid + + def reset_metric(self, *args, task, **kwargs): + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = task.actions[self._pddl_action_name].was_prev_action_invalid + + +@registry.register_measure +class PrevActionName(Measure): + cls_uuid = "action" + + def __init__(self, config, *args, **kwargs): + self._pddl_action_name = config.pddl_action_name + super().__init__(**kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return PrevActionName.cls_uuid + + def reset_metric(self, *args, task, **kwargs): + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + if task.actions[self._pddl_action_name]._prev_action is None: + self._metric = "" + else: + self._metric = task.actions[self._pddl_action_name]._prev_action.compact_str + + +@registry.register_measure +class NumInvalidActions(Measure): + @staticmethod + def _get_uuid(*args, **kwargs): + return "num_invalid_actions" + + def reset_metric(self, *args, task, **kwargs): + task.measurements.check_measure_dependencies( + self.uuid, [WasPrevActionInvalid._get_uuid()] + ) + self._metric = 0 + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + was_prev_invalid = task.measurements.measures[ + WasPrevActionInvalid._get_uuid() + ].get_metric() + self._metric += int(was_prev_invalid) + + +@registry.register_measure +class SubgoalReward(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + self.invalid_ac_pen = config.invalid_ac_pen + self.progress_reward_factor = config.progress_reward_factor + + @staticmethod + def _get_uuid(*args, **kwargs): + return "subgoal_reward" + + def reset_metric(self, *args, task, **kwargs): + task.measurements.check_measure_dependencies( + self.uuid, + [TaskProgressMonitor._get_uuid(), WasPrevActionInvalid._get_uuid()], + ) + self._prev_progress = 0.0 + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = 0.0 + was_prev_invalid = task.measurements.measures[ + WasPrevActionInvalid._get_uuid() + ].get_metric() + + progress = task.measurements.measures[ + TaskProgressMonitor._get_uuid() + ].get_metric() + if was_prev_invalid: + self._metric -= self.invalid_ac_pen + + self._metric = (progress - self._prev_progress) * self.progress_reward_factor + self._prev_progress = progress + + +@registry.register_measure +class PredicateTaskSuccess(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._must_call_stop = config.must_call_stop + self._allows_invalid_actions = config.allows_invalid_actions + self._sanity_end_task = config.sanity_end_task + if self._sanity_end_task: + print("SANITY END TASK SET TO TRUE. TASK IS ONLY IN DEBUG MODE!!!") + + @staticmethod + def _get_uuid(*args, **kwargs): + return "predicate_task_success" + + def reset_metric(self, *args, task, **kwargs): + if self._must_call_stop: + task.measurements.check_measure_dependencies( + self.uuid, [DoesWantTerminate.cls_uuid] + ) + if not self._allows_invalid_actions: + task.measurements.check_measure_dependencies( + self.uuid, [WasPrevActionInvalid.cls_uuid] + ) + + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = task.is_goal_satisfied() + if not self._allows_invalid_actions: + was_prev_action_invalid = task.measurements.measures[ + WasPrevActionInvalid.cls_uuid + ].get_metric() + if was_prev_action_invalid: + task.should_end = True + self._metric = False + return + + if self._must_call_stop: + does_action_want_stop = task.measurements.measures[ + DoesWantTerminate.cls_uuid + ].get_metric() + self._metric = self._metric and does_action_want_stop + + if does_action_want_stop: + task.should_end = True + + if self._sanity_end_task and np.random.random() < 0.2: + self._metric = True + + +@registry.register_measure +class WaitPredicateTaskSuccess(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._must_call_stop = config.must_call_stop + self._allows_invalid_actions = config.allows_invalid_actions + self._wait_after_steps = config.wait_after_steps + self._steps_after_succ = 0 + + @staticmethod + def _get_uuid(*args, **kwargs): + return "predicate_task_success" + + def reset_metric(self, *args, task, **kwargs): + self._steps_after_succ = 0 + if self._must_call_stop: + task.measurements.check_measure_dependencies( + self.uuid, [DoesWantTerminate.cls_uuid] + ) + if not self._allows_invalid_actions: + task.measurements.check_measure_dependencies( + self.uuid, [WasPrevActionInvalid.cls_uuid] + ) + + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = task.is_goal_satisfied() + if not self._allows_invalid_actions: + was_prev_action_invalid = task.measurements.measures[ + WasPrevActionInvalid.cls_uuid + ].get_metric() + if was_prev_action_invalid: + task.should_end = True + self._metric = False + return + + if self._must_call_stop: + does_action_want_stop = task.measurements.measures[ + DoesWantTerminate.cls_uuid + ].get_metric() + self._metric = self._metric and does_action_want_stop + + if does_action_want_stop: + task.should_end = True + + if self._metric: + self._steps_after_succ += 1 + if self._wait_after_steps > self._steps_after_succ: + self._metric = False + + +@registry.register_measure +class TaskCondSuccess(Measure): + def __init__(self, config, *args, **kwargs): + super().__init__(**kwargs) + self._config = config + + @staticmethod + def _get_uuid(*args, **kwargs): + return "cond_success" + + def reset_metric(self, *args, task, **kwargs): + task.measurements.check_measure_dependencies( + self.uuid, [PredicateTaskSuccess._get_uuid()] + ) + self.update_metric(*args, task=task, **kwargs) + + def update_metric(self, *args, task, **kwargs): + self._metric = task.is_goal_satisfied() + # Get the predicate task success measure + pred_task_success = task.measurements.measures[ + PredicateTaskSuccess._get_uuid() + ].get_metric() + + sampled_target = task.get_sampled()[0] + self._metric = {sampled_target.expr_type.name: float(pred_task_success)} + + +@registry.register_measure +class EEToClosestTargetDist(Measure): + """ + Gets the distance between the EE and the closest target object. + """ + + def __init__(self, sim, config, *args, **kwargs): + self._sim = sim + self._config = config + super().__init__(**kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "ee_obj_dist" + + def reset_metric(self, *args, episode, **kwargs): + self.update_metric(*args, episode=episode, **kwargs) + + def update_metric(self, *args, task, **kwargs): + targ_type = task.get_sampled()[0] + matches = list(task.pddl.find_entities(targ_type.expr_type)) + obj_pos = np.array( + [task.pddl.sim_info.get_entity_pos(match) for match in matches] + ) + + ee_pos = self._sim.articulated_agent.ee_transform().translation + + dists = np.linalg.norm(obj_pos - ee_pos, ord=2, axis=-1) + closest_id = np.argmin(dists) + self.closest_entity = matches[closest_id] + self._metric = dists[closest_id] + + +@registry.register_measure +class ObjPlaceReward(RearrangeReward): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "obj_place_reward" + + def reset_metric(self, *args, **kwargs): + super().reset_metric(*args, **kwargs) + + def update_metric(self, *args, **kwargs): + super().update_metric(*args, **kwargs) + # Using a sparse reward for now + self._metric = 0.0 + + +@registry.register_measure +class ObjNavDistToGoal(Measure): + cls_uuid = "obj_nav_dist" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return ObjNavDistToGoal.cls_uuid + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, task, **kwargs): + cur_target = task.get_sampled()[0] + target_pos = task.pddl.sim_info.get_entity_pos(cur_target) + agent_pos = np.array(task._sim.articulated_agent.base_pos)[[0, 2]] + self._metric = np.linalg.norm(agent_pos - target_pos[[0, 2]]) + + +@registry.register_measure +class ObjNavReward(RearrangeReward): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "obj_nav_reward" + + def reset_metric(self, *args, **kwargs): + self._prev_dist = -1.0 + super().reset_metric(*args, **kwargs) + + def update_metric(self, *args, task, **kwargs): + super().update_metric(*args, task=task, **kwargs) + cur_dist = task.measurements.measures[ObjNavDistToGoal.cls_uuid].get_metric() + + # Using a sparse reward for now + self._metric = 0.0 + if self._prev_dist < 0.0: + dist_diff = 0.0 + else: + dist_diff = self._prev_dist - cur_dist + + self._metric += self._config.dist_reward * dist_diff + self._prev_dist = cur_dist + + +@registry.register_measure +class ZeroMeasure(Measure): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "zero_measure" + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, **kwargs): + self._metric = 0.0 + + +@registry.register_measure +class OneMeasure(Measure): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "one_measure" + + def reset_metric(self, *args, **kwargs): + self.update_metric(*args, **kwargs) + + def update_metric(self, *args, **kwargs): + self._metric = 1.0 + + +@registry.register_measure +class BreakdownMeasure(Measure): + def __init__(self, *args, config, **kwargs): + super().__init__(*args, config, **kwargs) + self._other_measures = config.other_measures + self._log_counts = config.log_counts + if self._log_counts: + self._all_instruct_ids = get_all_instruct_ids() + + @staticmethod + def _get_uuid(*args, **kwargs): + return "breakdown" + + def reset_metric(self, *args, task, **kwargs): + task.measurements.check_measure_dependencies( + self.uuid, + self._other_measures, + ) + use_instruct_id = self._parse_instruct_id(task.instruct_id) + if self._log_counts: + self._cur_counts = {k: 0 for k in self._all_instruct_ids} + self._cur_counts[use_instruct_id] = 1 + self.update_metric(*args, task=task, **kwargs) + + def _parse_instruct_id(self, instruct_id): + return instruct_id.split("_")[0] + + def update_metric(self, *args, task, **kwargs): + self._metric = {} + use_instruct_id = self._parse_instruct_id(task.instruct_id) + for name in self._other_measures: + self._metric[name] = { + use_instruct_id: task.measurements.measures[name].get_metric() + } + if self._log_counts: + self._metric["count"] = self._cur_counts + + +def _extract_pred_name(expr, i): + if isinstance(expr, Predicate): + return f"{expr.name}|{i}" + else: + return f"{expr.sub_exprs[0].sub_exprs[0].name}|{i}" + + +@registry.register_measure +class PddlGoalDistanceMeasure(Measure): + @staticmethod + def _get_uuid(*args, **kwargs): + return "pddl_subgoal_distances" + + def reset_metric(self, *args, task, **kwargs): + self.update_metric( + *args, + task=task, + **kwargs, + ) + + def _get_pred_distance(self, pred, sim_info): + if pred.name == "on_top": + obj = pred._arg_values[0] + recep = pred._arg_values[1] + # Get the distance from the object COM to the surface bounding box COM. + recep_bb = sim_info.search_for_entity(recep) + + rom = sim_info.sim.get_rigid_object_manager() + obj_idx = sim_info.search_for_entity(obj) + abs_obj_id = sim_info.sim.scene_obj_ids[obj_idx] + entity_obj = rom.get_object_by_id(abs_obj_id) + + return np.linalg.norm(entity_obj.translation - recep_bb.center(), ord=2) + elif pred.name == "holding": + obj = pred._arg_values[0] + obj_pos = sim_info.get_entity_pos(obj) + ee_pos = sim_info.sim.articulated_agent.ee_transform().translation + + return np.linalg.norm(obj_pos - ee_pos, ord=2) + + # no sense of distance. + return 0.0 + + def update_metric(self, *args, task, **kwargs): + assert task.goal_expr.expr_type == LogicalExprType.AND + self._metric = {} + + for i, expr in enumerate(task.goal_expr.sub_exprs): + if isinstance(expr, Predicate): + dist = self._get_pred_distance(expr, task.pddl.sim_info) + else: + assert expr.expr_type == LogicalExprType.OR + dist = None + for sub_expr in expr.sub_exprs: + assert len(sub_expr.sub_exprs) == 1 + assert isinstance(sub_expr.sub_exprs[0], Predicate) + pred_dist = self._get_pred_distance( + sub_expr.sub_exprs[0], task.pddl.sim_info + ) + if dist is None: + dist = pred_dist + else: + dist = min(pred_dist, dist) + assert dist is not None + + expr_name = _extract_pred_name(expr, i) + self._metric[expr_name] = dist + + +@registry.register_measure +class PddlGoalBreakdownMeasure(Measure): + @staticmethod + def _get_uuid(*args, **kwargs): + return "pddl_subgoal_breakdown" + + def reset_metric(self, *args, task, **kwargs): + self.update_metric( + *args, + task=task, + **kwargs, + ) + + def update_metric(self, *args, task, **kwargs): + assert task.goal_expr.expr_type == LogicalExprType.AND + self._metric = {} + + for i, expr in enumerate(task.goal_expr.sub_exprs): + expr_name = _extract_pred_name(expr, i) + self._metric[expr_name] = expr.is_true(task.pddl.sim_info) + + +@registry.register_measure +class PddlDenseReward(RearrangeReward): + def __init__(self, *args, config, **kwargs): + super().__init__(*args, config=config, **kwargs) + self._subgoal_rewards = config.subgoal_rewards + self._subgoal_dist_scale = config.subgoal_dist_scale + + @staticmethod + def _get_uuid(*args, **kwargs): + return "pddl_dense_reward" + + def reset_metric(self, *args, episode, task, observations, **kwargs): + self._last_subgoal_state = {} + self._last_dist_state = {} + + super().reset_metric( + *args, + episode=episode, + task=task, + observations=observations, + **kwargs, + ) + + def update_metric(self, *args, task, **kwargs): + super().update_metric( + *args, + task=task, + **kwargs, + ) + + goal_breakdowns = task.measurements.measures[ + PddlGoalBreakdownMeasure._get_uuid() + ].get_metric() + goal_distances = task.measurements.measures[ + PddlGoalDistanceMeasure._get_uuid() + ].get_metric() + assert task.goal_expr.expr_type == LogicalExprType.AND + for i, expr_name in enumerate(task.goal_expr.sub_exprs): + expr_name = _extract_pred_name(expr_name, i) + + goal_distance = goal_distances[expr_name] + goal_breakdown = goal_breakdowns[expr_name] + + # If 1st step. + if expr_name not in self._last_subgoal_state: + self._last_subgoal_state[expr_name] = goal_breakdown + if expr_name not in self._last_dist_state: + self._last_dist_state[expr_name] = goal_distance + + # Give subgoal reward + if (not self._last_subgoal_state[expr_name]) and goal_breakdown: + self._metric += self._subgoal_rewards.get(expr_name, 0.0) + + # Give distance reward + dist_diff = self._last_dist_state[expr_name] - goal_distance + # Filter out small fluctuations + dist_diff = round(dist_diff, 3) + self._metric += self._subgoal_dist_scale.get(expr_name, 0.0) * dist_diff + + # Set last step vars. + self._last_subgoal_state[expr_name] = goal_breakdown + self._last_dist_state[expr_name] = goal_distance + + +@registry.register_measure +class ObjPickReward(RearrangeReward): + """ + Reward function for picking an object up. + """ + + def __init__(self, *args, sim, config, task, **kwargs): + self.cur_dist = -1.0 + self._prev_picked = False + self._metric = None + self._dist_reward = config.dist_reward + self._drop_pen = config.drop_pen + self._use_diff = config.use_diff + self._pick_reward = config.pick_reward + self._wrong_pick_pen = config.wrong_pick_pen + self._wrong_pick_should_end = config.wrong_pick_should_end + self._drop_obj_should_end = config.drop_obj_should_end + + super().__init__(*args, sim=sim, config=config, task=task, **kwargs) + + @staticmethod + def _get_uuid(*args, **kwargs): + return "obj_pick_reward" + + def reset_metric(self, *args, episode, task, observations, **kwargs): + task.measurements.check_measure_dependencies( + self.uuid, + [ + EEToClosestTargetDist._get_uuid(), + EndEffectorToRestDistance.cls_uuid, + ], + ) + self.cur_dist = -1.0 + self._prev_picked = self._sim.grasp_mgr.snap_idx is not None + + super().reset_metric( + *args, + episode=episode, + task=task, + observations=observations, + **kwargs, + ) + + def update_metric(self, *args, episode, task, observations, **kwargs): + super().update_metric( + *args, + episode=episode, + task=task, + observations=observations, + **kwargs, + ) + ee_to_closest_meas = task.measurements.measures[ + EEToClosestTargetDist._get_uuid() + ] + ee_to_object_distance = ee_to_closest_meas.get_metric() + ee_to_rest_distance = task.measurements.measures[ + EndEffectorToRestDistance.cls_uuid + ].get_metric() + + snapped_id = self._sim.grasp_mgr.snap_idx + cur_picked = snapped_id is not None + + if cur_picked: + dist_to_goal = ee_to_rest_distance + else: + dist_to_goal = ee_to_object_distance + + closest_name = ee_to_closest_meas.closest_entity.name + rel_obj_idx = task.pddl.sim_info.obj_ids[closest_name] + abs_targ_obj_idx = self._sim.scene_obj_ids[rel_obj_idx] + + did_pick = cur_picked and (not self._prev_picked) + if did_pick: + if snapped_id == abs_targ_obj_idx: + self._metric += self._pick_reward + # If we just transitioned to the next stage our current + # distance is stale. + self.cur_dist = -1 + else: + # picked the wrong object + self._metric -= self._wrong_pick_pen + if self._wrong_pick_should_end: + self._task.should_end = True + self._prev_picked = cur_picked + self.cur_dist = -1 + return + + if self._use_diff: + if self.cur_dist < 0: + dist_diff = 0.0 + else: + dist_diff = self.cur_dist - dist_to_goal + + # Filter out the small fluctuations + dist_diff = round(dist_diff, 3) + self._metric += self._dist_reward * dist_diff + else: + self._metric -= self._dist_reward * dist_to_goal + self.cur_dist = dist_to_goal + + if not cur_picked and self._prev_picked: + # Dropped the object + self._metric -= self._drop_pen + if self._drop_obj_should_end: + # End the episode if it is not the correct object. + self._task.should_end = True + self._prev_picked = cur_picked + self.cur_dist = -1 + return + + self._prev_picked = cur_picked diff --git a/easi/tasks/ebhabitat/vendor/predicate_task.py b/easi/tasks/ebhabitat/vendor/predicate_task.py new file mode 100644 index 0000000..ea3a776 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/predicate_task.py @@ -0,0 +1,380 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +import inspect +import os.path as osp +import random +import time +from typing import Any, Dict, List + +import hydra +import magnum as mn +import numpy as np +from habitat.core.registry import registry +from habitat.datasets.rearrange.rearrange_dataset import RearrangeEpisode +from habitat.tasks.rearrange.multi_task.pddl_domain import PddlDomain +from habitat.tasks.rearrange.multi_task.pddl_logical_expr import LogicalExpr +from habitat.tasks.rearrange.multi_task.pddl_predicate import Predicate +from habitat.tasks.rearrange.multi_task.rearrange_pddl import ( + ExprType, PddlEntity, SimulatorObjectType) +from habitat.tasks.rearrange.rearrange_task import RearrangeTask +from habitat.tasks.rearrange.utils import add_perf_timing_func +from omegaconf import DictConfig, ListConfig +from PIL import Image +from transformers import AutoTokenizer + +import easi.tasks.ebhabitat.vendor.config +from easi.tasks.ebhabitat.vendor.dataset.episodes import LangRearrangeEpisode +from easi.tasks.ebhabitat.vendor.dataset.utils import get_category_info +from easi.tasks.ebhabitat.vendor.actions import KinematicArmEEAction +from easi.tasks.ebhabitat.vendor.utils import PLACABLE_RECEP_TYPE, get_pddl + + +@registry.register_task(name="RearrangePredicateTask-v0") +class RearrangePredicateTask(RearrangeTask): + def __init__(self, *args, sim, config, dataset, **kwargs): + print(f"Num episodes {len(dataset.episodes)}") + + self._all_cls, obj_cats, self._name_to_cls = get_category_info( + config.skip_load_receps + ) + + self.pddl = get_pddl(config, self._all_cls, obj_cats) + self._fix_agent_pos = config.fix_agent_pos + + super().__init__( + *args, + sim=sim, + config=config, + dataset=dataset, + should_place_articulated_agent=not self._fix_agent_pos, + **kwargs, + ) + # self._tokenizer = get_parser(config.tokenizer_name) + + self._start_template = self._config.start_template + self._goal_template = self._config.goal_template + self._sample_entities = self._config.sample_entities + self._sample_entities_use_constant_sampling = ( + self._config.sample_entities_use_constant_sampling + ) + self._force_scene_per_worker = self._config.force_scene_per_worker + self._goal_expr = None + self._is_first_reset = True + self._is_freeform = False + + # @property + # def tokenizer(self): + # return self._tokenizer + + @add_perf_timing_func() + def _load_start_goal(self, episode): + """ + Setup the start and goal PDDL conditions. Will change the simulator + state to set the start state. + """ + # print(self.pddl.all_entities) + # print(self._sim) + # print(self._dataset) + # print(episode) + pddl_entities = self.pddl.all_entities + self.pddl.bind_to_instance(self._sim, self._dataset, self, episode) + + self._setup_pddl_entities(episode) + + if self._is_first_reset or not self._force_scene_per_worker: + self.pddl.bind_actions() + self._is_first_reset = False + + self._sim.internal_step(-1) + self._load_sampled_names() + + self._goal_expr = self._load_goal_preds(episode) + if self._goal_expr is not None: + t_start = time.time() + self._goal_expr, _ = self.pddl.expand_quantifiers(self._goal_expr) + self._sim.add_perf_timing("goal_expand_quantifiers", t_start) + self._load_start_preds(episode) + + def _load_sampled_names(self): + t_start = time.time() + self.new_entities: Dict[str, PddlEntity] = {} + for entity_name, entity_conds in self._sample_entities.items(): + match_type = self.pddl.expr_types[entity_conds["type"]] + matches = list(self.pddl.find_entities(match_type)) + + if entity_conds.get("ignore_articulated_receptacles", False): + matches = [ + m + for m in matches + if m.name + not in [ + "receptacle_aabb_middle_topfrl_apartment_refrigerator", + "receptacle_aabb_drawer_left_top_frl_apartment_kitchen_counter", + "receptacle_aabb_drawer_right_top_frl_apartment_kitchen_counter", + ] + ] + + pred_conds = entity_conds.get("pred_conds", []) + matches = _filter_matching_pred_conds( + matches, pred_conds, self.pddl, self.new_entities, entity_name + ) + + if len(matches) == 0: + obj_ref, obj_name = list(self.new_entities.items())[0] + on_top_pred = f"on_top({obj_ref},{entity_name})" + cmp_pred_cond = pred_conds[0].replace(" ", "") + if len(pred_conds) == 1 and cmp_pred_cond == on_top_pred: + use_entity_name: str = self._sim.ep_info.name_to_receptacle[ + obj_name.name + ] + entity = self.pddl.all_entities[use_entity_name] + else: + raise ValueError( + f"Could not find match for {entity_name}: {entity_conds}" + ) + elif self._sample_entities_use_constant_sampling: + entity = matches[0] + else: + entity = random.choice(matches) + + self.new_entities[entity_name] = entity + self._sampled_names = list(self.new_entities.keys()) + self._sim.add_perf_timing("find_entities", t_start) + + @property + def pddl_problem(self): + return self.pddl + + @property + def all_cls(self): + return self._all_cls + + def _get_cls_for_obj_name(self, obj_name, episode): + return self._name_to_cls[obj_name] + + @add_perf_timing_func() + def _setup_pddl_entities(self, episode): + # Register the specific objects in this scene as simulator entities. + for obj_name in self.pddl.sim_info.obj_ids: + asset_name = _strip_instance_id(obj_name) + if asset_name not in self._name_to_cls: + # This is a goal or target object indicator from a Hab2 dataset. + # We don't use these geo-goals, so we can ignore. + continue + cls_name = self._name_to_cls[asset_name] + + entity_type = self.pddl.expr_types[cls_name] + self.pddl.register_episode_entity(PddlEntity(obj_name, entity_type)) + + @add_perf_timing_func() + def _load_goal_preds(self, episode): + if self._goal_template is None: + # Load from the episode. + return self.pddl.parse_only_logical_expr( + episode.goal_preds, self.pddl.all_entities + ) + else: + # Load from the config. + goal_d = dict(self._goal_template) + goal_d = _recur_dict_replace(goal_d, self.new_entities) + return self.pddl.parse_only_logical_expr(goal_d, self.pddl.all_entities) + + @add_perf_timing_func() + def _load_start_preds(self, episode): + if self._start_template is None: + # Load form the episode data. + for pred in episode.start_preds: + pred = self.pddl.parse_predicate(pred, self.pddl.all_entities) + pred.set_state(self.pddl.sim_info) + else: + # Load from the config. + start_preds = self._start_template[:] + for pred in start_preds: + for k, entity in self.new_entities.items(): + pred = pred.replace(k, entity.name) + pred = self.pddl.parse_predicate(pred, self.pddl.all_entities) + pred.set_state(self.pddl.sim_info) + + @property + def goal_expr(self) -> LogicalExpr: + return self._goal_expr + + def set_is_freeform(self, is_freeform): + self._is_freeform = is_freeform + + @property + def subgoals(self): + if self._is_freeform: + return [] + else: + return self._subgoals + + def is_goal_satisfied(self): + if self._is_freeform: + return False + if self._goal_expr is None: + return False + ret = self.pddl.is_expr_true(self._goal_expr) + return ret + + @add_perf_timing_func() + def _get_subgoals(self, episode) -> List[List[Predicate]]: + if episode.subgoals is None: + return [] + # start_preds = self.pddl.get_true_predicates() + ret_subgoals = [] + for subgoal in episode.subgoals: + subgoal_preds = [] + for subgoal_predicate in subgoal: + pred = self.pddl.parse_predicate( + subgoal_predicate, self.pddl.all_entities + ) + subgoal_preds.append(pred) + if len(subgoal_preds) != 0: + ret_subgoals.append(subgoal_preds) + return ret_subgoals + + @add_perf_timing_func() + def step(self, *args, action, **kwargs): + self.pddl.sim_info.reset_pred_truth_cache() + fix_top_down_cam_pos(self._sim) + self.num_steps += 1 + if "action_args" not in action: + # This won't be added to discrete action spaces, but RearrangeTask + # expects it. + action["action_args"] = {"sel": action["action"]} + action["action"] = 0 + + return super().step(*args, action=action, **kwargs) + + @add_perf_timing_func() + def reset(self, episode): + self.num_steps = 0 + + # Generate a random episode ID that can be used for debugging purpose. This should be different than the dataset episode ID, because multiple workers could be operating on the same episode. + self.episode_rollout_id = random.randint(0, 9999999) + + super().reset(episode, fetch_observations=False) + if type(episode) == RearrangeEpisode: + # Hab2 style episode. + episode = convert_rearrange_ep_to_lang_rearrange(episode) + self.lang_goal = episode.instruction + self.instruct_id = episode.instruct_id + self.sampler_info = episode.sampler_info + self._load_start_goal(episode) + + if self._fix_agent_pos: + # Fix the agent position to 0,0 and the rotation to 0. + agent = self._sim.get_agent_data(0).articulated_agent + agent.base_pos = self._sim.pathfinder.snap_point( + mn.Vector3(0.0, agent.base_pos[1], 0.0) + ) + agent.base_rot = 0.0 + + self._subgoals = list(self._get_subgoals(episode)) + + self._sim.draw_bb_objs.clear() + fix_top_down_cam_pos(self._sim) + + self._sim.maybe_update_articulated_agent() + return self._get_observations(episode) + + def get_sampled(self) -> List[PddlEntity]: + return [self.new_entities[k] for k in self._sampled_names] + + +def _strip_instance_id(instance_id: str) -> str: + # Strip off the unique instance ID of the object and only return the asset + # name. + return "_".join(instance_id.split("_")[:-1]) + + +def _recur_dict_replace(d: Any, replaces: Dict[str, PddlEntity]) -> Any: + """ + Replace all string entries in `d` with the replace name to PDDL entity + mapping in replaces. + """ + if isinstance(d, ListConfig): + d = list(d) + if isinstance(d, DictConfig): + d = dict(d) + + if isinstance(d, str): + for name, entity in replaces.items(): + d = d.replace(f"{name}.type", entity.expr_type.name) + d = d.replace(name, entity.name) + elif isinstance(d, list): + for i, v in enumerate(d): + d[i] = _recur_dict_replace(v, replaces) + elif isinstance(d, dict): + for k, v in d.items(): + d[k] = _recur_dict_replace(d[k], replaces) + return d + + +def _filter_matching_pred_conds( + matches: List[PddlEntity], + pred_conds: List[str], + pddl: PddlDomain, + other_entities: Dict[str, PddlEntity], + entity_name: str, +) -> List[PddlEntity]: + """ + Filters elements from matches based on a set of PDDL predicate strings. + """ + + ret = [] + for match in matches: + should_include = True + for pred_cond in pred_conds: + subbed_pred_cond = pred_cond.replace(entity_name, match.name) + for other_entity_name, other_entity in other_entities.items(): + subbed_pred_cond = subbed_pred_cond.replace( + other_entity_name, other_entity.name + ) + pred = pddl.parse_predicate(subbed_pred_cond, pddl.all_entities) + + if not pred.is_true(pddl.sim_info): + should_include = False + break + if not should_include: + continue + ret.append(match) + + return ret + + +def fix_top_down_cam_pos(sim): + if "top_down_rgb" not in sim._sensors: + return + middle_of_scene = np.array(sim.pathfinder.get_bounds()).mean(0) + look_at_mat = mn.Matrix4.look_at( + mn.Vector3(middle_of_scene[0], 6.5, middle_of_scene[0]), + middle_of_scene, + mn.Vector3(0.0, 1.0, 0.0), + ) + rot_mat = mn.Matrix4.from_( + mn.Matrix4.rotation(mn.Rad(np.pi / 2), mn.Vector3(0.0, 1.0, 0.0)).rotation(), + # mn.Vector3(2.5, 0.0, 1.0), + mn.Vector3(0.0, 0.0, 4.0), + ) + sim._sensors["top_down_rgb"]._sensor_object.node.transformation = ( + rot_mat @ look_at_mat + ) + + +def convert_rearrange_ep_to_lang_rearrange( + ep: RearrangeEpisode, +) -> LangRearrangeEpisode: + return LangRearrangeEpisode( + instruction="", + sampled_entities={}, + start_preds=[], + goal_preds={}, + instruct_id="", + sampler_info={}, + subgoals=[], + **ep.__getstate__(), + ) diff --git a/easi/tasks/ebhabitat/vendor/sensors.py b/easi/tasks/ebhabitat/vendor/sensors.py new file mode 100644 index 0000000..0c29bfb --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/sensors.py @@ -0,0 +1,422 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +import os.path as osp +from typing import List + +import gym.spaces as spaces +import numpy as np +import torch +from habitat.core.registry import registry +from habitat.core.simulator import Sensor, SensorTypes +from habitat.tasks.rearrange.multi_task.pddl_predicate import Predicate +from habitat.tasks.rearrange.multi_task.rearrange_pddl import \ + SimulatorObjectType +from habitat.tasks.rearrange.utils import batch_transform_point + +from easi.tasks.ebhabitat.vendor.dataset.utils import get_category_info, get_name_mappings +from easi.tasks.ebhabitat.vendor.utils import get_parser + + +@registry.register_sensor +class OneHotTargetSensor(Sensor): + def __init__(self, *args, task, **kwargs): + self._task = task + self._n_cls = len(task.all_cls) + self._obs = np.zeros((self._n_cls,)) + super().__init__(*args, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return "one_hot_target_sensor" + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box(shape=(self._n_cls,), low=0, high=1, dtype=np.float32) + + def get_observation(self, *args, **kwargs): + cur_target = self._task.get_sampled()[self.config.sampled_idx] + + # For receptacles the name will not be a class but the name directly. + use_name = cur_target.expr_type.name + if cur_target.name in self._task.all_cls: + use_name = cur_target.name + set_i = self._task.all_cls.index(use_name) + self._obs *= 0.0 + self._obs[set_i] = 1.0 + + return self._obs + + +@registry.register_sensor +class SimpleTargetSensor(Sensor): + uuid = "simple_lang_goal" + + def __init__(self, *args, config, **kwargs): + self._max_len = config.max_len + self._add_special_tokens = config.add_special_tokens + self._name_mappings = get_name_mappings() + self.cur_lang_goal = "" + super().__init__(*args, config=config, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return SimpleTargetSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(self._max_len,), + low=0, + high=1, + dtype=np.int64, + ) + + def get_observation(self, *args, task, **kwargs): + cur_target = task.get_sampled()[0] + if cur_target.expr_type.parent.name == SimulatorObjectType.MOVABLE_ENTITY.value: + # This is an object. + target_name = cur_target.expr_type.name + else: + # This is a receptacle. + target_name = cur_target.name + + target_name = self._name_mappings.get(target_name, target_name) + + tokens = task.tokenizer( + target_name, + return_tensors="np", + padding="max_length", + max_length=self._max_len, + add_special_tokens=self._add_special_tokens, + )["input_ids"][0] + + assert ( + tokens.shape[0] == self._max_len + ), f"Instruction is too many tokens at {tokens.shape[0]} but the max is {self._max_len} for instruction {target_name}" + self.cur_lang_goal = target_name + return tokens + + +@registry.register_sensor +class WindowDebugSensor(Sensor): + uuid = "debug_info" + + def _get_uuid(self, *args, **kwargs): + return WindowDebugSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(2,), + low=np.finfo(np.float32).min, + high=np.finfo(np.float32).max, + dtype=np.float32, + ) + + def get_observation(self, *args, task, **kwargs): + return np.array([task.num_steps + 1, task.episode_rollout_id], dtype=np.float32) + + +@registry.register_sensor +class StepCountSensor(Sensor): + uuid = "step_count" + + def _get_uuid(self, *args, **kwargs): + return StepCountSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(1,), + low=np.finfo(np.float32).min, + high=np.finfo(np.float32).max, + dtype=np.float32, + ) + + def get_observation(self, *args, task, **kwargs): + return np.array([task.num_steps], dtype=np.float32) + + +@registry.register_sensor +class VocabLangGoalSensor(Sensor): + uuid = "vocab_lang_goal" + + def __init__(self, *args, config, **kwargs): + self._max_len = config.max_len + self._add_special_tokens = config.add_special_tokens + super().__init__(*args, config=config, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return VocabLangGoalSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(self._max_len,), + low=0, + high=1, + dtype=np.int64, + ) + + def get_observation(self, *args, task, **kwargs): + tokens = task.tokenizer( + task.lang_goal, + return_tensors="np", + padding="max_length", + max_length=self._max_len, + add_special_tokens=self._add_special_tokens, + )["input_ids"][0] + assert ( + tokens.shape[0] == self._max_len + ), f"Instruction is too many tokens at {tokens.shape[0]} but the max is {self._max_len}" + return tokens + + +@registry.register_sensor +class T5VocabLangGoalSensor(Sensor): + """ + Always outputs the T5 tokenization. + """ + + uuid = "t5_vocab_lang_goal" + + def __init__(self, *args, config, **kwargs): + self._max_len = config.max_len + self._tokenizer = get_parser("google/flan-t5-small") + super().__init__(*args, config=config, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return T5VocabLangGoalSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, **kwargs): + return spaces.Box( + shape=(self._max_len,), + low=0, + high=1, + dtype=np.int64, + ) + + def get_observation(self, *args, task, **kwargs): + tokens = self._tokenizer( + task.lang_goal, + return_tensors="np", + padding="max_length", + max_length=self._max_len, + )["input_ids"][0] + assert tokens.shape[0] == self._max_len + return tokens + + +@registry.register_sensor +class LlamaVocabLangGoalSensor(Sensor): + """ + Always outputs the llama tokenization. + """ + + uuid = "llama_vocab_lang_goal" + + def __init__(self, *args, config, **kwargs): + self._max_len = config.max_len + self._tokenizer = get_parser(config.tokenizer_name) + super().__init__(*args, config=config, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return LlamaVocabLangGoalSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, **kwargs): + return spaces.Box( + shape=(self._max_len,), + low=0, + high=1, + dtype=np.int64, + ) + + def get_observation(self, *args, task, **kwargs): + tokens = self._tokenizer( + task.lang_goal, + return_tensors="np", + padding="max_length", + max_length=self._max_len, + )["input_ids"][0] + assert tokens.shape[0] == self._max_len + return tokens + + +@registry.register_sensor +class ObsLangSensor(Sensor): + uuid = "obs_lang" + + def __init__(self, *args, config, task, **kwargs): + self._max_len = config.max_len + self._task = task + self._predicates_list = None + super().__init__(*args, config=config, task=task, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return ObsLangSensor.uuid + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + @property + def predicates_list(self) -> List[Predicate]: + """ + Returns all possible predicate combinations in the environment. + """ + + if self._predicates_list is None: + self._predicates_list = self._task.pddl_problem.get_possible_predicates() + return self._predicates_list + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(self._max_len,), + low=0, + high=1, + dtype=np.int64, + ) + + def get_observation(self, *args, **kwargs): + # Fetch the predicates that are true in the current simulator step. + sim_info = self._task.pddl_problem.sim_info + true_preds: List[Predicate] = [ + p for p in self.predicates_list if p.is_true(sim_info) + ] + + # Conver the predicates to a string representation. + true_preds_s: List[str] = [p.compact_str for p in true_preds] + + # Join all the predicate strings by sentences. + state_s = ". ".join(true_preds_s) + + # Return the tokenized version. + return self._task.tokenizer( + state_s, + return_tensors="np", + padding="max_length", + max_length=self._max_len, + truncation=True, + )["input_ids"][0] + + +@registry.register_sensor +class VocabEmbedSensor(Sensor): + def __init__(self, *args, config, **kwargs): + embed_dat = torch.load(config.embed_path) + self._embeddings = embed_dat["hxs"] + self._ep_idx_to_idx = embed_dat["ep_idx_to_hxs_idx"] + super().__init__(*args, config=config, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return "vocab_embed_goal" + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(self.config.hidden_dim,), + low=np.finfo(np.float32).min, + high=np.finfo(np.float32).max, + dtype=np.float32, + ) + + def get_observation(self, *args, task, **kwargs): + pt_idx = self._ep_idx_to_idx[task._episode_id] + return self._embeddings[pt_idx] + + +@registry.register_sensor +class ClosestTargetObjectPosSensor(Sensor): + """ + Gets the distance between the EE and the closest target object. + """ + + @staticmethod + def _get_uuid(*args, **kwargs): + return "closest_targ_obj_pos_sensor" + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(3,), + low=np.finfo(np.float32).min, + high=np.finfo(np.float32).max, + dtype=np.float32, + ) + + def get_observation(self, *args, task, **kwargs): + targ_type = task.get_sampled()[0] + matches = list(task.pddl.find_entities(targ_type.expr_type)) + obj_pos = np.array( + [task.pddl.sim_info.get_entity_pos(match) for match in matches] + ) + + ee_pos = task._sim.articulated_agent.ee_transform().translation + + dists = np.linalg.norm(obj_pos - ee_pos, ord=2, axis=-1) + closest_id = np.argmin(dists) + return obj_pos[closest_id] + + +@registry.register_sensor +class AllObjectPositionsSensor(Sensor): + def __init__(self, *args, task, **kwargs): + self._all_cats, _, _ = get_category_info() + super().__init__(*args, **kwargs) + + def _get_uuid(self, *args, **kwargs): + return "all_obj_pos_sensor" + + def _get_sensor_type(self, *args, **kwargs): + return SensorTypes.TENSOR + + def _get_observation_space(self, *args, config, **kwargs): + return spaces.Box( + shape=(3,), + low=np.finfo(np.float32).min, + high=np.finfo(np.float32).max, + dtype=np.float32, + ) + + def get_observation(self, *args, task, **kwargs): + pddl = task.pddl + entities = pddl.get_ordered_entities_list() + + entity_pos = [pddl.sim_info.get_entity_pos(entity) for entity in entities] + + base_T = task._sim.articulated_agent.base_transformation + entity_pos = batch_transform_point(entity_pos, base_T.inverted(), np.float32) + + entity_type_idxs = [] + for entity in entities: + if entity.name in self._all_cats: + entity_idx = self._all_cats.index(entity.name) + elif entity.expr_type.name in self._all_cats: + entity_idx = self._all_cats.index(entity.expr_type.name) + else: + entity_idx = -1 + entity_type_idxs.append(entity_idx) + + return np.array( + [[*pos, idx] for pos, idx in zip(entity_pos, entity_type_idxs)], + dtype=np.float32, + ).reshape(-1) diff --git a/easi/tasks/ebhabitat/vendor/utils.py b/easi/tasks/ebhabitat/vendor/utils.py new file mode 100644 index 0000000..9b0c2b4 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/utils.py @@ -0,0 +1,207 @@ +# +# For licensing see accompanying LICENSE file. +# Copyright (C) 2024 Apple Inc. All Rights Reserved. +# +import inspect +import os.path as osp +from typing import Dict, List, Tuple +import numpy as np +from PIL import Image, ImageDraw, ImageFont +import yaml +from habitat.tasks.rearrange.multi_task.pddl_action import PddlAction +from habitat.tasks.rearrange.multi_task.pddl_domain import PddlDomain +from habitat.tasks.rearrange.multi_task.pddl_logical_expr import ( + LogicalExpr, LogicalQuantifierType) +from habitat.tasks.rearrange.multi_task.rearrange_pddl import ( + ExprType, PddlEntity, SimulatorObjectType) +from transformers import (AutoConfig, AutoModelForSeq2SeqLM, AutoTokenizer, + LlamaForCausalLM, LlamaModel, LlamaTokenizer, + T5Model) +from habitat.utils.visualizations.utils import (tile_images, draw_collision) +import easi.tasks.ebhabitat.vendor.config +import easi.tasks.ebhabitat.vendor.dataset + +# Also defined in the PDDL +PLACABLE_RECEP_TYPE = "place_receptacle" + + +def draw_text(img, text, position): + draw = ImageDraw.Draw(img) + font = ImageFont.load_default() + font.size = 15 + text = str(text) + # Draw the text onto the image + draw.text(position, text, font=font, fill="red") + + +def merge_to_file(img, image_path, draw_index=True, index=0): + img_old = Image.open(image_path) + total_width = img.width + img_old.width + max_height = max(img.height, img_old.height) + img_merge = Image.new('RGB', (total_width, max_height)) + img_merge.paste(img_old, (0, 0)) + img_merge.paste(img, (img_old.width, 0)) + if draw_index: + draw_text(img_merge, index, position=(img_old.width+ 15, 15)) + img_merge.save(image_path) + + + +def process_image_array(obs_k): + if not isinstance(obs_k, np.ndarray): + obs_k = obs_k.cpu().numpy() + if obs_k.dtype != np.uint8: + obs_k = obs_k * 255.0 + obs_k = obs_k.astype(np.uint8) + if obs_k.shape[2] == 1: + obs_k = np.concatenate([obs_k for _ in range(3)], axis=2) + return obs_k + +def observations_to_image(observation, info, key=None): + render_obs_images = [] + if key is not None: + obs_k = observation[key] + obs_k = process_image_array(obs_k) + render_obs_images.append(obs_k) + else: + for sensor_name in observation: + if hasattr(observation[sensor_name], 'shape') and len(observation[sensor_name].shape) > 1: + obs_k = observation[sensor_name] + obs_k = process_image_array(obs_k) + render_obs_images.append(obs_k) + assert ( + len(render_obs_images) > 0 + ), "Expected at least one visual sensor enabled." + + shapes_are_equal = len(set(x.shape for x in render_obs_images)) == 1 + if not shapes_are_equal: + render_frame = tile_images(render_obs_images) + else: + render_frame = np.concatenate(render_obs_images, axis=1) + + # draw collision + collisions_key = "collisions" + if collisions_key in info and info[collisions_key]["is_collision"]: + render_frame = draw_collision(render_frame) + + top_down_map_key = "top_down_map" + if top_down_map_key in info: + top_down_map = maps.colorize_draw_agent_and_fit_to_height( + info[top_down_map_key], render_frame.shape[0] + ) + render_frame = np.concatenate((render_frame, top_down_map), axis=1) + return render_frame + + + +def get_allowed_actions(pddl, allowed_substrings): + all_actions = pddl.get_possible_actions() + + def matches_any(s, allowed_acs): + # returns if the string starts with any strings from allowed_acs + return any(s.name.startswith(ac) for ac in allowed_acs) + + return [ac for ac in all_actions if matches_any(ac, allowed_substrings)] + + +def _recur_replace(expr, search, replace): + if isinstance(expr, LogicalExpr): + for subexpr in expr.sub_exprs: + _recur_replace(subexpr, search, replace) + else: + for i, arg_val in enumerate(expr._arg_values): + if arg_val == search: + expr._arg_values[i] = replace + + +def flatten_actions(pddl: PddlDomain, obj_cats): + new_acs = {} + for ac_name, action in pddl.actions.items(): + found_i = -1 + # TODO: Currently this is a hack for only the pick action. This will + # not work for other PDDL actions. + + for i, param in enumerate(action.params): + if param.expr_type.name == SimulatorObjectType.MOVABLE_ENTITY.value: + found_i = i + break + + if found_i == -1: + new_acs[ac_name] = action + continue + + param = action.params[found_i] + del action.params[found_i] + for obj_cat in obj_cats: + precond = action.precond.clone() + assert len(precond.inputs) == 0, precond.quantifier is None + + obj_cat_type = pddl.expr_types[obj_cat] + at_entity = PddlEntity(name="DYN_OBJ", expr_type=obj_cat_type) + inputs = [at_entity] + + # Ignore the first expression which was about the robot position. + precond = precond.sub_in({param: at_entity}) + + postcond_pred = pddl.parse_predicate( + f"holding({at_entity.name})", {at_entity.name: at_entity} + ) + obj_action = PddlAction( + f"{action.name}_{obj_cat}", + action._params, + pre_cond=LogicalExpr( + precond.expr_type, + precond.sub_exprs, + inputs, + LogicalQuantifierType.EXISTS, + ), + post_cond=[postcond_pred], + ) + + new_acs[obj_action.name] = obj_action + pddl.set_actions(new_acs) + return pddl + + +def get_obj_type(cat, pddl): + return pddl.expr_types[SimulatorObjectType.MOVABLE_ENTITY.value] + + +def get_pddl(task_config, all_cats, obj_cats) -> PddlDomain: + config_path = osp.dirname(__file__) + domain_file_path = osp.join( + config_path, + 'config', + task_config.task_spec_base_path, + task_config.pddl_domain_def + ".yaml", + ) + pddl = PddlDomain( + domain_file_path, + task_config, + ) + + # Add permanent entity types. (Object types and receptacles). + for cat in all_cats: + if cat in obj_cats: + obj_type = get_obj_type(cat, pddl) + entity_type = ExprType(cat, obj_type) + pddl._expr_types[cat] = entity_type + else: + # Assume this is a receptacle in the scene. Permanently place, not per episode. + pddl._constants[cat] = PddlEntity(cat, pddl.expr_types[PLACABLE_RECEP_TYPE]) + + return flatten_actions(pddl, obj_cats) + + +def get_parser(llm_id): + if "llama" in llm_id.lower(): + tokenizer = LlamaTokenizer.from_pretrained(llm_id) + # llama has no pad token by default. As per this thread: + # https://github.com/huggingface/transformers/issues/22312 we should + # set pad token manually. + tokenizer.pad_token = "[PAD]" + return tokenizer + else: + tokenizer = AutoTokenizer.from_pretrained(llm_id) + tokenizer.pad_token = "[PAD]" + return tokenizer diff --git a/tests/test_ebhabitat_task.py b/tests/test_ebhabitat_task.py new file mode 100644 index 0000000..6c570a9 --- /dev/null +++ b/tests/test_ebhabitat_task.py @@ -0,0 +1,264 @@ +"""Tests for the EB-Habitat task (offline, no simulator needed).""" +import json + +import pytest +from pathlib import Path + +from easi.core.episode import Action, Observation, StepResult +from easi.tasks.ebhabitat.task import EBHabitatTask +from easi.tasks.ebhabitat.actions import get_placeholder_action_space, PLACEHOLDER_ACTIONS + + +class TestEBHabitatActionSpace: + def test_placeholder_action_space_not_empty(self): + actions = get_placeholder_action_space() + assert len(actions) > 0 + + def test_placeholder_has_navigate(self): + actions = get_placeholder_action_space() + nav_actions = [a for a in actions if a.startswith("navigate")] + assert len(nav_actions) >= 5 + + def test_placeholder_has_pick(self): + actions = get_placeholder_action_space() + pick_actions = [a for a in actions if a.startswith("pick up")] + assert len(pick_actions) >= 1 + + def test_placeholder_has_place(self): + actions = get_placeholder_action_space() + place_actions = [a for a in actions if a.startswith("place at")] + assert len(place_actions) >= 1 + + def test_placeholder_has_open_close(self): + actions = get_placeholder_action_space() + assert any("open" in a for a in actions) + assert any("close" in a for a in actions) + + def test_placeholder_returns_copy(self): + a1 = get_placeholder_action_space() + a2 = get_placeholder_action_space() + assert a1 is not a2 + assert a1 == a2 + + +class TestEBHabitatTask: + @pytest.fixture + def task(self): + return EBHabitatTask() + + def test_name(self, task): + assert task.name == "ebhabitat_base" + + def test_simulator_key(self, task): + assert task.simulator_key == "habitat_sim:v0_3_0" + + def test_action_space_loaded(self, task): + assert len(task.action_space) == len(PLACEHOLDER_ACTIONS) + + def test_max_steps(self, task): + assert task.max_steps == 30 + + def test_format_reset_config(self, task): + """Test the adapter from EB-Habitat HF row to bridge reset config.""" + episode = { + "id": 0, + "episode_id": "140", + "instruction": "Find a toy airplane and move it to the right counter.", + "instruct_id": "f0917e29", + "scene_id": "data/replica_cad/configs/scenes/v3_sc3_staging_02.scene_instance.json", + } + config = task.format_reset_config(episode) + assert config["episode_id"] == 0 + assert config["eval_set"] == "base" + assert config["instruction"] == episode["instruction"] + + def test_evaluate_episode(self, task): + """Test metric computation from trajectory.""" + episode = {"id": 0, "instruction": "test"} + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False, + info={"task_success": 0.0, "task_progress": 0.33, "subgoal_reward": 0.1}), + StepResult(observation=obs, reward=0.5, done=True, + info={"task_success": 1.0, "task_progress": 1.0, "subgoal_reward": 0.8}), + ] + metrics = task.evaluate_episode(episode, trajectory) + assert metrics["task_success"] == 1.0 + assert metrics["task_progress"] == 1.0 + assert metrics["subgoal_reward"] == 0.8 + assert metrics["num_steps"] == 2 + + def test_evaluate_empty_trajectory(self, task): + episode = {"id": 0, "instruction": "test"} + metrics = task.evaluate_episode(episode, []) + assert metrics["task_success"] == 0.0 + assert metrics["task_progress"] == 0.0 + assert metrics["subgoal_reward"] == 0.0 + assert metrics["num_steps"] == 0.0 + + def test_get_instruction(self, task): + episode = {"instruction": "Find a toy airplane and move it to the right counter."} + assert task.get_instruction(episode) == "Find a toy airplane and move it to the right counter." + + def test_builtin_episodes(self, task): + episodes = task._get_builtin_episodes() + assert len(episodes) >= 1 + assert "instruction" in episodes[0] + assert "episode_id" in episodes[0] + + def test_task_registry_discovers_all_splits(self): + """Registry should discover all EB-Habitat split yamls.""" + from easi.tasks.registry import list_tasks, refresh + refresh() + tasks = list_tasks() + expected = [ + "ebhabitat_base", + "ebhabitat_common_sense", + "ebhabitat_complex_instruction", + "ebhabitat_spatial_relationship", + "ebhabitat_visual_appearance", + "ebhabitat_long_horizon", + ] + for name in expected: + assert name in tasks, f"{name} not found in task registry" + + def test_split_specific_task_loading(self): + """Loading ebhabitat_base should give a task with correct config.""" + from easi.tasks.registry import get_task_entry, refresh + refresh() + entry = get_task_entry("ebhabitat_base") + assert entry.simulator_key == "habitat_sim:v0_3_0" + assert entry.config_path.name == "ebhabitat_base.yaml" + + def test_bridge_script_path(self, task): + bridge_path = task.get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" + + +class TestEBHabitatPromptBuilder: + def test_build_messages_first_turn(self): + """First turn: full system prompt in user message.""" + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.core.memory import AgentMemory + builder = EBHabitatPromptBuilder() + actions = get_placeholder_action_space() + memory = AgentMemory( + task_description="Find a toy airplane and move it to the right counter.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + messages = builder.build_messages(memory) + assert isinstance(messages, list) + assert messages[0]["role"] == "user" + text_content = messages[0]["content"][-1]["text"] + assert "You are a robot operating in a home" in text_content + assert "Navigation:" in text_content + assert "Pick:" in text_content + assert "Place:" in text_content + + def test_build_messages_with_history(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.core.memory import AgentMemory + builder = EBHabitatPromptBuilder() + actions = get_placeholder_action_space() + memory = AgentMemory( + task_description="Find a toy airplane and move it to the right counter.", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + obs = Observation(rgb_path="/tmp/rgb.png") + memory.record_step(obs, Action(action_name="navigate to the sofa"), llm_response="r1") + memory.record_feedback("Last action executed successfully.") + memory.record_step(obs, Action(action_name="pick up the toy airplane"), llm_response="r2") + memory.record_feedback("Last action is invalid.") + messages = builder.build_messages(memory) + assert isinstance(messages, list) + assert messages[0]["role"] == "user" + text_content = "" + for part in messages[0]["content"]: + if part["type"] == "text": + text_content += part["text"] + assert "navigate to the sofa" in text_content + assert "Last action is invalid." in text_content + + def test_parse_response_valid(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.core.memory import AgentMemory + builder = EBHabitatPromptBuilder() + actions = get_placeholder_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + builder.set_action_space(actions) + response = json.dumps({ + "visual_state_description": "I see a room", + "reasoning_and_reflection": "I should navigate", + "language_plan": "1. Navigate to sofa", + "executable_plan": [ + {"action_id": 6, "action_name": actions[6]}, + {"action_id": 0, "action_name": actions[0]}, + ], + }) + parsed = builder.parse_response(response, memory) + assert len(parsed) == 2 + assert parsed[0].action_name == actions[6] + assert parsed[1].action_name == actions[0] + + def test_parse_response_invalid_json(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.core.memory import AgentMemory + builder = EBHabitatPromptBuilder() + actions = get_placeholder_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + parsed = builder.parse_response("not json at all", memory) + assert parsed == [] + + def test_parse_response_empty_plan(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.core.memory import AgentMemory + builder = EBHabitatPromptBuilder() + actions = get_placeholder_action_space() + memory = AgentMemory( + task_description="test", + action_space=actions, + current_observation=Observation(rgb_path="/tmp/rgb.png"), + ) + response = json.dumps({ + "visual_state_description": "test", + "reasoning_and_reflection": "test", + "language_plan": "test", + "executable_plan": [], + }) + parsed = builder.parse_response(response, memory) + assert parsed == [] + + def test_conforms_to_protocol(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + from easi.agents.prompt_builder import PromptBuilderProtocol + builder = EBHabitatPromptBuilder() + assert isinstance(builder, PromptBuilderProtocol) + + def test_system_prompt_matches_source(self): + """Verify the system prompt text matches EmbodiedBench source.""" + from easi.tasks.ebhabitat.prompts import HABITAT_SYSTEM_PROMPT + assert "Navigation:" in HABITAT_SYSTEM_PROMPT + assert "Pick:" in HABITAT_SYSTEM_PROMPT + assert "Place:" in HABITAT_SYSTEM_PROMPT + assert "Open:" in HABITAT_SYSTEM_PROMPT + assert "Close:" in HABITAT_SYSTEM_PROMPT + # Should NOT contain Alfred-specific actions + assert "Find:" not in HABITAT_SYSTEM_PROMPT + assert "Slice:" not in HABITAT_SYSTEM_PROMPT + assert "Turn on:" not in HABITAT_SYSTEM_PROMPT + + def test_examples_loaded(self): + from easi.tasks.ebhabitat.prompts import EBHabitatPromptBuilder + builder = EBHabitatPromptBuilder(n_shot=10) + assert len(builder._examples) >= 10 From b9d339cc484dc5975f38e4945b3cb3d40d2ef013 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:01:05 +0800 Subject: [PATCH 030/239] [Feat] Add --redownload flag for dataset re-download Add --redownload to 'easi task download' and 'easi run' to force re-download of cached HuggingFace datasets. Useful when a previous download was interrupted or incomplete. --- easi/cli.py | 15 ++++++++++----- easi/core/base_task.py | 15 ++++++++++++--- easi/evaluation/runner.py | 4 ++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index d6e8107..bddacd1 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -59,6 +59,8 @@ def build_parser() -> argparse.ArgumentParser: task_download = task_sub.add_parser("download", help="Download task dataset", parents=[common]) task_download.add_argument("task", type=str) + task_download.add_argument("--redownload", action="store_true", + help="Delete cached dataset and re-download from source") task_scaffold = task_sub.add_parser("scaffold", help="Generate boilerplate for a new benchmark", parents=[common]) task_scaffold.add_argument("name", type=str, help="Task name in snake_case (e.g., 'my_benchmark')") @@ -102,6 +104,8 @@ def build_parser() -> argparse.ArgumentParser: help="Max LLM retry attempts on transient errors (default: 3)") run_parser.add_argument("--resume", type=str, default=None, help="Path to a previous run directory to resume from") + run_parser.add_argument("--redownload", action="store_true", + help="Delete cached dataset and re-download from source") # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) @@ -224,12 +228,12 @@ def cmd_task_scaffold(name: str, simulator: str, max_steps: int) -> None: logger.info(" 4. Run tests: pytest tests/test_%s.py -v", name) -def cmd_task_download(task_name: str) -> None: +def cmd_task_download(task_name: str, redownload: bool = False) -> None: from easi.tasks.registry import load_task_class TaskClass = load_task_class(task_name) task = TaskClass() - path = task.download_dataset() + path = task.download_dataset(force=redownload) if path and str(path): logger.info("Dataset ready at: %s", path) else: @@ -292,7 +296,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, llm_url, seed, backend, model, port, llm_kwargs_raw, - max_retries, resume): + max_retries, resume, redownload=False): import json as _json from pathlib import Path @@ -347,6 +351,7 @@ def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, llm_kwargs_raw=llm_kwargs_raw, max_retries=max_retries, resume_dir=resume, + redownload=redownload, ) results = runner.run(max_episodes=max_episodes) logger.info("Completed %d episodes.", len(results)) @@ -392,7 +397,7 @@ def main() -> None: elif args.task_action == "info": cmd_task_info(args.task) elif args.task_action == "download": - cmd_task_download(args.task) + cmd_task_download(args.task, redownload=args.redownload) elif args.task_action == "scaffold": cmd_task_scaffold(args.name, args.simulator, args.max_steps) else: @@ -408,7 +413,7 @@ def main() -> None: cmd_run(args.task, args.agent, args.output_dir, args.data_dir, args.max_episodes, args.llm_url, args.seed, args.backend, args.model, args.port, args.llm_kwargs, - args.max_retries, args.resume) + args.max_retries, args.resume, args.redownload) elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index ad3b442..fc64bed 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -150,9 +150,12 @@ def _build_action_space(self) -> list[str]: def max_steps(self) -> int: return self._config.get("max_steps", 500) - def download_dataset(self) -> Path: + def download_dataset(self, force: bool = False) -> Path: """Download dataset if needed. Returns path to local data directory. + Args: + force: If True, delete cached dataset and re-download. + - source=local: validate path exists, return it - source=huggingface: download via huggingface_hub, cache locally """ @@ -170,7 +173,7 @@ def download_dataset(self) -> Path: return local_path elif source == "huggingface": - return self._download_huggingface(dataset_config) + return self._download_huggingface(dataset_config, force=force) else: raise DatasetError(f"Unknown dataset source: {source}") @@ -306,7 +309,7 @@ def _get_builtin_episodes(self) -> list[dict]: """ return [] - def _download_huggingface(self, config: dict) -> Path: + def _download_huggingface(self, config: dict, force: bool = False) -> Path: """Download a dataset from HuggingFace Hub with file-based locking. Uses snapshot_download to get the full repo (including .zip files), @@ -327,6 +330,12 @@ def _download_huggingface(self, config: dict) -> Path: with file_lock(lock_path): target = base_dir / repo_id.replace("/", "_") + + if force and target.exists(): + import shutil + logger.info("Force re-download: removing cached %s", target) + shutil.rmtree(target, ignore_errors=True) + if not target.exists(): try: from huggingface_hub import snapshot_download diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index a75abeb..d46da2b 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -58,6 +58,7 @@ def __init__( llm_kwargs_raw: str | None = None, max_retries: int = 3, resume_dir: Path | str | None = None, + redownload: bool = False, ): self.task_name = task_name self.agent_type = agent_type @@ -71,6 +72,7 @@ def __init__( self.llm_kwargs_raw = llm_kwargs_raw self.max_retries = max_retries self.resume_dir = Path(resume_dir) if resume_dir else None + self.redownload = redownload self.run_id = datetime.now().strftime("%Y%m%d_%H%M%S") def _resolve_llm_backend(self) -> tuple[str | None, str | None]: @@ -115,6 +117,8 @@ def run(self, max_episodes: int | None = None) -> list[dict]: # 1. Load task task = self._create_task() + if self.redownload: + task.download_dataset(force=True) episodes = task.load_episodes() if max_episodes is not None: episodes = episodes[:max_episodes] From 8a46da332854996480e4ca709e853ecab5b0fd75 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:10:55 +0800 Subject: [PATCH 031/239] [Feat] Add retry with exponential backoff for HuggingFace dataset downloads Retries up to 5 times with 2/4/8/16s backoff on transient network errors. Partial downloads are cleaned up only after final failure. --- easi/core/base_task.py | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index fc64bed..d0bc5fa 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -345,18 +345,36 @@ def _download_huggingface(self, config: dict, force: bool = False) -> Path: "Install with: pip install huggingface_hub" ) - logger.info("Downloading dataset %s from HuggingFace...", repo_id) - try: - snapshot_download( - repo_id=repo_id, - local_dir=str(target), - repo_type="dataset", + import time as _time + + max_attempts = 5 + for attempt in range(1, max_attempts + 1): + logger.info( + "Downloading dataset %s from HuggingFace (attempt %d/%d)...", + repo_id, attempt, max_attempts, ) - except Exception as e: - if target.exists(): - import shutil - shutil.rmtree(target, ignore_errors=True) - raise DatasetError(f"Failed to download {repo_id}: {e}") + try: + snapshot_download( + repo_id=repo_id, + local_dir=str(target), + repo_type="dataset", + ) + break # success + except Exception as e: + if attempt < max_attempts: + wait = 2 ** attempt # 2, 4, 8, 16s + logger.warning( + "Download attempt %d failed: %s. Retrying in %ds...", + attempt, e, wait, + ) + _time.sleep(wait) + else: + if target.exists(): + import shutil + shutil.rmtree(target, ignore_errors=True) + raise DatasetError( + f"Failed to download {repo_id} after {max_attempts} attempts: {e}" + ) logger.info("Downloaded dataset %s to %s", repo_id, target) else: From d543878fac02bb647924ccf0a4b7d3d399456d1b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:16:02 +0800 Subject: [PATCH 032/239] [Fix] Fix habitat-sim conda env spec to use separate feature packages List headless and withbullet as separate conda dependencies instead of build string glob, matching the original EmbodiedBench install command. --- easi/simulators/habitat_sim/v0_3_0/conda_env.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml index 2184e90..a682131 100644 --- a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml +++ b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml @@ -5,4 +5,6 @@ channels: - defaults dependencies: - python=3.10 - - habitat-sim=0.3.0=*withbullet*headless* + - habitat-sim=0.3.0 + - headless + - withbullet From 1128c6e5a821e634375ef01b2b777c3f58e6cff0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:24:00 +0800 Subject: [PATCH 033/239] [Fix] Use Python 3.9 for habitat-sim 0.3.0 (no 3.10 builds available) --- easi/simulators/habitat_sim/manifest.yaml | 2 +- easi/simulators/habitat_sim/v0_3_0/conda_env.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/simulators/habitat_sim/manifest.yaml b/easi/simulators/habitat_sim/manifest.yaml index 2873ce3..bbe4899 100644 --- a/easi/simulators/habitat_sim/manifest.yaml +++ b/easi/simulators/habitat_sim/manifest.yaml @@ -6,4 +6,4 @@ versions: description: "Habitat 0.3.0 — currently used by eb-habitat" simulator_class: "easi.simulators.habitat_sim.v0_3_0.simulator.HabitatSimulatorV030" env_manager_class: "easi.simulators.habitat_sim.v0_3_0.env_manager.HabitatEnvManagerV030" - python_version: "3.10" + python_version: "3.9" diff --git a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml index a682131..faf4f04 100644 --- a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml +++ b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml @@ -4,7 +4,7 @@ channels: - conda-forge - defaults dependencies: - - python=3.10 + - python=3.9 - habitat-sim=0.3.0 - headless - withbullet From 751ceea887e9b11ddf4a9f2c18134e85f547188e Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 16 Feb 2026 22:25:26 +0800 Subject: [PATCH 034/239] [Fix] Only validate habitat_sim import for simulator env habitat (habitat-lab) is a task-level additional_dep, not a simulator dep. --- easi/simulators/habitat_sim/v0_3_0/env_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/simulators/habitat_sim/v0_3_0/env_manager.py b/easi/simulators/habitat_sim/v0_3_0/env_manager.py index 7c6edb6..ac525bc 100644 --- a/easi/simulators/habitat_sim/v0_3_0/env_manager.py +++ b/easi/simulators/habitat_sim/v0_3_0/env_manager.py @@ -32,4 +32,4 @@ def get_system_deps(self) -> list[str]: return ["conda"] def get_validation_import(self) -> str: - return "import habitat_sim; import habitat" + return "import habitat_sim" From f43079be510e4cb9c68ccdb652cd9a393eade772 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 00:07:55 +0800 Subject: [PATCH 035/239] [Fix] Restore side-effect imports, trim unused imports, and add missing dataset configs - Restore critical side-effect imports in EBHabEnv.py (predicate_task, sensors, actions, measures) and utils.py (config, dataset) with noqa: F401 annotations - Make transformers import lazy in utils.py:get_parser() to avoid requiring it at module load time - Remove unused imports across 7 vendored files - Add missing dataset/configs/ directory (dataset.yaml, instructions.yaml) --- easi/tasks/ebhabitat/vendor/EBHabEnv.py | 17 +- easi/tasks/ebhabitat/vendor/actions.py | 4 +- .../config/default_structured_configs.py | 1 - .../vendor/dataset/configs/dataset.yaml | 535 +++++++++ .../vendor/dataset/configs/instructions.yaml | 1031 +++++++++++++++++ .../ebhabitat/vendor/dataset/episodes.py | 2 - easi/tasks/ebhabitat/vendor/predicate_task.py | 9 +- easi/tasks/ebhabitat/vendor/sensors.py | 1 - easi/tasks/ebhabitat/vendor/utils.py | 17 +- 9 files changed, 1587 insertions(+), 30 deletions(-) create mode 100644 easi/tasks/ebhabitat/vendor/dataset/configs/dataset.yaml create mode 100644 easi/tasks/ebhabitat/vendor/dataset/configs/instructions.yaml diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py index b99379e..294798e 100644 --- a/easi/tasks/ebhabitat/vendor/EBHabEnv.py +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -17,7 +17,6 @@ import json import imageio from PIL import Image -import numpy as np import habitat import hydra from habitat.datasets import make_dataset @@ -27,15 +26,19 @@ from habitat.gym.gym_definitions import _add_sim_sensor_to_config from omegaconf import OmegaConf -from habitat_sim.utils import viz_utils as vut -from easi.tasks.ebhabitat.vendor.config import default_structured_configs -import easi.tasks.ebhabitat.vendor.predicate_task -import easi.tasks.ebhabitat.vendor.config -import easi.tasks.ebhabitat.vendor.measures -from easi.tasks.ebhabitat.vendor.utils import observations_to_image, merge_to_file, draw_text +from easi.tasks.ebhabitat.vendor.utils import observations_to_image from easi.utils.logging import get_logger logger = get_logger(__name__) +# Side-effect imports: register habitat components (tasks, sensors, actions, +# measures, dataset, configs) so make_gym_from_config() can find them. +# Do NOT remove even if they appear unused — they run @registry.register_* +# decorators at import time. +import easi.tasks.ebhabitat.vendor.predicate_task # noqa: F401 +import easi.tasks.ebhabitat.vendor.sensors # noqa: F401 +import easi.tasks.ebhabitat.vendor.actions # noqa: F401 +import easi.tasks.ebhabitat.vendor.measures # noqa: F401 + HABITAT_CONFIG_PATH = os.path.join(os.path.dirname(__file__), 'config/task/language_rearrangement.yaml') diff --git a/easi/tasks/ebhabitat/vendor/actions.py b/easi/tasks/ebhabitat/vendor/actions.py index 15f03df..185b40b 100644 --- a/easi/tasks/ebhabitat/vendor/actions.py +++ b/easi/tasks/ebhabitat/vendor/actions.py @@ -8,9 +8,7 @@ from habitat.core.registry import registry from habitat.tasks.rearrange.actions.articulated_agent_action import \ ArticulatedAgentAction -from habitat.tasks.rearrange.actions.grip_actions import ( - GazeGraspAction, GripSimulatorTaskAction, MagicGraspAction, - SuctionGraspAction) +from habitat.tasks.rearrange.actions.grip_actions import MagicGraspAction from habitat.tasks.rearrange.rearrange_sim import RearrangeSim from easi.tasks.ebhabitat.vendor.utils import get_allowed_actions diff --git a/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py b/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py index 094f600..d5ef477 100644 --- a/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py +++ b/easi/tasks/ebhabitat/vendor/config/default_structured_configs.py @@ -5,7 +5,6 @@ from dataclasses import dataclass, field from typing import Any, Dict, List, Optional -import attr from habitat.config.default_structured_configs import ( ActionConfig, ArmActionConfig, HabitatSimRGBSensorConfig, LabSensorConfig, MeasurementConfig, TaskConfig) diff --git a/easi/tasks/ebhabitat/vendor/dataset/configs/dataset.yaml b/easi/tasks/ebhabitat/vendor/dataset/configs/dataset.yaml new file mode 100644 index 0000000..b083b38 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/dataset/configs/dataset.yaml @@ -0,0 +1,535 @@ +--- +dataset_path: "data/replica_cad/replicaCAD.scene_dataset_config.json" +correct_unstable_results: False +additional_object_paths: + - "data/objects/ycb/configs" +scene_sets: + - + name: "scene_train_split" + included_substrings: + - "v3_sc0_staging" + - "v3_sc1_staging" + - "v3_sc2_staging" + excluded_substrings: [] + - + name: "scene_val_split" + included_substrings: + - "v3_sc3_staging" + excluded_substrings: [] + - + name: "scene_test_split" + included_substrings: + - "v3_sc4_staging" + excluded_substrings: [] + +category_groups: + "all_cats": + # A list of every object category including both train and evaluation. + included: + - "ball" + - "clamp" + - "hammer" + - "screwdriver" + - "padlock" + - "scissors" + - "block" + - "drill" + - "spatula" + - "knife" + - "spoon" + - "plate" + - "sponge" + - "cleanser" + - "plum" + - "pear" + - "peach" + - "apple" + - "lemon" + - "can" + - "box" + - "banana" + - "strawberry" + - "lego" + - "rubriks cube" + - "book" + - "bowl" + - "cup" + - "mug" + - "orange" + - "lid" + - "toy airplane" + - "wrench" + # - "fork" + + "all_eval_cats": + included: + - "mug" + - "orange" + - "lid" + - "toy airplane" + - "wrench" + + "all_train_cats": + included: + - "ball" + - "clamp" + - "hammer" + - "screwdriver" + - "padlock" + - "scissors" + - "block" + - "drill" + - "spatula" + - "knife" + - "spoon" + # - "fork" + - "plate" + - "sponge" + - "cleanser" + - "plum" + - "pear" + - "peach" + - "apple" + - "lemon" + - "can" + - "box" + - "banana" + - "strawberry" + - "lego" + - "rubriks cube" + - "book" + - "bowl" + - "cup" + + "all_fruit": + included: + - "plum" + - "pear" + - "peach" + - "apple" + - "lemon" + + + +object_sets: + # Must be a 1-1 mapping. + - name: "CLUTTER_OBJECTS" + excluded_substrings: [] + included_substrings: + - "053_mini_soccer_ball" + - "054_softball" + - "055_baseball" + - "056_tennis_ball" + - "057_racquetball" + #- "058_golf_ball" + - "050_medium_clamp" + - "051_large_clamp" + - "052_extra_large_clamp" + - "048_hammer" + - "043_phillips_screwdriver" + - "044_flat_screwdriver" + - "042_adjustable_wrench" + - "038_padlock" + - "037_scissors" + - "036_wood_block" + - "070-a_colored_wood_blocks" + - "070-b_colored_wood_blocks" + - "035_power_drill" + - "033_spatula" + - "032_knife" + - "031_spoon" + #- "030_fork" + - "029_plate" + - "028_skillet_lid" + - "026_sponge" + - "021_bleach_cleanser" + - "018_plum" + - "017_orange" + - "016_pear" + - "015_peach" + - "013_apple" + - "014_lemon" + - "002_master_chef_can" + - "005_tomato_soup_can" + - "007_tuna_fish_can" + - "010_potted_meat_can" + - "003_cracker_box" + - "004_sugar_box" + - "008_pudding_box" + - "009_gelatin_box" + - "011_banana" + - "012_strawberry" + - "072-a_toy_airplane" + - "072-b_toy_airplane" + - "072-c_toy_airplane" + - "072-d_toy_airplane" + - "072-e_toy_airplane" + - "073-a_lego_duplo" + - "073-b_lego_duplo" + - "073-c_lego_duplo" + - "073-d_lego_duplo" + - "073-e_lego_duplo" + - "073-f_lego_duplo" + - "073-g_lego_duplo" + - "077_rubiks_cube" + - "frl_apartment_book_01" + - "frl_apartment_book_02" + - "frl_apartment_book_03" + - "frl_apartment_book_04" + - "frl_apartment_book_05" + - "frl_apartment_book_06" + - "frl_apartment_bowl_01" + - "frl_apartment_bowl_02" + - "frl_apartment_bowl_03" + - "frl_apartment_bowl_06" + - "frl_apartment_bowl_07" + - "024_bowl" + - "025_mug" + - "065-a_cups" + - "065-b_cups" + - "065-c_cups" + - "065-d_cups" + - "065-e_cups" + - "065-f_cups" + - "065-g_cups" + - "065-h_cups" + - "065-i_cups" + - "065-j_cups" + - "frl_apartment_cup_01" + - "frl_apartment_cup_02" + - "frl_apartment_cup_03" + - "frl_apartment_cup_05" + + - name: "ball" + excluded_substrings: [] + included_substrings: + - "053_mini_soccer_ball" + - "054_softball" + - "055_baseball" + - "056_tennis_ball" + - "057_racquetball" + # This will roll away. + #- "058_golf_ball" + + - name: "clamp" + excluded_substrings: [] + included_substrings: + - "050_medium_clamp" + - "051_large_clamp" + - "052_extra_large_clamp" + + - name: "hammer" + excluded_substrings: [] + included_substrings: + - "048_hammer" + + - name: "screwdriver" + excluded_substrings: [] + included_substrings: + - "043_phillips_screwdriver" + - "044_flat_screwdriver" + + - name: "wrench" + excluded_substrings: [] + included_substrings: + - "042_adjustable_wrench" + + - name: "padlock" + excluded_substrings: [] + included_substrings: + - "038_padlock" + + - name: "scissors" + excluded_substrings: [] + included_substrings: + - "037_scissors" + + - name: "block" + excluded_substrings: [] + included_substrings: + - "036_wood_block" + - "070-a_colored_wood_blocks" + - "070-b_colored_wood_blocks" + + - name: "drill" + excluded_substrings: [] + included_substrings: + - "035_power_drill" + + - name: "spatula" + excluded_substrings: [] + included_substrings: + - "033_spatula" + + - name: "knife" + excluded_substrings: [] + included_substrings: + - "032_knife" + + - name: "spoon" + excluded_substrings: [] + included_substrings: + - "031_spoon" + + # - name: "fork" + # excluded_substrings: [] + # included_substrings: + # - "030_fork" + + - name: "plate" + excluded_substrings: [] + included_substrings: + - "029_plate" + + - name: "lid" + excluded_substrings: [] + included_substrings: + - "028_skillet_lid" + + - name: "sponge" + excluded_substrings: [] + included_substrings: + - "026_sponge" + + - name: "cleanser" + excluded_substrings: [] + included_substrings: + - "021_bleach_cleanser" + + - name: "plum" + excluded_substrings: [] + included_substrings: + - "018_plum" + + - name: "orange" + excluded_substrings: [] + included_substrings: + - "017_orange" + + - name: "pear" + excluded_substrings: [] + included_substrings: + - "016_pear" + + - name: "peach" + excluded_substrings: [] + included_substrings: + - "015_peach" + + - name: "apple" + excluded_substrings: [] + included_substrings: + - "013_apple" + + - name: "lemon" + excluded_substrings: [] + included_substrings: + - "014_lemon" + + - name: "can" + excluded_substrings: [] + included_substrings: + - "002_master_chef_can" + - "005_tomato_soup_can" + - "007_tuna_fish_can" + - "010_potted_meat_can" + + - name: "box" + excluded_substrings: [] + included_substrings: + - "003_cracker_box" + - "004_sugar_box" + - "008_pudding_box" + - "009_gelatin_box" + + - name: "banana" + excluded_substrings: [] + included_substrings: + - "011_banana" + + - name: "strawberry" + excluded_substrings: [] + included_substrings: + - "012_strawberry" + + - name: "toy airplane" + excluded_substrings: [] + included_substrings: + - "072-a_toy_airplane" + - "072-b_toy_airplane" + - "072-c_toy_airplane" + - "072-d_toy_airplane" + - "072-e_toy_airplane" + + - name: "lego" + excluded_substrings: [] + included_substrings: + - "073-a_lego_duplo" + - "073-b_lego_duplo" + - "073-c_lego_duplo" + - "073-d_lego_duplo" + - "073-e_lego_duplo" + - "073-f_lego_duplo" + - "073-g_lego_duplo" + + - name: "rubriks cube" + excluded_substrings: [] + included_substrings: + - "077_rubiks_cube" + + - name: "book" + excluded_substrings: [] + included_substrings: + - "frl_apartment_book_01" + - "frl_apartment_book_02" + - "frl_apartment_book_03" + - "frl_apartment_book_04" + - "frl_apartment_book_05" + - "frl_apartment_book_06" + + - name: "bowl" + excluded_substrings: [] + included_substrings: + - "frl_apartment_bowl_01" + - "frl_apartment_bowl_02" + - "frl_apartment_bowl_03" + - "frl_apartment_bowl_06" + - "frl_apartment_bowl_07" + - "024_bowl" + + - name: "mug" + excluded_substrings: [] + included_substrings: + - "025_mug" + + - name: "cup" + excluded_substrings: [] + included_substrings: + - "065-a_cups" + - "065-b_cups" + - "065-c_cups" + - "065-d_cups" + - "065-e_cups" + - "065-f_cups" + - "065-g_cups" + - "065-h_cups" + - "065-i_cups" + - "065-j_cups" + - "frl_apartment_cup_01" + - "frl_apartment_cup_02" + - "frl_apartment_cup_03" + - "frl_apartment_cup_05" + +receptacle_sets: + # Keep this as the 0th entry. + - + name: "all_receps" + included_object_substrings: [""] + excluded_object_substrings: [] + excluded_receptacle_substrings: [] + included_receptacle_substrings: + - "receptacle_aabb_Chr1_Top1_frl_apartment_chair_01" + - "receptacle_aabb_Tbl1_Top1_frl_apartment_table_01" + - "receptacle_aabb_Tbl2_Top1_frl_apartment_table_02" + - "receptacle_aabb_TvStnd1_Top1_frl_apartment_tvstand" + - "receptacle_aabb_sink_kitchen_counter" + - "receptacle_aabb_counter_right_kitchen_counter" + - "receptacle_aabb_counter_left_kitchen_counter" + - "receptacle_aabb_Sofa_frl_apartment_sofa" + + # Inside of articulated objects. + - "receptacle_aabb_middle_topfrl_apartment_refrigerator" + - "receptacle_aabb_drawer_left_top_frl_apartment_kitchen_counter" + - "receptacle_aabb_drawer_right_top_frl_apartment_kitchen_counter" + # - "receptacle_aabb_drawer_middle_top_frl_apartment_kitchen_counter" + + - + name: "open_air_receps" + included_object_substrings: + - "" + excluded_object_substrings: [] + excluded_receptacle_substrings: [] + included_receptacle_substrings: + # - "receptacle_aabb_Chr1_Top1_frl_apartment_chair_01" + - "receptacle_aabb_Tbl1_Top1_frl_apartment_table_01" + - "receptacle_aabb_Tbl2_Top1_frl_apartment_table_02" + - "receptacle_aabb_TvStnd1_Top1_frl_apartment_tvstand" + - "receptacle_aabb_sink_kitchen_counter" + - "receptacle_aabb_counter_right_kitchen_counter" + - "receptacle_aabb_counter_left_kitchen_counter" + - "receptacle_aabb_Sofa_frl_apartment_sofa" + + +max_objects_per_receptacle: + - ["receptacle_aabb_Chr1_Top1_frl_apartment_chair_01", 2] + - ["receptacle_aabb_sink_kitchen_counter", 2] + +scene_sampler: + type: "subset" + params: + scene_sets: ["scene_train_split", "scene_val_split", "scene_test_split"] + +object_samplers: + - + name: "CLUTTER" + type: "uniform" + params: + object_sets: ["CLUTTER_OBJECTS"] + receptacle_sets: ["open_air_receps"] + num_samples: [30, 30] + orientation_sampling: "up" + +object_target_samplers: [] + +ao_state_samplers: + - + name: "open_fridge_cab" + type: "composite" + params: + - + ao_handle: "fridge" + joint_states: + - ["top_door", 1.5, 1.5] + should_sample_all_joints: True + - + ao_handle: "counter" + joint_states: + - ["drawer1_top", 0.5, 0.5] + - ["drawer1_bottom", 0.5, 0.5] + - ["drawer2_top", 0.5, 0.5] + - ["drawer2_middle", 0.5, 0.5] + - ["drawer2_bottom", 0.5, 0.5] + - ["drawer3", 0.5, 0.5] + - ["drawer4", 0.5, 0.5] + +markers: + - name: "cab_push_point_7" + type: "articulated_object" + params: + offset: [0.3,0.0,0] + link: "drawer1_top" + object: "kitchen_counter_:0000" + - name: "cab_push_point_6" + type: "articulated_object" + params: + offset: [0.3,0.0,0] + link: "drawer2_top" + object: "kitchen_counter_:0000" + - name: "cab_push_point_5" + type: "articulated_object" + params: + offset: [0.3,0.0,0] + link: "drawer3" + object: "kitchen_counter_:0000" + - name: "cab_push_point_4" + type: "articulated_object" + params: + offset: [0.3,0.0,0] + link: "drawer4" + object: "kitchen_counter_:0000" + - name: "fridge_push_point" + type: "articulated_object" + params: + offset: [0.10,-0.62,0.2] + link: "top_door" + object: "fridge_:0000" diff --git a/easi/tasks/ebhabitat/vendor/dataset/configs/instructions.yaml b/easi/tasks/ebhabitat/vendor/dataset/configs/instructions.yaml new file mode 100644 index 0000000..1c9cec0 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/dataset/configs/instructions.yaml @@ -0,0 +1,1031 @@ +max_per_obj_count: 1 +instructions: + # See `InstructionInfo` docs about instruction info. + # DONT USE RECEPTACLE AS AN ENTITY NAME + + 42f1b012: + # Single object rearrangement, revealed targ_recep. + lang: + train: + - "Move a `target_object_name` from the `source_receptacle_name` to the `target_receptacle_name`" + - "Pick a `target_object_name` from the `source_receptacle_name` and move it to the `target_receptacle_name`" + - "Retrieve an `target_object_name` from the `source_receptacle_name` and transfer it to the `target_receptacle_name`." + - "Take a `target_object_name` out of the `source_receptacle_name` and place it into the `target_receptacle_name`." + - "Gather an `target_object_name` from the `source_receptacle_name` and relocate it to the `target_receptacle_name`." + - "Remove a `target_object_name` from the `source_receptacle_name` and reposition it in the `target_receptacle_name`." + - "Acquire an `target_object_name` from the `source_receptacle_name` and shift it to the `target_receptacle_name`." + - "Extract a `target_object_name` from the `source_receptacle_name` and move it to the `target_receptacle_name`." + - "Secure an `target_object_name` from the `source_receptacle_name` and transport it to the `target_receptacle_name`." + - "Pick up an `target_object_name` from the `source_receptacle_name` and deposit it into the `target_receptacle_name`." + - "Obtain an `target_object_name` from the `source_receptacle_name` and transfer it to the `target_receptacle_name`." + - "Collect a `target_object_name` from the `source_receptacle_name` and place it in the `target_receptacle_name`." + + eval: + - "On the `source_receptacle_name` there is a `target_object_name`, move it to the `target_receptacle_name`" + - "Hey, on the `source_receptacle_name`, I accidentally left my `target_object_name`, can you bring it to the `target_receptacle_name`?" + - "The `target_object_name` is on the `source_receptacle_name` but you should move it to the `target_receptacle_name`." + tags: ['v2_train', 'obj_gen', 'v1', 'rearrange', 'simple'] + overweight_freq: 4 + solution_template: + - "nav(`source_receptacle_name`)" + - "pick_`target_object_name`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "on_top(X, target_receptacle_name)" + - "not_holding()" + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name"] + sampled_objects: + "target_object_name": + types: + train: "all_train_cats" + eval: "all_eval_cats" + recep: source_receptacle_name + + f0917e29: + # Single object rearrangement non-revealed targ_recep. + lang: + train: + - "Move a `target_object_name` to the `target_receptacle_name`" + + - "Transfer an `target_object_name` to the designated `target_receptacle_name`." + - "Relocate a `target_object_name` to its assigned `target_receptacle_name`." + - "Shift a `target_object_name` and place it into the specified `target_receptacle_name`." + - "Move one of the `target_object_name` items to the indicated `target_receptacle_name`." + - "Take an `target_object_name` and transfer it to the allocated `target_receptacle_name`." + - "Transport a `target_object_name` and carefully position it in the designated `target_receptacle_name`." + - "Pick up a `target_object_name` and move it to the preassigned `target_receptacle_name`." + - "Remove an `target_object_name` from its current location and relocate it to the specified `target_receptacle_name`." + - "Retrieve a `target_object_name` and place it into the predetermined `target_receptacle_name`." + - "Deliver the `target_object_name` to the intended `target_receptacle_name` by physically moving it there." + eval: + - "On the `target_receptacle_name` I need you to put a `target_object_name`" + - "Find a `target_object_name` and move it to the `target_receptacle_name`" + - "I need a `target_object_name` on the `target_receptacle_name`. Can you help?" + distraction: + - "There's an apple on the sofa, but on the `target_receptacle_name` I need you to put a `target_object_name`" + - "On the sofa there's an apple, but instead find a `target_object_name` and move it to the `target_receptacle_name`" + - "Instead of finding an apple, I need a `target_object_name` on the `target_receptacle_name`. Can you help?" + tags: ['v2_train', 'obj_gen', 'rearrange', 'simple'] + overweight_freq: 4 + solution_template: + - "nav(`source_receptacle_name`)" + - "pick_`target_object_name`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "on_top(X, target_receptacle_name)" + - "not_holding()" + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name"] + sampled_objects: + "target_object_name": + types: + train: "all_train_cats" + eval: "all_eval_cats" + not_recep: target_receptacle_name + recep: source_receptacle_name + semantics: + 688ee521: + match_objs: + target_object_name: + - "plate" + lang: + train: + - "Set out a `target_object_name` for one person on the `target_receptacle_name`." + + + 9a1dd6ee: + lang: + train: + - "Move the `target_object_name` off the `target_receptacle_name`." + + - "Remove the `target_object_name` from the `target_receptacle_name`." + - "Take the `target_object_name` away from the `target_receptacle_name`." + - "Lift the `target_object_name` off the `target_receptacle_name`." + - "Extract the `target_object_name` from the `target_receptacle_name`." + - "Retrieve the `target_object_name` that is on the `target_receptacle_name`." + - "Displace the `target_object_name` from the `target_receptacle_name`." + - "Detach the `target_object_name` from the `target_receptacle_name`." + - "Free the `target_object_name` from the `target_receptacle_name`." + - "Separate the `target_object_name` from the `target_receptacle_name`." + - "Unseat the `target_object_name` from the `target_receptacle_name`." + eval: + - "The `target_receptacle_name` should be devoid of any `target_object_name`." + - "On the `target_receptacle_name`, remove the `target_object_name`." + - "Clear all the `target_object_name` from the `target_receptacle_name`." + tags: ['v2_train', 'obj_gen', 'rearrange', 'simple'] + overweight_freq: 4 + goal_expr: + expr_type: AND + sub_exprs: + - "not_holding()" + - expr_type: NAND + inputs: + - name: X + expr_type: "target_object_name" + quantifier: EXISTS + sub_exprs: + - "on_top(X, target_receptacle_name)" + sampled_receps: + "target_receptacle_name": + "type": "open_air_receps" + sampled_objects: + "target_object_name": + types: + train: "all_cats" + eval: "all_eval_cats" + recep: target_receptacle_name + sampler_info: + place_search_all_receps: True + + 8a66dec9: + # Single object rearrangement non-revealed targ_recep, visual semantics only. + lang: + train: [] + eval: [] + tags: ['v2_eval_semantic_visual'] + overweight_freq: 1 + solution_template: + - "nav(`source_receptacle_name`)" + - "pick_`target_object_name`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "on_top(X, target_receptacle_name)" + - "not_holding()" + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name"] + sampled_objects: + "target_object_name": + types: + train: "all_cats" + eval: "all_eval_cats" + not_recep: target_receptacle_name + recep: source_receptacle_name + semantics: + 688ee521: + match_objs: + target_object_name: + - "plum" + lang: + train: + - "Bring a purple fruit to the `target_receptacle_name`" + - "Fetch a purple fruit and transport it to the `target_receptacle_name`." + - "Locate a purple fruit and convey it to the `target_receptacle_name`." + - "Please, carry a purple fruit to the `target_receptacle_name`." + - "Procure a purple fruit and deliver it to the `target_receptacle_name`." + - "Retrieve a purple fruit and place it in the `target_receptacle_name`." + - "Get a purple fruit and transfer it to the `target_receptacle_name`." + - "Acquire a purple fruit and deposit it in the `target_receptacle_name`." + - "Secure a purple fruit and bring it to the `target_receptacle_name`." + - "Find a purple fruit and move it to the `target_receptacle_name`." + - "Can you pick up a purple fruit and place it in the `target_receptacle_name`?" + eb3cd1c5: + match_objs: + target_object_name: + - "lemon" + lang: + train: + - "Bring a yellow round fruit to the `target_receptacle_name`." + - "Retrieve a yellow round fruit and transport it to the `target_receptacle_name`." + - "Procure a yellow round fruit and convey it to the `target_receptacle_name`." + - "Locate a yellow round fruit and deliver it to the `target_receptacle_name`." + - "Fetch a yellow round fruit and transfer it to the `target_receptacle_name`." + - "Secure a yellow round fruit and bring it to the `target_receptacle_name`." + - "Find a yellow round fruit and place it in the `target_receptacle_name`." + - "Pick up a yellow round fruit and deposit it into the `target_receptacle_name`." + - "Obtain a yellow round fruit and put it in the `target_receptacle_name`." + - "Take a yellow round fruit and position it within the `target_receptacle_name`." + - "Acquire a yellow round fruit and leave it in the `target_receptacle_name`." + + 199c7b7f: + match_objs: + target_object_name: + - "banana" + lang: + train: + - "Bring a yellow curved fruit to the `target_receptacle_name`" + - "Fetch a yellow curved fruit and take it to the `target_receptacle_name`." + - "Retrieve a yellow curved fruit and transport it to the `target_receptacle_name`." + - "Carry a yellow curved fruit over to the `target_receptacle_name`." + - "Get ahold of a yellow curved fruit and deliver it to the `target_receptacle_name`." + - "Take a yellow curved fruit and place it in the `target_receptacle_name`." + - "Find a yellow curved fruit and bring it to the `target_receptacle_name`." + - "Procure a yellow curved fruit and transfer it to the `target_receptacle_name`." + - "Secure a yellow curved fruit and deposit it into the `target_receptacle_name`." + - "Acquire a yellow curved fruit and put it in the `target_receptacle_name`." + - "Retrieve a yellow curved fruit and ensure it's in the `target_receptacle_name`." + d9cac0e2: + match_objs: + target_object_name: + - "apple" + lang: + train: + - "Bring a round red fruit to the `target_receptacle_name`" + - "Fetch a round red fruit and take it to the `target_receptacle_name`." + - "Get a round red fruit and deliver it to the `target_receptacle_name`." + - "Acquire a round red fruit and transport it to the `target_receptacle_name`." + - "Secure a round red fruit and place it in the `target_receptacle_name`." + - "Find a round red fruit and bring it to the `target_receptacle_name`." + - "Locate a round red fruit and deposit it in the `target_receptacle_name`." + - "Obtain a round red fruit and put it in the `target_receptacle_name`." + - "Grab a round red fruit and transfer it to the `target_receptacle_name`." + - "Snatch a round red fruit and drop it into the `target_receptacle_name`." + - "Collect a round red fruit and position it in the `target_receptacle_name`." + + 21e2ce5f: + # Single object rearrangement non-revealed targ_recep, purpose semantics only. + lang: + train: [] + eval: [] + tags: ['v2_eval_semantic_activity'] + overweight_freq: 1 + solution_template: + - "nav(`source_receptacle_name`)" + - "pick_`target_object_name`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "on_top(X, target_receptacle_name)" + - "not_holding()" + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name"] + sampled_objects: + "target_object_name": + types: + train: "all_cats" + eval: "all_eval_cats" + not_recep: target_receptacle_name + recep: source_receptacle_name + semantics: + 688ee521: + match_objs: + target_object_name: + - "ball" + lang: + train: + - "I want to play a sport, bring something to play with to the `target_receptacle_name`." + - "Fetch a sports equipment and place it in the `target_receptacle_name`." + - "Please provide a sports item for me to play with in the `target_receptacle_name`." + - "Procure a plaything for sports and deposit it in the `target_receptacle_name`." + - "I'd like to engage in a sport, so kindly transport an item for play to the `target_receptacle_name`." + - "Prepare for a game by delivering something to play with to the `target_receptacle_name`." + - "Acquire a sports object and position it in the `target_receptacle_name`." + - "Bring an item suitable for playing a sport and put it in the `target_receptacle_name`." + - "I'm in the mood for a sport; could you move a plaything to the `target_receptacle_name`?" + - "Please arrange for a sports object to be placed in the `target_receptacle_name` for my amusement." + - "Facilitate a sports activity by transferring an appropriate item to the `target_receptacle_name`." + e767a83f: + match_objs: + target_object_name: + - "screwdriver" + lang: + train: + - "A screw is loose in the `target_receptacle_name`, bring something to fix it." + - "Retrieve a tool to tighten the loose screw in the `target_receptacle_name`." + - "Grab an item for securing the loose screw within the `target_receptacle_name`." + - "Please, get something to fasten the loose screw in the `target_receptacle_name`." + - "Find an object suitable for tightening the loose screw in the `target_receptacle_name`." + - "There's a loose screw in the `target_receptacle_name`; fetch a fixer." + - "Secure the loose screw in the `target_receptacle_name` with an appropriate object." + - "Locate an instrument to remedy the loose screw in the `target_receptacle_name`." + - "Go and fetch a tool for tightening the loose screw in the `target_receptacle_name`." + - "Procure an item to rectify the loose screw issue in the `target_receptacle_name`." + - "Retrieve a suitable implement to address the loose screw problem in the `target_receptacle_name`." + + eba65683: + match_objs: + target_object_name: + - "scissors" + lang: + train: + - "I need to cut a piece of paper at the `target_receptacle_name`, can you bring something to help?" + - "Fetch an item to assist with cutting a piece of paper at the `target_receptacle_name`." + - "Could you please bring a tool for cutting the paper at the `target_receptacle_name`?" + - "I require something to aid me in cutting a piece of paper at the `target_receptacle_name`." + - "Please procure an object to facilitate cutting paper at the `target_receptacle_name`." + - "Bring a cutting tool to the `target_receptacle_name` to help with the paper." + - "Find an item that can be used for cutting at the `target_receptacle_name`." + - "Could you fetch a suitable object to aid in paper cutting at the `target_receptacle_name`?" + - "I'm in need of an implement for cutting paper at the `target_receptacle_name`. Please get it for me." + - "To cut a piece of paper at the `target_receptacle_name`, kindly provide me with a tool." + - "Can you bring something to assist in cutting paper at the `target_receptacle_name`?" + + 9996fbd6: + match_objs: + target_object_name: + - "cleanser" + lang: + train: + - "I spilt something and need to clean it. Can you bring something to the `target_receptacle_name` to help?" + - "I accidentally spilled a liquid, could you please fetch an object to help with cleaning it up in the `target_receptacle_name`?" + - "There's been a spill, and I require an object to assist with cleaning it. Can you bring it to the `target_receptacle_name`?" + - "Oops, I've made a mess. Can you grab an object for me to use in cleaning up the spill in the `target_receptacle_name`?" + - "It looks like I've spilled something. Would you mind getting the object I need to clean it up in the `target_receptacle_name`?" + - "There's a spill, and I need an object to clean it up. Could you bring it to the `target_receptacle_name`?" + - "I made a mess, and I'm in need of an object to help with cleaning it up. Can you fetch it for me in the `target_receptacle_name`?" + - "Uh-oh, I spilled something. Can you find an object to assist with cleaning it? Bring it to the `target_receptacle_name`, please." + - "I've had a spill, and I'm seeking an object to aid in cleaning it up. Can you deliver it to the `target_receptacle_name`?" + - "Regrettably, there's been a spill. Can you locate an object for me to use in cleaning it up in the `target_receptacle_name`?" + - "I've managed to spill something, and I need an object to help with cleaning it up. Would you kindly bring it to the `target_receptacle_name`?" + + b7da80f7: + match_objs: + target_object_name: + - "mug" + lang: + train: + - "Bring me something to pour hot coffee into at the `target_receptacle_name`" + - "Fetch a container for pouring hot coffee into at the `target_receptacle_name`." + - "Could you please procure a receptacle for pouring hot coffee into at the `target_receptacle_name`?" + - "I need a vessel to pour hot coffee into at the `target_receptacle_name`." + - "Find something to serve hot coffee in at the `target_receptacle_name`." + - "Bring me a suitable object to pour hot coffee into at the `target_receptacle_name`." + - "Retrieve an appropriate receptacle for hot coffee at the `target_receptacle_name`." + - "Locate an item for pouring hot coffee into at the `target_receptacle_name`." + - "Please obtain an object for me to pour hot coffee into at the `target_receptacle_name`." + - "I'd like a container for my hot coffee at the `target_receptacle_name`, please." + - "Procure an item for hot coffee pouring at the `target_receptacle_name`." + + fd8dd56c: + # 2 object rearrangement hidden start + lang: + train: + - "Place a `object1` and a `object2` on the `targ_recep`." + - "Put an `object1` and a `object2` onto the `targ_recep`." + - "Position an `object1` and a `object2` on the `targ_recep`." + - "Set down an `object1` and a `object2` on the `targ_recep`." + - "Arrange an `object1` and a `object2` on the `targ_recep`." + - "Deposit an `object1` and a `object2` onto the `targ_recep`." + - "Lay an `object1` and a `object2` on the `targ_recep`." + - "Place both an `object1` and a `object2` onto the `targ_recep`." + - "Place an `object1` and an `object2` on the `targ_recep` surface." + - "Position both an `object1` and a `object2` on the `targ_recep`." + - "Put both an `object1` and a `object2` onto the `targ_recep`." + eval: + - "On the `targ_recep`, I need a `object1` and a `object2`." + - "The `targ_recep` needs an `object1` and a `object2` on it." + - "Bring a `object1` and a `object2` to the `targ_recep`." + tags: ['v2_train', 'obj_gen', 'rearrange'] + overweight_freq: 4 + subsample_entity_ratio: 0.75 + solution_template: + - "nav(`source_recep_1`)" + - "pick_`object1`()" + - "nav(`targ_recep`)" + - "place(`targ_recep`)" + - "nav(`source_recep_2`)" + - "pick_`object2`()" + - "nav(`targ_recep`)" + - "place(`targ_recep`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "object1" + - name: Y + expr_type: "object2" + sub_exprs: + - "on_top(X, targ_recep)" + - "on_top(Y, targ_recep)" + - "not_holding()" + sampled_receps: + "targ_recep": + type: "open_air_receps" + "source_recep_1": + type: "open_air_receps" + not_equal: ["targ_recep"] + "source_recep_2": + type: "open_air_receps" + not_equal: ["targ_recep"] + sampled_objects: + "object1": + types: + train: "all_cats" + eval: "all_eval_cats" + recep: "source_recep_1" + "object2": + types: + train: "all_cats" + eval: "all_eval_cats" + not_equal: ['object1'] + recep: "source_recep_2" + semantics: + b369767a: + match_objs: + object1: ['knife'] + object2: ['spoon'] + targ_recep: ['receptacle_aabb_Tbl1_Top1_frl_apartment_table_01'] + lang: + train: + - "Set the table with the knife and spoon utensils." + - "Arrange the table with a knife and spoon." + - "Prepare the table, placing a knife and spoon." + - "Place a knife and spoon on the table for setting." + - "Position the table with a knife and spoon." + - "Organize the table, ensuring a knife and spoon are set." + - "Lay out the table, including a knife and spoon." + - "Put a knife and spoon on the table for setting." + - "Arrange the table setting, incorporating a knife and spoon." + - "Position a knife and spoon on the table for proper setting." + - "Set up the table, making sure a knife and spoon are included." + eval: + - "Set the table for one with a knife and spoon" + + + ############################################# + + + ############################################# + # Object rearrangement (custom) + + 6e7f4383: + # 2 object rearrangement. Revealed start and goals. + lang: + train: + - "Can you swap the `object1` and the `object2` in the `receptacle1` and `receptacle2`?" + + - "Could you exchange `object1` and `object2` between `receptacle1` and `receptacle2`?" + - "Is it possible to swap the positions of `object1` and `object2` in `receptacle1` and `receptacle2`?" + - "Please perform a swap of `object1` and `object2` between the `receptacle1` and `receptacle2`." + - "I need you to switch the places of `object1` and `object2` in `receptacle1` and `receptacle2`." + - "Can you rearrange `object1` and `object2` by interchanging them in `receptacle1` and `receptacle2`?" + - "In `receptacle1` and `receptacle2`, could you swap the locations of `object1` and `object2`?" + - "Kindly perform a switch between `object1` and `object2` in `receptacle1` and `receptacle2`." + - "Would you be able to trade the positions of `object1` and `object2` in `receptacle1` and `receptacle2`?" + - "I would appreciate it if you could perform a swap between `object1` and `object2` in `receptacle1` and `receptacle2`." + - "Please switch the places of `object1` and `object2` in `receptacle1` and `receptacle2` for me." + eval: + - "I misplaced the `object1` on the `receptacle1` and the `object2` on the `receptacle2`. Can you swap their positions?" + - "Swap the positions of the `object1` on the `receptacle1` and the `object2` on the `receptacle2`?" + - "Swap the `object1` and `object2` between the `receptacle1` and `receptacle2`." + tags: ['v2_train', 'obj_gen', 'rearrange'] + overweight_freq: 4 + solution_template: + - "nav(`receptacle1`)" + - "pick_`object1`()" + - "nav(`receptacle2`)" + - "place(`receptacle2`)" + - "nav(`receptacle2`)" + - "pick_`object2`()" + - "nav(`receptacle1`)" + - "place(`receptacle1`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "object1" + - name: Y + expr_type: "object2" + sub_exprs: + - "on_top(X, receptacle2)" + - "on_top(Y, receptacle1)" + - "not_holding()" + sampled_receps: + "receptacle1": + type: "open_air_receps" + "receptacle2": + type: "open_air_receps" + not_equal: ['receptacle1'] + sampled_objects: + "object1": + types: + train: "all_cats" + eval: "all_eval_cats" + recep: "receptacle1" + "object2": + types: + train: "all_cats" + eval: "all_eval_cats" + not_equal: ["object1"] + recep: "receptacle2" + + db3119cd: + # 3 object rearrangement. + lang: + train: + # No revealed + - "Move the `obj1` to the `targ_recep1`, the `obj2` to the `targ_recep2`, and the `obj3` to the `targ_recep3`." + # 1 revealed + - "Move the `obj1` from the `source_recep1` to the `targ_recep1`, the `obj2` to the `targ_recep2`, and the `obj3` to the `targ_recep3`." + # 2 revealed + - "Move the `obj1` from the `source_recep1` to the `targ_recep1`, the `obj2` to the `targ_recep2`, and the `obj3` to the `targ_recep3`." + # 3 revealed + - "Move the `obj1` from the `source_recep1` to the `targ_recep1`, the `obj2` from the `source_recep2` to the `targ_recep2`, and the `obj3` from the `source_recep3` to the `targ_recep3`." + tags: ['v2_eval_longer'] + overweight_freq: 1 + subsample_entity_ratio: 0.5 + solution_template: + - "nav(`source_recep1`)" + - "pick_`obj1`()" + - "nav(`targ_recep1`)" + - "place(`targ_recep1`)" + - "nav(`source_recep2`)" + - "pick_`obj2`()" + - "nav(`targ_recep2`)" + - "place(`targ_recep2`)" + - "nav(`source_recep3`)" + - "pick_`obj3`()" + - "nav(`targ_recep3`)" + - "place(`targ_recep3`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "obj1" + - name: Y + expr_type: "obj2" + - name: Z + expr_type: "obj3" + sub_exprs: + - "on_top(X, targ_recep1)" + - "on_top(Y, targ_recep2)" + - "on_top(Z, targ_recep3)" + - "not_holding()" + sampled_receps: + "source_recep1": + type: "open_air_receps" + "targ_recep1": + type: "open_air_receps" + not_equal: ['source_recep1'] + "source_recep2": + type: "open_air_receps" + "targ_recep2": + type: "open_air_receps" + not_equal: ['source_recep2'] + "source_recep3": + type: "open_air_receps" + "targ_recep3": + type: "open_air_receps" + not_equal: ['source_recep3'] + sampled_objects: + "obj1": + types: + train: "all_cats" + eval: "all_eval_cats" + recep: "source_recep1" + "obj2": + types: + train: "all_cats" + eval: "all_eval_cats" + not_equal: ["obj1"] + recep: "source_recep2" + "obj3": + types: + train: "all_cats" + eval: "all_eval_cats" + not_equal: ["obj1", "obj2"] + recep: "source_recep3" + + + ############################################# + + + ############################################# + # Quantifier rearrangement + 3ef02c70: + lang: + train: + - "Put all the `object_name` on the `targ_recep`." + - "Place all the `object_name` onto the `targ_recep`." + - "Transfer all `object_name` to the `targ_recep`." + - "Arrange all `object_name` on the `targ_recep`." + - "Stack up all the `object_name` onto the `targ_recep`." + - "Deposit all `object_name` onto the `targ_recep`." + - "Position all `object_name` on the `targ_recep`." + - "Set down all the `object_name` onto the `targ_recep`." + - "Place every `object_name` onto the `targ_recep`." + - "Carefully load all `object_name` onto the `targ_recep`." + - "Securely position all `object_name` on the `targ_recep`." + tags: ['v2_eval', 'rearrange'] + goal_expr: + expr_type: AND + quantifier: FORALL + inputs: + - name: X + expr_type: object_name + sub_exprs: + - "on_top(X, targ_recep)" + - "not_holding()" + sampled_receps: + "targ_recep": + "type": "open_air_receps" + sampled_objects: + "object_name": + types: + train: "all_cats" + not_recep: 'receptacle1' + + 92bcf9b3: + lang: + train: + - "Put all the `object_name` from the `receptacle1` on the `receptacle2`." + - "Place all the `object_name` from the `receptacle1` onto the `receptacle2`." + - "Transfer all `object_name` on the `receptacle1` to the `receptacle2`." + - "Gather up all `object_name` from the `receptacle1` and set them on the `receptacle2`." + - "Relocate every `object_name` from `receptacle1` onto the `receptacle2`." + - "Move all the `object_name` from the `receptacle1` to the `receptacle2`." + - "Place all the `object_name` found on the `receptacle1` onto the `receptacle2`." + - "Transport all `object_name` on the `receptacle1` and put them on the `receptacle2`." + - "Shift all the `object_name` on the `receptacle1` over to `receptacle2`." + - "Deposit all the `object_name` from the `receptacle1` onto `receptacle2`." + tags: ['v2_eval', 'rearrange'] + goal_expr: + expr_type: AND + quantifier: FORALL + inputs: + - name: X + expr_type: object_name + sub_exprs: + - "on_top(X, receptacle2)" + - "not_holding()" + sampled_receps: + "receptacle1": + type: "open_air_receps" + "receptacle2": + type: "open_air_receps" + not_equal: ["receptacle1"] + sampled_objects: + "object_name": + types: + train: "all_cats" + not_recep: 'receptacle2' + + + 6e3da8a1: + lang: + train: + - "I accidently left the fridge open, can you close it?" + - "Shut the fridge." + - "Could you please shut the fridge? I accidentally left it open." + - "The refrigerator was left open by mistake. Would you mind closing it for me?" + - "I unintentionally left the fridge door open. Can you close it, please?" + - "I forgot to close the fridge properly. Could you kindly close it for me?" + - "The fridge door is open because of my mistake. Can you close it, please?" + - "Apologies, but I left the refrigerator open. Could you do me a favor and close it?" + - "I didn't realize I left the fridge open. Can you please close it for me?" + - "Regrettably, I forgot to close the fridge. Would you be able to close it, please?" + - "I made a mistake and left the fridge open. Can you assist me by closing it?" + eval: + - "When putting away groceries, I forgot to shut the fridge. Can you help?" + - "I left the fridge open. Can you help?" + - "The fridge needs to be shut." + + tags: ['v2_train', 'rearrange'] + solution_template: + - "nav(fridge_push_point)" + - "close_fridge(fridge_push_point)" + goal_expr: + expr_type: AND + sub_exprs: + - "closed_fridge(fridge_push_point)" + sampled_receps: {} + sampled_objects: {} + start_preds: + - "opened_fridge(fridge_push_point)" + + 5d5460d6: + # Variant where the fridge is open. + lang: + train: + - "If the fridge is open move a `target_object_name1` to the `target_receptacle_name`, otherwise move a `target_object_name2` to the `target_receptacle_name`." + - "If the fridge door is ajar, transfer an `target_object_name1` to the `target_receptacle_name`; otherwise, place an `target_object_name2` into the `target_receptacle_name`." + - "When the fridge is open, relocate an `target_object_name1` to the `target_receptacle_name`; if it's closed, shift an `target_object_name2` to the `target_receptacle_name`." + - "In case the fridge remains open, perform a transfer of an `target_object_name1` to the `target_receptacle_name`; when closed, execute a transfer of the `target_object_name2` to the `target_receptacle_name`." + - "Should the fridge door be open, move an `target_object_name1` to the `target_receptacle_name`; otherwise, transport an `target_object_name2` to the `target_receptacle_name`." + - "If the refrigerator door is not closed, then proceed to move an `target_object_name1` to the `target_receptacle_name`; otherwise, place an `target_object_name2` into the `target_receptacle_name`." + - "In the event that the fridge is open, conduct the relocation of an `target_object_name1` to the `target_receptacle_name`; if it's closed, undertake the transfer of an `target_object_name2` to the `target_receptacle_name`." + - "Assuming the fridge remains open, please relocate an `target_object_name1` to the `target_receptacle_name`; if it is closed, make sure to transfer an `target_object_name2` to the `target_receptacle_name`." + - "When you find the fridge door open, go ahead and move an `target_object_name1` to the `target_receptacle_name`; otherwise, transport an `target_object_name2` to the `target_receptacle_name`." + - "Provided that the fridge door is open, effectuate the transfer of an `target_object_name1` to the `target_receptacle_name`; if the fridge door is closed, perform the same action with an `target_object_name2` into the `target_receptacle_name`." + - "In the case that the fridge door is open, kindly proceed to move an `target_object_name1` to the `target_receptacle_name`; if the fridge door is closed, perform the transfer of an `target_object_name2` to the `target_receptacle_name`." + tags: ['v2_eval_cond'] + solution_template: + - "nav(`source_receptacle_name1`)" + - "pick_`target_object_name1`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name1" + - name: Y + expr_type: "target_object_name2" + sub_exprs: + - "opened_fridge(fridge_push_point)" + - "on_top(X, target_receptacle_name)" + - "on_top(Y, source_receptacle_name2)" + - "not_holding()" + sampled_receps: + "source_receptacle_name1": + type: "open_air_receps" + "source_receptacle_name2": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name1", "source_receptacle_name2"] + sampled_objects: + "target_object_name1": + types: + train: "all_train_cats" + eval: "all_eval_cats" + recep: source_receptacle_name1 + "target_object_name2": + types: + train: "all_train_cats" + eval: "all_eval_cats" + not_equal: ["target_object_name1"] + recep: source_receptacle_name2 + start_preds: + - "opened_fridge(fridge_push_point)" + + e75d9d69: + # Variant where the fridge is closed. + lang: + train: + - "If the fridge is open move a `target_object_name1` to the `target_receptacle_name`, otherwise move a `target_object_name2` to the `target_receptacle_name`." + - "If the fridge door is ajar, transfer an `target_object_name1` to the `target_receptacle_name`; otherwise, place an `target_object_name2` into the `target_receptacle_name`." + - "When the fridge is open, relocate an `target_object_name1` to the `target_receptacle_name`; if it's closed, shift an `target_object_name2` to the `target_receptacle_name`." + - "In case the fridge remains open, perform a transfer of an `target_object_name1` to the `target_receptacle_name`; when closed, execute a transfer of the `target_object_name2` to the `target_receptacle_name`." + - "Should the fridge door be open, move an `target_object_name1` to the `target_receptacle_name`; otherwise, transport an `target_object_name2` to the `target_receptacle_name`." + - "If the refrigerator door is not closed, then proceed to move an `target_object_name1` to the `target_receptacle_name`; otherwise, place an `target_object_name2` into the `target_receptacle_name`." + - "In the event that the fridge is open, conduct the relocation of an `target_object_name1` to the `target_receptacle_name`; if it's closed, undertake the transfer of an `target_object_name2` to the `target_receptacle_name`." + - "Assuming the fridge remains open, please relocate an `target_object_name1` to the `target_receptacle_name`; if it is closed, make sure to transfer an `target_object_name2` to the `target_receptacle_name`." + - "When you find the fridge door open, go ahead and move an `target_object_name1` to the `target_receptacle_name`; otherwise, transport an `target_object_name2` to the `target_receptacle_name`." + - "Provided that the fridge door is open, effectuate the transfer of an `target_object_name1` to the `target_receptacle_name`; if the fridge door is closed, perform the same action with an `target_object_name2` into the `target_receptacle_name`." + - "In the case that the fridge door is open, kindly proceed to move an `target_object_name1` to the `target_receptacle_name`; if the fridge door is closed, perform the transfer of an `target_object_name2` to the `target_receptacle_name`." + tags: ['v2_eval_cond'] + solution_template: + - "nav(`source_receptacle_name2`)" + - "pick_`target_object_name2`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name1" + - name: Y + expr_type: "target_object_name2" + sub_exprs: + - "closed_fridge(fridge_push_point)" + - "on_top(X, source_receptacle_name1)" + - "on_top(Y, target_receptacle_name)" + - "not_holding()" + sampled_receps: + "source_receptacle_name1": + type: "open_air_receps" + "source_receptacle_name2": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name1", "source_receptacle_name2"] + sampled_objects: + "target_object_name1": + types: + train: "all_train_cats" + eval: "all_eval_cats" + recep: source_receptacle_name1 + "target_object_name2": + types: + train: "all_train_cats" + eval: "all_eval_cats" + not_equal: ["target_object_name1"] + recep: source_receptacle_name2 + start_preds: + - "closed_fridge(fridge_push_point)" + + + 68216d8c: + lang: + train: + - "Can you open the fridge for me?" + - "Could you kindly open the fridge on my behalf?" + - "Would you mind opening the refrigerator for me?" + - "I would appreciate it if you could open the fridge." + - "Can you do me a favor and open the refrigerator, please?" + - "It would be great if you could open the fridge." + - "I need you to open the refrigerator, if you don't mind." + - "Please assist me by opening the fridge." + - "I'm requesting your help in opening the refrigerator." + - "Could you extend your assistance by opening the fridge?" + - "I kindly ask you to open the refrigerator." + eval: + - "I need to put away some cold groceries, can you help?" + - "I accidently shut the fridge, but I still need to put something away, help me." + - "I need to grab a cold drink but my hands are full, can you help?" + tags: ['v2_train', 'rearrange'] + solution_template: + - "nav(fridge_push_point)" + - "open_fridge(fridge_push_point)" + goal_expr: + expr_type: AND + sub_exprs: + - "opened_fridge(fridge_push_point)" + sampled_receps: {} + sampled_objects: {} + start_preds: + - "closed_fridge(fridge_push_point)" + + 93b2ef41: + # Spatial receptacle rearrangement + lang: + train: [] + eval: [] + tags: ['v2_eval_spatial'] + overweight_freq: 4 + solution_template: + - "nav(`source_receptacle_name`)" + - "pick_`target_object_name`()" + - "nav(`target_receptacle_name`)" + - "place(`target_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "on_top(X, target_receptacle_name)" + - "not_holding()" + semantics: + b8173aa5: + match_objs: + target_receptacle_name: + - "receptacle_aabb_sink_kitchen_counter" + lang: + train: + - "Move a `target_object_name` from the `source_receptacle_name` to the left of the right counter." + - "Move a `target_object_name` from the `source_receptacle_name` to the right of the left counter." + 595eb7da: + match_objs: + target_receptacle_name: + - "receptacle_aabb_sink_kitchen_counter" + lang: + train: + - "Move a `target_object_name` from the `source_receptacle_name` to the right of the left counter." + ce10cc16: + match_objs: + target_receptacle_name: + - "receptacle_aabb_Sofa_frl_apartment_sofa" + lang: + train: + - "Move a `target_object_name` from the `source_receptacle_name` to the right of the TV stand." + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + "target_receptacle_name": + type: "open_air_receps" + not_equal: ["source_receptacle_name"] + sampled_objects: + "target_object_name": + types: + train: "all_train_cats" + eval: "all_eval_cats" + recep: source_receptacle_name + ############################################# + + + ############################################# + # Robot + 311525c5: + lang: + train: + - "Go to `target_receptacle_name`." + - "Head to the `target_receptacle_name`." + - "Make your way to the `target_receptacle_name`." + - "Proceed to the `target_receptacle_name` location." + - "Go over to the `target_receptacle_name`." + - "Walk to the `target_receptacle_name` area." + - "Move towards the `target_receptacle_name`." + - "Get to the `target_receptacle_name` destination." + - "Reach the `target_receptacle_name`." + - "Find your way to the `target_receptacle_name` spot." + - "Journey to the `target_receptacle_name`." + tags: ['v2_train'] + solution_template: + - "nav(`target_receptacle_name`)" + goal_expr: + expr_type: AND + sub_exprs: + - "robot_at(target_receptacle_name)" + sampled_receps: + "target_receptacle_name": + "type": "open_air_receps" + sampled_objects: {} + + 2f2d797d: + lang: + train: + - "Find a `target_object_name`." + - "Locate a `target_object_name`" + - "Discover a `target_object_name`" + - "Uncover a `target_object_name`" + - "Search for a `target_object_name`" + - "Identify a `target_object_name`" + - "Seek out a `target_object_name`" + - "Scour for a `target_object_name`" + - "Hunt down a `target_object_name`" + - "Pinpoint a `target_object_name`" + - "Spot a `target_object_name`" + tags: ['v2_train'] + solution_template: + - "nav(`source_receptacle_name`)" + goal_expr: + expr_type: AND + quantifier: EXISTS + inputs: + - name: X + expr_type: "target_object_name" + sub_exprs: + - "robot_at(X)" + sampled_receps: + "source_receptacle_name": + type: "open_air_receps" + sampled_objects: + "target_object_name": + types: + train: "all_train_cats" + eval: "all_eval_cats" + recep: source_receptacle_name + ############################################# + + +# Map the asset IDs into a readable string. +name_mappings: + # Receptacles + "receptacle_aabb_Chr1_Top1_frl_apartment_chair_01": "chair" + "receptacle_aabb_Tbl1_Top1_frl_apartment_table_01": "black table" + "receptacle_aabb_Tbl2_Top1_frl_apartment_table_02": "brown table" + "receptacle_aabb_TvStnd1_Top1_frl_apartment_tvstand": "TV stand" + "receptacle_aabb_sink_kitchen_counter": "sink" + "receptacle_aabb_counter_right_kitchen_counter": "right counter" + "receptacle_aabb_counter_left_kitchen_counter": "left counter" + "receptacle_aabb_Sofa_frl_apartment_sofa": "sofa" + "receptacle_aabb_middle_topfrl_apartment_refrigerator": "fridge" + "receptacle_aabb_drawer_left_top_frl_apartment_kitchen_counter": "left drawer" + "receptacle_aabb_drawer_middle_top_frl_apartment_kitchen_counter": "middle drawer" + "receptacle_aabb_drawer_right_top_frl_apartment_kitchen_counter": "right drawer" + "fridge_push_point": "fridge" + + "noop": "nothing" + "toy airplane": "toy" + "close_cab": "close" + "close_fridge": "close" + "open_cab": "open" + "open_fridge": "open" + 'rubriks cube': 'cube' + + "cab_push_point_7": "left drawer" + "cab_push_point_6": "middle drawer" + "cab_push_point_5": "right drawer" + "cab_push_point_4": "bottom drawer" + diff --git a/easi/tasks/ebhabitat/vendor/dataset/episodes.py b/easi/tasks/ebhabitat/vendor/dataset/episodes.py index 7633a78..3b84e97 100644 --- a/easi/tasks/ebhabitat/vendor/dataset/episodes.py +++ b/easi/tasks/ebhabitat/vendor/dataset/episodes.py @@ -17,8 +17,6 @@ from habitat.core.utils import DatasetFloatJSONEncoder from habitat.datasets.rearrange.rearrange_dataset import (RearrangeDatasetV0, RearrangeEpisode) -# from habitat.datasets.utils import check_and_gen_physics_config -from habitat.tasks.rearrange.multi_task.pddl_predicate import Predicate DEFAULT_PHYSICS_CONFIG_PATH = os.path.join(os.path.dirname(__file__), '../data/default.physics_config.json') diff --git a/easi/tasks/ebhabitat/vendor/predicate_task.py b/easi/tasks/ebhabitat/vendor/predicate_task.py index ea3a776..d97770a 100644 --- a/easi/tasks/ebhabitat/vendor/predicate_task.py +++ b/easi/tasks/ebhabitat/vendor/predicate_task.py @@ -2,13 +2,10 @@ # For licensing see accompanying LICENSE file. # Copyright (C) 2024 Apple Inc. All Rights Reserved. # -import inspect -import os.path as osp import random import time from typing import Any, Dict, List -import hydra import magnum as mn import numpy as np from habitat.core.registry import registry @@ -21,14 +18,10 @@ from habitat.tasks.rearrange.rearrange_task import RearrangeTask from habitat.tasks.rearrange.utils import add_perf_timing_func from omegaconf import DictConfig, ListConfig -from PIL import Image -from transformers import AutoTokenizer -import easi.tasks.ebhabitat.vendor.config from easi.tasks.ebhabitat.vendor.dataset.episodes import LangRearrangeEpisode from easi.tasks.ebhabitat.vendor.dataset.utils import get_category_info -from easi.tasks.ebhabitat.vendor.actions import KinematicArmEEAction -from easi.tasks.ebhabitat.vendor.utils import PLACABLE_RECEP_TYPE, get_pddl +from easi.tasks.ebhabitat.vendor.utils import get_pddl @registry.register_task(name="RearrangePredicateTask-v0") diff --git a/easi/tasks/ebhabitat/vendor/sensors.py b/easi/tasks/ebhabitat/vendor/sensors.py index 0c29bfb..72f708e 100644 --- a/easi/tasks/ebhabitat/vendor/sensors.py +++ b/easi/tasks/ebhabitat/vendor/sensors.py @@ -2,7 +2,6 @@ # For licensing see accompanying LICENSE file. # Copyright (C) 2024 Apple Inc. All Rights Reserved. # -import os.path as osp from typing import List import gym.spaces as spaces diff --git a/easi/tasks/ebhabitat/vendor/utils.py b/easi/tasks/ebhabitat/vendor/utils.py index 9b0c2b4..f44d8a8 100644 --- a/easi/tasks/ebhabitat/vendor/utils.py +++ b/easi/tasks/ebhabitat/vendor/utils.py @@ -2,24 +2,21 @@ # For licensing see accompanying LICENSE file. # Copyright (C) 2024 Apple Inc. All Rights Reserved. # -import inspect import os.path as osp -from typing import Dict, List, Tuple import numpy as np from PIL import Image, ImageDraw, ImageFont -import yaml from habitat.tasks.rearrange.multi_task.pddl_action import PddlAction from habitat.tasks.rearrange.multi_task.pddl_domain import PddlDomain from habitat.tasks.rearrange.multi_task.pddl_logical_expr import ( LogicalExpr, LogicalQuantifierType) from habitat.tasks.rearrange.multi_task.rearrange_pddl import ( ExprType, PddlEntity, SimulatorObjectType) -from transformers import (AutoConfig, AutoModelForSeq2SeqLM, AutoTokenizer, - LlamaForCausalLM, LlamaModel, LlamaTokenizer, - T5Model) from habitat.utils.visualizations.utils import (tile_images, draw_collision) -import easi.tasks.ebhabitat.vendor.config -import easi.tasks.ebhabitat.vendor.dataset + +# Side-effect imports: register habitat configs and dataset classes. +# Do NOT remove — they run Hydra ConfigStore and @registry.register_* at import time. +import easi.tasks.ebhabitat.vendor.config # noqa: F401 +import easi.tasks.ebhabitat.vendor.dataset # noqa: F401 # Also defined in the PDDL PLACABLE_RECEP_TYPE = "place_receptacle" @@ -194,6 +191,10 @@ def get_pddl(task_config, all_cats, obj_cats) -> PddlDomain: def get_parser(llm_id): + # Lazy import: transformers is heavy and only needed if this function + # is actually called (by sensors not used in the default EASI config). + from transformers import AutoTokenizer, LlamaTokenizer + if "llama" in llm_id.lower(): tokenizer = LlamaTokenizer.from_pretrained(llm_id) # llama has no pad token by default. As per this thread: From 907879b5ad14d4b1a78b40ceeb35bff17e4d9e9d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 05:13:10 +0800 Subject: [PATCH 036/239] [Fix] Fix EB-Habitat runtime deps and rendering config - Add torch to all 6 ebhabitat YAML additional_deps (sensors.py imports torch) - Add os.makedirs for physics config dir in episodes.py - Add GPU device config from HABITAT_SIM_GPU_ID env var in EBHabEnv - Switch habitat-sim to non-headless build (remove headless metapackage) - Set needs_display=True so subprocess runner uses xvfb - Add xvfb and egl to system deps in env_manager --- easi/simulators/habitat_sim/v0_3_0/conda_env.yaml | 1 - easi/simulators/habitat_sim/v0_3_0/env_manager.py | 4 ++-- easi/tasks/ebhabitat/ebhabitat_base.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_common_sense.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml | 1 + easi/tasks/ebhabitat/vendor/EBHabEnv.py | 6 ++++++ easi/tasks/ebhabitat/vendor/dataset/episodes.py | 1 + 10 files changed, 15 insertions(+), 3 deletions(-) diff --git a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml index faf4f04..17f8c8d 100644 --- a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml +++ b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml @@ -6,5 +6,4 @@ channels: dependencies: - python=3.9 - habitat-sim=0.3.0 - - headless - withbullet diff --git a/easi/simulators/habitat_sim/v0_3_0/env_manager.py b/easi/simulators/habitat_sim/v0_3_0/env_manager.py index ac525bc..56cf3d6 100644 --- a/easi/simulators/habitat_sim/v0_3_0/env_manager.py +++ b/easi/simulators/habitat_sim/v0_3_0/env_manager.py @@ -20,7 +20,7 @@ def version(self) -> str: @property def needs_display(self) -> bool: - return False # habitat-sim headless build uses EGL + return True # habitat-sim needs a display (xvfb on headless servers) def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" @@ -29,7 +29,7 @@ def get_requirements_txt_path(self) -> Path: return Path(__file__).parent / "requirements.txt" def get_system_deps(self) -> list[str]: - return ["conda"] + return ["conda", "xvfb", "egl"] def get_validation_import(self) -> str: return "import habitat_sim" diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml index a1473bf..46120ab 100644 --- a/easi/tasks/ebhabitat/ebhabitat_base.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml index 0c9ca26..e41bb11 100644 --- a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml index 95af881..1ea7e59 100644 --- a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml index a41cd43..68cdc72 100644 --- a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml index a1c67fa..6f0e4a0 100644 --- a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml index a558250..e91d45d 100644 --- a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -20,6 +20,7 @@ simulator_configs: - "hydra-core>=1.3" - "omegaconf>=2.3" - "imageio" + - "torch" - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py index 294798e..9bd2357 100644 --- a/easi/tasks/ebhabitat/vendor/EBHabEnv.py +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -149,6 +149,12 @@ def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, self.config.habitat.simulator.agents.main_agent.sim_sensors.head_rgb_sensor.width = resolution self.resolution = resolution + # Set GPU device for rendering. + # Default to 0 (first GPU). Use HABITAT_SIM_GPU_ID env var to override. + # The headless conda build may need the NVIDIA EGL ICD installed. + gpu_id = int(os.environ.get("HABITAT_SIM_GPU_ID", "0")) + self.config.habitat.simulator.habitat_sim_v0.gpu_device_id = gpu_id + # modify config path to ease data loading self.dataset = make_dataset(self.config.habitat.dataset.type, config=self.config.habitat.dataset) diff --git a/easi/tasks/ebhabitat/vendor/dataset/episodes.py b/easi/tasks/ebhabitat/vendor/dataset/episodes.py index 3b84e97..b6c8b15 100644 --- a/easi/tasks/ebhabitat/vendor/dataset/episodes.py +++ b/easi/tasks/ebhabitat/vendor/dataset/episodes.py @@ -33,6 +33,7 @@ def check_and_gen_physics_config(): "restitution_coefficient": 0.1, "rigid object paths": ["objects"], } + os.makedirs(os.path.dirname(DEFAULT_PHYSICS_CONFIG_PATH), exist_ok=True) with open(DEFAULT_PHYSICS_CONFIG_PATH, "w") as f: json.dump(physics_config, f) From 5a838e8bf74331bcd0e147ca96f94c9def1772b2 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 05:51:41 +0800 Subject: [PATCH 037/239] [Fix] Pass HF dataset path to EB-Habitat bridge via reset_config The bridge needs the HF dataset cache path to find pickle files and scene assets. Pass _data_dir from episodes through format_reset_config so the bridge resolves datasets/ and creates the data symlink correctly. --- easi/tasks/ebhabitat/bridge.py | 7 ++++--- easi/tasks/ebhabitat/task.py | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py index 4c9644a..ef69425 100644 --- a/easi/tasks/ebhabitat/bridge.py +++ b/easi/tasks/ebhabitat/bridge.py @@ -38,11 +38,12 @@ class EBHabitatBridge(BaseBridge): def _create_env(self, reset_config, simulator_kwargs): from easi.tasks.ebhabitat.vendor.EBHabEnv import EBHabEnv - # Resolve data directories from extracted zip files - data_dir = simulator_kwargs.get("data_dir") + # Resolve data directories from HF dataset cache (passed via reset_config) + # or from --data-dir CLI arg (passed via simulator_kwargs) + data_dir = reset_config.get("data_dir") or simulator_kwargs.get("data_dir") dataset_dir = None if data_dir: - # datasets.zip extracts pickle files to data_dir/datasets/ + # HF dataset structure: data_dir/datasets/*.pickle, data_dir/data/... candidate = Path(data_dir) / "datasets" if candidate.exists(): dataset_dir = str(candidate) diff --git a/easi/tasks/ebhabitat/task.py b/easi/tasks/ebhabitat/task.py index f4118f6..0fb372e 100644 --- a/easi/tasks/ebhabitat/task.py +++ b/easi/tasks/ebhabitat/task.py @@ -48,6 +48,7 @@ def format_reset_config(self, episode: dict) -> dict: "episode_id": episode.get("id", "unknown"), "eval_set": self._config.get("dataset", {}).get("split", "base"), "instruction": episode.get("instruction", ""), + "data_dir": episode.get("_data_dir", ""), } def evaluate_episode( From 32e483f00597d34901898070e3609075634c144d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 05:58:20 +0800 Subject: [PATCH 038/239] [Refactor] Make EB-Habitat env constants configurable via task YAML Wire max_steps, max_invalid_actions, and feedback_verbosity from YAML simulator_configs through the bridge into EBHabEnv constructor instead of hardcoding them. This fixes max_steps not being forwarded to the env (was only set in YAML but ignored by bridge). --- easi/tasks/ebhabitat/bridge.py | 6 ++++++ easi/tasks/ebhabitat/ebhabitat_base.yaml | 2 ++ easi/tasks/ebhabitat/ebhabitat_common_sense.yaml | 2 ++ easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml | 2 ++ easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml | 2 ++ easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml | 2 ++ easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml | 2 ++ easi/tasks/ebhabitat/vendor/EBHabEnv.py | 9 +++++---- 8 files changed, 23 insertions(+), 4 deletions(-) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py index ef69425..08fed53 100644 --- a/easi/tasks/ebhabitat/bridge.py +++ b/easi/tasks/ebhabitat/bridge.py @@ -50,12 +50,18 @@ def _create_env(self, reset_config, simulator_kwargs): eval_set = reset_config.get("eval_set", "base") resolution = simulator_kwargs.get("screen_height", 500) + max_steps = simulator_kwargs.get("max_steps", 30) + max_invalid_actions = simulator_kwargs.get("max_invalid_actions", 10) + feedback_verbosity = simulator_kwargs.get("feedback_verbosity", 1) env = EBHabEnv( eval_set=eval_set, data_dir=data_dir, dataset_dir=dataset_dir, resolution=resolution, + max_steps=max_steps, + max_invalid_actions=max_invalid_actions, + feedback_verbosity=feedback_verbosity, ) # Extract dynamic action space diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml index 46120ab..4962033 100644 --- a/easi/tasks/ebhabitat/ebhabitat_base.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml index e41bb11..c553df6 100644 --- a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml index 1ea7e59..395be43 100644 --- a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml index 68cdc72..80cfce9 100644 --- a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml index 6f0e4a0..7a8d84a 100644 --- a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml index e91d45d..939e9f1 100644 --- a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -15,6 +15,8 @@ dataset: simulator_configs: screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py index 9bd2357..7eb93e3 100644 --- a/easi/tasks/ebhabitat/vendor/EBHabEnv.py +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -115,7 +115,8 @@ def transform_action_to_natural_language(skill_set): class EBHabEnv(gym.Env): def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, start_epi_index=0, resolution=500, recording=False, - data_dir=None, dataset_dir=None): + data_dir=None, dataset_dir=None, + max_steps=30, max_invalid_actions=10, feedback_verbosity=1): """ Initialize the HabitatRearrange environment. @@ -174,9 +175,9 @@ def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, self._current_episode_num += 1 self._current_step = 0 - self._max_episode_steps = 30 + self._max_episode_steps = max_steps self._cur_invalid_actions = 0 - self._max_invalid_actions = 10 + self._max_invalid_actions = max_invalid_actions self._episode_start_time = 0 # is holding an object self.is_holding = False @@ -190,7 +191,7 @@ def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, # env feedback and image save # feedback verbosity, 0: concise, 1: verbose - self.feedback_verbosity = 1 + self.feedback_verbosity = feedback_verbosity self.log_path = 'running/eb_habitat/{}'.format(exp_name) # video recorder self.recording = recording From 60eddb2be3bebbec6da397fa89a69ad905139281 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:02:46 +0800 Subject: [PATCH 039/239] [Refactor] Make EB-Navigation env constants configurable via task YAML Wire success_threshold, grid_size, and visibility_distance from YAML simulator_configs through the bridge into EBNavEnv constructor. Also make message_window_len configurable via prompt_builder_kwargs instead of a module-level constant. --- easi/tasks/ebnavigation/bridge.py | 12 ++++++++++- .../tasks/ebnavigation/ebnavigation_base.yaml | 4 ++++ .../ebnavigation_common_sense.yaml | 4 ++++ .../ebnavigation_complex_instruction.yaml | 4 ++++ .../ebnavigation_long_horizon.yaml | 4 ++++ .../ebnavigation_visual_appearance.yaml | 4 ++++ easi/tasks/ebnavigation/prompts.py | 8 ++++---- easi/tasks/ebnavigation/vendor/EBNavEnv.py | 20 ++++++++++++------- 8 files changed, 48 insertions(+), 12 deletions(-) diff --git a/easi/tasks/ebnavigation/bridge.py b/easi/tasks/ebnavigation/bridge.py index b2eab04..81e173f 100644 --- a/easi/tasks/ebnavigation/bridge.py +++ b/easi/tasks/ebnavigation/bridge.py @@ -33,7 +33,17 @@ def _create_env(self, reset_config, simulator_kwargs): resolution = simulator_kwargs.get("screen_height", 500) max_steps = simulator_kwargs.get("max_steps", 20) fov = simulator_kwargs.get("fov", 100) - return EBNavEnv(resolution=resolution, fov=fov, max_steps=max_steps) + success_threshold = simulator_kwargs.get("success_threshold", 1.0) + grid_size = simulator_kwargs.get("grid_size", 0.1) + visibility_distance = simulator_kwargs.get("visibility_distance", 10.0) + return EBNavEnv( + resolution=resolution, + fov=fov, + max_steps=max_steps, + success_threshold=success_threshold, + grid_size=grid_size, + visibility_distance=visibility_distance, + ) def _on_reset(self, env, reset_config): episode = { diff --git a/easi/tasks/ebnavigation/ebnavigation_base.yaml b/easi/tasks/ebnavigation/ebnavigation_base.yaml index acd13d2..457ab30 100644 --- a/easi/tasks/ebnavigation/ebnavigation_base.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_base.yaml @@ -13,6 +13,9 @@ simulator_configs: screen_height: 500 screen_width: 500 fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: @@ -20,3 +23,4 @@ agent: split: "base" use_feedback: true chat_history: true + message_window_len: 5 diff --git a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml index c5829aa..0dbfb52 100644 --- a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml @@ -13,6 +13,9 @@ simulator_configs: screen_height: 500 screen_width: 500 fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: @@ -20,3 +23,4 @@ agent: split: "common_sense" use_feedback: true chat_history: true + message_window_len: 5 diff --git a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml index d28ab11..a7acd9b 100644 --- a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml @@ -13,6 +13,9 @@ simulator_configs: screen_height: 500 screen_width: 500 fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: @@ -20,3 +23,4 @@ agent: split: "complex_instruction" use_feedback: true chat_history: true + message_window_len: 5 diff --git a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml index e675848..309fd1c 100644 --- a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml @@ -13,6 +13,9 @@ simulator_configs: screen_height: 500 screen_width: 500 fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: @@ -20,3 +23,4 @@ agent: split: "long_horizon" use_feedback: true chat_history: true + message_window_len: 5 diff --git a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml index 198c82c..5212d94 100644 --- a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml @@ -13,6 +13,9 @@ simulator_configs: screen_height: 500 screen_width: 500 fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: @@ -20,3 +23,4 @@ agent: split: "visual_appearance" use_feedback: true chat_history: true + message_window_len: 5 diff --git a/easi/tasks/ebnavigation/prompts.py b/easi/tasks/ebnavigation/prompts.py index 81a1333..bc656bf 100644 --- a/easi/tasks/ebnavigation/prompts.py +++ b/easi/tasks/ebnavigation/prompts.py @@ -105,8 +105,6 @@ }, } -MESSAGE_WINDOW_LEN = 5 - _CONFIG_DIR = Path(__file__).parent / "config" @@ -116,7 +114,7 @@ class EBNavigationPromptBuilder: Supports two modes: - chat_history=False (default): Stateless. Every turn sends a single user message with the full system prompt, examples, instruction, and history. - - chat_history=True: Messages accumulate with sliding window (5 messages). + - chat_history=True: Messages accumulate with sliding window. Each user message still includes the full system prompt and examples. """ @@ -126,11 +124,13 @@ def __init__( split: str = "base", use_feedback: bool = True, chat_history: bool = True, + message_window_len: int = 5, ): self.n_shot = n_shot self.split = split self.use_feedback = use_feedback self.chat_history = chat_history + self.message_window_len = message_window_len # Load examples examples_file = _CONFIG_DIR / "navigation_examples.json" @@ -340,7 +340,7 @@ def _build_chat_history_messages(self, memory: AgentMemory) -> list[dict]: ) # Apply sliding window - return messages[-MESSAGE_WINDOW_LEN:] + return messages[-self.message_window_len:] def _build_first_turn_full_prompt(self, task_description: str) -> str: """Build first-turn prompt (identical for both modes).""" diff --git a/easi/tasks/ebnavigation/vendor/EBNavEnv.py b/easi/tasks/ebnavigation/vendor/EBNavEnv.py index eac5986..7a3d699 100644 --- a/easi/tasks/ebnavigation/vendor/EBNavEnv.py +++ b/easi/tasks/ebnavigation/vendor/EBNavEnv.py @@ -12,18 +12,24 @@ import numpy as np from ai2thor.platform import Linux64 -SUCCESS_THRESHOLD = 1 # meters (horizontal distance) - - class EBNavEnv: """AI2-THOR navigation environment for EB-Navigation benchmark.""" - def __init__(self, resolution: int = 500, fov: int = 100, max_steps: int = 20): + def __init__( + self, + resolution: int = 500, + fov: int = 100, + max_steps: int = 20, + success_threshold: float = 1.0, + grid_size: float = 0.1, + visibility_distance: float = 10.0, + ): self.resolution = resolution + self._success_threshold = success_threshold self.config = { "agentMode": "default", - "gridSize": 0.1, - "visibilityDistance": 10, + "gridSize": grid_size, + "visibilityDistance": visibility_distance, "renderDepthImage": True, "renderInstanceSegmentation": True, "width": resolution, @@ -136,7 +142,7 @@ def measure_success(self) -> tuple[float, float]: (agent_position["x"] - target_position["x"]) ** 2 + (agent_position["z"] - target_position["z"]) ** 2 ) - success = float(dist <= SUCCESS_THRESHOLD) + success = float(dist <= self._success_threshold) return success, dist def _get_env_feedback(self) -> str: From d6a63a9e2cbddc25f801478ffe3fa20bfb4b7b8a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:09:41 +0800 Subject: [PATCH 040/239] [Refactor] Make EB-Alfred env constants configurable via task YAML --- easi/tasks/ebalfred/bridge.py | 4 ++++ easi/tasks/ebalfred/ebalfred_base.yaml | 2 ++ easi/tasks/ebalfred/ebalfred_common_sense.yaml | 2 ++ easi/tasks/ebalfred/ebalfred_complex_instruction.yaml | 2 ++ easi/tasks/ebalfred/ebalfred_long_horizon.yaml | 2 ++ easi/tasks/ebalfred/ebalfred_spatial.yaml | 2 ++ easi/tasks/ebalfred/ebalfred_visual_appearance.yaml | 2 ++ easi/tasks/ebalfred/vendor/EBAlfEnv.py | 9 ++++++--- 8 files changed, 22 insertions(+), 3 deletions(-) diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py index 829a9eb..5802b1f 100644 --- a/easi/tasks/ebalfred/bridge.py +++ b/easi/tasks/ebalfred/bridge.py @@ -36,6 +36,8 @@ def _create_env(self, reset_config, simulator_kwargs): data_dir = reset_config.get("data_dir") or simulator_kwargs.get("data_dir") resolution = simulator_kwargs.get("screen_height", 500) max_steps = simulator_kwargs.get("max_steps", 30) + max_invalid_actions = simulator_kwargs.get("max_invalid_actions", 10) + feedback_verbosity = simulator_kwargs.get("feedback_verbosity", 0) # x_display from YAML, falling back to DISPLAY env var (set by xvfb-run) x_display = simulator_kwargs.get( "x_display", os.environ.get("DISPLAY", ":0").lstrip(":") @@ -45,6 +47,8 @@ def _create_env(self, reset_config, simulator_kwargs): data_dir=data_dir, x_display=x_display, max_steps=max_steps, + max_invalid_actions=max_invalid_actions, + feedback_verbosity=feedback_verbosity, ) def _on_reset(self, env, reset_config): diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index 8f71bc7..fe88d92 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index d14306b..7ad2bd3 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 8954a8c..2d235d1 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 840a32b..209cd3c 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index 2025d03..b2e9baf 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index ae3a300..17293b9 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -15,6 +15,8 @@ simulator_configs: quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/vendor/EBAlfEnv.py b/easi/tasks/ebalfred/vendor/EBAlfEnv.py index 9e17700..565221f 100644 --- a/easi/tasks/ebalfred/vendor/EBAlfEnv.py +++ b/easi/tasks/ebalfred/vendor/EBAlfEnv.py @@ -88,7 +88,8 @@ class EBAlfEnv(gym.Env): action_space (gym.spaces.Discrete): Discrete action space language_skill_set (list): Readable action descriptions """ - def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=None, x_display=None, max_steps=30): + def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=None, x_display=None, max_steps=30, + max_invalid_actions=10, feedback_verbosity=0): """ Initialize the AI2THOR environment. @@ -99,6 +100,8 @@ def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=No data_dir: path to task JSON files (e.g. datasets/.../tasks) x_display: X display number for AI2-THOR max_steps: maximum steps per episode (from task YAML config) + max_invalid_actions: max consecutive invalid actions before episode ends + feedback_verbosity: 0=concise, 1=verbose env feedback """ super().__init__() self.reward_config_path = ALFRED_REWARD_PATH @@ -114,7 +117,7 @@ def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=No self._current_step = 0 self._max_episode_steps = max_steps self._cur_invalid_actions = 0 - self._max_invalid_actions = 10 + self._max_invalid_actions = max_invalid_actions self._episode_start_time = 0 self.episode_log = [] @@ -127,7 +130,7 @@ def __init__(self, exp_name='', detection_box=False, resolution=500, data_dir=No # env feedback and image save # feedback verbosity, 0: concise, 1: verbose - self.feedback_verbosity = 0 + self.feedback_verbosity = feedback_verbosity self.log_path = 'running/eb_alfred/{}'.format(exp_name) self.detection = detection_box # add detection in image From ffbed422a30876ea802fe1151073e6bfea3f7adc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:19:28 +0800 Subject: [PATCH 041/239] [Feat] Add configurable bounding box drawing for EB-Navigation observations --- easi/tasks/ebnavigation/bridge.py | 2 + .../tasks/ebnavigation/ebnavigation_base.yaml | 1 + .../ebnavigation_common_sense.yaml | 1 + .../ebnavigation_complex_instruction.yaml | 1 + .../ebnavigation_long_horizon.yaml | 1 + .../ebnavigation_visual_appearance.yaml | 1 + easi/tasks/ebnavigation/vendor/EBNavEnv.py | 48 ++++++++++++++++++- 7 files changed, 53 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ebnavigation/bridge.py b/easi/tasks/ebnavigation/bridge.py index 81e173f..5fd5bbf 100644 --- a/easi/tasks/ebnavigation/bridge.py +++ b/easi/tasks/ebnavigation/bridge.py @@ -36,6 +36,7 @@ def _create_env(self, reset_config, simulator_kwargs): success_threshold = simulator_kwargs.get("success_threshold", 1.0) grid_size = simulator_kwargs.get("grid_size", 0.1) visibility_distance = simulator_kwargs.get("visibility_distance", 10.0) + boundingbox = simulator_kwargs.get("boundingbox", False) return EBNavEnv( resolution=resolution, fov=fov, @@ -43,6 +44,7 @@ def _create_env(self, reset_config, simulator_kwargs): success_threshold=success_threshold, grid_size=grid_size, visibility_distance=visibility_distance, + boundingbox=boundingbox, ) def _on_reset(self, env, reset_config): diff --git a/easi/tasks/ebnavigation/ebnavigation_base.yaml b/easi/tasks/ebnavigation/ebnavigation_base.yaml index 457ab30..c083001 100644 --- a/easi/tasks/ebnavigation/ebnavigation_base.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_base.yaml @@ -16,6 +16,7 @@ simulator_configs: success_threshold: 1.0 grid_size: 0.1 visibility_distance: 10.0 + boundingbox: false agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml index 0dbfb52..b899d40 100644 --- a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml @@ -16,6 +16,7 @@ simulator_configs: success_threshold: 1.0 grid_size: 0.1 visibility_distance: 10.0 + boundingbox: false agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml index a7acd9b..2b56174 100644 --- a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml @@ -16,6 +16,7 @@ simulator_configs: success_threshold: 1.0 grid_size: 0.1 visibility_distance: 10.0 + boundingbox: false agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml index 309fd1c..b5de4bb 100644 --- a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml @@ -16,6 +16,7 @@ simulator_configs: success_threshold: 1.0 grid_size: 0.1 visibility_distance: 10.0 + boundingbox: false agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml index 5212d94..677483b 100644 --- a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml @@ -16,6 +16,7 @@ simulator_configs: success_threshold: 1.0 grid_size: 0.1 visibility_distance: 10.0 + boundingbox: false agent: prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebnavigation/vendor/EBNavEnv.py b/easi/tasks/ebnavigation/vendor/EBNavEnv.py index 7a3d699..4ac51f6 100644 --- a/easi/tasks/ebnavigation/vendor/EBNavEnv.py +++ b/easi/tasks/ebnavigation/vendor/EBNavEnv.py @@ -11,6 +11,39 @@ import ai2thor.controller import numpy as np from ai2thor.platform import Linux64 +from PIL import Image, ImageDraw + +# Objects eligible for bounding box drawing +# Reference: EmbodiedBench/embodiedbench/envs/eb_navigation/utils.py +VALID_OBJS = { + 'Cart', 'Potato', 'Faucet', 'Ottoman', 'CoffeeMachine', 'Candle', 'CD', + 'Pan', 'Watch', 'HandTowel', 'SprayBottle', 'BaseballBat', 'CellPhone', + 'Kettle', 'Mug', 'StoveBurner', 'Bowl', 'Spoon', 'TissueBox', 'Apple', + 'TennisRacket', 'SoapBar', 'Cloth', 'Plunger', 'FloorLamp', + 'ToiletPaperHanger', 'Spatula', 'Plate', 'Glassbottle', 'Knife', 'Tomato', + 'ButterKnife', 'Dresser', 'Microwave', 'GarbageCan', 'WateringCan', + 'Vase', 'ArmChair', 'Safe', 'KeyChain', 'Pot', 'Pen', 'Newspaper', + 'Bread', 'Book', 'Lettuce', 'CreditCard', 'AlarmClock', 'ToiletPaper', + 'SideTable', 'Fork', 'Box', 'Egg', 'DeskLamp', 'Ladle', 'WineBottle', + 'Pencil', 'Laptop', 'RemoteControl', 'BasketBall', 'DishSponge', 'Cup', + 'SaltShaker', 'PepperShaker', 'Pillow', 'Bathtub', 'SoapBottle', 'Statue', + 'Fridge', 'Toaster', 'LaundryHamper', +} + + +def _draw_boxes(frame: np.ndarray, instance_detections: dict) -> np.ndarray: + """Draw bounding boxes on frame for all valid objects. + + Reference: EmbodiedBench/embodiedbench/envs/eb_navigation/utils.py:draw_boxes + """ + img = Image.fromarray(frame) + draw = ImageDraw.Draw(img) + for class_name, box in instance_detections.items(): + if class_name.split('|')[0] in VALID_OBJS: + color = tuple(np.random.randint(0, 256, size=3).tolist()) + x1, y1, x2, y2 = box[0], box[1], box[2], box[3] + draw.rectangle([x1, y1, x2, y2], outline=color, width=1) + return np.array(img) class EBNavEnv: """AI2-THOR navigation environment for EB-Navigation benchmark.""" @@ -23,9 +56,11 @@ def __init__( success_threshold: float = 1.0, grid_size: float = 0.1, visibility_distance: float = 10.0, + boundingbox: bool = False, ): self.resolution = resolution self._success_threshold = success_threshold + self.boundingbox = boundingbox self.config = { "agentMode": "default", "gridSize": grid_size, @@ -74,7 +109,7 @@ def reset(self, episode: dict) -> dict: ) self._current_step = 0 - return {"head_rgb": self.env.last_event.frame} + return {"head_rgb": self._get_frame()} def step(self, action_id: int) -> tuple[dict, float, bool, dict]: """Execute one discrete action. @@ -95,7 +130,7 @@ def step(self, action_id: int) -> tuple[dict, float, bool, dict]: done = self._current_step >= self._max_episode_steps or reward > 0 - obs = {"head_rgb": self.env.last_event.frame} + obs = {"head_rgb": self._get_frame()} info = { "task_success": reward, "distance": distance, @@ -160,6 +195,15 @@ def _get_env_feedback(self) -> str: else: return f"Last action {last_action} is invalid. {error}" + def _get_frame(self) -> np.ndarray: + """Return the current frame, with bounding boxes if enabled.""" + frame = self.env.last_event.frame + if self.boundingbox: + detections = self.env.last_event.instance_detections2D + if detections: + frame = _draw_boxes(frame, detections) + return frame + def close(self) -> None: """Shut down the AI2-THOR controller.""" self.env.stop() From 321de2a0eb8afec51a9aba601b90508798213c1a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:24:19 +0800 Subject: [PATCH 042/239] [Feat] Add configurable bounding box drawing for EB-Alfred observations --- easi/tasks/ebalfred/bridge.py | 2 ++ easi/tasks/ebalfred/ebalfred_base.yaml | 1 + easi/tasks/ebalfred/ebalfred_common_sense.yaml | 1 + .../ebalfred/ebalfred_complex_instruction.yaml | 1 + easi/tasks/ebalfred/ebalfred_long_horizon.yaml | 1 + easi/tasks/ebalfred/ebalfred_spatial.yaml | 1 + easi/tasks/ebalfred/ebalfred_visual_appearance.yaml | 1 + easi/tasks/ebalfred/vendor/EBAlfEnv.py | 13 +++++++++++-- 8 files changed, 19 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ebalfred/bridge.py b/easi/tasks/ebalfred/bridge.py index 5802b1f..3ac29bf 100644 --- a/easi/tasks/ebalfred/bridge.py +++ b/easi/tasks/ebalfred/bridge.py @@ -38,6 +38,7 @@ def _create_env(self, reset_config, simulator_kwargs): max_steps = simulator_kwargs.get("max_steps", 30) max_invalid_actions = simulator_kwargs.get("max_invalid_actions", 10) feedback_verbosity = simulator_kwargs.get("feedback_verbosity", 0) + detection_box = simulator_kwargs.get("detection_box", False) # x_display from YAML, falling back to DISPLAY env var (set by xvfb-run) x_display = simulator_kwargs.get( "x_display", os.environ.get("DISPLAY", ":0").lstrip(":") @@ -49,6 +50,7 @@ def _create_env(self, reset_config, simulator_kwargs): max_steps=max_steps, max_invalid_actions=max_invalid_actions, feedback_verbosity=feedback_verbosity, + detection_box=detection_box, ) def _on_reset(self, env, reset_config): diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index fe88d92..b131bf2 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 7ad2bd3..89e5381 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 2d235d1..07b6375 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 209cd3c..549745e 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index b2e9baf..3ec3b77 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 17293b9..e690491 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 0 + detection_box: false additional_deps: - "gym" - "networkx" diff --git a/easi/tasks/ebalfred/vendor/EBAlfEnv.py b/easi/tasks/ebalfred/vendor/EBAlfEnv.py index 565221f..92a3ca1 100644 --- a/easi/tasks/ebalfred/vendor/EBAlfEnv.py +++ b/easi/tasks/ebalfred/vendor/EBAlfEnv.py @@ -258,7 +258,7 @@ def reset(self, episode=None): self._current_step = 0 self._cur_invalid_actions = 0 obs = { - 'head_rgb': self.env.last_event.frame, + 'head_rgb': self._get_frame(), } self._reset = True self.episode_log = [] @@ -300,7 +300,7 @@ def step(self, action, reasoning=''): info['task_progress'] = subgoal_met[0] / subgoal_met[1] obs = { - 'head_rgb': self.env.last_event.frame, + 'head_rgb': self._get_frame(), } # if exceed the maximum episode steps or the goal is achieved if self._current_step >= self._max_episode_steps or info['task_success'] or self._cur_invalid_actions >= self._max_invalid_actions: @@ -351,6 +351,15 @@ def get_env_feedback(self, info): def seed(self, seed=None): self.env.random_initilize(seed) + def _get_frame(self): + """Return the current frame, with bounding boxes if detection is enabled.""" + frame = self.env.last_event.frame + if self.detection: + img = Image.fromarray(frame) + img = utils.draw_boxes(img, self.env.last_event.instance_detections2D, name_translation=self.id_to_name_dict) + frame = np.array(img) + return frame + def save_image(self, *args, **kwargs): """Save current agent view as a PNG image.""" episode_idx = self._current_episode_num if not len(self.selected_indexes) else self.selected_indexes[self._current_episode_num - 1] + 1 From d55ab73b7f891375a013354897a4b958468afda2 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:25:59 +0800 Subject: [PATCH 043/239] [Chore] Add json file --- easi/tasks/ebhabitat/vendor/data/default.physics_config.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 easi/tasks/ebhabitat/vendor/data/default.physics_config.json diff --git a/easi/tasks/ebhabitat/vendor/data/default.physics_config.json b/easi/tasks/ebhabitat/vendor/data/default.physics_config.json new file mode 100644 index 0000000..f8cf661 --- /dev/null +++ b/easi/tasks/ebhabitat/vendor/data/default.physics_config.json @@ -0,0 +1 @@ +{"physics_simulator": "bullet", "timestep": 0.008, "gravity": [0, -9.8, 0], "friction_coefficient": 0.4, "restitution_coefficient": 0.1, "rigid object paths": ["objects"]} \ No newline at end of file From e948a7a0908b758e1e561c1e058e6bf9474c340b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 06:57:44 +0800 Subject: [PATCH 044/239] [Feat] Make EB-Habitat gpu_device_id configurable via task YAML --- easi/tasks/ebhabitat/bridge.py | 2 ++ easi/tasks/ebhabitat/ebhabitat_base.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_common_sense.yaml | 1 + .../ebhabitat/ebhabitat_complex_instruction.yaml | 1 + easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml | 1 + .../ebhabitat/ebhabitat_spatial_relationship.yaml | 1 + .../tasks/ebhabitat/ebhabitat_visual_appearance.yaml | 1 + easi/tasks/ebhabitat/vendor/EBHabEnv.py | 12 ++++++++---- 8 files changed, 16 insertions(+), 4 deletions(-) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py index 08fed53..5b83d71 100644 --- a/easi/tasks/ebhabitat/bridge.py +++ b/easi/tasks/ebhabitat/bridge.py @@ -53,6 +53,7 @@ def _create_env(self, reset_config, simulator_kwargs): max_steps = simulator_kwargs.get("max_steps", 30) max_invalid_actions = simulator_kwargs.get("max_invalid_actions", 10) feedback_verbosity = simulator_kwargs.get("feedback_verbosity", 1) + gpu_device_id = simulator_kwargs.get("gpu_device_id", None) env = EBHabEnv( eval_set=eval_set, @@ -62,6 +63,7 @@ def _create_env(self, reset_config, simulator_kwargs): max_steps=max_steps, max_invalid_actions=max_invalid_actions, feedback_verbosity=feedback_verbosity, + gpu_device_id=gpu_device_id, ) # Extract dynamic action space diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml index 4962033..18875d9 100644 --- a/easi/tasks/ebhabitat/ebhabitat_base.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml index c553df6..d608ba5 100644 --- a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml index 395be43..314053f 100644 --- a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml index 80cfce9..7d5b29f 100644 --- a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml index 7a8d84a..d158b6b 100644 --- a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml index 939e9f1..e32a0ab 100644 --- a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -17,6 +17,7 @@ simulator_configs: screen_width: 500 max_invalid_actions: 10 feedback_verbosity: 1 + gpu_device_id: -1 additional_deps: - "gym" - "hydra-core>=1.3" diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py index 7eb93e3..0de6413 100644 --- a/easi/tasks/ebhabitat/vendor/EBHabEnv.py +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -116,7 +116,8 @@ class EBHabEnv(gym.Env): def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, start_epi_index=0, resolution=500, recording=False, data_dir=None, dataset_dir=None, - max_steps=30, max_invalid_actions=10, feedback_verbosity=1): + max_steps=30, max_invalid_actions=10, feedback_verbosity=1, + gpu_device_id=None): """ Initialize the HabitatRearrange environment. @@ -151,9 +152,12 @@ def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, self.resolution = resolution # Set GPU device for rendering. - # Default to 0 (first GPU). Use HABITAT_SIM_GPU_ID env var to override. - # The headless conda build may need the NVIDIA EGL ICD installed. - gpu_id = int(os.environ.get("HABITAT_SIM_GPU_ID", "0")) + # Priority: constructor param > HABITAT_SIM_GPU_ID env var > default 0. + # Use -1 for software rendering (Mesa llvmpipe) on machines without CUDA. + if gpu_device_id is not None: + gpu_id = gpu_device_id + else: + gpu_id = int(os.environ.get("HABITAT_SIM_GPU_ID", "0")) self.config.habitat.simulator.habitat_sim_v0.gpu_device_id = gpu_id # modify config path to ease data loading From 8f0d947f6468fe62fe78374830e3cdc51b07bbf1 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 16:33:26 +0800 Subject: [PATCH 045/239] [Fix] Add generation_kwargs to YAML configs and fix empty plan handling - Add generation_kwargs (temperature, max_tokens, top_k, top_p, do_sample) to all 17 task YAML configs, replacing llm_defaults - Runner merges YAML generation_kwargs with CLI --llm-kwargs (CLI overrides) - ReAct agent returns <> sentinel on empty plans instead of fallback action, matching EmbodiedBench behavior of ending episodes on empty plans - Fix test_max_steps assertion to match YAML (50, not 30) --- easi/agents/react_agent.py | 9 +++++++-- easi/evaluation/runner.py | 12 +++++++++++- easi/tasks/ebalfred/ebalfred_base.yaml | 6 ++++++ easi/tasks/ebalfred/ebalfred_common_sense.yaml | 6 ++++++ .../tasks/ebalfred/ebalfred_complex_instruction.yaml | 6 ++++++ easi/tasks/ebalfred/ebalfred_long_horizon.yaml | 6 ++++++ easi/tasks/ebalfred/ebalfred_spatial.yaml | 6 ++++++ easi/tasks/ebalfred/ebalfred_visual_appearance.yaml | 6 ++++++ easi/tasks/ebhabitat/ebhabitat_base.yaml | 8 +++++++- easi/tasks/ebhabitat/ebhabitat_common_sense.yaml | 8 +++++++- .../ebhabitat/ebhabitat_complex_instruction.yaml | 8 +++++++- easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml | 8 +++++++- .../ebhabitat/ebhabitat_spatial_relationship.yaml | 8 +++++++- .../tasks/ebhabitat/ebhabitat_visual_appearance.yaml | 8 +++++++- easi/tasks/ebnavigation/ebnavigation_base.yaml | 6 ++++++ .../ebnavigation/ebnavigation_common_sense.yaml | 6 ++++++ .../ebnavigation_complex_instruction.yaml | 6 ++++++ .../ebnavigation/ebnavigation_long_horizon.yaml | 6 ++++++ .../ebnavigation/ebnavigation_visual_appearance.yaml | 6 ++++++ tests/test_ebhabitat_task.py | 2 +- 20 files changed, 127 insertions(+), 10 deletions(-) diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py index 87bf1a8..0e4b46b 100644 --- a/easi/agents/react_agent.py +++ b/easi/agents/react_agent.py @@ -129,10 +129,15 @@ def add_feedback(self, action_name: str, feedback: str) -> None: self._action_buffer.clear() def _fallback_action(self) -> Action: - """Return a safe fallback action when parsing fails.""" + """Return a safe fallback action when parsing fails. + + If the action space has "Stop", use it (e.g., EB-Alfred). + Otherwise, signal that the episode should end via "<>" + (matching EmbodiedBench behavior where empty plans end episodes). + """ if "Stop" in self.action_space: return Action(action_name="Stop") - return Action(action_name=self.action_space[0]) + return Action(action_name="<>") def _generate_with_fallback( self, messages: list[dict], response_format: dict | None, diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index d46da2b..16532c2 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -304,6 +304,12 @@ def _run_episode( for step in range(task.max_steps): action = agent.act(observation, task_description) + + # Handle stop signal (e.g., empty plan from LLM) + if action.action_name == "<>": + logger.info("Agent signalled stop (empty plan), ending episode") + break + step_result = sim.step(action) trajectory.append(step_result) @@ -424,11 +430,15 @@ def _create_agent(self, action_space: list[str], task_config: dict, all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) _, client_kwargs = split_kwargs(all_kwargs) + # Merge YAML generation_kwargs with CLI kwargs (CLI overrides) + yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) + merged_kwargs = {**yaml_gen_kwargs, **client_kwargs} + llm = LLMClient( model=litellm_model, base_url=base_url, num_retries=self.max_retries, - **client_kwargs, + **merged_kwargs, ) else: # Legacy path: existing LLMApiClient diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index b131bf2..591cdf9 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -29,3 +29,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 89e5381..33f9262 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -29,3 +29,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 07b6375..577f541 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -29,3 +29,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 549745e..52b2a75 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -29,3 +29,9 @@ agent: split: "long_horizon" use_feedback: true chat_history: true + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index 3ec3b77..2f040f2 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -29,3 +29,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index e690491..1648e01 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -29,3 +29,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml index 18875d9..70a4d69 100644 --- a/easi/tasks/ebhabitat/ebhabitat_base.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Base Split" description: "Base evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "base" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml index d608ba5..dd8a40f 100644 --- a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Common Sense Split" description: "Common sense evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "common_sense" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml index 314053f..c9a5d08 100644 --- a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Complex Instruction Split" description: "Complex instruction evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "complex_instruction" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml index 7d5b29f..9f5e70c 100644 --- a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Long Horizon Split" description: "Long horizon evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "long_horizon" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml index d158b6b..12ca5f4 100644 --- a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Spatial Relationship Split" description: "Spatial relationship evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "spatial_relationship" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml index e32a0ab..6269376 100644 --- a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -3,7 +3,7 @@ display_name: "EB-Habitat Visual Appearance Split" description: "Visual appearance evaluation split for EB-Habitat (rearrangement)" simulator: "habitat_sim:v0_3_0" task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 30 +max_steps: 50 dataset: source: huggingface repo_id: "oscarqjh/EB-Habitat_easi" @@ -32,3 +32,9 @@ agent: split: "visual_appearance" use_feedback: true chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_base.yaml b/easi/tasks/ebnavigation/ebnavigation_base.yaml index c083001..4f9ecb9 100644 --- a/easi/tasks/ebnavigation/ebnavigation_base.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_base.yaml @@ -25,3 +25,9 @@ agent: use_feedback: true chat_history: true message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml index b899d40..1eb39e4 100644 --- a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml @@ -25,3 +25,9 @@ agent: use_feedback: true chat_history: true message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml index 2b56174..4442cad 100644 --- a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml @@ -25,3 +25,9 @@ agent: use_feedback: true chat_history: true message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml index b5de4bb..07606ad 100644 --- a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml @@ -25,3 +25,9 @@ agent: use_feedback: true chat_history: true message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml index 677483b..2a0a557 100644 --- a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml @@ -25,3 +25,9 @@ agent: use_feedback: true chat_history: true message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/tests/test_ebhabitat_task.py b/tests/test_ebhabitat_task.py index 6c570a9..17cd16a 100644 --- a/tests/test_ebhabitat_task.py +++ b/tests/test_ebhabitat_task.py @@ -56,7 +56,7 @@ def test_action_space_loaded(self, task): assert len(task.action_space) == len(PLACEHOLDER_ACTIONS) def test_max_steps(self, task): - assert task.max_steps == 30 + assert task.max_steps == 50 def test_format_reset_config(self, task): """Test the adapter from EB-Habitat HF row to bridge reset config.""" From 9f33a638a3b032fd9b04f3f5ecbd5a9755bb95fd Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 20:11:21 +0800 Subject: [PATCH 046/239] [Fix] Drop unsupported LLM params per provider and add run config tracing - Filter generation_kwargs against whitelist of litellm/OpenAI-compatible params (temperature, max_tokens, top_p, etc.) in LLMClient.__init__, silently dropping HuggingFace-specific ones (do_sample, top_k) - Add drop_params=True as secondary safety net for litellm.completion() - Log full resolved run config at TRACE level on run start - Fix minor prompt formatting in EB-Habitat --- easi/evaluation/runner.py | 13 +++++++++++++ easi/llm/client.py | 18 +++++++++++++++++- easi/tasks/ebhabitat/prompts.py | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 16532c2..d194eb9 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -138,6 +138,14 @@ def run(self, max_episodes: int | None = None) -> list[dict]: ) base_url = server.start() + # Compute resolved generation kwargs (YAML defaults + CLI overrides) + from easi.llm.utils import parse_llm_kwargs, split_kwargs + agent_config = task._config.get("agent", {}) + yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) + all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) + resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} + # Save run config config = { "run_id": self.run_id, @@ -157,9 +165,14 @@ def run(self, max_episodes: int | None = None) -> list[dict]: "max_retries": self.max_retries, }, "resolved_backend": backend, + "resolved_base_url": base_url, + "resolved_generation_kwargs": resolved_gen_kwargs, "task_config": task._config, } (run_dir / "config.json").write_text(json.dumps(config, indent=2)) + logger.trace( + "Run config:\n%s", json.dumps(config, indent=2, default=str) + ) # 3. Create agent agent = self._create_agent(task.action_space, task._config, diff --git a/easi/llm/client.py b/easi/llm/client.py index 3af6f46..1035b30 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -14,6 +14,17 @@ logger = get_logger(__name__) # Lazy imports to avoid requiring litellm when not needed. +# Parameters accepted by litellm.completion() / OpenAI chat completions API. +# Anything not in this set is silently dropped to avoid provider rejections. +_LITELLM_PARAMS = frozenset({ + "temperature", "max_tokens", "top_p", "n", "stop", "seed", + "frequency_penalty", "presence_penalty", "logit_bias", + "logprobs", "top_logprobs", + "response_format", "tools", "tool_choice", + "stream", "stream_options", + "user", "metadata", +}) + litellm = None @@ -46,7 +57,11 @@ def __init__( self.model = model self.base_url = base_url self.num_retries = num_retries - self.default_kwargs = kwargs + # Only keep params that litellm/OpenAI API recognises. + dropped = {k: v for k, v in kwargs.items() if k not in _LITELLM_PARAMS} + if dropped: + logger.debug("Dropping unsupported generation kwargs: %s", dropped) + self.default_kwargs = {k: v for k, v in kwargs.items() if k in _LITELLM_PARAMS} self._usage = { "prompt_tokens": 0, "completion_tokens": 0, @@ -62,6 +77,7 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> "model": self.model, "messages": messages, "num_retries": self.num_retries, + "drop_params": True, **self.default_kwargs, } if self.base_url: diff --git a/easi/tasks/ebhabitat/prompts.py b/easi/tasks/ebhabitat/prompts.py index c3f445a..8bc5268 100644 --- a/easi/tasks/ebhabitat/prompts.py +++ b/easi/tasks/ebhabitat/prompts.py @@ -261,7 +261,7 @@ def _build_prompt_text( ) prompt += f'\n\n## Now the human instruction is: {user_instruction}.' - prompt += f" You are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." + prompt += f"\nYou are supposed to output in json. You need to describe current visual state from the image, output your reasoning steps and plan. At the end, output the action id (0 ~ {max_id}) from the available actions to excute." else: # Subsequent turn path, chat_history=False (vlm_planner.py lines 78-94) From 54788b846f39a1a39eadfd6eb8f4c9b78b382d8a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 17 Feb 2026 22:20:53 +0800 Subject: [PATCH 047/239] [Fix] Disable Habitat episode shuffle and add model name to run directory - Disable episode shuffling in EBHabEnv so simulator episode order matches the HF dataset order (root cause of ~6% vs ~86% accuracy mismatch) - Append model name to run_id so output dirs become /_/ for easier identification --- easi/evaluation/runner.py | 7 ++++++- easi/tasks/ebhabitat/vendor/EBHabEnv.py | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index d194eb9..5369f6e 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -73,7 +73,12 @@ def __init__( self.max_retries = max_retries self.resume_dir = Path(resume_dir) if resume_dir else None self.redownload = redownload - self.run_id = datetime.now().strftime("%Y%m%d_%H%M%S") + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + if self.model: + safe_model = self.model.replace("/", "_") + self.run_id = f"{timestamp}_{safe_model}" + else: + self.run_id = timestamp def _resolve_llm_backend(self) -> tuple[str | None, str | None]: """Resolve which LLM backend to use. diff --git a/easi/tasks/ebhabitat/vendor/EBHabEnv.py b/easi/tasks/ebhabitat/vendor/EBHabEnv.py index 0de6413..ea99c85 100644 --- a/easi/tasks/ebhabitat/vendor/EBHabEnv.py +++ b/easi/tasks/ebhabitat/vendor/EBHabEnv.py @@ -160,6 +160,12 @@ def __init__(self, eval_set='train', exp_name='', down_sample_ratio=1.0, gpu_id = int(os.environ.get("HABITAT_SIM_GPU_ID", "0")) self.config.habitat.simulator.habitat_sim_v0.gpu_device_id = gpu_id + # Disable episode shuffling — EASI controls episode ordering via HF dataset. + # The default CustomEpisodeIterator shuffles episodes which would cause a + # mismatch between the HF instruction sent to the LLM and the actual + # simulator episode. + self.config.habitat.environment.iterator_options.shuffle = False + # modify config path to ease data loading self.dataset = make_dataset(self.config.habitat.dataset.type, config=self.config.habitat.dataset) From d48cf217160585eb1594933bf3f16a52ddf29e1c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 18 Feb 2026 14:49:37 +0800 Subject: [PATCH 048/239] [Feat] Add CoppeliaSim V4.1.0 simulator integration - Add installation_kwargs to SimulatorEntry and BaseEnvironmentManager for manifest-driven installation (URLs, filenames, etc.) - Add create_env_manager() factory that passes installation_kwargs - Add BaseEnvironmentManager post_install hook, _download_and_extract, get_env_vars, template resolution helpers - Add SubprocessRunner extra_env support with path-var prepending - Create CoppeliaSim V4.1.0 simulator: env_manager (conda env, binary download, PyRep build, lua addon copy), bridge (PyRep + Panda arm smoke test), manifest.yaml - Fix Xvfb NVIDIA EGL crash via __EGL_VENDOR_LIBRARY_FILENAMES=mesa - Fix HTTP 403 on CoppeliaSim download with User-Agent header - Fix libcoppeliaSim.so.1 symlink creation for PyRep linking - Pass env vars through validation and env_is_ready checks - Update CLI and runner to use create_env_manager() - Add 428 passing tests (27 CoppeliaSim + infrastructure tests) --- easi/cli.py | 19 +- easi/core/base_env_manager.py | 170 +++++- easi/evaluation/runner.py | 9 +- easi/simulators/coppeliasim/__init__.py | 0 easi/simulators/coppeliasim/manifest.yaml | 15 + .../simulators/coppeliasim/v4_1_0/__init__.py | 0 easi/simulators/coppeliasim/v4_1_0/bridge.py | 230 ++++++++ .../coppeliasim/v4_1_0/conda_env.yaml | 11 + .../coppeliasim/v4_1_0/env_manager.py | 138 +++++ .../coppeliasim/v4_1_0/requirements.txt | 6 + .../v4_1_0/simAddOnScript_PyRep.lua | 542 ++++++++++++++++++ .../coppeliasim/v4_1_0/simulator.py | 22 + .../coppeliasim/v4_1_0/task_design.ttt | Bin 0 -> 6967399 bytes easi/simulators/registry.py | 11 +- easi/simulators/subprocess_runner.py | 28 + tests/test_coppeliasim_simulator.py | 165 ++++++ tests/test_dummy_simulator.py | 20 + tests/test_env_manager.py | 180 ++++++ tests/test_env_vars_wiring.py | 66 +++ tests/test_installation_kwargs.py | 80 +++ tests/test_subprocess_runner.py | 68 +++ 21 files changed, 1761 insertions(+), 19 deletions(-) create mode 100644 easi/simulators/coppeliasim/__init__.py create mode 100644 easi/simulators/coppeliasim/manifest.yaml create mode 100644 easi/simulators/coppeliasim/v4_1_0/__init__.py create mode 100644 easi/simulators/coppeliasim/v4_1_0/bridge.py create mode 100644 easi/simulators/coppeliasim/v4_1_0/conda_env.yaml create mode 100644 easi/simulators/coppeliasim/v4_1_0/env_manager.py create mode 100644 easi/simulators/coppeliasim/v4_1_0/requirements.txt create mode 100755 easi/simulators/coppeliasim/v4_1_0/simAddOnScript_PyRep.lua create mode 100644 easi/simulators/coppeliasim/v4_1_0/simulator.py create mode 100644 easi/simulators/coppeliasim/v4_1_0/task_design.ttt create mode 100644 tests/test_coppeliasim_simulator.py create mode 100644 tests/test_env_manager.py create mode 100644 tests/test_env_vars_wiring.py create mode 100644 tests/test_installation_kwargs.py create mode 100644 tests/test_subprocess_runner.py diff --git a/easi/cli.py b/easi/cli.py index bddacd1..9fa7c52 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -143,10 +143,9 @@ def cmd_env_list() -> None: def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str | None = None) -> None: - from easi.simulators.registry import load_env_manager_class + from easi.simulators.registry import create_env_manager - EnvManagerClass = load_env_manager_class(simulator) - env_manager = EnvManagerClass() + env_manager = create_env_manager(simulator) if reinstall: logger.info("Removing existing environment: %s", env_manager.get_env_name()) @@ -170,10 +169,9 @@ def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str def cmd_env_check(simulator: str) -> None: - from easi.simulators.registry import load_env_manager_class + from easi.simulators.registry import create_env_manager - EnvManagerClass = load_env_manager_class(simulator) - env_manager = EnvManagerClass() + env_manager = create_env_manager(simulator) missing = env_manager.check_system_deps() if missing: @@ -242,18 +240,18 @@ def cmd_task_download(task_name: str, redownload: bool = False) -> None: def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: from easi.core.episode import Action - from easi.simulators.registry import load_env_manager_class, load_simulator_class + from easi.simulators.registry import create_env_manager, load_simulator_class from easi.simulators.subprocess_runner import SubprocessRunner - EnvManagerClass = load_env_manager_class(simulator) + env_manager = create_env_manager(simulator) SimClass = load_simulator_class(simulator) - - env_manager = EnvManagerClass() sim = SimClass() logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) + env_vars = env_manager.get_env_vars() + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), @@ -261,6 +259,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: xvfb_screen_config=env_manager.xvfb_screen_config, startup_timeout=timeout, command_timeout=timeout, + extra_env=env_vars or None, ) try: diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 0b31251..c49f9c9 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -13,6 +13,8 @@ from __future__ import annotations import subprocess +import tarfile +import urllib.request from abc import ABC, abstractmethod from pathlib import Path @@ -29,8 +31,9 @@ class BaseEnvironmentManager(ABC): """Abstract base for per-simulator-version environment management.""" - def __init__(self, conda_prefix: Path | None = None): + def __init__(self, conda_prefix: Path | None = None, installation_kwargs: dict | None = None): self.conda_prefix = conda_prefix or self._default_conda_prefix() + self.installation_kwargs = installation_kwargs or {} self._dep_checker = SystemDependencyChecker() @property @@ -81,6 +84,18 @@ def xvfb_screen_config(self) -> str: """Xvfb screen config. Override for custom resolution/depth.""" return "1024x768x24" + def get_env_vars(self) -> dict[str, str]: + """Return environment variables to inject into the bridge subprocess. + + Override in subclasses to provide simulator-specific env vars. + Use _get_template_variables() and _resolve_template() to build + paths relative to the conda env directory. + + Returns: + Dict of env var name -> value. Empty dict by default. + """ + return {} + def get_env_name(self) -> str: """Conda environment name for this simulator version.""" return f"easi_{self.simulator_name}_{self.version}" @@ -100,12 +115,21 @@ def env_is_ready(self) -> bool: if not Path(python_exec).exists(): return False + # Include simulator env vars (e.g. LD_LIBRARY_PATH for CoppeliaSim) + env_vars = self.get_env_vars() + run_env = None + if env_vars: + import os + run_env = os.environ.copy() + run_env.update(env_vars) + try: result = subprocess.run( [python_exec, "-c", self.get_validation_import()], capture_output=True, text=True, timeout=30, + env=run_env, ) return result.returncode == 0 except (subprocess.TimeoutExpired, FileNotFoundError): @@ -184,15 +208,146 @@ def _do_install(self) -> None: else: logger.warning("No requirements.txt found at %s, skipping uv install", requirements) - # Step 5: Validate + # Step 5: Run post-install hook (binary downloads, file copies, etc.) + self._run_post_install() + + # Step 6: Validate (with env vars so e.g. LD_LIBRARY_PATH is set) + env_vars = self.get_env_vars() + validation_env = None + if env_vars: + import os + validation_env = os.environ.copy() + validation_env.update(env_vars) with spinner("Validating environment"): self._run_command( [python_exec, "-c", self.get_validation_import()], "environment validation", + env=validation_env, ) logger.info("Environment %s installed and validated successfully", env_name) + # ── Post-install hook and helpers ────────────────────────────────── + + def get_extras_dir(self) -> Path: + """Directory for downloaded binaries and other extras (inside conda env dir).""" + env_path = self.conda_prefix / "envs" / self.get_env_name() + return env_path / "extras" + + @staticmethod + def _resolve_template(template: str, variables: dict[str, str]) -> str: + """Resolve {var} placeholders in a string.""" + result = template + for key, value in variables.items(): + result = result.replace(f"{{{key}}}", value) + return result + + def _get_template_variables(self) -> dict[str, str]: + """Return template variables for env_vars and post_install use. + + Available variables: + {env_dir} — conda env directory + {extras_dir} — extras directory for binaries/downloads + """ + env_dir = str(self.conda_prefix / "envs" / self.get_env_name()) + return { + "env_dir": env_dir, + "extras_dir": str(self.get_extras_dir()), + } + + def post_install(self, context: dict) -> None: + """Override for custom post-install steps (binary downloads, file copies, etc.). + + Called after conda + pip installs, before validation. Use helper methods + like _download_and_extract() for common operations. Use _run_command() + with an env dict to run pip install with custom env vars. + + Args: + context: Dict with keys: + env_dir — conda env directory path + extras_dir — directory for downloaded extras + env_vars — resolved env vars from get_env_vars() + + Does nothing by default. + """ + + def _run_post_install(self) -> None: + """Build context and call post_install() hook.""" + ctx = self._get_template_variables() + ctx["env_vars"] = self.get_env_vars() + self.post_install(ctx) + + def _download_and_extract( + self, + url: str, + filename: str, + dest_dir: Path, + extract: bool = True, + strip_components: int = 0, + ) -> None: + """Download a file and optionally extract it. Idempotent (skips if done). + + Helper for use inside post_install() overrides. + + Args: + url: Download URL. + filename: Local filename to save as. + dest_dir: Directory to download/extract into. + extract: Whether to extract archives (tar.xz, tar.gz, zip). + strip_components: Remove N leading path components when extracting. + """ + dest_dir = Path(dest_dir) + dest_dir.mkdir(parents=True, exist_ok=True) + dest = dest_dir / filename + + # Idempotency: check marker for extracted archives, or file existence + marker = dest_dir / f".{filename}.done" + if marker.exists(): + logger.info("Already installed: %s, skipping", filename) + return + if not extract and dest.exists(): + logger.info("Already downloaded: %s, skipping", filename) + return + + with spinner(f"Downloading {filename}"): + logger.info("Downloading %s", url) + req = urllib.request.Request(url, headers={"User-Agent": "easi/1.0"}) + with urllib.request.urlopen(req) as response, open(str(dest), "wb") as out: + while True: + chunk = response.read(1024 * 1024) # 1MB chunks + if not chunk: + break + out.write(chunk) + + if extract: + with spinner(f"Extracting {filename}"): + self._extract_archive(dest, dest_dir, strip_components) + dest.unlink(missing_ok=True) # Remove archive to save space + + marker.touch() + + def _extract_archive(self, archive: Path, dest_dir: Path, strip_components: int = 0) -> None: + """Extract a tar.xz, tar.gz, tar.bz2, or zip archive.""" + name = archive.name + if name.endswith((".tar.xz", ".tar.gz", ".tgz", ".tar.bz2")): + with tarfile.open(str(archive)) as tf: + if strip_components > 0: + for member in tf.getmembers(): + parts = Path(member.name).parts + if len(parts) > strip_components: + member.name = str(Path(*parts[strip_components:])) + tf.extract(member, dest_dir) + else: + tf.extractall(dest_dir) + elif name.endswith(".zip"): + import zipfile + with zipfile.ZipFile(str(archive)) as zf: + zf.extractall(dest_dir) + else: + logger.warning("Unknown archive format: %s, skipping extraction", name) + + # ── Conda / command helpers ───────────────────────────────────── + def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: """Create or update a conda environment from a YAML file.""" env_path = self.conda_prefix / "envs" / env_name @@ -206,8 +361,14 @@ def _run_conda_create(self, env_name: str, yaml_path: Path) -> None: self._run_command(cmd, desc) - def _run_command(self, cmd: list[str], description: str) -> None: - """Run a subprocess command, streaming output through the logger.""" + def _run_command(self, cmd: list[str], description: str, env: dict[str, str] | None = None) -> None: + """Run a subprocess command, streaming output through the logger. + + Args: + cmd: Command and arguments. + description: Human-readable description for error messages. + env: Optional environment dict. If None, inherits parent env. + """ logger.trace("%s", " ".join(cmd)) process = subprocess.Popen( cmd, @@ -215,6 +376,7 @@ def _run_command(self, cmd: list[str], description: str) -> None: stderr=subprocess.STDOUT, text=True, bufsize=1, + env=env, ) output_lines = [] for line in process.stdout: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 5369f6e..2705086 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -485,15 +485,13 @@ def _create_simulator(self, simulator_key: str, task=None): import json as _json from easi.simulators.registry import ( - load_env_manager_class, + create_env_manager, load_simulator_class, ) from easi.simulators.subprocess_runner import SubprocessRunner - EnvManagerClass = load_env_manager_class(simulator_key) + env_manager = create_env_manager(simulator_key) SimClass = load_simulator_class(simulator_key) - - env_manager = EnvManagerClass() sim = SimClass() # Auto-install simulator env if not ready @@ -515,12 +513,15 @@ def _create_simulator(self, simulator_key: str, task=None): if task and task.simulator_kwargs: extra_args.extend(["--simulator-kwargs", _json.dumps(task.simulator_kwargs)]) + env_vars = env_manager.get_env_vars() + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=bridge_path, needs_display=env_manager.needs_display, xvfb_screen_config=env_manager.xvfb_screen_config, extra_args=extra_args, + extra_env=env_vars or None, ) runner.launch() sim.set_runner(runner) diff --git a/easi/simulators/coppeliasim/__init__.py b/easi/simulators/coppeliasim/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/coppeliasim/manifest.yaml b/easi/simulators/coppeliasim/manifest.yaml new file mode 100644 index 0000000..884d2f2 --- /dev/null +++ b/easi/simulators/coppeliasim/manifest.yaml @@ -0,0 +1,15 @@ +name: coppeliasim +display_name: "CoppeliaSim" +default_version: "v4_1_0" +versions: + v4_1_0: + description: "CoppeliaSim V4.1.0 (Pro) with PyRep — used by eb-manipulation" + simulator_class: "easi.simulators.coppeliasim.v4_1_0.simulator.CoppeliaSimSimulatorV410" + env_manager_class: "easi.simulators.coppeliasim.v4_1_0.env_manager.CoppeliaSimEnvManagerV410" + python_version: "3.10" + installation_kwargs: + binary_url: "https://downloads.coppeliarobotics.com/V4_1_0/CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" + binary_filename: "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" + binary_dir_name: "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" + pyrep_git_url: "git+https://github.com/stepjam/PyRep.git" + lua_addon_script: "simAddOnScript_PyRep.lua" diff --git a/easi/simulators/coppeliasim/v4_1_0/__init__.py b/easi/simulators/coppeliasim/v4_1_0/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/coppeliasim/v4_1_0/bridge.py b/easi/simulators/coppeliasim/v4_1_0/bridge.py new file mode 100644 index 0000000..d37902d --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/bridge.py @@ -0,0 +1,230 @@ +"""Smoke-test bridge for CoppeliaSim V4.1.0. + +This script runs inside the easi_coppeliasim_v4_1_0 conda environment. +It verifies PyRep + CoppeliaSim work by: +1. Launching PyRep with the task_design.ttt scene +2. Loading a Panda robot arm +3. Handling reset (return camera image) and step (advance sim) commands +4. Reporting success via IPC + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" + +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, + parse_action_from_command, +) +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + +# Default scene file (shipped with this simulator) +DEFAULT_TTT_FILE = str(Path(__file__).parent / "task_design.ttt") + + +class CoppeliaSimBridge: + """Smoke test bridge for CoppeliaSim V4.1.0 + PyRep. + + Loads PyRep, creates a Panda arm, captures images from the front camera. + Supports reset (arm to home pose) and step (advance simulation). + """ + + def __init__(self, workspace, simulator_kwargs=None): + self.workspace = Path(workspace) + self.simulator_kwargs = simulator_kwargs or {} + self.pyrep = None + self.robot_arm = None + self.gripper = None + self.camera = None + self.step_count = 0 + self.episode_output_dir = None + + def start(self): + """Initialize PyRep with CoppeliaSim and load Panda robot.""" + from pyrep import PyRep + from pyrep.robots.arms.panda import Panda + from pyrep.robots.end_effectors.panda_gripper import PandaGripper + + ttt_file = self.simulator_kwargs.get("ttt_file", DEFAULT_TTT_FILE) + headless = self.simulator_kwargs.get("headless", True) + + logger.info("Launching PyRep with scene: %s (headless=%s)", ttt_file, headless) + self.pyrep = PyRep() + self.pyrep.launch(ttt_file, headless=headless) + self.pyrep.start() + + # Load robot + self.robot_arm = Panda() + self.gripper = PandaGripper() + + # Get the front camera (defined in task_design.ttt) + from pyrep.objects.vision_sensor import VisionSensor + try: + self.camera = VisionSensor("cam_front") + except Exception: + logger.warning("cam_front not found, will generate blank images") + self.camera = None + + logger.info("CoppeliaSim bridge ready (Panda arm loaded)") + + def stop(self): + """Shut down PyRep and CoppeliaSim.""" + if self.pyrep is not None: + try: + self.pyrep.stop() + self.pyrep.shutdown() + except Exception: + pass + self.pyrep = None + + def reset(self, reset_config): + """Reset robot to home position, return camera image.""" + self.step_count = 0 + num_joints = len(self.robot_arm.get_joint_positions()) + self.robot_arm.set_joint_positions([0.0] * num_joints) + self.pyrep.step() + return self._make_observation_response() + + def step(self, action_name): + """Execute one step. For smoke test, just advance simulation.""" + self.step_count += 1 + + if action_name == "Stop": + return self._make_observation_response(done=True) + + self.pyrep.step() + + return self._make_observation_response( + info={ + "env_step": float(self.step_count), + "last_action_success": 1.0, + } + ) + + def _capture_image(self): + """Capture RGB image from front camera (or generate placeholder).""" + if self.camera is not None: + try: + image = self.camera.capture_rgb() + return (image * 255).astype(np.uint8) + except Exception as e: + logger.warning("Camera capture failed: %s", e) + return np.full((64, 64, 3), 128, dtype=np.uint8) + + def _make_observation_response(self, reward=0.0, done=False, info=None): + """Capture image, build IPC response.""" + from PIL import Image + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + rgb_path = save_dir / ("rgb_%04d.png" % self.step_count) + + image = self._capture_image() + Image.fromarray(image).save(str(rgb_path)) + + try: + ee_pos = self.robot_arm.get_tip().get_position() + ee_ori = self.robot_arm.get_tip().get_orientation() + pose = list(ee_pos) + list(ee_ori) + except Exception: + pose = [0.0] * 6 + + return make_observation_response( + rgb_path=str(rgb_path), + agent_pose=pose, + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=info or {}, + ) + + def run(self): + """Main IPC loop.""" + logger.info("CoppeliaSim bridge starting (workspace: %s)", self.workspace) + self.start() + write_status(self.workspace, ready=True) + + while True: + try: + command = poll_for_command(self.workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + reset_config = command.get("reset_config", {}) + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + self.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) + else: + self.episode_output_dir = None + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "step": + action = parse_action_from_command(command) + logger.trace("Step %d: action=%s", self.step_count + 1, action.action_name) + try: + response = self.step(action.action_name) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "close": + logger.info("Close command received") + self.stop() + write_response(self.workspace, {"status": "ok"}) + break + + else: + write_response( + self.workspace, + make_error_response("Unknown command: %s" % cmd_type), + ) + + +def main() -> None: + parser = argparse.ArgumentParser(description="CoppeliaSim V4.1.0 bridge") + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--data-dir", type=Path, default=None) + parser.add_argument("--simulator-kwargs", type=str, default=None) + args, _ = parser.parse_known_args() + + setup_logging("DEBUG") + + sim_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + bridge = CoppeliaSimBridge(workspace=args.workspace, simulator_kwargs=sim_kwargs) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/coppeliasim/v4_1_0/conda_env.yaml b/easi/simulators/coppeliasim/v4_1_0/conda_env.yaml new file mode 100644 index 0000000..540522c --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/conda_env.yaml @@ -0,0 +1,11 @@ +name: easi_coppeliasim_v4_1_0 +channels: + - conda-forge + - defaults +dependencies: + - python=3.10 + - fontconfig + - freetype + - libxkbcommon + - libxcb=1.17.0 + - qt=5.15 diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py new file mode 100644 index 0000000..b88f198 --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -0,0 +1,138 @@ +"""Environment manager for CoppeliaSim with PyRep. + +Handles: +1. Conda env creation (Python 3.10) +2. Pip deps via uv (requirements.txt) +3. CoppeliaSim binary download + extraction (post_install) +4. PyRep build with COPPELIASIM_ROOT set (post_install) +5. Lua addon script copy (post_install) +6. Runtime env vars for bridge subprocess +""" + +from __future__ import annotations + +import os +import shutil +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class CoppeliaSimEnvManagerV410(BaseEnvironmentManager): + """Environment manager for CoppeliaSim V4.1.0 (PyRep).""" + + @property + def simulator_name(self) -> str: + return "coppeliasim" + + @property + def version(self) -> str: + return "v4_1_0" + + @property + def needs_display(self) -> bool: + return True # CoppeliaSim needs X11/Xvfb + + @property + def xvfb_screen_config(self) -> str: + return "1280x720x24" + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb"] + + def get_validation_import(self) -> str: + return "from pyrep import PyRep; print('PyRep OK')" + + def get_env_vars(self) -> dict[str, str]: + """Return CoppeliaSim env vars for bridge subprocess.""" + binary_dir_name = self.installation_kwargs.get("binary_dir_name", "") + if not binary_dir_name: + return {} + t = self._get_template_variables() + coppeliasim_root = self._resolve_template( + "{extras_dir}/" + binary_dir_name, t + ) + # Include conda env lib dir so fontconfig/freetype/Qt deps resolve + conda_lib = self._resolve_template("{env_dir}/lib", t) + ld_path = f"{coppeliasim_root}:{conda_lib}" + env = { + "COPPELIASIM_ROOT": coppeliasim_root, + "LD_LIBRARY_PATH": ld_path, + "QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root, + } + # Force Mesa EGL vendor for Xvfb (NVIDIA EGL crashes Xvfb on some systems) + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return env + + def post_install(self, context: dict) -> None: + """Download CoppeliaSim, build PyRep, copy lua addon. + + All URLs and filenames come from self.installation_kwargs (set + by manifest.yaml). Order matters: + 1. Download + extract CoppeliaSim binary + 2. pip install PyRep (needs COPPELIASIM_ROOT at build time) + 3. Copy simAddOnScript_PyRep.lua into CoppeliaSim root + """ + extras_dir = Path(context["extras_dir"]) + env_vars = context["env_vars"] + python = self.get_python_executable() + + binary_url = self.installation_kwargs.get("binary_url") + binary_filename = self.installation_kwargs.get("binary_filename") + pyrep_git_url = self.installation_kwargs.get("pyrep_git_url") + lua_addon_script = self.installation_kwargs.get("lua_addon_script") + + # Step 1: Download + extract CoppeliaSim binary + if binary_url and binary_filename: + logger.info("Downloading CoppeliaSim from %s", binary_url) + self._download_and_extract( + url=binary_url, + filename=binary_filename, + dest_dir=extras_dir, + ) + + # Step 2: Create versioned symlinks (PyRep links against libcoppeliaSim.so.1) + if "COPPELIASIM_ROOT" in env_vars: + coppeliasim_root = Path(env_vars["COPPELIASIM_ROOT"]) + for lib_name in ["libcoppeliaSim.so", "libcoppeliaSimHeadless.so"]: + lib_path = coppeliasim_root / lib_name + symlink = coppeliasim_root / f"{lib_name}.1" + if lib_path.exists() and not symlink.exists(): + symlink.symlink_to(lib_path.name) + logger.info("Created symlink %s -> %s", symlink.name, lib_path.name) + + # Step 3: Build env dict with COPPELIASIM_ROOT for PyRep's native build + build_env = os.environ.copy() + build_env.update(env_vars) + + # Step 3: pip install PyRep (C++ extensions link against CoppeliaSim) + if pyrep_git_url: + logger.info("Installing PyRep from %s", pyrep_git_url) + self._run_command( + [python, "-m", "uv", "pip", "install", pyrep_git_url], + "pip install PyRep", + env=build_env, + ) + + # Step 4: Copy PyRep addon lua script into CoppeliaSim root + if lua_addon_script and "COPPELIASIM_ROOT" in env_vars: + coppeliasim_root = Path(env_vars["COPPELIASIM_ROOT"]) + lua_src = Path(__file__).parent / lua_addon_script + if lua_src.exists(): + logger.info("Copying %s to %s", lua_addon_script, coppeliasim_root) + shutil.copy(str(lua_src), str(coppeliasim_root / lua_addon_script)) + else: + logger.warning( + "Lua addon script not found at %s", lua_src + ) diff --git a/easi/simulators/coppeliasim/v4_1_0/requirements.txt b/easi/simulators/coppeliasim/v4_1_0/requirements.txt new file mode 100644 index 0000000..4f250b0 --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/requirements.txt @@ -0,0 +1,6 @@ +numpy>=1.24,<2.0 +Pillow>=10.0 +pyquaternion +natsort +scipy +opencv-python-headless diff --git a/easi/simulators/coppeliasim/v4_1_0/simAddOnScript_PyRep.lua b/easi/simulators/coppeliasim/v4_1_0/simAddOnScript_PyRep.lua new file mode 100755 index 0000000..24da8ef --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/simAddOnScript_PyRep.lua @@ -0,0 +1,542 @@ +-- Additional PyRep functionality. To be placed in the CoppeliaSim root directory. + +function sysCall_init() +end + +function sysCall_cleanup() +end + +function sysCall_addOnScriptSuspend() +end + +function sysCall_addOnScriptResume() +end + +function sysCall_nonSimulation() +end + +function sysCall_beforeMainScript() +end + +function sysCall_beforeInstanceSwitch() +end + +function sysCall_afterInstanceSwitch() +end + +function sysCall_beforeSimulation() +end + +function sysCall_afterSimulation() +end + +_getConfig=function(jh) + -- Returns the current robot configuration + local config={} + for i=1,#jh,1 do + config[i]=sim.getJointPosition(jh[i]) + end + return config +end + +_setConfig=function(jh, config) + -- Applies the specified configuration to the robot + if config then + for i=1,#jh,1 do + sim.setJointPosition(jh[i],config[i]) + end + end +end + +_getConfigDistance=function(jointHandles,config1,config2) + -- Returns the distance (in configuration space) between two configurations + local d=0 + for i=1,#jointHandles,1 do + -- TODO *metric[i] should be here to give a weight to each joint. + local dx=(config1[i]-config2[i])*1.0 + d=d+dx*dx + end + return math.sqrt(d) +end + +_sliceFromOffset=function(array, offset) + sliced = {} + for i=1,#array-offset,1 do + sliced[i] = array[i+offset] + end + return sliced +end + +_WriteCustomDataBlock=function(inInts,inFloats,inStrings,inBuffer) + local obj_handle = inInts[1] + local tag = inStrings[1] + local value = inStrings[2] + sim.writeCustomDataBlock(obj_handle, tag, value) + return {}, {}, {}, '' +end + + +_ReadCustomDataBlock=function(inInts,inFloats,inStrings,inBuffer) + local obj_handle = inInts[1] + local tag = inStrings[1] + local data=sim.readCustomDataBlock(obj_handle,tag) + + return {}, {}, {data}, '' +end + +_ReadCustomDataBlockTags=function(inInts,inFloats,inStrings,inBuffer) + local obj_handle = inInts[1] + local data=sim.readCustomDataBlockTags(obj_handle) + + return {}, {}, {data}, '' +end + +_exportMesh = function(inInts,inFloats,inStrings,inBuffer) + local shape_handles = inInts + local output_format = inStrings[1] + local output_path = inStrings[2] + local format_index = 0 + if output_format == 'text_stl' then + format_index = 3 + elseif output_format == 'binary_stl' then + format_index = 4 + elseif output_format == 'dae' then + format_index = 5 + elseif output_format == 'text_ply' then + format_index = 6 + elseif output_format == 'binary_ply' then + format_index = 7 + end + + local allVertices={} + local allIndices={} + for i=1,#shape_handles, 1 do + h = shape_handles[i] + vertices,indices=sim.getShapeMesh(h) + m=sim.getObjectMatrix(h,-1) + for i=1,#vertices/3,1 do + v={vertices[3*(i-1)+1],vertices[3*(i-1)+2],vertices[3*(i-1)+3]} + v=sim.multiplyVector(m,v) + vertices[3*(i-1)+1]=v[1] + vertices[3*(i-1)+2]=v[2] + vertices[3*(i-1)+3]=v[3] + end + table.insert(allVertices,vertices) + table.insert(allIndices,indices) + end + if (#allVertices>0) then + sim.exportMesh(format_index,output_path,0,1,allVertices,allIndices) + end + return {}, {}, {}, '' +end + +setConstraintsObject=function(inInts,inFloats,inStrings,inBuffer) + ConstraintObj_handle = inInts + Constraint_axis = inStrings + return {}, {}, {}, '' +end + +function stateValidation(state) + local tolerance = 0.8 + local res1 = 1 + local res2 = 1 + local pass = true + -- Read the current state: + local savedState=simOMPL.readState(task) + print('use constraint check') + -- Apply the provided state: + simOMPL.writeState(task,state) + if collisionPairs~=nil then + res1,_ = sim.checkCollision(ConstraintObj_handle[1], collisionPairs[1]) + res2,_ = sim.checkCollision(ConstraintObj_handle[1], collisionPairs[2]) + pass = (res1==1) and (res2==1) + end + local matrix = sim.getObjectMatrix(ConstraintObj_handle[1], -1) + if Constraint_axis[1]=='x' then + pass = (matrix[1]>tolerance) + elseif Constraint_axis[1]=='y' then + pass = (matrix[6]>tolerance) + elseif Constraint_axis[1]=='z' then + pass = (matrix[11]>tolerance) + end + simOMPL.writeState(task,savedState) + return pass +end + +setCheckObject=function(inInts,inFloats,inStrings,inBuffer) + GraspObj_handles = inInts + return {}, {}, {}, '' +end + +function stateCheckCollision(state) + local pass = true + -- Read the current state: + local savedState=simOMPL.readState(task) + + -- Apply the provided state: + simOMPL.writeState(task,state) + if collisionPairs~=nil then + for i=1,#GraspObj_handles,1 do + local res1,_ = sim.checkCollision(GraspObj_handles[i], collisionPairs[1]) + local res2,_ = sim.checkCollision(GraspObj_handles[i], collisionPairs[2]) + -- pass = pass and (res1==1) and (res2==1) + local result,distData,objectPair=sim.checkDistance(GraspObj_handles[i],collisionPairs[1], 0.0001) + local result2,distData,objectPair=sim.checkDistance(GraspObj_handles[i],collisionPairs[2], 0.0001) + pass = pass and (result==0 or res1==1) and (result2==0 or res2==1) + end + end + simOMPL.writeState(task,savedState) + return pass +end + +_findPath=function(goalConfigs,cnt,jointHandles,algorithm,collisionPairs) + -- Here we do path planning between the specified start and goal configurations. We run the search cnt times, + -- and return the shortest path, and its length + + local startConfig = _getConfig(jointHandles) + task=simOMPL.createTask('task') + simOMPL.setVerboseLevel(task, 0) + + alg = _getAlgorithm(algorithm) + + simOMPL.setAlgorithm(task,alg) + + local jSpaces={} + for i=1,#jointHandles,1 do + jh = jointHandles[i] + cyclic, interval = sim.getJointInterval(jh) + -- If there are huge intervals, then limit them + if interval[1] < -6.28 and interval[2] > 6.28 then + pos=sim.getJointPosition(jh) + interval[1] = -6.28 + interval[2] = 6.28 + end + local proj=i + if i>3 then proj=0 end + jSpaces[i]=simOMPL.createStateSpace('j_space'..i,simOMPL.StateSpaceType.joint_position,jh,{interval[1]},{interval[2]},proj) + end + + simOMPL.setStateSpace(task, jSpaces) + if collisionPairs ~= nil then + simOMPL.setCollisionPairs(task, collisionPairs) + if GraspObj_handles ~=nil then + if #GraspObj_handles~=0 then + simOMPL.setStateValidationCallback(task,'stateCheckCollision') + end + end + end + if ConstraintObj_handle ~= nil then + if #ConstraintObj_handle~=0 then + simOMPL.setStateValidationCallback(task,'stateValidation') + end + end + simOMPL.setStartState(task, startConfig) + simOMPL.setGoalState(task, goalConfigs[1]) + for i=2,#goalConfigs,1 do + simOMPL.addGoalState(task,goalConfigs[i]) + end + local path=nil + local l=999999999999 + for i=1,cnt,1 do + search_time = 4 + local res,_path=simOMPL.compute(task,search_time,-1,300) + + -- Path can sometimes touch on invalid state during simplifying + if res and _path then + local is_valid=true + local jhl=#jointHandles + local pc=#_path/jhl + for i=1,pc-1,1 do + local config={} + for j=1,jhl,1 do + config[j]=_path[(i-1)*jhl+j] + end + is_valid=simOMPL.isStateValid(task, config) + if not is_valid then + break + end + end + + if is_valid then + local _l=_getPathLength(_path, jointHandles) + if _lmatchingScore) then + s=1 + if (score<0) then s=-1 end + matchingScore=math.abs(score) + bestMatch={v[1]*s,v[2]*s,v[3]*s} + end + end + angle=math.atan2(bestMatch[2],bestMatch[1]) + m=sim.buildMatrix(p2,{0,0,angle}) + + table.insert(m,angle-math.pi/2) + + return {},m,{},'' +end + +getNonlinearPathMobile=function(inInts,inFloats,inStrings,inBuffer) + algorithm = inStrings[1] + robotHandle = inInts[1] + targetHandle = inInts[2] + collisionHandle=inInts[3] + ignoreCollisions=inInts[4] + bd=inFloats[1] + path_pts=inInts[5] + + collisionPairs={collisionHandle,sim.handle_all} + + if ignoreCollisions==1 then + collisionPairs=nil + end + + t=simOMPL.createTask('t') + simOMPL.setVerboseLevel(t, 0) + ss=simOMPL.createStateSpace('2d',simOMPL.StateSpaceType.dubins,robotHandle,{-bd,-bd},{bd,bd},1) + state_h = simOMPL.setStateSpace(t,{ss}) + simOMPL.setDubinsParams(ss,0.1,true) + simOMPL.setAlgorithm(t,_getAlgorithm(algorithm)) + + if collisionPairs ~= nil then + simOMPL.setCollisionPairs(t, collisionPairs) + end + + startpos=sim.getObjectPosition(robotHandle,-1) + startorient=sim.getObjectOrientation(robotHandle,-1) + startpose={startpos[1],startpos[2],startorient[3]} + + simOMPL.setStartState(t,startpose) + + goalpos=sim.getObjectPosition(targetHandle,-1) + goalorient=sim.getObjectOrientation(targetHandle,-1) + goalpose={goalpos[1],goalpos[2],goalorient[3]} + + simOMPL.setGoalState(t,goalpose) + + r,path=simOMPL.compute(t,4,-1,path_pts) + + simOMPL.destroyTask(t) + + return {},path,{},'' +end + +handleSpherical=function(inInts,inFloats,inStrings,inBuffer) + local depth_handle=inInts[1] + local rgb_handle=inInts[2] + local six_sensor_handles = {inInts[3], inInts[4], inInts[5], inInts[6], inInts[7], inInts[8]} + simVision.handleSpherical(rgb_handle, six_sensor_handles, 360, 180, depth_handle) + return {},{},{},'' +end \ No newline at end of file diff --git a/easi/simulators/coppeliasim/v4_1_0/simulator.py b/easi/simulators/coppeliasim/v4_1_0/simulator.py new file mode 100644 index 0000000..29de390 --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/simulator.py @@ -0,0 +1,22 @@ +"""CoppeliaSim V4.1.0 simulator entry point.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class CoppeliaSimSimulatorV410(BaseSimulator): + """CoppeliaSim V4.1.0 with PyRep for robotic manipulation.""" + + @property + def name(self) -> str: + return "coppeliasim" + + @property + def version(self) -> str: + return "v4_1_0" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/easi/simulators/coppeliasim/v4_1_0/task_design.ttt b/easi/simulators/coppeliasim/v4_1_0/task_design.ttt new file mode 100644 index 0000000000000000000000000000000000000000..bf691115522c5fb7ba0bbcdd374548d624a8a971 GIT binary patch literal 6967399 zcmeF43tW_C+W$w_C{5N@T@RRMY38P)siUpOa4Rh|&D=~8(L9hM3>gQFgC?2VqLph( zVxHFZlmZ#aAR~k13z>vcDkF_Bc)&D-QA~z|!2f$a�(?*4DoJf8+D9U6{jjxbOSA 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
x%YEqFmD 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ⅇ*4Pjy@V$|?YB*oBl?YfBz!MtVotjf{2OtugxOc zMHkVRwES?OaqZz&ez`ZgZgF$OoI`g-%pUh@1O)>}v@RHV>uukh(mCyi7yfVK^1gn~ z_#yg}z#bH1y&F!`#7wl9);DYY;ibh?IB_`?4ZtCr4@Rl~nLQ>L+H>D=i~;&vjs)A! zFFOm6a&~SEJtew_2Q^coF~`IaT9csmY01GOGbe_Y{Q`Hojw9}&`+Y3(vH|J7ko-M z#R)@XZROTULJj>VEQQKUSY|k1$!F0}j~WObsP8C^Wkt(Z=$AV;<$+pFdGA{_#7~mr z>VA(73Zr@{-X$nfLZ-Wy=`VbW#l>NLb<0-K=t$S4DfGqYqnVJHhTE;=> zge_}1GXSnb?djrZc+eZG1MAUMDl^wo(<`0|VJCzt95H37e4L&Ua_93v1<&x)no1N6 zfz%P~Qhfl3X<^9iW8)6WM3dazWcwhi>Vg{v< zoW~qN`!zZ+Pz4#cKgM@d1x?9@EABj1R0#)h=k(C%WfHW}nBpndDGQCX?0+*%Vwi!6yfNYg>^;%?DEaHe+PT{l3t?@3rJ*G;XY}3<$+ocQ9)IR|g*N`&&{L@#DhP z<_OoADyoCB=)SJ(dnyw;qs!;4Zd^C)9A(Cr%4>vDvCK>N%HRkIKsz-@eM zYl&_Y6P(yk&u>owDPNwI0_M6RlY%Rz;3z-w!jh6n6cAYyFv<7(M((}li|nY}v*Glj zElsny(KY>j#J6nzQEjyTJt~Ue!KmKW;;`CRBh<%87Q>qHseB8J>XDH<94T8Q`QRFT z8%-g9=z@(MS@NF|@$swnP)iQFxUFO`kSh(&z}E!)LXRZbt$It^7z4m0Mpa6-zCdfw zHW<6hZR82j`ammtX*|>$(D>u;_M(oCuTBOoJ_dY@u~99YYT`v54jxSETj>nd8>DH} zhH*sEOcd;p-#2(Vd7#)FVKD)4htJ2_;%lqYdsMWV7WWW!?ly7xx=^(I#NtvaQK82A zL)vsu)%k~nCnwqF10@Q6xh_i#`e^hPoT@TfK&;5#21JtB_3nqy`^W1CLkn z>Az)R?EmZa1P<+SnghNn=uCP7S_nhPw^mSmNiRg5CCB7=mPQ^WQV5d0o2hLl+G0?S zSO4cK6_Q~)O2KT?BcLNrb) z;DYS zHZ=Z2LL|{(_P8ZJ*O;FC$et*lYuxL_-k9CRhp+#+aqXphi7>s

YZcU9(ae`itw* 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%0Dc*V<(^~Z9FrLIB;^`N4 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

gfytHUo$(pN8T^Y}pLpSyDt)?mt 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%0AwD9bwJ}%lAhv@4BbWBKKFmO>CD>&pU!M;+s&- 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 )L{)XlQ4)}KU@T0O%Ep5s*bu5+# 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≪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%0AZnUyV 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

  • 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�WZBTW?% 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

    #Umai@Gv|DfB=qQ0W_(nC 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%0Ap*G^xJ{A6^rq**) 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

    v95_McVri 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�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

    fvEaPM@5Jl@0=nm9IW?Hy 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%0DcOw=|+xAx0g9qr_P1#7#Au|qhMc#sPF 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

      `GDT?G|&hRb#%i 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

      i|#jdeokq~!n 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 z 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

      V~%T!5KROZGz)g7yXrk${9k@#Rvul-Vdm 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 z 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

      ?&sFmtV^wV7Pnq(q=9HU8V22<^sgDlqRaj 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

      +2@k8U8vuB4cX;(kBm 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%0ACZ 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

      20zj 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

      plcQo-(ELqL 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%0At478qg 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 z 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

      hQ`dKm_o^887v$79YG2 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 z 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 AZ$ zgyKj;(cbtE5KIV65OTEpZ)lRxfh`9f*RnL@Qia)=_-5a%uN}dnX_EMTh!zE~RAWJY z@=f!ibLOV+%tI1P*BMrXG4GqeXU<3P(UVIbeW89E#FBzb-(D#4U0?#mk!`htWs!ol ze^L)fExh3Gyd#^Wi-1q2GT?|b>uLMhd3UGvkCumWDOuRXRy4fT&f zffu{WFsGh`90QpRNr+eM`F%1KM^03#$5wWZMR3OsVlo0p?=q_W5&})6N6)NdL_3K- zTFRrEFBm|QbsKJc`BBXi3m+Q=BnH|?UnQ;%*H@Puh{E5vHNB(?Jr8f@&SP&vn(gju zk4DGTgirYQapytchNwo=PSr%G7>hVG!1(&FCeT94*W%A zC^GTmCOQch22akYhZ1VJ>8|t569lK0y|sF;h@)4{OJ2GhIf+^iE0^V;$t{tyxR#urH9*CWN6dZ=VBhTz zPuZdT`Dt~~XZ$@f`YrKH{CZ}e4E%^>H$wM_@K<#4#=Ro{Wg>~`2WIuj?6XrI;&$8r zotky`a5sq=`)!ji_6=m00F>Pvj+;FdQ^i&Q2F}|74i(xj1>>7o{gB2i?NqD{X&gjw zFWA*jbkzsGh3z`j@3(+LB@zEkC~ui4LD5DoIIk8qhZ`k;wS59%wWs` z(UNb5`6Ik3CLYh!!GiZdU_6@Hov&~1^|gMF^vpU64lK6D{^jmj+#KOEUf|9w4W_j$uG$96q*^9ZHR zj9z26kpre;CstYS&Ac8JG0J!?jELk5H(t4B-HsA7*i%CJBr_)LU^Id~C_8L(v~m}L zL`5rj?e3@#1L*h{e8*^sG%bI#^1gFH1_P&mi%9qU>+g|aj2-pfI#MIsU;vHelo63O zgk2bGB<3JZnp#aog}z16CLZS`j}&6Wt5?Ow3X48%sWo8mOeZOb^O&p~`t1PD$i2px zV4p<2tLBZipF=#B_VSpRKTEMafBWO@gtFKaJ#Xn@Ck$bB!jt(6(5?710S)UM#6He+ z#&9R50_Rj&-xLp==@P;KXBZC>LCX4l=T41)v)o|#H*+mCg!SXrw zpIXr-s_nV249OMI*C4(|Y+$;*L*8~PhI}l!Q zkR?E1T7yL&&;_qW(@CGjc0#lvO{ z4Sc30Pg|o9w8m;`-G+++{Q`#3PCZn5BAfb?Vs1R*62x^QpQOvQd=&0H& zvt@64SVGPR97o)&nNdYy=A3Ndq)iOdD@HIV<`gZrKI%gQ*EEy6?Oo1+IUrTR3O@TU z^3207&WB+>rsKW>B@U;4$>&mnV<0%9 zoQ`VZ4*Gxb0`{PZDPRDVW=RLkm{n14VF0hh4O8(0{js~gW_~#D1pg5E7x{fp8nuE* z9RFL#0g`{QjN=i}agl3BeMl&%j-$6drba=?5ho@(7o#CTHa>=TVU{Ese!{GeFz_cS zeh|Krxp2XaDEgQQm2~1B$u%1)cgvsw^G*-{yd{1EMqcUEux4R(`Lc4S2YHEyFp<0T znS1W(m#6-`4vQ!q_qBfQT~ph;;!(){XAv6sz(v&Yj_vW0f>$tE!=AS2DKQwEWGkur zCt>~o3RLLm%85-rEPvU1;eny^!F5T)p;hACB8Tyq+zV4otTVizQbWcV;p_SGeB8S9 z$b51t-i*7otH;X!*$s(R@85=)vibtYKbVUacOl(hIYra_K%hNSu z7?7)W78O2=>g3_`oi7uxd~~kWXHc?Dzr{E8bsI13w3S(r(W4+@6|Bf~Ul6(}zE$`8 z_LfjUCmkw_Q3Czh3bJNd4C2y8RC8=ts3@{lwl*>7OZJ51w^}K`B_#EoU)y(n<8N&o zu6Qw-8QR(pugqadY>q)RNNi@3knd5!Sw)yl2WyVdThzi&Yt*=Aq_H|hWA*j)&kg+J zpJCts(ZSL17XBLZ8`z`iazAeg-oJHayZXKlHS&?p+n#lb#U;N`IYDF~o7#GeYD@$Ny!Ilb(Nl z|5668y2{4Ng(E-FYO;0lzhHx+?NOhlbITKu!%P$%5O>6fpaFq*0hQo$kkd!;Sd!@^ zia^Mpf-R9Qnz(Vvf^Y(Y^gQivo^&-|R3tc;1@%>J*UUhtlN4J&kCre&V&Afh! zzIv+)xY5d91}_}Phs5;fIngmB^^e>S1cP2(m0$dOYu5oX4GMV@4tEPX9K3VjfBpf{ z^aRqn#gzsLG;_&+Lgx-4D~ckarsTu>Y1afd~F3vQsS_~_Rpd6_|YkR5!egV^jXmZ^S?zr{BGM$jg*RB$Bqb*<$e{m@Nu^Q3ZkU|nqOJ3|*VUh2R0 zY2{D1)tS*QhQ5Z96?VOjYu~N}LmDyMpMM07Ox|@FL@*BjcEe{?;ebac`SZJ(BfN%- zsG+cbp8Va1tB3BEA)FEi+;H)6gtpJ#oOwO^ zjbhV67$GZSyzcvJgVZ$!H}I#o{7ZV^oij&~nO$=`dUTMV-9g@MS=G>J!eg_uO(-6O zwso?+IgxoBG4PtbnldlE%60vU6Gz}^7J(ilL6yLc^l(5AnmwK{&p+0Jx{h{Ua^&!Q zONuj)1r2cYA?5lVEEZTtYN>Ps)tg@ng$E<`pz?Mo+<6CH@5wuyzHTn$9ebR=hv$C} zFU0ZnEhHeb@u!a~drX1Q#KC8Z1O5pdTXl24?jzHLk%L=@+B;I$3FZzt%=OwQm(IrZ z@iDE>8N8?7gnu)(c`}z4f$8LlipbZ)>pk z#3YX#gvrN&H%bmb0)}N{t5G?#5Dmi047L4d!3Xo`hs~A*Uh|Ola&jtcF7ksc*Yt=x zGTz13(PjuGIcQ4$Jmg{(5?~eLcQ?^ zbSXuNjAl6QZrqi%nGRlZmUUu}jt*Y*U~c?cD!D@o14dk8*m7a99NGk8I^k?ff!0GS ztCnYv&GP_Wu)+s`10M#k1AU|9gAqPwu9zJRunKitJZjWCN#T7#lm%$H8Sw7QvP{Na z7k$CGq=n4TYuE&_EU+|-zztaVG7);u15z}pw(z@%1j@)SRz)B9->FJf*KB#M6b+nSiCZ`EHZ=Hf#m{#O907- zA4O#j%xE_=Sx6ZuV7*zqc?V`^!yaR8+*MATIa-I2*nTno$woq4)`ybz{`pgO_m~lwC+pci8 zm6}C7Nx!Z&pGFQKKFBP_hSCP*Xz7` zedZ(PF6VR3bDsC}exA~hw5nbyXhDPz$7K!Uy4>k z{6X*ZP({b|wigP4xl=MN_99Y`mQrQ6U5M_IQYxydgp))FC9();loxfqn=lhO&J`13 z*zLV)NMjahYDZtEoe=>Bc4Po2SOGBDwz%lif ze5<>k1ZW$-jjr<@J6xXS+6x)&nCddQ}jow zlV0hVzd{#=oj+PP*8e4oopB?Ks^rQpSmXtlfGCk_Ezu-8Q!LJ- z$DF+ZyC7g{sIRTP4xFzUZePAQC7;?q6R6E@N7SHSaj|9owudH_TfoZ`EuZrm2lreLkfqpNtY2+HyBUI%o_HitC5<(Hun7APE71V+?#tGKO zBdt4;VS%6D`(o6t_pRNaf-$$1?;I=9@B-ay>btfTNM&Trq;86Uw+KPnB5eX!mgYJs z6_wYIq)qT&0^K|J8#CO%e+Mg;yApVezt9g?TA=oB2 zo5r}Ve*EdIqwg3+*lQ7s2ok+WE{M|^y1lUKU zJK$&~={bYC3=ENu{RNg16&)~S&2cM%|l*81*f2DkhX0ehufs zxbGI0?}H=^Y9&2d@cNd8n6AmfZdTfJYy8JxeCI*rYZnjEjG*%ZHX=bF7^yEoxA1mD zCXf=?ZIaow(6T1?E;J#bOesQy)wpDFF=7*b=?unVvEL!`WZYky8)_v2Hx=n%n9Cfw zI!oAiMckiZVoA$Bs>TbBUqeBQQ)_Wsj^M$>r@~jf$Upl&h!tj`(lf2B- zGNvkKpqPsbGnEV{HH?d9D*Rx}B0w&!vZ?uOAR{8lVERAqzZneP1GTXzY^2%J%fs$K zfd*UhxBG`6$E3&8cXbOb-HI%#_>p0Oq%+1HH2Xc zZJ$`gX#qetfBV*D>n~h`{l|}KANq$p!-pkEW|7HpA79_s+YsH8mp|IgtkXT!ko=@E z|KIxZPd;nb@X-6h)4k6>-S|-R>a$m=r-8eE==Jz?+o{VwyVY)pM?{>w-f13(b2>&M z6W|bcA{CJ6i>wiU2C0M3*OLx(;xt8Btj@5gGoD>%Y*9Di0qnq$=)gi9(CXDbB0GDgMbNc=)+`|#TKF{Pc3q6d3D zF^~AtNm=%S!`-F3&}tKJ^a5htMo|irldrMR0xqMtrI>H{+W~iXdK9L0i*ecVakoix zfGrDm--6?cXa#{zwynFVh@xE2Ou*6#VV#Kr_iDA2;1cn(<8Q8A( zo!e<-gj00DKWjK_4X&GPB#@tR*|0dbn{VN84^wpzFK5YSPbe}wxj1V)+)#o=JEoOy z2KjhPyk>~TUuGl8fJOo^7heRb#xsamf-L^Hwpvr>ZR+*{@isEdS9m!ItL6zv1b(fj z=)1=t1nUu6v2sIpQ?R8kC3QJo7t}6@T+q23quY8?Lu)j!;=8gXA~0i%R^4Mr&57de zTs~@z!`qC$g!c0bcpD-U$VrH!O?6)+*plNVuctw+-0<*yw5y*z?1V@+jNbV~E`ra2 zus#nujl_VSg!>Aqo`f`pkwM5Ffu024oOs~xa!L~61^yN?bEln2fTRRt+FYDN5^9V~ zYC6dtm=G9q73{z*;Q>*tX-a)Tt@ET&^;d4@etPPg?ik`}cxl%W*uvld$WDS^{mB#I ze#7Q>g#9@oj{f6wC`5pL^nU*9onEG)$9TQ#K2P7Ui@q;>1@+M`6Jb z{@CM2w07+1AvoV~fL!>&bGkDxR;a+k3uj+yjD!UdcxzIXXrQnos_@V{&!lRO=&o)> zDm=~;9>Gxw`MPWp$fz{PE-y&m)giBY^qDk8qMIUvZ4lTa~i-5ON%NJ2$# zP{HtSJ$#B!udcw7qs|GiWOL+6iEUbI6g59e{x$&VG5wco3D5JQwu{|_A(Uz8GPhRV z_@ObY%S%cFkc+h!otz;`CF$cLrS~34x`nD)$#V>f32X(%ZIN1uP5^wZSR0|4zFeYl zd4wA-*w`^r1O6dwm`2;N;XXG3gD#;7vuxdJCc402ijyx&oIw;Q+SWa{$88=cebOhy zD^Ge1@VsbM1wqO^OPGa{HWlawcIz4DtHdi^@#&0l9Z@au7$qNV&sMdaS?G7_(~T!J zuin*{uJ-Y&Nid*l?ewsjPyG&lN`|(is?Do=q6&}f0@Xx!+75zj2jXUq|J9NF-;RJ#5w$B}w9F zFzVv(ZixDRVErQe!Zl+@*MKy{g=G!YJ>Sh`!QhXEn)^Y5gMEO;5N^qUZ0p0iNw+?- z(wx{(LEx<*xO_(bTAR#&5xEIk4SJDZXzQ+EV#;cVQ4+yp6|6tqzfkZgI{`j_nlW+ymKym1qxzEdTaCM};iPMx_S-bnk4ESxa)t<*Ev`)O$A+o8roz>oSad~P<8O3vH zyL%CbU82iEpWBV^#LJgIOD2o-kApLTVz~BgUnSLq?(SM &nQP=R)Oj0;0a8#^?>S=3Aw95`qFU!NZGg!-DVEx&@5m|bF-(|t7` zQki~E)Ovy^eY(x`i1=eB-c!gls2uRyJFC5qPiUW*ZbxoU@d_$`zLwwv^j*ZH zTbGIC+Vb@zTv!bpnbH+x1Ofy>hs8SUA3AKRkL+7!npnP{Uyuwn_xV^3u4gSy`~8x1 zU|o%N$kGmxIh(h)(@_Iqhlh@S0nkR!O-Miq;RB&GPqSVl_Px=Cq??I>zWSf_?H~j0 zSCB$9b%j*WR>f4$$QxStL#gJTm2OEl@y+k=jg+lzzVIfKOe{=xe0 z;n)kM-?!i+_{t?1w6~}XwgIcx2L~!(ldGRz0+94dB6RzuV(L*>kj@RcC8iOQJ@DTsPmx#tYya-U#rpI}sfH8+}NfrNum z8C)8Syhp98b!lCZ*AXls;pW(FdmoL6+lmYWdbfUW6Jq5cbR1!wlduzET6igO4yQ-w zhz|0_6G^h_l1!DoA9Yhc>L$Nb*;}Nugbe}~h`m0>R0NZgv>ynT0imu<^IL^=^ToV1 zzOUVmv~gNxRV4wfS;G(qt;w!PTJQx0SElvGr=V$$R&SCrZ+3ZR2M70Y1vTGg*R)*W z-imbiQKUo;Uq%6g{kr%Bk%0ve&dcjbzZZGwPik5>QH~pZqjKjxZ&D-@JjzvW_qIP( zd}J9$g^?-i@|#^x`-wK*7b_QCGfBn9z5vDs8);-{}ze&5o1Q^Vbp+G9^y7F-EEpX{sSRu7Av zr@q>A>*L(YD|5w{&lat0I(9O1{f9pHaWDXP^+V0l)b)RrOO!_i+Y44Vj=4tFOvWV^ zy71$OE>fbC;(g#s-mTHc=4WwOkW>!s6rDjvKOd>&Zk39bAAr2}XyNyDl>1~DI2e0_sZ}*m-r~i0u(YC`T+`JjyKfAl7O~^Dq zxPiG0_{{+|52n21$ZP?Ik=-Rpe}Py&l)}0OTN?IoWDvH~nS>cVuO6Nzu|+LU4wAd|^xuwf*x)WLQ)j*-Jq6k-bPd zeR429b7g~ddL`|WXAScXr!r@sWexL={hl1W-oH;nJ1w`Lq8eH*TQzF|d1ZK=ViJsA z;(=H|T~-;Crg2>|mNGXwGNNBZhYqlt;fJ;P!`ryTuWk@`} zp5gk*DEoffWy5e;wPkv5IuD|uvwNLIEfItNsRC;a?mEV}SFSm%CvVwXNQ#Nk6jn&M%qc8<8;y=G}pUcE+AHO|_|l{V16>1DUR zI-z};PiMhxau6PZO%8o=y?tV5a!^jN?lrrVI{ncO19rSa)4!=MfOIU$f&3F#n*M(i z37)-l%w*}kUHf~8rS`J(DwncSP-{@*$uywz!ds44AU2yqw$RzIac}dqd7k@{DTpxr! z2F~7n^*VymZ<1!nrJ`m?>Ezigae92u(!ypYrx!lI-$wLk_yq3k$#aYVjp6Ds7O&$y z4vL~n%4jfhBj2EJ_zr(^oWPf6R&3#w${l3!Heof*>%z!0`PGJT{Q8Vb$)z1)OEQSV z4Q!e!_LI?$^n*jS0g4{rfx-q--N7!wdV7qns}XaN1AY8{sQyj&Z<%^Yp&*Bbze*rz z{vn-vq-EvhzHJuW{5}i)r&+%Jw)HGtXc=>4YUT#r*VN1VmCz@AQJWrpQpJ0-*NPK^@Z`9oX~8KNAaZPJGk63$?1tpW|lDgeLmdmJbZwk zj7UD|6f`}1eU0Iba^G#$CrNVgv5pyjA~!#t66B8E;Z*J_hw>+fGDiH>F zZY!_bR_<*2==q4e^G-<%vICN1y9PNARL}X{?DF~GDtlrYnuL!@lMp~Z&)*k9VDzfF z6~i)3s%0SQUeA6LAZcP|#Y-25QIZy zZ@u`ZIOPBQqSbJ5Xv0M<$mbRZ*ISRsyJwyl9OkbXs~ixj)m3ly0DRk!1AV+{nY07E zuD|PaudvD4q?N(sK;PD%(bCAXPjV#Ll4rC@`{9L*He>T_t!K0DG0jIb?1Cptn2UUw zBRuZ8;via>Q1`DzS4Wb5`Tg9K(Yb^2eRbH@)I{hW!R5~KG~blLh3{ST35nt~appTn zUbkH!nm2ASlW{3nvvJ9FFta4-yaRsfZ&5?S6Wkl@gU#UjOY>@$BAcEtl_?Htdr}Rx zq;9tjnBS@!6K6be+0);|r^l}P;l?ooz*Q?h<}tN})0FV6-Q;%u6P08bZ&^um)iB3~ zO{bULG^0K3jJ7CW=r*Qg?FM3U_~qlsvHqCEa01VmzsbnE_k`&^pbJ5s@7Fj$&K!*~ zgB2Dpwc0L8>KmR&{;7u!BwM25cAa9ri`dN<#=d`R#@~vp`|;q1Da*LakN1AhbPkJO zht@~^?t2tK#=JEc^3d(ih>yYrQc&2FeF-bm-9;!pU7acK_N zjXZABQCp;)h1q^oE3G_5%ruX9D5+P?whAMKOLO8QHK)mXWrKZsoUQSjYeD{ae`dJJUsh>xqFiSj&t3J+fo;}a<2GMfoeuN z{R_D^@!dtRTek>3bVCM=x22tO)EMa}O+}Lcq&O}s?}p@ir@IFX|F;jX#km^eWF5%~lw4sjJ@8 z;E8g>s$p|Iy1X2MG`B;pbHe^z8E>85=xA7TsOjI8P5ZxoIVQ~|)4BTf$ ziPVZ&jDs6xIc_Ehx->cCwb~PA_@{V z7eTTlCa359{PBVJEj`PbE7T1$)FJoY@8aB-EPq)tm%lu=DlW#V*jp0~G-il1dDVFW zSbFrhy584rb~UM9_dS{-E#Rt>y;&o)OQ`$wHPnue=&dcUyiQ}GFJfgiZ__Qx$-JBC zizNB2i>AAUk0g<3kQ{D~gRi*g86XRR#HFA_==!74edpz#d8BCsnFy#7-Z6QxEr@MH zl0aJiXM%G%x}`}k5u8%0GHk1eBF@so6t*5BG1P(=0#_xHo5;8pQTKiAHCmQwT>E#W z+2s{KZA%X<3#}tIsnQ1-*}wvK;m+qy;$&`49<|`b*~4j&Ug=wS-A82RYZIC38RB*r z+GU$t`S7sh2bM{1iP_Mkq9Lcy;0JVxd9^C!8Fm91(|}XOfw#h%#mzwSo8)0VOxojqND(d0`1 zegZRd=smJ5kpTqh2Q@S2W`aR`9oxmHPGlm7kj`nC!$N{l*Uh- zuEhtFgSpS9MF(*3V3c!K_d#K7qAgAL;jW{<0MakifwiX+5m zv&$E4Tozu+dw?%3I}l&mk4#HJ-_+o|2lI0JB($ZSFkugu&49Ndsp!Hd-$g~Nq?TXc zh#o@@W;iU@&sIXi{H$AWoNDgMC(9s>Wb!hIz2#(7yd#xKDysCJffU_^l#1O<|$N|$FPZ2x#qs-zZ- z$JByFRm!k~GtI*h5F)aob$DhCp&5yYJWI=tQhhg~_IKPxCw!%*;jrT#7k<`5w4J)) zKLa3#H-M6x8Wu}(kj?7(LOS}#ur2)!p{72)&qZxS^80BiO?@LjXGFqI8GjA$T=HR| zix>T9KyV?ET>o%!7e92ap~Vt5C+R5;G)11d{IWIcx`;-Geglw*u4GLA&u8b2XFxiy zy3)jKEVV5K73h9(CK7s@&r?8e0P^lsH-KF@V60+rjZ;{sDi$8 z$=16E0K%7*t3Jwm9yYYF*Itd9E1^K>-HL} zcctMtW4ji@;9*$Kx639FBo{!?4e)ba+osrOUDUNaECdTL&cgrxKRF2rDum#69?}l# zj1k*4&6Szj?IO!*!W5!aH_@>SZ6UC}80(|mZhobup7NJT*ss}JJx=Q zUm&a}Xo!|*Ojw~_1?g1$I{e&6@eZ~ZSqfqodKcqw(fW`}m8RdZmTUZC42CkN8bkwCL8Tx~Oge zectJ4&i>=QwN8ZN!Kk`DX6gsLEg8~3ZtgLl&7LqS(nK&Yj@0Yw)!@QnbP(?wg<(oV zvxza)p#*>7X0XGn)?sym`$2q3M z#9NV#Er!7wsiACUjByNFzu9^(H~|RPR6>Q2-@pmBpmhRzZZ2(rhmE%~bgE+7LV%Nb zz)0v<2~>KKV`amSUpbR@Hb%iNrc;8?h9Nahz{wg(l{huaMb#kU$U@*A>G*I%!h=pF zF~&tAY0PqgC`^>G$W15ioJI@`*kJ9_G&baE{K&RB#19XRf+>(TOy@#6V)SM>iBAB6 zw=jEv=jnY55EBVUpZ6W(nmWeiY!1JNkn+U9_WlZ@E=3MRGjRvsyvSfE;hMOQ3P^qU zV$YrX7rU)1Ty?K-&36T1dtX0o?nU%>v%{JO1i>Fqyd-`hBcG-&Na{^8Uww2)>L?t_ z1=SZ^Qtx-&q*o;>e%EbbY_3bf_12HbL;A0$(;M$761QBpa8hN)OY|x{8IcEwwIG{O z(r^&uze~Eu^SzjmBI7(o)E(r2{|6*_;-nw3`5xDw*c?@7ZoqN2n^B-;-oCKZ7tDD0 z&jBPa`j((GQ3fl>Q-w2OP#H9&q09nm$LD63ee8GDIFt}4_!XcV`7K9ynMM;yqn|H6 za6bzIL%j0sTDP!S5Q0w1`C5Q4BxN3iZOH3RGFJQk9=4uex{`)B+b`tP)9Bqq#4szk zq0_KBp%agzIeMCh*Svd(il}BIkW!lmzJsuaD1qib)ihLcG`bhAFhl7}Rx9>KN6mFr zKdf=qAiX;Gd*}@6<$nCDc4z1Wion%j^!Dsd%?S&tkC&`s5P-CiUI_L`>7~tcQ-4Ed*!bAQ<=6Z}NOA8v^MG)`?; zNNr*mK=T<5pYtzR3;P)j-(evPN|OR+ghxt9wpMOnBHlVqA+{~7W|)+_;ulN+e9Kj`a;OjIbA(c(5>n(Tz z;}iUE*%QWMV??qXC^NuK(`}n1$dKMxQ4$uaDAmyI;1L{tFa~)5WbT{01&Vx-B;-91 zT!V}RN~f;_Wdo#Wz%A}CQ}l_JuqF{G?$OEVg)w8~gVrT<5H~6&B9!@4*p~>CYxiI6 zc8sudk9H~Z>4{#N-*nGQ)acpqklX&5+Xi@RL#-2;1NS23{8d-aI~~j`HPs##dZmPY z`qeGf$G(@oi8Re&mYMibqC$*v=uc(ec zQbrgljimAkDzC5xg2_BO`UaMEa!wOd&b;af;E=-v{5|$&C|iVLrPcArIh*5h0=DM_ z97X3k{@+~Zx)eLj-S$fwg5n%_LWIVniG?_kA@#^c19YCm350!e(nnJncgO777rJ(s z&CW~VZQhpA+--O}a{hdCkHFATQmcS7chc+cKl}UB5D^d4*+;c+JR^bfp)xE$q+{lX zADN86k*)P1j);~dFmfo~+s^s1vKEi;1e1e7{?5wec zRZ8IM6+fby@t@W}R-^V$+#Z+@UYfNV^1L+HfXCo7^t-|$y`Ynx?B8wf)SBKY81#`G zcB`0UlVCN&B@dp(2Ndq)iwb~ae9tX~t%w6i(#bbkbN$Oly&jplK|>aeOWQu(%16U| z#kb$q`Zonv+HGixJe41TX2r za{?s`-j}pp#~3F7P($b?C{6LlYLL;Aw@;Ykw2c*EDx^k`yTurP%s2HUJ&4E%fL*+( z%R(dw5}J&m@Il1UY*2|b`j95QQeE=YXws9$G#K4^CS1Qg6ZE(!wS#o?NVC!mQwM~8 zI5rwhKHGyzD>oE0ZOE>(vU$As^#ejb2a0V!+?5xv zu7`MZd1lgf2@Q0R@UX;2Ab@w|lAPr3c$xYlg7M&|!pwomh;-7MMihCXJ&4gd;_ZmB z(l52!x?k^gv2^33o2o9z&m%5;*T&~gAw|cRS;~0|%NIW`vmWvKo>L;;uH-jL87eCN zCg+1<^c zB>+85+#lAdkhuhnJ^14JRtTYM_LO{~N}84u*6^!uYOL>|C-yKpgtDwV95T#h zlSwibZP8j!3QHeoGV`33XeuMF>Feq{6HZ8`u!G+_p!X1zp8SXz$0Go0G)H*ZsSAl| z(dI{pY2oeP7_r2j0PKmRW?OKf4IDl89bYnX(zPL%9gp0+4KI~G@{J4e*&fyH)NK!{ zpIFI*hW)9owL-aNSpamWUlFECqEz>Y;aN%ul%xR#6Z^!6E&kKnA2R7!y3vG=EO!-Y zqXjZ)(dB*(*9E(8&(f!dAmCXLw;*7!y9nUtw_N^apx^RO7+S-6f3M1;!gy$-H=_P8 z&_>I=1iAv+g|8KfIqB>f_k-Ojl3nZjn;X@vLKyTFe+8-mal2mnnVR*g9bW2#^3^K8 z3)C!5dh0J|6>{2K$k}G})4qYwzIPpCYx}0a-<&&G^XFE<@*wQ75c0#+C;vtpEsuNJ zzIPX`|K8%$%@E3_Gyzi!d{{+E2nL7)Z@Q%LaTjH+qpv(9BNJoDk=ckBtme5rbw`BZ@IqyuSWZ{n!URJ&S~1eGTuH7T)@9`O1Mk8YucWb z$R{Yth$O+19pWJK;1X~_{1PZjDQYz1aVyFAyey{vpj+&&%dt9?UqY3lHzqM~iCjU4 z6q2UXWH4*Bx6YxbBSMa5jMyRxnW>;dCPTh2m6huq=$D#y6}okEVB8 znLkQBp?FLUtp~-_B*h1;GO5-t+8+20l_I81`42syXhXo-)O`rh)x@C=;1toG35EIl zaY53bWe@rRQewI%H0lXEPd85Vd<{p6moP^08#ZIHJ2{8~Ytl3$$GwtV#wV(@Zl&bF-S z`r=f3;@}}y=K*#2^x;RQE*UbZ_=s7>5z{S&ZNWNIcWF{Wq-Jo<*8r5T{?MbTD2QyX zofiA~2r2O`u|L&pLtvT?0i!FFdI)aM=&v&-uf!v-xc1%92m2R?sXPYcpm-Eo zOY1KD+Ouu<+xVQV(zsT)_qs}OJ#F?9xSKIp-k%^rDD+D3}mYVb+il}L@)XILb2NbdpUr$-;(1B3pKDAiZ zcmxl&2g-wIh&e;gNUHXbJTH+RN`WApoFQJjh@5hus6jI*msrkB^O}>=bRA{4El(G| zzo<{!V2pPh-=vfAI%Gh{9`24)6FDshPecoFv{=Y$@ih9u-Ym$b-I6A4A9@^u(OR2? zx6Vz+t~KtJtv=NIaHY^by=Jdr!J!8K@`=dqqcH-opP+Q-mndrCx*mb10#`VinHu!C z4>=mK)Bwj^f9Z&9!L*!XazC3xYGff-#!{D_vfv3P?hs;VNoZ{%(me`Fxu{w7AyEh2 zG*XuPSYPW2-n0l6O)ZJM@T&y5>zX_L>tglX~8tFo$mbe2h(L}mII`V2dW!zAlctl zo@x_VPx#3THkgRERyLOL>khsh7Z|_JAo-Fx8Vw(O)4Ryaa0?vQam(L&-$li*J8Pce z;EFEQG`ET?(kgpUfontxYPbV)I9pWraE8FZ*)*#f77D6I?@ZRkQ!CruitUbEydiyp z5E@fG^D+b0Sarcj)J(LqfLpY2JiwWlP$B8N z_SY)+lw^`jUS?_bR5X)g;_ zRX$6)Mp@$^C!LnmuHo-f9muaJ&FD-}atMfsbmaa9CsN|NPbtmKT89ZM5kVxXJ9hN4 zffGs3gz`X`k@$vpdQlKyG|h%sI_(SRR*da>}8JYMuC{A{75Z?C()(}T)&g>C`a@Rca`H~g0*Cj(DYXwC36F6H9s zf6;4t4UjC?NDZj$RcBKyL$ru(ln2)c!U5C1js4SYhH|Tlf09@U;zODN%^~?9!>Ox@ zY3f%XwVZbaqlO{`2M|bU3hMw#NG%u9+~RBT>uT{8Fxz4&wNL_?9m`cvl)YvuYM^Ofx&4;QZt2HAARLsFDg_LCcwX3 zxiG16*zZJj&(D;vatq_edT6$IqWO`?=L5Ev9FBvCo5#{LGXbg(h%i_&R6tu3OIH>6 z&LEtZm<`dQJz8m^;hWE;v`UbA%sfT%iDth*Q21&S(|`O3N3-yDQI&%UX#3e+@IkI_ zE|uBpDB`DKR!F5XZ+u6MO=9sv-O5Z;`%~Q!U^S zh(Mpa`!BYzeTIU4#@^Rrj=ClP+~A!^OMrRTH`SfQW9Y@IVc9z`0x|P44gq481EdAF zZ{ahD{ejmZIFoRu#L%v zop$-~$`8_DDj6V=*jAPC_ECDQ`99KURoB2$5kRYDk=ihQv){ zUl`6pPdNPeqRFO;K6g>w3aMxugToh#IBSe=3Om%wOWqLE;cAoTfyjdfT$~tPq-X>PTQU<8T$x8}U zV)_`pcmDeBqMmt|S*0Sp+Z6-q(O$_1i)9n95u| z^~SYUh;Kl>&AQCT0Nl=AimMkV09VWG>e2mm&2!j#q}Mq1D>!(e@^UDN3m9=U1r;}P z-W9HR5_(!+Y~CSM`BthlNl8iHz|B(7+Tu&WIo$0cQT%B`lG)I6q~e`k_OZ ze$}1-0;;!6TQkK79?5mamd+FJe7qTiCe?2T)q3xrdSo0#jnVD)1Aywsds7*xu1aiH z<;BF20ji&w>RxZTu-4uQ$**VvM$J-K>En7fu&na@gk-sh{&tRDVOu1)MunrVG0=5^ zpi0>Ud@U1H*HKUn2Ijd_mAy#?s`Q7$Yx~6Y);uL3!-P^l0lpEYF z(4>&&!=sqQoHmJ@&uB>$^3+USWKtG>;SE^T`taQPquSB_+C}TCiUw4XpQ3TFXq_Pp z4KW~TX+HQrA{n}FL6L5{r)U0pA{NW{hYfnOOuvO&>1*y9sL{4|hV)3H`@VNI^m%1^F~u^3YdL?z-O6?2QPU$EYx>#0PcxGif+h zUo>M;`5m7cKx{Rnbsx0G1%O?OEtB*mZVd;^hR;y|Sa}kVpAteuKzSo$f8{`h0lTt7 zTal`@&CVf3sedy)hpa`91K6l!3PX9f4<&wawSBgK4nT)2s)jsS+l|&wWT7h_chaS~ z{73X7#^4`;uf>v;o2BE@861?&RBy}ZJ>J|eza|tW-G0Mfw<-3T-y5r!KK}2ZPy#WB5@8!g$1geGrP@E{B$yTz14<)Ua16yC_h-vXLPP7pdvqIXr z7)3ojNm?N66(%1TbG~NG#_IL>BZQ>%r0Ct*Qs68|l)lwaZUjo@(t-V5Px0#pCURGwa+^>sc z0eKjk8zRs)Wq@pfPXcZKih(5=jL9pLvMV1udXvd0PTb%E7GabprJ`mMYW^p*)Mv+4 zK|=kp=2dyGf+hBwz|&G^N)l&hc6o77DRQO-Y&Gaxb}U$U=`~tZgO3NCK)6^Z;^;ri zc7=|Xje5^nd@G{#7cVBUsow`J-x5REgUhQjY$^l5R}@sYc?5f%JQxPQZZ?Aj`yRbq zqX^#R;~nc;D7-yyAb!+ucfY~|i3&J(z!WSaM22{S={^XsCT3D-OoRmF(@i|n`X{wL ziWVl^)!eK64uy#GPC>!h8kz)KL+Z)%W?ZwBcz*07p3XPtPmidxAll*xadO2t~7Ge83pr-D-a_# z{YLa1G7%EosG3B-fGrBU)smz>N)GUzd<-2r8b(+DRh9`w@7K$1aKE92oft%x6EFF# zXVTi0ncm>&A#U#gyq3dKGte1q3qXr%u_hLYYA{l_13rYrCOhB-RU9RN2w09$Ik`4svr z$|DL0KJJp7z&Uj*^;lrjs%(SJEdi9a0_fj`3A^@SiY5YqT zTjnwHlPE-{`3ynNfl|f(n9ql?5l5o2Cv(oH^KzYG1oG8GtD)3)ZnQr6U|!M{W@WBJ zzzBNnp$HdCC$Z1-8^4qwZ16|u#DWtyERS>~C+RZ@)o1&gEDeE+j@IQB2bT+u?!u;M zG476a4a9S)H+qVD>@WT5ZkBiiXralUQ-3sawA{lj zoj*`u%{~JO)dwL5NHedl?Jva;4doG8#@y0k_oG-6JqWNSw#iny8zJvtx&AzlLH?@3(h&OQ7NaE{uCKJAo+g_C@>s8>uzsfBtZvM-$4X_@)@ntOxY)1_wZQ+ETqyFC#z*^u}M+MdV>0Gf(Y6a;K z+g`DMI|NBu8ZnO9}div6XZm5|e%Lv6E zBp|SdNjA|e;9jAg##E#z`bOE(FqA-!p-j@zBSvqwCbAS<$RhGBN{DVIEOzNZRR&&z z1$e_&)EJK=7@4B_Ym7BD5JWZ-Ok|aibhw^0%SakrHGi;MrhCH;fd&cq!(f`$j?l99 z)bCtn|k8qp|K90sV;4vwWj9?hiN$|c;G~lRl z6OizhZIa6!WK6YGsuDtu&vH6hDj@$Zk9K}&{KWUZ8MT-M++d- zyICx&Zq8S;2q$C*t!cT!(_oE9e7yJkD|eD$s_+gy7tFwqHiI4fxqgI6^->9t&E6um zwpFtTN6oqw-*=6zXn*wlycaMO!!e#BXTJI;V7l^ zeGV|QE&YJ7Il3hY54mFfK6-SCI15(bZfg{3>b4bBPA!ktx&`xFeNp2*@x3`*?D|(_ z7U@h(LSvcV_1SQl!e#Nl>qmq_34(sbg4@<%1U*~krI?t*M z3!cc*gxf5*IfEPxC6bbh?rB(n&q%tmDK$pkA}Y260k&@1v$B4^QpLWb72S`X&^p=u z&?~r@eOdegMF_>#pH9EP_gdZB!r9o;TH`S-oXWHMkl9JUXXTZ*x=KS3FN;F5K~((I zF|dp!E!1DMNXx`YWifWc1|{1qXKxhx>kZd5{AzdDLzpw@792pI>v~wQ!?m&1ooMYFcV0MXOjZzu4ASoIqmCDaYo1I_5nIp-eCW!qGEG-Wm z2(JyxyW*V}8)x71Kyh0F#5w?o@z|QXl*HCc#lPUB`K-hrLXd{mmTpNlU=hgMa3t8e znMH*J7$87~u!@d15le72U>O)1ql0t1_?=g4dB>YE&&`+th&8DXwDgf@-OxI_vCkUr zX7z15dVl*Ckb}U&Yi`wT5=`VT{mX)Hm^3_=tlgw~9Ot8oZre|3?dJ|vRKvvkPvfr0 ze_H5u4k!cgh&L74)2^VqH^Nx*ViTsQ#FfoVn1Fgb8(okp&T_?GtQr|7Z{&~md2>Cq z^A+z`*gq}|o8`g)Cw75vfTyAs8&Z3SQVF`Qq8-1^a9fw{vsMTcom@N{DMP^8>sY_c z;O(=g8!R%f+1sz?(DvC=Z=23WdwJcoY&-}wQio*LHd}NIG&fJT99-kv-^4UgLR`(- zG!7?U1zqWse84{G>g8{shp1LGP@$JHi4i(!v!J@wBg`Z;%Rx}V0hh1hY4KJ7_9Y5p zkYgQv!+SW_c6^kVwGYjn-InJM0`e5uq%@m@B3gIqhxH-P71zQ7tz>g-Y5Pdf@2J4f zE&HBkwSEN|a+>?m<{xnHbc;OoP>!@2;uu)-%b6S_E|kRs+Ia8IG5sR=s-9eEx2rcQmKuH zpe8rn(0>1w&WLlLxFrGp=*mB)4Qh_0IrzcP(|L*OFZgRZqSFHkd2J%_-B%X03dNHj zXbK=L-w3NDlf+4M!rL>I0kBiS{nJlCt*Eo-wrVxK(Y?;)f4&)lOOqg>GI z#`+N%hRrrEAQr3(6i>1?CCv zuvB422*$A<#VydC!I9Nafgl6{?9P4kE4IB}scTjf{UhqS$%$;zy+d+6=(D z=P|u8gGQmvn{64*Py&04;m0qJy{}|M^uq8moT>aTavua*Y8I{73~bxIUD;@zR_v%} zuS^4S@KHNnp z4|yI?;{7`?upNjJyrJ#1?E6NulYN zWIXV91)z*vYWus#w*~6@@doBT%II-r7IhE0h7hd6y8;V3#srr*4ZbBxiTxCvS&?D2jq}fK=MYj*`YrKx$BR+;{C^!mybuUUQ|w&6mqN; zuAl<>9Df_-vk_*OVX3-$UE%5tFF#JaQ+6{byThcVnjkyDR13VIaJh6eN&0#iMoH@i z@h{-+lJQ}0RpG#3hSrKL@nL-(NmBZ1VrP{vS%{T9D==uTa| z(CNXO)7AKw1#PtgV`?zuR9`1pHARO5L@}fl-+k6pdd=r=o7~dtABj8lx2mj}?mD-< zEkbTJ{Ofe1H-1hw$BGHKX-#Pt?yDwLOQ3=lHU+^#Dqvuqn_WH~RNAzmaMjJiRf#L| z2UR2ASm2E-zC>;^V6{F&*gczYX`hz0>1-DCEE}t`Hs?i> z6$5yIkj{U;lL8(Mn-si2pk* zOQn5)tO>Y=j&waLo9V=kp6kH;CUAXo^7r6OVQw~8!8U)XcaVZsS8B<-@7uuj+SZ@r zDY&lNX$7tZAn1$88jLpAxcF1YQW!pP;t*ut5bB!vNci-07wb_4h+1$d0N0%r|Kc_? zYg2-F6d_ABb4riHCy;B$fXFtUUnK#sZp)kXcy=H)IDP~48%FwWr4I#nITjp!W}b!Po)nF)!oe)6fBLiPr$6hzJ8>;9 z>gu}khR}GQ^iajVFD(kL?$!ix{V&DWK@4A;cpaeTW^#z@r3V)PU!!{i{UePko|yyp z^l=U|_Qx~Ia#HXS@+*RHhKMaepi@?PU|ixp7x`N&XV-dhllGgzH9Z68Ma3WYCmH4` z`HinoK_G_J#K?*=jJ+wou7=8*PZsMH*Tof;^Yj)adVPWMncnd2xSaY+$9DPf!WVdE zU~*%j6>JW2-;tN%XtWX`vWfXNOXVa=6#zwq#i<4@q_n7MI~I&c#yo~o+l~vDb;6Cr zkXlZR*txWjCVeZP*tU3zRt%_EL$XAn@$mhPC=vzYMDCJvdXR{KA%*_bSWm_LR^3_N z6!w(BzK*Vxw<{A@_hntKCe`sCsVv8G;+B+F&3GcYQx-wZ0*wsj{lD#))DaS~gW>pV zUY0{6kfd!Y89YYdHoGkfgF(P{YHu6R)+o}b+8prRvl3mOUEhVDogr@Ul-czuaTC#c zN07_8_M#C|mjd5m!kk6gm>f__de21NKi$hF^&1V+kR(SKYHg0y{EwWq=Y_5xQ)hze z4hU8IA6mywf@)}hSEoQgDEsoQfzHF0sFH%zO&EtGH6$UQ&loCP%j1s%Uq;tdA%G5c z3cq2K_+6V~Z$uqk)W*r0<=AnPM)p*~U4%yuN=E2$X$KfUhpmQUW|J zTmrbo6?s_&n#t!aZ+V6JN6pl|t`ZcbveRWx^mLI)JkXZpfnK`X<2Wqt73WTLn-=Xh zO}qaT@2R6!c+Q)QlBJ+}$)Pgz#RFU_%m1g)wu zC6LpeP%cvICcnorP|Z&Rt~(sl8B)c&s(bH}8pc^Yadm+!KhOgcufRT|sW!OK_2JI! zUtMZ*re398m^9NkDm8{>-3lNBLlVH%YFf7pYzTi{EtyRv(p>6fI2a;VG-CufqDVOt zm{CUpXboXxvN?d53IsJi8wMK%@)(*6+-==`PY0brT^wc&3=}B^QRmx|!r%TS^&ET2 z$Z1!a|Fnn@w|KHYpNR#u#+d}%t-Nh#505(Y@Hlw4PVhn?rrGcyg%1dk!6_UfCvl-y z_Nh;Bm(W;=FxNo=0J;JkLY~0_uFl*49T)s6P)s`I8|}|i#%B^DH6HGHK+ASXniJ)`9HuS1ROSGS{{&9TzSHsNk54>ekm@S zo`yY%tq|PziKN?MbGH}KpGXRr46{`k%)h8KaBt=v%>>mN)wB8EA3RF2Z8-Lp@C)p8 zD)k9SK1k<+%W#&xH!o+XGun3!Vmx$!R8u~>=4UC6bb?0(ElEiXFv z8VU&X1H*hX6M^2U#=nP2i9dKSeLCLE+6(du#sWXt3k%*P{DsE@lV5gBeyXyED$Y?t zVv7J^w%`p%eTfLfDFdIw>JEiutSfXjCT_sZ`D(^m<0t;7psWdNO|5Z?yBa@feD&F* zrcU3BZm;wvRij`Wa@p_Mw5FGsC^aE78U0n)^~-sZ_Aem%77w-c!Lm|-&e&&{_8tE zBGD8X1<+XF$%ejMP>qK41$0^wRo1bo!L0*Q>s@EXz@O{;lH_#Kgp6)u2@EMMzou&~ z7F8enYow#_(ALcX4gD6ywfytJp;z@OuHqoYN%Hb~)7*NFMy_WgG3**q(_S|Y7R1MN z{|)9F>N&cRszpF*%Su=v%z1hx(tVv-{`;hYzuCsiEhw@+Y(}Y?lr0GRc>&mZqCNVC zJV}9Q1isahB>sGzLFVWoF*=}aw5h^jmPQhv0q#@jxK&Hk#ghD5@UYCvm`DN!^NBEqS&^;IYvDiKX6_B)fjB>iXWiQn16 z@qIP^fymP2z;eG~YZT*0+7G0;c^s606BB**k~S zFX!c~eD|0vtgSV(rzXf&LVLHEi6&SVwvQ8CNV#A$6`rTLV>Y+G4mzd>CIX8HN{8fq zv`#B&laE}sQ%;H0HNLB$ds-4^ z0CuInAqCjXDvAf#qPrZxE>7vwO!D=s5U%Bn9qF-R;Z) zt#y%)*`hE)4qZrfATb37gx@=^E3Yu)6>9q)SCS!&AVsChUoxzUQ+ZamSlsurAD-sTl-Un@HlI!y?Y ztUib!b_hBfsp=X{j*w-a(NtB6K)VhcUz>t$;F3hMg_|$EjJEQLRjP6BTb?sz*M9#3 z9ih=aIBaTb7y+Ud0&M_0pH0iWqn6>so0apb=ro!W;6lS&LGU{$|Js;HqGOBb(KkvC zlVhHe-4giDlDVi$Eb+xMdpUd zmLwk}QcW0^JEi-=l;x|Y!w#a1H2$I#B)fk>&NgbPFz8sw%N7tJjrLwO60T9@`@Cqd zDj3}69|C`rr~i|-1w(X;w7tGNas9g!>%PufvzA8crN-M7b1jYVBVg536jVJ1=`#2s zIEF}Gin(i5>uczS91=8a23i@vO{^|ZU~jVu9X;JuE&167^)m*?BM{y0q;#)t&ap$Y z>0wStQZzf`g&&7AaM#&Bz3|;p1KxQ-t5AtY!XnGtz8pJ*)QP{r1sDW3@eJ<12R4u} zx%bI8E8gV=_8m(r{I;2&N!VSkOOxZ|DG?w0%=hQ&OXf8bfv#QiO}%%85)s3oq5lzG zTa^}_NWN!z3t6M}+PY|zjy^i5I?`;H&p;UxW!`230t?{OliIty?EIs(wZYd!ss^nX zu(g@mT<{>uIbsNa_$_cJ*kazb&W8^l6nL~97UJKtXkix)D$-Xbc88`&q<}}xNb61` zFFZ|u{;uPT@^(f(?cq{_pggXDlC%3e#xm~gi58hh+0c-~n+_W!1)tAHB%d-*gm>Lz z3poAn@rt!X)DzL8bsr;RT72jq!a4+*13(cDC@Om&TP%Z@B|0m(L@-XH$jBG06|$K; z?(R7AjTcrmmV8t=o334bCSJF>FeExdEpV*oePRy+VaTU(st+bDo6vV>7q^ESO6Drq z%~hDKGpI*!4eHH&@gW%DFy;!9`vSkJNiGjKF04;{g)$R$IUGXtPG1mRbEHPwf`bVp z#pQ10vC-YVqw`4{h4P2Q8%U9^gkvzcSUKGFh0}%D7E9ZQqZzKdjv3PZ?rSzZKJGjH zzi`)~t}yCDOmG?m?hog0e@GI%qXTHS4)?Lj_}oRLLHgRlVQ{PLbHl1ioj|WT1e%?%MxveL@>9%6j^$WJ2F-|KHs8 zha|`MtG&J>VQaU^DdB6n>xXWRr;)3rcBHk++SVhzTfeQ%F+;Cgu7cz_Kmu%a5^JoO z+={d`kep25E?h$4(J-#+?6};%eGIv>yX4`FlNr&wb&GWI6u<^Mx2q?(q6J7uBi#?I z1T18EB_9#|9YAY5P*iM1Ru0m-i0+eJ$T-77h;dqbNBt#x>U!B+P$vnuPgw@N>Zg*Tb!N}Ttm&f*(tt>Ejf``R;4kpBJ<=d$yqRVwA^iB86{K=d zl|BB~6PKpymTal|2i0-3d`RxS64f|?bq7<1(5A(q%3dDEwzU%;wQ3)J-aH8f`m08K zc|iuy4&Bk)W9(|AA{E83J@p>v?=_gub0_gzZ4zVY1SYB@|tU zyd0PUbWNf4SI{+BCE)Exol;&mzAE=!0m1Q;6R+>hOXQAEGIb!5YbhQ!RLf}61KP$j zr?_8T_X%mgp=uuifDO(SLg*=tu_d_cd|>SL7XnXX2Zq^6cut=ex;7y|t~^D|tu&0H z@_+Bb=<5@j`+O`13%!hBdA%nU0!%0^(c_;nV$%XAqU#i>U4@XEDqPM}StM!d&)!7E z3?&aC3z_jFu{^s9x&Z_Nx6BigS^%lRoyp~{*JT#YTrpsK^hUIUL3#B#8Qn|b{z*xE zg^d(o8-fv-A7lS1>I~;Uvs|OzIOVhlVV#S1r2h=B$;mJveLK|WcTr6{sioX2`|OjC z_w>KiqfM)Dzb6KQaDO`vtm(@Wu?hiWJqGffzaq_ev*kb*V18hdwBW*qGrJARo@`v= z-OAg>nRUo6=MLzCzlIa0pbm4nPpU7hfH4j)bvFvYF3fv`G_&I4scfpd1~~{oeTItz zp;pEsb;w~@GA=dc9%6Zqw!T|#_mZ^*=w?I;IV#u=fpbgs7nxOyvkjVytYtKb?$+35 zNlFEM2bQ^y?L(p3;Z$#%r6F|6fzYFeVG&^|^)QhD?@b6i`wP_z3e4BlE60wB;&j&& z?Kf>n5fqK37%qXJis`QL+npaehsDDmeL%(7TRyi==u!7=YQ)_mJztWs7LnJODnVDe z8fU76WLn(CR0a+V2<_E%baRqY>cvwMmX`<&a9?GW4@&bSL6sp`nHmS~89F~R*-#$m z!eLZ`u$7aQ>`uMZO#yTLvg4jU$iLq6)Bm4Vi#@_oihNAmwV*`bp7R zJcu<5j3prF*$%57;?{FGu5?36Q*BM1?o_vR<#12~pr-zQLNOYQNvqbmroC& zOaxIXXyK$nyRKvQLju^+$@AtXh)r%!d{A@(hwh;8L`(XK$ylby#}03m8OAaCCv~pg z)2a;^nx5j|m{bi~kWFEcikjvs>r2{RtJ6(x2w9M=A$GN9%ynf}%d&-v z9CMwuaJoLG{`@O}e zCIPE~Qo;%Rz5RzVfnv(h$V}2gtC|FzSVBZsfc& zbR+HePts9@;~%|!xo~C%NfX@`b;&X1$)vgF-@kq4cye9b&)we%RO*~ph`1&o5Z~bD zS;rKJ@=C!qWb*)sVK*P@9LO>U-(ssHm1_P33J50)ph&`NQvN!=@tDE! zY0-A3CEBJX`_|RXzSz8vnjPqF;P+|kUQ6~{1%8pq1aOaL{HR_iE-eEXYey}(uUfk5GfRS)i zMasE_(D(QXNl)uGBs|<`7m?}{F!h7mi)S=dS%|PDTC*keZfs?vwFE=zo(Bp3+s>v+ zBR0FFMUNTR{cSseuA|u{F@x~$ryWDOq4ys}zuws{YMjz_mBs((k(AYuN3w2j&1g z=R#X@_$}fKw+Wwtb5`Cx5_Y@Z-rI0yogW;ma*r%SH=Q1deI{R@0_&%umxx+Mmlbp& z?-k6QG+U}Ky1Ie*z@q-jy3!=Us}O8+{Pp;P%l-vJB=~El6#=asqulRO5j^NM&An{W@UzFE{KZ&eXC5=e zHs_e9jIM01gBuFB4@rNj7vUT5zNn2_V!_~#_pIUbNciS)Up^j46@eKmt2yfAWs6u54}Zm=tTNsK^PGpLtZ1&KTO%A+^d}yN>CuM;|TSGZhL0&AhV&7*NDg^ zu+c(AW`g>{2YVj~h>uUia)J0J;5^M;l9Dby@isoOR(*&gZ`7wly*6*HJVt7o0)G0d zmxRDJ`>b~Ana|mI^*alPHLe|keDD-!#3$D1D(0isv15nYtY|lwRMaS}o=$YOv`c+4(b*En2!chK z+C*4SaX%kiCX|u!8v{GJ63@1c$+0RCPAao(-KwMA9(0N`aqe+m=H9@dDMw%@B6{eN z?u|#ClAl_5WEO&n2g0^;m>ne+VUdy%tS~tl0r$@NN>W$ukW5d*n=@6CUv^5ts5s(@ zEE3xD32PmR!BipaCvw;@?l%^E_9$KHIT<>mustHrKgo6vHO_UI3PYF>8*hUYY?(0R z(o}pdky$|4<|zv*TcgjYpeiF9O!oszq^yY$HhU(hC5wm%pa}bz{(Xm{+PqI!?+tB; z(q6vHYY7l`fG!X=ow{`M5g}}n|EI_6$z)s-)S-s3=xcRB$qk2wjyQF$x^2wAthUuic(5M+E*?A`+1)8 zzUMus6XyH-U)OVWz0SncIq&;C_vilH_x(9$eUu_>KINKNt>j1v_u6wIRjqdQeTNG|)nqQA07xx-ygQXl4;ZciI#JtM=tP<|6bTPWJI`O$c3wL* z?fsF^4A3UK-1?{{vjPs}fN?DB_~^Wnlk43IpDO0Zyv`o`L7a{y4x*P|yDBA0?+Au(^A_14Ppp4QtPO-4`4x=MaljHgcZiL=T2 z_P-xeN7JL`U!iNJ!T!en`S^KSa6~MMYjb+yUfW!$0I*`3v~*#H8)B}IIEjM`{)QlB zzqa~UcXrEery8O7rs_$TGB4z|kxXN$+Enlm@xqY2Z7nL+jp5%787bPbv_20&MW<%p z;8(r~UTR!uTMKs%327}}Xd83T>d7XfZQZsRlJtS$pxwq$T_Q&KN*ueasKF*h0UbA=^pZ0=PIb7ymUGi^UgF6(mB z(DHn!Pbg{8hN@n>`u`oy&9{<2Zg-~FEd4w@0+5H)Pf0UHRDuM|2%{Q^H(LOwA6(mGtX1*lscsI* zFMJ2AY54PLxtr4@M1Ens$Tlh7cG!2389!N`b0MN8%q$L`mIWWxk;!CI z`u9mcne5bQ+6jOMUB@FKcP)L0vmcCL>3wS{#Kw2?KdWK(SA^?|)?__l_)@mqT@ zsBBxU`fRW8F~^p|6mok{!+=|{5tB%QdR}}~V0GBwO!w1^#FyDyPOs~ipc(*0GAx;B zr^Ao{iTg&Vrdy<2$QRu3H96056Rd!+L(IChEQVsqCPYQw52$td9>UhvtI|4*4P?TatkYfZjJi z^?)UYZu=fi>TbJaUySijF77V-=Rej@rnewWD3YGw&eF&FA53+E$)H^#0bV!E^-t-W z3ildc{I#MM5!|rcok`dy2)fC}n0Bgi!be-R;yb}H!>pbkHNvIEvKT#4`c0VQ*=1$Y zT*cybNlWWD6gMg^d{2Ee^6cu!jpJTszXAjgtTDvQ8#ICsnh*#Hx9`gH-BgaXCa@fW zcoUuAsdKar<1p~z&IlJ^RTJ%KFWV`#kq65xF^w{8%w->y=jubBYxrIGS&GP)=X;Qg zt+^H$&%UVdHmSRm@eY;6$nlgK$6v1W<%Gs7nR>M)^~eR|4rlE%Q?;V z%FPRP-I8xOkBZ`SX`DWUqqAdJ3_nk2Q%au3_2ok!f)kP@5>5?M)5?IHvpIKd7f?OznVZvTJU} zF9?z;s7iPGIHg=!=LR|M!v|>7%7N3s2u}(@Z=)3`ftvEyRWOk|LPCr~=teJ#DoaDG7=I3)u)4v;>+TL0VGoKf2*GV;*v&D;Q9qXUB zNDE;@S3l?d#QD_Afb39Ms1w;&zF=gp^DojrGA|2MQQy7V=Q|5VM}df4ny_vaWplEU zXLjd5I;OEae)1KaAbkCEdj~b}i+ePe4jq%Z>}SD((VkyFKP!7Z)9BoO0=9=%|4S;H zGd$A2_EiXm41z=Eg15ltrV|%%@nzd=$H{;eIWjrZgAdT0YP~nwh@COPzlJn z6bDL4$W2}qge(HB?U-_f4*V(I-I<4WzX=F_6JW$$1ZM__*IV;ok-w41U-zv!V%5+l zCXpiG{P^Qiwzo@FdBg{Y2k0}Pds5vJtGziU;WfbB{>cqWiTtW4%&n^^ZK$jD@oF$N z@#*s_j9*4#`to1t(=yGy~^Y900zyaLAZ(bUYuB! z2bVEo0vDfNINOMd`QS2iBryCL+Yk4q3X&Y8HE?qJ4dlam>7!@%jwoc8k9kHC9oTeT zj5MWo+<1t#`z_j_cxxlZ(G4FrY{3>yfhzC-xmKI~@z+|$E=Xpm%Rv73l{Ak=;)G+m zRtk^UN40vU8?um!y62ZDh}YZA1yD=VMK9C~%GLAPDh_=q5oXH7FX}*KFW`L zHM-{EndGtVdinKEwp(;D7s5qTly2sIe9perR0b_z^QJX&EJ4Z&a$2R%QSKW^ytEbWxjwa1Eky$ebywCCp}CEh+WDO#ZvcVC10jn}05| zu)4BUbVbeQN^jAX-X%*rl~7}@FGi1&ki$+1SVzbb)hqeb(=nv=N;z_)<|K+f zESOB_E99#u<@pgTjg$-c4G{i?G)d`u?F~ow3P7fiDiqwutQmt!5iJ9H2$6~5^tQ)6 zpH_V^A70gW(P?Zo4@_%T%4h4HQo+0KY45tHyz8ECs=b%ySIdjFW->CCb}i&Qx#Eh2 zip&~7Qm5vJ2fQ7d)1Vv77U%-WBFUeaK`y%@)plQ3GlI1mOU-)W9$1ysfDj@}gxhsY4mZu|@3~^0JGRVw(r1;GKULO+O2K z94%HgKA?kGDeneikq--zim#yAMt*P3cO{~q7%Z2Z9VGr*)0mze@-J^8C*b_6j+!41 z+FN(b?y@(#OQ~y@z4w0`9yQ8wo11@|5(R~Hr9!d>7d{z$?TPBOCe@TCRkR&;BdY}q z$LCassmT{D|Mm)r%xHzQK~V-I!TLD7qD0U-$F>rY7#JuvG%7f;Z^qxs{h>Vv$y>+~IPAxjwGgy`7-LjUM-$$RNeOJ_pykbh1;~zROqn#?>c0S9gFtqo%#x$KB8$JZ>t0k*>lw zt}Y?lE2qR{Sxq?p!*jRbI5q#I(&9yyRYxW2fo`>-ZaoNIUPHG~4L98)kXDKxLw6n~_h^;_# zkUDJhWuHHB-1E0Z%pmH7ece!3;p09k!8qO_%)zZ@z}1htUo<9vXv(jFdfckq-Kr4F zqphWzT zrMo0UqP_&4(+zhZDjvJzr+Tu3tW^CeS?+)%Zn+OXr|)=;QUhy z@})M58owv{=_QkcZ#LRfWyZhCC`kZ}x00xPE|)Dyt3{uJDDHLJe9f&6O^xEkes%HJ zBV=w9Tlf9DS-LI)H0M}uc89UH46l5WpOUjdaz9o_D7{67OD#qZ+^1*3!a3xmpkJ%* z-)i1z>$}swnXal$*<^j4RRfvCrmU(q1&u0&)1%U9CWYK|5kYr{oe)B%lt?ciV7YV- zy&wY3Zy@MATGjuA-EMr1vongc)4gqHM3yRB!M9a|uVbl67S0Ud@`i{PG|9kGm5a;dmjG#Yd65VS;hkJ$nb| z)9ssM*DF2sZ_ezXnPgaJX%o23oi$0|34b{EDYrWSVbW~~A=CsBX@o-n_Gza}!uMZ1fpf#@}sAqId<6^SpKhF91%{>ZQRvKh^0 zvwZ0{WPhbs*Rj3(;l6pbo8yGp7JSEvqClqqT{i~l8t56x_N+aqOR3MvQSVcS@BfQ&&;ro2~ zj*NgbC(oYn^)Z>IX8RrZHEG}QybO%@aZe(t>T>WuU!R?*1vHmvXKA{z7@DKy4_)&& zWnN(i?X5~(t;({+Yp-~VWg9Iybg=2NqlbQV044NSiSAz|ee0IoxrpgRRN2jm`*@;D ziXlgJM)ZwGjD^*i7@aSjd@-Y6mo**R!x@C(qQ*jp%L{`llw%<=_9W=t1L2=hsq#_8&adxg{0 z`PhCd9Zw3?A*}4BUq_T`%C3_8+xbO8v&mxYAz{pW8Myo_Qk;k3Ewn2TF`NE2!Hq3s zukmZv1czCj6R_$xVU=8@3nM-4Hzi!$l;E?`_pqe~ryc{=7UY@8*$d?9R|qJ7fp&BL z4~kn0?WlZ<6duSWMesi+1M-V_1n4@kx#r~98m3-q*bI@=5X~eFl2l_n`!ncU`goQ4 zZj#T@WoigUS(~IA#5<|Rqac}Y=v&mwd$oR3CMihh!gM;angx@Yh-9F$TlQDevV%v= z4+t8<(JUkj(44MEz7&^N0fn>mbrx`W<(27c)2Va5_=^ECP!715;Lmvs3QfR(XvUtG`-Z>?| zbMgnHln+M9`JGdqsD@xhs1#-1np%t%F|AcAc+#>)%qg4h#Pheo6aRR6CAu1K8zjX0iOJ!8!ulW zlHAW}R;0cG5F`Hw^*6&8=hC+r@A3z{=}O|2KREf3YA9RTHoLKq$-=1eVw*n2HWr$q zCr3>PVfRBFF%ED@ob#G8dS^AqmVXkUPYr{r!`^>{kKY9!zl$P2T(n$datd1x5_%gG zr4Q-GVA5e_$B0T;YBABf#X`~=>7jC~QWJgC?WG+LL0x|GYip^&#;t0`<%`OZ8t`uN zgo^7L!Fo+}&LWZLn@$qGsdY0dToCePYP9}T z!5hfEKavX}KPYoezu59jAecY-Me7%oFysx;T>9;+ecsW5)vr~u_IPqR zfr7}uFTT7NIM*H1>aY}$j+R}kFh{&poNDfq#s0{y#eY<>uT>#TMf$GvvY*Y9%E+ki z)+FOxZA)@|#h$EkF8`0f^pdR`!_{_v(~Q}TU`gl3g*tlhoLo*p@9+XKQAg;y)rOc} zg`jSdo&rngx^WoAEGZG&A<$n< zLq*?MbBX(yXQh5;bKB0lj#14Mut;JLSrih)>_3DIl+)-%=4Ma^oPY+VVbC56IUQs^>g$X?~G}>VwcOwOHoMAa%xq;^cBy3k)=%8k!bB8zkk(4Igb3Ksy$X zqp|`{af2VX#mi429N}B_rw&0}CSJHE3wn_NUFb#L2o`kzVDm*7RK)3>1x+%R4lCXa zJ}G1o)8)7=UB`>>c6!ePj**2pMGD7|%$rq({#rWPZDdu^ujsqsIdXeLX1Ow*_m>jn zG7x=``-N$x1w)e;ud;4Z4TWl_iD-I~pPDBZ+k{p^TYiwN95cEOhE^U7%`sc{lFFw+ z?z4+GYRD1zw2+*-G?~Fy0MP|>>SGGgr=dzhBm6LO1eO|*uc_|InC~dotw_sR#Hvsf z(LZN7Oxpk3>y0CGjz9Aq;3y~gL?RfMuQL~C*Zx_ZH@Nc8NLnjyFV#fFNSEezDrr%9zmvsllL4W zZ^;24FH@|@d{wRq52)ofEV^^qrDHEsHMmfCK4gpPvOTJXX=mbImG6@=+zE1-n53Lf zQ)U<)gDM{h-WwAu+a>$^8~0Vzp?dv_D+o!+s~dgHaCG#lc)9DC;iw`*-#doT(A3`< ze&u@Ipy2#>{};Br?1|UB6Sdc8Do3mCMk@k#eaMAwyZJ||-HSvULv^=UUZhKOMi_T= z0uztu=0ygY{g{I`<4UdS!=nE$s2pKM_nSJkgi@Yw0b}Rnl&qhd8 z&<6W{(Xo^wG-Tx5mEsIY7FqMl5cS)~mi=en=-Zj5J=TA8O#ZC2{L>WrvB`7W^#Uoq zeetTrQ^SXyG&wTcd-8?)|1PQ;WLq>X3K2Scyc~wsiX6+l67%W;k}6bt6xCC>(5`2U z#+*G&Q%=)OK4;f#Az%Rlqn;=K%Uvz0j(psu*rBxvBoz}O^JJ(~etHyg@x?=(Ci|d2 zGhMs(m@T>!Xh9t6rDpj`^(AmM89c;+ZSdi;Io}ej&WTwlbAJA`^JZtGju)etxajcR zo;1Gc^7v;Y6y8xmblt*If(Nc+)K)w+w@zr?i<$n7e#(s@JSI6KHv){FM7h(2~JZ6;Q zF$T>*lFEAckb?se3lJpISx(s*ov_nAp=;O+u{TT2%QGQEP=?k`l_V$$#`)nhu?~8z z-0d1stVPFHM@O2@@&9DO%BfeFL#K5JhBNaKLhZcjnm3iloQ|5{V6{~g+RJ;?u!e3< z_0cI+HoJ=sfw3~!@MM|7iR`cS;`;o2Jjd-eG5pQ6Uz?S*?&0BglY`T!lmGr<1ZB}F z519QR4oX3MN+HIn-Rt5;GgG85@x3=9o7(mAg-2#`4`jz%-*Led5oFf!cXz=hfusSs zn6NHu!Cm!0A;DX5R{e`#r4SAuK_NA+0Kt#4##+jhw}q(&#<@vLtj8SBq1(ssyoR4F zubv>OFzE6gogZ$iZDKXmE97vU;Up3k!!lu~&6zTv_Tg=(NfWq z=V?A7)GL_12_Gm|iAl9Lpw(NRp`C}uM~OlK@b?=vPozb6ed*Eht5+x5Z=++9-hGun zwEbWIXqf-U-Quf)A?vxOqC`l-NM^?GG3Tyntg_nb`ZUhXKhDi4PR;0_4SVLl zz}yr)igKaf7WyeE9T4?C##%f~XNz$xGrhnIgWMEB;;CNG7pD(c8j!xERQr-PF)cBr zhF>Jlcm4Ddd`0|SOc%@#ad^0SCRNMG2vRxlllLX)8%IAtx&4)`AFgaIDHT~_miOz~ zD7-r^yng+6k(jnvcovY_)0LZV5RB8vx5t&tU5%j@Z?semS2c$?Y}$PVTd za0JaE=j>a(s}2fEzBDgn*=Hmx5MVG5r!+e*tt7{6oj$ZhrRhK7@uDhLz}`km%lWGq zI)^BjO`#b|M(29C&8PnRo#(G42e@IZ5)k`=r5aPctqdn)*e4+PXM<8?zhP~E0|LS4 zd3QH7@iP#8MMl~FoEk%aJdpRutyDOfrbOd)2Hq^4ooahX?b-x`4OA^}id&MdOZ0&_ zDMv!Zj210YLRtu}LU2DOU$ut<2+I8Ni5# z&=tQ`R~%QxwV78WJLa5CMPu0}%)WS%GNe?}=<=utH2QJtqcg&%;$<4r2Unw=>Z7VQ zrEBPd$$Cpqgb+`7GWYR`7twx!dTqPSRUCNJLa6RnJ#48;1&;UNPr{T$%7_Di(*_9L zSH!N9mNhUZ)R6(;nhEV2AdGSI$3m3&!+GsAvpbkwS?<5ODHxNsxdna}YX|t*3;3Fl zcln>+4y?bNw#E~K0Iq4w*&>Lz5U}EVr_GrfeesAiD^A{=aEY*QQu#`lcrPZS3-?YT z1#UR~-XxB3!9|C}LjYqdiQo*I|8k_d%hk z_THoyVjpJ-vMG9f+P}#$If72BhSMMUMuq4#AU=jr6=Z&pC0Qhj6DngW`i0z>7@DEP z*gF43&*UqnFn>g-`5x(%TX1O?p4;Gj%#ReCc4d_+G6lJu4jX2L^iv!d4`YWSnbI6i z!(;{TES@9vPREQ>rg`j&uF$c0J^N5<%*4IImyf-Yj7{dw#CDoV5b5ZX`12*+w)hFuGXybU zWNUU_8<@t2h)_%54R~O|P(Re)+PLd<%1;w#9Yc!a)AMQZA#2`OFp68CLV+|z%zI0} zc;*B$gx5k83LgBv)*j8IZ-);-GEsEO8k=23hmg~YK^gLXnN=Hx!Pf*wIhk^|;Q4j6 z|ARbbG|xv~itF9SBZ*5p4y(<{@;xgs z-uYFxwQ}SL0NsM;g@SJ6Y?0j&JZQj8c%j#XKASW$Uh7T$rj_;AR(^b=O-@8Uq=mfg zBxQJ#$fuyx8}Z0ovMF=jxE9-yhK_%JQ$>weIgH$hzk0Uw zv}4@|Ln2TC5k7lbm|Holot$u-cX_&%8|H`&pSXnK6HzN_-Y%B!cb2Uo2JeE#fzEwS zJ{I`*Thh7XNyZkQ`Cqoi`0O0kv~xHNRTrj;Ck3t!efHLf2fDK6msU_W$vey4akgn= zkB>VHA{2|!RG>peUI?IZhLVXiW4-pX2`x?Lp}*nE%OLkc`vSEA;k0 z-R5Xrqz&}FZw?71g1JfEcXXPAR~nd@8~LpwzI?cl*m=0Opt? z8jcWKgj?oalU$Apo^0$#1iBK8x&>*4aC6qvEYx?BXmBsv;iLhk1x)ml9?W?12e=b^5gEA}V|CO`}f~={M|OzTNO~>6BPPd!H4`>m-J#bc?o^%y{%#T=Z!(Krynw~0p-JYO z>lL2swSR|RwdEzuOnBs`wIPI!v<@t+M=TW6nDaj7bfo~G?eczyR%Hnu*vJcKNYP`Lm^`Z z{S3VFA0iO%8>~;NtS5PWPTnvj*zFtEUA{T{_|`Lay?#G6?D4NoET8REzGcb7&2B!M zN)9jWN$xJ$M}n&ZQ637V;)0iPFS0uq^Dv=W&D>y$R*NVgxTAHC3*uei)*!3I>W|7< z?@gDHj6&|R$-4KUXBH!`IC_l2+T>xKf{ExPRCa#&Fah^1gSojI9Q^KM`rQO=;=X4b zV67)Ss@Kq(19+_1v3D-s0`d^2Ol#al>>t(Qvh)DSb-gN(PkOQ!f3n)ZQ$3 zHCOWH8VV*@ZLXzwlwbgz5IF7^*wOQ@pyrT<0;J{ zLO2~-=xpp6(Oe(drr7ZPlkaoP)*0Jk%+c>;X6C*_Nk2`bia2KC6l=sY1CmHG7*nCp z>XNab1f}j@fMR5V(@~^GHr={mGc8|Y#PMUUxydFo!_;PQjdr*VF z{xy8&%66T8#~`+K<87z!O1?K!o^pm^ z_oAPrA-5n_r3DZNIleh3Y$xhbqC4@sFjjHk`~Az`Tx^M$T5OF#8kP$N5>E=LE(nz* zX0N4gd@&!>@_CRM_lCO?4s>Eh{eIzQyG&4R{CmvNB4?zTU-~jKdAwn1#ow9mV9Dga z*X;csLFt~x?=o)LvuQG-Mq_i@?1#N`o1Qt%ZvYm>?G#a2>d$;KFU*k6O-eGflwDpH$S?rX5C?_ zao-k~_u2!Chj*(6!3qvz{q!rZhV&-m)a3K0jPzudXLc7c3sw)Wd1q>GI})O1yt7+f z7mQqYnEB(XIU&8JeaJ$%M^)qG$exAzIk(rY)9CggsWnEq|0HiqRB2>N0vY_uVQXQC z7Kg#0{{_XlkM&R<70psbPX`^0DQ4b%AXrFjyq4YhwK2rFvZcOE&uu(*qy>Ejq`r$z zp&~o4#tyoK5%TfeHZ7ED!dqxhoTYHK5OV)qxH)HbuhAl?Kr6K;#dcugiVA>~y#Nm~2X zi;sa46h;_vQLA{X@=p1hHsx;VPQ^Dc0eZsu>iYYK-$@OFW~gE1;R*nVM*H_iM~`_f z>KYgC@WH|5YYZ}OMa3uKBE>Pcg4=+k-!h^rS`>v2aq|V$<_m=wB}GR}(g|?F;|HUm zS#B;Sz@gUNjyzQL2r5G@;@0o9&rTgg zb59Ifu<&qu@kq&g;Jf+Z4xI8#p4fzbo8CjB8lN8(KoXLuDBP{_bEck0ln!y+rH1D_=jATcaWZ2+WBppO~ucX^sm%rw+=4R6rZZ6Nm7>||@? zSH9mAGP30A*&Mfdq7S#c3GyC|3BOkFD@mctz5HB7e?RfmlB}0XU;?T4TL8PS+DLqx zQlE|lpT_*U%4OJGQg5x)4?NRRmG_mmxnDyoptOHel(?ZW_$V0=<f2ud&DA8{epd;zfJnQ zv@iL~p11*+#7hjgxx#Di=X+0hJ~3A7fr0@`K|w=S#bAR^%21D8E#aS^{8rPSJCR z5QW%I_a4H7idzh&_A5!9*$Ujo%c#IPHTX2@h5``+_otk`F+}QjGB)9eo_4Q%Romi{U7a@sdjPq-JlgDJ?!blv%K!U z_K)4yMVd4b@F(=rAWS9O{e;J^)3l@gW=!T1#CuETip%$2BJEQci=t$7_LI*RH{sJP@i=uAv^(AjLgC1cvy<-M=1jSWW?e^qtA+;^w* znsn!%E=R#v+xk8r*dAQcOTk|t9UMP33U|b!pp{?AC^vDRO6q}TQaFAqquqyh7}`w+ zRxS>DTQg7xg(vRAqO9epT<|7;K4h6R3=x;s7Wd)2qM#yyiX5Ul_J868C5)~>y#(i_ zAe-C+p?2iTVcA$B{n@8MG(BiMqh&F(3xN%ubqOf5thhgQ3R}OI#1PHRIQA=kX z<_cl?c}%dF{Y8iyofy0$<2u<8KZ1%qtbk6!5mH2C!a(<@JeW+2LMKU0aImK8X%g0n zxgz{x(I|p|6f$f?W+8

      &f6dnscAh$uPnjq6NCfebS;*A4OX)=v?91YF0{lr<8_H z>_(E54<*MC;t1tHH>+?d=w2N%tK-OX->v`_H`PAQ{Y=Z=BHL5QYxD0q=x%}TTcWqe zcT;H(q39MD+w6W+Z-F!N5!@8>hva211cs5vZVO&Tj=Fo)zPmVE;lj8TuJicWo}9V1 zJ_h9ia4Hs!*m^ThCG;b$T*7I&e+LvjFl3Ezez!`Qs*6~Q#ywKfU>0yil=sH*I=T`{ zIU)@@s5p@E)zYY%;X!%%DD1lhILZ`~62#9$^gds3C2r;6#gbhX?JhxJi{x_jnZ_%x zbnFpZx5u^1mEJ`=>j(w{d%ZiE)z@_B4FBx&FAFGeioQuRXGZuBC?MPo!eMZna(dvM z`V|m^v9=TwT1kjKaQ(be=E-Z~TgG3znqLTW$Zr#tqx9e^U9k6p-%n5QvVf!&w4*T1 z$r{_thdKqUr#7yD&W*b?E949{;?h%eDBQ;Xr#djcxgxUp-8a>%A_1B-v@uI}ntNn) znI#)l&#d2qv_dih1GEx0J@RHTdCd_*Rn`5sf7K{I4D;}@n;a7@iB?)+e&n>)zV zf7gTSu4|kISeChQz`N8RXwym1J>q;Se2bCV1Ym#fgB;PNBt&%0&6z(fsv5!tqDj}< z{HY-$JDXO9G;)A$>djR#+oyAT-_qOrA0SI*Qq`9r?%o6?JEcLbM7J^vpAl6gK!E_fw8pti&QvZtN77m0%8HkT8w%;-&oO&~?L28*VgZ{^U zS%4|rm4VwAJ1nl4lv82gn_3v^X;g<8lU2=o?=?A_N(Z9Lz6!ZbT}b1?siR5Y<3hwi zZtVO3keihd++)Kc5?YiHhtiexdtJ_zpMP`Aec zZhn-JoXfI>o*kXt{1g(PBi*q1w^?4H68WyQmO#L-vge9w?r?VXFz-S+Z4-ljr#%s@ ze9dEY+l42%>1wzSxC*Bw$I1=g1JG-}UWc|J#1%!sG=Pp1ZgLH*A#B{*zzHQgWI8_Y_S^$hCgR|K##Jzm@qLU58zZs#gL_V-x_9^)(>B`m9 zkI}xpr6=MrH*^qmG#f>X5+p7G}gRgD-_-b3XKmS0yqrod5xug3q1AAJSLE)vG*r#6RaccLjyY0U2wtjw+I`<*- zyJt&ll$hWU)3$V+GNUA_qtluzb~IOSc)O_pXA=f7b2cM#2u)sqYM;L=7%>LV2@Z1o zTts!h-TV?^=0yqxz{(x;h=4%a*vKkssNRI!7^m$PsP@DBh(6*)r7D_X942*M*L*8~5;btS|?JYcPP*2Qj(Z6%~Pm%M=>X_x@Fiw5my zcBBT~9V>R7#4pP=hnUW_l{Xc$0uNtw2EU2Oll9Z%XNL{hM0*=OB!Ps2;{+`arZwRs zaCl^XqCLc*_XmlS6`97SCCSYb+bu7ku>sYMB?|a4*^~^r>DAJ1+oDCbWdCxA zfcTW@qdI%3gt~`OmmwP^2>aHoq;2Pe7~9PO@A*IEJ(!jB62{o>mVn>rKda2$BA@UU z0&jd^D2@QTIN%M~h0^V&CH8ut?pucpqsjvL`Pl&Aa&~9>YDtfc#`YRu5WtVURkP4^ z4O-VP{&V=c6#yQ!u}!B3?h0f~6msuP=j>r>3TmMGWCAem_{z?aL})}@mD>R_IW+~T zC*`+>POjq1oO;pZ6)~bvrc%PB5Ij#M>Z6hD{84 zi4RGtx)?=*IUQih|LZr?5C8G+2GoHM^ixH!M191Ow)8PZRR6>eb%qpp8(!`TNdtIx zw9XiR$XU}E&&~_WP{5$B>E$r-aaBKsn|qXIx1Z_IFYoz{1v3W+Ew}6Oa(g%4*)2>x z5pH!hUU&GXe*k6?PR#C{i~^w2EHv!?+RCwNHc*rFl`AX(`riB;$`j?K#xuNPyTbWM zXcfC%M@=HdaYk3q(Q(ycTrhyq+U%&{i5rgX7M~zPKNKmvEDgn=h?n(!;bY%Ux2!GP zt%CNQbcrX-o5Ev6LJRIYZQUCI0L*P;Az!>Xh^Nv|?>~HW8$dUtcQ4xAqbPlMDkuJz zm=QsKW0<|pQ7|?1)`F)=>v^-{7AhF(HS-aF6kflrZ3#5V=_^;q&ttOn@l7Mx!QD=s<;Bs z5$MaMg(ss1xlfqzpuXKLkmV&N?Hkg3D-4@c^L>YhiZ2VLrXb0i0osrfifmchgxvm6 z|BsX2tqh>;_)&*3+<2%N3O6on=aHr~yFvZ-o@NYEnY2&G{m{iQ6}deg8Kf=U1d7@S zSA**~WSXGia81CZw7RFS8(9425IFI&g(ETBc>Q$!0)=<80*$NuIg{QOBJVC;J3|&S zed(ojN$#T@5n$obK5)UTq3Qg)+&b~CrJm8r=*%8BgiXE+DgYDpPAPwa)A9LHfyojx zL@OFz9&_W7J9*KP4ihxNNHGGt?}bk>_^SN*FYr0btX23L1L@uXKf*?0?ju9w15T&3aY`YD2bT6K zvq&t@;B7|OL8sadLlB_QX0)4`0yZBtnLK=m24+EESl!F#>XhKa;fmu@a0IU=XWbe& zOoXMhKw84WQ(?>m;AEl+D&!WV9dXG=JOsrBFR#D_!=DXgz?JT)LnG(E;OTCL=mh-Q zQ2%abBuUB!akVHDz|qr$*D3z6Vi98VH%G6~mvLD5WunkRMJ=i-JY3L1ZK>K}oz+R@ zq!5c9F4{5-THSn}^rlnmIB4Ap;+DK@on*7rs*(8Sa*il@)3KPCjEU9E9E$WSYDGR@ z8sCO*#sZ;5u3dVI&f43bwRb49Z(BY4GCa1Qm2Anu;!AI+XazyAg60~A{2+J-Z1>vU zGv5q$JWNckVGNZ3r!S&pzaoCm*l&t@#IbRQe;nxE#{{ry-E7nq#1?(#nJ* zX4e{26>&M=f^Pt#GVh{(=j)~T6~;WPf-NCs4Q~eai4}{w1rySx(+VP#ihXwKdRFQ} z5zX)>h17CmO{C3((wui6Dx`A&XY996=a0Xcac0{*gh|!DHlTFAoVwxkT$|!QCO2Zx zv)^T}05g;hFrnc|mKK!=gaBId(DyV47&j&l*Re0PC*1j-Wtdg+0|l-V_x>(;n4>E~ zzM-vXn-D%W5FSvBICX#z)-5^h^wE26i_+>l;64EQzTQcSru|e|%xl5W(5mqYDXI@C zSFb?C4QT7eT^-7w!z{v*mZjm1bRn}ieei9Cn-eQeOx&Nj$IRzz;vTyM^vz`5T&@z( zw>jPRKr{g8iHQc06W1d~xP|Y|m5>3#PpYgFmFaG@=%uW#q!rA8iSU@b7iouF^i<6o zK4Yy|-$({}!vZ2WE%@#%6Pk1~I{U+rDt{V!lW&4UwF4qQNc+!oM!4;4A~lhw zwdLb&?p4FLlU{B5VayBF14u)8COJYrjRAgGp-o(GD4adB6$ah+njZi@Yzi+P++Pag83jUv9TML)TJ$jD!Q8Zl!< z2i=&W?gb?ZFOgk+Y-!?*#Nh(HFW&SPDj!0;?pZN^Xda~DX!=|;*NxUi6}|hPLDffN zSzX3M0znzdBZbGDHJutDf{}@nTn@(FJLkEm&lLN1sxi=z1iC!#c0;`9a5C@y!(}*6 z8_UTNdqIWT^|HmZ%(?_)QAwWRizj*%El;8|vO4F&>Q| zMKiB>Gq00N&JME8f2_(I=xK+K2KqpZE^D~{$z{!;^nC0lB;dJkY%jGwK(%1sMy0){ z+t+Z;n^L*Hj5DSPrPiEeZqz^Xv=&}{gX2*@4;hm%7GoB z40hi(i!R5Nni}VOBp54gJu946*&vu!NmVE8_P{~C!)t#(G_gtE5`;pl6Ia&wFUJMq zxhcmdgcty#*r{Om=4i5(I&VDcWA-h*LlQ7Bg}oUTI(bW{6(ovKAp%B8@JL)jsmOXv zrepAGrW|Dy8zWvh_YqV@*gxrl(oHzRg-|(HuaPmI>m1{5T4si;rsJ5J<{%818X{Z8 zK*&QIxGvN6lP5U&S9af>(|tEQM-VKbr-~Exi(xkf>6`y^bHW3+`&o@D*@zDO0QbIv zEtprf5N3*CLAHc}o8s6_nzM=jiZ~(+4{zR3+OA_H1YE83lt1-y=h963Rz5}54CII5y$g@vY5JM&NS+X3&7a1Lmj@cG@4|J+| zgZR~nXw^a*Ca8b(#84atRtO20+=pnCxDO4b8zYJ#rpsU2BY%l|a^MiRe;Q_Yk+(C$ zV<|;~CmkqJ^^eK!^6MNVUU|M9uJPn`xJ%#SKP-`AB@PF)tY#r4t%yt*n0>M5gon54 zfoTwT!?>nLL>B)Bdq=09f%X1sr7jWuYt3U7Dd4v>&c-P&keu*omwd^Hc_7?uWFzfZ z<=$c`-z~ia%6z}KkjH#~xMO#AU_kHd-H9F;VqkY9Xeb8~L@5xPFsH^R;rB7!zr7r6 zQQIP)j!v{(?{s(6FaX|5->04tDnUKcI?$7PV485EC1lwcsH9P9Z_lvznO`v_202yG zB}+5kd_CMrpqvmu@{K(Yy$w}(T=hK>o0z*kNtxbjSI3V-z9|5LUIWe>y9>uF0!Z`_ zbP&J*3=^S<-(GQZV%dptO0%}FpFWJlP!R0R{wA%MAVB#X_EzojvSvf6oBvARP34Y5 z@-p3(T{K5u+Nj@(yc;;=v}?b3icT`!-8Gl0{-rzMFWvUPO;il(6hbvy{{nk6?$>pp zQ>|59l~sAwrt(gIM3N9{*^Uxz67csJV?CGz=+`;Nb4Vi!iJ!YJy?z3}3hxL1g4#Tm zjZ&TNR6e%dqjd^4_3a)2!xMc74pOdRPN+ZhdW9+}zZD;J+H(j;;6-Gad^!By=Drf3fJBIs&g^*j z9dK6KVzy~(qdXIH1>X27`ofE{@3PRuGJA;Fk_ldf+q>5TVIE+Nc;K~`5_0U zEob)$d6Edl&7Npzy9K|J!irrTk^@c2{P1U$PSsbfnTL37>zXTp$r$phzA-9QHi(^s zSZSYQaJO~EB)$Yj%1=`&@!i%|+GOjQm5flwp!0l^U51pXH|5V$YZA{t^jdtl_9=9a zL^up(Hxn~pz>ZjIKtfD7%2U0^cY7^HBJ1-im76Hqy?l(o0mq}9=BV|K!)z9QK~hVe zYr1ZyV}C(9?`*i}#Cg$ytay;knZf=`v;mS>sAv&L>pKzk8zk-%Tl@C`u@ z#~FC-iA=dH!46JAgvCwy(aqgK*B%B*@5vFUnWcVK?pN4Fqss7`@hOON$T*mv##b4= zK@1F8MUV19Gzy_^s~kel_a=JJNVN@?e129y!q^(nrvGfH^w`z^?=XaFGo`Dr2`T+Z?*lX(Iax!cYbf9UJ%QL)6a`-hl0dS0}0#Dm2Rq7;oKm zR-mrt6nhvYANTn9KzWHcoS=cecTy<~OvZz`+Gm;&WYDlI3yPkr-#E-Xt-F!TnFzOFF7ha~s_<^EABOT(t$^(Ba)uO|-X2G$(rl3Wh7+Sgb7~d*-M5kQ1g4>z?8M55RaB? zboqKDsba-f5(`i^*H|;3VkE3z3P4;3JFZ}Tyv*9yxR?EEv5?052RBdd6u~Ii&niZ zv-C;fI4#_EXk*3pn|Hm_Y(&MdsCPk&oH4>eTrMRwZ~^vQN%C#>G`gO;I#xsHGo&|T z#q;jFZJpwy^A&RbA^dp$C)Re@TG!6={v)tjO9R~TWl4Du>2i23OU}Vvm&kM6p<>84uSxO&JC|Xqyp*EQ3lp{W2^nVq zUriDCZ<45Jcd@-)h-yGOW|5li-LSz998oNf7C@l_FV=V7je!{ zfD*@;hWOI|#Qx8fDnyklB=>pNrhY%iS&Cbno-FtA-cC7#N+Q?G^g|Iw5;A&awTc^A6tjX@ibh_6Cm-2g`1C1`0a8msOZCZGQI{2l^XJ*DW46f-OYIhzzf!`h8eIM? zbd1RRWn8?YhjUW-l09fIB=fQpxn)lP?|x-k1;i~pQHAylGsgZI=DLmb3@=bBl0t3Z zRI!(iON6H{A45&*FpMB@Z)+E|9JhPz4Qf??Jxw(yk|*V;wlvfhv)?UVR-AC_qv0dZ z(O&hA9>%jZ&;sSUp|9k#;B1x!L>0#og_3lz3%cWEqNBaC**=#D?g2(jF#Rbx>@8D1 zNJ%M{Z~b$7$-xv%t@zc!`Y&W%f1-28*aL#P9m}>Q(!n-q`OYJnAf=q#qsh-MW_-*r zF6*I1E!0XY!cjl(j&T z5Dc8J>K!)bz}0J)XWxDKer)hrBn8$P%i1gDz;Ncj>>c?^YhXj)%iwD3bG?d!T%0g? zjRcQRm3pV-h)z(J1)*!04o>85p1)%)BFmE+v=zf6x6^G@V3tv4q-VH7xC7N-lL356V#_4hJdYVMQY0lYm%PDr!d z0-z<4`3lHyD$>BLHKH9sB7(NHa*%np-o#I9PNYRCi!W#*83n`HR_br5y{Ps6=Ew8h z-&>46t8Fi>GLeC;6v0NQo$rp?vNAB9Es$ISZ$bc~c;qWQaXyn+K_ubEPG8}Ad`^f4 zmEQn<|IUF+Mo)eb{Kg%N0;}5;CYH$ETZ9n|y76<(?gAIF{5IFxz#jkCJN;2#v-0_D1?a%z{;rr}pF z6vlL!X|@Hh(UDN#vp4pH&jK|Tr~Q%xziB1XIQC+r0|vX`_@a~(2vdHRHJ38pmgbHaofTo;spRstd7ist1I7;WJG>DunPKWCPFB6du!eY!1z-9#0O{H@(R%TxFEsl91;sF*B2bn%5#X#c-I|hwb z{FZdh>HM`X(WVg<;~ZBN%wU9E)z2g(J-I^54Gr)q>qsm-@O{rl}pm(1t+bs#@?gy z>Q}%j`xTr@$nu-_{_{V9v>pORvCvBN-c~~LhMx6Is4WmRlefbZT1*59f~svG!c;AJQt4c7M?zIGid>k{kTVJrn{%B zW^wBoKLQxu1qRLW0dAmO4=nLLyu`=orRP0mmMHjX_FEt`%)74<)TK|GP6?z-9$kN- ze(&3_-hDCq4R+haFE;+A$a`qE=MKFp7f*!O{A>74q{7`j*@$0^n48Ls4N_2>FmZyG zxu7dF)d7*Fm@4o8qM{I96cv3FUen77O{AY4>G3s;11IxT-^X~F{u3W|;Ib$Rjm;$% zE!l6%(nt*WU}=CYjlSJqmhd+M;p5c&qg4@Lo$4NWl2G!p2wcq6)0a5{pHr)m;EqY< zIP4m`k?EJUDs%9Bz^c*86U?&;sE8>0O`~RByfhG+ju(3AMd8RHx1j482DjMafo%^qB z4w}HZD(@0l!aVoIOW2{Zy@yAAcQ-QwG3_jC`ZJnu(iM34@>A47=loy5Z`B?}45PW-2ij!GOK35YE+boj zppanji-)5vg&0h80pyAQBy4Y+1?o=P1O2hQwa*kBC0#!PDwQrXfx@-aemrXl2_>Kx zsZvKQhmvQ%WZnuB67+%l$`Y2t`B}C^F)fKYVSroOXGvq?bFa@zBzEh7n`qCHaXo9=K7Bpy2gPcHg^4c_1=dH<3vTU_4 zTK*l@wLAln;Gtx^ZtsACvk=QU4k14wk)2S|ZcWHcDm!7A8@5Xhif1q;`~)l*WiUdo z97LK+SeQeML}o$Sh4AAM$P5JFG}7BwL4E3)5LBGVJzW}?~IPso9T!DKjvy3e{#N?Gng%Dk8q1l z4#$H{N4&R05pf)M0rnVpPcdYbg}!ic6yvzSZmLG%WhZ!*gU+wf1@En-&!`VsYOm>FUM&0?=OalzQ#hoy)B6POEWi6dpG=(jj1f#SkS z%v|dYg_tDLt;Vaa!t>{k@mAOhVlMLrHhGFwkaPUFP=-a39zIO;^x@nPrBH)cbN{2- zTe&o@0DAGQQu3KP*S-QP3T&6`5QN8R5*c6Ur}(BJzzn5%qe|90QC|Q8K?X6Byakz; z#APXyOk6R>^KOS94Ih^%qLNWa?|f~BLjZz<;F(|)9Zz%1W4~=*{6(~o%C!!i=NuS|y8}|53a+jL<3Y$wDurMQ2@j(1RlmJIyPh~i9t5vmLuLX2SmqJ}JnD1h zIkpe$J9FI?>}!&2K~8|>B}_M?^SIOd7h=ul(1WAk{apJn_~#JI;i!DRjE0ttxmBu2eYdagKpjvW!3@$RDLf<6uy*R4Z(;jI^?{KDi4}#9I(2AtJt;?Nf+3N@?T9(! zC^^udem4jpXu>_gxEWck@;38UDRjMIclI0m8{<8{>HdD49nw#@O9B4ArR~t07@&$% zmlfM2KSDm8(X~pmT|RSW9KP6p(h`}URrqX6YiKAp{>u+!xQl1yFihFQj4(uP=MEvK zK6~$5cJQRPwjMCCq+)6$l2(vcXgUWz6uBEvOX$phQi$YqRqt+0E#M~`+MH}`vuyb; zw|R#pDj56_TIvvd3qMJoge05a3WT8nEh3Zv9sYA1r$Tl; zJZ=PVQA;@VVZ?3N(sL+QdQ)DJ{w?u%KjJ(@Mm+NzmWsx3y;-nCIP=K@vCb~|ugGi_ z1Q~)lf4jK?>)pW=cv1N-G;~;88x_qNL1$?f6-MzIdrpsH;&%ZFESQG#D(NTO60H3t z2XqUSNnn>p{$g}2$i-U)L!}6r4GlMH4z4tjBlzYC@769V6PF|P0xEDY`J^f%f=5d( z7>Ac430|fl063d+5$=En+Y?nX9Ue*Jq;E&~?~%WZT)u1hD{1~)8jI8VlQ&^}muiFB z7{3XA4N%~e?BqlRQm}zRQx1sZz5xa$pI67o%0J@qroZY&Bqdb;$L++Qroyvz+Ph!q zyREj*;ic$wmK?U!M`tl(s+;r_V+c*=#>n_jS>xru*Y=TI7tNRUpw&nC(gt-Jl$1WVqEaz7mIIP~;9TM=-Z5H7Mg9Kd0;KSeCG^9e1 zG~0gf?{!@^l>07UomT3Oh%qTuD~Q#>L2sX`KEl*vPV*tGB3LO!KUmBYHLwfWZZOLL zIuulq82xJ&1goh{-bD;J+o>6PdnxUrm$J-|fvs-lipbZF^k$1@aQOxjv;j5uaHgdL||f zHx9pLY?=-J+hLrl2$Q#oO$R#l}U@*g2;ZFwyz(w)auzvPdZ2bV(&0|Niqd{hf_^Bz2sjF>$;-tH%)$e zO*=-Ir!9K_<#tQ)?@nkfjOhjT?O0}E$(>RQVn@9Casb|K-rB1>>>#DeLdJUk^Q_%Y zq~)KjeFy~)xUQf3z&bG^JYan6%Dj4?+Wi2anGt)#E<}Caclk?b#g7x0YTv$D4E3T{ z2LvlG8%Gak=ubERzBZ;(lEx%{SuOzYwF}WL-naL^xV>)~blg4ES^3#o^bbF2Dn_Lm z8bZIbO{51fEn~8~+ddUID%TAh%{@+Eph79>5w3Q({j{BrpC5pWI2KZN1VbZg8WsU+ zwG>EC^k{QQApb4yp`H>{y3Wt*<2CnDZ&n@4T8<_NZ7Q(9$r@8EVX9CAD|nua1NS?*g{y$awrP`S7_ zM`P$z3>H7GLOQfzew`sm<~6y+PXjK}qhZ@TZ~l~!Se#}%elYyA#_4Ay=I4)6!YtrO zgyp^Xrfli#zY)4}77^ljiX}1`uC5mR{P?waCwfZJtO2 z&m$6oWJqDFu@Kf@ev+j<4Ifb-6W6|A_z*HABbgV=OCv6UGk0=C#s4$1e1U8No5HV26@f5T;(@3L_|h}VUEDPbK~O2#Hr7X zQ={`Aa(Tr!O@|~R6m}v0ia(N`CRSXVLk$7IDPHx?W{8%C5T2uQi0gr`HhKt+{=B)F z2jLXr{`Z!Cd_Db9Y*&O8Vw zK1}%_ocS;b2zOq)j+mypJHe!}3c_{#CU}oG5YYhwXJq0UaI_pabrWd z|75SbmnRd?D3Z(j#q)dX7a;IU0Vjf9uTHD0>mshja9azF9Ie9dK|wCAQ|3?vzOt(A zO2ArysSNNNEFVV8pVEz53}Nf*P|7^>v^U?$;MD$rohHkSyDT%(IBPEtdt(&t6sim7 zus69!s4mO$+!vV@f;5 zw|TZ+;mkNC$8Gr*>slF*BH(R7($GR&4+HJ~dh;W)(+}8pI$~^ex5KjWgak)BM!2 z-J_QQztP<@Tcz?@3E61m3Lw$J&*^ z)s+748H5ql{48mtFhiIj#UO2HFic6Z8#OY8sO;@E$;gyFV@tA4vSw>RT?`>9TehgE zD4~*~z5nyR?>*<9bMLMA{r;cN`?;UvxYb?GdEe)KzR&l0l)e2%5%~Jce=SZm{{wkf zmR<&H>O8EfKMjF<=|lK%VUMN9@SS~6J>CJ&6D0&Rzta#*iPDgaP})R8^QfXE*3`KK z8~cLfU;}z1@C30yp(SR)RTldWz5b~72HcH_a35*Z1XGK`S+tw-f8-Ikc}KWoRUGlB zvs2BYu$t3NP~hOm-}fK=<{!TnAcnpMH-vR@CvE)x?+`d@DO8I@+ORI)JmJ1iCc$dB z8`;~d`|F-2W?xQ~d^re>3-7blFslQ87hC|OZk$iyW_8?hS^dmRX83^UEbA8clt@rh z(4(>u2wbuEl3ht$?#)rE@*=1+BWH(EIr6#hcm;)Pg)HeRX=C?Dl? zIJwo}8m?ZVUq3%B`ta=L2Gx}P77*b$d^5^hrm*z7(|V!h)Hp-y11_5J#Sv&EnHG(% z^Y%I0^^$(H4t9>{aG%`8Xy+vRgd2jJTRAERl@sM>YfEy6g0_)HF|){~sPE41vj;qf zrT3JGpp4bo$M@?;TWlQR+ZBj)xLaw!E|cl^^;one51v6cZ2v_F02H&5 zzGc5B!A5-TpHe?lB6LA+&*}4A!p?N=FOX27h(C{|MNiOgwXwKWMYP`9k=p1?z0n{G z&cr(ca4waA!w=!_wt+0pE3< zen`olgfF}5sStY$thxBj7rSEkW&9L+XHPe4YvXCY9&A21eYiBQ4I_pZ-6XsZ%IlC< z*8~MoZdo|8evx;9A;2a~+T45W=izZ2Qg?e0b6GZOI4FunL<~SWZ#ozz6@pOWhaUjc z>0uh>Y04X&@TglJfy1<2ioh@27?_~v=>r5F;L&P_GiYPsUGZ5693}lQL~N94UKlZb z`Pg!ZOcb;yN)b2~_nlh)Kaq_D*-;2OO)tMM9}CxTMH6>Q-;DO@S%EoQ=N>~!FF2uJ&3#9It;X8IBy zn{jk0Cp(dI9*a+b{F}>OT&&sYC6p5=YfwG>Ol&onI9lFjQQ9m_5$gcfEDV3QC>NCY zBwGfa&QiuY=^f#gWAxT!-Yp4EIw%K;KL3381+Xdhn_i$58_*l!d z6ZYndv(42%>c@;amm6jyk2U}+P`qZ`8OT*0cC+^;_)1Yzfea@#e-7GBipq@&x{Sg^ z^=cq5MIj!AbjUH_8cx_gJv@>I20ZLYA&eydqWqgwV8Nkq4*&BgTug#bIlat*assQm z>?{1RvZiQLP0`6$;qQN4Dsp7vvb2$=#PQ(Vj0eLrTTivhO7nP=*80mcnrDEx>%(|( zG2<YT?>=Asi0&&X~}|0B+D3aL+=Y~cGdSzdAbhW zG17t_w_9W3^33&#eG&9y879yv!)6&xgYj`wAz>lXut0s{%xU%yvv3gC^AxION35ev zZbV!R)R(Nxmh{Db_7Ls|6ivCM8``^xGc_tA8>pRkgBxkZVYlIrYSBh0>@MXu8ser? z<)=x3I|v?#T}g5Du-ngJ{+%y$J#%2iU7|f%*vIt5fe-(NK51ip)JW$<-U@n%sz=F_ z4|g~E#G<1F;%AfLNyka^Rfb#vQ{fHE!EoYhfP_LCcZ{{$_jul939)lo=w(>7oHIE& zZglBa()6mr*@`gl6Lxy7B;s!0k0jy~AD`dp+m#`$=j}!bi@7&B9OQR@M6OH>^lsvKdB7sGs;;A-6Q*H zN%%2e;~7=U9Low)UOm(%+ibB|r2tZJ_>4x!V2Z@RTzPArh3E6P=!e)1Fpe4LZQQEC zSsG6~EX21&elX^ViWc`=N7?FjxQWJyt3cp;KJIKT_ONP#3!nck=U#5op1e8B{MsPZ zOlx+_c_%hEzvg2saM3Y%JN6&yx7`QuRnl{;&$!JMfA@R` zQW;$&hvA_H@dH{?~Ea86pas8ES_+9{Efwv)9S8QOwVh4cw_N&ajS(tndaR7=rKUw z{oO7168$d@&&k<&FlGL&t%V4u0|o07Hwm}#JIisK9}`}DoC7>h;YA_std`@&VP`w> zfW#V#sLC-gcj~>e%Cw`&&~YA%wgWZf{A-)E3IaN7%yR7GhlwLjBVlsi<-fGj)Mt%` zsjhvDI{FU5X8t(;J&#cuEeydFg??GfCY2N%VxIZINNA_NIOq+2yBVP?%-IyJ?JUBF zSX@xxZbU)26bMBGVIG7S9;JZcna7|0fY&sDe|kgOxYC;YlmR4Aa*8}WsfkdMjjDHR0mB6u9OU7zRC?e!3Ew7WLT1Ip?*+>rmxD`D*8cC zu@$H=@{VU3lBz3v$JF4KGxg-eCn5?ZV#4qwU0;<8x2MdUQDxE-PAJB3922+m{?K#R zv|omv*ved9aZ#edM%{O`JJWMRyTFv+j6!9~Z}!LwzS+U7(e4;HW(UIKn06N?5G{Db zv;o~;&WIgb{sZiB$n}8a4K(Wh6YBCyFRVo|KZFq%ms2i>5FnHs*LrwHe`+6Y{d2~` ze@rlOE!vLK5%#W^2^}7!M)a#PA-EWZ%k<&!;=hb?(7(AmQ7`pl?TBM{GI$9L4lpW! z55Qg!{>tcZP}hTDcz_ivyHD)+^Tiu9vvmx-6C47i(0WhJryiPoym+PUJul*3mX*Hs zX2#!ot^(-^>`sE>oOA$GiSr3PBw=oCVxJnLit;5&#%Cu#rxkq2 zrfSh%Oax2=jBiC8^^}+j(<&qr!11YzgcZ$$@H=;f`-^2f`Z+5qYX2(k4E8HjNx@{7q-rcP`jl|kvGQEw* zsSfXir~k9Nd!(bHC9g z3dQ0|+QgalA%S;bZ74khU@Dd>GN(dfHhZtIMLV?0r+`F9<~rM{R74(nXJz~1+(B65 z6A}$oRDJ^kArI+Sma=(&LBR5?qig)jhs54@H^eARb@E9<9648*RR{k%nxuJPa`9f3 zSMU4Hnm6&sy+(n`H=io*@DB^uZuj!eR%PGnHF_K`YTb#F_1`a#EYbo z$Pr~iJ?SK`2iEehf)Q>ogrV&n>yE(#h`4C?jN1oW ze3i()!Pf09*Sg;CoOw7$2EgTzwxgmd1siT2uG42*zv_a1Cw#GPlb!@6q{;>P| z43B7F@W@qzVQ@0fV*cKC2ZLgz$ox%NAZ5|!uWXT(*XKFzAYgF8R`nAP=f6w1t-IDH zqhGxHAWGmB=sVlKn|Gl5?$BIx;Stx$@JDY*wmfWeufsN%=p%pwVI$L{W$$y~=#qSD zn;k2aMvf;zKf&vR$9XK1&yMHOx$sM(&NzduV$9Zfdd(fNto|$}s#_^ey4$Xp=^ys7 z*Qk(me@BrxF;dEztciYZ<}UXe760lGUskk|9zC}?<6x2jbNW8iXS-ngFSvUexT(nL zipax;)ppSf)!c@;sn7pr^W!kvj&H|xjT^8U1o+90WPJb^KC;Wn)~+{A&ky);g=F+1 z@$#e3rjmN?SK%$dci}eX5D$01;#Y%aCjtPW8=`qt{sfIT~g71sD7NSCN z%4Ksm2W)Qv56h3a9><<*HOhxWPmu2z){($hL4C%HEV}j5k5G>TcH`wBs!9D6 zdt$NY4DH2&lNx|fmT`WT@ujS`UukV^H*=x1f(Ggnm`nfA@Aea~Oa9qJF!)w9=B7AI z-g*UA{4YOjDty1IxMd3nBbC=Xu+>svHmFLP)+*Q+K@dGG2@j#q9xyygGY~mAG}*?6 zGq>QENP*=)6U-8>aZe&TLSb)$shv$yc%&O_sppBD^9gT(!hVo+lkQF72fo(gmhTZ0 zhetdCom^xH6yMBQMR*3s>qCiuGYcbm<99iq= z-ecMFEJBinxZ@-nZ!NY7$3vTN44h#H?3g_P$B3ZMYL|~|>{Sh;8F99~mxhB$tt+AY7@}x`0#}03;S~&1U@VqlmqwCIQ$bfM7re@wp%10a zsyGejMua>wjsM5nrFjE#hy=yfmr?js1kR~ZR`d{4_=>iQI4c zBy39D;A0J99p=CXj*mi&Bh!NipYAZH7oWO01_u50xpOKq=Y*WdtqC$ZmU?(#-(^md z3T_^{v%~gyKM=*^sXu6mS1)OO~mxVEMUlSFguItxh4B<@w;`e_cXX5tXDS zI;+p$AA&JKe>WH6LU;tEIYQnfP|&xP)mfO)B`8Y}oRIO0_llBL*b!=CmkH~tLfdx` zsxgrw<}zWel=}a&?w7F(t&#urPg_Y<+mk9~bCuu*G3u7vu=+G34O7T_$3zEutV#V% z;}{*(9Fz!1#BAMu)T-0DX8KpXi>L>g*}%I<Z z@+h36-i1&BxQ{z6kHW1FO_@26qHuk1R9^+HIRDHG0l7(CqdTlfu*rBgMtpd@Vg+(@ zQri~))3&Heb#e1SKVN-ovn~T*dh`%>yT~DOs8sk8Q;d`;7Xx)n1UcwZZbte$!6Dp_ zg)D&Aws-0EbTA~h)WK5fcS-EzA!0M8BGcTIw?6jGDXH>5;PB!guTi8?3YEq+`j^b~ zFVhw-Xf#NXMz#k8ojA#pxE|YTs z0=ks|GFWI#s&$P9*)}A6$m#GQv(%=S`h@0H{@n+3A<}h7UJNdJA$&=3nzSt)Lg<$@ zD+_Bjy;gmJU85h7tts`37W_@RTae-**1{XG{iNu|1j-) zvhzn6%%xvv61D^JY2aefO0@O_c!KiuB^chLO4Uhw_aQ;69efZOFD|&Kld|%=ymo~Y?3#i~~!PTG0ibOi+ZqIy+dVzu6 zn7AKo4Hi*{#{i|@52j8d2;aDEf;y?&!0al-r zsB0r!M7UZiBEMp_0VyT^*;pKxlr6-_DEnRv{J}G=-B>a;khob|;UV`L5m2I_G>+VY zaM>q>Yf1N%Dpk@d4Ak0)`69pVU6v?NtC>k5`f>Jog!4K!odrP*CIGc*C-Aky@O032m-1 za1`?(%7%w$mr?w{y2uZJB>ot47?Q5QvJ`Z5n>e#QI1_i!;Uhj1gmc*awFJg*mtS=O zv?gO>gx;v26(MS9(#iM%J=5;xnOcsa3bUM zRR=j$gBbN3d;iZd^n&UR%ogXmv%yOx_1G;&oKGymc1b_OWcW0lvn2x zPYfe1^)e@WURwqo4u8IGi@sN(VP!(eu*5?N=HJ21kZ$aeJHzYU-Zp^D7Z9kize~&l zgV7Hh*8WZ?ac*B=Q{f-rH)Pr$Zwx-Hh{Q%5cN`mx10dE7WUwg-&D$GV57d3|ee(0l zXCHl5wjOBpITk$vc{n{pya=vj+)~Lks$sR4p4X|o>S)QfIfg_B@Yd<=jMNP5exQbW z;ClaP=8@^=r<_K~q<3xBp+q*Kmd5pPb4S|*-|W&05J2iwC{~Dbv^e_j&>Szf)Z)&> zHHHiFYL&yaSeNrK&1!g=pJ}y`ot=n)HnnF-Y$j9-hA3U|*N?ktFfqD_VG<#yGVV z+Q16R;4dR!eCvPwb5dav=t9)PT10@^yj8G51@fe&dsW&nq5s@ua?Fzwb_-xr=5?BPf;0YMI&wcPTa$MD^91W{b zP*TM`2h$ar@xWFfG@${QPERjc80PGyf`mZ3>IshQl3-Uwt;P#*PUNacB3*Fx!RVc; zEN`~5u%%J@u%*zLTz9`&5$Qz1c@t|ar@j}LthuvqlIAAG44XT`Jhb4Ie>G}U#X$~oO;lOir@Jlb&WAqlXL1g1J zq=t&b$Vb z(Sh@=@JlM}dkoy^+ev#GYcnOGy_Zqi5ukOD=XnF3H+VV;I!`oH(VkgNIcO4y_U+-eq?7vsNyS6ocgL%9XMMbSzIdH`_BX{6 z6Nf;Bb3bPLD0?bS)7igsz&TUW^dE-x!XIn<&r$Vk49B`H^XjRk%exy{Q?PtsVDZmz zOp4cI_sOaI@-RH60sV^jGzohojw9th9b}g;J`&;8jAMK%eq8^q@Z!F3!>Dgaq3caI zAq1BhR&jkg*swDj1G;zT4y6;!DDP->mz&)u+7E=l4GOc3uhP)b$`Qq30jW7M%k<%67VMa&+e zIhs@iB;)u@Rk@$4n43;{-fW+FJ>P9 zBDQn=htAbQpLzc%{j*Cwua{$Z|K^=I-a8R~>?5WRPW~_HK7sV=VX*oWi_jxAs+sRE z<&~>|D!@QU=>50froOcjj{Dp{@4pSez}$sdiW#Ht1GY8mURMg6B{*7%wJA z$Wl(#VnGi8E@s+ss4kwHE|AHq;o-+kSeV@o-1N%Hv@M5rg%_z1c1L0ND(?L?Ez@#w zonJy~g`d>I+Bk)dSo_gK79hq0xk7Y!pY7=Vti7(%@v1%iUvvxFkHWx=A0Iabs+~{L z&-1`tTvi~}2K$Lv3ddTel8$dOX8@M^@{)u&_e0N@HM9 zw84sC!l)aukIm5qrdy2un+Ql^gDUdR=V55FF||T-QgH-Ae8|Ab{97;;CmkYHghB;X zXWj>d9smgly~`pQm{R^!In{n2Bsl0J_vD|*2UlT!Z=Io5&tXTM7 zP};Y;&UHRIXT1dQa2VjBcmOa;N0O&`k|zU_zA*k`b|Io{A&Bh6;xf5flM<>u@5SI` zErT(Ht{t&0+hQBoZSrWd4V)#@98khP<-zy)80o6{=@5Z*xrN*ZD9pQdGyR0VGrnm3 zC|J?(?2$oFeu1E_+J3|i zi-dS#0IkYI*8DAp=kq_v4)7=hraWdvtp~%hKp$R?80sbZvT_^!1nd*T(Vms&!!_f)czK|mf*h%&rJW4&- z33-seTslhOfmkjWcnlzS;TMePZDccuDPBG&NZ2zyQt7G!-z#`nU#`u^6j4&|Ss~rq(-nrUDr|+xpPHUOLH~=D)sq}Q90_@= zAUR(~s(5dIYKNqO7)Z{k&7qLThJZ=XRxlv26VmRoYv<|KI+-^x%+fq`xY5;ai77YC zzMS;0>MKri&gZ(zK*U*QzsR{AlGg=(9Y_THx*_=WO#XG%_Ucn#b!GU9&VRfa3fzv- zEZ0)y>UPz212n(+t^c6xS_ku52eY)LSi@%7+nYrnb|v!A=!gpYUi7*|v8Q-YSB~8K zG{*>L+(~OhI_HZ6Uc{T)KbvL0TircM-yO5ibx><*Zu52IhU}!XoBLr5*Ah2#iVOkv zm`5yZV%=z_LJ3zffvkdQjcD`j6!_GTWmlNS&M&*}JxH_^+c0`#yDZp4D?P5;LiXQy z#1{bvmxlRu?w+v`Y!Y;q27+HlXgGRZN2Uo?BMAOHX%WE~l%;II$cs99#YqC<@XTYbus@_q&`)uMWuT0B&k$B-BDAp#x}%dm zBoAJe&XX|6^YJ1@juEnuf zLsf>{{j(T5uRT_;sV2b{f>`pry* z<)dH>qPA+}F)LuI1W8g~4tg}sJHh_*dOu~FvUl^}zvAdB_;qCA(8l1K;MY;xe_p9lM29>IBl?n+g;l$R zxG)_1iZONTy>wk{!vgdLtSj2aGV@xBE`?ozpHlx3;)+{rD3SJB+<{WbCn1LjVmX+U{9u5$|pus5F+bdZh!~?hNVw;=m6heMsVRO-cG-rWMUBBknF3@MXan zJi?bnXvzZTl`Lw|f`d%KU?=_3jo1@>S#@b-LZWz}EF~SYeG>WMa5g(9A)J=0RM#E? z{RP3Ef)1t$W}Tt-PFx6xVP_wtLKfdnsp^&pJ`<0;=m4D|Y{)Hb#ldmK!DvW`(;BD? zUv~km&O>ns5jd)yKPP736;7{?lZqj$i6m0CQassYQ!N@;P^Q$i=tPI61a4jdXD&mW zjAp@pS3VJ*D{$^ang?tCshWiq8nRs*+lvWzWWs$Mx4w`a8OpYfeR7_x5gDqBd=ei8 zV`qjHz4E?Ta@CUp`t~`Djk%BL|ghU#PA}hR_%N z2VMMik$F|}g{mvQaF5-UZ z>rB;lOSEpuAUSLt&@|eU*tg*H>^{WZp;09awYEY1&a_9gJBhw=;fAzS%L=xl$8X)- zzlDH^4EG)`wY}yPO1tHoq^~(3trV|^=B?4%_ut`l%ydW?|KIUCHW8C-+e4*Z5M&HJ zOh!;B8)%IZ4*on2j$^De&sh2KiG{HwXz1|N_7t+u6VvKwApHzI42&QH&Y4j$jIf+Q z>kUWzf9A$;X$2ya)ggwXpt-#sP9Yzrnf({rVB%E@84dI>A@7b?=&qgEtYz=>v{;Ev zC@oo%7#rf)7UgLcY-F~w(vJ?WoC@=Qr2`UyVShpvP@x{|fL235_C_s2#B95;Dgw@K zY^n3Tm;L))DyiAT(WI3X{_&>SdZyV#S4c+I0XhzylgLIQ{Vy-c0iTE~Q?+a(I$WX- ztpfzIa6#{8liKCii^lBu4cwf6#WT_m#44DiaERWZNBns2dHucTJya9PFv2kz<(~JJ zdOib-2a9B>R#v8e5^wu?)DFcb8rf(^J@y$w)Q+a{4^dQ~yjmrzuWG_1O^>Ml?+7s>xk4MS;EM23_6ms$;wso*~gbL_*kGK@2qM0ijd5DCHi{Fx73q$)eq@_CUS!TrqQL) zWpi1PUlb-yT7eoA!{AEh#V`oFgR{xz#~~rhy)UhY1cfQ2U#q-$t&$LpwNF2t8 zs6>8Lb&td-zP+Jp0%;v3&6{mluc(lakadsp;Ep{R|6~VvWcqAgu3fL1ht|=QCMa4>% z<+rmifY5L;5qg(W@j~#1V;;ZZphBZDAZej zmUy*zf@W7`9i*Q`u(O~-1UmdqE7jS1w^0yag+~FiybWE)7}ByS^#j0hHjOOF9zj&= zkpKU`p!H#C`okY#G2lX~h%AO1N1$buDr0_zN`{IoN4C9y(M%N;Yz%O>`Rqpd-_$TY zTDo`_xNsyU(Z2A5iC`#YDV4}DH4Gl>Zw$QfZ)Ho%d;hB%<|I+WK);V79ILva@J4HI z-#)KXG9VCRv=Dv7G4vN+YbE!!e7UX|IgM*nfYiJR?PNm9I;Vt(dk<)Kv~)udju7Gc z*PyfK)Dz-I$q+I?_w!Zwkykg=(3MKo8*e5B?@OqD>ApgtnG`mT8=|I$zB_lN)$BED zmp7!5@kjr`-F{s-JpNI@;*@Rf(b=&XQ}0o=N^&A zCpmj-?7IiX`S_hL>$MAOE~4lu9UoBryr^^(ez^G2E0R4T4i7*NT}Q-MkqsJ@#_x_e znLhg{z>2PY$;Z0!j2H^s4;(fC-J$Bm9%&s6r7-2=$;fOrm_Yhs-^|6XXbEf2wR7;? zTkX~;0rw{EJ@nsm^uoTjG1rC;>le@Ca^|{5;W{JM8C-ApG~{;1ZFluF>d~?{N;VrZioBIEvRn_PG5dGL(;-1lSXfV#em5aHrUAG zUNB^|vh6rgmB|_@c&QA(52Kh~5?}y+N%G|s6m!aR)+?wMsaSkj~+=y0_9lKhas7{n&<8GuZF1UHbbMcYF4c(2;r)}=s|LtJ{TgS z9lt*@WF>I16rA=6G?vV^LO;jvijyFq&A zt6Bx+ZLlopo2gZc#iS4jPL(tO_zu}@<|?Dv5f zZu`9Xpy@PjoQ1CNDde0d-S1L$@0v>2=m`V#^*%;e_Fr+{dL1+{5VL?OQ|{K#Baskc z(kF1v4h}seL;v{DLnCv0_N=`{C3bdXxD5z6Sw0{8IGOzjU!a4ri%h^V@Tk5%+Ka=U zG(S3ZOD!{TphKWc+Z zs~=JadzozJC1l`L-Sd#OiUCfQ@(|3}MP~29LvwZ@hs%M^h0q-690NN9p!1Ji-h1It&|uljMFp|X`O|;~2P)0Bd|kJSaOqgA zHgL12Pz)y6x;A$DFg0F7<~f#N$OLLyFS$DU8u@F;x45h~YW4V#w&9($c$+A09l(UY z_4Kk?%e5~&_sqJl<@s)m3+%BtHA{l&xsngBFF%PUZKAOye3Blw(RaB*&dQ#!;^}a& z;x)?=DV(;l(En?#E;^J>Z6lay`T3W2h1qNyl>2=N9RF*xaZ?=d`nR$L#kmdh=VGM` zmUo`b_WbtF%6_h~?p$Kw>vBBaC-5)|4Y}PnEb|Efw8}%9WW;%&f97Z4k>K!7%!qUC%T&?A^W^+lNvoU+ z-4N1cfdUmi)x@lWCc6*#HaoOQ*7FJ>eHTu7ka5!nye!uWt2_1n5acY?r*GJ(ukWjZ zlywXu5#+66#V#+axt$S-neb(v9l38F<6Oz_uHaR9^UF z@;SrmnS|;j))71>PKx5btlkCORaA;X>PF*bgo( zk0;vnkV5o4@GNYDuYsCC(Sy)4#UXuDEj|YqsX^nkH<#fZuBtB(;QVCy+HZmP=M< z9hHnHe&xefY`VHGqjt%cZ0Xc9HKJW$hh_Z$rIl0UxdCNgtJ^+%-q2VTC z#YRQ(&WZgtvwnZ&)mh!IoP!3Ehc?$?PWX=$HK50m<@fL_E$37LI()hL`lY_8pV^{` zaRbz2j!oKnaNA#o=7kGS(ITH_`|GtAeG#+${qpVUTas`27|$w!69c-s6l%(thII4; z;Iv@g=djAv-1=k9>yPHX8u@gDFPhh>6N!j(5qBj4lhY}rg%V8u*E5Uodo=QW*63;P z`!0p}MX>w8>y@tuz_ytD3=j&&TZ^qovt)d)7+HxwbjZ`i8W;A>;xxOR5k(9zRb~-B z$$p@zw7E@7fXTTua^@3#iX@K~)pvYW3h%Re&xm6&@O}ddXLwslaJGXqWLt*9S@2)( z8sin++dW=)>p>xLib2MDvl4`~D$7{sryUNN?+)#hkcH-fM>@rmQr5Fzaf;63$VaA3 zR4e=>X+ji@nV_l!v|b52^x>yW$y_u;AKv>OGHD3+D5~nuDb&U*QJ~6PB)1d zr6XBa>5iK;Xd!1RiyQyd7TDk&TvND&de==Z2#fF31P&qjM##j)$HH8b4pW zwk({XaX~a?Cqz@aU%Zu)hl;Yd1lZ#{bgbI!u>D`4_%A&w*Ia#7T}CvTS4U@Ibv`4+ zngZBK4pUpX{M0?CInFRhZ=Tepi-fySzn>! z4G8meM)CQW2Ae{a^oruyi|0y;uKAW2Izi9=@gnlT7Wz%})8Dy|iciV7P4B?*%84VZ_Qp$ykut z4@1vTvt6Lnw-zbzb*a<54%bfV(Efqu>A8?-6QEXM`KDoNRcTO{{{hk!hvuoVF*301#Wi}5qTfIb}?`mor4s*^m%>|9OVyTPLuW0v8(>DH1fmJlZ73h z5t>)Bt^tQ;Eor+ds2w?up5uz~+R*D!H(1-D=;W7~i@Lc!WKd7Rcf0G{PSnpIl*-8m zi>K@5lvGug!l`|VDy5bbhXhlZ_}UO`;B)mfRY8n?$g99Jk3RRU#Uai@1#o75}($n z)wtBOcDc6gSwXBU7(^LGja@6Bjqis`=NPF1c+ zdFx$0%h~w;-H&Zm)T#!HKh+H@SO5z?5$w_s#lW zmo9ils-s>HBoFO+(|hT&S#k20Og?7oY#Ll!rIlHw1?_wpWmRt29s<1XGd^-+xFs>y z_F(=j!u`(XO5(Oi#hcA<9xD4JdvmH`VHJwU-0q2f)FVPW*y(Q9Dc+K$yX6w7o2`ZE zTZG_;mtzz1i`wYXMZ$ihsvl`EuC@sX*Nb z77obJsbKS7x!NwKP=Fnlj^lX7{t>Um8RXr84;OH`qzFKm-x;ZQNGYFI^JAh9LL^P1 zjUFn50LB!!HUVl0{L=GV;PzuILV4p}w>Hvr?=mixWYQU-4d5-@+o$*B4ZEvp9_S`9=Zo(dc zzhLN{j(Ah?y*Z&K_F!m5K1l=F-SUOXS$sC=!UtmeBvzbK#dtPnth3$F752nonWbaU z6$-mHlrY(E6NkErh1wv~<5OBOz1#8q+Ymn_7dE6cZ%7z3gyZA;joGNt55+*sL2?bO zM3>g+Z~JQQRqtnB#P^msd)ykE$u>m%_wv9U-^;bJ?^bQpg>4C1-p=Q3m=?WrVBf_r zg%=NY6jOMAPf=xoTr)~0ZQI-EdJNJp2pV=E@;HOrCfysukqOm~9j2~Z!N%Oiwt@Y9!>0#k`#>dF)`t03#+f??B57G+ zo#$K7I2dwf=A!gtSBOtL4Osy;q9k&o8d~X0BVRx~vNi@e@sRxD6L2qZtQuv9dy@KF z3m9?3MR2kB0bY;9;0yc=O*X@n@7v7H|KCaslh%eGccb(bO{L?pSyB*A@%R%DCMcJ~ z;}oS!pJ3tKU47r$qIX$pJ8s*p>O|>LVNalp$D~s%yv-lHghqVmh!A^q2+YaQb=H0! zx~u`w>Ase-z$nT+^Hz-nflK>9L(us9`0BO#t6`7Ru6S-$sPhW70(7|}Nmxg$H)}YA zgr!|W1z=t?9qI!gJC_wm6l)P8)TjyB%QSdye$XwL?#I+-Z zqmP-5hd7x^nNM{_MqCje1<&PboxbZ%j66%}ZjDqmWWN9bHMG393(G_wB^4?5A_Rr1=TuwHY8BjRQo$((D{QF>erH1nCVE2Y@j~Oh`$OVJsA2D6MIGbEj$}c zmf*+bX8WtXjlZi3+o_dVW|Y;!=zdRwK}x{59DHVIDE6^gz!^r~=>!Zp%i;A;rNbG# zVpTm98h(v#74%{V(8Gk@J+DsFBOvNoL_g(1YZ9ZRSGW9r({C6Gp#iTCR6HCjXM853$T#XBC!iuR zYtx{MGu6zE)l7HZ^ld(GRXbu$t563K@&p2wTr4wJKVUTkh!VqNK(Ck&lo6*g9mkdY zE<(_k>vPlD`C!-L6 z;sl{Jei+h->IwNwHOV&>fc}-m zP?#ADx}~W$1+m%EE>gimtw4WErE4#WP!Xo30K-`vksOSXriu?e zK~h6=j#!6gQ*lkUMKZk05!8(EM25tlw?jx=hQ^b57A||qAw3JMiM+Ud-{ZrjYu#4E z!RFod$aYG3nN4nD7O2eeeUr_XPg~DavzM#w{~(#!Z)f;gMm`?a@03uI0%*>y^up79 zVyzEY6$j8F?)3~J|5JWL?3bqp4T<7TVZpP!~!@ z?SPAa#6R;M`V4(7hxCaN1*W6Wg>no5Uy6i;U=*z7@*+Cj{OENO%sBMY#kbKC2kUNz zzJ(MGPOqgsrYoy$6pS3HUIle{yHJDrx?hQ$!wW;v?xmxlwjF8*z*e9UC z2hCX_1mF|~vCrFq3VPv_i`u};50S6xJuw^dcG^;M96g?B_T)M}`OV16YM7-1Fv*be zON4@`?^P+jZRhT*wkUafZKtP0k(w>g>4*V1({61+PC(pO@2u?NCF)o;Pe?|D4*DhJ zm0%@S;Vz%o+(rp|I@b3~zmvVq<|njWrQ40D5@EJb87{)$OfWubJVES{Pf?%&D_z^{)K$xS2*GYtA0>vp zLRdS)cSQ4L_NWn*Y5A6Ec~dVKIFWqH0DD{q18Dk#zExT&>s_2vNPu>uuLSoACk_|x z5DvuldeM^j0nQrJEjf4?iQ^XPPvvks{|1gqdd~2<7&s`4)S``irK!YsT6bo8C^?xF zyUn?)5f>>gCIKu%I>fi-3UGi`Pjx#V zFhLR#M`4~PN-j3H)8Ex#S3ikc`f>ZdlJ03G6H*|0!6mf{7fCGT!+Dj8O#dT7Zs{oL z*FmMCnexyg1zHA<1rbxOL7bhoQb3RG4FJqz=SnkM@XK(A^=Od=t%+Hml|He%DqV5M z@YEMwbBRoVsH(X*yRA9?=q&V}_TKw9&*qEN4dqoT$`>6ua7O2IUFWsMX=l`LX{)<0 zK;_qn@Q>~ujbm|WINy9E8cqM2MPHy{#x)*+MCi8RzHUUfq0|6UKp8marxcTXcJITX z)%3Rno#KgR#gno}X@{(ze~qXMfCI;y++aN`GJ2dNttz)dVvgYXuuTTF&$7_lshg9~ z>P?JuumgX=3K(+KhIlZ`Rg#3?%an)-6_L>^gY;IewqF_4bF;4{MR_Qv%K`DS@JFwQ zqU0$RwH*xVZVkbz?!L9f)Xwi>z{zUcE^nzQ^mDNI8;d7PJ64S*X-4JEn|=8E8Sw%yit-)0IUy4Mzrx}v%K=;~{A|4?KUZH^kN!khXX!L# znIpsEY=i$xAr=t|#L)#yusDD?s<1d<5S)MHvA7V9qhC>o#nH7`mbMagl2_p>`=00_ zo!4vpTlZ{5u@KLVOLt7~_8klYsZT~>SVj;+gTNP(i-+t~3%NU~NqQWg>pk**@DeLD zUL4ntf!*r-=Q1`}$>BUib-yjxAGcHOP`@LPV?y)|b4|D!F#d#7i<7v|Mh26a3-#l0 zXnOGdrSvwf0Y+da!`T+$t%&VLi3ucCsT}TiWYWwjQIg+=?{srsZ@nks`KFT<5MmP0 z(tr?CxkP2a^M7X_+IRWSW2wb-D&fbBM*i4qb*7n~W+g z=s67udzXI479Wp*8kfpa#H7q%s~F<~Pq@4e`_rSP)iqd_qp||`LpLH4=k($(h!xUM z)QiiW;AYZI!!?9CF&*E(Q4GYH@=qS!W*j#HF)}({60v0E$FPhrv=(K)ZcbB5#3o%`yco2@&o(SN9J?P{}4C(G$w0t|wxvCwUf=u)`ZHbSot7zH0- z_1*WiwTY5$S*H23pRbnii-7oL3)SMV1>|%opu|~ADG2r&{XbOKY38q6)9EzAId-)1 zSR&@br5j0O^gi%GTBdWa0*?3G1^aiR@Q(Nnoma1$P_ZfoWrbL;^GJML9E3tFjM0}9 zeQ3##VbXRvDn}7war&tWLD9~eHr22QfN6r!qjGOs2ms}=xY%_?fW>W^i?BE(KCscd zZLjA`ES{H-wY2I8P8pq!B|Hz^z^&28Y<$SV2$i+v-$4nLcsaX8m zBm)!DXnCr(hfCo&hekm#PbYIMGy?~ez|ezt0&{(*@^dKAF|gZb9>2nWGUH#l$71%g zeybPZJ)C+hu2#z^aSmED-HF29K*!O#%;pj-RLk~mHHpKtO^W*B7pvqwTsfkT^;g5w zRXs*spBg5*?{OKBe6D-*4pv+-MtuFvgG!3lXmDCVu7XNm(LBeZd2@dZ+lTyB%7#!8 zN)ubu@{HzY{SZbKes+W_2p7|C=9(94KARV>(6LY}9@RE6we1BJ)y4UPkIxW;Yvcb=(4mB6HfK3ZXh{ab-9LuOmRNy`<&Y=k-pMvAk^i>dEJUknLK-w;%t zdMtG)S!=iJrOdwtYFxe{iOJ%YlX7n!5?iA4by&2S zAexh8Wv5IU;inFNZDO(AyL)qk@=*p-NJ5Rwacy%#GXA6IzDO}IzWIS`$R&$VNzlgM zQwI-AL$@kK$xUN%y{@Fa`#Z<7I_uosx*KN=myiZ6%kFUlK8qKBYLV5iHKhMAA%<87 zn?vZ}wh;GIkWS*)Ny@+qSp0CGBM(&bQ{R4j|H0yHo9ljYgzQGkB|vDSn=+#N;l<## zh@ILrRZ=`DtJrpT`#p)h3O4QdZ39V)laod;L5rAE4oW)x^^V`jS~H;(?6@!W6#4J4 zIDq)aKu;2p3xhBXyZjS54;5r73dIUWkUv-q9<{1XN@3MSxE8$%Zy}A9?T1ZU5Vjg} z;&>&Nh>X6V9J6tOVeMhG>A7IZDIV0dF>wm?(}TLBiLuNE4o-6pfwtqCVpkt$SB zQp9;)eWLULKP5bm-vD{a>yD(R4224fPU5L?PFEz~N*nBae=DKJ(F;?s-?%{ESh9cE z^;le`=+A7xu^dt>MQXg4_RwE`G~B)jh~ZGlK12neXO$i)_UB&v-IZ?55(WQj($K3yE~lDrV5k--Uge4UlrS z3sJ!i+cYVw#n;t4JH2)4eM`{$Etnzst~I^}C%$o@z=D+lYiu1hq5C52mDH+WEdjhuC!PIlFoxQV8+p_Q{i;1pY(3J^9{^T+{D@NovOZz(U zgan(+5k6f9JncF#K_}p(fEAgmTk`L2Oh?i>2(4;$3 z-sn((%aKj3i?rs72XGi{ek5&st?MzaEDz{?U&IQ^ig|j;H}pe6DjYL&$lclB&Dqt> z2rI?xO=sp^RaB^eBL|(&6ePe1eJkkM2uE0mJb+4PlUq>@FMr^NlKdSC@8Xtly{AHz1v0RW1>k$+?mO~yy zJ_}c(@~2I@_=u)zW&l3bs+9Vwi1j}@XT8(f396anHTs6#?F-?aal!u3yS+Xno2yOqQ|O%58x+cE-?Jqd*G&Rcd)g-;j&}P6I;=bInRqtml>$QA%p(5NqGga zgdr_x??#2nTOUXsM8*DN0|7M{<Hg@@0zLlal;9#~O>A~Lfhb(`fw5jEq2eSp{SZ*&SeF}~ z`*(-t{Nt+ja<#kPYP-D2Z#Vf`k!E~UJ_+q|!{rdJjXtrFwl0>D89S_E48w@>jhBr> zJMdj)Kc}~dLnHx-WdjdCLH|w;?uac-|@CPz~2Gb4Nw++ntIL-KSa3XYuSvGg5 z>2j^7S%@0FYx*q9#fi)|$Bm#XA8!IPC(^63n9AfRG^eM*m&@M7n5~7?ljgdwFInE) zvsR;2_n3?`_<81U;xq_+g%74({o(ruVoQJ8kYHWfQA(+RJia& zNNb^399!yzjz_-{80sCaWUR4p?M^sC`Iankaa!<%M?o7xoKS{F97tW8*0o#Pk@T{v zt>ki{vBOA4Kmb)N)HSk_Fn6OLjXXBp@?yZ5S$4}Z?UtD7+OB~*1HKV3;~^>^{u|e$ z@#4Y@fq3+At}7itgCEHnwiKN5<PXLkxA$&*8 z{(#ls1e+(fTDvrEqmtUnZB*C94$#ecr+&Gn^ZwT%#0;ih70PiT9EWDSu>s{EeS#E} zqu_)AL|*n+qz>uO7HWz(Uw?Tx9s-Z~E96bgY!AUZ{3;5-rTUryx=>N(lFq2>$m~)q z)EYwR#8_;3-*L{>^N4|Cg+}STL(fTxV2>$f$62+25#=~5lc~%ng@YkG)xeIA3Q|K6 zHb7;_p28Tpv`n09X}l$)^gJ>9?#>u&P}14kim?%4=0jlnyULG59Bm6xe-I7FT! zj~#F8`gQ0ayEd8%HStm@)ubF;J6ot4%7a08X03b1`bHL8-%?DZZnuqQe$S$-7{-oiwhU?mdEQBdk z>H-JNvY(V4zPj7Yw)l0<$Q|3(WM!V@p0m~$XDoWKDTPUH^^e=jlk$HIql!ie@&^y+ zR13)&S(g1dgXSHe?|>`>ua?@VgrI#_b)A0xx()g3E+&WkikY|FDY5oyg^U}Qrr8SY zmL`unIm{oyr`L=xC6sO{L8)B;62JzQH_=)gP5jrcLHKmOLi2n@zIVl%fZ#!nB#sGX ze}=mi5Rc$AbBgx;?c&)4SJPdKOd|A*3;NYGBOQ#aCsEWt*lP}2Rhe2J7B|B)#k$}9 zRo&Cj6Y?P{?N|E+(mK(?aEPZAOoccsz9cjcO!f`3lwf~!5aOu`(a4EwnK$|MjOr;d zAEHvE;sv4?qWGUSfE{xx$Vk0|Z$QIfG?edv;}{o#$o01s?B9GK(#clQ%cv1VZtL2m z*HgVWG2XNd^kZ+s!VrgfvCz95+NT7OH*orf?dG+T4cHw^zSqC)w38t6g*QGEkw4xI zwJ}Ycfa1gt(i2P(uwDA}0q!bb>IM26@Ov)zDk!85D2>5rvFyZQatH8Xf59w*6hk#% z#=m@ko+ci(G^TeK{E;h;Wl}^AP#$WK)3WzYjs$P)TIB0v*lVF329Y}$RVt29-wN&t zUTV?+p7xMbK$w!-q097h*y3W%PoFzDp2!iEMm#sf@6x-jHMUs9ZVdkT8)OqYKsni& zDO?9X5Kzu(SIqv|b0t&)$~j3nkL5vj5|l+M z;kuePwT3LXPxXAyD=pDBQzPfb%~|_#-iDl$g4FVmm=f8mpqCQ_xrw@aa;Laq`;{Sb zsVkzQSt3E?JDd@JR5$dF-wN$z^#MrIrHK4IIPwNikHYCyr-P29U1{ZVwg2l4i|_3Y zCAH2~ZO5$Xyg`A15khpX-Se0e2$6fx;L$7vB5mN|I=5{nG`Uc_^7l}VJqJ#Nqy?Xc z#^8`B60mve=v34hz#vMEKLnSwVAl#hM<`sOi$-ADBHt*N>Vo-+t(TN`_&E1~s8^5z zaX<#fw#cWLlhz@8^JguRVOfAK`?q_yC6wqq9odBvVGUAV@|+mj!w}F1m+|bq$^6dY zyGo<6rEDhU%~d#FO2!62n-Dp>G;@3eg5-?STu-@N-w7zY|K=ecNwYni%p_BIIS>UD zaQW*+qpj{N^?V963;9&hC_5Cpe_iSfxe&i8gu#uJVwN>T@`W|Tg7(=C*G-6{(S!*F zG;E3#2T@Yf!KL8N=9`~Fhsp#ppGe9-+cZp`wCM&lxf zLn%WHQ3}lq23f4+@J-}XvpYWM^hW4mRt6C{V9vy>O?7_6cBZLelttr#GKVL0#V>J4 zh`RdLdIuVrnT;XDHr=V3jaR@ccK;yz2~&*0C?bE+OfDF)jVd-tc!z@XME4-&{hi~- zw_mtv(;2)0zl=_~z2?W{tj`KIcGkc8ez-R_Afg;Z<>iBf+l#J0@vCa%)=brFbH>?M zLmR~1^4%G<;BoSSJ6zhzx}g!1^uy{bwWiwFhU^SEhxA zgYwz7RGD=wp)H8$kJ99@mf&;F)^6XAvIUflWfM~1D9kBTb_v@2#R?TR^-E`&h+eSj zdZBWGWaR4W@B347@6waS0Odk`ikL3v{0td$Zr$3=q&xVldvF;arn+S1Q?XPzPiR0c&4OzkIS+D|lHW;7czW=l|MkeLFMuN|JMK|%S*mh)D%z0+C?pj?*=f)8P> zg|`Qr7pw#rzEh!vh=^-<4qc~C*HW4>Yd@95S5CUzWch3G=k{I;H$Nam|mUjSE zNo>VS3d*I)f_DTtgq$4-tFPiq&>Ax4Ub~knSD&fQK(F>X8=qZ&ekLNH_Il{K7b86U z*Hrkght8yt<|rlg8VXd-e-)(eQ5*q8KJ~?r0JS9s=dqh8;Dor1E_&Si@!K>t(Qc3= zZD?1!Ww_7%5MV`96JeeWlanld(7g~?Pu4|?=q3S7mTWp%|JY` zmIxvn<9<2rK8pKyY>5~srMyMfqm;I6ef?2g6#!h@69H!)kQJ^_8R{CO9E{<#a3Sy=WzPV`wi6>g7+;5i(6^Ov)Tq_XE2T`I~K@d05j2?*9 zi&1BzSDsZtKyWWkD=gRy@&H^2!{`-Bx-q_-QcpGX3qlH-+LX%a4PmT6!P1n7_Asu3 z<<;%J*Fqr0?5N%&*IG;kIpA1$I8S5p?UYW z!R!6<+4fdYh(g?nZewCsE$TCVG59$*ON+YCiAy|MU?x;Z4x&_nl)>{ahIkB+c5%w^ z4%Hm+F5?71!RSzctG)%?dh8q%7K7#(L=B)pgxHY~j!! zOv6An(S}sMJS;29K{f9*X-hiV>|ef*{IFnnp~`#03o95?E5jim)1?-fQ;+L!JMyGC zMsm#}P%^n;ldlby!}Wp`Cwb+{!f~6o2c;}FjaquHa3Drv)RJmJM2a^(=7UoBe3UBs zWJIJuV#@~jtD1-`KkM9;E$5y3PeTHJd?{$K<@qnBS)rwyYrapx&!9nl ziLk{Jg36OjKhBG;nZijHiR4vi(m3S76vhY1sP+GzPd zCsCT=%e5mo9_6zTIet8x!to2^wC3E5A(S{Qm-?{H&?g{rOysC~z*`trtl2in6K&fw zGm=k6b|I_HZiAmu2Z+(k^_0=%-1damlXE?u($3eBQL%8bEqb96 zAF!szJ+m<~Tq!6ILK#oPv7)zQ(NEVf>tg5oS)d$c%U;Rm=z3#9(P;r|-jm?X6V_bO zM|h7AtnSQ%a*BI9CY3=R;@%_LH)`qm0?%(!@60;{H$$pW0aLzfm%KuSZyEw9XTXPq zf<*Mx@-?5J9|1)EtA79XYW-kKgAQ0}IwzSQWDY9K@{n^|K~e4CD#K3h%bRPzTKyhQ zftW<&CBht-hJ@Ji(AMnTy>PonkZ@-X$l?(>Hzms<^45xo+{rw$%T3jF7dyS)pqG64 zMLgNJeo_OQKy$aDLpq7Yd4Ce4WI`P2fdogMD#wwt)=2oJ3p~34Eda-{OL&tH!OAn$ z+4_EeN`iO4S*<;7+>+1W$brbWX=k8C2EFRuqe^p+lGx5Bz=Dt_yyg2eUb5j}=~9#t zFV}4UeWBMUA#(0x21jntd=NH13E?Nek(=&X=zS@HPLf160h(N7u-9u2(kNv#xdU%o z2G$z3tMxRe(Dd8+r)2P@p^gdx9Ow9*%_jM+j!s3Q1R1vnZy(_co>QoQZ$N&-5IG)! z$cy*pVV?>+Gj5S$h#vskQSasrYXZvqm^q2}2jJ)@&9nu_{))s<4)y%o%$8C6khk!7 zOHsZePm-R(-L-bd1`-&2I}Msw7^)qmvo}u>aV2CdlVTg#!~IZJ{94O5`tE9XKv_I8 z{WwY=m?%DHNM5wGgIhd@hkN9P5iXEZj4Q&A5aNa+Z2Q@_9d07NiwUnA*lYe_kxMN} znHGa`sNQ93KG}G1SbZS2&CJ#epXl$>{k4^HAvuq`xZPvt5yAS{P&n(1uWEa~SH=!n zuWW!4S3J$Ron0H71RW8HgB!66J_4UAe8Ig3taZNl&!jT%omyFKw6Zo0i5*)iAXPpI zkuziYsQ9?4HTr=^r*6yGzxk*nQe3=|gMGZY2Q(6-X0+#>rFHkaX2qM$bhl)+(3;CB zTm|U)YbK-KVao&q!nK10Ym%17UmXJ&Gy=C7E*@MZV3#&aSq)61aLQ$;dAgs!^RZJVLGca-=ltAYw_^g+ zotCFN%(_81v2OaK@DL>^Kg1f?VbyLhTK~k>hqcSfiR;o1Z?c4KxZ~)`}kE zoSQI~SD8!{y?@eO6u!JuTS_X;Lp^+dh6%#Q+cSZ(5OU=c*FvzLU~E4>J4#E1kRg)% zDC{aB9w7|SkWtZ}hs9YEa8fs{cgLra$pKRYCQG{fz*$8airn}C`|$9ybOhdYGNA>u z8Glm;OCa;DS2$!Yo3_Q5InyKdJUyg$zv@B~IQ&yv5?G_)2S~N!a($lC6ube?K}u&^ zq`+Sp6Ya*(T+|5)_Q&q4aU0Z1y#Ju@8G98aL^-C7vTliB)ZkPIaR)X~_?nPs2dRP&sj;;bhLa?vVrL!}l26&57Ll6S)^gW>J~I zxP283p$`E~F3@cL=vexHq+JPEjp_TIv5%#iVZ=yTe%3)`Nu^@Qo+M)|qYSb{5mK~G z7#WcI^uM3?J>Pe}vt*h7bv;+t@hMK{eCK`d_kQl@ zzP-{(to!HV-QIH{X=n^<(jv*j-#TZ7d>`~Qsop0P-=yAH~ zH@>7$fd_%YvK)h?N5LJ4V|B5o#_qfHu5Rv$h*a=jQoSav`6VE7%neH%eQM~eL#GKi zk~kvcwKm#!7!rnv1 zl#6_=wf3^F%@*(x(Stk`AaNu2KbSy|!?8aS*j{uXs zvoa8lHwbQOo(fQn2^H`+SnXOG4!KKS#YzVu0k?@9>w6qeQ6w5(9JjN=bB|m7&=j!Z zZ0t#3;w!g~C^iUqF5q&y%y2oLCqBLC-vG$t-NdJIKj8cWpsq1;+4<+-a>mG$_5~X5 zlHPG}=!26(;C1pkR>Mq-%e)Na_H`KPP+6BujnM>!DHs}}G+e7SrSc0ae=PkV|99NS zFRC2!fb-m+^CXUGu600=6WklB8$E-<5e;dn6|cY*DLr>_(-(&1*v{qW=K?`{9Ma`C z^_{oG@BiAnpcf2!pROfW6XA4?{(<(+4@*WYzbI<5~HmfEvgpk-7yQSCsG8l$im zvnt^=lK~!U5!%Wx-UJj1OglCT1!7zjyZ~ci0s;0aQKq$LRGD{)gR(EYC#V-9!P$hJ zR3e}XoaCs8LHD}OPMV1GGK|__cnYqGJz-e|-LC@IqnzKzXwm`K!az-cS>BrR`>%5c zp8Bpdp>SrmCpRZ0Y&#($o6qF4W?%j(IY0c(wAN?t#aRCn`^vNS48+x~VfO^1#HC=I z-zpNO{I}XODq{1^E0fJDue)a*f~G0z2=KV9K}T~eWh!`_%bT->%@nT$=G_K)9svn8 z*0BCq!>_=EF)IpX7FQTvmVj}<+ew~7W;F9G)gdLp*AvP|x-k(%)=kfgB&lckfyq{I zS;eFR12htoDM|}NuquMrChqI*w!KVnf0O9NPs@WnB*`DoS4N-rsPY{IAvuuCL4D-G za?v=5aV6P`h{vTvBWS}#aBLRV6B@-=p25i`c?LAZrj`{~#N!WaN>AdR@odl~I{IpK z>-ETU-zspJ@9|AR}4%0^l4eHJxXHlL|=+`aakNHjcR z%SowOAFl_P7|i73t5^cFBDNgm5BN($qsm8Ml-IR)x2A7`_tJbx3c$G15-qIUH83*h zDwk+OAR6{)#{%rtDxTfUs#z&}gGW+hqrB4*g3*BZT^l1abYp(f?cSh9j$HEMDAMK2 zp46GK#0%ogIxVkU-(SQA?LOng&yK$iNe(zq0ZPIEAlx7gXhRSMs*IA=0L^=ML2uI$ z<4<8sIE3Be%H`afP%sIf3wGKhj9cRfIg-2IYvp)$UIYVn*_06rr|@g6PPL+D*$+3s zboP|_;RDm1jv+u8D|YN_*NdmNDR^fx!$=7jXAjfom@IqJWT|g-R>kt)e3sSLL8AJv znC_*lbajKAG?*h~KTMWuNdXUuoDFE^X?ssMc}ZsSQu8MsyE;OlG7K!E1S&#J4*nLx zl{zgq;7}?nmfwy6hg#Vqk^2@BnQ+L{6sp~w=}{KSbcgsklB}>2)yjOo=M7qJ$SXdB zhG=2gxdu%~%iuV1v-gL z^WA)c+xYaV%9xp%+|TUBY(2EnxP1@9<+GD$x$l}0xd_w=kw+0C54_s4l^!~?OzwHT%_Vonk@NQ5y+H^JkqsbFEAJk)-re@$vF0^MrIG&^06 zCf4j;K}_VPr|&y2a_c57^@jyw|?TpEKo|wp7T~O2s*vFHQf0nR`@MBnXmol8t-ZM1WyExT+xN zgK>E3wZ4qURD|QFLf<Ct^};)sB4V6bL?wuGE4$vQ1{*IefkcA;MTb4z!9^?Fa0(@uy#a6=gMBh|{4 zdqo?MWw$4YzHa>ncAr4CB0_YW&)$tJ^e%^v{aZNgRW=^Bs>KE^I;)$qyGgcAZ(*#t z-B3o41CDbog@oG*bKY#+yPGa%3b#9HY)WKAnVD^M$$V|ZUZFe$wy90-Ndw2m?&IH;XYuz z!GVJk|9p}hq%cy5tjcq2%AdUJjse>iFBN1|0zJ-lR=KGeE=%C}?A=+onaA1GznVVm z>YGL+!MV}$U1(DTND0FjLe{P9*^9&jx(!plb%x8ICj6rHcU#6UALxF2*aD04%sJd) zM2%=%1&$Ls-J#iHcda^^bbEss{i6^>3`hu25qQ80>`cw|ton~PFq}b@A0X+5W;9bm zW~h#)>N=UcA*8NbYdwGD=IHo3q)JC6=FcsevQYFzlWSO%eaXKI4PC9%x5F{BHOox$ zj0Q9_!kA2XtZCM*)o_xr_A(5vEdk&v4<*zuldjN=#h@@6^{E4Y;-pLK zribLNczYHJ;Ff(idX82E9*W>x#3Q&YVgt)#1|hSMu#C?P1P`?B?g%yLS0cHWd8<+8 zu8JXY1%e!2h_DPqvS%*!IQ~L^9RxXM{pG>UFy)fUR2FS2luoE{y~c=Qn&t15`s)-p zfuoC;lxmVR!LHM?$B?6N$9B-=5+8R7EZ@5_)>aEo9^JnblbqD94F+M@x+{FacKrvA zd|gl!ri6JsW?@xC$@++vy+^Bv3mda#TC1NjM}F~5P^0yowOjcYF6jLRqZYv84q%wo z9Rty0k}Ohk)0KWOT|qOi>D4?$358@NC*q_BcAUImmdyDC93N^pFSnIt+G}SJaj*pO)hK#b<7Fs@Q|0kRy zYR0eX&O3OGwR#WBG)a1uJ>%6~XQWZnh$1VP+{4m`7w=4@i)6X9}(`_sT5)fqWsjJjgF(*r3YFZhclbYibB_w zwF>GPJsK2BUNABcC*p5#s)~mT(9!Q3bbs5&0QG)nx#`Ywv$g%Zj+#CRa$GP;b_Q4C z?KgTPwW|oUDDLL>d=k&jlmYgz<_|k1xq#P>U$YnvM`sI>T!&0W za#;zmcQK3b1CFoge7SRMv)-r`jT2KhU4m6G#Q}2l3RK!MA6Q%-M@{4oBSw?5GNJF# z(J7u^!^6(u>>omEI zC-H79^yoQ_AsmK67y}}5OwPxn*>El{xA1{{il(ODx0{Ri0&ND=@l8cD6bIHDm= z@v~*-=iTttDiBQ?nq+1lhCSrSBK@(g__3>I_Q;dkNhzmDCKzD0+atVZt$HbXNC0AP z&tJli6Cj6I;`f&)nvc}kc4M|qrd#WQ=X{~!V4i@Y#fAiu$u=IQ#?I+?)e)W1N_=5(mbhY{oXyd3g@Lr+Mu_v`> zyl+1@uKnB<^%7S#*}(oXsLgyg`b*e@xPCRI!S82oW3&NN{b(;)A#k)64L?1Vmm*8?myb=*pr9)M#Nw;Kn`{Efvksmn()Ik@pn40VR-Ow z=4oc#*BDIqLnsb{HLG?7h+-9~QiVU};tUSmf!?`fg?76o zIlt;}gQo`ML+SzfL`8mF!0GHV|G+2wb;7Tz)y<1}0OXBw;bfFd4nxn*Fef8Y&dX#U zY~2)Z4!n@vx8{Do<+XJZ7#y!_;Vd!aZ7`JN>Vz6XYy##Sg@?#AgH0lAq1IX7wJ0@y z;!&O8QJLWJp7j&43GqUE5z3$%>!d+t!m{NFZsrMYb(*9z_eq{k&_rcf7D*KGW{}7y z>Any0sWmt50JgwI7wUlHCDMQb7p!Q;Qzp2Ac`@WH7gz1YWyEPihlRU)NaJB}F2cCc zatr&M`1)D5T-RAY_%DZ(%bg$l7{=G3@m3d$sKsnSrue24ehP1!!tn~9ybeZYYjwgZ zn}2B7{H5P(Knls?Djrfr9IgmJWS8Nm#`x*KJvKf&V_Hf5)CZed&QnS`keWFm?~;2w zg*hiT%nogS0_NjJkA@7`R;Oj!TrwXgl3X;$B^9|kb6iCyCkzc?zt}Uv<0eMP3K?TC z@LvF${&`? z4ioD85hCHlIb{`0zMAN%orPoLp1U9<<9damDqgabS$3Y`#MC1_6wt%?S{Au(D5 zjqt#G)kPSXibtvvc&Af@dnIsNEjaIp_{fc(quPNCg!q5fq~@u|yYHVcWgOI+h~02| zkz6<}zt^SN~S09*4{jY=a{k%q}Dn7Y@#EG*1`7ITY#Yd{}UK zyiI-bE2h&-cW1Of(YoOqJ@cC)eudHIqd`nW{pjK_Aush1S&9jy_Elt^DG}oT?T?`R z(TPO;vm?;s^mn@>?5#&*?WNruYMN%3K$yuGeECzseNAp$-#;$c_teZD-DR8^IEyYJ zj#MMxxON=htsp6%u6O8sWm}{|BX;#E?jC;M&`r~C0J<`uMkN|3m?!bR3z9Zqu!3^| z*7dI1DeUYSw$heVb>UQfqj-*%6K3Q|$ODyJwE;|2e_#J5f4dUu@dI zp!&RzORWm{2tMm{9b=oalbzuEgjloKCbD6Z#Fi$q@9G|;)$uLKdUtJVfJ!x|Y8~w2!B6D-X6fg~Z4Ta>7wda^=6)6FQrL`1>J<{220juHU{m!Cr@v=Mb zjP8M()nsNgvU@9iap}oyg5r}m7(@Y~d+|QYgP$)1nY!p~OYS!y(@nQv{KfWjHm-w5 zC8<1xzJxVv>??Vqq(8yuZsqah(*FPpoXvyHs|526Hj&^6CZC!c_r>t3dKN?U;nZ0VUzO z4RykwczH8d1Po|C66zx(o)`nA*M(eG;-RIYyjuCdx9Ui$$e~DjnDYAq3(n|4Iep$U zP1f0wI-rdVS~<_ynR>hO!i{|Wyg=+%h=$Ugu*bUeRVA@C5=K1&!?3^L| z)}J}uDyYk|o3(uNP;X!)Vo08!=vC1Ox&e#I2<<7<3T3^#CsN4ALPw;68+A3HM z36#fYqH-BQVhMxWYmM{YH!j%I_(?#sQIf%w0r9EJJomkMXZ@^fSMpr4Sk;fxwR2dP zRQJ#gGd{NEso4f|sp^L~YwCpxEmCm~8?!?`(Po%F-AbkB4X??`x4Wx>s`1Eij~8YR+$wrz5K>C>TcP7Kc*{Hf4}Us$1*F=i)lfT|GJl zdEL;Hx0z1+_Q2rZ6kD2XJNKS=B&a#y_{9yg=dFC(hvFWRW5 zZyF(M{(j_^MJx4ja2%|`<7F4MK-1?cT&tBGu%tp3`fm9;f#stRo=|abLgL;mKDYW& z>uIL0=Ss8Qs!pxRAUfKm;AkEr7Zc4pDC*#Oc;#N{#iba%5v^f_a}XcgtO1LQmm%Mu z>1gO1wV`^Fe)Xipv7LKxw-07c?s+97gVm#f4`ekWcmY*V;mT%qSRMv$KYQK>(txzU z>x}o7z!Wm(Vt9km;R2rEVdzi!gpt1{A>h_Q3FzAa_?Z1j)>DK>J~C< zl4J~2Aj-*5MRHkCnTyCB5S`KLH;0FK;l;zpx^CIt1h`~P7a^;3m~7N^5+cx8{LhCx zWi3!V54c}L9QmoT!;~4TrRu&De~asOx9s#;bip$!U~+nP6A#eJ9`T}7r_(4~L??-}UorbW%*x3^~FZAkRcM83A` zxuQq4XZ@cmsuS`gO%?fQ3VN^lZ zO_`)kDM{R%4lL#I3O~Qs%b$2u`gm04^*-PSkNE4y9rw?C0HL|%B#+?Z6&Pl55JYuk zR1@E}V*Z$|cgz6Db?=yLYMCg!a{`K1t1_vPJO}1>N$eN*7~XeqjLQUuU}GHp^|L_fJ!*+*TH>EYWjBp?54ifZ?Ox#i|DN zoeZ-b|Mh+T)j+wx1${ZixdeGnlbdBh0#DKvE-)9ZSl*Mvyq!&XPI*uLIq|j89KdTE zm^FSAoA*E;30*7YKp5uPyoCdD{5*8a!pf~885ie=6haG>06CI-tPuDFK<*o5&@0+o z+c(x0#>`MLusJT>bT{|8a8E#(As!BPMCaOfV`vJG!f~m!!rcBK4sPmpvrXY5(E*U& zHHn6cr7dG&C>!ez2&Ef2qi*EPNP9gUG1Q{<4x8u{UoD|^|D&Iy^;Vlw_lfWN-y^4B zq|agCiiG?$a3#FXI5*-amF`jD))o3~qJRab0?fGJJmB)jo9azaX<+sRUV_h*isy5R z5uJG8x^fvJItyAG&9rN(tVEF?tp&PE9P3o%TTk4noj3`(GTGl)X$L&jCQ*7hf;@7I zyUXK}z>!Zuv^qvrF6U#LxLX}?8M(j>eEPP)i2lEII?49u*jK+@LM>4i5rl# zg(=nG(687D_5o4D^rJL?oD|(10ox{dnldeFGM) zH2KC#lRVay+zvkvooDu$F4s6_p((g+D zDCBIPh{Hu@1HC2rpjlEo+327kl;D7o8UJE4eEN2!4tQaBguVQ}m?htEPFzJwE>Pvo zXbR!R9G#3gt!-WFzg)O5NC9m_V$}f=LCVT231o+wTs*^rL3auNp{rYT;uuVJmTIhk zXBxHD-!3&NScfp+qCq*hVc%u9#;6**P;dq`)QtH0j|Xo7tB(56hz2?rX8e#W@pH2V`GLoVzP6qLjHCdES&zs$PCOjkiF4(riYg=43hXPH@LhdFy-IQ3Fv z*#wwKttuSR^rQ^(qa9l?Yl9~QbBTYxU+|)-JJt8gwK|rxvCJL#;FixxjQHWu$3zrh z_|4Jp;Va*Z!N$8!9pe1B|q~Ke?Pig_UW-=1n^0a{C57DvHVnDDw%qzrzbz9ivsnwyys86#A`Vy2 zq-UEJLJdQwMzkb-CgdjNN)OvKyBI=gTEgXD4PhL$0cUJHk6d4)78$JrAXH&NP=fD{ z@|!R1m2#a^phZ#Fq$~wIG}>x=yzO=j?bvF92^t>a&1>L6skf!)4T=Y43855StEqWy zf#y}cPFK*g8wP0e$stae_M6Wj36!^l3CBQ4EUj5ch?$6EE1XK>csa9EEI-TguUU+K z0|RG1@vC2*zB;Ajk^mp5Pcn}m0YaQ8cmAzgd0}P5*O^Od$G$C&X@#sAS&%u8GZ#Y5 zFTNReu}WUW(Q62oyZnpoa<^qqL3_@p4%9+(eKN{c*+qpxM3^V)O++Vdff)v=Dq%y6 z_vGL$81ll=f8#GZ_=lrO9RI-1MCNSp0=!iY{QlMuJ>-w&{xZ1^G(kC zd;d`=ueBAWYOB_Y=a{>4X7*$aPxBsfi;V9WX*ExPFcS5XItLc%3WB5luZ!nl^Fct| zU2RH~N5L{wsaQfhLgJHPmcxsrv&N0it$2hE1#Ub{j(kL@qO5ojPF0MFC2Wo zY@UPp-xV@i#Ev^%?f$u7_s_WlgQxizigyPP;lI{bUu$DnCuu^s&E?L3;Q}HDPFGCw z0}PiSa;1kHoY!AQ^nILf7%6rngg07l zwj!`YHG}hgr=}t0cc<={Xn&3O8bePYX&IJC6du56Qq#x`QA7~T>B(Le(C}aeszm!5 z0&Uq5h5zb;>!EO3`J}!cFCKmGj<0Kf`@X~|v!M>$zP4y1zbI-b2x;cGAyA{zMZ86Z z-ip;AsK7!^de?pOaRPf{(?~*?i1W{%;Lt&q;{X;`Nxrwx(Pa9Zj@j7ngU{)BA7RhN z2bHh|5QY=mQ<0fn0CzMjPTa1oc+V5ub$QmZ<2lZM69@=8eN_OVk3Zja9E zUq}8PNI1&&lDB5S%uC+ocHyI6=z`7hF$6pNuNuBw6tC0_%UL84Jd|My8Fkij*t9I7Q&13c!QmR}L z_0f&U81&=!@ve!`QO2NqBrz8n&-QcS?qnQ??4mBw2_D?i&zu?i8DpR|&j{ts{wTYc z;87J$1L*iE^Yb1h6P3s9*@_J6Tr%t_Wz1wrWZ`-9uC=-+4<*L$z=Yy`p$udK^6G-PH3y<#Rv+@Mt?D{`7#P!mu#(~Qfb zQZ0U7`45tDc?| zaXLgEqS~6e$W37uFo(B`K6&a3#jbReu*P;?t1+yPfzxm*{rcsS z`t?YCX`QsIf6`7L1qWz+tk@^3?_`f8C|H2d)wAZGh0p=guI(%j69OO}4KaeMS#3SC z&s!;)ebfIslUAkLT61EGn4AIuPO7#={Kweg?={F0UHT31~tk^tLj+>UOAUfyQRlj;R zTLj1cMACtOso95ubu`4}iNiIJz{o8PJT+WV5KCcMmpr!f^6exRs1qN}PPa8XogyOy zml2~!Qzo2@DChjS^4I~SE~3ehIE{eb3l?J8eh4!5J`|kMkeE~XxU8%NZ@jyW8|_{f2sna7<)QTI?Jqa$Pc%P9k)3tO#y~;bh3t zxyN>!F!tHNXTVeZkT`qj!jwv^G#xxX`^4kxdNT?GDF#R+S^yE1J;{BUh=l`mE^NH5 zVBuqAc>*%j!v^PJy8d=4oCYFbHc(i0?Cnxk%a0Wz^$B3y**A1cT_a82w}ep!z2!p|n})SFcBDqu53MSK`;i z6YCRwpBe7H?&cHyzZpx0U(V*pN%3&BOX7gTwK9r8k{|rh^LdkD2WWUS-WCa+Vp=DH z#+8aZ=2_u@#cS)W;mHe~1<#I8--Ot4m2X*eLNGFF*6XfEkM5V=c$0SmZGgu3aB7du z?QwM4)M=UC(mR9QBDgu?oITDy(*d0nzp5pU2>%VDGdS;=kyWl6^LTmDu;q0!(M^ya zme5&Hdstda1ET!f(0VBS12doYf*u|#v)G^zX>%?yS3Iyus7!W_qf;N|+|ZkWy9~8F zt*^qp{4)z`dw_LzUJ(x|UyRf_luy{v@MPsSYs_F5&e zI{Wp5?miEXZIRVN96cq_tS0Cn|fDt3q=X#s#f=ah*rMcvV%Ri;!d>HG>fQzZ=70z)x@9|fdu(_j;Ch1=ECETHe%V>_iq}M_3jz_Q8v$j# zp+Rqpryu&mWd_+Hym)E^FA+E^fgXWr`hl)=08#IO1gj8 z)VyQ`<{|5h0P#Eqg% zqJD&L2RuXj0m~e3eyM)tq7T)t=mp@L(G(DS1Q3q@KkEbf3u3Wj7C&rBzar~KB&+y? zf4*Ptaav1_YZ&x6s<2&^w&5PR_hKmD^&h!3ck(_R4+QD`7k&EyhIj*m}#>>anfWU$%O@Y_{py zY%3VYtV@v<@_9*&YBl5v>X(%26@@O#t`skO42N2=+>P!*fh<;aX{fhC1wq;Xp&IXK zd~`NTcyC0Ni{f|B{NIx+BQAK@HPv2j+oSlQo%RH?9+9qL6AO%wWxC9WEt8@2=Sxkl zzY;F{MYYm)=+`496EehsG<$^J>O}=B7jar#-mirMLr%eoL@x)DEj{-Yhqk`a$csl* zqlNc)do*7-5|(*WWKFrWjM-u#vNqp_rab*$IsD@|E>vuk3Zq6EtgXr?L3718STRlN z_@Yf&u!A^Ywf{+lPugpr{MVMO+NZs?Oe>{g7Uys|7pk=VlTxFn6?LChP!l!9c!*oX zA!~U5q(@15m@4}mr`4f}Ay_Z&iq9cAW*=KEcrR6ESl2C!PhM)q3%*?B6Hiw0<{$dC zK{w^hL+{d{YO%`ikXr~3COuC7 zf@T{jHw24vKJv-Dxw%6(eZ_}|7yta=ljCL>HpNLax~}1_`^06i>6b~m6#l(~TP*E7 ziN@ZUp4su9k29$t?k0UVrD)=)7XE||Y2 zWmtV#fv;xw^VN-DRx2;``PG*AJ@8*ZVY0`p3!T20p_VFzqE5f1e1s#s1hL~do8D(X zsMB=4y_6*{s(vhr$zS4>k|25E=P1m5LGcJ) z{qeaN*xuJmijVzx~l%AbNpdzk5Mr47*T5MeJ(oo z>GC+hz@x_TsQuAG#XTZ;DE?7=5SMY(*z2ffU>+M~{-pF=g>?}(uowLo-yzA>?cb2= zwm6~%)}HXO1yp#Tw%Fg+A6*dsSFV1iqU2+?6HY*f{`!|D>0-F5;B&%vE-u|voUjDJ z&b@G;DWSp3prYCs(VG)}p~AZ|*);h2vS_O1v4vM~ru4`Y&}rJcv5Q zf)*hj1bZc^>($cf8KpX5Dh2vM`FaT^$QhqssuTW9C(d3+?-?uFV=#-PT%Oa}ZY1tW zpw=x~UQC8Z?&neKHWEKNDRf5|Z---`)(QB6S7!z;o@~fpnObKCGx!F4+dCA#bNnKV ziNbFN)Vlu(S)k%4a9|D49j-5lBMLoinnKXRG%fTMTaom!_{Usdh+a(Mef4vF^&bp2 zK_Mxr!s#&c)l_`5dn>T((7=FQhdP}PB_y>ghXw`~L2?ZY`GVXWelYVW=LM%t&EAeE z1y_G)YwMzSxVLIC3XX2@kl>Y(zF1ayA^Ws%IN#XMP3p*#e46OG%aAyRK$$lpDS{=! z1DP2wnY0L(0~=-sn`Q=w^=+|b- zH`eQh<kONrG4{?>&gfmowRSpHiPJ)KKVqWAqT5yS}($7Wrw&1vB^gdc02a- z!`y%C`ybOdVk}8A#sGsi!D*Gj2rzD^Is`Zls$1eo-Hm&?`Kg)ti_G#DncAji*xrM! z3n^n13I{jgC})+u&FbmJj=2X$!Kf@vp}Sl`3D`-`VXsT(=QMLn^I5Wekql`lYC(|R z|9#JwbX9pcu(FI1=*`(Nt^7`P`9tsWdp^#`YGp5kS8?^_L}}f>oOmA>BeOGJ*1j_< zXdqeW%sSER#;n|pl1VN}Q-iD3ac^>V9d|NYG{g}ZF9gy$9f=y&X(H>NvUdP)0&Ap_ zcQ?H)yx6-Gj(!MjkBl|iddqU&iy}^~!%Rnw(}#G3Qn@$jyXj7TwG?lr$?@i{?Tz-n z@$N{}dR4_+f7;worL`(xY3i~T^`;sH4Lu{ZT~Zf%Z(3Bk$-XoJCaH^N9KBj3%LzM;LeQf=vLdiTFq~-3c;BF%FzSt26h2 zDLpamhHVk=2x=+@wq#+>_@h26xy8DSYLQ*n_tb>k#_EgYKT=6QXVx!wE@-|AI1W1n z(JQ&1UobhJf^?5GxK3CFD4Qu0+b(m8lWD~;S2|yCv```8!B2pEgSh|$>{nm!kXOkL z&~fSt)(niPdp$VxE&QpbH3|(}Iq7f$g2#Xk&D6cjvD$U@U zfs-SSkdlo9&7WA;o3g^mHMa-I_w4Pl9Is=LI&nL-F@7+QqV z#d22XRgJB&%X_8`NEYOk zR6ipd#cI#Oq25|A0EH)uEpAQbqr?x+0ygC6WFxN z{AQR?9gN4CfpDjhkL!u}T;SE^PQzr)GN8>3ZKRZF)8?!Z>wyKX2b_+GwO{whe%%FlChRMom{5*P-5X!&Zv{)@S~~G( zZ0!oCO+t85GOHpr9h}PVrtTPuH}Hf~zxz{UI7J*?zj@PnBv&8EDdaxFfj|Zliuo zTh7GlY6a>rT2U>0r}QG+F1gh>OnIPGXMsYG;Xk0}X^2m(;c0Fh521T?-Qv9OpTX1x z<6$02sxf)$1ncs*k4@hRlUC@b?(e?lZv4N{Tf%84*LTy*8!sn?+^*f{f-nh8I^%wS zMmjc~nBMW&vDdQ}3~8K+sWL$J($q!ZzwNs`xk6)JAGg|KFun#k`>{It;!y<+S} z1f!oZwP&Vh&vR!llw+N6&s`>#2U{fgQZWFYsSOsRkM}Om2u7L96P97Ym>=+bX17$8 zm7Qx|xK`cbRD>{Ot~7hj#$VtXh5N%Lq0q(sSNDJJRhZbg_=o0sf1B63ed-6QyT*$n zm*h-*akFrm-Q#m-$rETrUR|8+(CF3EDqTdc;IGJW^wCk#0@(_L>vbn+2V&EvWuMA4fVI^7b@> z_Pu%dZQU}?S%O}OXW}bT#~^2`x^oiT zj$eeK!MzyPT)Z&aC>Ew@P_Q-@3;c5KF4PKyLJD3|oLN>9rHkCUDf5I?&KJz@z9bBj z@CG3ZaUOuM1tJ$T`kcnvBN5F>Z3zavsS<#R!6cT2S~^IysyOu&Sgv_(XnDdRyb|y zz;n?){!5ZK*1Bg=p6y(bJyL6ynK+4UQ3^)_CBqky%oRj3xFdx(hF+RZX~!M^93O52 zx(1W2pb0J(*S`9`_TJ*!@LkzoHB4PK+FwPrH*eU%yu}CehDA1OJ}xx0W6MvClBz80 zT-gr5{@004Z98fFG^SvW1}q*-dv8CR;D)UO<+Y;1U4WbTBZ78uMJ&&q6(kmc;2%Wy zE&Db4yXG;OrsU;c#pV&nn?^7%RG7<@JK=3ShTRXIhWQq@j9o$Fdn5J`UdTv!7dNro zYuYmN0A6?#_=GVRQ_-{Dy*y!%X0x;d`g~)kL8GKPpgz?2e0Cno9q7Dwb9}6+P`+zXB!xfj@aP%ASMT`g>94Y6R=l%t$pqc zOq1l9yH@uRhRVxRsIaq!{D=3v~ z>Y`5;)ZXqOvRPrZhv2b#ZAF^)^_w0hQ+G63x~gxM|IM`~W}RP^?>eFU5EGR&r=)%J z){2J}f!_#kib#M7O;%2(OD?NAev!MQU2kD>7cjlw!vv274_^JW;8??w|j-PDg<}22TI$q7qJ@DI|Z1?I~3aDs9!2PjbiE zzRT6ZvB-i=s%)Et0oqT9^ja~CZLf{L#G!$K{zO9<29brn1cobFP(Y;wHbCIac8SzUAv zu47T_+{0YvsL1nUM8Z;?R9$!R7%#GuBb=VtAIpjiq|YAY3B!G+|DmreZI9n=KnCEk z#3CM%IMzE@5yo#xyE2JDIwK;#kWv>wy58~gUqh1~^+V#af^xfdy+gmp`9bK^4z*vw z+{{d-1TQ_^=e5(^^oJ>jyQk$54gV`0$DX456DRctDmd z-hdLv#m`0P)NvV63KcO{)MA()Mg_gE`=&j)qLFWk&=Qr~)_@XoN*&~Ra7wWEp2la1 zCVAtu^-lZi`}0PUgQ}cTmo){ureyuRg%%}-%@0i?LAywvfKunOM7dAAlv=0%JRBxt#DXwEg=3jnDU2 zSlYr93lr3Z@%Y!g^fea@`6cdK+Y$@++jwXi)ypx#kk?V z_`|^DrJ)>UD=A%6n%Tmeg|Ufa_nc=O%}V_3qW_7ths-+pmTRMtJNm`>+I=RDGC3OP z`dhdB3zIT1h>y=G3>JV9~Ri=?VZ|0i1Vg z9z6y*4vqYBs}tOeFVKLT!zg6sJi#EMVyF#IeZOXtuxYPfm(xuqd1C4lx_-@_{$Kg@ z%Rx*iJN8ghlLz8~1XBah)wR4SMRxRHOc%2$D|BeLts)(X7#619&4DbB@j1l#gtaFF zEPR{)XIP%ui(vVxi!rcHhSSSAU!%wbIAjp90KI?^eWZtt`t*O&(H|gG&oQ18_Tm0 zFnQM$>a5apL%Od5CYQogj>#dH1oGK*2~hk+7-8&N9nC0?0f`3CQo^SkI8n9 z$sWNcEBelbGQV)uHxVy*lFpCUxYFf6Bl0yZv5s0`0`XOj4^naROPyDp@N;PId1igt zPQ&yykMMAx>cfN`1@K6`e8KMW1>2)zf3}DM`I@E;Ux|Y-nifxhAPCeQ3>7teSIrIu z%)j<`Wf;IDqmqng4==BaqpH0^a=L|WrC3@v%UQXm+P{k%g9y8F&xzs9&R_WL%k?gN ziNGQMMgK+LExg|^6$qC}4!>#XX-cMSm7C`h7mMQ;YlP4iZq42wdu-uP)3j4x?gNER z6EE0WS{e>*LqbfrwsSLgP#OFrbk|Ar5g+`q&l=v@m-UKi5a4Am%m~oJ*LX2(fG}bO zJA`9)=4|D};;9ksZ|9(EB@{bD>|Q>5_`0AC`@7>^s0T-9eEP*jA&|1_U@1$jw)s+J zi#j3}gkOPo$Goy*K;t-wGkA=<+464>(bAvpO#OffcJzWw_JAWRyfI|#Ia#vXY8Fnj z^_h@OwxtLY5D+*4^QL8!_hLFyVwq79sDb1U^zIP;=2JHgACBY5F=A?$ez3?xP&V`{ zsvwMIFhT7CLRHG6PY552hV5+)3SstI?ObF@`=OvS!v|9;1C-pM<4-p|w<{o>4f7*; z3`^5FUo1_^1y`g`78Xe^6%-8u77sRo1vp6s;q+DiFq>48K8)`Rlg|W%+b1AD54vge z{|}R}Ldi8i-Fqd>n5seJ-GkuGh2MpECEvh(@f|NkR4qs=I{QoFH+DK5JQi*)x*&ge z_Ls}=?OK(+(|oY1NgQr!2rl8Guu2(2wJP+OBEe2xNRj!vi|3I80jd4r&&3la zc`&JzV3mX#qXh`n1o1^XsPOY&Fp)rmE)>nxVG_`hAV}A~j$H=B=lxM8dqK2QbY~OuxdrOMo<`9O<29-x{>SWk3raOTdB&&6j|gXObT*r& z??Rh<%l+hR^q6nK=|CPFBI;Wt!0A)dqrci)@$s0~*5@}p@Ll%UbnowPx7E&c(_EHw zx%lS#obXmR%?!8IPIuFs%l}TJ$Zhbsl_s$egy!lG4|xcr48I+qYsr`wTNi4+J89OG zuy_K_`E6$}gn>_|qMMzr>K>g2Akk-{^PHnu7bYbDhI~U|gDk{^0===8BvM=sG4qZ*sg=80&AKwJC|Fxupfz1w$Q4PNO$oh&_ z#~_u=5yi7E47a&Z7HktO7oDH!+FKnicU7b35q^I~!H=>dV`i`6J&dBTA`!H1BSxMd zFnA|*;1WN`xXfGxhcvzovWm-KaO1L;H#hJTMd%Q!NDw);YLPWpB-7ylA>WIQL#ahsf>0g4VY0b7%DwZHS;Hjd>2<&Kf(6C{ zlq2u{Onev?j9&7*doHB7>m=pKIZ3P48yVgLGVGPb6fIat-z+_cWxs4*hq8T-GuI4u zYTM+@%2Qby57wACwRx@lFk{W&rEN9gfrV6}0QyI{kV@y4ec}rBQ$j(;H^a zR-`vD{kOVgASb%D6AUL8@v;+3_-Cj=%bjB5SFkRVoP_Df3l6IKGDQA~n205(gRxWL zy$0hSxa~+s$Wti=k~6UQK;W+`%mcufm+gB-H?qwHp6?-92?RXOmw9Y^I710wP87;< zH`mG`neSpImb(Ay=4FFV1|TtJH(7g@rtT!z7A!U+AaAnnReq)a7}ObC4JtdB?F|MV z7u@FtfF~63I3pVmo###$6@iT=MfW&E9F68q-9gXCm*S+F$08%9A%1HPJqZmw72b}kr6c>D z_;2=kU#)hs{~P~3J3MKe89U0~aWPx_{~b}JPVo4zXT}k2KU@9gv9{g*2sIz%ahA2s z>$Kd-Um$VFP}$X3-Ih(>nF4!IhlR=EE^!*W$n9inLfpj<7hG|^&^EDwuTDFig=@rz zxO&#~@_XBhWo09ZF`*!A$%m6M`~=YXT0f)}x1>Xy$3_+S>N6sqMe5Hco&guhqkp z8Wby{nV>}I%ZVlAXPjZ~B~Z-3vjYWxm^*)*6-?!n9QWaKW9M1Vj+@_*oK(XO>fY-0 zott0K*Sy}S!vLd3@SmFbwC7dvRHUNht>LX&wRiPZbIod}z8m}=PJNCMCZwT)<>DZm zJ;wuC?|x1wqZt~x(^{JIje}D{?2=#2p9%^3^~%}9IWGd@09y~B1Ea~6!ZO;-lIYK+ z3YI@xWaz>N9b729a;z$PUR~QBaqVCiDG30!*9SaK%g&YDq!2qWX?8IS^E0g7n7By4 zXzb4&ih8o_IdyWCIl@4w!c>CTUO^uXkbK**l+X-Bw=Olc%Ic1AC6a3I9BMZN3Xm4i z*pMcX`+y#Xc_c;utj8M*g&#-;D?sur(}nRaKRS24CJFywczkDN6t##Q(&XY5DIS;5 z{_V26>1kePc-+J%pii1CKRAv3vbX{Fzj-L6We$+UK)Yf7Wq*Oe0`E z!9jOW0Bz!u?FJ_-(HC8I1IiAEG69R?3NrILeB$7(RqwfP$C$_NH_iI(tew6_)1i%N zPS}H+Ca1T#E*OxXxvVHkOE-0(yY<(vhqR6@^m&tEi$?k5Oz*7tB7|2Pb2^6SZv{@=2<4eEthvc0|VtJJ)d0o?cyqV<}141gy9tse*wZSaGr@? z_vBd#1|mh)yCx=FIp~{%a~Q?OJa(}tHqN48Uf!-u+r5Z)`L>X_@pW`Ms0{#Qm2!+2ThUP+CGb14Isl0!+!zruJp~ z1Vdao97iZk**+oqQbr-PO`c~+eP{{fm4m#`xeR~|4;BbPK*iwSG^5_G>S(nB9Iqe& z|ETFb4E7Rz0ej;ePXR!&5n%jGg&^l!za)-Pl^|zS02<_M)hy znOYMrhc(k0c^mL7kH705vK5&BAnVZ0f3ytD2LR*^Iwk0Nr|@?6A#R_1*T>>*pPnzIsWO-XPNaW+)u@V4eA0# zfS&n}tz9RW6<^obdZ#a0q?94IS8D4bGr%xIP5F|7=N6?S@ z0Q&A*XJX1V9u3toMJd}DZ-T})oF~ClM6vKB_R?#~LVcj-|EQlh=~miU8ba(^J>3vH zuy!lBX_`JxggGwPGm_UiGic==tvJq$Hm&>t^K=Q>Tea2shAEO9L@X{$eFCCmN%&hH zp-=V&H-1raG1cCgH#Z4<|}f1r>QHWnf{GC3jPf_{? zE?0r}21-NkwH5CyDsoR;5OkEUs@{!ZsV1=SZ=eG8(c4llkGO03d?vTFW+p@im ztgnnW%qxF%FniSz|L@}ak1T(*?e3<*>nmRS=9OjX7Th9Le3@VIP{Uz0d}tIetL&Iu zPca_`kEx5^-lC^aIWz_5(NF7D&|CVcUi%C6GT%2_^p^c_>Y=?%l_Uk?BJZgP#6^6L zuuz#;rNXD)jLO-A;EILS9*P0U4{WyY>u}8>ZByF8E(a&rK>K^hdh`!FgZf%fcIEg( zmkK;0@{0H5m7U3}*Z<6OimNLQ;em|ub0$&Y#zHuZQhPUx!tH=?LHbviKpsI(8<2;) z-m)$4Y!CgTYT-I)}H*YSs- zQT^lE&5d-)%mPE6Is2bMPQ>IW<2OZnzJttF8)k_w>lR}^bZ+eRM$--9OD%JxrdSLm zc{yVl_`yr|X3Ke@;g@p}lUnK@T38iPShexx=3*=l9;fT=aWozI@CPxvcT<|cBBPVf z-i@9PYp10m9@6h|bzP&>#*6Rt3xR*4pW|qm!MTHo!fPbP#r_(!PkR5Py`9%TkC~Mf z>`Nx4O8lQKJ(e3({!h{O1o)gzSiyZ0`wVBW1c#9dvoXuehQEy;zN^KqgIy#+e4y8W z#q-jLmEw9qCRQO+7mCtfoPanOf{aV-R>4kbTq;Ncv+|Z?Za=e{F3rFUL zF0e3Ie_@#Bwb~Vk{MRE}-vygS{9Y!f!fSrGX0UDN{4;iD;YGs=bQqw-t8;1AQl>j+8kd`sNW5-3``b4U zbJ3B5=^e1@=(u&c$kEz?0deM7PqPn;3Y<#jZtP*YsEgub<1hE#K)LY>!iY5+@ zuO!`fU4c7Th4WT&nP zoKKms4>@wAx+-w+x7+Ct<@N-{-nx{`#%!lDJ1o5$^w^=sR(T5%v*2&4)n8k`Fe^OsBb+uR(*CPA~rrki&w0#$MytIsZgob$@jA z#G~5kd2z+7h)+AUGWz@==GwA8^#e>5fdnwv@B@YiB@2)WTdwB4D#96OnW>F?%}6ImXBc!&JyN9x?so)f||_A#i<yPWs|XtcJo7~{iWkLa!vW}%Bc<;=Z|W4FVNyxH^1rPW$fUSJ*;Xq zE}#+2Yff8JF{`hL$KhJ3dK6Nf^^}cEd0XAB&+xduVU!_EGcgOyxp6jPBpU@6-1uPo zhvIgCcz^*Ucr0Fh6LM>14@U8+h2#*cDNf{b^(MERV9w3he$l4St34qe-1s)B%24aD$PL{IDo8goQ*{iyCleV#mGJ} zBV^O{<6XASv@y66VL$odwVlE6Q+WjUl&pB~K_24o6sF?E^6@KhQYU{G^fjoq$F*}T zy6ZY`cYe``gscF+gihLP$LKc;we8YBcAT@@?ksjWCZSW}TB{As2&p5|q4WYXBB=ES zZ-(@hQuo#=O3dY0X1+y2*;xx6U6{|L4hS0E|ICvg?|L1XY~5t;u&6zTcQ-wnY~y8Q zS^nsBw%4Qe@4O6OS3J|Y>*Wqe{-@>btu{DJU~CBkPIFFu&L>K7vWxYc&~9!vqgOTf zehh?_v^-xAGb@j?3aF=3VYGlRP7@wf%p%p7~4?5v!O|Rl^|-w=L^; zBKyS_Oj^(av!YwjisjLELGoVNJ#9IqUGOQ3zVjit11iT2$KVj5^5Cc+U0nMZR7PJx zz$X;G^+u;?A~0GGa75P?+~n$DEV1Tx4)FhR_B;X%`wRJ2CxRiLI@A>mxsQhJGf4@_ z0csd>kmNCGJ;9Jy{{Z{xCe3w>zA;$T0wnp9FIecF^h~{G6Y%7Uz0U+{0kM$qq7 z46D1*!;+;{fht!3Nsj!oy2(!N>oZCF`okSb0OZeK_IkTCv_UImVw*-jTy9Vf7eWrZ zMYncNHz$D*F;Z9yc)F6Xq}Z{~|hm zGx+h(0OXrZN2UY!#rsV1O76o5v?cLAXgmE^iX0i4h~a@&BX`%z)~m<7v|4{^Rljtt z2Xh8H?r3sq<*9Uy2Xjmux4)KLjaYe_1TAi$j$lQ;^^y6W#;-br-5UjeGe}Alc=C@Q z7-wQK6dLi89b4c`nOR}^`o|pDa*Pw;NjH9VHe+$@lv6JcQG472+ z%UT+}G;q1QFemcK%}KHRPWKSa@4T;>OrayYI#_HFP1Qg0*W8d`O3zQ^TsUV#hU~2hC06ab6*KAD>WeR znlED%A3Z^+RsqP1qL=>-1-^_r6E`)eR3vh8V#^7T?=PBfh1m2t@pg0Ko7`xecN~Xc z7B|lHt`ouyMBNGgL1|N5uuKAC^&`t9{6GH;3WKl_9v>5rY^|98Lty$TKEKALvt;|V z2bwn+3Ig>D^J{D`*<(F=%(0X(^NFp^C$o z_LNq?w-+HuyX+TotVJ8geh&vfKxgVw+tXTQc<8L@c*#`V!`QabDNmel^w<7jY>z&_ zW~{k#IXCaK7;@<_r%YWmcHnjIm{awC3EkkEx&eC?(c_jiG2|2!#seNH)eT}scZ_Ib z2sEQA1oB_-CZF5ElSt1A6a+Xs~%1gQnaXus+4->+Pa6HOB%7gi; z#K0QiiAOa&3NBP&S3?Ln(TX&=N$7>-j5*~3G)ed#F`Ud&wMpF9mOsKwp)ARWDsS4%&@b;`vXQ`$ZOTfOoQzdvzmeA zh{iT>=w_cioQIiRnMjY@_vUs8TD>fA?D?P#`>XRj1OgK#k7}qAdam*kzl|kEgnej4 z9$I&QeC}~7+_ckWnjOkWFNleH+`=OsELKS)+eEOwiwC*gT7l>cA)WiDk@fYDsInbrOQ)qO?|Dgj(e$)1}z8 zD)nGma?-Gf4{cBGO22t?{z%hfoy#!W?BEaS4r=n>_k+8-u`FI7^Ut5s=$3!mCIJR2 zkMI)VDKvF5m_C3v()$KH&j@zddb!$F%!=m!>!n9a`m??@->FSoB64z zEQI_r`yeVQ1rRy}g<&1-+oiR23ea(A*xRzJxQS=G3TJIw?<5U$kW^~%D-N0OzRh(ws+0Gp6~%J_Ko-|^XJ&XX3<3% zInSG}-AmS!h5J`8fOB|JX~XgmQaof;1e9kPRQ7s4J_qfw`!-CKae#Nt7!8c$ki$ra z)Ju1g zNMHQyWKPoDn}I3e-S?84$EnZ?kmTuDOTB>O={J~zA;4-cnyaL#mG>B zB$v0@;PcrXYQcm5G+n?29w3fmQa3YYJwAC-?{9q9-KmDRhO8E+QHkNjM<_|R?2EG2lUDG=~oTL zqf`eB5>7@ZvZ`o*@k{ueMnOzeRuPRZ`4z1?;fra`cwczf{x$Ownnit7nnl8$MOah( zY!C|!jTbhoc&0EMwDDw`y$nYKFpK9^$yl?hik^Yw1Ks!Co$d!T16XrzWw#2vFbcD7 zA}UwD44n`pw+FJjLc;{|MRQJkLv)wOcT2AMrpZjmOW6Kj10+XFH1HBW6?Yppq5+AX z`d=MfzPkb%bVcAT*@m9uaL@Gj+ z54i)EQb?ji$RcZ`vI$S1e;iOTCIgt8J7^2~yBue$pz@DgcEqntjI4{!wlp2T)w!TV zg#(0v@(sz)74pjvq``%1QyQOW#84xtHb|VN#sQIgR7tIm6dyk=+x)Z|)4BEPmJCk9 zRs~vyu@^sly0^M5AiH&8ujdm@2hwQ_3YxzEK>EWR_yWJ-tqkEv#YIP0yGCZv0Sq8! zLLNSU^S;x*9ywzGR+|^ZwD_fyt+TPV7@XvgOik2CoO$|Nc4}ABz$= zc%s(E@lsNhv!G+jyr(o}#53UC#))fCy&3N_BbUb=HjX=tBXfOmzT{e{s9!^yF7R>c zp)@)bF~B0Zw*e#zAQi2LoS$JZ$LnGi(bREtN8s@jDwH@`sR%3aB}^4+z42JlpsAh= zb6|8lSn2i?`iD}{3LC4Zflj!`x<+aonU7%`W2D3Z#*dl?$>;v=E62%2D}=|_+JraT zYu06q$GFh)Jw`<%7iVqCN$66URrNkN*)(*aaa<&tix}|}Ml-PQ;Pe1IC4G05ly89K z$It89ujF|A-yhGzifP%7CeOi&3k120D|hJpdf%>7JN?twny`nbclxs+_<|PO-(^)* zlHJ-0tPcz%FGXgbq*M0s2F{o$l`mMY*5xF|Cs}QeAM0bdQ)X68bZHxq7&L?? zE{SVeC|%C(ICn+8Op^9NFWPL8-l6k1*J_#))6<;@Ai26;JwT`7CDXUfJ?wm*odTlI zC>en1=^Kg;_`>b4fW+k?V*E1JYQ868J{>0$`8cNBV5o+5mtV$Q<%rRkMaz%&w~h9< z4(L@1MK^rk0~MnX?}1~1q(a?g&AX3bR)w<>bf=B~q}IML`Njx5xp1t8Qv&;Fwz(Sg zK|ozS49?TonH}a%BrsfN>&7-C(JW9fIwu!}y;YP8c@a{DenB%cr2RpxGoO4<*Zvk@ z7_T?}(Fa4l_cQGV#_IO6avak3bWhy}7x*DLy0GlQMYUAvsyotnwQG=t`TV&@dL~UF)xPfS=#HxM}WjHjvaW*OIGM@HWer{8r1g`jxbC z%pLeZ0g*G0XPC-D@CjVboFUlB8oe(awR%d0%lrSj*vWzf;QcjJ-uBOB%*54a%-T zMPw^wiAuDov?%@W-#PE|ywAHtzW;TdtLvHLHQwI$dCs}d{kwnnt=JvR%`?R=1=X)~ zdjh(y5h9mgfuEgOpS1L=;8rV=#|zKVn$dS1O0{G}$p(7V(BULARHm$Z*+9w1-QbpHf+j@uXExfuWqR>#ApKaw zlwd6e9+g2iHti2uN+7YpR)Hjk))xs=Fj)g42Z>1*E3!x^I%3u;NHS-r;>h3J+rNV=M9G}l>x*_&mAYtjp zyKiDs|I~XIISXb(LkvfBw-*x}CLPe@el}!d!+KTKb#!6{br1*Mv}8CGlFK4jdKNi7*3g<57uhVf=|KWfsY!~HK4T(b~IWY85Kri@>x{~Gm z+71!0^I*L$FY(VGt$KI4I8F1Gi^N&w(nQJZwW>0$J&%_Lx!kab@A2-+K3D4^i+xDY z@bF#h(K`eX5E==bU+uYVhr&ao7MWj~{J43yG8`DeaW5NUthlk9+M%i@hoXhmVI|v; z!3TcGgMw%ivY$`=qEIH3E|U@yXhFLRs&W>Lu;6~gAe?o3A8o3xpo}74oK*_Q;|U6) zxsdvtS>no`ZVS&>E%XU>HaU~v(|L&$ZmU&SW+{m-L9@cI1s(J7N-0|wgR=!%mbgWz z_!BdHNZnR21FC^egnz!k?Tmz#s{Cv99&Wh%!6rhX<4x%xR7;I8&`Edxci-E!jX9f8 z6|Uc6d-CV;{BTQY?y$Hb9qFJ+@z)$ize+?u*$++6gWO|nJ-1iN73Bcu{jjDb>R%6@ zDPtaZ|BN-*|HSN380b%VWvCn_t21QzBzw`1~)J^;28pjt{K4#_FOia#tuV zDBRH6avl`rlolj&ujhLV5V4pzh8u@Mf6$F(4>AMM8}KT*{+8KUtW&Bb3rx9sMR~~B z%;hyWR)tfn8@$pNL88zGwH8?ug1UpDlnG#-8USvPY2=rJgZj1kz+iH|8vWfL4+nHT zO0awjX~|`xacEQse=EWA%CxZ>E+5eKmA*g+Nufi{{h95C43j%iYp0@?oG-iLp$BnT z+n&Prhv!+MBpUCniHOMkbqC~mk*nJxI$T5R)tdS+8(E#!9SxG71IV%EhK4VguG#%x zJLq)43)cBP#+!39u34%diM@W?H4?mA1zdG6bR>a0;=pBRU zW7dQ->XEln0Y(7i!F`S|A76+wJ3XL*)Qkw$KxIKus!)sj4dX3w)EE0mp&Je14uX_B$)wnL`!7GHQYr}Nv!(%k3d$nZV}gzS+wUkYY2pJ2wuBRwh63hw}5CRwv%aWB%WK+2^ae5+t` zF2o)BO)^rY0La~LzfA!x!;-||MnTK|N1%(SBY=w$YO?#6!+#Tftv{p03bvnlCJCTb zy5%r}Jc@Ib+zEyq7U10sGYnX&;>KJrZzkk$@P|))x$O;Y{u#U-1bNMUjG?~S4HrJk zJFqG`OM~QNP?D`SnoeA~3PDa>`4HEqd65Cfw-mlN&iwM1&NXj3!$1*`1|$nc>eEJRnyVH;V883Jo&RQ1Q}O+YCx?#!@-|fMz*dNRQx z^+`#DDYXD{>}L>hj+%vM5#nc``h^2_L`X%RDo><}l8+M^d-r$lS7}wm%xxe7=YgNK z$jHM{5D-S(opUV!MUwx%;%!|q%WQjG*K=-UZ6e~dEzgSra z5M0frfW`sL@mfdoPN-IZK6}vig87Yb>ovA5n}(t}aO6^{;j=oG*y_mcU)v#6EgW@N zDEn|^8FA1>qXiD3GW8aJ4v=cAPASQH&4m_pG?Jigy$mh3t(Ky_4Ki;Po?I;y$I-tP zEGyRbn-@YR{jYQvKzqX_W*`NqHlnn1l2%1L*H9IS>-FzHg+#o}^VmBVm=7Myt^bv* z(NCqzNshx02qj(c&UkfuAKid^K{XrN)=ZA~dP!Z|E1S91arg*{e%PfZ9oa!$^jBu| z2^jw7sPhh&nQGc)l)f2B96e4zS5v)apUY|JvFl}npA|V&YC)20ufi`NP8*!z;1nh+ zsf+Kxk-R2z6wh_yVNZ%Sh_qZckS*8!<}tG2VG&d5LF@smK``WI7uO=Nff4g^O`D*Z z!);F3n;?11tVsjDccq1@-$hGSCGyy6HKvCioWR51&eUk}?#I&FyL)kCh`@ZZ;}lXD z7UQ5=?lsk~G}LRrAMeL61t=9bD=&#vt%NcM+dS~Za!}@?gvC7W!EOI1ml2ooc6el! zwM*jP6w`)d-T-NJMx@7~gOcb5+1@yK)3Fb>_bm%1SQzew91YJZ3cKT`G}s&c4cf5& zKvS{)B3U=55;0D|{O?oX%gx7y?{_sanoPbuV+<~CI)+ACnF`DZ$`uaDMVg%V@`!84 z%NR86c$Ju#BC+y$`F9D!3;Juvw$e#)*r33MONeptGG`ADfArY>W{sBB(<`3yZLvMU z8%9yEa_oL>WH*|;m^n_jz59>Yr37t$5ftzez7pu?G{(ZRW6{i>Dcn3q<=ii68r51( zA{O9r&3=)*l8Nj$@CzRKgN-_ybwT6x}YtPJ3;-NaN3Z711d4e54R#_P?*lxWCYC$ zb|aJ`x7i$D_C%vj1W22^gcNiee-WrGNxhB}7#Qj3`OkRG{4%A$4S*v7QQwHn6#_xklEe zm*2)un|}@Ju_a&Toog6ds4iIv)`ST8F-p`D>|C;}UfKo*7%jXF zegy`dl0{wOv?43oOP?{4u4LfLcoo*U{;_sVX6m8&3nw(8a3aESks_~+AIGi@ihT4d z1XnDiJul+SYmmGvIt`ChO!7w+XS zz8;`IINsK?{@jl=x~XrA1BJt=dMot55&7>B?jL~4u8cOS3rikVG;+nM5+4Wx2YYLm znB%~)NO)Y-EeWbiBm|*-&>+9oo4mWX_cO+pf5iXoEc(|&R6hSl5zs*E-of# z2QCp!;tTn4G^`_QthMk##FlEsj9j{+tIoqMLuSH3B|BPo*F#?~b(dSbm{uj`rA{VY z<~<77w0<~pl3Z_8fOg3_O8aO;q#*#f1m>yhp=O})85!%grIr93PI25+6^vEE)pSdtndue!-ipQ*=~qywyQfPyw7$A`{w96%2>L8f4cp@?Z8Xr*G$g6`+tFT-kzBEXNo z-uhIe!s~J&<;RIAUxwu5&S1&k{h5?(f0<4_$}KY-%BXxrppi2^bm4LpqYd90oarjn zj?0b>;8bhVjm~z-xkeg}ui6J4E80H$c}YW$f|E!3!oUzuD>Gf;3<_MZ)X^vU%z6d6 zkJZ!W>m<&zgnVbD)&{2qP@;mRSFD+3^HLCl-x5?Vu2;}mJQ=+G#RnS<++TCTyR$Z{ z1c4n_XxZfU-^*4=l8d-M6@x8dkV_9!9AEe}9dQt;yf!R5mG3*ky~r(BhBIxD z*faFLH?p97lfAV;IJkJX|FIOl92tQ{r`l#JD^x@vE+BQ!9(h@-1WXQx6I*I@x)59M zIQCrh8B0JjEKfgLpRQ~^x1@RmMvcG!aT0CgcHZBzX+l?1e&ko_TBbB1nfoDhhZUn$`fEY%Ih%d-5oc*awF_o-CtQ6-th*vqxdVUBg>)Lc~r0xLKqM?DBeMK zBi!vDSr1eQ^mge;bAu#p8Yiww%prZv{X9TEAr}NYG&dMs+MSAm_UE)TGX)1}xv`|+ z>nm5UtmWPmZ_^zRF1nEF9pC(WC|9KJs5Yj2Fi-=?cfq2!;6*wb_pS~`#pNLU^~leI zm)S%C91i)i#4n(Afp-u}@MtZp#F2Ol#gXbo!=&)rL{$!mr1z^#I9= zDwFCL_%U>c-)+48PvF8f-wOgAw)s@hpY_i&e-(TmSk*tRSTWjb1Mh>jH5;0@x#R#h zc6D%E9uDMS2@aX*I>10ea)p7EAX|1ZefOB@u$|G}fe;NMR{NkwOuFizD@ zjl`bI4R`TSEOQNA=DOqkKaczBouW?xZg4`I3eLA`ZsV=2choIqso$!4&`dvQlGSmR zYSC1JW5%MxQw=rl%22}C4apn@mfrARY^2M1BQ$LChfCC13Ure2%yIeU)7I3cgpE39 za2VSlr6+Kuvz5v!8RgV<++$`)|s==zFhiDP))&*%W-?4+c)hdq+)o4~2 zHz{H+x!+tw@WH^G%8L{!3|`we8)kA{Cv%}MtMMrAje-E5?WD4&g=6y9&bT9&xj*)M z*KVat466GgZLAK!vc3_i)FD^f=1t~?noR4&yp>>}c;hcRH|sJG!oxk3@Dnx=FHDye zGi{(z*oMhI(BpwpR8p%b9+fyew~mGZfbO-sX4=`4&L*9CHn^{hnii!sBBfv3uV$nZ z<7Ck;9Z25N=|l(Jwi8U>RE0&wHtHGMs82N?0*fM0D3aych~HQsO_b192$pIbG}6KRMySA!%W${=&#Sl5T7@`CB=hKQ$ogbXU3>gl1bIQb^R4IVd#+sRw#ozR9nO5<$g$0S zx~UV3!wsAeO@||9J2E%qPPZpGK{5}^9it8Px8%-b9J)$-ibO}=%rqhNw@{O>Dbdq& zbbRSmTBP=Lh=9_st{gegs^#3pAKKo;egSeAacpuSiYgf{TK7m>JJ)&Jv;s$d3V9`N zx8GuS0G8a-F2ZsyEaN9|l>lE>YTYw|GupTGddj%ze<(K1{C^|J0nqUzepp8#;!utr zZ->pJAzG2tmj$HL!0mH-=OdCEsyg6t90%0h{BRdYK zUnqW%K?tJ4a@oOgHz!~>{?Ue)DS^mz)x>3C8bqqpyZPnGoNGB}UP5N+Zgr{Z*8NoS z;ijxgz)mG3phU<3!c535y%d_O-39F_7gm`PJC33n*zuz(GD%^}ktfpgU?FDSrWuGD z{d@>k-pAU*;g%ym;X_3q@^kf?6;zJ_X}!ifdzmnAT-QJDMP5nsDB@ro9QjFYvDq51 zTRlgPZtTHnOTH|Rdrq-JF8gweA{w>y0wPfP^%=ayG}N6_WX(3Ya6rWLKSQoRD~0Tu znEIv2WTv)F9>~meDryOGeBDC3kgS%o>0}!A?SkjXd9ccigm2sneR-Z>Et*Q2CW3tF zmRv}lUxnG+H61$WD%=kVlYOkTq6F-4NJ3TeCOHDYCHHRW$`^UFA2e>njzS0o!lJHF zr)Mo1l9E)TmY)3vl0!^Qe21EAfsd}m!zzWU>;`0dh{Kwy%Zi{^0T(N6>EvCV;B?7! zCO1B^`intVJl>MQFLiL@gvo<=9Ll;uUD>@4)=x_BY_ z_W8@i_cwRVo%V0wnxe1sCZdDpEvFlu&h}V?%j0X+U4Favmyw;0^;mNyq602RTbyp; z@MiAfhpN|7a*otV_WrZpk{=q#9#=Ui zH&AvA5J5To1%%Ged9*ztd4PT7nh`+;*#pVWN)c%Z08CU1$e@hPw0{r99i3&7xz{Ua z*J z{tGYv;sz#-SsW9#=l-4Re9CB%IZHT3R^Vl_h$180gr!+x`}W*DC2P~ z>JI}qF02l|?uUMW;N)|S4E>wlZPbpMPUW|y(r$@&DD4Bnw@b)`P7&<}2RntAXlfz> zPeaEe@+Ghm^0BBYwh6QcDr%#91RzEZ#^CC#~_{|BEdFEodC&`hm zAMBHaZT>dY_4VkvM(Hisuifslh*hb9MW^e=k3+M9zRq=K(5#d_fkCVftXAS}`*w(6 zDVl*oOxR>u>$k)$MP{AvyruAPhdnSrcvZD2*G~%#fSi|J7n;!3WXDKXteSxAwa8XD zkET5zF@9QILnk*e`)gDdr?`3$NF4CZx zjQmrAdc!B)coXyvnh+F*>x2LuYiX;fWg2S)?26!q>buUw*T2H8zu{ja(OH2yq%top zqcy?J0uFZNschDU7Of1=vP!5$=Oy@HP(%_*M6pyUqsWo9p%i1tm~)EYAfx_NzX%5DoL-QB*zX!AW9$W7mEbAGRlbTME3bu8d&b8f97Z{%cB z8>z7BA}#%QT{rrpvlFAaq3-HPI;?*LiSugOqB;7{bmlI8Q9%XJ`;8mHu7YCQp{~5N?d<|T%@^9+QO()^C zf}O#`a)w`dvfsNFt{zX_R@Fn99p{q+?Xt%hBmv#c*bU2fSATz`bJVn^0rQL3#6G@6 zD+$`Ylm@!LXn0;g$(ua!7~upjF;0%7HL%}Bt7W#nS)tX5f+3;f@X)*HpMCdB=Xbw! z%_=(9sHF{kKa5l4Ofqxt;Kxc{hEs$zAn;%pRMqO~zo~N(_E%T;232+}D|C)yK{@NF zTo9*G*1wb#(a7tA{h2H?Ll)g4BcWKb9dW|HraBRfcd)G7Xb<5jW9@;$R8PW^N3j-| z4nx$Hn%$=!(8Gg`+|Ih=anvl($2sG|nRr{A82_C~Ip;FkJM7UXk$AeWXK#^T?sY@c<~sKL*B? zAo|2(J>%Y7b+y*_gUa-(yIF||_XDd%5+RumYi$m@@9KT-7W>@ITbVQ%efO(xVwu&3 zvT8-F)2W&OsT8~X+IlG4vW@KReKeJn*e7k!}qhF)7{mL_4*ZE`9RSUrDG70Vq&wEz! zzN-9KNLC8`TEH`fAo-g8Ex&=wh_TIaXLQ{Ty#BA_=KrR3?-Xr2N#El9v_xg*);9_n73a#MbzXIWrJ30e8Ftr7kON+T@jA(2Ux|9v@41N zt;)y1<0!3FcXq7Kh&pE(bte1@{ ziF4IeEut3%Czte`Kf_RW%KQEXq=qucEvrb1{Wt*VGB(8c#1rT2y`-6j?>E|G^4eyZ zXFWiutMDd1!(>I2n_Et?D;Y~XI~3TyH^GburdI&t(p)DCY+Wqw=@tdkURi7~9B&+d z?a7cEaI5%inTjGnf4n=XvI%tzK_nONlfH{gbw7&7As|2Y#M^Ud8fv>f^|Nt-wO4Ww zuLXO5bQ*^O?|K!Mzj;h-`t!Y3DIde*q?KT+_rbtdAN(r-<1xl=PX@f^dT=G<0yPx5 ztb?kj45PnIU6wTgRyozqaehzZe4tvT18?2%xI=_i{?6Oe3Z7fxac2DLJ@kYs1$?Qg z!^*(Alq*L}wq45#0zo3y^x-}87RWNjXn?F~Kq&BK>Zd216V_h|c_!~E}Hu<8Yg zxPk+z$dA`yc1~LNM?~*#4@uqOk@O91d(c!X7(V0lz=YZGI%G-}bla?j4gYlzxvw>% zs)mDTLFwvFx5p|bDqJc4vAY!qL}*xW!txBi;u&uX$v{q&up)d6m9J=TJlYs!qPZ1X z=6m|rpMoV-LgmY}s0vCIxqpMiTur#MA`|}h^u@_2DmLRNtjg*^IYd?xkjkpJ5@p^h zgVHi8o1TZsAzC>x;Ep1QRa{qTK>+fhX%n<>N=Ma1WH~6Obn=Ey{u9z?aO9D>O`@u^ z%$+E9<9+Zl$Q__=0~+Uk*5Jbvjo-e9Y#iAjkg*{I1ReM9T&`uk8TP99g5@%xU)B7A z+5tJtyHlDr$=S0KC`HNMSUn{!?7ln%43aY$S5Jc0Ak+)UY<+z5L20Qx2!Px)ppqgZ$wBKKq9yLM^U0Y3GP zS3a-s%rzO>;I31`L_*=ay^aT{qr{a^xST#uusCZl{moThgTWw>NW0_jkAqJ{B$2Y} zR1uQtN#Vq(Vq| zj~Y|t!W0$uf~6d~X!M5=&@6rgWKXzfMFE|lQeq5@)Ko80ivEZfCp2Cf9r@;O4rQ`l zcdhr(`c1m)ho+4NQFKwQ+fpkotal4# zvrNZ=>=i~QW*HROOlzZMJgVRFNpo_dt|ybaUrvp4c-}K5+5V51tk8y@)BE0iJnfZF zW&3}nIY6>H)p!*_C=*Lde?bXkw+uh1)wJwga0!fOyjvNf&jjBO4VeE!yHf9O`QRd! zdXCi^j#XAY&zmjy_4HV18k?$VqhvLQJ@{u>@r(m#jpjJ07l;H9#-OqLAA!&L74=kLF)8}te@X?X>%~mz)2je8q zXWlq2m0y+Fi%Xow>vnmrT&H-*{U6_Y2H27&OuGyGDZZY+;s;xx@=33aK_)0kz`NmY zHC{dmPKDP&6@edr>%AX{6bbbLFU^(XA~{a=AJnkb=+FgG3~LV(v%Y(dZ`^)2n%H1SkdiuO=d6Oi@* z_*F!^2Y3w>Tvk1;OmK#LCH^%0R%Om_q*NzD0Ovpwa*Q$1CLkN<)BHH#kuO3&3?t2+ z^jtISF2z%PY=;rxo`g16*kQUF)N7FO{_Ip&uc-*_L^Olk?OKg{CBE6gWJQ&6=NwFN zVU4S!JHe!hS#+?H{U|e70Y5HF?UDp|sa{UoonMrakvM1fR3{@ClrUwFpm3kd?O=e; z8L&m#4%;0O#-3EUaeDX-Cxm0-yBHDTHzLGY;w~;}*o4I)@OJIDCm1*}A?VQZ>`AX~ z{1N<59lVkw(GC;|`vuLSq_UzGFW*s&4!udmuR{>+e;NlssEJ#_?XM+n2XzW(S#Iv1 zs9rwKMMV4&Y(6gpU3=ufut5*i$ITT+qEhAJMnRID{h*0_Ag~6iHwqS0H%LG|>SsDH`61FwKwte+bZQ<8Jf5Pv0?Q#hAQDLr%|ap1x%WvE@UJK6yD$Cw<3}6|-U=twTHo zoah0^(fqw7GQird&AMIMt<6n)xx?-&C+Znm3xU$vbf4DdKlgGEdbEf_MlV%>b%9s` zzDVjelv?08pql*EJGd>!rLXQnnF;?WoD2Ysq_siP1f!LoJm&-|l&cQUqrnPxNdY79 z&vQ5~Rzl=rE9Rjm6dm3mddZ$UQNVDh+7Xb@AZz^mH-Dqq0@GlptMVZgxd!jT61+*H zp=gp|M(W_l0l>LTfQ1iWy4}iPJ$M1mgB{9hhp-3JpgPMnwiGxZ&IHlMS+~LeqGztL z)unRaN#B9#Upk&ab@|fFba=zVuXWt6-uuiak93FGRZcX^6^snTHxlTiwa?sQ#)V^U zJAchHta)RKXda&XlNq88gG*buYTuR-`T%}><&kFbo(_myzq7^-!>54*AHV)Yp>D9r z;;o*4)~9qgp9aowj!Jq=W8w5KNml{Nh-68^9xoE*T=1-TR2SC2^QV4Dyo^2k#1jT=XW80ie7<>Gpx`>_M=oFG^kR zmd-}vn5a09V3sP1F`XQsD}XtQ1QIOBkrV{KA^Z=K)o?G{-_dH5a{6!NOj*#JZD8@{a-@Ut-x1$Xkd8A`t%6>(J8ck|g!K;=nqx@kWgZFUq!K>E*#6sHh_Hs2=o?ivOi z>bYGSZgLK-6##KN zBdpI)|3rcZBG@i~(6T6eQ+64l>y(vLXik^-G|XhP{IdV-<-W^YZ&_U9`q{G0u?oI5I~nrf6HvgMJ4FiO~2-=n7I@^St*>fcZ94bt!EzCHk6)Q9HEt^@~@*8!-ems${wN37uI(M|mU$?8bY(a3Fsh=+{ z2&k#ar=K@Bw1G+Ciw|Ak10h$v%Zy-za)m^!qFk;}W;Ogf&LgiuuwjsIFYQ(`2uhW8 zon(R`riw*loA9NuCoHzh!hg=afuo5PRE-%?=njIP3Ky#Y*Olw*6+)AJ;S7Aeg;7Jj z3gsB!3qgUZ9dJnmZBt=60;q`TFBytM>`(6&S(CbOBHBcV`X=~1?MBlAxGc{9uJ7UF zD73o*voKMIvKEfT3kls-lBO&CgWyoHzcMtfS`q)){;KfmwnWpnH`FD2$F^kbm;);) z1T|7Bu=>GXuo*IXa)BiL{@?0tjGB-~M+&su-HV)u;vu4f zb_&+jbOddC5k+QnoIL$gJ}@I4tZs}dbT%5sKqtcu4o>#O$dG~@cY@+qE_OD9(!w^% z6PJjexeH@Cow>uzZ>;x7Y*!o%Xr9@v$9c0OerCs@28Ufp0jemRmzM3&nz)6lj3ncE#ZVgHHmnX zP3zXo8rZ8V-pR z07W7Z4s}I(98gyv2^3+t!ZN|S6o)x1>Nn5|3DfCG+YhG3$5suGeH+5Z_17AxyIvMY zYW!syndzzVHHWq|nRy$qy!%@wyG3_{f|oA4Q7;MSg^$wZLKVRQj!ssSbnGTr+HFan z@sXuLTrsW}Yv9dAzP)-Vy)`7`wF7cNNzRFMF}hRqBqu>jXoXW_98f?3Az=s+eMq3_ zUec`Sj>V8j(*Rp6N3R>yzmHXlt&bEWN9zOq*Yp3lB@x9#0j2lh4ED=oxF&VF@06ggs-0K)&3k2E7K0%7?Kx^Qfn@ zWzT3dmWrnWQ9v#M;G(~#0N1&-k0^54k~Z!@-2CL>yq*dVqUo?9V*aL3cBvm(Ysdf< zg;kVb{nt1%qm7TUk9FeAappV^b9HWQj%#7W-e{VK-Jbm?zs7&k4B`a9iX#7G!Fj6@ zAuCwpo8lAyQ7o>qKH$}8Uj#W6hgdjkt*{cx48%aAAMigPzHEl(8*A-qtc5rtT!arM zk2Fy1tCA28mMf^kYY~mBot9b2eQ%#N0d>z|!|wWlQd;E!=_hI!mB^67*-dfq9g9!W zwYJIK4_yFHpZs}!yaP&ab;0Fw#vh5oa#tO=woSpd(-Ir^_0)JQLDzFbBHs$5Sc4WT zaR^Hm0A%`W4fr0ivF^I%{=0+I9MRS(&(IZ~MMYSyFe{O`oGZj3xj=LAMyC@S4<9EQ zyzDJG5@Mam1aW2S+6>LC0ME-9pM49e+ofn-v-PmFclTRcx-k^iJJ3Oi`?+EakXk^l zuCg;MK7YYnd<`V~XbdsMDhz-Xej)zEjC34W9%Nr0WLKfTaz`b{Z=c7RD>EG}U&g>{ z7VSsKQ}ed!c@{kbem&3l>6_B%c`jVveAiJn4xy0Ahfn$;)_0U-5quq`O%x+JNC(20 z^a>vqKsrIcOBGxe0QS^xT_NHeG2jP6Tp}BgZF&g<^EJN}y8CVRu-fclF#|r~`215$ zmmOH1J?0h413KYw^<}1!;qXhunvP(h#X5(NJJfUt`f#aldqgMl0X#n+b?6j56ts~s2VB~nV*cLa-j^)#T^)!ed>{2_D))>!`poVh<}PqH?{4( zI&?_F-+puhye+*{h}!@MFX<5P3fvg5W5=LmXE=Mca@N$_lfJ`i#mu}%>&iHJUN^>^ zLv``59YIn-Vl&&L_F*thn*q5V9$uVKpszBKY`jQBf}sc0HrS7Og$IS@oWV}i5kk>k z$sePA){K^$ut>S1VRzy53nzf)-9ixNOTsO70Er`diiTLJUKH%r^CeR`0Y)2}ObK}P;%s;9=uvLbRKzu&j`@wCYE8}`rCSTeC~a*$rc zRHhfHHIolc!yheRLqv}yX2$%>7j6YCJTmg`^lc4dzqf0@BDmyl^SP<+H;uX2uHnaV8#U9^*nIQZ=4AAb8^ZORck8+Pp&!XULqK=oHGHN|Vy~A~MIc0N9m?bb)r? zIdUnC$}6p>pk$~tpjUx2i`oIvAAfNr6aCd0^L#|)0u{j$A}_{Xe=;@nWO&|0jj1r^c`$xR%8 zDx7ch{;dDc+s8vnLZ$QU#0Jr&RIT zm8e}Z+%=Ibbfak;@VV3R=}Sy$99g{a$l@TkgSvcZ9@Oo=7(*wV>VVD4O3;bEMDy(u z%_2l;*^M|T4d+w@>vcX-{+kLX#U~uluF`r90MV2m3S{2`xL!o?Xm?359S&qZ<`qoM zVcTK>XUZ8@uscJ($}8a19xT`$la^c(!7iO9nH2YYkkILfVJq03grt$&cNZ|&MU0H! zdMCTUf6BfK{*Ac6EbPL&#m1N?aY*APSVNh#C7k~*0wfc`SY04G5W9y)3*G=qt*BKr z@OJpfmAn`Jc4~@{5(tWGHdrpowdb}T^2BzaS0r~xWX?*KWfj{r(V|-2^yJ)k2d?Ej z0L(Ty#Wz-UC_tSPi?|JwbpX7_@_djf4iB1j6{Y?d=y@f@y_~ZKP?RA;C{GTtoKr-K z6ge1Z^dEkc2!9FS7TR#?JWY+GT?as64DT=+>^qR1|DmGSX!ox@vQtUp- zSHCFZy?`ZxP^7JG1~ppd93j;$AN|Y zZGsjJG5EiNpOE&W-p7<`E(bzqxCqv{Z45IQiM4xfo<1ioalZC+BMhzd)#uVzpa0MwV-R)Rwg8>aI%Q+A zxK%t{u5mQ52q&7OWfxW%qnZsb+S>0=Nq`G~mkO1iE~yZ?pohq4C`_~>fjHBEJ3}t# zhJY&jX z!h=@eGFk1VoH!R$EnMJI9#>xElm5J1$26&+&_3*GhOb>_7&{V_TCFXMvv-q?5fH?4 zU-AkIM0Ue9Zc;hr9ol!MHPz@Ca(pm_l(}R`IrB$G>S|1 zrg7&S&I;#0IjptlHP%|NE`rnwJh>tSf{0wH+M}|js;CeuhrTR>;)rDI+2RQRA(!%N zX5q_E2K*=f2t1G5?YC>&krq+$ewW*0DLLEOiEU0g41Jz=Y(sBN_~Fceg2P z&7Hz=Ld6u{?s3+{+4H=S0fHAC zdN~?tQkH^MAqN)qS{F4Ny87;j4O9~cfp_1OfE+$?@qA>p7V8D*dVDD ztqM6j9tB5gUgafm73H~HyexbHsAL3F121RMr>q)(8rH}#y25Q^wrSu8A~MEj>u2HaH9hnZms)ER+HX$7FpiFYOZQ`M;-x-|!Nn*|-A;v^6HW9z8Eo;Z! zgBRJ#GkuSd=^!s6$lzb&WmT=R%X{9!X26Q5t~dN&Z>^6!*TdtXHt8EPy;;okZxWlH zP;~QFR5#QKyhj!Hv40t}vfjcoOkz}{j7#yTi)U}yksREVeqY#uJUyrVG|siFVZZ-3 zLDV(QMSgYHy~kXTwm6$|BX#k#iYQgS>|Spz6RpXl~gkj;8hY5O3e+dA!0;kxUmaz^aSa z(hH6;s`PGwiw6OTf0R+@!oPB|toWSrD0*H-BX(3<&#fCv&T0cMr<}<(`8iQAkx>)p zSto_5&Agtgo7#Jwo#ABoEZ^|i)7f_}+}ge}Tu;Mt+Wxab zA?Ba?g%=!1DlEQ0;Xv4Ma} zHWw-Z!^>MllT-fQgRD>A(+!ake)dJs+4~KVoneP@zagSzW#a{E#n}W4eG=DnJBPa#II7M z9jG|?LQ>HdKN&w4eo!a;rf&CxB+4PP$(y=A1~2ZGy3RgJ~8I12U zFDG`NcXdPs?A+lErDjA_RZB+ArK*}6#-=xnE&eiDG-}@D?kWEhFei;V7rl^^>-GeA zqA|NPxN$=eUrYjvPmdP}3@f;O^ZyUevE;%SuCVcGbh{S(SzHiUp9=s58K4{vL+2wO zXs0C_9UW~Ka~P3QE0fL}r4`FdN=cPM)yXPnk6wrE6CnRI{t$#K}QtC&vfuYKQ@I?9Hc)_^`WYgk?iMUIux=I1!^f2-MQvpO|YR z6&v|EQe~M0a8!|DDX9kMBo^$R;5NzNR^bvW8cfM8DPi!+2KPdVXF02W-C#uaD$L}C zX`{hD7A!xN;dE&;@!v3+5k7COXcb90ahfTPFuiv_f&!->Lx(6YA1n?+?Eo!IN&|gO z!kB)9B;Xt;_XTV&x?{!2b0tnvgy-S~XVyT#sU7@J1In`l%BkUWGd_8idW7I3jI*cW zC!UH&;vEKM8f`QZNA}FNp#REybYbQ$0-jaCGAz-I!Eza`4l9_l{@M8pfn-rGYSeNx zJlfj(h(Z^2npa3+MOsY4sq;2fnB7iwSd6Cw&RmCDwVm3d(`JL`4SK9@I+k~5DY9;Y zWDe~A67Fo1I&r0o52Pyaaj&beMTKX_Z#=$w+Yx+@oTaVYIF>nGqM7@vZ@_YlhVg7i zNBu!4-JHCrvCzK(rejNfkA>>Epgs-WEVWVQp)1PIVJyZo@##uoyF>TqGc?sI^ZJ|qmcDk(9)m#GQ z>9txhap8yCZpV4iXLv`F54Xsh*CjOpMnpl2;etmltzMI5UFgIuhD4M!zDXyE@3XPq z*WPC$IeTAJLlcoQMxsXt1p__$hwrmvPM4rXHY91v*m?cCF{nxkwSMp@Gis+2LUiqRqf&?}LK=REW&tQC)FM z{c|PFkA}Jf=p1+Y$p`ylZUwA7Tm$i3^6>7mq1ioIariWI!|-3@HuXqY(0WFzkFL2? zj`XgkJ7b%7aN_p>2y3A$Q|wQZyg#vHRC233F3zbw;9((P^K)=E&wx$VA+};t(^z^DKGO={;S*z(Oy!U*;Ggdv2a-Eb*hhrV7vJRc}HTxu0x^mNcB`6B{n+ zuU*Tfv@=v}5`F$Y^I8uJ_dQ7btR&x-P?Yd+mSNtaEhocURK8l!=Lh`|Oi}TDx56{R zzctURgMW%lIBxfQ?UpGLFDT?`iFPiE{>Va;XffJh3dba&i&-{)kCj}LrdAw}*WJWZ zS<~Yw42g$144)HTn~tS6&Rh=7xftfS-43Yo;j0AKv{yrnC9)7{zlG%9Mo0j@8(1C! z(WBd^cERsw0Qbsa86$3Xxrz>>WPXJN$=p8l8^}ZAy!@+_gm6)%*UewR3*)!*0v)%@-?! zyGUp@a)7o6qfXsI+;fh_BT~wN;BpIJt=9{0-G9pa`+Z5`g8qIVNIS3^&xrF`8aETj zawrHRws(^sH!q^`pWL!LZqtMhcj9~sPzRzK{rD}2N?D~&$)e=tLR>9HQmVGSjYLT4 z73jY3wCCSk>tqy%H0^?HttFKggUOp7A)2E1rH=eErMe62a$v{jnaiR#Wn<_O2A51#mFRuEj?K zp=x~;-`*t=wI!TfBUO+%$1?c~Z#}+CZK%v5-NWa=+xHIaFmyK8q{RkGAs1`ZB5suQ zrK#o3vw-NSU2Qhm4pcrbM@bf(F&tZy(fWVlEPT35lis+(U=Xyj8)7Bk9RAQNg339(^xqS7rYW>wcIb|`-GV>IETHh}Yi@0#i3cH!5YG>QW6;6A`U zlt3~sOM0_L`%zOwOXEYyzhr+Emgax~u=+KR3xxJ8W>s{SM%oTDxVHR*%Vzwt4hAj* zvzlit&;+AP8t+zc*DznB{V>=4SW40CsORzaS2somYTLCj-PPOG9Kj+83T4ib=@Y{3 z=`Htw>cr}YrraY#r9vwerK{U_NDJIyG?TXsM6(r+?`?JlR80j zY}|M_%hTqAg1wjLeBX)s8T(bj@q5HgN*;nS+c1Zr>*EkY!%Rrt9k`h{Y;>|;*)-pQ z5MQUGrcXkt8{{r24pfxIIsmSDnOW^m{xUoZx%Exhn{cg2^C}s8V|`p0&cOZNtMg&O z`{0J;c)}-@-#J#aFEDmQN5@=>>66)d@ODrE@q&;B^cGIK>eo&pkgX21%gWSg)4;o9 zpZgv^mKq|Y_E7$<$?3aJoVA$0!ZYbjY1pIJW+%ky&6!`%cW(3g@wD7YXYW+T9=7NL z`XyuihSQ4l3x@+DHfJ$JsJDrScu5%!?{vEE4iqEfP=hR(U@>U-Stj0K;^*Plt3p5} z6CojtfUJg)7zMlt%3h)0?Cz6mX-5!VHR9kC+MdWSj1OmK<|4gOrTq|$8B*A94BiK~ z_syGUNn_60;P#30z#c&MvS+cuu=}&t%WMK#A^iu_!0^ot;iwyk&h~UhpB-xV`}^;I zmH=`ta6uJToxp`N?8>hWE#H3x)kGqK5}NIvy>($}zb%C?dnP2$jEcByZ@p&!xX`dR zTBf~WVCej;_w`GYH?KZ{>Bv*Vss1|k$c~k3YY;RP+$>`O^_ADko-+lyC_9(2=T+1o zS`O*}MKhex?8?_=2K%`0HJ`OABd{p5?b&O3ZtJHPw2RF!@H+LpY;oN42R`XXTIrk{ z*JR_uDl2_+jBx#iJMAAaEs3J+TNJp6?k!zS5GpKYnn`j&5p`y_(;kMY(Eb6H3uc@m zGo+3JI=DXS!xqEyH%vTVx*PQ{{Oe}!|0-yaf%9!Y7UTaD8&Pf%Q88?E{L7xtZrESO z`rp&8Szt45_7$9*X>(66)urP!L#!EDCm?r$erTtNb@^?k4Y>oh!Ck7xxa#n%p+wIO6Rc z`q8w{sLqve)$Sdb>$G4lRz0k7xBx{iw1<(l1!8lVTIHfButf|RA#q0(JHe$;ARI(2 zTM^N+3^5c5f8+apKN96;lEl7hxnw-ISoOZaaye_+xW7wGcH4-s$u1eDI}bhfsRLC` zX#{emxyaEnzq@hv;|E>wJA02PP`mr}fA$V_yHNB5X{^s~{dk#T1iLrGDoIAkX2%{< z3PAjiMH|a?Cm9feo_D@Pe;N6>&)KfT1{N!Z#aVGquSJ&0@Eem+xetK}4NP!(`EqKaUS z{_@?Pn|Z+beoXa&eFt$XQa(U}!|O1;AsP1oS|J!w{Th8WM;pVF3#m}*+Jabq z#bsD^!5g2v0rdN_s38b&1g5`kU7?CD9?b{@l9pL-cihhug32OpwkN;_cLF&PbsbA# zf)XP?WPdgH*lLAd0h}=Hp7*$!^OgXrj2RaK@!y6}v};S33+fM}(%2 z^KSIu3BP8**8$C1Hq(Mn@MvS_9nP4RekiVCml{ya56)h0Jv;_H0S+JHG$T*I;h%Nc z>CN5>t4!|WSOL#73Qoci!>*a>E-hDc<6L)_l)}uYXaBOy8-cgN=I`Cg#FQP1VdL`u zAb;qlgzFm4ckC$YUDe0~wc-Vl2{#-MZb_TiGy1T-ad}vJ8?=FeW zan2kOa$7sf{p_6!EA|0Wv%cqHF>&}qIiW889ZbutL}RUXd|{RZVir~})HiWM-qtNb za({dX3+26`;C55ci($HLwdf3f_E;1AswH$!wRLYY69z-_s#zn32wUCyREE zJy{~@V2y>px)7^+FIY zr8uPB5h@#z0)IHq3bmtvFqDNM9Qoqk)OjbCGvH0Jn=q{GIBTtd$GOdBqjogid|=u2 z)J!s)Nqu(ciqA+&MmZ&DSVY0OT&$vyQlmWWACvWfM6Apw47sa4Pg7)1YvbVFhW#ha zTW~ZX**=Qg?$_ATa`D}cQ3Le1Et;vH(B8m?s!qL{!0XAPJG3Z>FF?#-W-B-&s=Ev% z>%{WCQ&pwR`+JyP#I#Iz251Jn`hsrD>l7#lg<# zO?&38`!vqaTC3qr*I!ur;r}dTfp0U(%h8I8|J&68%g4XSi9)CVK7D&@TibP^VXaL} zDK{C@LIeTjLu}e~@(Jr;)h;pr^Z$p&!T6p>MQYmch8X?vl;U4y2*Q#EbN^}O#aTM_igeSy|;4bkELHVO%_+dAU%l0g#vtUiFUk> zXguGMxwJ52f?kb05-nuOqN3X_Hfb0*D(>A0IFz7i4NJ+G+$HsNNT{qB^r`-cEQ^p9 zpg7^bDF7OXkUo+;ydgv5K|aI#n%b>j9`=y7cLZDsfE>Brpe;ftzcxN`-vw+&{Evm; z-4N6X&3VY7bqC^(1YYnO`x(j=w28<|Tyy?Y{?;=F-d$)cY;IsPC%oTv%ejAe-~3Mn zj*Y!HXHD*o%G6HqSTHI=j|H~Sp2ht_79jwa`Y}Ir0VsVXsLQ1dV0B04Slpe)%w-Z& z6BPP;M(_8^*D8B#QV_EYIbU(lZuwl^^*+F&teK~+_VQ5ESJ*-3ApQ#mi?Er1#C*Ri z!cZ5%Je!2%)RZeJ9*z_~an<4kw|h8#FKRA*5!Kr?-E-k-j-FSY!r9??+!Z@N@Shku z)HhCcqI~$EOMKAoe^`mt6LnW8ZG?_b(TYQ9e-?Ld2=m?44ZHwy`U=Y#@Tx+b*WnHk z!>A^(ma2wSGeR8!3JjFYh?neE#srr1Ku-+Q<4tU5v%VBba9$;1Bslym1eJ=&jhn~O z0tZa4(SI82b@psNMUi$BHRW}iMj&p9dF-Gop5X0o_~YEhSKc3XY5ity(%5}ztHKvO z83c?B=w#On(`(v;I6*}d(CYPX%pauj*X^#h5NJ;Ui+u`{OC|JH%U0o@WOa(>|E4bP zT)uVgDZXSM*TZU3o3RpdY|&zl?ryXemzcv@A88wzbpqsyzKTf8(4OCVvLiH5mXJX$ zh--Yja%U|*{Ysxmz&D$G?8pr(&f!l7v(6PEh!4BciDcq3%}SjvFL=2$bTl{b*DK^O zOd@;ejR=ixLz!HvAHK?W@^t`sS<4u*pQIZctrnXGqE7zV%nzlvTTjQp%}-Cn4gaY| z*2JM%b_@K)rp?3PKF9h`nFVm3Y!|h~!LUc%ys>h9C!!$VZLOd2VI@w*PX{kyjh=AV zRQ!r5`Bu22UvFISKt$Ap!eu}^Fb5la>Bdc8W^4nLYXY+w#M+k3zKLlmW>XP>9T5jd- z3*Rhzf)+#^12+PH6SdL1By{pC;}dsW=I=!oI-<1#wY#^Gg=Lxj6`18~6g8`06tYKC z$mUibiN}Ivk4kf8p5!e_-YE)Zfa*93)zmjZC6N~sabg#`<$2d30J$vnm}eggKVggj zMK?FCsfjMT5MXwv7eeinhHAzg5DM>$P~4W##*}}56g*+_@6UeFB#TL@R7GW~#n~M} zx!UlQ83ppCq;0l3(MlaLIi*_R{-Q2 zmQ!rQ*<52&WO+5)1Tgntof-ZIZJ+4qojo_J%>8P9QD8dUTflssvF)=w^ygQ`r|!6c zPsi(UcA#$A*BS?wZy5Uv*i+tIDH<0l!g8swT%{3ojzh~Fl;RHPEp#y0bUHGB!L7&1 z;s5NhS~ko#YkhTM`}e_yW&P(X)p8R}4bH+DfBHW#4m=OTfcw@(IOzW`3_13Kf8#n{ z4|Y069)#cAX!>UVBk=XoQ-j*W1btCI7WeXlX<-D|Y_cv?thls{~i^VWGMwyN0Lb%5tZ^k8m+q66|!b<3W3Hz=-#iqjX_W{+K) z#Me}z*be!w!Ybghc(05Wr$T|PR!OJ{eLC1X%G-DF%0N-uG$dz_|6UxM(DTU-M{+O3 z+OjXj0G{5b7EN9R^A9Liks-m!ak#1+mKdWkE}J|Y`H-46Qb)MnDp;Y@NZJm2DM$l2 zAujsBNn0Rlqs6hqhy%n8GlDcKH@J49Mb5RJ!3ptu+C?lj)Va@G)rC*fUqLrnFtta= zJ`c`sIDJ0sAt=^c42Sc_qdL(9I2?Lg#dVEMyD)BiQQ#tc{P-sGzQ2HNs178!ddfUC zVJzJEavOBXXzJY2F(1n>Z@6#uA~Px_-acw$q`kK7e$%kguBJP3T@6xl=jemA-As|> zcAA3hTW@636XKgC8+JHvOpu2olXOLq_J`zLs>+|?Y4{~M<$ zWnzsV_7o~S_LspLEvkp?Me?lcsup;P@va1(yB1cQPm6KUqPo1P@vxyUOB=sMn2L*wTC?wx?e z{l{YHIRV8F_W7&hz_Q4<@enSYYuDm^uqTtLD3m`G?r8LK3T!w>)+26aCT}OMd9eYq zK9_5pOMsP#-F=P8XZ|zW<@K7(2U6UNoZHF)mzOV=!C^?XhpwOXd%JYqnhimj@G-n= zg=XqPnLoZSjNCqdXd6bI@9@io6+6L=JB^t_trkYZC~5ubchA-hxZG;-njR0Djy>FN z&s2k9F|*k8+S1FQ%yZ7QGCbxz^LfFzFN*@6Ab~`oZY6Tjs>m^fyhem+7!-pntBj5E zG%h^dzIklwb)=0x>-`Lk3Rr6)$uhNl!#JR0cidn?#4Y(d&2RHVk`^M4)MGECZSYORD&rv=3q{t;Heqee8fD(uU;s#4|27^g{WR!SUHI zN}bK))>dr&TbcBRQ@O1BQ(2oLPG>U(A$Cq`9re6`K0<``Ff6W^$@>fo2U71L=VSem z3?~-m9DN4MFmCJAzO@$^>uJ=ksg4)tvvCwDBrxLU0xmzi`D{Efq^;du{a>QpsS1vt@goI=JK)xQX`+G%v13z z^HbLPOW8Y6hg&{@(h++CHne*=I*uHI4bJpwZMtJ5PC{8TdnR16-?=){P~m_inT|$q zsGW7w0tUw|ZZsA30Uuiz)jDF}EX3A)3QjP>Yw9<%TX5d;9|!y{ zxe*VySr-9-FW8=vtQQsGfHivm?>;u)Rt9%1?LR7a!S;k?y`2#bhC}1#PWBFma155} zl>4bO1a(WUk3~AUpnrca^!fmj9Iv&rbJ?)i=KE^t6i?bUya01WF?XA1B_>jD}DdJo9p~G5M;X_x{t;h-#Hz(}dhBiW7+>GHjVQUhEEub*2SxlS* zG>Vd;i6@T_9EXKr8FStWFNVNj`U9Q(2RgR*(byTQq7_HI9{K|aLiq4f2@EuEwCo%k zDDInvU-5d<^Gx{lbFEBTtRKFo-Tq+)IzR|)e*ioFTtmi=V_zhPX&ctpFyX_>$$r&@ z$9J1K!Hrs1k|)GTaXcsD!j=^(0pk>s- z+NFQTm8nW5Xr`_d#m?mpB=IVOZ9+7WRj`A z-CCU9&%3ZAZ=$=E+M9B;h$NoLZs~e8Zu~0ET*tbOveX4l=t_ z)8Q6s>%oknh5a`dg!C&fy(-g>3%B|2q!VHCk()W^FP?)t;PX6-D#vR$s`4d@|CCDB zK6#D5l9=tRaq?Ditlq(ETMu1@QBN(if1#{)^CZ?^d?%lPTrGCS*J zcBT`QK*p` zzeIfI+==l1tiYUr&5vM9aI8Z}d~`qr3Zr0>4j+kg z2APe+SMuIC8M|L)eaRS_20X%t$}K685_ln{4+Dnf@JUb1+>lZ6YrlcAtx5vO67$fSaMvL#d=#`9IdK1g^&He-GJ)6k|!I#W40IWr z%!~+;vJ@g~S<<2+6*5Xqlf4K-X=InBRJO`ekrJXvmMjSsm6rc=&bjZ~d$-E`{-4kJ z+|TQE>)!5t-*cYxe4p?0aE$pb!aalbhZHB6$gs_n*DCiU?D(XSjZe#k<3h$9sbMQ$ z4}KS5KSpsfPs|R`iiWOPJUfVO66%5I3;rh3xSHprcM!^#4hy1J&s?(T9Gj;AaqNED zJE4Q#p8jVB&$L?t?N`8-u>Px08jj;%TmAalKTAv^csw zYkKiOXqz6pP`(n!;^Oot;23t7JaT6p7C~pBE2OXmd9o9S>44fR>pMd*QfcGzZ}1(AwM2zCAAL2y17`w}cN9b9gtOqO4Cq#f z&zcM3tC0!!>eE4lOD}aadwzFQ@u;8EM;4kik87_X*SeH5G%X&P+rPQ%*A_GSGk zH?y~`S*spIs>V?7OI^;XwZs;^TnQpSsJ*%R)Llrv5fA1z<|QsIsV~27h~Carr^hbz z=)!KKtk-~xHbxbJ2AkCM-snf)^H_SQ?7{D!jtA$@Ug#W?R_L@hn>88nF4E{dnuzYe z+@@+!nId?>rI*fIVmo<7c7;N8T1I0H1W!#@rk*fE`w$w3qG5)92YLYv0UXD%GC!!G z00l07D53LB8UF6XlqCR8do*ZL$fZH(0(8PgT&Y^^fVQK=U~h@Rz9wYsEmhlh?~*$4 zVMhkt^|7WILwG|Bti5P)*M8p2HVNAvkywSb98OSMiIq5C5UK%z_4C3#v$myIHW7si!b5geoR6L9~SGD;}v?+|jBmc?h zL#!dS%%0e3f@W;SQes^bg?VJ+9=NB!M>V_8D(Fyzj#qMwu(;F9{9d__LSg{C>RZfD zS;I*Ex?y;&Fs+#6g#D8enZ7ff_@g5QOVOlL;*dJ4UE-T%sAYb%0Xc2mQVmNJCB(5Gxh8010?L>5;ebHGlHii)P3^aeH5QDE z9_XAo>gScpj2Foq`FL`p!ZFQxzI;sc=r$UeBi!j(975Pap9?CFL3XUXaHtV-+I68aO`k|}C#e31T4e+s3S52rr#??Q9V zMeWIyLe~l$YokHiIQiJjATaCnG|=$;Wv)sY)L~@uCBrDRSMXvqEEzl;sQUmv0wEr( zRUr2$&qc*R$a32Y)E!x1<$=|=AiDRrq+WYcGlqnOFV!{mk2j859WdaM{sh+%`m3rG zmd~JmIE4Qe`vHRDI}v3Y*}G%1Ah~@aL{6M+G_(4?zHnpXg&Ug`@&_C<3di~a@>_N{ zg!Jj3LjUR?W3f-?y~lzw_gQSNN7Y0QBB!6TSV{@mbwIA_2P=`9WP-?ZqIU8|!^~os zO?sI3=nzBX95jdFY^T`FC|IZ$4tnSJ5{=?u7G(^98;4YBXRX3=_X3@o%0&s4i`QIQ z8NX#%6DfSciE)G#e-7jT&7kb{ZAcKPFmU@Ckjs+lU28F-obPE9w}7H>UBsWSs|Zl0 zj)F=j=UAA0Vq`Lt_sNt2}749D025pvUMvQDNd1g$9tw> z?L)1#Vu2u>u6n;~)-9`gJ^IEe&F)qdk9JNep}9CHhyEOLmljC{73+Y=BQF{MieUOj zl)eKZhs1$yw(Cdak=r7EML#PQf`y$ug3JEe?Sep=dX-uki@_`ZS_BvQP1Kv>3O|Xr zw@Go0n>>V&u}+R0&Fj$LAVd}Wn|pn==p-dzA0-ls=!SwaCnDN^LXd~q{*yK)YMLf$ zKW|fI)&9D+gwmj#A##!3Vu#^V&V@lTE(G30NG`(Q;)e>^YjVzhRQ=Xxok(DKNuitV z)g}ZT)Ct5S_;V60p^5l*5C;I&Pdl~*aJ90ZDJdG40^*_%n=G3i6Du^VN#X>N?l=nk zR73)n?ZfHvOeS#Rh;@a_l|UCK#p02G=qPgnRFl=e^{Y00a_O6x0Z=Vtk(NGvB)p~e z7Ka0wIkqGQv)j+nG>J~Y%*saQqTUZ|n3*2-sMQvu6aPAp{M{&`G8JzN;|t)jPd|J& zECI1PuIY|Wp-zoIE=*LqbzT#qo!Q`PUC9+h7A%;;jN3~#e?bj7Ojjk9TH1i{~&;z zCwc^gvn(h|5$Z~ZNuMEk0i1q1`UcxW@T90ff+LJ}!}D#vWL%}?N)Z637Kni50xZrBQ{bHBJX%SEHb;XapVs~gipKSC z1w=c9-kE6dM2Q*VEL@3biN$7FiX&%yIb+H>N}LhnL~Xv7S4b4SX^0fJ3m_ldjZP%7G{y$g<*Av2iMY`HD6o+Uk|(Y z4%}XQE!}bBQMl=rP_n3V&mm7Xw){aq1^uMobZ0kd9f!Rx_j;m@1H;%9Omm? z-Lw!+3H8tNvQLL?^OZ7^G$)~)OH>q$d1e5d`xyXvhRX@*?yyiJf*VzaMn^FHOB+5f|18e#i?aP6IcrAl*IG^ z<#^4*t*H;UW|VrN_lS2GX6YZWz~%-?FJ_7r;Un66k{&-+e>F$nw9*LuggR&fgl%6{ z9fR{lgs_E)SxQ>R6*U{y^wiHakgTNbgwY^djOv2nJg)??`Fwj4hy`ymjOo#ry*3vk zA|)jfF+w7S9FW^V9Eo!Po%)zlB};N>cB%1xRswQsx zF7Vx%uB>%X!)6RbL2K4RvPM zS@$_kG6z!DY&Q~914!U;>@o&!6XNlS6c6nSvU*CV>vc$^7gY#_Z8s3`EvLf)1s1OF zfp2%f1d2%$^*d}1jl3%>TN)JKb3uQf&;Sn-7B>6;g0q~*B@?zx7FoqG&%^!|b1Zx)fkM!e zD_Pt&57Qx;K;X)ONh+Q|W|E&mfH?CzWL!B6gFc#vJ=-6X=aC$m!8!pO;9kfuJEdab z78Hdp@i%Y@jQJahHPLlaf+k!fr)*Wn8!HBy& znZXb_nn-@<5jlu*;>L9k_A_FiRQKVAbCUHuq4l_lB_VU0u%%O=aOLv;X?-eVpN5MD#>6Z`Znf6rnDGP@@JrRg=s$4~N6B&a7>^s7j=iAE zOV#$Gw=(QHq|9z(9)qiv5`$jnI31?jAMyApbNw0-mGE0s0v-_^q#ij(e@dlszj3?G z!%l-DUm{MCCsPzoDRNOu=gTh_q2Uc#;xK8U6XKZ^+5+g~l_7MMTJFVB09w&No^xVR zzj)uB6wNMQGzscL%wK?@yo`|J!sQ}zu(;2S9nGp~oNHOHUtWHRfbN|K-GY1=4w&&x zBtY)8Ed+Nm+%Sl8#*_RF)Y%AyFR^R@UaTT{TC|xvcLE{8?&Z3W@_TP`=9b91-nGal z1uzGHqf_X#1;u(GnbFIbSbksSIy56tZ^JC1As+zyxOyB3S4PJmR;%=J`=;!j@LIr* ztpCDw+#iv5xUbF9K@%`LL3!e(+ziw-$L}{_M?h(E0Q516<4UiRjAIZdu!_gvR+i;Z znPKq%lzBj(vmCq&?X7KRwWl8`zJ0=8UNECeOf>?Aiu9FiE`n9Vx@kaScr>tbbCm?Mo$oVVsNT;m<#rm3^N9bq9b+solky?TEAgdUd zYoyw}*^|ouz@Jp@!ky0O_VYg(&3S! zJpjJi0qaRb*wvKfBjfbcr=8`G7hXKD_u|OC?0S^#*~E)|jTJI<=asGU-hl zuk-(Whv2f&*{ei0m|Tu{OG=fmZNDlEp3$PpJSQucW7A3!K!HsnXHIO>Yg=nR3@h9}PD!r}#sWM;4-=sYAOWg5__F2HjJ5av+W6C}F0s zmw^7X4pwqIX7}0_ zPC+*(JA_w~-zbHY$Vx-<`ub1rD(`sqs4hNB{O;n!ExXp;ZeH2xb(wbBg-O=m<;y^5 z^{$bdOw8deLTpw#Aa`kJ042pq_kS%ZUJq9egKMqdqT)f9V^nC2eh%S2sZ`Vw7qtw9 z7@xtPUNIwOTnU7$SOL~rmR>D~VDdi7dUQ&%vb``qr0B>C_RpdtFR`2C z2h?CVW{>zO@Wj-><`or#Fv<_q7HC2 zF(o6euld%8^=~ppTpWwT@(@aLN_~&R*W3Ht!Tbl>`})pO*;{e+{h+nFyj|F`G=rIZvd7R2iy!3 zqaJ#<$5Xi3!n%y~bV57d5cLRt6o;6N| z5q|m;+^j!j9Jb;F57uB_Ihxm&=Fc2=yRp5!!6I>r?Pxay6^{ zxl2{KJhtuGnJcK_5qf>m#Gxd9@yfYS;Pv^}8OR)WBqz-d^iQZhyPWU<#0FgGGQop$ z=_WGtrKjq~?$xT9r&}}k0sITG>t%V(P_6KT2+A$h>CiB<)ZkPrq5~4KY=OR=jx;uj zls}qvlL^bEp}6o&waTleCy}LE09d|OxeM3-$=H8!wTm=hU%zK=BP?9R({p&tO#~Ua zc@9)j%Z5Ub@_<>QMPE+B+1XOgDiKLsuoB8Bx5XC=A7M^zEse}MUVumD{I}La&AN#} z7*Rs+M&FiXG=hN;SU%|saN2h2(}y& zQ?z8g`9hOVolniu9XFpe0`k5|3?#?~v(S_Oc`#z~%2drVL+IUvLauk;1F3A;)Y>iJv7+0)(7g=s&40@FqxtB0^<6w^5OSx<%L^<|vUpeSMb+ z1G($EeyS9KxM1#eQ58jP6vIo&394(^x)EqvM3b`=y=4L(<(0#tg-(fNrwAy*D)Y6R z`PA1CuTXW8h9mNp1wwKrUWuONh%FXtD_k++`dX$4XGFNvtI0hLGO|=D908J`=2Qnw zU|hIBMJ^W@Lc&7qbw}7E8Z#M2#UY5z#5<+Ks594RN+W*k$Odj zsJtg%KKS?cb0_2dE(!ag@*C^8RJ@-?HWnwm1@{GoK~w_j0)j`_JbagKMdHcCNIV+_ zcLf~aza+FU(5G-?CwOIEx`G4zlMSr;Sg*{>0$y#JX%)l!4}$&UmRVOUd9>Q8kBF>KU zHFELO6YQXYO-Csf_XDva(i>C0{dl`&DI4{6e-|zXE<|Cp$&cZre4^+WueDwZmkZ_b zEVhxO(}CKmQZ+HfTE5XhimHiPL?UvzL>->eEgo|3^M8ALd)x{``2^bd-5K5r_TK?) z8L@@FpBnGbnx>G1o1vA75aq2+Ij_h1P(D?Z?(LZEx9Lq4+)rM5RBsuko#i5GwMQY7 zNXo@^u|&tkJx3=<*>6+@xaa0hfWZ% zz$Xk5YrKGk&UXZ*V?epbCqyH&7zIpX4on9-Mr<+0>$x2Q{V&;co^3rWx20OhHq~4& zt91eJ+pbjeOYU2}QO|1R@42O{-{8u2!K^+4jx1uIwJ~ikq ze7rcNszA@e)|`nDaYLDP?Q=*(aidN-9qWRAQZi<~>V`WM-Hk9R1DK2V^+B=jl69^2 zlPAh4f4-WUkY~9pjiQoJ*qVL43JwMnebI~D^mS_#hebm#D)^Zgk#V^!L=Hc5oMyiY z$x@X_bh-~~_vT*X`UiQW{zNVFf{70cS5udTZHb+UpFOn5Hbk@#kFRg3UxDC;hIpl6 zxO}Yc5@a`tl%i81c+oqZeXijO4ETg#UlVuOqvEBj@{YGJY2b=D2gx)1@=y0Z_ZzGf z(L|KK&J$`DT#KBPrMh7URU~d`9eF1$1_1{OEUN1{q)mcAcd-)-o%iOT+)n2r_dTj} z8;h)K`OUHvQ0FS{@FjwfrfNkzo3j+R2FiCj0eK>a=Q;x8GLP%F&I!-=#~rM!_AXOt zjrLqn9ie8%|y(XKx^_DHpz_@$=R; z{pgZ_B3v*!FQ!Vx>2f<`NyAd&ObR!*FB_X?6t08;AC^2s7~-}PSE&erxHvwi=EtOB zzA=xvPts!cNJX{&$8#Qa^Br?)vET8wkoKBApa7yah&>eCEM-ohlaEY7N-sUWN+PiQk$h?F3qc+dECU z1rtG}N_4RO3o9a1*iJg&(fFgFR#`YG@xdmAIOVAJ`BoRcoLO0DC)^u=GH1@==*!H; z+atZ*ESwlyhPevuuQuzwL2>5hPH}H)dYrv;*!INu;<1DhOWOkUgr+28<3Q~D z(8!9=b;-c%E_NYc9TW&8w;OP&&-R#$@Z1+&%MIu~#!i_p^K6Ug`6+HdM$-0(tpmc2 zYSL8a6<$O08r!qnW>qwQ4lS8)U*HvzuAqCc+43=p87)*12ycov0lmhfq<1y&U5WCO z?(*atJ;lg!@Z}apY*410k>wg`E**^qqFrEp(ddd+&z{^(!$4aN9q6x-HMo{gcpg`N zID_t+$`5hxniiM*37=2!8j$=VE}J(_lv=C!CCvZNIMohr#Gt@l7nT4E)f|?09&pm! zC(Yh$H=64IVba-hw6+0*Of409ufURJN9*zZpkR$}supMbBG>Fi&YbH@Za-fzv<}sT zEFVEOg_@YP{u?<43C5o$&0e+t-z{_A(R9t@@Du;)9Q&crB`3QmHu@?2#6O4v_7--G zN$c+vs)ul>doEaVz6ON9_3W`!djdFiw6O`*FI0=pHFPmbESjyvP?ZAIgAx;EyzWWK zSY0&>9!ZeNPu+I^7IW>0=LBk>bVBAW7<&B{$>?ndGZVjMsU08fo^S@Ir*4Ztd6mo( z(^Ezy>cBuLk#>k6HbCp(ESoVT&5Qaf(bK-1uAH7G{-uc}0P^WO5i=c)T>CFb{@mWA zP0s;Q@yCMJ0=S7obBi0~^vtdm=S)hM`MrIla{si}Q45=PXzzqRA4U@u8h@NF-#y{< ze<90n*&p#Z7nV&;))ytfO|XcoC83;D|G<-p4dEo~d;0?)%|Psv7>DZ2DamD>HBko< ziznP^RCc!6h4=>~i(;VGVrv`3qj|9%X9jv%~JR*dliRd(XjUi(`|2`wCdD6a-foaI{$B#X7NtE!S?e(E|%C!WvL`0Ym+w z)aym*_$lVozqj{>ggH2cg1}hSaivQ@IN0(pOS__l7xFS>Z*iC$U$0oImqv-r)`Ene z)7Kfyt6V-<4W4h;-sa~#R)~V{Kl*Kn^pn+mWHo)tDeE8#BC_wKVyT^ai{@`* zm)0a#7C$aI+a1llFvsQ@c=m}cIt3oGX=vUBL{~w^Z@JE<75^XTJxFA@8Bn6KUuMpXaa8S(( zWGljfX@%N`I2Qb~J*w7z5Pg?um6Ao3*IHsQZ?HBCK1^Cjj54>BuP++kD0e4%#L)b4 z!2tsDfAeCr(cPI;IBsip;Lp(-x=SuNzQk0Eh ztWFqjNrQ3D?;BAbIvwZd4ZQhe|810~3tO&?O8xL1KwJhy{<}?IEh06Xeg_KBq+TSu z4We>bWWfxJNzLJwMb7TSS!H_ob)Q1ARqz9p0b91pp4zs!?<@gJ{@q^(sG;okfwQ26 zAtmP6hES3lRM&0jSiPZR75XTUuJ>#|dYJm$Uh<^0a>~niHoqd!FQns{wpG?y zhSsa&jHlz$Vzy~g>Qg34ou#XB0pXX4@2p~hqxS2Y77lqc@AXyaU$W-y?gWy03ojZU zLclri;oXC8p(Lk;BsHV7-7lukE4!VTyAwojCYkJB*GHI>?UdI@=;G!TO#x3{o_!eD zPg=G@h3?|9djd9}>)7mAXt%1Wh0Z6(ylmThXYcH+ZgrWk<*7Q_TY8+)F0`|~u9&aZtihZG{iO9TlI6S%vUKkhTnZETng^PgKKzv8T0SF)@&W?u>-pCnCubzFd zsp;7}j-&PO`Sj~zVL1Xi7F}5TjvbThzxBN8&uBM$GT;8f`p3>^bPp=nUvKsp9*VFm zX|znQ@k1vlH~213-g<=x8Uk)q05$uT5wnCJ?zpH;(GY$_r&MHeu*UWN1cLkr>qt4PG;s>1tX{jJwUJ= zo29c1l6Jn4i|Nq6CQ+)Ks8s6b#D1J;=6+vm`nl%5SwD;jdCb{%a8x-szT;EY&N@_a zaRS^1=Pf#SJ>CA#gO7irWS%GC$uGwixVGJye7rVvS3JOrX7Q57Pg&eKaC_(c5Ma=C zusL5zi0bBvz2A#aHwlL$6*++MvY{p)m-#`Zd*!s2&wQI^H{x3dd363en-SCiAlQD_ zMLyOcGD7Q4_(O0G1}$6-4^~#Z9Etr71RS-iGiTK)?@U>*h1A2zyU4E?5;9rfTOPYA zcrMI7^zH;MViD*FL+xMH^~9(q8K^wB;L;p9vRnki2qcGrqAuF`(Z^&tQ0t@lz74AP zp#T=l!9o_gA*YXwcuc;ERr_NL)*yG4$yg|{CPd}OheNNj>Td59ND&GK(bol|?Ci}1JBLKc^dpk2SBt*>() z--$gR=Ca%b9h0B36vyRcC+B<~ch~1{dnN@{Ib|Gdd4bnIPI`$C zB1^GVfz~#nX+olQ11f{=_!NNW;rwyd>elJ9UG(pl=;o9l#wlO!uGH^~n&tc2eDlA~ z#P&8*hJ6V9!beARPDw@~f|d`P$rJYzRXK}9uE?9n1mVOFumJ@5S6RWEF5F3g@i!Hh zF);D+s&Wx37Z;NY@io0IgozkehHnxPJa%{&iUjqk%%)+?qokL8OWz@;VrRGC+ zk+wMe$=FpCwpdVQdOe4-qLgmw5GB7z9_8x~Flxe~pVl`*~k1>&Mk(Axg) z;fUe@^8=r(QZ?1zMNPMu>w(2&ze>-#PKW)WWX9U!Uy{`8dJHe%h0#K%szv{=gLR<3 zF}{LsG;dIm7BhKAElebG&^Uiu*xf@Hh|FzQknQ-k`0&@IV*#wB068Pk0LcC40gwZz z+MUroX4e~&{EVg7&OSJ#kUxHv&+sVnKXZwQMQe@tKAuYxM+#9*J!~h${$90ZeDsOSezB1J}VQZx4 z*2r~0`q)AS36w7lkQ(HP2ine`pzFIgSvNqpCID>XFW>@Eq9@j!1d)pg%{fImiHzQ? zGt?M=X+)L65hv|$eP!9^2W4U@JjrI{oYU<;zT?e= zdjeX+zOeHfqapV^5dD1z!5(K~4T;AvAbM8?!eErt1UpRn2%~yYTd1I0^d1TR6f||o zlaNw1?fG7=hUkzpf^+D^X&qDKl-#kpa2gQP@a*l2iveP52o!7FqTLSvctceWH$l%f zkJ7o*`I7c545fpRd!Pos{GTs=#o$A#TdwT%WGywr1zFDT@x_G~%S3|n%~=k9fFGD- z7bWQZz2_n==K;@%(~`V?93MDmBPDQ&CYph5j|Z8Yv$fg+5eon*1RTT{h--;q z@U@3Mst#5rjd}cCOt}PDck!Q`8)O9;N(?o=a-%uQ8|sGTA@}-xbsVk5x`@hpCth1U zO|E9UL1;a)A{(&W=2--~kwGV-mrYdcuI1ApU=hdU=-yr1)gGqIH9l>N{GP!+++t?4 zBhiN6=V{EV$1O4-JXoC;ROH#Crs*(`Ta+x9iW3ma_qwwq8)P{GR)EPr6wX705#~h> zXmg#MiAA5N7E#~M^T$cBo2-JP{irV#h7wUzh~>TyvpL6KQF_f zQ}-cIuNdY;LAIg%Bpvh=y%L$&Q%VC$;JF;}+m=u~dozjJAh#E)-C$?w7OVl~K%iih z+24_-o!fsA-3qT1mnX5OTlYJ26Zb*z(d)^i54$)OkPlddW%p>a1L# z`(S$OxA_?iBAOwOeEv51C5aY?b4qQ9cMf_sk?n28 z2@GzT?PALYR*vlHUc~p9)XGWOT~uG^YUS`wXLiVd4F~bfLn@kC-4zTkWqx@7fP!;O z>x9&W`o$~+mV?hj-w-@RDEscy%@*b=fy1L=w`A}tbWQ3onjev$wwRud&~Th+@G5gn z>c84CM(ENk+6C+S8%YKK*7gm^tYAqn>4Im|ot)##3%@8Vck}EW`}AhamCg5eBHWE6 z@IWNqPB9d`q3N&{yGZ!vRRUIg;eSX^cWnkV=mi(yl1VQFi;#535Izf8H*ID}22HP57S{>Ej8m3F@Uk;4Q$u zWU00$_5n=3A|;Y($ag_Zz`*uZD~=-_-MzGs_l8<)-D8wu!l+iBjn#@o5|5FZ{Sn8; zkyfH?ARd8p9iAfB6D^vJ*rbd1N}YmS5`xjjI}0ZJpjp=b`~2Iq#4ks&EUO^p zisn}`qi#YKSEoL(*i&+B$Q$?Qzady$I>7z5UsueH-W`XuVH80Yhbb!-6EV=(s!%oZG z20kpAdkTRD9C@yZn=<|C_VgQ`Xj%m(V&D7svE;SSex5!z5t%!-Ct4;a+30Rn*+1>V zh@+^`lVUk1V+G;Nc{|Ky*$QKGVQ}tQmJhBR4N!0PiX0Io1m)0_3uWa@Uyi;|HXtr% znsPkq?$w$eod{Hp%|T2Nz$HqA4yY3L!r-UXg=jqEha0kn+AM%UQ?>4a^@Zc%9gB{t zH*gaYmt{$`P4Gf3?!2V6-HkoV4_GVPU0;s4*Pba&6Td{fM>+({OYvTJz6oN(Kj)ak zIq|j=VoAdK-#2pn*W>kcXrRfqqe>xLEA1v#i-tcGB0mngO3xayDfOP{Ng~*?SGO-y z%MtV;t`MiX6jgzvFo71n%4Z|fh($t)!Yhl5^k>BBFfq|e-R8ttwDVtC#A{?3nOPVb z?`n|*2M-b_blNOHO^W;6em-sIeIm1fdq_Oowf{I+5p5EUpTS0g%-1b%qi2)D+$oYxFhYKkv$_y_ z_JmV9A$HR`-e+3_DE-kb20xa%2Xkv#<)eRm`W*~h4ro4YK&K}OdXmsVXmWwBQ)jjV zu}4)b%81$g?dV;v!B+(Lrm*TmG!2AI2Y-m=ySmlulF64n&J*E?+;&fSM74m{{#R=^ z8hTjs>fOHmF-=o89LRfIXg1by2FPi=?~r6-r!$!*gX5C}FZn=mWmL*qg0HugE{J?9 zYef*>G)U2Gv_7?Woc(Fs(nR$W z?KfST()rVG^w1gEUwo;`Lm9U+-UG(*>1p`W#QT=TH;Z7n_)Af0%7ADLn?=$AJQW(2 zGJnw|YP9%)^zoC&gqeo7ARt zKc)ZlCV^4OzoA58B>UqRJAJ_jxjn|1Of1!lwmlVC879a-jzddDor4tRo&wJGj!A~N znA4}XUjf-T;5S3&60jW02?>Nio`d2z5PR&BrMchIY`LJ`=z7ZH6wia>#fq4^`~=y|iD* z604y%5rhnpZSRQ_r-X(c9zGn_?Au zV6l}rZEio7ICsUbos+Czux7=Ml?xNg?)c?|sl*y-IeS>YFH7iDxBw6*4y=Xlpw$_4hYnpOxO@nuXy?pq z8{;eDd+A;j+tJz~5NPZxvKUGw(69?H*~;_tf<1uXWg!Ze^={bd!KrqOu{A)640@Qw zCt7Bx*8sR4ZptE8*<-E0ySR zTIu5;Yn3_Ze<}A&SME7|uU5X>jsc}wHEPST&m`MODg)+sn-WT3dFOcxn#L#Aw&-7e z37JGIFUH)6>uQgw3d;|CcDM@tWCbFS^;No;A#1cQhF*k8Tgx`;59os2& zdwIdIs6ZWK#r~7qUc95dp8JAhh2)sHfJJ7KpNL9(NGshC{C)g#7++Y$q%@=6e@>bC z6K?*=K*r?+8T-AOrji2CHq}Pwn9+h6Yhe`;vQ5HlS zJP#?ntAD#q771*?(Ey9>G4UT?tNy!bXZTikKh8;SFGci6GbDZPeA5A$2k4&Qj3Gq+>Ac-7`Cqu- za-2dJuk+C+r}#31uy`qsi0f3h9DImX8BmuIaRHc9f2$asiNAW>ae#?WbqyN9G(xU`6eJU?&ptzXW@?voqtMu-+k}H z@%krsxWE$qs#VU0GqJxcgaFCkY45{#`lmxyl)(|u-Ll+pmg4SksOCBL3Vm2YEG~5! z%9uZ}TU@fBH-xomNGG7Tg%7GD_j>To`EngQu|XirllGlO2?mGtpk$Fnm9yKvHWu2q zBZtsW0ip9kb6+KWrGDKF(6+FaPB|JuL#6HNrM{jEuO1+Dn6;9_v>dj>b^4ZDR|HI~ zbC~Uq$8*eJ%+GQ$V2>vFoyrFTFqDvmB|dDLDzTd28|&KR1pqfniyOF zR9N{H`@|_8w?zWM7bs{z+ylWp@wlmTU`mDqOQs$XzhJ@=`FEQ932_sOC;!QTLrGdQdpuU>6(-m>q16x1-O%MQrA(TaN|0KcATuIQ`YAvzcQx#U%GnhDe3 zn2PVrmV62TU}JU1S%gjDoLBfJ76#F|30_!rmRJr1Q!QRn*GlV*l@`G6S}Q@GkUh}dTa%_)73 zu1X1;ZHkd`npeEw+3c2qVYqc8D`%sDQ67se%WgL!{w&I{PNd_v=GL8*E*U3p)e;|l zH9O%a3WwxD*Mf}%aax_tDPxw%}(raIJvSC%g=*n5H7Q>3( zuYCG2KjBoer&mCYf_il`gDAx{ma0D;)9F5EuIc5gyFr_8y|K~j#2-=NJ@jgWX@r_4>Op+!1M5^GW{KN#BWB@maB?NhGy)|{9by(3Tw#FBf|%uKcD``bBzMlR?hsDI zH5Pk59vhMe`TONNo?iQE6b!4l(@|854kYgv_eXM)#(+{7R$80AfchnOgDUhbd2|91zhPZvx9G?35YHsq5mV(c4 zH~jnIJ{Z%`wSj%YqO}1scJvhD&4^YK(P{E#2>kIick8tf&YQH8vsqMw)GV_5#?WM_ z+HN_n@C?0iH=&e6N1Yd+`NyoF{RBiY5 z$AwCIf}T%7a*%|mhl*JYDMEKvv*eZebAtnj8*eMCEd$s*z(@h|2!(_AU^ArTqoq2G zf<}78-@BywztHA1K!{N5yeTh#z(F|?ymZn9l*3$!E0Us4^7#;VK(7_z(e~7>Fl!#y z2-cRDnNu?Xvj62PuQ-5xDh4V_aCHTb-P~F;Kj|-}OZsXqUj%EoZ9sL#FIC}Vj+*{y z*=fqjf#F!g1%xJ=)4MiX#Q1+wiU<=7ibnZA0U#BhHwFiyyLGcInK@q;D=fsHayTHI z-V&PHL2plgbjHtrIW!Li01>mM-VN61*hn!{%!PEbsBY0CX%pK(hP~cIss^a@T>P@zc|FOQBxS#INJ`*h{*l<6bGOT-;}?Uw{}r?8!`OzC&xE4mfrj7 zc3BmDk$~8#@2r?x2#36hTL^2H{6y3jJWe;IdKLoTgLVI*eI0CXtOKoga_3}g4K2Tc znyPb*2Cs)R$UC+lP^9pDpt|cEy^oij^5|(_lF(`0aX{&S3dK{wc&Rg%gO3h0s7z6T)z2##i&w4fY2I? z-2|J@nE%IR=vfFh_f36mi}eCs%>Vgnc+nf4M8x;}M_(29@}bRQVGR#VT%$4gluP6f zsMKZeP>9z0gfHUU*J6yAl2&B@#0?w==t7PXT&|0~E?1nZJz#9IJXwn`brmMEmc4XP z&qUq5{i(9Wg6@B2EKNB3U?V9kaDbiGEtn1o-vrG?f;!zbHZ$h!a2NDVw2)*q>+hss zObAbj&@Maof;C7?iVJCbF_sLFA#vF^*J3<*;{nSvgoNxR!)@J3JZSIBqCzm!5pa$sQ1Bylp>X+?I83f{hh~;^dGW4k(@e5mM@gE)UbT=6lM}}(#3q}s zt_j8f@iMLBbz#XGiQ35T%W|RGbfO()%k396E6`_I#ChS4-0D8Mlp@~d1LWkq4Y^7C z1)z(>h^(xgyt#FdqDRt9Wcfz(;Q9$9-wQ!r;bV18#f!S>#PYwk*30QyBu;C`{JNk7 z^f~Hjh-<6?u-Mr2fg;IPW3JqyM=?;&NDS2cDOR@*8d|!zR414u3;hS$oQYmc50yc? zgDL^xt~uDxy#l`*5Xa^0wC5IY1a{sszb39j=9DT8J-cqm^G{0?%TU|}+M=qv0hB4x zqs33kpOWTvs2s>-PC+s!#)E+eyvtEm06Hf^!vAPzMw_-MIu9CJ!_c`;TT1BA7kFxv0&)_9Xv;Y?n%KVgEvSN(u+F@wfQ>lGFHJ5U^8Z8#%%`0R8<0n3kTOzXkRkw{nH{czxbh? zO$ZUjh;y_Wzk3(3Z6Y2Njf2gGd6-XU=$!LsuVus+@|tqCe@QmK77*d9ZlWU5)4gj`86biH&mi zx5Mil`UPt+^zuBuF?9?4V%Q)QuNcdEavsG|L^8n5RGUW}b-K2CQ4*1av&egz?gNWs z)+v_6E#g!*R>UG-_FLE>j`?LXXKuKljO?Z4g1ms&Zk9@y3}%&C4F7n_G0*b#)l+wT zZNvUZ*4Q3CM&ER^rD~g#I={@BJL>Y)je_dQ_64Plo4^Na4y5yvLk^41!u!CqL%x=7 z|NVTi6kezEqdDqQ?A8TK&Tn)010hHkIj!wdH{OAIZHwClcXmAc9})WN+bhhrEb-qR z2s-{Vs_vd6uq%NDGjm~PS_XlN0fHtbJVrSYr%}^4IVV$8F7>zal?53~bGzQ>4hP$t zp$5<0PC_(Z*9I7KZ|9WBi%yb&N3xA?fZD$f6-;DrI54$3LgsbsDRJS-WnxI*3FAe{ zG|;OX3H*ZI(~cr^k`@OVy}tGysg+^-g`SB+;P~_{`tMTLbSKwzciq_-o?mjSopY;) zKEi;In9`%;Rfuq*uUeVwg_2W_Z{{q#_Vx>b=U}Zx@O*GBUk;-|J40#jZ&5Z6rP138 zP&+Wbam~3qDn_8mVWbUE2;)8}^ark-I}Kr(mWmPf#|Q-)DFL`ej691as285oXH)Uc z(=i6I{-DN-zIOU}a!}sG{A;I@eQg7kk~KPnkLhc=*i{Y_<11SK;leP784&`rx`$e8S`6z<Yo-c#o^Z8HckrO|g9$ckHY+hN7{$+7elIm|I2D>)p=~%AF?Kzd^mv z!Ddhv{Uy)0MKE0uA-DN85HkXXayH71)Pjy^%;=(wEi-5o3|84?#7fw0*vwtvEf{LW z<JgAJ8;VUSQ6hCiol@O&bkC2Wg?*o1mS^kja3r zWf+)(4ipxpp|NoCq|XMsg(}}oqi{LN=M6c1{g&CE^TTuwo$HCvW)W*m)&>6k$cO3( zT3T$Q-{X-{9dhz|K{~?a5+jl>+4%K%L?>yPoiOD6P-|v#S=3JH0A=4yK8LlxkI7z+ zR-~b)GpURSA1J^#D!$Mqh#HW@-VdX2=w&JZiO;-3vVqB^#HW0hr_|~oK=1e4ZNtIG5M-RU#9VWonpQ8>L}({NX-snvw>T^~wRoNw@kq_vWB9*|2` zex?&m#M(bjKiYSX2;ans@-%UNSbVGGmi$|(Pg|qjK7R%K{Zb3Xg*qP2RZ>(l=$*$S zbnH!P8H>SW#^WHw*eF&ufAm&-PH zg3T|3&UiD=M&Cq4Fx?LbTLJz9F8dYYVG-j(sy#LA%|K$0zZE>4Z5XRo`lyi&Iz9sK zlNlWey7<0I%F+J2Vb&tQ7%C3fsj0k}bD4EiF^i02W6+g zI{0e>kUhP9dkpaCH>=F@BGGinN9H_>%fZAL&wgXM&9%6`h2L}YZIs+yF67gRa-QrI z@N7q?AP4Q27;_dTTu$~B(C1$`%KYq&?Oq!PDYUd});=}K-_&7DiUUezz6ftvu?;QP z^~VZG+nUl1-d^No4KvkQ;`e-B+11Mrd>5ZkRc7y zpL^tGf2OAJ3_PR0IKBBKw~-Sa&c zCqUa~M|{6)eN1?58$T)5wXG+!gh?@X--D4PHzvJb*^NmkAa(TNj$@j@h|dlfVYg8{ zR|>nWIU?#krN)S~6x=vhp^iy=56YZF=*d9n=p>c9OjCqzy+JisBNGegAXq8Dj- zj0NRuR5vlC)(=bVHY9SOcaXmbq5BiFQy44Fw{3qTN$fNS+zXQO(|1ZBbg0iDN^=tk zRse_TY`K@yv4}I*Hq=c7lm||ug%P@RB(pUHhsz<@89diUmx?8{1DF;mB!UQ0wy1_b zP2MAs;J_0KDi%1**P$zytu_~(MV5_qQOEU|CY%)7VlqZWUTTge%M?kiC##n@KFicw zv1YsB?-OPS5U;GsxW1T>L*bDXPtZ{qMhdxvfRy!4C@;yq6A|l!745^KRUp>>%d4V+ zQqVvKtG<#h=VkV?@J%f^V0|s3?iOx>!8D`cXvUn)B-MQlih)4d_YykKCLVn33%yKD z^3QC9AkyLFyO89c$w+#KarD^FY~)1w<)rPrhLN2QAs<9HaqoU8U)MTlnN;!zsk1fk zDm{u$!W;2(K7X?zmm{Io0797zwHAcdDma7)9l&+;p|y=qfBtFZ{C;_LcEpN0lMIHv zbzPbHF+VbocEm!^LIpx_oYq0x98fC^W5ILcksGj(l|L$wEG!BahARedd&nI;Lra5j zz)G#&f#>5nglMhyA|eQ0BTZ$>0YM_BoXV6%^&Co|WA;=;aAWHK8$8FdM@6^@Tw&Tw z5N;m_J^esecDBB+Ue$vif*9jpzV+h>7O8CuRnPMqmf8bo?omXen~`p5_Wz@*gZTv+ zwir(Er&2gRQXV!@0`VHv8wk-0b#0A9mYUgg5a=Kdnulh?$;{YstiW>kJAgCD8ZMcuHn%=c<-q6>Y$tBLCveFga3R6yR0eJYmDcGflh#Fz*Xfr_*Jsk! zp}0Galm=TmVx<8dU?r0}ALD^H2+IwLUqqijmi#w8i;!=}*Gc4q6nWq6JFG1H$4{p1 zo`c~)bQ+2j=(_cpf;<(6)_=gNiV)o>J23yDx6QgCVt9%uI>#2I{^0d4GF2AOVq$O$_2& zs_kpQKo27{>inn`t8Y_X*HSI4$`{F^@u{1^#u&rKj`7w_;k1PD?2F$^wvND*f*iD> zkr%WP7RwVt#OFW8WMF5$3^QMy5*GPj9icamsAlvm8S1 z_6?3w)uo^u-z&bhTshw^|Bd1a488-WL%KfShACD4n+E;)f}Yopn*9lZDduc^AF$V~ zc!Et>MB+d*!ZKVjLeR8%6K)di$xa`;Qu62RnhvCO0C$%9LV42iN$ct-*O6WG)%MVb zciYLT0Sva^!cx?|!mIa$QyPCoh@i>p*M}y={eM98BRBUfXM*yVBl)S0>w9Cb3PwcG zVN(N(dbVH4+Z?EM5NujQ>3ZRQK?u=LN1%3udUr;t7uZiOhMg`LT013D+}S^2ri3mS zVB>3P`Kx?`S=G6g2>uRA9Tw-rdTv9+pDS`Yv6lF>VOJCu2Xe{f9=D03Q$@Dp^Ih~R zSVAfnq<6W^n(fAz@^BNGMMF`MEt#GLQ({!w8hUv${(QnM4KoVR^sFoWPMS>1Bg&2x66NS;!ypq#6maRoJzKwltm*=WEET&O6rr^!S!NPokK9GW0U zzUN;4LEJ6H4|sCVqnaSm0js2h=b9#J!l7Pb02Elqz?6^YkVi@p;D*QQ#H_W7`ynjy zb;?PGY54fs&*bKXtB@P8C}AZb#@|hwLK%lH;oQQl*Knt(jWVFoLmvbmIzC)@#GwAa z4$X4!u2mL}7wuB8U33%e7~zEQ@yiAJhyyYNSzohL72|1f0kU#U+V9Hu#1g56_?U1@ zu@E6>)I@JKEfyGUQTva}i~!F9&BfV@nlI73dV!cG9w`o)MuXtspm!WbE^tQxAXv-i z!+|znm1LBWH>)BxXe^T5t5Q{E7!YT2>^flk9g#2bQpAUG{iJZ)G~4kEx^I-DVdDpt zX17j(ur6MAE3|6+@Naz_zf2_pm>ti;`d^_@ssYu_4?P* zeJX#^=e~^t-}V@PoM$*E85^d|Z4p;Vv5I&|%Apq8DfR22M&iJd(Kw48X;*_=`zS!a zC9vHRTx~*=E?K+@)hYSF6X!#g2?+ETh4Z=)t;#^JJ#&N3|I=+TZU*AC&7283kZufQ zEW?VR;J^;Z(rJ^Rmff}eUU=^EG0h(P?~dd5dpEM@HadG%Vey7$8H!tL)!*E0wn?1w zM)YyAf2^9T<;9ONVb|AoJys=iFo7~Ld?%x_g(K0Hk=D(P5BjvA!ILBnS!$Ch=S3w? zqYHaahGBIx_it+DzY)i!w*r?sMEZhD-Ho0FH0;-!*F`{I8_<42lK-8w(!Rfzv1UT> zJKPt{6ch~>zHHgorhlaKF0$YMcJUr8i(m+Xs0p|aj7odIaqpv6!&dz?|HZF2Z~Pt{ z5bUSkGfB_PzlVCR#_EKs^Q1|%aDE&sD)Ns)sTz*CTu>wrVX($ZBi3ih9zVFK<*rVs z9+tHS5+C%%-fA;QlfHwFSVlI6TD2N>x+6%R=QphI#{7ugsZu|@u^){ZD<)^t_R+;B zT7g0IQts)cti`eCj6;|CC_${(a_9$|*_f9P?D*I??Om?JSqF4zW62ol!B!2d6!8Qd ziZG%G5$;h%j=HDF-|HqkvEOC@)uoWs%rF8CWt9}=v*%P3gKyku%P>ZuW3q(p6gM07 zBp#3EVW%UEu@GVIvZqcJ7XPF~!si6+2O+X5F3i%^1UpVTMAHx}wTTHG5 z5t8K1D)3cce(T<$C_^KIm}))00|N1Q9@bu~f}d;lj{q?arP1;B&$VL=!XFKvaC#NJ zAJbt=2G@g$6SsthiruD26n#K8SEQ45n#n*XNl(ncPWxfUvXr{(vH?>iYFbChsL4K;cM<0a9Oq8P8R0LWGzs; z$Zis=^Yqd|nhc%eu|(xI)&v;YaAWVq1Kb$B_u}ZC+}Mj}=Dl8tkx^=EF>^XFx}1eh z&gokA<1N-!=vxX~wrDj^w`T4Gv-?Ru?NciW>-5e@JIezWJ;}f41O&&b_jJ~q`2Oot z)grIg@y+*@X}CZ09Cb-!qBHu*vD^QbYtt2IkeTA8{zi!ff0N{`?IzlKd1wuVoSYD5 ztYwk2iLLEmBxgGC19r3MU?e-dNpEqVky)K1dwfiT-O0)}bGA!$z|u+3Z0BJ_d>tsedItTIVD6E-MK!yR>*}c=3nKHl=yvA$jh)2`W_m~2D70I7*fgioUZa+3 zo0EDWUZflC3x)nXiiG`r;;P%A(SR=646U`sVWz6EO=SbjBHkcUkZHFX#OKx;tI1W5 z=5?s-&@)5LKDgp15LYSv+IYu|?PqK9BSfP8JdbK`qPo}Th5<}r#D^~PjiSLbdQjTK zFzs4fpseqxe-VClAFEGPzi$Hf1oQd1#0ph|>rUbniHq7kwz&upyA1H<# zamF=`@_Ed`UE3El#H&l1I46dfq2>0*;N@cXsz9@M_k;pn#EDBHu=Z9y0jIVb1Jwnf zrUOkA++Q^fkF8WJ2cCwTQM0j+Q34^c@^-rzV;v-d<}F%>tNv`tpOy`t0lh4S5jiuQ zO0fHdfn5a~64`(J`KAl7XU5Ztoz*Ei_kI6xHTp&xN|y6`2mwGxg|PACor{SxNsaE- z`$6`z+n3e%^`+Y%S$8WdqpMy1*y-a;uwToej-RmoDiAaBYp4QhW2c-BXht=4`Le61 z3dPS(F1Vt^i=Xg2SedmVKZ?{u;Q#_rgxkcTKNO$!4~LNp0QziR^~V6Z1UeT7=(5oH z>Nx8MKj=@v{s3Sb+L>Esq-j+h9s_C6K?_M9ekFlCx|RM}%auQr-GlfD<}N5LAI&UGJw@WY9GkQH&^} zfyI6FeEjx2w0IF?7<~Fd zvvK0^+2=_Y;?KXr%ObBa+gXcT&nnx~N-dVb?M*v z+ea$*RexSin*ajuMuLxskzz(Ddeaj>-P>s4U7IjuN+6zdn`$<1fX!vK%EIHb1({JC zbO%hI{na`4gO-Vs^~w1;bFRA#9&Yv|oeRa{IVs7tZ^w_{_Bfx>u38TD5kw73?f5mNwM{bDV61gdT_3!#>v2oc~9|J!E{`?vOgzV$lddK;m zqk70sDRO9ak*W0CxxI;Xo5jpQImtg4pZdAx+jDU$O}qWdcX z+>LE~Uc9z_QD~c2I?o_}3zVTU+=&|`b9oDnaOog?rf39!xtuzvRJg)|vzD-s75$UD zKYHmPW3B=bd(;o4=s+=HgsrXB`Q6KH0RxwUyNqi4~Zku_b7r z1m2E@n!U5i0i}dQMPWt>08+G8Br;`j9!>*C9EWlIP%K+P*BAA-)!X4rn+*Hzn%aiCH=h z(AbYYG)8e;-oTWrb9euBjkF2s?KO4M+x6B-JM*n=WG1|%0wT=e4T3b)O=`pbST(BY zLMNrm*sp^#F5l65vMK5z(k5K>>CP=Ou(n{u`|ujn+*VK;Z#uYT*_B37AC^Yv^1C5Y zgOTTMZTesdetOSGi#^`;(YiAF?~K{i%{*XIG~0Mbw{9dx9)O+)zTZWj>z1Ka!2%Bzlu7}^U2_4bvfUHSA937i7{xqUe+%Kj(3|?Tn+S=89 z3g&CpfgrVSYe-{)!R(@49f!d^Ca;nGc({K4b3+e7rqXJh?p6`xtlF1JF!@Z(#q_FIeMFhliXe;Avnc z;x~F+J{P&p`DL|>b*X|HeZUFnRv$cDTsxFv?j3 zCM@Kgi+Pm`1MF}v7T@>?#OP=aTZSs%h1_q$pE#{~g4+4C_DCUlj$At4eF9Xb{DId|dHhzXPRW3k>W@`ygIE$3TwaA+e! z>7KulAT0t@*kD48E1NMtz$=5+G5EX&z;RCgSq~yA+rHrBI`1neo1a`X+22NallxMA!ZQRDNzzZ;^2k@187sw3Ga(8`aDjS< zirk6XVIbp(TzILf!kwZhM3-Mlv0uRT2s?7fi?F$ha&BJszS$XFl(wktx`?m-@P?iSf5^0bx@7`k|^ zJC&%65a(x@6jfvSl4lhgL^iL8ey*6b0HdtUYkZ5iAhKFFK6Ka!5WK#WY1tj3dA&1n zS7quYgX@g=oP4)$Kd@9(m?`dIj0iw3FmU;dlw3L=xI=x%=yU9~1l&3FNn+f&kP_j! z5$OZSgsFuUI?~ttUd;GPvhF<|^vgNB(aTacJ=)#Uk;gQDMUV(T*eV<<-@Ae&Q-aI} zQ94$8416Uh9P4og;N12)vb+V|YbdnyyB|8gK&S(a36YslAN5IS(4ro1#m?Q_|0u_O z_k|MY#B2%??}Bzd+BFoldMkhuN{%MQ1})YY7#=s+7lm%twM{>gG$llxvcbhFeWeFw zwc&h3t%O+_q3uvB!EN;Ef@k>^u)xdd?H0OucsoH%`UAIH)Q#*|z_B}U!$ zqza(^a6o+_IG3a#NG~ee?_Y10TN)7lPJKdQ-`BV|=*Q4du^55!oV2Wu-*cy{P&^R> zs(9b^BN7K$A)&r~s$FlgIDtRXHqDy1J4$$ZGIEob;@WZW1C57mnC08$qZHqh;FDSGNM(3U@ z*e8t@C|hW84&oLvxFE>)58W3B4q6%5_fs@*d&!6i18+R86_-HK0@{4&uKD%@Ijp{E zEET%&ryr9nOoinhEp!Trjw0dI9Zv+P-tDUo<`i21G9+RF*-6o(KGd*RMsI7Lq#iy7 ze&p6>1&tJzj~$!q|7V%15V&71L+5Ex81*g(g`LSSmEjLY%hi7D`T{@FHF|$ z^f_?HvzNX9quKUhusG_juBsnTYQOaK>2a0h;t5z1(V8XBrt@_6JI}VHTeL9l)%&hI z6sHH5i#)^z6iALh=cDeDGiJ@mKMNAV zb#}Kc6M;+2AuiSkxeMg-=K- z$7M0|kJe|fw@O8K9G236-*K#BHFGdPk4{=(!#W#R${`}TN<9XY*f8WeD*BP2B#5zL zr;X*m%;tL2IV_4pB@)c-2cXKpe`y8*?C3-#9$qlX(Kddv2~C#vQ{R90KQZSF$A9Ng zRC{r|YrwWL|A$QB$rDO4dzL^?VFx6WBNizPU@_Dr+-YOsoWb(R&(e=At{)5|!zp0) zg=xRvgyi$sMJC9^)^V_f%?Bxy1|{bOGa?-Yj_>yG^nNF@3+6?g?_j7xJlMV%oRf^} zryXYKY-shgB?7HVvPShQZUKD0N*qEdxM+|o6bHkJDvEPqD5TJ-&Gi(uS!@i2LFJ@V zh_)rwaXZR8>Iz(67P(^EK#%)`%&xAXGhPg35S`?!wnJ8i{9>PqP#Z~C->Wg(O*{e|9+b$O7%=U|oOV^e1c zK)hgn;YS+axR1<3pCyt%0EWA0_lJe!oAhBxP5Yif)9a-3W!s76VOKav=ly zD86n{vYGaht!_&KPTcknaJ0HVL)ev+EK_pBW-E{d4rfQb#CItd_M-<~yZR*T!n#M% zWhfSzSvu6Y=)$h=Qb1QKxpx{Ew)YJtx0F38uKwe@G}>dnGP*#K>T)+fJf2o#LDY#^ zfoVuIkW)HNa-2m?mvC78GKjuFJH7VXa-6wPzIAK;_HTg5mxlgz-|)MWF6#5248C#Q zar^(}Y5zzwLj3R}B#LN5CKQXEKHQIXBuUyd1cj<(is`IxsN_e=zZU&ln>%Nip&F1B zoyF=#{I!Dkt&qeQxNxRc5nGKSsYKIB%v=LWCAVswG|L*4Mgv_}UaHx=QK^tc-LgA? zx)fU80ND#b^xz7ltNd~TiZp)<7+RN^otWCz$~?x(Ji1I^-;`gJna7OB^HmnlwA>i7 zd1KJIZ1k4A)GV)&0G*r-cz`}0xdUPn2&)p~n8QqBQ&2({U@kK#Wn$??)*XX!qB!`uFRd8K#8T_!@G z4QV-Y>729$4j;6MrSOQQoWxY5@gxElH28u1{MG!VSM&D{wQ?K;=fq3zR>ZSCQ<6(n zz-&ps%$$1`qydEK)P5CawBo&y&Rp>4LLWJl->A?)O^!JvJ6pThg++PMvUC(*K}5)C zbjG9$`BuiEi)i#rTr&b4kE;E<&8OOP>D{$~&lN{9;QB2NB?-P%rMP1V7ROIJ+R0Is ztV&*>Bl5Gh8nQ0TcX7JJau3Id!>)tTxSQ|SwwoO;xC z?MZaQ2TjI|b(cGi%NRI;W!JHS!Z){r8rFNOTI?{r=s`JyFWRP?A2UFGe+sqS0PBU= z+QG6TizZUMz$FUxSWKx2Is=j-=oVy8&S+$d?3$ur$|IUr&ODAj=IA63sxpU?k75Ll zVjyV-Q;d+n5Kgsgk3UL?k^Y*s0pHcvI$F_U91^IJOj}n}WxEtbKmKBnjtmG?FGiU# z4>N@cZqWf8`2o9?AYu%Q<^{x~Tl3);N7zy<_t^bzY30{Aq5=1cr&Ae`T`z;qgY*H# zr=Pv}9fe?S;HXGP7w6>#I6@N}HSQQte@?q*$Kkbk-azPd-$T{8=}hqfKup^6e^QYb zo8gB(-Qb7=>mV#6!=sQ`Z)D(DfZP}Y2HhqFQSRp#VPxRU`Hy&*#uHHTAe7gg3k*7x zXXtoMTIj)A)-||)LZ3=t^C7NxoR>tuzDu1wX9+5~J;Qo^;$0W7K)kw<=%?V~L;AGXc0%0}EtN^28;6vg6Ei>J)aQ5F zj3nCM@spai`%EgZvJ)|_UG}1O=@TEHHx0qYE+l@D{`KUiGMUZ%mr%@9k#frI&AvGU zkqah`bQ--Ogs5YBaGRGEUNqgRH8*v>oc0Q-x2?MSm0)u^ypg(YRm|&<_E!<=fIgZ; zdD5OBcpJMxb}8lKBB1Gd)~(dLcz2PBK_q_qIy&Py+uNuPM$Ev=?u0^xsn6)>qNVmT-O(W~SA@r6m>vfN2 z?kdRik9>E<+;PAcAavk#0@91zHJROs!CbxTN9Jrhtx!UOT2na^do8ISz1)Lf>RToph7@hwTO35D*meml-dhepH%jL5iV9CLQ!FtF&dbh$zn-8_V` z=$ObzCBcor_fLIFq3>(jzh+FOKABpe&>Lz~k=COIwQDF!fW!siQ)QDA$;^em@b>JL zq-`*#Y*de_MP2Kr%@_)kkxaCe`B4wcH9?);p}4fNX}iWq z7X_eAFCM;`h!RzXVef0>N^}Xis3cc%9+zlema6v% zthCS@(V`G<1H`F7*l7EVlQMUo1Cn$0N))LZn>*_9xwG8#LZC^QrE|5S8|u)PoAMbx z7bi%O=R!q@D#_U^4DjtB+o6jkyl-nXuP8hW0Rbtk8!Xkju_3U&2s4m9#p z6={MA1w#$Lp;f&zmuXynng=?aqYhNno%9FiQx^!LaS<_h5{=8EB$dpHvfKGm`WK9=et=3*i)b<>-4Vn$Ks0NvQ?tr z^9?J|$AYcc(09P396fsBCt9+9t%5~J?7OIV$s)O5a$G|c4+C@0Fuokut_0&p&72UQ zw3QMmHy2GF^vmxrDf7bLJ2GHg$uQPRBE}>2)62}GPi!{;Kp)Y@c0(so8HIlq#qFYD zV~J}5=PxBoAyKlw9-2fr@B`@9h5MhXTjWV|87^JxKF-fz z5s(@>X|)^w1MY4RWCy0sR?=fasjLv(O=Q|~545m7|J*CTBx%!-F6k-YwLzeDADlmb z!u0E*$9>~Ii|GKGzw?l>!oz`6Vsd$pEl&vu+22EllJNA zCjDhsMV?)ntu+wgIBHNOVWsOf3d_*mmsp|BIt&ui3?awQGX|cSUJ*eeP$k!^qoV2i zDK(0E0Lr!;feMb>ea8?91{etJzS(4{@VALC2MT(5c&kXsC%67FO2gUfd;Qvh)BzDq zh=I^ioA9amI&7~%=qxGLc!aJ3S;8{)m}Oo1g&%EK{GP0-JF}D{bOziBolZn9l?!5_ zX#}bDypDJy=l`3jO4C^cjdKP|D9XZ40FX|xd%Osw^CVn_c?N07O}PN?O+(lzNVeS+ z9F=I{n}SE$N%kBTOzen2mb6rqyg*O&9@Rprs2nC@?HzI8;GxpUQ|;>5wwk)`NZ&79 zas%`9Z^SJ`&YHHM_HA+sNR64cd;v}esxKLKgF@`V#VXz3eURW{Uf(1)BLoKPLva7% ziaAY}d4R8^m4Qq8gJ%@Gi*utrz@u zF;ECMnU_(}p@SEz52wqwJ3)!gJNFX^lBU`xQw5R<#etC1lDQDh;yAcNDO>uMh$~TJ zDWFlsf|oD_`I3V+j<)}(|MU5UUf(l`6~<@39g13Z8W= zb}Sc1X$O3G$Y7bRSb_#Wu(5mnY8)_$c&kyg+i)$Jq#YM0)N0yRy(2=Gc~MY!e6i34 zb_@^H$RQqCwh~=m_=mpxFiEk>g-OqW%wq&wT+-G8en7J;jKgeKCTY4M!}ZHwBzY$Y zUF4Q0MJO9Br7<6g687T>s6~VoOqMdQkDb_I2FVW^ZNI(uox?JQp|HYBC!&CQ6hSLc zWEf_OKzxE9J3KVclf&YodI~XeClH;tyhV4zT6zX!37s!vbZ}sr?1=*gA!GbTqXL4= zQ6fDjHO{=EMFyPH;pHKcgdpt1z+pr91Q-%;y+cV~IK>89w_HfSpr$kOtIZ{8n- zt_x1(cN}&z8TvNEc|Ba97m>J)!cK)QJD|kCq9LFe#v|@v+Rukz+o;kYT45b82It>V z%&t@s-hF)8sX4D(7$3W4{7>d>v;&1~1u>gEaDqkW@LuG(sAob|saNE(72> zq8@l#eg189+0rrnf_hE;-32EjbR#o4~PC+nrh#;;wg#bg~0X6)-CTJuc}L^ zs*9^4oj7O{c=Z3m9nXSsCEO!5*uvAq0fU9|#C~WA8gL%A7s0)WlSb)R|vkfo04_!K@0teWT|+)Jh9tixbIQ0!BuIWU1{Un^<*54LnNfgsZeihhn6 zI*KhD-I$)wqxLKF5D$t6l`IPihS5*{tx1nlKtf!bCj}zx{+ER# z^#Boki@GimhK%ry7M=3FKq;K89<(49tx=KxlTiPTVp~`?3{kL+BRKax&5XNIjE>)S zf3S>;DQbZfXR%(_wDf{EQB-Q$BBt0E9(WA^^%?$IuIML- z1YpYR->JZyt3Ht1{)D|vq=1651cyFwo!Ew5{MJ%pit|%xP>v46EtG@WnMV_9r-JdtdD9n1&W@raDLA1KZWFtw)>C z_Zo)0Lz1}rmxMxpeRIs!m{TYrUDdvAKQt24Ml;Q$zS{=lJi8cvma?-kuD(={6ME`W z-WMyAz?sWlDAIm03O#H1Pz2~_wmL_<4#FCt1@jX~w0T{Kl+;y>0C-6da#2R%>7YDG z(F+XKEJ+0@2xrQr3ukVoTxAkAY2gdh>1f*kG=yyd9(|bJ3YTgO%6x`0Ut&QfeN5lM zo*%w)xEq1An4t;(O6B!AqGU-)+zt5DGum-tslD&il54$q{(#Vi=8o~#Lr-iQ{HW3SL(Z51q&0ZJ244~N!A>QID4)gkUl7I5Zi*n1-Tno_3~}naVO%>QH@fU9j8BU zvniOps1Q0&SXJ`OyI54oY-(h(!ZK%2e2G3~C>BNe?S=g}zZ4f99GkCs25s($nf+J3 zXO7Zts#|qqHSJh_R#n8M3zoQ&)^eod+@PSXIK<>UbEb~Gb+#M0{SH46Izo1lDt4$BIAjj-o4 zPV)b_3Y7)R-oTreOy@6P(OK><%ldDo=*QiCcohs1a~18@^|9zk0(rk)nK*m?Z2K!n z$;08D?$(S#Ke5elP7`_~u-gHT{Jp@G1h^x>r{U2|eQ8za?~m#K{PpTI7&-v#%MT=OnI>Mj1W&0ls%UheXIUw`~6$tA|Bw6vUjDpP0pE&xbby1{8oQ? z&~k_xzIGxNqoAnZ*}~O|Qdbk3=8_ye8FS=TD64d?4kasp#1sooB~H^HzWJf41Ke$;szcsA0WKo*~$0sV%Z zT$+B%p4Z{Q!$`=a2=|-14(~C0gT<9v!(wb z9}>3*aE_V_tZ4VCM&Daln|0zAY+suC_q}j{{FKpk0T%!?AzhI*;RAdlT4f%ycjn6r zpRoNm#w*bc-{s=j z$q#99VZb4L4Ag@SwOOPYiQ);VXc(9ZhA~{wi!qeA_u8kCoJOs}YAl;D`rtEknNI2VK#LZgrNc>;BcQVK^r!Um6u{t;mlTR*tL7 z+l7ADU``{5<<+X8Z8hF^20&lIw*w2fEVSp9R-+R|3=ye^Ya%bJc~=un7?(%(hOvz- zK!-mX(rI!P53{N+Z2)Ymeu4PA!9)7pI< zSJT>Md5D8hL&@9;`LjK%MH6KmjQYm5+iXn?6Cq`5dkA|ks=EMZ*XFGf6_o+8Qh^tJoU9}fzUBi5vqF2u(LFC4W?G>GG{OOkh^ zl`c*y6JNGPzB1+{D*UkI8AY z@yXUT=`hc^D6Qn~cPJ7S3(*DoT#zCHql>yi1EV7^g>J^Ab8hagm<}7DsH0Bm z3JC@2+x*jx!{x!Ik)(eWnF_T5Uq7R6FCr$sA-xMnUcn%86iRYY&R$)*;A(~If^tTW zD-pKPVeGmK{`O4!sdkHlPD1#pDCt z@!+uEc98>PqlkQc+F7H5h;93q`j{hW2pJuj$)<+mHVAx=u{T4n_L1|o654?0|qAx(oiSY6A}9UXn#7l#a_0*e1=oz|-3 zPE~kNu|F?W;c{o?dY6kEraf&oInf&&$Z)@UgeF&YLrUA_01@-5eKruLv_Rg5iF#Fxk%nicZ(@rPub-`4iwcuR2sC1(P9Z~;-(9k~(aXxYn*E2fTHUT_( z_>Hakx$xhhARWCTg#HrHDu_!BfqprVo}1H`Fr+9UKX3?@Sl!6Fdz7rZ+sHjYY>(iM zst$?@H$AU>VTIy}su*UgV(_xjl(z+>8y*Eg922^*b2=UqTk+9hKq3oy#S8zO^RSKp z(kB^_9-gRrh3Sj}+FYjU6{tz~=u|t^`QwwTQ57)%frTa(e6oy+ijbItu7VGiSo841 zCmnYOMrvR1TTd*sUVfL+cGk+Ud(TY=JaAr^^!TRN)jc01-XCT0r`Rx5%cLh5EJ0qb z40|xl+Y6@V^NyRe8sHa-DlSPa7Jopix1|V_Q1M9{qp$dQ;Jj3`)gxzvdFUxrfJ$$a z%6Gwcc~ehyD4^)N>+s{v+T6zW4MDsTB3+U71FyyEwy%X7zyM*1CTqWhdMY=(Z#|W- zj3wh|e(j^tKnUb zZmDsLuhc4$6LQgGlD1%%Y9Lc$KP&UZltwzlP%o%5Td`x;?zIl4x0B35H$_ z#E+234DSySZ~*}T@D(Qj0F3*1q>tu*YP}9!(I_2K-gy8}dj5QD<9W_a2Qz^PL%58K z=Cy2$SLf*V480q{_P%FGnIx?_?P`AoqBc{xKwYGVlECxHF`kHB%+bz^fpgmJO-x0x zVdWz2j)uLil@NRuej_1eG!`g|&xoH3{+(@cMLkJ&U!c|mqJSf2{>^+-e(+=2xR0xE zHOX5Dh{(%a1nOLnxj^#9%Umi+$D$tSsDAXAI#S`N%tLmFGVUmTVq83vqYI*ROkbHZ zC)7UGqQfeA8;Et&T2-wFR6U8}Lt!0KvhP3&g5rMsX$sO?6st6O6#upX0lKuzh4qRK zrj zs<8|UAXkm0X!*hxnSRWz*J?5+V4~SN4aR5w*3|O-e&K-5~Xug#zI%v!&CP}0i=h_*flsZJ&N$+`6Y?@CD0O# z98nC1d8R}cgY@QdMrso?E2IO|H-Hrk$>Xo@0FMndSIIB{@}TbH^~@!1hktyN)=GV+ zszIObPSefvkNckW-ey>c@U^*jE<0h!Bt88eD^_*I0?%leMm|b51bTb;1Z=x-ePh<8 zHSsAsUQK%TynPrK9Ya-r8Pa{~a-y&|gd&va&zT0NcSZN#3=aHOcKV-|qk1eH)x)91 zh?}EBJif@GPcZysYzsi~;H-^XQh$G0un_ouM3Tcs&y4Q{gP0r&)QN~@qu1>3YZHF1 zTsf|^n4AXi-ffA;>%YFc?w-d~Y)O9!4cNYn$#&WP6q{aMl?~#<*(?w&g!hsQ)H0%w z5#MDOt360*BZBLcyznxJQFQE6+O2V$} zTWxaClhw$7mRtO#wu5!mP|>5l0VbSZ-~AKk3r1D(Y`Pf?%4z8k2UZju0~o|l+P{_=PsyQk ze*Kz9`SX5;5wli|h=01#*-Q1^huwRuFZXqhNu)wFl{j6 zhMBKZ)B>xFdloMXTyyTZJ|DKz6X$GV1fs}iLozJag@&fsKyTI3e7F%Yu_CTzT*8ZU zT9PN%`QmtZ8+>3yI!!%_GZnb~WflbTr97i9S~Tif7}C!Zuwe1u^#UPI1q0Z0IO*7! zrB=V&nIaKlb6N*+0TcpxP=~5k8X;F zSB6e6JBMdu!-3-V#b2nUrz@I-$ zD7`yQW=s|VWrUpAMWSx;RnaO&Q{hp%;z0Arf9*IIJE$k1kHBrcO#L5+%Z1@-nnD=v{zP&oh;9G{H_XJ${C!W*-hpK}@tGi3MB3w$JS^*Whvndr zh`56&R^amn-$2&3uo7I1^X-~(B^}WiB!7NJ{EZOj?SqT79Iw%4f;^KhqkW;n1rWHx z(y(beW`u!V0pXUs7iTEIQt_!uAvgs-Wq}+Q1y;Tly1V!Ow~EOjmb z5xlFiYkZM#Iy)>B-Is`R!9R=sJC|A%19)Ne;(~Wx#GC(SVrJRlCrxq}))el7CLNt# zcv-nv;i43#_k?Y4Mv*H5TMliEh9(M`A{{%Um;{yyH=;~1E}cEH94=P6+$qIWs@Iq; z$4(V%6EtA-_&n$9xEFsFr6_P)9QRj|SclF#x?C4^i>CRJGSnzgcT+WAm0ncX9!d0h zviU#BniFZdV4ZhrIF2^kY2tNO)J3!seLYWxf)~~)o?n+yy3mR(D)rma=_)H_LS{l` z)8hLgUPWAu{(%FoAGrMC9tGOQ*+x*gLo1iPRG973edzO|lSjgaD`jLSwrb^=Y$lHp)lO zzBz+7xIO;y>haI7&20sh31QLmlShY^$;9Hd_@OZTT<3OXDWk=QQ88qff#U%2G9%oV z9bE1`OD%ac;@YDTrRCQuT4z>lq_HWp6-DZ(g*69K=N!=qQtybCOgK>(oN~Qm&{}&` z>+V0~C;S~82d#@#MFUq!*np;ro`rvlF6fYF@gz^@P?1H%ql7-t!jRHaI5{o^CvLsx>=ITa1_x&^|L@gjIy*?2g0$n8^|w!o-3{7geP&sGQVCtG)CT{ol0O~ksfUd)i0d9f`2muTDwNr4$0_qny z9?w>5+7mi>fS@@x;y8w2qyl{N`tqT^A?^H*cl%$h&oW}*z%_+P#4H+)Jap3%4r(8 zm9W6_F@N#b_$k&c0brz;c}6@cN_v64V_M^OWiKKC0-w#(nZz+ zL^3?|^+VsdPvBO|dI_^P<^IY@?)M5bh8t^NHSN znzj)8T53b%!s}X?x<%RJs$zPkfx|i#oOEm6*76|rfEWCn!%4QCPt5`?2=9x9>0a}r zKH5u=D%<*I%EhKG*DUik?>^IcfD;2S;Gp@MOC^*#1a6d_1R5R;>5Z^epwky$FR4On z^zo?7M%NDCVr47g|2AupSIn!?zd-THZdCuJpq=+@(g?F+iG|1(mbU?zNQQu(J~)xF4!?y_l zXH2Rtv>>I@7vZ?7(w~+-Vuh^H+-$=>7QO zP+ox!2+y!O@4tnbQ8Ag0s&t%E7{-HvB4yH@Nd+pr93?*MJk3N}80F`NpC#?ha5{p- z0h#uaj-gmz)}*iDlV~z;<@Q310kc|c{n_SHem z&r9Y_6J;gv&ZBmSow88Uc3{GEQ5H;s(Wfq_{k%W3y;j(0`HQ?j;}Aaf+}aCS`pV@I zP6Ow{A+=U@CW#SHwIsG`&txT%B2A$=7%mp7!!a$8&lqA`_tbduN<`!%)Nw6nCqo= zB_-$c=Zv^|*V~hN%WevV{bIefHca6s&1-{r$FS)FtGWV*=4bkR>tu%yT3C3+7Xmux zE@BBxuX8K`B%D<}dwGgp;G0L#V6c`&er+48ETkBn_NXv6DVu7d(TkkI&b~=_`~Xy-?>S?HeOaw3am;rH)+JtQoe?lTIDje3%)k^ z^91mwuDfI-^oSQ3^hwY;q%O4R@c7Q4V}WUU5Gw;<%G2&fX<$cvac6D{ma}h z0B^sUSgg5VBpM7!lFy_iH!N3#HJslMkpe|t1JE8Bk^P-u&W2QW zI&-=uqt|#S8p_uDBKYlmUK$Z3zz2j_f%sYD24goK<5R1}UuL`DZe&q)^^F@JUd;(X z%a~d$1GxJE_koWPID!R+L!0_DI=S^=$`)=*<v;xU+|xJJ`Z7?-qgUgeR4%{c5G<;`R#ZzG%focgKxIBdusDHx&MHG2^9UQp3;TEFPT}iEYMW0&V{0PULd}|TUu}~0vulrgb9?MoEc9L~ zLFV}<7>O=G6_D0Xw>)Yp1w@K_pM^}hsPHA830#V^{E6%w z3q6Q-l)q?pq*e^z2k4-8x8rbd3fMfTP5^}ib6fPhW{C_qOUdir(&k()g%Vx%=3}jb zIeK}bE&><4+=b~@#PD2J?!pz2GFl6e2>%5yhe3t_s9wa%&TtfduF>ujmoVWH>#Al*Iu#<>SK5}TY%5uxcdUSg+3LFl50N2iv# z)aIoF;bLB|v_+msGkaf?V^Fx$DpavV4)?QYl|l)+DHdpg2#Vo+=y1vzJ@9Vkr!=no zM#9RAR<2*{Mu&LQt*#Yy>>##Mt~S zMuv#Nb0x|bfnn!w1$>OC6F@8(;L#Wjb2+Gg20ifU!;eFltU3({(&b@1M9uJiK5YE- zE^aBBoc}typj~Y~FHDtT(h69|!34kVWT99vNf#gjti=sfk@P2PgXIq`I!+$L3`o z#e<7RY8AEC>UXa4^2(_M1~fRG_{~ISmJv4!PgpV8#0J{LSzFq5`t4_(m)lG4YhO8O zwQ*|rWT-A?c#TDM>X=GwHVd?Gq*`qc44+Jm3r&fzeuS0wQU9N6Sab6^jq2|qEfeQ; zCws!vRQsN_pXpMYkOg6rJ2L>F`zzaJxku9VfJKb4@oO{9fookKt$lG>({2fV(>LgO z_njqaDLOXZgevu1KsojMw%)gU zOe?y!3kM6f`ZKDARu78SP0o*zl0J;+v1<}Ao2osnEZV%v;2T8awkNXBpsqycP@1y~ zMFdCd1&45WLubn2QRh(f(ZR4KP?M~)o%8|+umpGXpHl{oPAkgVl>#3t7~Ik}9N+if z1gqa)oBn>@1dUtXCM4V((IyW@7MDK!f$KJa6fcKQ3B3C?C010d6wWzg+^ zX)w)*9Q5zuy&aHdsD5GE|BmOp=;{=kw*jY$x-PtCbaS(7cqh^D|DB3ov!fg8%Oc-7 z#oHt6EWL?}ofo7Lu_AM0_H5hcnqFno$)u!xF2pTIcvvoGuPBJOBNKTi@C$1BzV#RH zuwRVUVed9&L4_AFM20(vj#rbjEq6}}KPhEb!!}-Y<`OkIT$|^ky;xUev7O3dTYQc} z?V$WcrAAV7E)w5*cIBhnFi*UCO+K;aMLyUK9|miZh%Z8cG@R(LBwkNKPnU5&k(E-E z+tddIF~e(|)_pW-d$8rX&z2Hzt7)Cblq2(~tiqjFy>z9?D>M^(F$4sr z4l6*LP+%I=k-qhIMNu|?|3E@2)JkBOHzb;32PxJ+)xDjn$^%esXrZCbIR+D3U@n3+ zl6Y22X~v0v0;9dc@GjDv7wTD?_T=2_>Vvh&6wQ5HOFj;_C0n)Ax{VHf=zDe^q%HzV z2M0}RNgJZnH*Wy}kNdr1eue?CH;@`zdI7&#C}WQWpw3R;WhI);j3w+NRo4q3rvVox z`j4Wwh!&+dO_rx%ogzzB#7C@Cn|H&9#)%Wo=J_zTPo{npod4&%f6@Lf?70_u^xdkb zcr*+XpOWY-OUqhOeSTqvKm`xQmBRPs6fihsipe2%Mim|f7=xz~t|w_as@1`HqZ_Ck z6^@g(X!vs=vIx7nf{?IJ>5@S>Z_!CyC>xbV>6MqAOGIiH9;Jg=N55#apo84C+GBF{ znk?7L8m&4y!B~T+B%&Ys+FWdMYF+b%&02F}1IU75NWRS=ad^~u>=I^uyf+O|)5t~5 zyV(j&B|MePuw*Nea1JkzkxVFcK_ZlTMk!DF!;MBTsS$O}!!YPH&=!P&CPNH8KNH;*v{1;u3v>9t z0`;i*;nvtofo5=Hp{F41+-a6eK-{D>nt7j7LHIU9WX3-3iGo8qr0K9}LDrSzy=X>( zJ`oNt#D|f5gebmT_I%hb1kw6R2h#wbopggnTHz~SpfQB+p95g+7rm171>{eq_?%vJ zHALxg)JI9640(TGIgCx5w++DA*H_eWS4bVEe_j=Z21}K$`ysh#Fgy%qLz|B9i2a*DN&NN8 z);~HN8s3I9%WPE75uPLtB3S(i+_g|a3K>#KvGK?1Tj*bk>~cMU%p(G|qYS8@a=puX zjPQjz7Ub!~nex+D-5nG9$D=))Sj;C{ z-q>)PjcF(;!*YSZ24+kgsq2*yfF~uzqlPeH)ZCn8(kb7a=hI=&(z8>lS^BkT!z!JUDMupfXhalI6Z zsu;Ze((Z6rkwn>CH~?eOs>QPdw!QzeIiM57uZr`P%1LygibP=IF)8qF(DR4&)9Kpj z$E{F8MT~UTd8Re1+4)U*pZ4P6nd>VietUQoaS+_sV*0yUtoKDyY}6NHWmRr?Q6nzay)Z!m zGW2x`HxUqGLXOP$CAo%fbGr`-vInv~8|Pz6YxwXo#twLIzlfIze zFS-RG->8UIpVQ|x3?0F#L)DyJvmDzdRf95sE9XuM^Ko=o`LzYIZlP|;p&(A7_u=a{ z;8MoNzr_m0=)xdW=`1k9E@)Hxo|M~nzT4V@LYM^vj8OuB=IgM&boO-DudZ0|wgkMu zmfNnWp{V*ReIH-fu^EH1f;OE2c3v+~A7C%)33yN5Yi37|Nycmj>@7 zD5+vl@D;7kkPie-xWZ?`J{kJq;PVkaDB+r+b*#6jG1d{;_DLzvlnBx=EV#meR!4z6 zA@k!#n}>J{n`$_W9TwZt=oh|N9J(q?m$?~}Sam8U261|s_R+PzXChj_q%99=F{Vxj zXqTM3_?Cib!ypO>41{<+#f3%H)pxn`$L23er*VZ~;5o)nbkIj*@+A#GHzBUwA6Qay zC1io|N5^rP{A6v%oR_Q8_<|8AA@>!(^Sp4aYWtNlm zgaCg_rzy4paB+<0>fO zn{P{LIv;8z))fpHCG^fQeO9nUR*ha_?ml{C3GnGR^Z^!y1_I9+`hYAPSTe8+&Egu2 zDxp!i6s5mtV|C)2=(Q`k))R7dcxIvcy|g^y{ffk=Z(*G&8yI~0_7sVi14z6*^?vDq z_e;l-N9P1os*xfc6yfiHiFSjfhh({giKEb+CYCl*2tNjW?RxMAEaeYmz`(&1r2n5u z;`S?NA=t)^9h`+wy^GRaQIHy5u8dduXfJcp7rs2ZFAS^&K1RT1P#!aDwpt^KWdq|v z;0Y675cy2mlgmAq;Z_vTH=jj@WI#m34ybQfNJZnbr8Ew4MaK(4F;@eDOh0`U_E%=4 zPZHD4B4Mc#f}Pi!8jHa8uJ2OtOHgNvTJ*xtc$deKJ-bpq#=(n_2HpPg97_Gbj6S*m zc^%~>K2DSMA@>Ms&Ai3gtCMdqm|{5d1+b_}3#d9OiX*mFe1tF7)i%=AHeRNJFalDt z1v?|du2*U#ii4-t!LfH6=Iw*{H3{LZhyX>Vn4tH#^lzP}|B!vWZ4NpY^1bR&v?cgDs}QqO%0zcd1Nv<@Hohmkj&YBLAagPLEg+POUj zB*N6D%`h<7a+d{)v=DW!K|kEq>wCys(@pc%`K~TWB$d;64Bwrmrq5vypamjqod6Hd zYuE*I1A#qa#|S*)NRhOE7YHOS{BYXXjv)N%)0Q5^210;}Vo+A}H?S57-^Yd3(-y@o zT=c6eQ~JN~e~!DEUr6NHdJ)yZgzI7sJ30eh=HK`lKogVn8p;?qO-Z0764A;eag&Wq zxvta&$V7OwD*0AHR(BM=e^TQthHr058%?k!~5p;1OJs3`ajs-{V2Lk21#42yR6j)txWFdBClTSXa7f_0F0)`F%G)CvO1LLw_HHS}yvg4CQ2r^Mu+I^#<5IdEjTUC%wKUz-!#{tbr1(gBdkd%mX zQZvaKz!rm$Kw}wzQV$6aWCN5FhV4{(+fuTdNe^qTSn|IJWCW}*KV1JnoHonqvlIZW zm&m4O+0uVf!1x$O&CuD2C|VFms75Kt0n}q?y_o3Pj7obwaUo`=vT4aCE#@r?@zYSQ z+s`m|mfZ-^uWT5uD||N6!FPs|9%)colAx{8B40EmfonEMA3?{lfN?XZJUoK+BydF> z0&bxfNxJJxrrku~f>EU6M|rXFYuGV5G(VmG?e7eJ!S+SL>Lp&ZJmHwVE?dV>7G&R1K1_dEL}5^XFT@+9Fio&2Lph1e$5d-%Lv& zc!^DY!jlXK(obWxDlMm4leK!yE!2ofg1(h_TX9TdA-vbzx|1{=X6|yPS6h`c?$UBn zAy<4d7Jf%edeVr6R(gJ^EK1h%wYf|)lZ14ZfN{?LsDTs{Ih1l{NsrLAjYU{jHBtN!rg2CdLHUR9-SAIm7-fnXk9nWWH)OyyH|gar>U$0vB4|X0 zX++YOfmb3GVO=}HxkLzjDS5)?Uh7))I^ypD(TlY5IZlMvStV+{X3@kD%)#|?6XX{{ zY%H$bR}#eoOC&)u6i7_q5&j2|yOYBj(lewANooqPVMpL*i90{-&MduQ0m)}sM+HV& zhg_?Ao2c@(Xx!UGWr6RCV{}Vf&3>LgHXS&Fx2lmj6A13VqzszAO1X*3ze@VzO?n)w z>eAoH(5n70=+a*tdU}V@UyAf>awmO`nRZ2>KfsJZVyp#LR# zY?jRi>=#I6;et$zqd z8RTh9=ISe11lUqQ{QIQW3i%RLVPw@)Kca&}HJA+d^m%-?Ovr+1tgAQ)(Tb(^^)c-7 zA{n`7pR@`>e>u^<+33T>@wt5+#rZ>soDey8wulH14@?JY z!=PIpI}THt2imjwT|+Q_p1Ei0R$yX|ir_f$ zE)@zol$Krdns_|Bs+XbgJ4Js;_>0Oe$jd-w7%CPORapzv5C`Ez;3!h!CL#1N56I}D z5N~>wmmPixaFmt0CO&I76z>p82x16DQVEHELOtTPdf@G*trwo|)vr3KZ7ng9B1;wx zR%-}Ru6)$@H;tYl$CU}I3dTaqwzWGWS6ruhpTfYOuT%XbdI;b zx5J{pnWo;;9A}3+lbp{g4R@oyMqKC$*tL)I1JrqEu})f~oL(V>7fGqm6ITXdQ!>6J z>c&Vri|WF^nihS_A#?zF*=W=9nySj??r`wgQsT3*^vQ?^4f&kOdJgX3QV^^ySF^Pxze(tGHW)UykUy#101HM`67Z z52Eixe9~r-=s`}9z>r(kmX!UxDivx)DK>L>`Vrz}H!n?q=(=^2|^b9*)ds0*}+bQb@lmBdx7fxSes%Nh}DUBoTzK5{dHC&E@M z(9#IBnOG^0%CzVVi5)A=5~D1Tga`U6(O_T7Ju+JGs~f>kM2ml=^!_S0Q)O^FeKyoz zbrx-HA-|+{WD1d~FeqTyt)wKvQK4LBN-Q?I2zFVZ+Mx2clVf1>r zcxEp%ysdhVnmt5J;MNuG=&1<@k)%MsVzx_@UhvmM)B?eQl+FO9eYER0=`1#oZzaYW zib+47p_a68rBxO~OAS#U34)ojqIhg%5M~-b;?;be62@J6mKzEwJwWCE;kVLS&F0E2!#de&vnIB`gpYB5au_;w-Or!2(yA_e|awS{RRi6&03~0-t+mMa}wi8p57d^mjna*72 zd1gwDQ`EcM6~(73slrmqPB_1PaYE9qy$Q&Hd&iii*h97>N5Er&fxj6)+)hzlJ#Roo z{Uoy>oWV&9vj@_@PWh|LgMYpXMg1bb&@2^0G$$Nk{B*;b4At^rwosvv3}qO21Mp7Z z5pYwOy~MZs>>Mf(j6`qwq@$>#4XwWr-tadq{DjsKlf zYR4ROXQbQ41|=@(?|x@)rD)g<34E#pK&?d1PNwLpSD-1iE9vfzuw&hM(&6%r&)okp zx;djK2T%zD-36lhZe*R5##nawJ800)dW%UH)JW5r6Fko}t8qFuX8er5gA>bkn#^95 zUuZDf{t9V($eXfL)lAvgwpLt7?ZRTB0KOe6O}3iRFs(jr+gzjDr#l2Nt84Ex{64Xj zes22hR-I`FRfnMYq`n|)+nN16B|R4P2Uo%9YEp# z*U||A)|mnRR@W*}9xjF>Kpxn9B-;-8E}U(bbVF5ZfHiuZns;42Ds8z!yDwfsBTdQ2 zDjJRm-rr-HbKE57xbfhc+il6R(at_;g_>em#~l2d^GSfCjA(dod9deqYC&Ce^#`c)VHnRCbWIr_c!X6QQHp%kkTUS}ILDX`z4bASTFm(nM;t7iGE1gN^zO||-=V72 zY)*_UpzPWM(I_pgM1>IybdY|;ufgq?NQ^+?sKN#7yo<)i2vT&fMcxXuOcm4uF6#}Q zy}Bq#REmZf>3+wF)|_%~xey%=+Kq}KP5r?nJ;pL#K%%5VnGgB;WsDr40fpo#SBN*u zrp?grzX2snqoiBaNiT>H7z%EIik0zjjVD~9n-TDq;0Th`jA&pK2b3+ydhs?FsNgzB zn;m+#T5Zrv97?f=LQG=ZY7G>lj8*pPum(+<1p^uMnWTN6$W18nm6^2EB4uzQqrFnB zu}`oAv~p*s28znb;k?5|Y^2EC0)i*`1=iH#$HO(Q8fy>59;3a%lrs&C$Pof{V=`H6 z(d1C{Y*d*!O?(5-2}ZGZ>yQK0M<5*K;|^InS{};XJw8^SHpfPemLDE_G8Z3*2@TWM z8vYIZO>CzPyh0RhKPWnGg15;?OKpk!NnvBEcA(M*VAN4P}tCkgm z@)MF~fJnc~bQ%Xs*5ZN zYnFSbN|`i`wWiI)ttL+<7Vg+xBkm3Q`9#az)g}>}$`kNYxM@W0T&CM*t)1zD3a_M{`Ab8K!y>VRRgjSmi3+nGQ5R zqYJX0ozL;eGIPB1hO{3f=WE93#=YdM${kl3`^f1&%2A6BE2Q0HU2#h*B5bjHE*PAh zY8^E{ZvcwMabm~eB+LA#1r^t?l}+O%ccPnFiIa@rzyJ$?I}YeQR0d!L%`|k%@3sk|jW8hsBQ5M{FD>cLoET<#B=IC>CHEsqjcP0PU1+O`vLf~i zOFHhnGgn&Gs?gx(k2bflEMWp-g=V>4rRPco7+wKbcc19umdG_KgW?fjU0!)D-uB4n zV){pCAoW>=2DZ4tw+)sS$qc=mJYPx_gt2+iW1x6o2i| zg1Z2#GtvujKIbP43?@;DFZ7n>8>}YvGaeI5ia4!OHWT`V=hy$^1*jX9#j_l@Gq64Z zCu=@+DG)?*7e_V2quc(|1zFO3bj1I&U+8jV(LBpnRQrWFV2UEr{pLr`+CuQS z;0-PaH-tPKAgxfSiYx)}*u&u$&q@VXqRM$q(Q?&#u2I{{Ff!5UIldC|RjG?}0&`&P zG}U@)^r2%m<0WaVAFg0oV|mr-FTe7&xkJ6$8}j^B0_Bkl+vYj)6mdF(CI*W!y6Hse ztY;L5vcm$p)W!EoE2-rVj$P6V72)qML+iD$RG`1mE8^q3z&8LM%Aq9=#sH#d%po}a z9G~0knhqu=q^Ba_Cf2^z3)N`>#vHWGhUJ_Yp^Cc!@4?yG*Jcjy42PCYlE$6rW!pUs zRo0jhm=~Bw46Wmi{8Fec5*#y+51icAn9L#tsBZhp-4@`Dm6_KHj;Pq|XIt&+bhf;| z>x0h*`=%U=ykxywCLt(IwM(~}xGvke8RlG7NwZ+Sdju2WU9rqu>T4i306>(CTB%)DiQ9niUQdZ+)fCe_3iL3{V#PWU?K4dFcuQrs%rmk zs2u*0nstiKR^ktlnl&u-e+(ZrR?Q6IJ1iJ+tge)@mFahOBIDI@-~=4xjbJ$wyo4;~ z+wjpON+GY#oFe5UnlijPsCA6sx6?cWFod*&Vhbvju8*#j} zn4q;ObbQAlyT`834=i1vlZ_n#|1qMp>)h^h3py2)DmwH_)lZ4H8&+18;XokR1{8w2 zpI|Mw@oFZ=k*?X?64!UJ|BRd;VvqD)GG)e{!?DLEEtwH{#?)a&iDfhjNd-@HF6{Nz@%1)9WqArQmm z?KR`#v6ulB6mHOlTC&tSSI;5N7jcG)q;J8arY@g1ea$d8 zvMETJgHr2MkkJ3!%6Y3wuD#0IlDA*|%t!;L%}#i`h2h+c6wDqV5MU3t>^1jkbNWW3 zbv5)m<*0S^fjdwGp$05;JPHZ_Xu4?#oZxfRt{m01nrgczI?=?&-Th=m<$~v>>_gG9 zV%yQ!+!gPq!kCso^$fq{Vcw9z2M+fTH_WAv zuZF{rtX2C^-U?JnfzokbL+@?Vk|x~gZuADOG9Tg#OPC2{q|p0^5bdG{y$z^gP_=8; zoPHs$xbA(SIN(fl;Sy0+)g@F3wHngw2KGhf>xFG! z2m%?@EK=wy&f zKQ?s~AQ+!{ga+XYp!#Q+kXYFYis?$`*dR^3@+&}&T<{FW?JC^6KX(-vK z$SjwK@0xZNa3g{6^U4t#8!3AoVDLRG||4anNnF9hS5qt_zE`w=;a+&z8 zjuPrw1Svbz?2QcV)Blk6E1-?0_itYr7t7YCU6DuoTFsxa=X$Kkw#6PjvMU!vm8RX! z!LY6sI>H}_>u#P`2$CwYyxXG5fKAwx|2tH-akSfK4fz{nqncUX3tuc>JWj#3WpPY; zH!~Tt)C!w4`7v~lHU72%PFo3n=7(2b4^4`McMFk8|8Q#Mj6Oq7Pbr^f$w(cgitm=knX9?`X$Jo9_Z z${WE@10h#Sltj=3HE%mUqb+1%;v_VLV#SE7SbTMupy1 zF+8NX0!Fk!Ycll8gXcUOcscWTKYlp=>6Xr3-B9C0e$3b@e*R_AcHY3UFYE^VW}R>D zn2cgJ59-y9;uc8fP>gCGBZ}xUkwtnkf1Q}xrVJ*39F1Jj{IYXR17)bvq8PcNReSU3 z*D&pYx6$#rgMP2n+vzs{r$;Gcw*TKLYuFP1nqm28@a}I1>Hn~JexK~?Hc=R+_Y9mG z1zsHlI20;!)Oxb00je~$4*uR77DcO~00S7ZV@D4>O7lecE3BT%!vcT8@YN41a{D}k zEC3uf3n&8w_0H+(zx+fygpnj!dY0qvh&&kVIQTEk_yLBOaE^0W6qlar2!j%99n%G4 z#(Gm%C&Cn&M?aY-*=Optis7LVuEiYiE1&s|v^2TdCSHFYZB^%D_slF8$9cMLIG2=sQ)t+X&wW;7G zpXgvfus19I638A-vzv2mOpv?4e(2V8%-M50jquy94b8^h%-% zr&{oR2|oRhzZ_Z^H6#7@Zyj=ukbW^}1o55C(k>_O4Z^#>3GaU75gjXbq~e;JFL!@5 zx_p)92Ls!R&-TIzoVxOI3K)yFb|M`rTX}?qMIwKx-D+AJV3)EPWv3vsZ(ck1cAKFi zccN<$sUK{qHTcE>;;<58ZAdM+na0#;LZiESzttb%{_t3I=z_}*7b*= z{KN72hr+{-*is84NfwWHH0o+L)kH2}@${AoRsbpo1w|YIvp17j#YmVv329yrQjZ8S zsnlq{IR4ZU?K_6;dQZJw+?aOFmIrEqZ2LPubs9JW$Ay)jX8jhKeiHXCygdm=E=|GH zl21{`YDuTL0ceOj*)#2@+OXM+?j@96@SL+|=;S|Ox{ulX%MfYLW#L1osxIu#-rJ^r zZmyBMWi_PhsORdb8$pxGbW!17fwV=b{0pO!81f2g*0s<9qu&24ViFDwUptPI#^^p_ zN9@9mn9pFIGDW=w`K_JQToudM|YLYy3DYEt^Z8sjLu3(Z2o0AR`CYQL37L3_`aLXNy2I5ok5GrYc)1 z?+!8#sdsUzezod578rCjwFl{mAo~`)oU+$ccTg7O*UJ1V{08=`@Uzvb?_Aewp`r%piKS;IjSvSG!={^Gb;vX9Z>Tz4}3d+AvF zT8o9qV7g-4S#Q3?z;ZLpfl#0zad7~_Ew`UC-dlQj++QUh9)J8$7-Qre<(^{y+b-nK zSiQN-1}@sy(+^=^hbCsOPr#w)weinuPt4Ld~fl4|K_X!163BE+l&&dVVFUT!bef@pA1$)|8NwTUaQdS zn=rhG3q#_JOy)QJdAxfi*mhoPUtTrPJLCSUpz=N|iV49&nhXlGI>`XmXKE!@_EBNG z*{|m{pa`A4aQ5(M^qv*r7?Vk3-Tw}(1l>q*4B1JiP!Y_e@iQWFF)cnk=m!qS2+TS- zWje#f_mRx?YLVClcZy7)ODq=bYHH$vlTS}|wADd3p54m}^dBWGxV$p$ujjkIyWLM6 zSrjttOt1~hqErnu^fbykZN83s-%yuN{(evCT*v#idMy_ zGT&3&vL7G1==ZK9w2E7jZ=r6I`i5@FXgl_F4b^3no`PS1aj1$rYAWqPLyFyVV06*% z`#l<38ni9R{3m)a+u#0wm$iRH%RjUcLCZgVmri8((j0Ub`DsnMPu=29KNO&5xgWr; zsIr-{=n%w!Z{UxL$g?u#3nSP0nP`UjDDldn<~YLcL%Ddq>Qr~psXbW>O(HS@*-=j; zv?O@HqdBkjp9{+Ys@>0MU`|39!``P7-J47<5;LW}%?2S&rf6{y`#REnh*zl-O~Z>n zdlF{m)wtU=bB&)$>ACo(VPa6oXN{s}PB2dLk1QqB3<3(!&i@sugHs1U2jphVc*7YY zaa|25igZ6nvkT*)S%H}oiiNs6akM(Gc@bm*iY9sY@j&VYscl{p1d$dHnYPx~hMi>^ zelyAL{dHU&xjKX&U;WK{FH9D^2%Y^ znsX{%A^-S%_{WRSn6>H{DtN?1`00uqA7Blm&FcN>Be8~I;Ym8n_oXmB6B_ZVqrP9q z;dd*NzeG@1O`P6Es+b3v*{B(|iJdi5V-4!JS;Y~uR-c;JVA&$RkBtjZIOVGg=D9=^ zxkOZ~oB^_jVGEp$aZqO0^*j=x#Y)?GOM?-vW*c%kG@?VMJcfsc5o}#%g|TCxP3%lC z0<#XFlWA-N+806cZT0qEr!IXBI!(gXqoN;M4^mgA5g+gk!SxoGSFSRA7rml*?u+Ew zj^%Wx6*oC!4O0H%Tir6+#XS1B@6^wMojnWg?lmlX>G}W*7^Ui^khf13-iE^g7sPfId6shbHiJ%Jg@to}F0w!!~cFHGlkF;u!gMUDNiM={zU z$&=_3%%dZ>UNU=Jl341T2(bW4x>;2>@_4w%L`0V$HQ;YOG@)akPhu}alU9aC$j5$& zu0vd$AQ*r1_=VN%2p+g>Sn$%K7BVO*g*EPnVAJDsO(Au|hXP7iWIvYFoNG}DaX*Mj zg%P$qg@Yo{phkTBP-^_KwX)#sH9dI^64R+v&(KG2!8*;>wzNn!B^ zlcR02ue!PpK%L}7_Z7n<7g(JKVUC z*o|##`31{F`!*MRZ3;}u$EK@n1C2792=0eHY_3RR_kv0&TSITU+5<~uKgQAFvX zX4mK6s5HwpJ1JNn6tb0VqskX15wjp5bvzr~`+=I!f(@J^)OVI&+V7H9Ig<;Hs zl^-Up#qx)ji(uW1Q0H5^CLtfF zJVF9Bk}bYU@X>JxdFW?71(pnsyXWUky@|6h95GSdcgxGMOw zo3r9jqNrfyP^O|ns5zjiSQ_A%%Alzgl>^rtb0TL^G;!}aZD66iNQG>apeDb z-}mgzKJ&r*f1dT6XR|rL;heqS_q)F9yS|Hz8dZx1V64TxTK@?XZr{!Feu=YEYd z1J^cpheFJTg07F*Tt7jjZ|ZSW!gcS7j~`viYc7L-U!e`u7I3E;NUtV z=bjGn(S-8I19kBWAMu+uh=A#4r-7GZueNaBB z2D-U-~QYso7R z4MyGEeyF^elt}hU=^a`qK3+nw^OMBEet|?}1QyE>h~6o)P(Lmk#ANdTu*ct zX;sQi4HA>4?c9>KPM3c<=^`VjKKqRkR1a(3-r)Pac7t0|>W+YV*N7v(9&aLnI+DGI zHJM|()q*Eepip)YD^NJmG_Y7mE*_7ZR=-7DUew#MRiD^y+LFW_~rWCOcD>)hwq&+&`jC9R|UPC!B-Co5okU%5r~Q?cSuko4q}vgi|iFTX4MZ0$*4 z66xy1Y!IXl#-Fj-V|j^ccEP&+VXEBht&684b5pZtVWhdw%sBu%NS$E_6N+pEtV7i? z5=+E+p_a!bPy;U&?MPwF`$>6r#KBWIDe!;LSVYi_OA*XaayK5+EpAb$S7o$5_e~Ai zl%iYSbsGmbu^lGduRsWh#e`4()gnPQs3tN(a6B;mh|g|65VEAyUB1!UHWb4I=?lW} zZ|tm=T?%%8BjUG>(ccoMA8uhx+7E;Cr%k^Su?v<5ODj2Y$|T>U01Vk-fM`n9DNlpZ zsSC5&T`2cbykMK=q}IKpW>D@cXeM>O{>!GXE(n=N$9KQ;sMqNDt|VG4>Mq@4r2GS$ zoZ?MOzuRBNN37V+>2oW5CmIp^k3_C(O2Cr(Qopei1>%<*ohg=>BCqCfTHqdd`gXSfh-buj3tr%Q*j{mZ6Hpzfx$ z{{ON}cTKl|GoT*N9_M|=&23~Kx0CTq>Pkic;4)A@^K#Oo_on}IwJlS;(HN^P9K#B4 zLCe^sAC>PqRtyY=3Z$dPfYNu)tn2`&gVK2d5q~qgiVv+1v)`=#dEES<9!*ZkjZ9Cf ztyC_$W&jiqX}QMZd-!w`K}G1UtJnksCp+47tJAb{{IK9?o6?=@?N9~VhxkWnGIhzM z)86DjrY`ZdGza|}EtX1St+0B_zQ2!``WY#!X}8Wlx>v0GXB$!dG964sq)&jiye2Bm zta!SxBB0ubvcUIBtIjM{^J1J_KWrj)XdwkcPX{q4G!ddTN{*PCacXam9dBNmx7lz> z8<})lrfoDW`BSTRwX-`G4%K3?iW}hEupAd}L!9laWR@|099$ z*_5ir*X8{VD>l%U<%_P`wv~QjvO;Kb_g|sOXgZaxw$^fNJEyBQxuE`o*js-MJwMLe zOiTmg`X#KdKoYqzM&KjiBzU`JwO|?_B1G>)-F9+dUd z7I&H}!IOE~*&SDcyOpmr-~@4eQhkR!iXs2e(<1raKB39!T#Y}^)%>~V@N16f1N}3e z9Bj<9?*(sE!(xk^Ti&&22~=y^%n0*qz|N&n{rd>~Arhl2khRonm_?dml5&_=w5{k{ z4XKMhMg~*no%yE!x~ECr-4>UqKluw)bXRo&{bf74Vxdl2lx&eJvZgLUXS=kD=qH-R z90tY@QXAtT#vRIF_byuPE#Q9d(NA^fTQ%ASU2E|-&y*S==ybF%o%_h#PNa7j+Zs@0 zoDts>=pu#BD2t2!O23waI0qXE{Dy+2FC zhmIX2Wn82!THTuC)6amp7xs_+O?rfVp=_}6KpGJKVAq7nCm9&O&t6r$SWGQOm?M%a>YFBb^u0xpj>f(yv6edjq29^^)~{ zS3%gJDdRAT_4>+hbudRQ3#<&=7a!XGt|{mNf$2g5qg+N$GF{zZ_+lz|$@^0!)bC9+ z2!>TFsgfS>3Lb~PPf$x6($I~I*3l(y+}F7qTO>puxN_-)TTt=Vt=uboT<7y!GqPZ9 ztr~Zny{XJ7SH0U$OAdX4aM$IlL72g`PaU`Tq`0xb*chN_bK6v5$?;>j#=^qIwp{!! zj5zXtp;4W>-1DLzc^ zdF_YO?`tI09d;meXpHET>MU||MCXupszHMCjdQH7+DPGtzRKIf6-n1LS0{Ig3GG$s zNMfmVmBzq2WYR7*{pzeY&(v-w*!5K&%AIsu|3#fnCdhrO=;7E~=+g^0Ry%vQ@ifkG zs-cpD(I#|R;?F344SEic=~~`kbq>>g6i*)zwcdXnw?~rQ=dF$VmBpwFzrYPGCRgBST zt%WRU%ax~T^Gmzgs~^76j3o|l^{E>^=kd%-Syh{04rHCN*qOqB!+q6|z@3ZUnYea9 z>Vcq)7lnRI^^ATl40&CR&pNm2d2+>RUt)cuYDih2(^d7!^~W*cy>R#LxcXAY7xTim zWhlna)>~=~FQn~}ybof^yZtA1?Y$-k5%?8%1ZVZnnmxrpoiF;KvhaMLQe*bqoBt}+ z=WO}kDG9nVr<~959PQ31nDe z_230;O8TjPOdTqbirUaDvwSZ89`@HXOf5|s7;-z0qd;0BL3$D?TOyWD=>je62|w@L zr|?)keL@fLzZ+Xur<3tF{V5Bjm=zm!>}6;DR7A(aH;Snd9uyN1+}TS1VcP8@c4P|l z1gUXJv9~Td0y6d`?2(K&SMIFu$0i^`DGZ+Ao*!LvY|AB&1<#^7wg2ig#-Uc-LV?Sd zV#z#qi{b|h?*nf%?+fZTqa(!9b;Su*59rwq8%?eTIJb5FZ+!R#xv5=TUZ9E5Yh?KA zwTXRnX*b$?AynU6-DgBQXB3k;$10KiFFl2ont}UK9MyaFu0v7(bj1(WmcgwpV`glRZb97 zt*zpR%Eqy^{D=>)T*bftb!qc2sdc z(YSS}o|UPS_a3bT6)DE+g}iv{{J$-iGEq*n1Kb6BGA|xEml`4Pek@A}TtMM&OBwv!;ZN19!1;yF3cJmu+BH26f2+Q~ zt54PYn|ICA8P~u%#5&SIN~zH6Yaj39Epr{Ot71}{KkoFAE3KPvx1w)`(g>qEcP;Rx zBbLag=Okta=ARpspBjZK$bwICg;>X=@#qvKRNqx)Our(+_C+hh7*RVCAzQ5aKIwT$ zv(o$?b=QBq9(oDJHLo0^fE(LT6aIq3DG zFJ8R$u(mDwTqgi+7?U=i*`h+~X5`shn%;^&eKC_E2Tq|johAwZv#+pU`}=h(-|}h3 zi&+^ZJvv{lB=vo+-{yJq-pWO&7u;aUC;boSUu%gGA7)=dtKK=&6y^-Ol{7{$>%{ev zC6l~Ao)&R*-*1bv8$RerkGiQ`>{8}{mgmkFF`{wci+SCzCNdG)X=p8{x(FtQdUQsZ zTk+N(NePWqo8?q-#H<6W-8E)CGPmze5Sh=gVRW~!K7K_wU69U; zl&^W$2hB3D!FDbeG$MGpHiXkk5B~^YXJ0s8r>?e+SkPKlB$%v!K(03jtwRZUP8IV$ zy7im;)wyAI$qidxwYb{RtoP)6D4nhG=W`GWM+&i!WlNhizBZnrQ*_KLf}v3PFD?B@ z$8FK-aP794b!85T@uSc{KKST*xuJQ>HQ%rTqhB3X1Huhhh-FP`%DAHDWQzzG5W!AZ*gy)8|-3V)a z4wE)SFLvDt^`TO_tOwiiDG5_v3h7h4b%#>lExO^k-GGdo=Ras+P(nW`xgh`g`}x=7 zL1w*1v>mtQqzgX#0VfPw?hChTj|ZDcgf?xPAF>xDEpE?jf2)T)^oHzW4ZoCOmKDtMkyUcezwP zB_mY-zo^m}>Ns?3M5PcGbIfa8+;}%JEEmAfiZ_zP zBZ274mNLp`hPfGx`#=6^!$G3lx*5!p)gY25p%4}S(BKO zJArVevxmtBE^yC3gy1hivIa6mo#aN)oIW=77P_D&3TYMzVGUOeb;}b{{?6;8LT3kl8fEvGrS#ZV}>bquVynY+@ z>lUfq;8*?C$$zF<-N+$!7n7z=WnF8z@2vOykC$D(w|tGqPxA9J5UX$%P_;WfWx7{~v-n9RFNix;&dssXxs)qPPi;vbm zPIT8b9EIu0TmdyQ!m3P*Skqz5!lBEC%fhlFGF^2E>CHo<6MFTRXq_J4=koT7HIp*8 zL(FcC)}?TLq4Z+wzT+mOt`}=)%z+(Aexs&Mx6r{H|2bje?#N=YANk~1JWB4LEOK*I zvA?f>gf$^?+N<5MNdot#yidEFIB+G7O`5?^5sxcGqy39oSibv}pp9jdgWgPW4$k8K zXx!t6pp9<}dzb5UENMaN-96K8R-pJ3c13G>mOlKuVuh4ctmLG4&@6)i)`A>ZdJTb zCT7IWJA8t9Tds;*$rq>y)5dY@OUz`pA&Zr1y=MPHmTw3-ubPq7Wc+`hKXy?Mt_OaQ z3yDjMwU6LeDY&95)XWKXP)x5{N4EJb9J&32qFIITrZS zqdI=~0#<4!r!IgSbq%-oY1DZI%rJ&hk}>OFBc=0Z&P%AZsnk0q6ZJ7^^_A$b~4 zHh6p&aqtXl!~xW)so#yAk zG3H{D&+cisz(XMjf_-Fk_sec{e9I{F^yGT?3QWiq)?H!>Ujwfg85a)hU>iaRFMsZ7 z$##$5@az@qw!Lf1;mZ*Ih(A<%1zF#%FPC6iMd?nvzn$&gR`_6I(cp)Xt9B3<4uh;n z$86o-R&4Q-;=#X{>O=GUnDG8%#-^cxaN#1hLAp1)b^O8D!<(5DTcVpniEb>AD0u72Lm3rpN1mQ6oPYdjeAROjo3$rl(Cv@<4w1!baYZ9 zQs_?03P`vrRMO5S}40Icp$xJ4?^wckpG^lQ?0W}R(8HY}B+zo^(J z9fEsa>ot~QY#-=}X9%~EtWf3V-mWg>G+o9w?|Ss~MdRk}h*N*(t#`W2Nx9KrQOCHL zk;7wNczLUHPTl&>6Ex)akmDvtYTTf6D9S zd*?@Vug6$f;kxNCY${~lEA3lmaL>vQ0_NWKY3{#z@?fe2&apZ#LkWmg69R=2UW{=z zshpt75Y;H-No_=2U1RYstTm~+1sTR^N+8Iqvu+&1q=4$v z5YN`zvQ7=Nr(J(lYdckw-`WPYQ!<=W8R1Wx7gen$GVw-&=Qwn?r$w1%#Ia_??ZGI8 z^`BCfq?X~{#$KbT#reu^$9~?K9v3FIyt=;UQ@Fc~3zw^~eR;?Wt=5c-88VGhbMEnX z=#4T+XY6Bk?qBHjIvCYXLjyx=C&u5Bv%p>0K{ePmly3%)x;W5V*to25%S-rIe=@jG zSLyZ8_N6=V@?!?~i5biUn^a-0Y;TI8eIW<;W7jP)@fcMIF-*qsN%i8AEph@|JG(}& z&(HDCM(;jjp@&~q3GBYe==Cg~RK36ejN=0C2JgJ$R#Cz)Gs&}Gj41nj;)%)tUfCR? z8*bGdy!(4AQwn`rO8CEYZ}>{R?c*2b1Wp|r_}nT-Q6!MLNu8V{dJ)uPt~&9r#5_k z%hOIH*?r>i=yArXD?Xj4so*xELhgo16Ky5Z+$Z&Lx*cq$eS$yP>Pwgs;se>Gy2!g< z;Ywrpc&iB}r+ho>i*oKIg+*XS#aXp`t@AI(EpPbfb^gwHP(Le5H*@4z{}$ItiSSd= zvZrEC!yjtP!qyiCGSbm~`iinS5-I3<>`5`~F%CQWwlc7tVu%_$Yk%w&yJ=>b=cI2V zBFpg?SJDtrAexh)#1-k)?(xWI?gkYz7S=5NTUGZ8fTKwKJ8ohd zB_s6jG~d5zWZEH}9+_DGwB&r*Unh@f zV6F?f$cW*kt%7$L=yCI#QkSx8r|B$3qL)OZmVHfgW`HNx&CJY2G1`ym1DDXO(=xrT zQgquu_mf^p2d+$}qo2VGnoZh7$4RKE|5B;$QK(&b|6o-y!PQ!%ZI@ElpN;&6NOO zmppQQpy)82bgC{TRZ*}~W_&e8yN2%gp-Ys@mOu7O%%)XB0@?R>tY6~Z_`Kof(D?aZ zJYH});@JWw;(QL~c-P+eyzU#J@at{cp71x+j2uJt&14whbb^_C{FwPZ;gAbA&!#b} z__^oM`xSh>n)){TEo3!w+gAQA8gyc4DO1e~;9;GO*De-zomm5a^{I4>pY-I1cN}4z z;By=;AJs=``_cGu8`>2ZsYQQk-vO;RCCz2pNFn-M8KA&5p@K3Asw6#>+XIjK8SOxK zZXEyQw2BBhqDyq?j>znueNa>~BX(hNpny7ys_HD2pa7sw_k`+rj%-!`p}WtLuX_8; zOu$p2%7EU!bKMZDBfZu2xIa`*P@&G~Um6e0pB#_h6Liy!k%4V0zw9Ef-eAIa|4i7L zz>h(yR~ghhx35}V%+pj@_C1al9Yu(Z1}2AGOGMpEw2IrD)P#xaI+1Qpbwr;}Q8tb( zvZfA8UYA*XG$4wYvB>jS?2)|neT0WgWmih{ZkpRm_{aprATeQu-YkF zF!8;m&ukyL>O}g^DS9X;+H5v~>wTtOu}1wxWj`c9%=ELeS`sskWRxi~O+Qv=O0$#E z`K>%v@49^^rZhYgRzLme{NvRx(BVStJu;cO;>Rcb*FZBm1UOX9)WkS+Y8SeQp~O-O zi_L`HF!mdBY7H!h7ec>7n2b)}_upYQu}zcYnl={Ni6pnO`$=doV*nD&`;A@`4ekgPAhH zPI4vUS2ev9)uWx;(CRd$XP7l8k^Aw&m}PdlD$x|)ysK?56DlQmU}u@X!&V_9;7bArid=Rl=tVT;669aE?hc?6iIdL zff(}E2fp|7PCD4B3VGF2;j{aLDL-v}q0$1YM$#$YAF=``wv2Yh-SAu=wtRNUO|#*0 zsgLeiVCYLSuJ-CQt}vzhgq9+=@ty2k$*FYY3Vn666{@n=Y!2Nt`_^m_viHiPF!T|+^U=&5cAsp zgkL6r^kMMaxT6f$oJ`;2bwGVuS8Q^H*|FFpC7sJ^&`_J zcii_n^}YG#TdKtltG*Ohy`9)Ov*NCv!~bbi4Y*G2Mk^CoXA6b`pIVE;n_N~|%gB+R z=u%YEf#+h?VXvGYtW_~aB@Bvn!gJ~=q&SryP>ZCt3kQPXo`UPFuNqu8^6EK~SI0$b zbn{=n+!U(%tQ1za^RL=_3ykOEhb}|gi*F)Y>EazuC~C`5KAtmSUcaKRKDpB(Uiz=3 zd7tc~k?JI-cD;D)7phV1%-9=uRT;vp8r7)L!*~90p(nrXl!R!SG3iaEM^~C>m6x}0 zZ)e0GT3SNK>fWm%8?g zU3T+hh}F-O8u}y|;kjuYG=pcZo}NTA;EC(Qh@8a-xfZN8Q3I{5lV2={vLMRb?&WMJ zGtZHNJL@&mGjk>5Ftks;Ss_|(qKp~YrDQl(FGAbNmE2Xa|47rtXV@%dy#q5!#pO&8Xxl4wyly;nngWqmHLgp3fQ z+}#>57SO<{+fb#;!D0xs4Z3Y}dO7%@+e;m)&!19@-uwwgHrTP@((4!6s)C zI^Y~jPmeN)lr0GkuME_@<|UaCnVU#HA6?4xid@%X!DZ1pd?`;dT&8gYeA(Q7ct!cq zSA$XmYXs&OX`dOu;-swDsGdQ?^`x8sn7<1_8(+O1#AL*}VeoFLN8%TMz+z);OVXNP zEFAPrUt*K5NOdY66Uqo~{D0upJs90dE-Mo1tYX~mde4ZX4ikUBVtD4$fwwm1p`?jT-0e4h;)?uY9jWt!3Pqlj3I+U* zd48f{aXY$LeQ(vp&;dRD$3~Xt-N1yzFLPI`xGYJntE<6qk?38Lsx7cl&;=Oiz2_qG+9#E&FT8%aJy-+@zRSx0&)8@}houBeVLhu=T)X zJ2f&}r`vjVQ2&yk)~`&aAgEUW)#v&&6YawN1**C$c?TZK4kv-QM8gL!$ z-`1GEYS4T}d@I<$>Pvf9w8^GXH#S&3E-RWY-vdW09XMKHK&Rg9RCaSCuqKVCN}sNT zFE%!)GrR)DaPp5CfVu@%M}vBl0=n4i6TOiYJU!<t zg&s7XM{TZOe`j9HPd?n-6Jzkn-)6W_I9j!$%(8%9sR!<)9=MnB;-!pvUK>*35A+>Y z+ZT|CI49UKetB)#@|M^Yh6vDoWc`3s601Axp_354M%1DvnCY}@^K+RgIB36o(9JrW zOJby8rgw7b-g3^@OC81vlk*W-7#(XX4XJ{WBjB_l#awygvxiMSlrkdUwGFeBT2MTy z{xOS3TTYJBz;O=A^lFZ9r)>k$lcN%nqeuYu6o1oxJ<(WZWc+z(rFF!*O-vrY z@ZL)AZ#t>Mm^~@2;XGn>8_tYEd-vrMs3V95j8^ZI7hv49GMK@1by{-yy@&pe?FmqZ zd@E)RDUFe{u;S)r+8st$DljTNF0yRn z=<^D14Ys>1p0vNqJ(};A)x9}ZmedG3jigrpZ`*D4R@>?YQkj^+f(yUD=Jl+A?Hzw@ zG{b@cc4?h3P1)%2#SzK`l39;#Q@X9>_UAczDd0Vv4IY14BC5w3R!QzBliI~h>SCCI zXF6{bzv#j!(=a@=QGO3gkXX}V!ejT#?h+MogDT<@fKDAu-nS5!3KhXf>dxx7H zHK^42L=Ci>QSo9QuAUCMpL;2P*wWV-cYNRoigi1PNKcFu^Nx)ulmUjp$r&RN)G|!W z#{Ou1Au!faUN#2WU6g0qHgs2}i9EvMGRc*I=TZk2uEWNYY{2Bw#N)CVJ$?X*lT@i| zhyPf^6ySDeg%fNZtA6T3hbVAyP25%NE7;BrBd+XI?4$VnhSh?jc*q=gT=qHuf4Z{)p2` z&~T^f-!SUL<;Tl=1-dy|-<jP~~EI;_lF@P11E8mw^p3U?CjJzL&c^~~oKaN^PC zrQK^EhfanXVOF@h#|lB16~OttpFYf`3mjZ{XXqluOuLs|i3mo!2=s<}+HeeoL};LG z6*{USM+@8?r2NIR<`}%r^%0ZzYmVWJ%|I?=l*nMxH@ary-^w;a2NTj@(I*31z?@3< z-U6u`UI9Z~$xwWf`t~1uS`q8GUKLR1(nHzAr|ZYI+D&zg9AU;R$!BQj{1(+qK*<=}7Z1hCvC@{2Xq z_D@GQd98`X)AJ<258p0KWHeo3S9Pcsg?1-6l^s$whc zkR((By%-BDhqIwSR>CnS*hXC$R?K?XEWxZF{i*L=@4on?KWKIwj~|PX+liBFZ5mm0JI%ubV*JQ~6cw2kH(9IpK(QOIOhYmm7K0UxXsMBp$7t9R#h>Q>+jo}U zvGdjV^TR}>?uUcH)Z#Y`D_91x_!!5*s^1ogFI%1$f?CQOc&|XR*=M=5I=K;`TRj`e zJJmSqa8M*PEisWnTg6Qqp6u2_1gcJNs^$J!*Oo{{-2P0zF*@+wzR_o$akaK`QH@GD z_sOg+Qkl^=f7%LJ62yXW0)NUrHzWI+JQn*cr0*TcqwnlDt6_KC#eN2Eh0eM2QFg1u zTxJHek6#bE9A9m_dZ)wFW5fQMF>3Ft$V<+Ynol;3?DYQ62f82=&X$TTT3Pa*h~5(0`#%0P{!PGuDHpjL2!U z9dzXtQ@_Q6+~0_jEg*kk&J9%62#3lSjb}HwMGU&Owp-=Y+w@J##WQczLYDHe?<{3x zF@EF3s4uI?aJxOahm3)bJbOHi=$A2k31%PkL5@ClYl=udLK=BCZ51rW9k~S3wf;J3 z@Vb$-9+Z`@?Z!N%(72~y>^_sAT0 ziDBQowmabA?tmYY+-jioow2aIc$6Us2z7>&Dmc^QbVi%y6W9JH^}s(&YS~brPqVuH z^eUJ6&1%?^*}&iWG2&gA*(&80%2;$`Oq$Qk-s1Xq7`?xZth`c8g01+fSLVBXEHdZ% z$D(k}Np(hj7bK~|yb?bA#%IEqjULw#U%Jsc+qWNMT@zU_P_Svi@wS^p7_l6i5mVe- z{_Fm+Q{~69ZO>S}tF+)C_nSODgb&2>f=FF16`Ma z7~ROqGC?j8kKRMI)$DpnnqH$fF)4rsyJd_}Vw~W;Z{9ppas(WV8j9q{vJqzolDm3Z zC}If8VDs1C2PARDK4!sc1aqD?^uP|Wj;RGpu4DS?@6ae@6hKTl|&(;vgUFZoEhE!t1QliddUKb9B6$D?JpNXl@+T|4)8!p@h;<~+@ z;%{gRDJ+N|k>!84&M4oX`XbwaW~YM(z$UM0({-<3+46vs1?R_4!=!*65bEc)&j|Q+ zWyt6hrb`noYectwCG(EqkXd0?9+?bveXQ2epGEfAa(Sol_6u-e!#O9_KYLT`(a-%B z9jDg~UH5c0U>VDMc`CyQaJw#X(_K+tybu?q)Nn^Bom;bpC!lR@YqN-=@6GUE4}(17YOFYVc4y~|1eB@-|L4< z)xgd%-Z!gdXjV%e)j?bN2NN>iUlal5uG&%bx}(YBN^qozxglOll57y)-A;&~Iq zGh%daLJgT$kE0XkvWg0v^kwYxp&#YnY)sq>ZkcsG9^cX{*Su8RAGS{glVtV4?PqnZ zHHvn#LAWb{t3%+fBZsbAOOOPqJKgwr0HMFt6iB6PVv~@}0xhBqAI)Md2JNJdgXi!}5hTW>!M}O^ z|B1xrCx14*4DrjA++zjaF~T)+Sdi@q>s1Ym+8D;p? ztL=%B)ic^;2~+rjK#4=WrM`^1NP|3U^N2=BkGm7sR%c!lSCvI1P0l}B5dYM>!l0|K zw#JSdZJK?GM23PS6JA*tO-p0$J{T$dQJx3-rz@8k(Rz`;<>=WhN9XUjzh?baLIDEx zXiV0aCqva$3BUfw$Kg@@su{8?N-c`6KJt2aVL9CnyV?Y1P{$b2z0RMpC#W~4;9b)8 z5PdVTdBFC9lvCqvXhZFtJ1$Z)t5B8|JgTl#3oW~1+$|m>eP?@1PbO0m#Z0DxAg$8F zcwQb4J)oNWG~8n}C}1Tk#A%AOGLih1nyj-BlRH!ZpgEw`21dhGjOK88Wq_^B_>+7W zM$hPxL_`q_ZH7t22da@em8s}Bm*JXw&I&6{|4rFYjKWtwDD*G^S-I4nL?Gi4Y$9k`8c#C36R8zcYv zM}(<9C#Rdf(zt`hztek)TLhc6k+ZX_X}1u0pAMQ&mWyPDC|a$$G-yZhhXoh&DR52b zA5%NYJD~o~fA9jK0aiv|xf+4(%6JGPcq7~8ir5qa)3_r;u+e>pai_gHuzp@I2&;n| z8KZ7wgkS8ECGDSaUb6$#P( zdEF>RiDdMjQU}$QY(`x6Jv`JsA|DN!R*fw)(Po<573nLg8!4Hw1FyA%%*g8Q zoxElIli2Z3E{}hbMfB~{DBrtLzT4Z0GQJx1*H>5f{&Do1$uTdL_b!hOk{;oi(Ts7* zQ0d-XkEeGMpPujuI^i91Egjoa^otyr$cv3^pHi> zSykJNkNAnIzE>WFtE3FmncK^$_3>o4z-MPI%;EgP3cru1nCe2%)gT6gDya{T$6|l) zU-ppZ17i!cv#490W*snZ-%zspCyPJ0Q+ObMKfWsplLAUz($6jv@WyASfA=y&g~Oi> z$e+00eq7cxgSzvmEyQkT?J;8-aGCh!=YT*i&5V8S*?rtIyk99D{!iu6_nO{{8zoMbTn6z2@ zI69Q>wSROi#FLR~;04Ia`~NFOd|5@l2K7ozk3tZ#`hug7FXQ9#hgUxnkk@-sbReJ3 zJXvX_X?i@!U|Bnn^0{u>g60RI1SlR003&`c)UgKb50GZ!>)C&Lui%ha^O>LvKSsl*q^S z=$k?D()iXv|Gx9J^-1!-8~zYlgRv#er^PgnuD&6VDC1=}WZQh7m?6;|EcPScH`L>7 zGVlcwJ9`~7vp>8mw3VF)@s^|D-~-`NeK__W^XP<>BD|Rqu_Neo&zk} z?J@H7MP!0g`IO#4`hV!}XU39(@U+=e z!ex4eoD@gHJ98g)F)v5!!kG}-wMhDM^i|`s79f1rj8g?OZ>JPvd0Jr|!?S;3l#J8n zE7hiDcs#Rn>dhrlwHq?u!Nq1etCnN~vS*uq3b9QM(;`$o)8f(KmP}gSrXck%E%~HVqb;Qzt!z^KX3cZ+z}VdOQ+t~^OT3)<`TLbxk4OETJ*_azcm$y2E@bDUc!5jaG4RIbKfxF9_C*vPF#PiH*sxM1mjDll_3lo z2%{dt>2XWh?uw!UX+@uvhfBR&eqrTR+s?0w*JM7b9K+~WP7)i3)HsbVkRfKMGtF+P z8PI0(_c4i&^NgWsr*4|YrqVwqI#$mON=^$WPW?IRRK_R%1(Et-=N2gWct z9O=*G#VqdpZjp`LFj`klAq4Rz7g~L4F^#(F{V8~tc%%LtWjv`L>*vLr`R6F~AE+w| zL>CeGV%RaiFj>SPWY^{=sVPe05g{asM~m$QRk|S%sp}!m!?Nk$&AV3g{@a5zra@~0 zv}oFKM9V8B3@s|xgF?e1V~rfN8VX_>4I;iJ0xgf1npmPe?o5w;uh<|ui7Xb*Lho_X zr;8*@3Eat*RQz+hfF9F%GI1ceG5u+X(`aRqy=>(3t_f>w!TJrpqQwol1pBpSN~lTy zbPb^S0iCPhMIMQ~YvMvL60L53E_Avs^zbckHnbE!Xm&yc*O2$b$0#`_1Rv7;qPlB+ zgZYn!=RfLdBbuKSYV=CSuzHy?H6A-i5-cgNai)DYXXuQ(K9j6iNGN8im@xfyjg`m3 ztgdvJWq+Hz?y=+>+y#*pR-xS8s`ak)xzY5{w>dQ4A&lpxJOeAQU&g2h9yAl;4RWeH z@t8vBl#}t;e5Xo(v@QKf$px~MU%2^=y4kd$wK1F;tK|5na{B{e!n;MSwSpmRP?PbM-($ygEAk~vJ!;EbeE!qfUYpW>aaf|-~r z@07u;MiNurzliNcE%|D(CoiWJU5s+j1~rLsO^lb|X`?HL#0;5q|LsxWbj|Kc>usZj z%o@IHeuCuY<}GhL8ztx>E!mQl&;sZz?EftS0jLN$Y?n0d*w4{F`4yt&!=~qnTp~$u z6itJwMQ{35t-tEgWZXQ;leH!H&nl=sBUiELB4cOW<<3=<`~L#tRZA$UO71W55`_K! ze3rnxYo)Daro!>_$ktnY5K8IOc|wo98VRjLGnz&Dr*`Lp>biK7Dt!L1>7MZ@=Je7t z$EJ`cEakzO%2qu{4JNv3aSJB?l0`Y(wWCm#qSQ7QE65=jj~Y_fIiJQ_(#&rqKh7vXqhJp7WXeUyO}#I zQ^)dRSdwgIb$)l!_i49ab_tNT@9cl*5Xi~d^y|@?VAt}!Sxx?NFMrY7BX`t=OS}VT z#%qhr!WG zNNhF1shPnBT0OaO3u4sJ5nl-GPBW`X3om_{#l&0wc(;CMJV)K+(Lmmbm$q}7r+&tG ztUn(khyv`+z$$uBg$lwd%z9Hn>K1{rRj5`?W6t7z=ei4Jt(|wlbo%sDw1I*L$GiZk zfadT4b!n@NXkNXwo{c0?_ZjweVZbGNNs~-{k`DU=@E10f3s9z88v;rwZh_~uB*Xf& zd^RnUx{{a|!Sq!TPm1Epse)s(kWWw$W^df(xa8}aPWG9}_(li3S6|A@Cxes;Yai>q ztDtj2|ByuA;%RQ7aJmL5)M@26WO$+ir^m%Ehh*3&>?uznIWn8s*&-s_3D1)JQFC$S zdwSJdx*eJNu1U0Q1+xi`F&9V5St5t7EHCA<62P}~WC&?Q>ITADvDT5*Hm+|}4I2Q_ zgl`hh7*{Tschj;YJLv^wa4x7={0A?E&B-4exV-o$+H@IxD#A0Uu72T$iTXs`jHaam z`T3uy@y%ODR2#{G9ZcT5aNxHEmm|-I#GelZ;k1@IRXYY4g*bgTacw=vO$cm|2t+FhuEgFh0CA~qQF!0-&) zvq9V=Dp&bLkXX)*I=B00Q)D>;LlDUo{mokB9LCy|ogo=09yu%r`oddz()yt(lE8jOcAL((!dzzTHNA*dtX-ArxLF>!hEK&{OKFVyG0 zO6~XjraeVJ|JqDn-k{+0i5Fg8K|&+J%GC6`?Wr}oS^~C^_TBhQ+0FIxY=h(?Fa2A< z;qA>I#wF)y#$9vDCoT10V3pgHgq9T}!W!k_ho5sOBQ-hcVe4}=IkGgumctR~Wd|*D z>94&jijsH2y`!hcloPiT#d1@kT53ZGb;i&FA(OSx&k~zT#~KVKeS@xEu+W|v30T*U zgU&T=*&Y`hVT4m-P4oxzX0iGb|H|vLtJbL7DxmvUakSy`Px4`6B=q?D z`?TQ_=(ShZGrA`_OsMTE?)m{ul@B+BFcsH^A-9swWm-10K1rT`3l4M9F z%OeD!VwAix_7pRBkUA)%ZNpk>!v)a%yJE2gvu{JVlkz!mnHORi_%s?qemASw*81c; zWK*O)$~eZpfF}Rw6dx5w?&2>)h~aimPLE685|MW1x3n|yy`y^fX^KVSHdW~UGImsH z9CVw>Nx5PammUf@7#}tKdd4qvpOs0m(f!UsuW9jR38QHmJhKAFn`+kHaCUZ^yR{Dm zeLVZH*@FD%tbrS~({u4C(TOH7W+6tR7&2XDKf~-p0xq;PYD-mbfaB46P>n6A6iqCr zys&6V*mMCB=(Daqv|29y0A`PmScx929xdG3t;;puTWcz&`bS~m%~T341UD8ED!?)%WzWA9;F@Itz`qAhZJzoNtUwaqM89y@N^ zKR*SkMw(0}FwN@NGMF{PLO@SzA>1MrGC?{MfzcF#1AyP+PC%4BelyIQ{;b?P<}I1) zU1d-o6~~tG^Y=~m31dBL7KCO_-n50m$?CB@)~4~9E+DR?tKSrpeXN4s0lqVK;~zif zm+r_kn^b9ZrrEOqqZIObc+TXEFskE2&yTtFQ2EbT>0a$%b>nHsc68^8Wq@hN5Qn8u z*)Zyl%641z`KkWDl~4Xpn6+bbn|B1= zT6Q-8)W569LA$gUv%>@y`}E_ozcZ`g^1E}$p;T;tf0w~C$iSe}scVZ^w|N@7CG8hZ zX;l5*@{qOd)9gB_?buvr)ZlEjrUFMCg`5 zC@VgX3@K67pz{Ngw;f;vcKId6J=%6S$8eg8jYDt|X9R`{NzGT(iXHTSGtB0skfVx8tp;zLp!YB6`OSW=>+D%XfvqnqXC;pUDMJqdgt$K6F0?g z){(lL8Z}-bb<9^!muiP0e_pL4jOgzB`}o~L*$Bobb%33AZzLK!j4PdeHo`WB$Djdu zBsm=pOYi&yB)5gsbpWphMWxTIyigfT_|7R(6c-u`CA;y~)quIhh$+MAe$$&pqUU1K z>@*VXPSg!1=$(k!u+(Ru+qi=*p3EHksOIf^U9zt&J$klX%myyBPErNulXuxo;`RDl zZ@+4AT6spi&NLah(En&I_(8%OS!czyHyC16uH;GE1hxQ*~4 z^jyX8mgxE!yRI95$!G5=HVD>h{l{?%_2RhOixKW2FfFX!YH}W0W6iQ!4C;{GOUXew zTPyg|?pkkF-G;+5RjE-=ZOto>rq*(&CqL=edeX`D_~1Zs^EzIr6!uD!J5_^m3Oa_} zP>~J47aRB;o?fqqR24J0l-bVsi_3Isxy#ffqgu^w=Byh(8un`C#u#;Y?dXcWJDPk5 zQ7y(0=8O#&5%DM|;&IugEy^}+E|2+A#+c@&Cya&FR&+ny5_4xwESTA79DN;SF?JTi zx!FS+%@fgJ5hxiAs~%#kZS9vBrLE0E!Zvr*!HJy4Yz);sHl763JcR&Ox`Mcrf7=)t zWp1m8SEE&tz(~`X;220`#Upq7MA-An=CX0gQHd7?m7xBVN)?dgTZCc;)sjgu7%~wW zQESIF&Gj>|ilV>QLFhlo6d!In$Gt&SJxZj|HXj?U%s_s+OdYXW~R6fD| zy#&%9k^A(HLTre=JGYy#7^{$RL-$XL$BIWlF zT~}KdT~Y?^avyM^G|p0kci2PFs@pcT<+L@kuE}PU&*S1E8$1(jV^~CN>?3g$(<&YrDGa@l4F<6QCOG5jf~G4H#=6 zBXqQ!wpV6wpo$u6rZGk&=8*g7%6;oy349XEO|oiVEw&oOQ^uXrB~LeP7w$5>8B+xl z(3f`_xuodls|6t6ZCV^QukAAAlOJb}daLG@_FYcSTnbL_x;0>V2rU=msgm$%tlR68 z`zP2Y)saQNBcA!L2?hiWI z-e$|s+;B=36Lby@Sn-XXOQZ^7%2WnN&VI#otNtqNu7md!&;0u3Lz=xBF7Lk=Dg-^AIXPb+O70dkn1q(Chdu+ z<+}ZPyk-AoVM!m{g>bL(=4r2XaU-LS& zf$I-b}gVKhkX(gu&17#=bq=o_4ODnDT=k~t&AJ^r_ za?Z9{`pR!?c%7!0`#?%qkbKO0D7WRMz{&yvXI9i#>4qX=Z*9Uj^2y?{#|5Y+2 zxb+{CygQf1Yv#9K2-;H3J5!CsI#N>h%JEOO!>SvJ^|7aUrxVI74)osEUr1pD6d98~v!c-|phbc{ z?-I;qo?VaGzaX(j3)(jcTIED@lwnUO9CgVgdAu=IeKYsZH<)HYJ6G9LtLshj?^%2m zpTZaa-tgx;1J@6p-1k&DNoV>MmrxzsV{bvtj7d|o?ByP21Z5IU7|A}XB~*JhYQp;W zR|B|3M{3^s_szwT_B)$e#og52hS2tm?;yTX^b8C@3-a-$yP zenW})*+lH%0l@XV!|7Pe?@F0GVae^HZL+h&=5(9pNuUWc$->a45W3CpW{(-F+u~HT z@8(@n$j<6B?uW{2zRhs<>1&YO!dFx(-`!aZOK;ta&;|V7-KsB(??f2HlfEJi6tr7I)dajDRw!sJP~Z7KH3TGp1)li*ZI3* z-isQ5Ne+B^dGOly!n1pGonSobWz#n-Bx4GMt0#|ZpA_A-RH)eXu%{o?pI~voTBM5y zqk6pFWB!TzZ^H|U)Ob6bCv5^uR;=KH5UJDJ9>)6{4B)2*( z`^8=t%sAKO=8w|$r=0GnmfJHPb(P=i!|4gxS$P$gs~4&%Sdf4zv_a9AYy@$X!n)<3pP1-YSnUV zPp)Zgg$AZGpJ1tG*IqagdtCBO>QoAEZ>sgWp%KcVvPbH@^%Xkwv#xKNt33=z+!=01 zlZu{}da!CU9Uk?Sgz0)etF6XWC7^kwQYauSZQp%D${)F=8$Sa~hrWpRSc1oE-kDj% zsXv3{a%ph~nY;4j$aPV^=^gw3_x7-vkCqPj?@M8?NYuU8>di0*2kPDQ)pYWh?Ii04DQ+JfdLgH`!0yD%LHLp&a` zXN!C67WXZ{^sC=?a9AcVhv@(zUjDvQ3C|y$8F3J1)eN$k%}a9FYBKmx(71R0lI^X> zpUXZBes*0eh^O-Tfp7B`5=GLZG)~=!$IVceC7#p4I=_fr6pRkuCjgrKt{i_uzapAv z|4H?dZYVP2m|qNY!$F}sUwTy1W-V3t6MOiA%s zGH(XbNeUhoe$~WcgPaxQ9bxpU6MCde{YY=`lXMh++uCyWoE@%(GHz&=DOU*1dZ*6k z*US_!s;cIahb%4bztGbK=r6r-EtF@uR9k~;7QEHW+C6V_urJAlM214hWDAtrkUW`R z8#+vf0Nof8xG`i70d>`@5qqLTjE+LarW@Bthg&|NjN1PaS%G zyh6xK_{c0Hrk@*T3kmIuDOvnCr_BZ>E(D4ItO2LQvDkf*^?epj9asRi8-2@l^8^Y&~( z5!?Sn8->dNb?`Y)lB?KRjvStrJIB{0kFaO_bG0p!f5iR88HE*{UK+#)2i=i`waeTpC{FjpmF;SLHAAW?nv9rV2nG@1aX~Gi1F6^i3)n zEQ?rYVOHci8|^B$BjNnGZ#pTtBL+b90_qA619U4;CwA&?>ohDg1e2t9cm=&fv;I#m z_WYQw>&F7IQ(T+LP=`Tix#F3(qt$RVs>jTtN=uovep2#2{l-9D0<*&Un*B$9MxSn* zYP}(gkNWrJrN|tNyL*RS)f_erZzENRUcsLnnfhbLeSSA2rKHseW@`v{{e&KDrR<5k zO?EK4n$p%c)(rPrpv8|Pq)8H3Pf{cgJ=G;qEr_HBlubVovS8&g( z9csp8tVh<&=BjYHhK(0l(PeV{56vI=+^?Ng7e$h2G98sU?j0Esfln=?9|ODy<*%mt zerWws_As&sXbOE_C0cT6iq1)DecJ}4Yk$@7Vsvn66!tJNO_AvUbyTz#E_K#8+`$?C z6cRH@iL>?1b1el^s#L!cyj_a$#P(N~-i+y~-8;hARw@Q9koBpz~j z2|hl;$|o<;g6-rphT{?(yBw~ruJ8FfJz$u$Pf&gKdcwtNyH^VMKk&VT@$V&!lkH0I zG-Dp;(+o1Hv=$n;DBy!dCDSp<@EVecaE6o8SV9{bLi<#l4 zYCW3g1?X{fLn)?8@mlRu$6@xMNFMkV6TfFBa&U=HZ;>FzEAb-uWP3G2LHTLXVAcqW zMcN9eO9m$qP^|Ikkiiby%&k;$I(}bMZ#6GMiT?M-<&2F~BjBwO`D+WTfqI)QD`|gJ zsE~ic#HU+YzgPfui_1$#>9oq8WyaFhkGQsYQ(Qvn)VDzC5P&pvW@9k?M}9w7p=)v2JgHVU%N(j@-0{S7(##cM7 zqIpS91IE;|f|rsl#K6d!%mgm!^{uEL$6Cc*QHh#MM1l?iWJ?2mw`~9HU?A?oL3Eyt ztF7vvrIjDvRfpr2pM)7sG^0ZN?!V2=@YqXuZo+A7tvTl3Qi^2&e+~s{+?i^u8$kW$ z`wT>UtODbD1ZY#F7%sI?FILzMA_%v1>48V54V4=|Xp^=zNySW3jvC3%mmA2KrhxQn0-m@*U6R zC8}rCy4PfFP?NQTc23RF_;j$kEl^I+XiHmBq}U*MdmP!n&(>s0nO*iVRKKME-~{92GHFmmWHh)X!KQT;v`_Fhk1HWOWa8 z78*>~@wgF_88}slXampAvuDrkQvKA24L64}_Q)h=mgKcYoYP(cZb#x`UeAV4=h<|K z!KABUx6dE_NmXjpBiEWCD0ma!>K+UmgJV>fwCVkhNv|Eq^hoJ6!uS_{z51&Ltl9jM zsSvLl&nxnuLbs}WW7#sH9mF$kCU7+Bz|z^o!stZ%Qam4kt*Xd**Gf`Cb`A<5aHYrs z-mK=nS{Mvt?hvscH@AlQv%G|E`fBNP^XI$c1G!5Zu--$)~=xM zMIi+g<5svr?PmQA^aic5Kx9xEkE#f2i;1yYSPc~IhO(9%(Y>~&f;(IOcUyV8u^_HF z#^4|I@$6Hq2a<2|VoRsUuQk?nv_0s(gQV59X_BiV4xZ81L3Aq4pt=P}=l(*~Kr{EI zn)O4jUI@bW<)jaUHL_?!y~})UFfJJk8wU!?iwQwnU`+X^RR(>qua?UDfCB2malQd4 zD*b8mA}3y4KJEQO9cnI0-V!PMFa%0eA+A@c(2^fJs&Onas^}pMqXWF9(r#Sx4ler= z5~r(DkTZN^NGwr}kfg9o@VWMU@cr#Nc6&FK21SWYw7K!AIUKOGL<(h~FeSD_-qsj7t?d0Uj(V~K)wR-A3=T$$0*4DXF#$G`H(T zJiN|%>W;&9rpI-e(uJaxd1Vc>qVR?JX;S&5IVmr^ycPW`aWD8do4Y3X(k1CG>0b_2 z%Y(%1m3EfTR4rAhn&96Yo|_YJfw*L`S6~?+lE;1Jdp?*feMk12o0rI?&Y-I|{(BuG7c;rK22#6+X(Ft>h*qt8`ALLrGMB!l| z8Cv@*n`yx_$LU!C3G@?5oR0ZoYiXR}Do9r_k@X3b3`EA;hl|)bp`L6=O{+G+z%)l! zO0u>TiEb<@aw$xAZSL99Lpd}Kg=zJGXCc&4yl^L|?S@(*M4NeLr`?@;!e@R(p##5J zBwFd&($%e#JtBVZonh>J$U6RR~P+(Q-M4ELFfx;Whdmq&hy5;sy?g26>4!g>DPDue`NS zS-)VUS@gw~)M@m9IV%XU781(lSg1qIh3R5A>WB+pWhXM3Laj;w3hnPv(9*%B_CNH| z+8rY$N*(3h{qC1l7)edHI(l_yjkC5pYf-(btqwbZcz>{ zu0CRe%_dGEf$lV!mybKPjP4>z2U3TxTP+$hE&T(Pc>ba=<&aun!~w8vYH&O6q*hJQ z-$|>B!~oOl=Ov2%M?p_+@W?%>_AYu<49UE)>SpUSB@V%CT=mMY@)gSrFvuvCwA?2w zOg1EFYO;|QJ?U4{X$-Fb!p(?d_5IFHcKkzMoQBoj!RufjF$W5)h&tOLwV6h`NvjaR zqY0;ZR&EfPU*@ht0dy&ZZ8rYBl`X_%m?La}>^kZ{0FXElvKpCpf4>q)C1DvL6siV% z>D-9AU#$bU!5FaoLYlmb@#(GDxkTprtbe57T<1%x28;00RoX>e`Y0>^)ueJ@A0IfuhYvpqVX6oGDbHsF4$zP%07bM7un@pzHDj}6 zTP~fsDbt$?Rk}&`ts`+wByIuFIh_sMKc9kqn##hVAtC92cOI3huI5^%Taov6GZix57ID<|lH?~8%4(zNkd>*_ zDYh$Rw@Qu+L?U95wyL^HoewubA4SVl8AP_m@nTJ~;wrTc<&44UgJv0gAXqZ1A2U}< z=@*mcE7ISfzmVN%qj@Kls;%dP@8s+4%cY{hyS6SCs)UF@yqMIUtF2NN zWk}mFJsirUQUFp95$h^8C^SqL!2O2jmXfoYl$_P{-yTJZ3E*8gnBKObJ4B%pz5p!M z^cU%uDn>q-hwu?rWkL0*IarAqJV4VgeEbMxG|micEH~$nS8884KFI^sOt3$+{@&EG zOdl62L_6H8sk_M7;P!6@9u%uwuH>v4gO?EtVRI^wA6Bt1GgzaUKJj1A;;3jDL4%>ROTu=AI(GFnNHPQw7( zEvwO)Qtb+d)5G6ezz)pT%_DMHoosjgfMOGv7Tys+bl_+O#D;vTt}^PXm3YbA=6qsR z1hnjZ(?5Y_!zxv^PF^j}%;z^i1}dD6L{4j&EeuYlla#kX(Ns7UTh%0txtjs4>!k{o zOyR?zwdE~|s`l459a7m5znGuq+3Ec6CRTF{Dm>*cFbNo$KyZ>afFuuSp>D%eLw7k!^p zFzOxUR)tUFx-B6?q7v@N-Tc`81v@08j_C^=xx>7Ee}XPvrwE-V{Ib*83f&uRW)_SA zg40QAH95wdPUqR3s|Jil7eKIuP+BqQ94rJcd}&Rm=SZ_BB;aDe%&Gct!3Ig1GpOFH zq1(3pF&WFoCw*{xbRS3}0(h!YJAjeYS>~9Nm{xcRL`_*E<^9=;ORpRiL#D5@=sK4! zCdi1sVHHAQ3YRWfbcl2jzH|A~N3aAtAYkE`bgtJbS0l^QiaHkP02B)*BDgesMznKe zSES)$8as8&E|f2b2303%>5V^Youmc~-~ye_^mWia0mPP8N=9&gv_RKO8>!Wc=oE2q z;m|a9G%w26mYS6H&XXW>KoqV^7wm;xkpNUf5?#E6m*eFLp@ELt8U(hF?GXY z>bBat7%3(`m9ki4ohT}pBr87F{{g4b5vwHLg(d}a93VfI5z>>Yk6P?Wp{<7Mm=E5` zsY1_IXpVcvdj4sUWPTO&1?}L|3Bg#3jjN*c+;*CFnqAyJFiLtyNBh!kU7E9N0EsN` zU8eYPHNeWSRzl1a!dsLNO!DbBsbs61N6pc5DBCf6`GR_vSeQ?XKd)W{tF_4%B(5;p zQbvG-A!paaX;38sCt_OX?G_KT0^2|co0 z^g>W>&a9YT5H>1I79gE37v}cmzX+3;ZGKW;{jyO1>#_gG+L=IERb1;|F=*ldc@YJ* zX^eS)M+P;Df(*tn&j|uN2WCV?Q9y8FMiPZYP-2{j2#6En6cRxZY(RHn|x?%G{vy7x4^wQ8MpZuPmh?>(n#*SEj@?Ojhdn$)_B_q*&ddR2=e?QMrt zr>GQkIt}O481-nvU*euB(a!$?x)1sY^$+FJJ{k1U+}l56-dQx*sPhb=f=BcpjBZOh zk5WZEhZyR~6r31pW~(7~Pg0o9UalJ3Fol^Fs;-<*Y18b#+@|a}=9eSg1O+63mhAZx zA8z06lsD%8;iFHfLJkj8*+_mz;}tg9d+Wk4zV910<^}In{uNPoLUvq)jYMqiYDy@P zy=AJh*tnk=>6(dd#n0q_!W`-RgaKw$6(sFM7K4<-<9JA-`v4L&YD(036unn=#)j?({$#I~s!A{KS#Qg?d++_y+G`v%nl8cr zXpka0S-aqwpxr(6yCWN{VdOIq6FB`{kDJ8cWeC(qG1?VdYW7TC4De(x>dpR!yhDtW zg7j7oCU?FRkPa{pcgI}aG7Y4=kcJx$q%vib4+>`&x*|O0fw}=rYPl>~FTA`7D*gFD zk5U9}+p@sTBmB(d)BWy#dP0-u-v1^b%=Lj}e%fXRH27FsZsktpkHC$FSb?_Qww$d2 z#zX06gSrf?$JfWC={F!FxXK7!avNW(_9D{$rm}RCbFu5rO9E0T=D+%gOqk~d21diS zGzn&%j=3-CPX_YWz$$8h3(%kh#`gMCoj4$J%RX{pC%EO>cWZ^$W%} z+0^UJw(FHje{)u46~=|58wsucp9X8r?68Qa`Oa}Smq~kN)?WtBsxha@w*3qA!|LLIRlV}%LgfgQs|6e^fHvQ#e)0c&E-CVQNcpY65tTaXc|J#RrY1h z%BjtoEE7d6x>5gs4lA{@VS|P2ZqFh3a8co^@GZyenm*Ut-2pIkL;s3+%+jXiPoU9Tp{{)H7T@Ss}m;K(E`s zdT-k6*IjqV;!P{c6{9LH(W5Q$cEXn?6Psqc*>J*3`h_33P#`W`{std8u_ZN4G9VR5 zU8zx-7t3nA_|%K1O|PQVq=Hh1`({+~I9RSe+HvMqv(pv@k{R(0hXruUSgr zuND(~l6%s)&|cmN$UcE+<@+-`OI&2={UvwD;pLj(o<^fyv-!8XK0FbG-f098m4{PO zCe4t^w@rd{P!<`R6qWR3x{H+M2k8VjhHdy1C7Q$O#QFf~1bS%j>3X8)jy*2~($TS_ zuoq6nrAoA2_4@J|n~GB)8YUVrgaVojWmgypOS@(2S$j~)e>2kybI<&nU7wFNNlOug z&ISN;Sa2lMp3zXNd#!nr&QLD`!qXfK7vc(jDG%i2V;bo<;7d?gRCr>FeB4;10%4hC zQJw*{C+l|Eq+dhMWKgu(-L}8D)_)+&p2$X#73ac;C)koNyx}j$BIiEzyPx0NpJAo_ ze=3H|4abW=w!YQ$S|wYjDn3>3JAu|Kdwz`H2N282pvNv_!QF9d_1`{uv9wkQ zqeZQfmr7sVu-X3zzMcq(&Ycn#^62+THr{^IDrg=3JjLlAT!zwg4=%@td6T|^q#{d# z$+;`fRR(cIy*m`fvBihyzxRC43`{6l1^PtO;8we~Kf-VWs+3@1BN4VCu4wxmLmqin zlTD3|CIGCmHU=ioQWnQ-;yebfJ)f@K#Qq>YY0AMS{I4{}hj$XUMBk|H3LgRUP>APD zPFv5IVNPDhsTWZ;9t)EN3=~QT0{fcQjj)|B&iBBTR82uuX>^CyPq>cFH!FN5DLJDy zuLzTF+hj5v;bmZF*q4!LdbWj5!{=P>W3KBpx+1j{_s`bGrAX#Fk-^8H7H5V0)0rvy zmLz>1h3K+j%-GRaj?)4y1l&M*6gu`9DpC4eqf)a(ovw~CY$2l&D+^!AsFo0#`p$6t zJe|bI3cD)!)@5!7t<<2M6i-j+Ml@g4OfCK540_z2qox7^6~-` zT_s4|TB$Pj*OWX`%T)Wj(8HR*rnpe8#FP8|JX5M0EA^hl@2@;gwjUFWX~v0C0bxn> ztRPDxS3e(ccv&|WYP)a3iD2P`pCd5}okvCkdedMzEv)}Iv6N7ROfO$D;^S+6$jhWl zK=U#XnfhBIW=_h40y2GNpdbdz!IsKWL|mku;2v;#0*yp*dbo=VBL+hvZ0IP(rhFBY zuNqL#CNH0b|G+vYN0E84b-gl4Jju{`~8gggW$ z7b6G-fYiy8A(WlPWaADN$JIJA30$B~ zi*M@pEEMswtAX`|UjtI+{3`4Tj;Cp28OkA7A#4hu_w;eTwGA&T&bHF z*qEfqML{qnUKt1~89t^Ngf!mDLqU19G#Ma9G!e8AGqG&LUydh*6oEzU(qjZ$WFn6c zk#ObU%j@@Q|5lSt*EZQiZAWIu`@6AUl^E@TKRux--{I4t6KV|p3`A&E4Dy^{?FFJY z|Lv2l05%uYI5STbNowYuo(O|r-NyaziBzqb_WHF$SKoueg?SoKd1?3@G!K_D{P9C; z3|_)bjE1svnWZj2q|RBD|9V!0$sYPunMov0GHA|Q;2TBcS)HS^etN2#qDS!^qMC$YIf=Wwm};R>7qgC(>Pv zLTkHloOiUYo8Bo=osY4b8QrQjUcaDD;ey720hN1RhJ)$G~0w z@y2a#4HB697uo#so47bVEe;8}?ubQov<7{oiSnW1JOh-ccRvKeWD%#8ef^-@M!rxI zO90eK8&w1VS2P595e3Rv+mm)XIWBVAkK(p7`+P|7u1oSYf3) za2&N^f5Ik-qmQ8)r}3p@&F%#K@T3_Y8#;B54Tz*GEaQLh?`f>#0Ylwh(?Tn?;KdRz zo*l6g(JH@c8;F0>ua)KvAms`v{wS*_l{GhRJKme1f(EP2OB0#SOlrUiN9OpHjq@q+lG5mR ze|3!zR(Q^)RH{dJ$DM93KK;NK4%0-BmEPWpD-nwps)s>+8AZpunKZ-OKfAR`YL}2J zS72yStPjqrb`XJs=NS|ejJ=IusUiDngI1=e(%lvwjJ4~N~-8FdG({X+Eu z(nP_7^CC`Nf$d9!&s1Fr*|Q`_u#RshS)wBSCJe-c;|de!<)QfDu5$nN@6fm>*d^vn zFz!A`SDWBmMqMh+#Xu-~@iSwgf#HCm-70ouX}v14HOr&_ioE2ntyf_i709jm=YQk4 z;9B{qt1=cN%Zqmd?uQ+|@zJl|r_F5qKTWjmYMT5UD;PGULaRTzsKLm8uO0dC4SiQ| zLjy-B;~|FKQ92DjiTd&1i0EZvwJ}X~ie^x-zMCmZ4%BOHo{~0M!b7#A@kHg-{W4kr zqw8Wj@42rP@3Zj~G7;9vB1oOb#yg3(5)OgvpFcMv1Zg0BnYTm10oFU+` zb3Tk7T-}uQUlc`@q18uJkoA;zE|BUnWwP`5?CPc0MwKpwz*O24J`KNIac-;WKRfBJ zZbFcZiD)8|Axnyb6RBjup*_Fj@0P-wO;1%$tP18baFThHID7un-Vmd>As}ipSFm$G z+}c-5=d)FG!Z)uPrLMLQ^T%o=Rr4mK#bC6CWKg*V9HR&nP)LfRCej5W7TY^LipLY( zY!*XyDa#kD23dBDO?7v@eMv)Nwyzmc2-InyYAh#~AInj26s4heFL`k=z0-)U!1Tj6 zG9Z~~f$kw~{HW_kc$NxQ_4}2A(eV`wqwBrVyK2jPh|aSxI?x<%g~ms*2&s-GQJf@- z(NXd;gVlp(ngVk61fx$D`K*1KEh+)HWX(=sbfEk8FQyEX6>Zm@m%tnbU!o{+9*6Td z3OgjcPn-*;1%qQgT4FWwLxqHxPB+e{_TtQ0H7LJGz1hqB#%2kc{Dq(*lovB8KnbGf z3{Cxm?k!!%e5(G zY?{*O=dX!I$-!ldnl5{LW<^_sR6~aa9|(*x-In(o8+Tp0_3lvndS&qm%WGk&DuM2)`7T= z%!6Q+34=?_1D!P|-PN0l$alk3ZfZX6W^gy}u|F1yHG+fNr=axZ)m{V@lQ~KQ8}IZ| zTE1Ln6RoYYvZC)GzaR4xOw?@qoWa;Rh(5pTuNIEehA10g!*ng$nAM-vT&#@*`Mj={ zq4W{wtWwfL=RUI8YnGm%5dE5^6<)N5494$8Ap`7K`Scp#b0Pp>Y8JILi-@D`+4as* zs0pgnP_)sk9Z$ZYSNnJMTR<9K+oqV*g;f@v=|1PxUozzm(q5sny{ZJ;2P+oPUp_Z9 zl|xtLr&s^;an#vT9*ccFEnJ*prfG;Cdu7 z(BP^w4anGo^2#hklyL?kKc%N?{H@`Z*)`8SaQy`b;>;DP#3*%EDYfd_%bQArBIeN_ zJ|WoY$w+a2xbHRuMc_;Y3WOEN4lYuVLs1)%Lam9!ZiZrcb8TagrC39wfZWw*e!eAK z$bUs;gi%txyF~X0rm$dd$IGcTpa>t8p(e0ymcz5E_o(p&^i?_s_e}Mem0|dHX)5x4;?BsFB0H8cjjoD!Sgns zGBk**Xhbaoli7e{0;(ttzLE`0iwq$QhYh}fPS=>6iq{|;3H2=;wd;j>C++=`60M$5 zP1eAZ6=EFZp~zg`>)3z17x3!MtT^hTEJrEm@*$;_%B%$%mkPa$>^y>%;C^)SyLAPN zs7eCxBt2b+*evRlNi3qCJc1fmwpWm* zk>&vMC{CXP->2dT6b-k3b`xr`-4mk&?4_6usg^Fxh3UfpN(xW7u=wStOC(AC0LWe{ ziLh_l+Y25LkJqFtAtsMX&~2&rl3Gv*j~ ?nH7O*pj;TV;Pe; z{77VI)O}(l7T3l|;Lx>6nUro*F8=45b}Q4Wqk9_S-5>~%?R`+)g^@0yLKxWJ`L&~v z)w<-!#>?Q(5iE1``4TYX^Ql^|&5`Prt%5~23f-Sn5buso-?eW8RB30OND>zJfA*s-XaL+mQReioQm8|nT&aEg}57NqJh@3vhB<3h_q=YkqfyL!iuM=K7jYY?z8&IuQy$2YAuZ_pX*T&6K z;fgo&-8`08Ui6qJuuRw9ah?NleeDUWFIUa8dI;2>5(Hlz^l$Z_ms#0hOyr0(= zj=OT@-xYr=l=Zbd6o3VZqvO}Nd$H$J2lsrc4y7AgJycJ`5J*;b2b?2F0Rq0fsYGN< z*ONtiP@Oq<59o4tf7jd|CT<&(FNG}GyU$rLVH!Ax&DeY4u5Y(^rvjie;w7Nr4_Sbk`nB@)>OBY@C#jG^ zK39T6r)sjtm@6rJJFqo0dURtWVa(aLsDfCRmjn-VfZ}8Vb?ny#P$vTcWpo3Kk_rW$ zl-Dzb-jykeMBy?NAX1zL$)=zDB8PW9`_4=H-!h)2A-_WLN}xN!!i%qQQG6H3Z@K{M z)lMWwsz%Q*^;Cdffto)5fY7I6bS8n)wrK>JaH*PRUw+o)=JE~T7Bj4T%pCZZ&HvZ{1k4szVRomj%e>}Qj zs{h_|Yz(NEJp($kBQDN3qSco-{WRF{IuoY%!5>#0C$S|>!LEW|5Uu{Ajxkj^iE%0D z$L0o+R~rIiTtn}F`N!vK)#J7M_e}tFL*kw^_W&eT+0XzwITF;mRbjX!jb;@w_WCdO z{~6w?dSz7Fow{BE!!Vd&>4_TMG}`|D#N_%+>fn zvvFtMqMShUE|t-Topp|6#$}cLc0uZiW|Xq6l6|aH|0SoY6D|6$-M`Z&f0`}!h2xyF zCjZC>Z8CthmtmP7l!o4*&Y?X`YT|UO#hNDkAWh-q)IXQW9S?OOX_GS=5{QX-n6rR7 zR)1|o(loGE_(&Xt>p|++FH5oX?j5io4e7_$0NC0X=tV##YAi@MCn@vo3#H-gD7y98 zTmu_IQsA4fK8mTkzhsp7h}rx_MpPqeKepfBj56PirJXT)@~4NNbmJ*kt~+^RZ)shx zeFN>o@W*Sz6z_9h!+l40JgCl$CDZ>XApP{iPa1M;lf(BIrvu+vcfJ(C3z`=#IimzW zN6Mziu1S^0YlQn(oy&JC-`J`_fWWIV_llEhIUfx*I0?p%ov}gxaeWEN?!9mOfm51G=vFOzxI2J-*BN{5*MeQ5DBS}+?^N#Ry?xAiZ?jwN zW;y=Awzd0??r_o3501UKfyhhkhBR!}io7^Vvv4=a_Y{!cQk3p27#b@tuHaGZZi^XI z1+;?k3!K=wY9FkJ6Xi8z@AX5{@L<)1FHiPrq3NG2fh>f`SU$D@`)ZGpE47>=+djR-x9hF_84vYX#rd|5_M{5UFF zA5)jWZbj%8*f=Po4F*U`4a)NQT}5(x{q7-kR}^SE3^?W$ZAMjX!=(T0dOP) znn|IA9(xGU1LW>)ysJ-(v`xpI=g_iARMd|OKN#1@o_ByZjY>smzjX5%&L6Ve@n@as-{ROIOz72Y=MKrC|D=r0Qzk{i^C zm{IC4BGa>nqbC}%;b={2!MP+dnmtl|ycDqto7TKxXy{wAj`~shR~<*xWr2|{B>GOJ z(xZ@B^eUeaI8_@25;t9MffJO(IxaXO|J7nNyA9h_GoxjMFh-iuqgJWtk&9{gFK<0E z-OJ65Qx9DB49Fhs#!dSI>co>e>R!Y5CL0Vet}pnG<1M!yrqUM>B6Bc`R4gEoAyCu2 zRUV}Ws2`@3&j7!}Y<`oMUB|)YzNrJ0yn))U_bohP{W1N#R|zYQoQKW&^PhyDAN#-h zGIo?l=@zXZl^K#e3d&XVY+)X$&z+V>3IR_lFAvl?*nvC!Md5RCdhi~~ZhTu&xQ$ERj{cnQ!(!`|F&V-WP2Oo=dXZwUcDU#spfs9>0pS+KnSz=gTDf> z+R}4^#z%WX2<)dJW`zO@3pgh6f%WJKiCw5AlN`Hj2Aw3+3sLVRpL1UgE+$W6B}BDK zo5Bd5Ml?baL*xR~mAf=NH0`)j52_43f%c(BMS#@En+Z+8a_eGnd zhC7_2#lgFp88CY@kKYMU0?c92v)Vv;P&?&<^UhgCqG@6em!N!x30@SX^Y{dau(b>2 zi9_f__$zkHlg}jV(Wl1|G-#|#kUA7tXv6PlCcDXCwVgoP1y!$C?<57tKx&t&% z^nxfn=~KEn=_XeXs@&CyiZ@rK%|IFkuel+T3U#sZ=`3;^1dN*Uv(8Z zX-acK-^zx$;0CA#;23K<5W~UhZl1=0_HP#KCR8kgbaJ+2^~8=z zlwm!PgFqV*wNz!Z-!z9~=;|@7H9FuF!`a}=I^i-9C&xh_op8mtj}q{*w6;2)T z{!HL|xkvB-8W|-NB0xi>Qc7?R(pN?7j3N!&Zad`k>>8KZq&pF$E#K~2h;hfk0R5S@ ziz-Zvh!=d1asg}CJlni6k{CeYAhT6!M}=&?Vz4T;fvDYO8U>?S`#DyO=7f-)vCf~| zQ5@p%e-${_G0oQ-+;oA8eKVY(T-|G>ma1ioDh#gDkzI-c?`9q z)yk%JaxuOXPE5MhH(Y*X%HLD=5uz+Pt2z-L-|G0m?DFeV+u<9@>2Ya2zFL_L!L%Tj z*CZLYmiC}n%mG^@jA~u;tYh*5lquL6A@?g6#Y|nRnCgX*J11EB~$K{+L18MoR}XIo+N#mm%nj)Fjx@Rb)4@kVE)V!w(jj;APVxPqUP=9)rJqLKwac47_!FY_GbN zmMK@eipgx#Q`UysmE<5>>)!KYZ8zWWCz{4(I1-wX3d#SVip@P|FGSP|?XE2#-jNlKL&i1@%Bw^Xk%R627nJ4{ zg;d23NIoX!h)fYWx}qe}R>5xScG?1>=lC3i5QPUq8Kf@>=!D`St$XIO_s*1M&K5Xb z=1ic3hK8m|ci|D8QQFMQ#_@%&-W(!U!vQS$*0eKx$+?sfUz{Qf4Pm)gi&6tGb=Ol7 zBLL!`^~E<>DzjFwaQQMHgGG`!Vbx-BQNSJ+A;1e&sZ5eeEZl>*XZLt^+sRSky_DEE z7t4*!H;~OFXm_uA7*DOp2$r@JV6*otdBp)jnVS zEVHuViT=sH=kW85VKsg|?XIT5L(L!%hLuE%p#;)(<;!{0m68c2wF2iADrn>NYXv#^ z|2MBMv6me}8R3?cX=+l^`%mlP;-Pn5l20QUMeuRqwUk+5QPuU9r;4+OB zwA}gh5TUjcbeaNkMfGX$J%J!$=2nX|slM#=gonUD(Z&W^w9^i2_3~k@rk--;l5VF2 z*nMuv*72&uQ~h2aw>Mh|+)aJG=m{oM_MK9B34vt52`d1QBZfv&U+QJNg_6C3^(f0` zYKz^$?oakQot;xKR#BL4sGWts5)CL`_e}U4PS_Vw21Rqp1vbe{g5r#NT4_M)i@H59 z3z}A7M3vH2daNiKqNPI`|C9X_bp^}f4Cd>eAk^wRo9S)lmGqc#Sh!9Wo4E&=Q3rj=Q@Ov~SPaxFk zdexwqoY$1Wq6Wskz%{`Am)|oNxN2@|0idea*af^~7xn)u#v8gwO_Lffj$zZ$pgrL^ zJyb!w>XIw`wv7tGtBm7)(n&+vQcg{i`X`lUDl}Pkt_}~p!)-@Em?J6yU_enDx=rH; zGa<4jHq5@O1ThsOW9Z;6)Tu~qK44>1JR@@$%h>vMNc2eMO`sOg8{L400K!l8K`~b~ zsqw$rP2m?gw|;rIka%YE8^6`42p9v?oyZ;`kc4 zPM)l9=Ts-1M!2br>Rs0NVs188h{45}B6*^Ct)haM9wrCOXvq`!EBO?;!%k9eo;wKY zV#BGR#Es<}_|cjxHT7H`0KbaghULviJIG$!gQ!>6qT~MsY=87$xWrfsO*P~9S%nSC z^2M6ZEk-i=B?;Nk6e~MlHu&=YPSX!+N!I539eTp z-ipH(|Kv&8$N~x&MKgOt)6FKC@Z!3K4!bLhI4ZfJL0*I)ld=!h%c;FiLz;n>TO=4A z52`b3^yJSn8nTroeOGMjyW)o?HBURXKP+0FmaTf{nKIX5l(o(!1||eVS?9Y>U1im7 zVBfMKs7>xb_#Do8=^nqKD|vsQEjC-CQEQW3oANZOq*;|s8%NP$osHL39Fw@3q+GId z-~8w~PEe$d8uL?GY60aM=61m!i3`mYRTn#@2#H2Yz$GjM1vz&ggsc7~aAIIcSD_WP40{?R7Ikwo`t8sFX*Xtzg0@>lykMWsBzU8B2~; zQC1V9nTRc@cf?oqxw;nfNb{vMaKhDu<(T#~_{TJ(8T~(e6~itXclMs zx^llu1$<|* z!K)_E=-e8u{Su$1k|_e#UF9(DgsG>HSr_rQTm?iaZK9czy{_qV!>ASPMY@NaJ79a* z50h}zFc&1p5+5Uh%$g>U#X4OWKtK&|0pKS5^fXtoAVy$9I=m}c>8#CRqL^im!N<_g zQ5y@LFzzmYi07y-j>^C}5B1~EKnZ{(*_H{EawBGcr!?= z49ivBvF~TD{(wv`fPntu@K$&&ocG6)@ zPG!NmzvQdO1%QXLUW!v^{(9T6ID!YE;IIL{<&D|X?DQtV_*VCKVyA_Oz9 z3lGP+kG~()vjncCLSfcf1mqZI=dYf+3csOP#47rM@M(z%2tOEtRK+iVvef9hE&FzY zc{aTaG=+b(yHBzM){J2%!I9n2s5BsnIDDS zY^8hIu}zvivVj1DQ<=aaFTW3yTC8l^qABnB?V_$P8JVVmF|~&oXq7t4ZWciEuv_XH zjy?P&!X30>=%5l(x2DM+l$}GKe#&R>5;bDcWf_gG#Z_R~K^LWUd$jeme!aT~bkYJ1 zTF%={fx=fkDm(W6%uAcpByX1iian|@LqRQe4{O}x64cF znOR3+&?}J)LyQjFvkg(E=s35dF%cLNcr502#gzLZJ%HM)P#=gQSSj?7&-6e^>BKZd zBv;oVKr8r)t>tF3DET?9lbe~%6i)Hjar#(BXM91T8~ZeDORp4G1f!cxr>wvw1c^1= zLQR1SYW%85jbH3I#oAfE7(uj84t)5n*+*9?`7|bq0p+vz1M@-*WKB>kiI903!wu=L zHoV&1B+~;G4fLIEjDstgR(OocH3siqqYO1D8$>=<-CYAZr=i`Xo4rBl;#N0;-b;apm7oU7`hVmnX zD2}|eUzI`uA$%8Bo{A%HE70V)X3{&kIA9oKa2eb_?Uq{)+bR`Q!hy^1T%00<8i7%>zo|;hj$U|c>Xgj*_Jy`Hz7c^(a5rP`c1piYS#zRiNDIGU5b3Qo0S$o zEOI1_K2k3ln1U}6zAeq{NyYPFE2lQsbdg6k;KM{0CsSMH?cPP!qCt+kN+wl%k<~0? zI9NCF07xw;8dO6prLj^l{^glchs2;^`iUk@as=XN{BoTu&k#-J#Hr~U$hU;?LNq>y z@{qct>6@?q<$@aLM9FpkIAanR-_1l~?CW#E*Pwjr?D~gDRw=oqmr(t~2lCx&Sg@77 z*>;U&j1E4i4)>2|QsvOP=kT0Hs`s}uJi9+};i&%vX}D3DkY(q>7R3;kujND(#mZA{dv2u)prb9qUj2{J!WaV-TTOq8Juvp9dg7z4g$E8P} zPuPO&Qmlm*O5hk4N{F57HI%fGU7McRuSJhE>a_?ktQ$nxpm=q&Tf!XVn<`vZ$JUN9 z8VpJdl89sN(j#jOhJBwv;Lht|nu{dH7-U^OG<+!kHCyIw?%_8h&_&ud8X*rH*!8ud zu7WejAol(ZKpD)C)`|9EM?Yb(#Gf!(_g`PcKB)Y)nJjf#S|9 zVf?y@H&jnT_|Bz@7Ojthbc6In3pAW|-vnJN)8sFKaySN3(vtk->TRSj`vnoP zE4Z6@Sn+mjKc1ia4!0hL9~BDZ5)?|r8bs4zDpO_1LSm%rQ~<9AtWLP(CAvXQfOX&@ zz@4zoZbSC^LdN9XVxG!0aeY3*G zUGs_QoWBXzmFGumX|RX8SkWd~APCvYK81_t8WW zckw_k^ZNw_5I6^;t$yUjZNJ!j%8(6Rk+3uOcYfaIymMBKY4jLAbTB>7k9wt2E#}mD zeRqKa6p!3r^1FA}P&}Tg5}OmzcY0+(>;t88ceyd;ocMh94EY2GNNo%e3$+x_PJQpl zOK&Pv+nlnmD!KIwc*xP=nZirst9XvBGo%dAT()p2g4$~}893`e4bx(}!G)Oi#3Tyf zqG@0xKsKILOYPn4`UmIw{%I0?#p`?&!x@g~?S+TcdE>;y23)}-wVcY1r`5y%V|K&u z)0pEpjO+S#b-cjPU5KVhA|3is^FTTG3iEp8MsBRA|yWw2DS^zxV zR58YC8q=X6k0R)w=kggl95JFH@;J(7eI|e@!Zf9U`C-5+l{U6rHCH(BdByiB1=bO5 z*0*8l*zZrvtMA5<_tLB`JJxgBafjyIG}b|O-XM^jB7?QM*LpwjhdpS>f!Af=BMQDi zP@dZ-2fJ$vyiVTKBiGP2t=NTbg*|rIH)u(%-|yM3w|(w@_6krpD0Rj=gJpO73_?BD zjZ8yj?!*Py?Ul_3!^Jq~xvkmX9p8@{_0s0SSi$#3i@DeiM^P~gh|3}kke|vprjf-7 z^;^iR^O=&R*z)j=@cU5f)ZN7AjUqB-y24D}yJQT3AF|GS4D}klK!1&rDRpi(Ov$JE5OIOtL0L$Jh$UEus zRp$+84yK=r1&a<7DJBSldyH3NTvq_gleZ`MqpqhoWH_hP^W^x-*>kaYaQs2=7F>{) zYER@8uf+|?UjJZ_5(4v^lPD1oS+SQf%VnU5&R9_L8pn(_FK5*wnP@$ACa=lClg zyV6IDjN6Xwzi)B2M^-_$-Etx^AwpQxKDv7PZfjyrerxtIS?!vBwZ4)9jS|VPgeY6G7ivD_z~m;?P-3G|JWUANqh$!7X062U{LY zOW=Gq_=gAu6FIMP&RAx1L98zSkgX3CDb|b39J)K-U-F1j<(TdD?dD`AD9rIy2h=FT z@u-9b0sFOW8U&ysn@x{mNYB_gh$35SQ5FW)eyC2;JX7`ll8Gy)5_3_B7Y`7IM0mxl zo#Uf*`})@!02fVzCBXP);_+B@dG$VmtGiL|2IYswk{3N;eq0(%51ufIkuXM>gdw^Y zHD)hSA!cAk*%(%tWE(6+kQmdBDzDY#oCqmuVi>Hd-g*C=Adkcd;Eq71V>50Z~e7Oxd_Rx?<&J)=8rHM7EyAfnzNrVuY?! z2v#j3Vqb;-nI?&W%Nb-HY*(|;vb%38C$M4{-63DAnIr@dfYB@Nsj2eJJejvu0Lp0 zfCK(tnz!I*a4{ASqe8v)FD1W~dIEvsB?i!wZ2L{CubV$gcRXd5YOuRF;}&J*e&imu z(<QE@QH6C5%TSZF%qowLbWC=Pr^;6T~ejv$th6E?BEH&KZZ zXI2KbU%gGJJXztI=1Mz_s@Tz2Gla1c+EBo0NHRkbBg>aYDw&2*6Dq|dp^E#!J?3}% zC$h}*>pYS0NoJiB?bi*|-d_ssq?HiDO2aH0>BL1n#)dLJ5aT#Ky9e1ZA}guS?rUyt z7dcEpUn_W~&3V+~@v!o2U-6nEjNOCmE!pA?bf?>PUfbpjXq?IF33tee9>UL^$)sh;2()c$vY?Q{St)^6JXZz;)IGefkwFI z0|mfT<o{B#dY8y~%o&D24p2LQrkS@=NSOJKpehe! zV_!X^n>B@vPhnHF{0bH8k$CuRMQf&0BXkF9#B$W6KJOc1A-$z0oyIzu0L+T_XX5qX zdMO)~7gGTgaUBN8NZhvUJ;FU{_UO$#-LBj`6g6$|vJpGuYURq*_)R4`yXz=*|<#>wu4YTtbA1G|11ub&9B$Ga zo+mMZ{*?{Ccq5{ERJ&>r103adxq77@N>KSG)BZ9Chb6ayZcav)O z`{3Y#WHKhUNw7azhtG6uzn%L(Vx?oCtw=|OO0&FFd*C|9a#;vT6O%g!iPH2n6d;sR3kK#BBS|06=yC%Z}d2*QT9wZjDPl z7)euLB*?)KwIgAaCAv02AkZ%m%LA=rQo}H@&XHFvLX^7eL&8zSrLr?bm`>5eliT<= z@JUgNmFLFX_y)r*x_bZUE)+{{B({0U8K~> zR=C)s{*`wjU{ej76lu&rhvA(Mgi6Z@K`CG+9)4E|s_R?`{c>3&y8Ek{O$vBX`PjY| z(MuB89d8L9L#b-$E@j8bOVFh&hz{rA+C_X?hUX(857=FlRn_wEl=+&FH4yE(bg_(W zgRqr6rWgxT=%v`Lkmx|sQG}!pHSKsyT3l_*C-;+OkJ3sqgKf+eL+vadk{ZB6nS0Y} zz&fZMzFb)bT}@a}@-$dP%9tqVM~OiUtH{r=&^tVWqIQ(@ADsOlFcYAP%m$<>JI2^P z3&k1tL!LVL;{BJi5!0aR7fb{{E1i=gwjDxt-UYVQ(uqfmo(u_k#){W~>}e^dX^?&3 z^7}O80O3#kL*aJz3nPy?Spnvcq8}K=x z#*hB!BF8rHr?})Llu*O3B-l0ZI!mNhhCy{isv{Fl=bUoQtg6;*dDRnJULo(^nE!hQ zCy;>Hn0XXYDSgP;1x3n@y+t9b96OG}KYsT|PqQa+dK%y)>jb}CE#C0+|D2vomR+#@ zCMg~c&F=U&o$qJes~mfDwkeSlrThKpW@GYmyqvQWeoM42e$4GE@X|X$6ubYAY-;+O zxaSZu?ok#4rmRdn2j=(9+ke9xO&D0u1oSTC49#H`(YwhalvmfJTsvW>4WE`sh;~S) z5iGMgbh-fyg3Sclf?=rdEGQH9u6Em1Zz8OSN-dn$P+JTE*h>rjqq$HJp9J?sd(N%V z87+xGf2Y5`pa!W+^ZWvrxVf=aQbd@R!2B*Cz}@I7@kwK0g7UO(R6GPO7CZuro%MxSf7x zxNf_&X+^p509qI(cEpfqQywFnFW41s0>cw#RPIIt$!^sg*W|HgARppZbgo{Cy9Ao7%q&A~Z}U2MzBKu`v!S^s_C#XA zJGn%Mei1=Ni0WCgRQ-&WkPurzobKrZL-n{WyiK2{)LPNqRy1@Ng}JK!gUn6DJmD92 z$=%1%7lQtW_WSL_Zr^5n%m9f7*-vq#A1XnV6PpWf$53KG&BT3^05mb^u+8$TyRPx6M`GE8&|H(O2oO^M z$TM)db#pa0gFE5<*wc%s&yC0p>3Hr0B09;ihvxwQ!fXPVZ5i0U3U z^b+zH(GG_Rvy7?)y)b;YY-mJ{t4@jZ(?A)c@Ld7- zS8wdl&0?2K83|{RxT>I#9moow+v*|esh=n%*qZ@yH2iBvPgWz{%xtY5s&n{BeWhYL zns^l}8o?__3wOjUbd>6z>ES&$fIERg2cZosG6S8at~N(TzcoDXuxVxuM{4+K42asJ ztf9a?%2EiC6H@%a7c(eefSqMn`30zoE#K~4s60#t=7jPZB8%`g*`1_bAdB`JYWBQz zaj?&3sCCzFJWBip2{LE_0!=rKLgwV+<>hBkM6Fj;D5y>!^g$>y|p4?S}aC6wcQ`E{14y3lI^vwtqln_R^ zz-8{9q2OKo7Ik3xExJ^A9^Kff4Dc>jyS-D@|G96%siaK&ZOL>&?iuttfd1JA&tBT$ zQmNjq$o=s5zCdwB0zUYPX{_6?1yHoGs@-9Bk5ajrfC@}S6r5*BWWtHc{AI551!$Or z0zqeuEGLh!;h;p#(cp-6(TqJaB;g5hZEdMaK}-}-l_MXhG=Onj0zWwp~BYC z27Pq=@);YvR=glpE?C+WFG!QNsuW??f%t05A!ftvgkP#PsnpVHg_1x3W8g6R1BHHf z2>?nnS5+6Iwz=t$r$eBqN{j$s6wEy3YWPGjl2v-c_7wJ`&7sy4F6M;eX}4Z38*`zK z0+xm5Dwu1A6HSW|;zS@#wK0u-tiXOrRDd6l@Mg&!)8$okP@tHr=uHne_2$Tu#W{=0 zh{iD^m1k!_F|w?MgnLn{T~|OphZRuF^O8(WsQ$VHcSOY+$QqbfryGt|$SO{igUqcq zBKD4RWzI9vu~pOhGOWN-y%efO+t9m8o-Qu8N{lv$LiJ1 zuWhou_ucL1HmcYkrZ~ZFN_WbEZPqZqM(R0cWdXVSfB%G?HPS_@=ve#C!|N7`n1 zJv=E0+3Sj)MC&pVFj&ePgE}xuqD9#iL(bCeu3q-uZK4r^udm;)R6&jgmbObO2h=ml z(Xd%fHke$_InpTbs3{jLq~S7~V15iN_*(-Z?HmYlXnmz=o+$<-0VOlgI^BXtA7a_| zgWA;|2#W>^NQ^3G(snZJ;=_x`3A0`5G^$BwE8hb<<9*RP0Tf}=+fww1bdH!s?NVyo zx0=-U_irBe@O#O!uJ1~wPOt)nBoa3d;!2$119sfHS0d#;%{r)+(K=uEHW|9;i2;6} z(ef04m&_*isS)N2@;iAN;ssuV{-COO9wM{mo= zOPJNIA(YMDt*9K?r%nBC<=`}c1NS!rq+7Qy^{Ye`-h*2~WI4rdD<(%Eb49QAg5Z0; z+w&t2)ziAK>T)p8Q9wQPF+fDzqx9;E4aO_ z?jJ=iE5_AjQucn04ytn{VbLav(z0Amhh0vqXL zK+z!-IjOBvMU+q-FTS4kDtAA3Ih67U6P zSAAL*M3c98u|+Hr7>Du?G0l~@f@T&fI(z&08@-W(`3^Df9s4gJ60i3Ynxo1Y21Ho( zD*&sg#2)+?Q{bpK!O^OTB!?TWI=2Czm?IP_ZS2T{_(qequyUI z#u!Y-ODFI*>kjp@FQ2iY$*jLAf=Pr=7_o`BDIJ8b!A|oE+YvBhuROx3s4SERv+KJc zX0_&vY!)1o!rH%2C-j!BX}9XPPhNcc&S@nBPOouJtMbuDHmVa8b4;bz6J-2z{Yotv zwfvsB&M8#NJv=`8FMGD(3C|fb!NY`R=a={d)O<91K%h@p^hB={A0|D3#N02heM8}} zN1_?ny``@PsjJ`-m;Mcn5U8Jsu?B&Y$1p4$J69PBvy0C`5r4#`FEZG%(Fp*R5d&91 zJ?rjuji0}!@$)^{$CcGslRv_vCZs?f=n2P=NZ?%Qgv+{30A{}V>Z1+TbW#^Y9FCSz zu0QyCCTrKP$G=qSiwXqTl0rhdUDlBs~*)M7>Alnl= zCPXKx*-5(Xd&sxmxuL7uW=b|~CuoXOR7tQW%j>80Kyu&Euk^~5e+PMk0%ei0ngKcD zy~4{=h(md5;l)rG;se;yDI(NhI0a}Mx&+dL;+75vPpaLAqG9M4D5@zRO%#NCH zj_}wSb|I}>4Hgzhe*-gwDvq|)B~QY|FLurwxfjS|bZ2`tCNWA?|D15#k1Q7`518HjSq+dgoCrH-lsEi3`V3~Cd4Q+btlL=i zDb+RhE^|bZTC8*2{mtshvp{A8*$Tm$A@C5M{k9}$ulh**$|v{xMWAH>T}N>e>@P$} zV9?iV4k`mma!~)(y%wa%{K%8QASF{M6A@4_s_J|+VI!s@#c8%Ajo69)3Eu&)n)mV& z%O54u6I_w4K^}7P*qqMd-X?>kf(*wYeOCY6OI$#_#woc2?es4eoVe z&GONW9B!{Vb!eU^<*zi|9s3 zu;{lP@u{yeKLP2i*MMel?Q|P|&zp~FhB&`JHSf{qlQTzF5Q?yHr@lm8Vz--L*tmd~ z)N1V5f9#U!G`B-(3OBkmLBWgkxSmu7V-HnA4m7s7<>AsaXlqAR$Pmmu?XtQ z&i~8i!xtS*1P00lSDb$tO`>|gNXiwtRWL1Nud5Jx(UjMGEfclD-lCX+Fg8o*_A(XR zs(6kOmX@^WA0Dt+hkF{@W8qSImy-~y6xSnA{FpICY>$Sa(u~Tm;5X;sLF+gkVgaZW|GlI<+N5-oT7Ehx^cAyKrSp~5PoY8$B< z51pIj+XY`n_;w$5E0fr>SHh&_6)N}y(ouxw z$^DKL|D_A8JNclrupUxsSSg^~U*)UI>O}mWc{@H=v!NUGI1@WpEB4IkwxjVGBp?qEto77Wb(eMlPBHH2dRC zs}~`Z8GA7b!&#ECQjv@r60sp=n{__xK*}~Eba9)x=FK+K&6uzoh;)wlZ(#pK+5Hsy zXLhW46GUR2vqfT#zVNl$L(|mx{h6AA;pAYtCv)1Ok-!Nom4@a0CMMVk-bTyb)+zA0S+>lMMxiizaB>Z(Xo^7Hx%^TB zqv(+c4Y5~?hZ$7LG8oaDEjzn(*+=QEs%DFYrx_l#uI0L!`5}2Q{Sv={BDlnOG z6$~vvx|qB@4cimuL!YT=No4jAyBYbAiq?bgHVlVF5gJ}4j=#kts(PaI0$+kp6AhGR z_2h-WLrG%f2GU?_cRTYNvX}Q>+vdm)iyY_v!zBDnHCuv%k})ic^O)PNcaocN-vqbO z{oXIF&7=CE{K0)pah>I}>+@){6aH;{WI$0k6LW9X-W15+P`=BuIJi}kDe8x3%HDQl3kT_-vx(G9c1Z~*Lsnx2=wwvml6Y&00|5-z%BHNM_y=NMR z@5(#9JRTp0A~Ji@T!dB%Vs0Y>u>3w}vvN1A4^~DE4dhmWP_*?wp%*tQ%pA={Pn>zv zYU1cD$&6}`Bb50IKPLeFFhP9R?{4@LG&QAQsNtyaBs?k&Q}k$W`TXh@S_qQ2fXWkJ zJmyIF9dn7~>D#8(YrLcTd(}P}R=(km>MPk#tu`cOzP3f2TI4lz4&V5^=-k(i{5LG= z%SB`8!3b#CqS3cfw|-cQMmwc;V+MBD?u;ris*HK_)u(l{*k0`yQoA)TcJHwDZbU;< zcQ$8dRjg$y4Xd3+?XX<-CdK2CyQtztz%g!wqqFB7T@YpAtg#I$t?&KY0ngwQYg+5U zj-cygGqOwxvY-sgF7%%o6_7YVy`TtX>K76TFaizucOCcHLhR`1wyV_vzPAaYvJ#;$ zI`vuo3%})HL47+ZW1CL+&E7BV6pP`!m-|cZE^hUMaUZ%FC?i-*q-4gi6l`ThEbw&0 zKe77qvb<;Arw+cbWaJ}D|JgmhadMLV&j>&&2ZXd$^d=zZ4mh^=mkjq|P9GqM75|cM z*I5B9W<0D%Tmnr&qXK_ErFhd=B+3exMdFiFw8BqbC9*Q zB<>D-c#Co`96@rn*ylN62B=%f7^le5?t^z0M#Kc-$aGrYZu+?=CQy1(@h+IY?dDU! z{LbjHpTe^D2JIPmkEWz{^A_2oNYaBo5el?c8l- zI7mqr{7dlb;So_x(s~MlLgp}Z##Nt-!UWs@_)-1L4GSv9BnL%MhC5JwknOr`Qrn5L z-yV||Y73exB6Lr3@1A&fq?wurR<5J^g@`VL-A(I;N1~fD+Z4Xlz$vbkU}>PatpM3~ za-g4F1c3t3Z}OxViC>rlhy66eOY(Kba+T-?w&-*qmgKb18OrDU{YJ|%w3YTL%=YMC zA&Z!j3XGXsqH_tOH3gqgu*Twd&Xe*xM5m~TGHT4hOKOesg06E4G4E)*@$ghH)A*UL zWP#{f6dv;s?rNua7bhG3ay-mCB5g2VuBv_b5X?RDVo7gx8>2q^>*_D;IG|H``I|qj zJ^DyVL&J{eY1n%Fa*fd;Ri9ki2;DtIB}Ix0FU97kbLHb#{YfjP15PAa6z)D*P{v1C zDZq@KPq6UKMJ<5+)LmO~Oq^Ej&R=--Zz|(H?Kl(&0BcHzu;bKoha7*6R&flu_Sm_t zS_MufHr(swNmQr2`G!BW?{*4Aqkf45#~m!u5NSjm$bX;~KknEY^Z&p!GocJ8CXq4G z4AelZDR;op(+3x@5CU1LFGIKv#{)R3?njU$mGmgs#!{?SM^Jb5Qb4Oti(vdG)g4g` zZw@1+bd`^Sf4Qt1I~{b7Rt85VWAz>0d%jg=eUmX7E`)m;^bu>uOVRQK2~U|7H*~~> z?=Z~-0G%rAQjoOF&*4egUf^ z6$qGj$j2Q>yCsXUlkEA&s7SU!lCOG1o~%{CjcNV(HV7iMLJ>jg8xmCp$F{gue`n1yH2nR53~uJHwefQ}jeRX!POC4n{gh z4Zx*{>cXdrLD2w&ehnUPs>sMXQ5zL)+zW1mR04Lz`6<+IJEYo-P}QIwO)SV?0VT3g z&}?jJ+Q^8Fl_5SiAPV8TXr^yj8~A^sze+^`*Z|^b%4VsSPTHap;KT-WmJlH@@K&`f z*MNw3DKQF~mfzPfQ*$5nCRQHRk5Nf;lMBbE!19puPZW?EceBpcGTEUMs~VMwqv4C9 zcn5undn@L&J-C=(F?TNKOPQEutsdG-JXQDGYBf1eumfvBT7atpzxgN|z)YiTXo4xk zo=dh5dZG%0K1{eHq*H0EI!`67+a7(Od&jPBmtrIYm52>#T#3+H!A_!1JOFm!+lI`jRIjKY&!4B z33kBpQaWq}vZmD;4MWDVZ&w@b?iUk{h0)pSrB75LjFU5BiLT-)`rb4 ztbW0tr(bx`n{C&rI~E+Z-Xj&{infNm`6aG#<#E&7{ut7E?~M~)e)qqk*u^->NcThk zp7eI(Dc$yK*=xU+H|%ro!R0FtkoMyP9D;8|DZK@=T;n9Q$zT72JihaZx4+tL@BXg? zOWt^Ezzx9n(nfd$EHCI^7ma)GvGm>e?$?EMjZW-)}$rzkXoL%mc?QsUsC;=>GclVdJl1 z!)r}8oEL4X`rybX;9eqrNB;<>M;jZ~Skd#S6VVhiLn#}vTUa>EOch|eQtyForJL}} ze2$tfvR*)prk{zHCDdeALG!21>$|IN58Q{rvcb-eB1H<4St#ja+%kSpP~f6zpbWnV z|3`0ycXBG~-PucvpyD-McgH^%m@7NCKJ&TNFP?@vN9TBvWi%v~Sb+T1>lq3f)xs!? z6%MJB1LK8KVmFV+5);aLe{fEGxAa){8?zCCGHZc)aNsm;gD=;b)ltMA1M>iUxz6gQVn;k@fqgEzUu}%bXpEIUNqgBDuqaiYD>MN@VnO-^t6ppa z$D%=AWd}h?6hHa;uC5=|dd-SJ{^p{?9~*mW6w*Ka)Iq#C>fI+rO50<5^ClFp(N$x(fpIoVg(RC8UZa+#Q*Ih99>ZbFV zTfSwBg9?kMWua0PPITf$Yh8PM4PBH*oBJ8%Rz)FJ_6il9Dip5nv)B zrZ|oTx|0iq&94Pf6HIc$x= z?{(}?ej=itY7udgML681Wx9$@s@Z7T*EjUK@F#!W_~+>tOnmdz7Xt8(5vsI9#UcDh z4SW0c!soAcJm$fDe)xEwAC`?CFyY~n37HSE+3fo(TG_grTlf9f5BvP^>5>QcYQMgG z*NJn2cKh^Y!>^yS{wj4TZ>t8pHyK;H|(>D&g=DU`A zx9(i+(O0Ygs{j7K{m&uQU#b07vaR{eYoqS{nPB+I%vj;y7e-+`Lne^S5T8xs-+}Qi z4^0U7akCn_fJCziHw>O!wqVp>cJ8xt<9uzLr?$7>{Ce)tB{bgh?8}YHmW;CGtmKKM zYuQO`iS-I|)KQAbxqWGCF-iQf?uoT`iuN7Wx2f#EJp{WaZE({CuUdO#1M%(Dra|w@ zh_}SR5jSb$E%v8KJUrlpoW??uRuy!E7ow&qYHw4$+W^Ar)fju2V?`VkP#``R4Lv7_ zVAj-~#9^f}{EnszKxj}P9teYvlNvQI*Gc<&s?#L4OI!rG8)A0WH;q#mN(oO`0~Nq< z1iD^#$Krj?YlI;$qI{2%VKEf1d=V*35VoSC0RV#jDz$%_z@2sk3aUrN6G4a!4Idjd zi3&nNd?g%X3KbxEp-*91Woz?JEk3;Xnm!gZNH^gFKfY#j+1K|=ET=Uk>LpF{)wGg- zJAzIk<`_k7&3#CnRovQbJ}((=4}vNS@~S!;8jR-dg=Ak*H}(5@M;9Tnfb$V6oW)%! zghniUOtbE*FQr^*u;;*sX$6v4lVzVTx634eJDpMn$QQmxM8u&aOce-bU~#8`E3!~s z*w0he9c}p%Irq0pbBnt8&Q7w2Qq61In2@II^FD*c(5P7nkJu5D)0`n$hVCIEp%Fn* z>Z3HLg_Ssf^l9dta4HX2sd$JBX1;mpLW-sN(Piwmw!L*Znx>$zdm8Zf!KH+&TB`8f z*CPbAZ}sJ}w$vJ+TyW+Dq4zC;sMHz6xz_# zY#-CYfxa}EGK5w_I z9xh$RPh6KAkkt%+g%@1g=BNNJMhB#!NI~nN4wA5mEucOzahsLz_dBwcrJcOu_bFgR z>+He}!e}~U8t9LUvJ_btV49mq#EAdS|Jo_vLH{ZLF01inxDqH)W~O{kzKr}9hzSA{ zO!-az$VuVGlE_;)VnRXh(Q@wQJSCt=HmFA%!&svR%>19PqD)1}NI=+$r(8)v70N-* zcxQ+P z_Swmk@GEfcE@R{gR6W$2|CzZByqUS1hFL2b$HmxW(9lV~H4xW>w z4&HjgauMi-^(EiLc2MM#rS0(Bj*^pyq&93rHNVdnyPcG)%10mpNz5hSv?CKtq$4L9 z_0^+N@38N&#y8>c&f1HPR>2IyCt$uH z_lEn9?s!n08Hb;AqfBP)W*s=QR}L|%Fc`q!u(VqMmQnA`f#*Ttl(LJlD;p7Om<5ag zooX(aB(UpI@6iTak!}Rf&8_)dOjlVm*}VH_ejq2B3XCQmcop!^MH4sS+HHT$BR9|DlstZ5Jg+n9Fi9#E>w?P>2pXaepQvveT&Q@EaG4hH zN6^A_6j4nwFH=Bk;oIZtC3;r?i>4&IJ?~8G?{Sb03%v{~I}cA*SmkI%gvQOPFIiER z?&MXIR1-cxWjsmMCuWB5IE+lRe57q!75>_A1Vz~!wf4kosC{nLN)dBK1)hPBQwto| z))*7c5GNhB-X(19yFp580PM+44G4CtF=@QK@a}ZGnyHi8J`$KE3{ui!Stq7cEtd9> zWKpIi@on0LyN868^Ha~G?<$d;BK;Q}&0vTB-8%JzKXK*Ix;;AYwxlM;3zGkRba_P^*;tZQKox8@YSod~Bb2kY)J}puN)Bg{6UqM6kf?PU z$!-76zCh{;Q6lY!Pp~+G=LC!#sKSY6O|$8=8Fve>nO~KCg8uKs;a9vKcv{)_JwPe1 zN4R$tWX?OP9|Mg#fPZ~!fP~_ol=5>iTpu9%ZXkN#JZ;n+o3MY{bm(v%j-evw(=Qws zZGA8OQw1~~{FF*oV#m3Hat*#J)}1@_vrQ9^Rc-vCvlOJy6>6Sz*R3?EBbRb?)I6Gc zaDVtF(qvz1Sey2{F~`K()Os(`w3Cx@^^VgcN_J}E1F-_w9*S(D>^wAlg3g%`Ph!2N zVY6SKzHyL*35XPMVvU!{HfZnd*Gud3X0rvGn>L)>)4`0aX2gj<33Ej?^v%LdBOE>a z@!GqA=^=xeFtBxDgR`@yA;8ol(jIHfe9k#?r69;y(z34BnEco}z)M{U$YKAL$QKgg z4`YIidMFatV)~fQ2AY`#0R+W~HXQAwGp-l#C-~Wd0>zB^8&z<^&O=i)+rQa{zAM5R zOY-VPN00U39Zy`J8INtB^Fa0;B}Qhva+GUL^0Fbht`s{V3GL(r%9g|_ex9ZU8mSnb=$~Ro zo~o*IoIOna%U zCJd)GRkVXw2~-TE#qz7F^itn0$7bx#E5V1@zq9|FJgEp)X#J0*8@n4lGI6okjC+se zE4(|EuY@%*Sa4Q$zEp+H1|5km#UP?#$igQbPfjBBT*N$HfEwaDZ|KIZC^C4Yj2`t# z%Eg11Uz0+ogj0{XNk*u$@B+Boxs0S+ta@Tb) zZ#n{EzDdpc{YpUz!sQ{ceM%_4S!~NG>Ip3#D3!w>th407gS)S4+_XV+iE&^SbcSL9 z^dvbk(|X#yGAq(%o_b;Z{nkF`noHcgA=&nO=Z1<4^s=>&u6+B;m2a2V*|gX6W#v1% z?R~upXbh#7kH0N5=XJc)rK|w{3hiCGY>jg+3{Z3d%MdjhzC~`^| zc~eVWhcPWdwyP7`jD%)_0a9nC>S3&e|AL7 zm`_}j5z!)aZQxy@y1wL?3g-d%T*jXWb?ZlFL^zAXd7=ZurIrFf6uk}JH~jqKpFAm8 zKJ>o9@}T&Y$NfMHSbBgi-(b(-Jmfv>5YI*Q=MM;?HMz%8m&r3Nvo^&dn7bH)f1v?C!C`f*8$=0zmHtZ$UI++F<9g8A)#i_|0 zPpe>KCqPSspG;}xF^t?OdIAT`HAJKWp{7->adDvCYU6$Jm!xl-?CI*u?|}v=y%;hK zdjjZD3mTvgkwn(H!F_Cn-O>EOJ@ra`O6)_dHDd&A)bT~h@ci&>@G{Na3eV{zc9T6e zR87BV3grxt!lyAaV0(?Tawk4HaI6+iOJgD+CK928N;t;WPQKzsjw*$PRPfD6iZePg zL|b~U*eBV~UE@y(-hn)(k>8CIeLF`Qu*;xd@;|2b==HFus>$B-x!OkCA!wImd;|z~EY26cE#6 zO*`#ncw&E2%~fd3Qw>VaPO>}fzwj^YoD=(ou@lT9Jsj8We@;*+sGu_i){oMBL~uQ* zcNxYMZa1|}lbRH|pah9>d>$86lp%D*2-$&i$~BFj9MSm6k>^e6p_5*Rw~pJ?Ntxc+ z^P$r!+aC{|wH;)v)U#}R1WHb60XMDWHOIjR9J8#vPM7jJXHqvliqF656ytM)mvLfV zrS#R_{{F8wmPvcHWB?`Utu?=W=XBW;*43$(b6&pG_{lqO-#Y!bPhLW*DCRDa55;O9 zfQEuf8&%Gegw$c{=#s7aznc3m!&i!ZpV$}UdfLl8l~(OfYdhW59ZWX0tI1=ASoySD zJA1G0v(b|aH*@>O$(75(vhjpVV@+ykQAW$!(qs)SdbEsIiw`^d67t5pLdSZ3g{&rJ zhZVwuT>vX;zMQLBg^fic8P*lqr@~|43Zt|eCbp4JR&jf`U|B- zYh7b70G^Z}1@J=B8?K+Q?zB0A#?px9q+ERSv6UKnQJR`{cTe=O5W?b?mv3(!K%Kaw84DicUzsGKNCmQNB(DHp z?KmF-52;9Ak0JFd=P^7VJ~J}^Jtvz{`zBU4G859*gDc{<^854{b2ekQftNZ&^aQaZ z6ECUQ%-<8vTfN76o0I=H)?;6TeiUJQo~~%V^Nw5hlAw)I0XTTxgcZi~jf8=%pjoMg zY;}>cPe}jlBXJ-|*s>t%LRFQ#|IlsO~^{42A)m4itDXO5O?( zWY!?yLjXCzP(`0or6cw~!)Td&L&zL+Ht^hYg7pHIDSrSV0dS{5Kn4XlxG^)+Yj%^^ zqYDQ)h2g>+2x{I;c}xjbUUfFGKrHZo^?`f72Rtg@NgFTi`8|x3m;IqP2(wT z;7ipu=tSf^HX{qYj0kNmn1Ak*f|S|Lsf%vYn|i$Uo0irV41QKIm#FUdBgX^&Q-WDhHTZIJS6)Qw;4h}LGT1Ip^V$~2DA z8HamCCaj9#`4{u1Znm~`=EAU9|3AxWs0K+hVY9^Zp=k}zGYC_54pN*rV?%QfSjsZe zO@Jr->A8NTy#-Ff9y5IYPq=wW=XBe+!pbwmLJfZGTm|^rsfz(eY?KS ziaJxRN|f}ZB!k37eAzoAN+8{=7uj&0Nbk-`zphZUu<6b{bCt{VBR>p9`H{~~#4Sbr z1ZL}mk4Dk&6be3Bz=mPTU8k8_sxP$%1FrZ8L6=k?p#}|RU)z4Z$DIh>+?gta>rR^? z1U;@GvyCtAzo989fUUMUl%2%3h;p@vTd(4%7eG1b>OefqfLvlfTEE0mJN9!C5xaY# zbu4#_ijNTZD1y1C8jhma=KUqVlS0Fuv!QAkxow(H?Wvsc1R<0d;)u~H^!&oRla2M^ zEm*D9SAF0f%&b_nBw%|$?K)G5uE;qnY-PjH-UZdi{)T6qR zMo9s|g?;Z7#8iV}l3~IpdamAnB_F86lX03r89|WNCJdoab-K{~Uv)|QLfZKZVNI-? z4M3S1Y8aqvs*SNEfY?cx6QDzx8wiIA?n#aD=IpdkFu#lsg!>oMBy!|+cpZ6Iiav$gF`JzfuCZVb7i$ooyp1U5KN?}d6_ppz6{rc7O-??V~J2%#!c*}yPzz3|_eql5VuPb1pTVYUzVY_PCnSUQT z{P*jQ{|CS7vzm*)y!u?{L`vaFx0O!t+ZR0b&G?HyX*!N>;neFMK8>P4i@UEneMYOM z<15QGV1eSzY?VJTvt-t2^Sh;+d!E4Ec-SRUA{9X|&aQ{nc$sYc6{7`^Z-4c<(>}P4 zEa&B)4qCqQmT>IoxsIvuXv2*Y`t_v_MiPEh_Y4V(cwSZX7>3javwW=)jh92Pusu0krONVdHs2-*S4AV&Zyy6ZQn5F zm$`Oq2uS*51$s%q>Y)-F5Mc04DV_P6H%FdAa$A$jjf8p7AO>FS z6i!yvzml?w`O<01;+hi^_{BbTeRV4LcH642`1kG?xtzR3bwQ*#g3Epu^<5QsDr&F`%v(5n;|s zV9AV;U_k_Wvw9-5#Ik2Rr)YNq$ZKgao*v6=h{(sZaekDW{>oqIq-w9npx}|&BP#SgCG9jDZ%kT`GEsJ&@fW~ z5Mre&12V=yeg%zFXUw9LN+(Pc3I4YJO*Xl}oZrM0o+)Ev9pyO6%l5|;!VTgEx`H+v zS7x;wR6O-B;rJIH-{7867j^vogt|RC2TB+e9+|CfkIN4~sn;o2e!6BF!u|hz+x$Np z%FxxtT7kOqic1xvVy!rVr4q?=50-jOi%muF+G*4+l^A{E8+=pe#4dEfI{Lbon}O~9 zPMc(f`))^uV}=yO3t7faJnZUH5XY0VR@&uU@Qf!Y*W{u?3gh@|mYyJaEhqI|!4iQZ zrQ3oykLuLNamclC9{N~xGD(2)xZDIM#DpgU1HR~30OC;rC2HRc!X$eMI%=}HVqCaa zX>q{rz8mbX!eK>hJSa(JjY({b+De|pI3`|#fPES95howhAXlYkC^42Z_Q9)NdJNwr z0n36FymMlUph133KO#6OWnL(0xW1jU=s9e^yNr;tg|{aCdXL04!bX#y!{W;7PCM-2 zhuXaK$kqp*4^Vp=m|ytk_Jkz#J*@LlYX#&uR{|kkg?H zHm#tNTy4UlKI&N!1kFb04tc}D@da>|SpeipI*YzBgzt8)&brHZrNPq;zPy2zx-VFh z#$`(Q;!cdM&U-BA8!S3L6(ca=ko9fPu{AWwbDIhLO1c52icv*UazHHF%Bfkf9+Mao z5J@nQtOINo#b|2(WOc)X7fhJeTh(4(TBRDR6de{b{DpbVdbNLhdfOUzx0ze=`w445 z9=i79!9npWJ$LuYwP!jmEz&yN<>+LsF+YCTnz}blZJI7Ff}Yoq)-Gn#*6!<;_OQy4 zTjq~Vt4k9F?2zv%dK zu07%7d9USHa&A056k=*KbH-mSpvbup$1W+vZ%hi|Zqp?&TBbf=q4nLau84OFT5Nu% zUH4k^(l=`fk-e0V8^${^HK0b0|DUz@0F$c7-v1F6QE@@PAVFY6_qzlox=I*eU`@N< zMHmGBB1lqH1SLz(yAmYGx+tJzSwR#L77%nuihxR9K$JAVNRTK=GV}jbovxbd8@hY& z_dNCVbEmp{X8QKMRquJvd)_nnFB8n77!G@50QsC_YSOV)OXNX4mvlxXK9JV{pK@>k z@;@&AtHcu_jGTAcPskHn>9$>Ov!1V{D_etRdSnwHT@6Z&_0oi$3giq9Kl$fH)8b4~V^{#Gg=zj6gK1%Pt`g zva{Pe!8z=5f+RGpM9A(4KLuSP@3Jc1Y#qpZ;a?=ooV9Z}UCPcr&`1;VfOVMnlowwK zBIN05HtP8a?8g#au}nBiQa0Fl5I@Tu3mDrGr$gv{mynBbEHobXtlX-SpNR4LM4mGK zHR^M*z{S$Ec)+-PAq3uhCzLkDDQ<<9cX@sjEA)~5>BOT_M}jICtH$0b=mkIo z*~IN0@3b*AQM2ko-Ayg4y-*P50&1xjVDP7#y|yyIyFV6QNMk%^;4!Nyq+|kNjCvzu z;%kF+%`*Thkc#({^LB=Phf9>pn@g0ni!0X8Huz`cWj5`FbwfgJVw-u(T#-5AEXGG5 z%+r$oA^bmVYId`WeIT#&^~w6Xp|4Et*9Mut%W_5$4Yoy)T*$H`!=i9Dh<810k*q7M zJ#g1V@>FbuI_u@CAVKqa!eamn-#N&F{#51I0FjiJR*lti?1Qb3u>W#XXkM;yG_O3E_kiksmuM2xSVq+Y6Gw7fgHNtM-$q#f2MWQl%prsF-YNgh6JRCPW+ere%Sc6 z)1!!D#DRs!3mq5yie{unE+r*-(CzX~*kK}JmApE2sMf$E_naD6ZRfZ<=o*D0=G~|2 zMAf@`tR_PtJ=*xUX&Ys0U8x&Q>pqpbQ8gTQ#K2?X%hbt*n{;gc!=)zy(G;Arf3U8{ zCv$}3iHK?%rl{JG;hD>y$!Pyfy)kbqwNS>_g!MrwJEa2EQbXq)(G?aN9Ft52Ae!4( zhW{>immK$mIzn51{)!s!42!lNA0x?m_o)sKzK^F+uU>mp`_(0T zFFL{;;gen7*dBX&Ps2|Mxy1@5G(C@?$wUUbs8Ehvl&~v$JN?$TqsCd#6dwpjhQ`w1P94LY1SWK#Zk@BwT2)UyTVK%WC8gKNW0fjkk zoTS-?R&==2NfLz+fCnO)aUU&a2-DM;7mT64%L;39j(I2m$@qCp?U=7rR$5*|NK}i8 zqv?N*M)PFPTt3=v<$(v>V6wlnyGa5$5vVDz;k{f_3`tNk>6gp6zfCSfcSeo{3_F+S zEi{Ls53%kUl^TKa?fZQf*fXl%cRR?g%H@fw-O<)~PjE4X|# z&nFhA$@NVaGsua9MsG22hwvLKrq* zQTd#pgo$|J_o4V1CA6!&;9xdA4*<14I_4CFsNzivduoYw_8pf@!=guiey(D!6l^~CF23{^f5DHRbnUMo{Q=MCU^#RNAv zh^|Im-4|DoSNCT!Ncx}^L`99ABV!MxNZL7) z2CXw1{|9+XhlZ*FEEqf1_GjrJ*+#P9{I_4Ebv>^AHqqQx?KgkfA2}$I@nDeoQ zaVf>(8kBC;LDUYuS4_TfI{<{vzv(kiQJGJ)>exs?m!&^4tF|ezk|oraSa)vTNLj1d z{fRtOAi*QcnH0Kiy>%8PEMTWS@ zbHIidhm99lZ{??mNhrofWpnmGrrdeaVYiW1peOOGYz7$J4WH(VwA(YaktO&R z+@IrX10iUK=UK(+Y9-1Qis4*Y39d9w0cTuI34#(<0#TD}*fWmyfkAyzcL@^|%gJ=ne zp0&3AdqAvoDQN}P*oYc*aa|OMA(4&q3yB2zgOQACK}F!a+z@>Y6_Eq+kH7oOGR>{m zGU0g$e2TssmG*#qf(|Ii;w?-lO!WbJ$b7hGL7>NmKFR9ls0qV!g8H5v&vIi!D`BBI zm3~Snkr}oOiFWyg5~W$THuiylYgJlnJjF8Zssp)vJkd?`)#O3)TxXz1tyNMimnPX9FyH|tp-8@9^*%!LX+<-2 za%%kgz8!uov&@L(8OD>b`^6OW>1(#lg9fH|>vnB+1I@%B+nP0a$_(4L}t-bd!K}R$^@NIpT>T!04K8G6- zS4sD&mEZM;J&y+Plm>{l2>B6BB#m$R*8#6kf0#zb60Ol38wk`HPxw<+Qa6iAQix1}a z8nkPmNd(q@x#1tO^!J_{Rn}HTe0YWt!WkQR(j=_Z5B1 z`5aMvhF*1i6oPwmIx=0r1WT<%-JA{jOrH;lr~||7sL38hGj$Uqm6p}G*%QJ^Am@J+ zKAg93b)pW3)+W`FV5-NZf#n!HWpOa8hYx^SBOgE1f~IG$Ugs;huUIDW%EAKhxZX~ReA*#gKFimyV7oove!tpD+R9%WJh-N|By8!Y#r%`W z{f;ajJp5YDz|Fw!moAFe`G-?IJ`f;J7bx^dgusbn`H18uc|zXR*9KkURK7T~amx#| zef{{&$T0n19Yup%q2v6md~;XTC|+t@wR$-yt?aeO%CR}HI+(x%(arG4yHu~SE$!OP zD13Hqrno|S9wS$oTvp~nQ`g`|l?73$j-zjb`NRT(yG29Sj&2zTA1`Zs)Dj*)GP34d zpy7cWp7f`=~+N@%yzHN;us7 z^{MTpX$SF3I2#gGknTE$zufim%U#d+Z2AKhQ<_bd`!DJQavIG!j2xKz^;>RM{nV;C zN4Gvc^XA6S)+;n+>+GSAzc^~d#t_`?v$=rBgBeoU)mOgLO8Ix#9|&@SM*mS0ZahWw z;5G><_(E9AZUD6L7BB=nw20~yC#@ZQokcd@hXU|($wAC>eM*u-V|6|tJMI-HCWwac zPI6S~K~FWFR{d;k@J>oabuQdHSs#b<334~$cWa?v>Y@ToCvIy~kjprGU4_UK4U~jY z{|{MmxFU+4R2>H^yG30s~G8ktJ9q&rDR~knkZ8p6OP`uvRn~s92{lSEt<4WB9!PH5YTAuj6e~ZrITXj5tB9cec-24p&D9*GRv4hPL=ZcNLxs@jcdLH0FtcrBcf z^nz{!MK7im8A+=A1$LbH6V+b$r!}5;mqZ7$TKpPk0^=-B2)Ta#_qd~nYtqmJ9hgJBg z)zpln7nPS#=|~xJNLC{(+adEXDxW;~KGG>FQi}e0(u1LSceA-b2wA2cea-AM`{X;p zUQc@h30D*SQDPbv!x1j0)0b{F%Eh8?co~Tie^7+1nQ(<%Ur1~&RnI_5;GF3fe0l_J z7~zqhmaLLaxJb8z3N`B#zce*tUP{1iicp$NylnLzsk{&_!b0=d{J{=RsyGowNM57z z#G)jI)zL~~Hya(M9B>J3^&2jH#3e47X3`U5kjH;M1B^c4(5M8YHc3Yp9%L1ktri*W_IIKZg5H`%e%b17cL=nnZMp0?*K7F@BZ*sg{e+-eKE3 zV@WPdyMw`F@$yqOVrTnth0((3^UfRVntng;9cX6-O> zmY^p$YW3A@+O|(rq69q`II)PRg^o1dmo2Hhh~yMCuk~XfKO_X)bT>fF!|I?;=aV3i z2DWe)S=n>of#)_8B)zlXaMP(5z=f1b)Kq?8WoHN_T~J1(NSLTPVDxJR@&a&K5kv^` zvau?#6XIQ9C-^f4@gCzT5yODfag=p&s=P_E1{El15sr`bXVbvwk@ z%01x!zC1I5-!hY|G7=yGW0#jJL~v%Jv_RzUnatysys~JB49fS&PU~N4+!?icQVFQ( z6qeCeX3cS56Z=@Qi325}*!f%b3zo}}i^`c6M&52ZpfW@hG5~}o*B$$-h;Wh*RquaW zwPaM;uQkK`8>S8Ij8)cf5E0kBqD41adZX;BtxL5&5TOk|gGf_=jSNhy6*a%OqS#W3 za6UrKJG?wEu!GlUX5=l_@GGP#G&SPIP(;|&L2eiT@1WLB(E#2cQsoA9;iIPW&rE!N zKW$(8KKbE_NtfyvqnfM7RPrJ+j;#o)eWf}RVT%}A!iocPB6=hJ(NA@IU&ha8v*btW zY@LnFXT9K^JpC^@71)1cB!kE($YO?* z=x(J5L*fRG?E+?Y^~ow#w&$=6zFyZ)tn zer&B9b)upLvq@6G4JNwRXn0^IPqs*7wC6GAQp!HAvZA+G< zR_;87D-~&*=Vna&MZ#3n?kn|EE0yjIse$!++3ZGaOTSs#odbSH_il+q(PUjc zNInj5_$qf>Fua@!z7ZQ^%7Hw(`C)gSW1gZU!!CXMo;nony{*3hD0{X?yKCz05r@rm zw#VX^#1M%8CkV0DFi0Ng?h=J^4EZM85s@l0mRro$0dM5i63oTwC%?y2(CPot^CzTo z3ZSsCY=H|8wH1+##`8f`yob2guO3tJeb#f~v$>WmfQ(f9aZZ4=dG-b)$MHlpHZJghdFE9On$bO>XH&xUXhPjtbg$hu$z6+$B9bf(r$EjH zcS|&C_eTfOU>-(p3KdrI!Vl ztXx%l)|^935q_VC-2S=`gsRli&4@S~?06^uvNfm?wOJD0ZUMAMa^e1HU*kC-7Le2^ zoRH_r3H;G>y>VS>R-Vqf6+jD45ey|SHei&p)a{pSjquA zI;`*n4)#ZtPlz6>DHf_L7App!o>?yK#$j~T8+9INc>rM~1Oh2PZZWBq=W-)@Hzplk zl;WulRzE(vZr}ZR#c!})5kS)bKfGebL0F;8e2KO=O}4oEgNY*+GNxu0X^|K+4<|1c zm36A$Sxy&g_PnbdfKwFV7Qu%=S>H4(=*ZX4{II0u4@+7VYq&CRi_F6*O%A6tD3q1} zGmqEJrTJ$jR6EnF+8IKDWjYt3tSDtDaH)st3ndMrOq(eClpNIG#(Q^-SU8p@O*_XW zl^C|7&e#2;H|%kp5bO zl_+G`{r~-&P~%viB}Yv=3Af}vI?;hAU~T>9$Z`vsr_$1vwff5hn6c0L4|D+=kOP)DPAwzU8>e`!n4&$C7-nom>0Absb*uHpEYAg(Nw z6K5|ro>52$0HTiLTTH>KPu^Npug7XJhQyS1PYFJvxUHA3Rpuzwt}D4b5t^7tsmB{) z=LdDYkC1>M{QL8rAAEqGlAv@;3F_LnalzU6@oaZM6l~dH9k~Z%iGV|>N10|>vukl6 zaJQ2j_y^TEra{%eF?b8c?B|0Rd2JsdiEHxN{dHqv)L_K=7POfa*&it+vrL&n9*{w4xaafI@uPp_EV16mHwtHFgfuko zP)+oF+=-da(3KAC$tn~1@Ih9cb61{HjFlc7+l?>o0sA0>t4ZZ39zMtl%y$q+!(r4l z>SYZMW|kOaH8yN#zJACaT0ZuVfCi}x;ec1Vi<Itr)(j6_u$>YSZgMuB?9YBO4RJSwFm<>NrR;ym*tPr zdm#BRLzLWE9JQI37tG!{UJl^YsURSt$a7!mg%4_b8C_KsXH%g^W?yOBK|C z*-+HBvS)T55)yj!-J=Q|)V+$Yg#J|&e)e~C^O0m#*bEio3^k}u@oee%~Bfpz`HTANxFZbuX}T3YUZetM(-0#$d+(tNHJ@zWYcd@rgJt5AovmNC6qaVO*APm^P{@8Lk>HHN8amUf?hupd z^{~z!a$0^=RJ5)LQQt@XUUWPdqYGaJ$&1OngXFb5-YtB!hLr;jjphOsJkBHEhu&eJ zjciC`NTy9bjL*3c=R@9!Bter`fl^ru-NOzP_oYK;g~p`_R`&*VRjx6POPp$qfQy39 z=6ik|m@%(bf;37XQb(PwV+vKL;~;&D6s#fPa7P*N3ZngKO zeM)A`Nd$7$_Nkf^hhGErWhl`bc-&$Y61hnViS!(gK{%&^hzH* z=^I?4EnO^11P&`^34GR>OgdQ=Vw*4Za@y^{wOf9_*jJepO~^~H?EYK`y8c3KVA=x0 z-3xDk&{?59miV1t&_^us?XX~VtRz-;JCx(_dH}3M@<9%sfxy>4DRi_D8GH@)D+@fZ zD=$cXZc)VYQh~+?fCldsgtYyCFmUE1JdCl>f-w~6&LjtRg#CW>p~R_BI^BB|g_Ge! zIK+<&=EE0Hqu*0Js;(&}?GZ~3>;v=ss{^_nL}0V@!`yuo@eypGib!bF{|? z@-lt{{|HJOej9|iv-}6{8ipaL5v}p?fBEkJ(khJTx5^ry#lv* zTij@$m6@cfpCy+s_gb^(_tzw9^^4y8r!&?}moK2@+r3keaFbfB&_uf}g|k(8hgVU7`y)edtwEqs>58(|5EuPMXgIGrJIxt=c`7GvLDd8>`)6JqNt^>RoVWKN< zQ0}yrZbc@HEGhs??;CS9R@**?aWacADp0`QJw}q8Nx&|VxDCvM4swRtd_&Cv5zM9DT=apu5}P`6pJfs*M{W`p zU>4nIiGoM55c;E0z0@-0pA=XV+Q_(2Cd=~`*FgWMd0WlPr292Y0>a`xIABP9se*~e zmg*2rp;v9A>(b#uir>H^zeI;5Dn(3_JyN0`PQF0LlBIUnskda%#4a~gIgm3_t;D`5 ze(vmvO5ZC3(XSe7)Mk+ANappt>(>sEz4gaM`B|m5K04Nn@mn92VP_%-=$4i@KAe&A zv|j(GAidWSmU}9FwZn3T{a-tKs+7oBx%#YiV|;>lYc3=QDW+nXaE9fMJO#G}2wD<6 z(WH2`nEL)sb2e7_FyIag@B9%yK$h4Z>QP(REDx5^_;wWGLp)pq+h9gY>wGmgcHF(< zkt9;_ss8bJzEtbV`bbiKUiR_}-@p4*=WoF(ij(3zZWn{E92OdvKWktDt*9UE86neGaE(G&i@2~jmLEC>c*({RL%yDd7J5agI zgUJ6ertrLbW?enJKIe|NbAS54Sw@B#pO(qnvO%Gx)5`a*)9ehDrkPh;UGIMInfzO+ zH+?4mt^t(~(da&FT-x&5rHrWIrnJ6>daj0a`Ni7=apvQLPvFj%&8 zJPtz)f-CBH8*N|9c=q60cr#A48kfdgxtzx{G$;0SwbaU8lUQ>2inA6DyMnj}YF${P zt^~PMd{>BCgD$R66|k>wMVUeV92_QNY||ZTV1q7WiYhmzj#wU%p^;C?NNK`Idu}Q} zrZRZeEkKqZ?W0qe?9?Ocx9Hcvi5DJ;hQ3#nazzjSO%s`?q1%P_t#tA9b&TcT z`s_#?^TTjJuVvkMtVS9f=_1(t(KoC5qx@qGt*Vj#isKgFjj2?;*MudhK>2}JpX*(1 zPw$6kNW%2S9=W6mU}5=b_q=M&kr$qR=9@Y5-)h?CzW*rS=@ILS-Zf6NH+GMI{6)6@ z%z>39xFRTy4u`@Oz|my9*zi&3%NtI>DeDA2@KGru9QrDX{W`ggmdXrOMWIw~z4pR5 zj=D5;)FsL<=w!Lm+aNIk1%f8|Oa8hdz zl+WCci~n!VhM%JaHI|)EaQZKwKe|%POW5IwF4X65u89=?j|I(cl zel5l$FDCKl|AjH$B2TdxiZTYF5Y-GK6bh!)V{$68K*N*R%n<>m5!9?OE3z!Tj@YyN z#+An=*E^{_TUqO>_Gl@7EAd!^kb5Um3~#a&5bS@>x#0Dicf|qps#x-yNy`mJs?F#B z4Iwx8tMd5L6&Vpl17wbA*Ot}X)mn&U*`|Fw#wLs~#_as8erdqZjXtQgBX?1 zZ9nCW9cUVi>Tc02!K@FBwguLx{>1Ygc7DBU_-*U%U=1#f{!uxbprF$dp}F#ZOw|c& z$zdBCV(Uko$U&!kt2P%OK6O-YHR^o*NSUs`Yw#0(C_g{C&KdkD&kAHikQ56xVFYwov1FkY3;k(x#b<|EIHr*9mZK# zCqBlYHZ|wBzvdo$YE8{eP~m}eYJ!v6yZTdoWlSiPy13AjT;fEx3A3i7)B|8#^kiy34Tf5xw$;= zalg~bvQv+x?`;Xl^d)b^3V{M^LPl^S(Hoxqo`HqGo#9yf^gm830!8E6M82zPf+T>Z6I;NH{*v zu56x?*GR56sqK}6!ynIAXGHPA1*_*Q)3r~7GnW|!yIwBXxer5r)Q{(vH5YL^xSRi- z99UR}EJ4)`3Nn6A;ad+?D6nZ`zfb>`^wir$zsmWauXDc`*+KqM?Zum=&)ll}x+-u# zZR0BiI`Q?XFNH|`hqh?9oyy^`UY1UU@0VU3fkGuWWWIv-+78MbE-@+z1ixXp7&^)#2JLz3X(nFUL=hk)`1Blbf?&*^L()vBmY> zU%%&9lYY4?cl!N#9auqDH;3ja#he3tZ}+AfJK%S-$_OnFH)A-f7&{OWVAMNU$0}q2LpQ@Iu(%U3o-DG85O&)y^D+)=k@R#g+z=Q6`gTV-Ub?+&n}g zCkPBK=K{r!qh88yv`2xuB~cm?U42eJiM6eND<@CQ?Cws&M#EFljF2|uCz2=5jjYTi zqInajdX`V_XsWZ;)LcnZJ3Mr3S}o>5h`>hf7xE6^1;|Gr!>>c`Gp;69TP@NWQ!|OQ zhASF?jPMsG8DX{Ze7T{P8g9saa@M**;-MlTx7Cx#ZAuU>Gf{WyHf3C(LtW&NF{sXq z(b|Y;L`E^CU^R`ms}W`Dta|3y(cfe1HR!{NH#KOPbK26}f9`eL-?>Yv09@I)uru91 z*PXC?SKF*-kTX{y`u*KPkbF?!Ck6Hte%Y+UZ#tYvM}Z|k-k z20>wi+I5sGEDCs0$@562NeSZN7G1W{94me&e7JAnW$-whlAFGH7mI6$|gvKsrap!Zq8gtl2i}$o8@rssl-{vrNY6 z3l%CHS2~pRay<*xEqVChw8IDIFRC}E^VH{mdVKXaBS*efxbS@yDm>P_`S2y5-`S<> zeFxO^h+J=O&QoG0aJ%@`g~hMc!iQag+o{o(hvZF6L=$C&7^E`MA^WQxr`Fgzy4kyn z{?>a@T{`nr%(p6C#Y#bgrx^K*rF7i=z)h$7s&QrjdvmZ=k6Z34SAEdwVl!1sQssN{ zt=c=f;fB@C>Xs-pSsR4n5jvp6u;uQkU$vz(C|K^1TppVgG801es&ymAaF&!nju-_R zBS*%1Dl+Ifg#=4Hj;w`|djPa#teSUW)x2{QIA97&;c_Ih((a&&u6IH#H+=FQ`O z>?qM=^)sKRH5UC8m#$pB1Jldd(ML~4=C4lNPxt>HN#&Z;xT?3*p=7- zrbPnFcH8zw0?V187NH!4rP?}s1^--;v$Yxg_iI~wN^&HD9}BkI_R~f{ubOY2xDCcj zHGBfLk*Bc{GsiZ0!`CKb*mI{CTo7_)ENK5vYIVIH&Eci4{;rA|{-iy#Ye2{Cp<=-t=VyqX?Xxn z6JdgcaR%sF4Fs1>2oQ9q`RFVWvWR0L-Dpuo;iO_bvd|;*AeO6R8mQ$J4$5d~Hy+BoOQ8Q~^#(7cbTn{2NZO)@)h7pjOWtuJJsg$lU zkf(Dq*md73fFoOiYz*cRNG8L5mbbV+9zC%RB!6-3gj{bGpt?_wN_p<1+ObaY;Vg$a zG`~U7VXn9Ch@M8t&8Z5nG4P>k7vfv3jnEY)ZzDk;r#f)3)FKfuCrTxUw2)7tJomRp z-y2p9WB;hi1aapRCIVKb4lf0%EI8bqR=ND{j53Zf0S06T2?DuXuEd`=lu5k%*M~s@Uc+pymC`TZHtwp;P@Lv^BTv? z#R1_u`0WK@U)o0eh5p&7M z|Hr^5RHtB$=Pmt%{{D4|1nBy|y7m#UKTbnU#{7Tg)9VR#0+%RGE$eydR z!w^JdmI<~A( zfau@;ov1&Lisv-llh`>_Hz?Jn;T?GdXd--Yn0T*KR(7A#;)O^DLi8ah);)vRPlnlP z{v;nc#TuL_JWa#pTD`<3P(A7?jur&%FC1gqg`wB4QKr-yF(=H*=f+??m$eFonv3F7{-t|ZAP9mx)m=Nr|k7SXo&ADuOk+5#Ky zWU{XXT|Fj7^g#T$c|cCB=<-4y1-eJRD(6PLtSe~3V;Xzq248HV@#~{?Csb6j^+a}J zj2Iq$vU!;$OP=b|nLaSf=WprX=KafSA3r~{(Xl5#{OsMQIz0IPzNRSvJa%VMG-$`b z?(*nDu!N2+j?3uIUJnWd%;zfm(#;Lm=l$OaC~fX)R~387hwD1y$>fLI_lb;pUp(Bt zcUtE!4mYyS=srB^&@O&X+Gp*tL#ho*g>Q}Xt%Q824=s(sb ziPVOLj34%-^jv;o1pf)Y_J^J00>{?&Z=Yqf`6)8mzx_+MGw6cSM_nWMisI)*CLqU~c()`5b06pC9vY79vvF01BDbr&mvlf*p0d3t@xIq*kJ?hVXw*nJy0 zJ^I{m=R?I8zSXYI{CV~|8Dvnj6h4Ab(B9aA$4YF_k)3Dj3~st7Wm_Fii0onhN67!8 zDyWJYoGzR=b6!oz%EQmY`@*r;8~l_7-A!DjW-N^7z;vc?5jFy&-!7`L6eUzq-|eVj zEohBqps2Y`NaoSF$st>@1U#{W z6XBgVOduxU;hl8oR+Ufo#H(PRXdTRYZCIq$aGR^YQ20G zR!#&~BUoqSe(5ZH`gpbngW$S=`-C_Jt~gNcezhsXY-%n~Rc#sd$jCOYUtW9b`8Nw3 zD_;8hcT?%`xKlaRjMQ-M7wjUntm9Mh1e8akBI%UiL8*n*R&>&`kvYvvPaOHj2}SEx zdT?Cp7t5{uk79u>BM&KW#wxh@$k5b$X2t_@$NVNn{<>o1_y5oq9^A6qi64xf-3V1S zSdYf2dl^A4)^;)rFb0Fl(R)w4mOJCY4h^StXgF2U56*UO5PR>RHJ4DlcB0v4LkO=?Gi^E zI(PZlcZdGCn%C=4s;rN84BUF+v63(CuCsx{$VAI1Ln!(S2#A$=l4hAz-H^Ixg%8mj z$nSG>*@@!prnT)x{&TAddB~Jd6b8xe#t(DmA^(LQrd;T@8YI}R#7ax zDSaB%dr-BrIkeAMq_EX+;{4ka7guCEPh{6m1&kb5o^t2^#Mgy)H+)|ls!OO zv#|1=zeQDJ(fs_+uIHRK$cbXI@R+#{)z#QN-R8j!DX$1m*6$eGL*h@#jz*NEw|20( z4<03cnQgg&Qy~JR)P@wIhCp%rip~W&}=W%!{p= zxf)YZ<9Rl7ZR_YjCJ4Ql{$SvfG8Iz=hBvYI(Q^(R7Iu{0iu?gTG65ZKxBwK@{~Q61M}j|h0=b}#JiG9Mh|ml zU)J(tjpc_~smwB_RrCBpaI0brqXF zxLzZN5z2VLyZtc`#lz`vQ8*{UN@grSAHD2Y(O%GW=CWI~I6(t}{FNgDaCG5?EQGHH zgr6!(3N5gq#ub6Z9%R!=Ra@dTW`{vudlNj+jidIWu|DyAFXS46-@j9we9mu6sbN@O&g)S=NUPyTx{6>c~HtqtVlVMW3#JuOv_^$L|n8A*Sn zXm#fYHO;6s=;AUx+)4Xv)&WJXKm!!mi0=9_C|3<1UNyF-=2cm%oV>Z=w@M-Zw|*TO zy&65*>3J=NSCV*MBgeg}UwXOvrB`zQZ6Jn^#!^2UoV*9cbCL6Lo|yd-#jg6>7CDUo zd1NjE&ujnhP<;C2p1&I7M8nAk(!d@R4|*akaH-lJw@4?JTt6#I zkku^8Hjd(#5Ek4BiU+OzeAlFs&xb(sY)tn>F~zbi>$DaoB0Mb3g@<}mWi5v)+Cu~R z)!!&L84cvu@g2SURGmfX{|`|-XTqqObnLIPsCFfXT681>s!G8Qwh{K&>`?Ax@I!~A zxm6iu{|I5@*<|31X|yoP(8*gfi$e_qQ#zC zn2b#{0VQC_PsL|yAB$<_k34!`*B!rKi}&OWi)sYcFUN=B!t}m3#Kyz@BA1B0VJ7}8 zKtcN!hO=_&q(oC^ve%+f_K9W!;hLkMfS0vftVZ_f8T06@QAc#l-4&srR}NSB6@!iM zTV*ydMT$&4K==lJqy_`v>{5V<91GNe%ZcZh6YRO`e;3X4h?s7KjR)>PLWRTjXwYXN zP&Aqs@QtKIvma7I3=L<$GSI_-FcXf;jtCM_&Q*7uYu)j|t(EA`}YA zXS>DRz=7~5Rj1>Tr_`ENex`YcF_O<>h}P^{gov|PpYN;4#*#k05h}+Vs2qQK3`M&u zaOc?S;N^h4hZ?WeiVWx2^Gd_3wJR zcisbcQ+81^0*T)fX-FTU3-R2gY~C#RpvK&}$E$0YK45gSsnZ*Udl3wMye)U}EqBo` z^R|@(roh6ltocmdHEpk4(%z8RLk10Jfe8<7SfwuQcw@`Q&yfs)K%I-ZW!b=e%-+6( z|9ZYgLoKj*nUWXVPauW}T^Xa$BFqlA5s^%;Ifgcm{=vFXgF4&(-R3205tv;>4HNc- zo|fByGFZuya$xm;k%OHhtsRU1KZ`tNB!l+7$N{-SRTdTl(gT?+((#3w-B*>8rpY`W z8~R&S@gT*b1#spYDsAzGHQgFY>Wcxis70t(!LU=870il|DyHDm&?!5H!L&FdGA{~x zM@KJVCqdoV(VMj$5&K-NU2`tm<-wF+ePIrOLVZnT7FD^@nj5-bv3fERDBg>KScKJs z-=>yP%&dJL*P!&Q?vry)UYsX=ehDxT3h<2a=&;ruoM*Es#_X1OAXf(*crG{Ssc6 zdmO8szu2cx@^Ob%IknriPU~q{?cyN#B4;jR6W?at5l4OVhFKf0wHVr3#|~KON^y4R z!YS+N^(8N)Yx8<~t%Lo4qat3U^w(~iq%}(_MB+XLHpUwjuy$O~@t=x=KUbTEgW|Rk zq;rp6YkW%(R1r5l(|C8VVo0_OootNA%Ra>wuz9vq8@^S9Ilto!?ryX= z!D+VdXGt)Z_A+v=Avy2zBq5S6hgAY%6bIRDVeQB5GQ*Z*#2?oYiXrARi|cnWa;+agmrNH8-@4q11!c?YT;a}=0|Sat|6v?++g85X0|xUx7w zw}@w(HFZN@>5h{>^d;sE9?`Evr5aIf)T|Fr7>CCeoJ)#fQMuCDkIUWs~QoN=6Z{vTr7RrX7}IdI!_DkMaZo@RSue@fTZ~mhD`#fB?dRk)@=8TWNP-ub;}^Ne^V|GL-OZ#%!NAuYnfMrNq(q)kS!O)Wk< zdi7W`9g|l#OD$czQ>gRvWY-zswr-$i@gLLzz}SvF*0?7?a%I(3FP*DtWZm6sG(5jC ztFFjgBkq#RH3F_CAl1kOHQ;q>6l%R}wK}M$Tbj%e$1S2qf{wA`WoZWv;)@Sa;$t<9Cj!xXAZve1k+G!B@hSx};;xIHj?5 zhh`7}i7=jT631izJ(R5(ZaB^#Tc+Kl6R)Ax@lRfa(u`|o)?%C&2dWEO5RKp=-6h|t zY$ZEAD&-JBH1?7N2dZ_ET|j_g#p({99NjNa5166ZNG5TelJ{L-tQzES9a&eG0YRPU z`_nvY`d^8O`A&#~xEvD^w8eOh$mS^fQ~E#EnxHOGRmkGav?G!xx|RD|+J2flL%aY9 z_W)5rWUrle5JR8+V_~Z3EFYYNW7 zU9Ne=F9w)((HY$M_QxxqC0$vvH+X!O^)B9Wz49T^v*I@)FgOn0<*R~V=E5HN=Gnsc zRcwO$D^8eg{J7aNfx+LcER%fY{8hP_cs$a0pJ{*<55Mz;$=e{|@axiG;Re}vU_DV+ zPE~$Agm?z+^tSU|{Ak@j1MyE4lwF}*6SqXAd-~p~rHyI_u9yaWq{6ec!=Wo&nm>{X z*g1Zgw&kFdLk@U^m4sc;HYEsLQZWX0h4A(`h7exEGuvAL75v7yA?HpHRNooy+-#@gxV;Fd6zK^*x?JX(? zOOrQItNYUSvWK>py_{Z#t`6ahpy`SE3_Us)uN&F=bln`M(a?09yQhNFV>K!I_#Q{2 zXFt3X;&i7w@S7`-96 zx=A&!%bdx{<9tdismJd(6IZl#&Ze-%-F%NoMZox6Lvfuibqi)r^62`Hj3 zPToa>i*$b5ntszTa3;DeI?gZ=rPRc699##Q1 zZp2W=B=A&ykgsmsfm&o)!Rk-w?kDk4`~cFfQb4$PI<|cA-w;mB1L3btY#dR*YpoWW zA#yF~2*g&NY6DN^ob0!tUErO=hyvOzP#5OMDn_Ewi>n7Fvnb{#*t5^wy@GHI`rWR= zF%BT=F_O@hDc467pOJ_Lep~PUAD+4L)IorJmS2q~*#|y*X}D;X=dP-J(`S;VjHAeb zxF5)Mk=dRcCWdb-@JDhel+%-3%dT(xnv&;MH-YDyPVC5@Ryn&b9) zW)^yQR;AeEijE}_GwCD-B|MMcSmfZoi)+^cC%ANjs|ACQv2b}ugWo}X+FK~%uLKf` zz5^1&@A|viE68Zc-UAt5&;OI8mIXg5iJJYNH?R>#?(TaVf7(1O`P;tW52 zCzt6Ch3GYYm)G+s8$9w%aG*Y29)*kfo=})uh|U@Z`#ti_U-FcgbvUIhQsvE+1EF&e z#4z89{cS*J71+J<9f?c`PSgG%++z%N4d9*>t-OtQ+RSG-ir4>26hB$WcKc{WW95mj z(ercgD=SF4(nR2BpCwR2aR)R-q58krD^O`{;t?ey7=g!0+?F=}lPR zDVR_{QjuxAIqa4$GpKO2<=|g)jVXZdECa=ae{jDB44**Z^q2=R4xHJz0T8M4x9-gu z^5Jw44>T=)`v;RXgs;`&hk>XL1H=`U7YTx^AbZvcp4oQ(@hu-WqKI|$M;*3Z`WxPA zaUGI7r0(81_464&|B8&K(wc4aDDfmEwfDs10VmQ|*XqZ!%m7_8cMj2xlBslV`g!_F z%f9p2aoUk6P4?+Mu`0< zJq!fj1u^bX9S8_m^lRo4ychyL@@@54B?%Ga?i6-Kgmsvq2NCd|@KwoyG3V&liap^s z>1Q-~-@QjsSV9KbKQv@nDj9W>QMW*kdm>+bs}M)k>2~P(jIZH?@R#@ZFE7^7-f|(o zM^D2YlSfd_JIVmL0K6@nh8=8evJ~32&!g4)c;0$3bk@CyLUur58eOdJM$3k@Cr(yH z5j$w9F@)uZ&(Tiq!RX=$m5iJh#k8pvaI|RiG z@#%1g9{e7?s%rzqfh>HW6Hz9|0eJA{h;QtE;KW)iJ>2z(36bSk%;Z4KXeuB44rk9| z4>Z%=Nl0SOLhF4olHzyqJ0HnEMC?r8sKY4@#A=`i-CP!U1M9^1Mb>29$cHYeQ#OB{ zD0<(b7pqHYif4c|C#IzBm`BSlKVEqCPeg5jgQx6U2ubyB0t|0Lj}(&@6t=;=7f-jg zC{Cs?9>2YLPcf!}-=K$9^clD4Jl-_dj=1rxSvq&|**ot+;$1zHlyPDY#~_hu%j1F5h|VN8!b}tt6raHiKl{Ff*#Y0>N@E(-Mx0 z+Q&;%DWlkT9h9=e$e)f-?^=JqjDO5f@BE)Kgo8(z3ov!cMFkJO z(HOJ*4ajI%g)=ke;qAf>#BYOh03OZRkXYN-qIXRqi$T5dnD55`?)03-Z;IVlP z+9QuW5M54BYr}ce-Uu?qo`*dy#zmjSNgV%^Iu+U)9gGm&t2H3`?^1Z~F>hoAmGzHD zCxa@tf=jBKs23=2vQ<5sJU1aKNf7aQNe?yE6&%@)~z&LTatfHs;Q1-$FOUmCmsFbB>V+ zM7rcM>6uYK_AIu$c`xugrD)RTDgeSKhToB|PqRkG}T%1LWB-?P@w8<1JIiYWzN^Q+6RI!z;vmxM;~7RcSi{LkAK&?bjiv2@ z4YT7OWbS=k_em<9x#o^XZaWc^80SODs-ckPWKIJQUw<>V2AEUoh%t(z}%p`KJ zeV268Th$ZIMI0HlYaln64v?pg?%m>4;}ws@72*5V82O}pfvPk^*R6tv6Nm30Y~VGh zUA8Z9Jfy`9!1r{hYVL2WB6Mv7aW0&($aSK~V}v~p1@GbFfoU4SmqyOXRv|l<=h19e z(amJEixHcgjLbE6>H0+Mt81@q?TTlJw&TF}o@p&QmYX1h^;^;D!HG_Xa1L^X&;4eB zKqTsvQ*bTvNx{rJ?oRZRSTv^sl}Rdvg&dpH{YAR18j|kEzxTZ);8oY z!R}D|3Bh-|+Y{XL9wk6+vz`MA?ZKLfb|rn~3FS7a2XAD(if7w0{q^LPoRJzWuvuDuy2g{x_!5z%jJQ*gseou2ZxaFv=RBYuApjIU_= ziRq*_#f@F9vKLs^&nDpTU2#2WiwV!rviM2#QVNSOGm&D z$f5-o$BTuX3ncDhPr8I2YTEz)aP{r>+C!kJh>)1$A{i~ztU5L&k6=XW4%;4S^JI!pPb=AsU;qBcRb8&v@3m69 z@?TBfD3@Q5v@3{#-!iHZ-5PJwT5E_=*comb!&3`e?R^YU+fw~0eiTy+UxSSqQG9v$ zNPD|xF+GyZYtr6H!ufJwW|2D0PF*E=7b>{~5{B<2kR<>y@rNP~ICuMBy3W{S@odi*X_7>kt>D*Px%Xvf;o^Vcs^mUpaKIhs z-mUVZ`xth^@*2V&$v=V-5YuUJoiKvuY}oHKWgDV}a0CxkE*n4jdLMxYydj^Q>xqgw z9HB^#{{VX3!h1u3?lD{^zbZl$9_=KnCyj8lv{&S%atR3QZWlQJ!I6TroE-fotvPy3 z9d&7Pi|+@V7`EIUZnJZ&{5(URO{%&)iLSjD2UR;ovpg`)Ex%s|rJQI%m0~XL8c)BJ zk*{wpd|SoL-kCseJDNNZ_wQKYK)*qME z<=cxspZ41e3(}A0Em0(GWT_%W>(-i>dTsi&?i*(YA$a?-tr5+sBlkqcp;{?DpXFEV zTvTo6XGy;+iSk|CjbqiX7C8%Yf2hsIm&X_1LQr<($N$yF^$S+b+ayVg*|-M@vI%=U zIzB3^zNy&RPao{ic;}Z5TNO^K`0pk;zS+G$CT4f|c)I6(Gv`>ng5$nC^z`blP!vs0 zZBjxikv)$gz0PZE$Fn|}o4GT47W%(Z+sl>O{p4d|_HE3~WTH3+- zeILDZ^*3*{QSOC@7qlNADdqFInFPmmwk4>d2FFQ*sL%7)*hB4q>+Ty>Xck#kgRO8P z*9ao{;TO^xUjNe}a0#7s=pLLXc<;7Gy)tVg=R~xElP}Goc6}hF?;-dhWEycVde${d zH%@(J`c0ode*T%mej` ze3o4K)z?}4=Pp~vyP!#;oNOX1(8Mh|*j4&pw3{^;S%T|+MJQ0B^19YzdiCU#L(+&IES zV0yR@P06QwD*6V)t>Ke9HOZM%m7%(b-&ySgr+>F=_^s+XMLX}Nr{dm z6B(9h;#snl#C4imR3k{lGJ5TdVq=~_|FXPR5s&58`^~F9wxr`5o%dLXkIsg$NR-k9{parQ zqOZ;u6Jp*83yQ3+RAlc{I{Em zbxLq-{^{K2jhAy*%T2B5+^c*dKFgqID&`0+TIFxLCsNb`T#)qt(bXlH2z@>3 zodkcpty)dupkz$&mF&>+YSHk_)w)D)@GSLcX1K{&GHCNnD1;x3R&gS2=^v_+iGt)u zJ6$+;d-GxA-m47uMsH{TS{$IH`%FAZEyYu8Qb@?<@82|nT+uiF)7aBxt^e39J+SCg6yI9 zTGPjhNf-P*e?_or^cNlj=#g~qUUlJ7RREyMfzJY|Z%N!HOmI6K7}2%pPl-wiy?jtJ zDCUS-e9I_1iT^@p{z8;Jf#Hq_XfP=N`$(*J~TG z^MH3Pp&jB40lUYTfb41UMvwQ(mh1dJ6%nN1W1c?$Z9nu6xOCwUn5%551K$p>B-4mHq7h&YVlqx(w>_trGq@WLlV6HN681D8kYj+y>ncFHV11J`(M(G z%Y6%_x#N5{uO!k~uqezUNymc44UZDn)=Y3Uwy4k(TK#v^kN`E6tfaG-&Sf-Qy*2olBE zn@X@{bjF^DTAWSTk~!;%TuA=c>?}CE@W@QrmkGJz)c5;{AO+)as@Nq%lYdk=#+4paj?L6lcFd3ZRNQHmP1j7y?m&W%eEq zcGuIa_%7H1p0lNuF7~mu#OTs_iXuWynQSz65BlGPnTKNMKUnfzf11(Yn$l={MYdAA zce>lEJ+?hxxG|6ooUGpC-Td^v3E6qKb-H`G^;|jXVib?f9hau4}Nxzwpo+w?LGWhL_E~~o)7Yr zjK{I~cG|b94|uyc`BrYyI-0rXB68`+Xv#Pci0VpavRMph6WQC)^vcNE>U<@vo;?y| zA#z$|qzFrekc_@0qe9RJf$}bXg)`Ijg|y4u)MM4&=*XaDj2|OT<;g1SAPU*oZ;tNG zsbGO%0=Mh#dmFPnkpvJJqa;jLTgB@)^uHKG76sPN^|5P&u`wHs@vL)Dg~QsxeVCuwU{D2Z!Vj-FgMe+!+5&M1N1=u=J} zG-#a-TglUIr-W@#w?ky*Jz1Z)*j-*vf0IZD(F2*RG9k=*$h27t&^4^=ekjMWrN@R0 zN*E#Sx?oA)nsHmRhGXrrGy#X<0B zx+5amHo~^F?o(6_WcajdC%DTYa=z$yL~N2`NyNyOV3zERf!e8%C;(?es_LqS)#U{- zdp*na?$7-0S2L3;=je6-77ZH#?tnWUDEC6WBi~Hi@>bOuig=Gv8Ui{+Hq&*+degOb zwyB@c}(BT4U(;Ur2j3wtKN69*2K*# zm%ccl--|J-bixB9$u0KXUPfmNKjp)q6;2Sb+m}6(lyC9JW3;2uzLpiS-%3uLb+PE3 zFIG9fZ+eGBAJH=4U}p^Ujtd5VV47xy`b%SgBVR9CPL1o2FM*GM0OqQVwU~ zj9Nr@0{B+7y`^7O?4X6;H{FVD&1mMycJ9@2Vq*9mH;hx`YEQZ( z@o1J@Mnp5_kz_xJEA~J%10a#LADF>aZa%DsZI7<5u!W@Vr9q?YKG9DT~w>yblzHAa`zMWKiw4rBAvz zp=jMoA1S-*3gNg;w6!RdG`<9VmyNHq{1k!YQ{*mr)Cd|*%VfnCyh)t|kQnP?NqEKkV` z$>loKy}d)-e4`s~>RD{B(^wKZ5bQ~S=n&&lxIeM+^}aH{X_E5NTqM;OMC8B>G+@D+ptwb_$T4ujsE3` zbJa;5#r`Gq7Jw|k#-D*Cf-jRwj+iN+;DphHIvrMM&q!692;r^QepZnLAiO?TQ|k8; zeFy!b`bNvxV`$#pr_jHnd|#H@gfxbtiTkxugokE06rWLIux}3yq(6Aypu_7|Z|Y4( zF}?7YdK|WnpNSsaubMZW9-}HLK2EEc-P9D?ANc9BpH|AdrgfpSShHrQ7TUS=AV>sT zpwi>hCms&TKfHO^KYm=6UpiLtapEwFAa39KE+__%FqMSR#$n55WifKlDADNK?hH;b zF&Gc77#BFC9u%VRPdM3IAFb*CC*;+g4po^@uj*Z|CO_PMV9~QRR0F!X)S1|!XR>;{ z*b=s7)0NHnukX~mc>0ZYN^)}nIhGZgCvw0#ow=rvg1bYfj_x(_?V7ntb@=*rk4+?A z2C;XNTNl4lpwsnBUE00>udVdL99h5P_KI{Ro6A^b#xeSo*%AHJ?&WiLFU3tn3I3nI zQsrkplW)rpS*kqK{mQN^-}B;O$XqX2FR7q(xdbaAY3cKJx z;of}K058H2*$i@wI^s^ny>`5o<=x|I&V}u^CGAL0L)P2)_dBbMX3do>8l`$1i4H2A z=&}8Wm!v!tX$Cpc8-wo4=^p>)%B!!eNAq&^)Zb990u&Ra-bcNmgg(4^^`>?wGhWiw zNe@=elEuKMdy%?_lZgQMHXSadb)MgODvs|2RHCv}o`TU$^s;{Z-gpgWDC$e7bgx zt+i`xx>m6IBe^4Lmj_Foi}3EMZCMcg61BQNP~+N}uQl(kymv+vpPqBU&{$l(h4zDX zbsns6KMh!LY#XGj8kO`YdJxzon5tdmLT?n)6K4!LykX=NkiArS`;Sr)hwKkVF z=jPGcMZ`T|7eNF&a!f&j)V~kQF?hsF3trnG0Di(uLE@M`I#-?TqKaCE`$8%aVebd+ zdM&C^SPU7L55ud^qs@<5vSj%W$z(ax64=1#AqycmXRu&}k?OJM1(~j_xG9syMk!6i zdcgsK+``cSUg=|^M@osdq~QStM3(G5zm(bcOPPaNj#FjMCV0Gi%CZ;L5jC01~1w+vohGJ*cr}OZ7E}_Il_tKT>*P(xaDQ6H` zf)IkJGz+#vFt|*2QbcDfJzCV?w%qCU!SB=wkbKc%0)acCX{p+y#mvUd^Ojy&{m$Cy z<@y9C<3oZ5%ii+~xxk7w+*Pdct{G2{h0|H4T>%4`b|$R`R`$+zjrS(?=vCxPkN>!*fewN%twR*%WF_)znp#HXQ%L^V(ZB`{hyelu%pj^3|agnP= z?eov4ocJEHrM8j=HWtRxF3QG^AnvkXnlt!}l-5)~Oa7o+&liawV*JZ=jfwQPnWEWw zykwoO^UNB3=0AYkPMf5*xFsG)n}oyRXsE zox2hMe|+yS;#$H=5UcGp7&(Bpv!#d82b#UVBVWID#fJgimrZOyQslx{lWq{YFFaO^ zCQF5$tXk;FxcKAItN*n@L-+hS|Ne({3b$9N_`dNtcFl|( z+|KkLSDzEy4*kxnmvpRsq~Pe8BkC5PMFxT$T^dmKAx4+s=myXbxW3qZ`p?D!yWU5Q zF={{X(?hJ2@h(gkt~)6Hk=yr;C{FsJ{6E$&JT_`^(Nxq7eH@0sQUw9lR?6wB0t-y3 zwcmAFRE|OjA)L&r8^&_`@*_~rppSOSm`W5gA}SE@o(OUWOK7c(s&gf?Lx2_3J2wt; zXIbFBB*e9Pmu!;mN3=hC1Cqv6m5?lRnqdYd?PKPjGZ*DOopDE=mZhzT^@m!gGkT*IyJUh2&r3Bs+agnd6av=AW zW|?DH;gM&_i_~RDFLwS#kc0-=YK?pGXsnQE@>b)4BwTrEu%vq|eX97fRq2$yI%97Z zp=O!2(1Y3=m*ScES+!Hi13rBH_C}U*pMynFR+uP&J>pyxnU>H4|7=!OK)#X7BwUE0 z5j+*wL~AQVF_WUS71?0iC#R0TN2^y`UHcHZ$pGUT6Bhr4%`4vh^_ofbtC9{^8oR~Q z;ni6HgKPm6FXYi2rZk5~gmH(WKE7uNvB%08|5!O=y!Dky{Ge;aO+XxE4XV9Qzl|3@ z!ev~yhEPy$LYnnn=<)V&6 z29Qng#sJdORD)7j%car0%|7w|bS8kms(CP)ee#RW9NagF9LRc1FLvfO*Viw7)u z8ny@n6#38(<(t2w(0di5=(cMz)zzXzi`D`ZfI$ zqv$`-xKY{OFmF>&zeoS%ATJ&s@0mB zsXdM_pUe2#jN>bMsG%o4Pn|#yz3xc>O)AyK1UV{?pvgM}Y7^1+0fCWHlm!#4taesm zf{djY$Nwriks@Q7S58{;e67x3_t{Tn@SVqoVrDLeE1gc$*7j>6t^u&*KmGr#T?bSZ zSJzdEUBP@7L;;OSL=y!oNGBTol2|b6Z$&T?3l@q6kRljs#F9i~LqIf$#2!UZnz2AE z2nIz(!GZ{iNDvee;r;vGJ2P+Iyo&kOI&0Q2JmB%>&b|BYv(G+un6PivhY~#kNuDyg z5|oR;Vya2CDqeFRb*LHj%d{SrT~KSQAHV`hIcQDb`^HlAk}I2@}RL ztGd7nNF3JGdyjByqUslf#bW8awvM8UNret`u!VAYhX3?_VO(0qc%W99$>@5U@OMkC zroC-01nM&JL{wK9WQF}>ylzM0XyCKz)7SlyzV*{4&k@8s(CNVFheXYF7VxV8na9#n z$c-U0b^aLNszh9@#cH?sE3tRGVl)|=pp(ximo*VDZr^vhupFOK6G_u!w%@7cM~s98 zM)?8?RUv`vXl3PV+LXxMLx)s2W=xjx9|3v9Rev&X2yln}lRZ(%@9(zJe_gu8B#PQy zfWuRN^a&=kI^a1a;Q{7xSwzB%FB97ZxG{uf8&_}J1%wm@H;$$Da1By44ze9refn=M zAc;yES5-@+rf|mG)bI&$;S)~5SfE8ms@^3VL{+*NVbqG`GPcyA>!**Jc@J$8_;!?I{^-8X(6D8!%tN+iO8FLM6%=8}>E`04 zCxP*XB%h=v@Z*3b#jYf9>rl)#)D*BpUEsTJkk8`iG0t)0vQV4KMoS+7V$f$~2$__z zN?AoWIef0^v{kLp#fm&S-6v{%bk6tq<1LCa7nwFHyzqMAxE5dR9ssdCR)gKgR#<=6 zWYM_~idMC}(gGTK=yC8A3eK!|-z<$l)|Le8r^~0)VR{`D3`4S`nODa~n1%Ao*!9;7hh5C@2>YqBGWp&2 z3ljK4-ummHi246;y)9)Qj%u?0nOUTJs7Qs1^WE2nr_kKSc+H=SIS3@Lj-k@`XN>EQj znssIDET|cdd4WRpm8pQ?eGG#pqv4c;VqvWaO}mQq@Qr6AH~AChPRj?9eiGOYylMIa zjAp=OgT<$OHXLV)sytOSSzA4dt|T7Z>J!>ZSPZ^FVVm1EH=Q%S zXmhlIIp1cAHJiehlCU7J`ET=3w;ibV1wKr-8*}7&8o-9A;8zW~sOmDybAT6Q<=_=j z1M6T_%;7voG0Xv8uj2#2{UxF>Hmj@N2=iv+Mzx8}heKXS2^dT4xY#dcyu5HJjBS$3}~nL+wK=GV{ztYlHradaNL- zW}mV)EU8a{yE?_xnV<@g%#R)phqw@wrlQmU!i00YXjmr!O?5ASEFd$BPrjRT6|59$ zU#0aE>*~-s3Jq1yjPOK z3r9oa@4vEjfo@wxaP$Ca7FUW|)__Dj-=rPjPn9T`UJDZvw#MGH(5i74q#e>lJHoKg zbQVpi?4dA?SXZzVGO(D0Qw^e>LvOR%gc4I4tpU~^QHn3)W zVfchuRr5D3oMfDL#5&$(@w~(*H+?dHFAV>`49kPKY?!y%BHq+Z)SyH#J0`TdU252+ ztS%X?`fh6fz}Pp!d2+tj))cYj<`~#)E=d`4%LFI%eEN$e2v?K!)4QBRW2pSDpF}n_ z6>|HE!xXYo5m*=RJaIXI^ZT6>FnrpZ4&Gm6GkE21TwUg@16_W&V?AIWMK86Lzq`Dx@&}uk~C$fe*0M*sP!|H&`_1s+!-it56yX>>UZ0d1iBxET9|VLpO5bZFZvW3hP;eJuy<} zup{QzT?sEmFGCT-E{m39i5YiZ=XHF$mZOcw4%0NvQkRr~?mh3#YUT$yBw^niCI#MH z7n(QwME|nc?s-=;;&*PIKhQLHw*8^2fm3$8<}OPVkYa0i3h=AZo+M{@&t~JUkWY5K ztI3+>Vq;;&a~MT&7ExvECk}BwJZK!MQJy^?$rRc+B7`apg_Fv?f(TGu>X29o659xp zNH2j!%UhH;g>R|ai^%=6DwTz|4Vc_ z=)Gd%LjvZ-g&^V$FCG>Q9B7c-f9?PdJ@mjwji9 zBf178&JM>DP4g!M;j8Gx*taZe z8V!4|NhYYjk?Uo)*;DTfr1K%l1~tiaDcBD1Q-bc;o#Oal?@QPU0J~$0h^|VI&>*0< zVOkU%kv38eyaoxfCbyR3Gr@!_*#PmTn>v9mrf0^8rP$rK?r_%<0e5XIjEI~OF!s^9Mr1dIS`1rfv#v)yZsdoQn21&d;dioq z7LK(=B%l#*x}_|AJuB{~P`}~89lxCEN;C7f&-i^IZJF5jW`2xHmR<6E^ZNtHc?w3) z4yNtjhY+Jl5M?F-?aQ`^{VaWY! z_B;f5Z|sg7S?ALPyTg{G-1p4ers_oABJ6R$t^`XE+$}+MfcR1bMPlsE==i@tz!1L< zfFjhgD!%&9CVxOx^UA*{v^2SK#*fej!=8{fju)d#CEy+$JD%xeKqewhjRmgUm*~~C zgqj*hNNdP%z%CoDXK42s>>)~JPAY=#8`9sJTZRHI97f3(?BYNaZoHw6%; zh!&MD1HLaGSis=>^E_fcC+vKYc0RW7IJmRojUfhsQH@eGZ z07?T-N9?|;)s=U1F6SKSd&<01`VI6&O)m|Ify1EYC=ZG$xp|CYcQaZ$At`%q7AevVcij&__*N znF@;%s(56d5&ITiBMbOHXuw8yh}uvcX+rH?aik8f`J}^xa*)j^RH<}tdLu==b7klF zk?Ewf22m!|_e<#UuC4_&j-h?rnVW_mwbdZ!t%k6$>hVry`*-Nl0#;qrq9ZaCOx~W& z;dDm2E5dip&r7}C%$bEJAEqhQpK+;GwzzN z;9mlH!K4L>WRHN>6)zK)9;zWg(v*o}72Mo>jpU|pI-dK@f{c^dxx(vRqT%bu{dQT!Dh9=2tto<- zXih1>cTv_guxO0m>Fc-`h{e7|C}Bo0!G@sgXy}Q5hh@kw;~&HAz{-wx1mckwZ-m-UbOQM6YG0ln zc-Gh#;H!~O9zNK{8FNMN0GE*;KmcOr(ai(;wU@Ofa7qgVldxv=)exEr>UaS1%EHeL zdzhPl>2@u7jORUbPf`S%ilb+~ITym0H*v*c_Ra28Pknq*7YH(>NL<4NuY~d`oSy}C z&Fj^p^p5<~+?41Zndnil=K{}%bIG!ZFYz+cdYW$Ofnf>Zs-_Q;u*R{Kky5i{K~xp4 zqM|7zTn?(Sfdb3+nwmSq;<k%n_3u%ZDPb7Y5eLB(~5VZO4dVs|c?%h$Nb)RgDTU z3(vM`Tc$*URz!wph%+oKAfK-b&z9BFz;dT5LKpRzF~#BJ<=}^fvp1yvXcXLKz}vx$ zV^;$1xEv-l6jY+#xw=*;-tWY>%4qqDJ|J23m9qLO3&iXy$NDNq*#=UjC+qA+TlcXf zOq%t}V|{kG&)ZTp?}lup6NV>q&fw)-s<`%ot;UfmW0g_CiYd#t8r?5{V)^HzZ7kR% zQF!tq9?{6`=Jv3YIBQ%TYF*xFaRIhF%LkK~`ke!C`>}3@B{zFxFc8I+tsa~7R7uV0 ztXm-R;8om;gLVg`eO7iJEquaOfzRts2mS-<-~gNuLIayw$`ZY6J^hX0hO-t%n6i8p z^|<}eL00a_wxO~RCxKZ}Q?IJD0EjX*(9A%$3Uq{AHr8UWrMd*4q$PE4OuDZ$Hbu}v zn3~iij&K>K4={`XKL}=#Zh2A6q%p3Ap=W6Yy8iSqOZtv5D2-2MYT(=fQ|R zJ@0)^)1R1>>nW$l=|6ZC2*W|RD;y(Ge3{lZku)oq7-Bc0q~KOg!3i5ua-x*Y!|U-& zig}2E?E<6;l3$BI#6s9-B`w{7F>B%%wQ(5)2H(jAGKyGT(9O`xaz&(yN5~~|%&o-4 zGE9W{r_nkVD3B8Z3W`ACgp&pqhEzwB7GLgHF@u3BK?pSg?{|XIQv4w5GohIQN<-Tg zd8M$r3SzWf%Admx(9Hwyq!?hJK&J?y$-!e<0_6p2Bf$by2!<_-HidyM&4ONzlp))B zl9@?r_u)KL#2^k+>LLR<=L z=M^M`twAs*d1_m9CL%7Vl^v4e*!8`4*ikR`+DCs1j{&$YL3M-^*wzYC}A#8c-do9@jg^x6|iq8bCV3^g$G8{pG0`US?g7z(3?#(9vr_M}Udm zCu=_n$)`WWqXHc$Ga#=$Wr}#?Umy*>#~Y;XjnO)DQ_iLIYB3ns zq)rjd^J0|^RsgaTz}IOGxKh&28G{~!6>%rtfQu9Z8Hv_hB)@B&J_qdbh{Mh!4v*eH z>_x&$HDZDQs#-JsQI2h9n!#s-Kp(Mz>yNZbV z1P5F(Our{5-cg{>np-Fn?<|`;pl5aV+8+Q;C>sME3^X~6+NXT{r)nHzx5&Qec+@J7Ph(*kuQWH z`+l2VW|*KVyQpf9gn8E}M^KI6=LEF#UhcOaib*Cs#IbS4I=#q$cx)84!7pmVo2cEQ zh=45t$*KWBC*3Q-R3k1{BnlbD;EaZXO7LP0L6kFuhN*DuOm<6-))kIM^c-K(z~+jI z7v}2yl->NJ2l`(+5vjW~2=8TscUC8T3sHqGev~Q%@1o@miyt0s*q4&x3gRFQBcf6h zLzKrITH-dD-4OKSZ3!Rwt1f0cP8;xBJ`X~YqhXe`k1E^xs~QO+Y$nF zJj5w-+l(oF&i*lF#rG$gT$&9beCtnlbW(HKIl1W<<`(;uMKX#2{!#6>3LU{k0KN)& z{q1c@4-jYOTm|q*cd-X9jzqH404p zuq{N5qGBzE67nejM&DUw4AplY+9qwdzSAn>@UWhp1n^Ezep>u8n~z+*N3Yey18V~m zv4)5yI3azZ4xZO zt{-*%O#Z^<09+?&I&mO{kfc)W%Q2^KoTCEA!77C^0{i~zP$usOsjhl8IC=-8QK$_P z9f#w)5-01Ac+j5*b_fRkhGDoj+8~3^T>5PI=~y)~uoehZOJ#p_IzQ>ygdF zDoa!jR2)HM?^tDN6sDuk61pw%;b2zmU{+{SO!DOfxbM!tgQgmhTa9$V?h4gRicb(} zUY0#|fr~HbM7Tb{Xp6uM`NYjOwT+6C8)xBiWyK~wHn%5^eXO1bB|V4!2N9mshj@Y8 zW~J*A6vk1sj2hKz=;KN~-4xy2)Rd!oK2KE}`R4dl>1Z%(h61Sm{POAkbEgc5*S?%) zyzZ3shdx+C$nM`G3>4uCqE>A^&7&VC?Rj57p_^H~Tm(O74jG%hZ zDO?Cj`*3@F*BPCX&-NwDXruTdhOWWJq9TBq68;a4`?9bZl8;YpGA}~^PU_Xu2_!zs zfBeq;9fK=A1`?1h-VU#9*gS)=%I~4QknE{rY0@)2m*c?7g@_{Zv9x3r7}22 z7i}iXs^%@lxg2i*Ycif!Lp*%LoQ&6mTDNVqs7oWFf%G6g;~d^XpNB?11-RV!FNQAm z=nr#F54@J}JHyJ_fU;X&5l2|`aE0*M|RJrqjohB%EAG0vh8LcxAPdUF=*Aic^UZEaxDXzAXszlL1!-&ELh(L8h zyCd(w)_Y)btoK-Bc%f`AT1U})OfJI`XSi9?%*g;Y-?Wh%=}Cn%y2JO#F`gIt8T-Q^ zj0KtNk<5jH<`$jnG2KU2Rvv9Higsih=r9Q^6DO8{UP6hI60UGu7B8q!AhJXkk=&;% zycw8lRe`CMK_arrAtkyX1=<_7#Ityd8Cmm4BRx?yZx^4T?z5RzC_<|-%?xj zEJLq#;WH}V(D1oB#*5F$qel{{b7(DYVp3p&6Z$3^j;Rpsx%G_Uinx% z^ei^zY`p9Bo-Nw93JQ3I%RA`huif`%&uTXHktU*@N#E6J+##HS#vMhf{x9Et^s@`- ze)+KDKLSd0vi+^_2Dwf4VQj%2W%I`Vg;YIpgFL5Jpi8%p5$G4MGD^@#{tKvaFFlRE zBrEuJf$1z!Ol$5a5AX%5qAx5dWd$LM6RC|_lngPXSg|B}K*_CawK%U!BQo@Q322<# zU$ci6Gcad9bMc&q=vl@xU{i2_iJM4Cm`=L~5$BF~C8%nkP^T6Np+jhELhNiQF_)(K zNH)Ng_IKOV^8)q;f^@l^6e-|YK@$C_BV@7yVi2h{=5U7L-~psBhu7*xyhVVrj+3uAs38+-0gPvA0+J?ekr%?W3Tb_dju`ygq;mF# z%VYwEd!uHUqIFD$?Ff+}PeJi$ov|-j>4AIzR@)KH6PQnfu1EDx{13vf>pd6$&>@s- zq5mrThgBR2`%=koF#yz5?E(^iMUAUrr0;N0x$td@|pj03Pm9(dIx?rIRaj+YlEO%4xX>BtB_S(KqXBK%mEZUsrs z?Pyv^yvmWB>${Bc@+slj@0z^(mn6HKo&RhI6nY`nFHt#$KS)Y}-=smwL=qwr5RDBT zr*Jq+DKKjgaS-)f{z1LX6t8+W=hZX{db-Kt%S|d)D?s+FWp5ON0C!1HE&^N!f$X|e z5DN1*UabV#fzsajHqsBmBF!`vwCxJzM-@OQHyulN?E z)<8;5L8zG%!jE(_90%98yUlk_;l`%N#2s*(1669n9u_- z&)K`yBBq(RQb`SuuH~|A_R5vSrmd3PIGcko73WA@_0kM`()Io5dH9;3{{a~XVs}XNo0;J-6ZTI!CBEU z$t4~r@xH4!a$mwbL02}PiLi)`gbrcv+D4>F44f@A>$aewR~_9SS9QOFBvMuOW9;fr z84M6&<>mn^H}_?6tlQyZ-L@)6IJsyD08LbhoIXY)xs7{PD}wE!YBD1EZfbp_Y$JI_ zIX#~gxszvQc*lo^Y(bVw#3|yWyq;5bmJVfsyeTHRlhN5GIqSC~5wf z@MRi;QfX%`I=g27w*242cBfeAa~UNFDKK$#*BW!U+#SkL>g&;S6@6+3%8O8y06R)n z)p6?rV9%XheProHema)y9hEk>EMb$1 z*+9jlA##Yw8zvRR2|ZK+i|UsaAy>(T-AuS(%L6_FXUGXwq~e2x+jxVF0aDCiUZLlt4L6AWu_ewt$f{BK(NU|xT503b31w@ z>VG+k@a!y2?SOTZa$f=^#**5+5H?m=YQ`7!q8%J{8iGg$2_AM5Vt(@75O^8BFVEhF zbWQ!=#6F@pqJlP3Bum6x0?*FRA#{FVJUh=o_rS7-P5J+XX9woL)naf7>7oGFaB{kzf>}0ziW($cjl}AZ_!ykUI8a zV{-lA_{2ZHgC-u$o?((jsP;+wdK`sCi~@PCl7SZ&rP5cU_n&R-wQ9ZIv-XdF-nMgM zA~7vS1!ovC!jR=sFrkC3reiTDji>SJ%uG!h|L7yt{d2?slFFu5U z0eFTq3D&hY8N>@pF}BhweY~5q#x<;063q5krZ>-M-B5i4mEr=?MOXwg%AI%WSR_9A zVC-X~FCyyeDcMitCPWRW0S2({zf7=4X*>{qa95!%2+7)~CHU2lTCu>5^k5-e zI|?*x@6kQ+Vc1U;UZC#T{pgTjHvw+2u=(S{!9s?xet8_qQnD~V!gB-!_;1K|h?pUr z@b@ozFsskK|NHIiA3=Ih29qHv3<4sP$l9SeHn5R^lO=qrvH96BGoM&GCcZkqWd53x zjO}?xy6$ta8j*3FE7L^Ja9Ii~y+96#rVmNwhlpjCQ(07g;IVfL z!S3ImN7c%arDy*-qIvL%2cnwuS*ylggB0-8$DLMg?r_SWQ~J$A_hvbi-1&qB&Jky? zhppIWNF1}mp11iVd}GH5iLCq^rsu{{+8=cO2%*ImIbj7aibtV#hJ6?GC1o&oz)G-nKs&{| zLOf^qM)vFko`Xy@3|xYdHM&jtH*M0?$1z%~TGwlUD6H*!@zH^tH0iYnv&ADcmHlg3 z*yi??k7S~Fr{X=WYMRoTbkik7%?vmMfpJIZ!nlhJ*2QM)Pa7ywa8P#l?$7yGfBs4l1^d^P}A_J3ty5#Vr)vd^K&jo3KOVy z@;wc&A%gfbN|;fRDse*-Dk?C-Dg*Nd>Q1-wQ0BlX;YxN!+QeIXY5#)wjR_b%Tv-Jp zxxsU5j#BE%fJe#w>eI@-I(9kI@G@X#IKcqVRz|f)FbAVM2_rQGERN7%fOy}wzd};Y zebKf<8(4@fZx=ugf?vu9WPAiSY0?R1$LPNOc1`_m(D8E~ zWc?Vv-!f*6Wz3kSTRdYA9-+#14R1quKirA)b`uip&GW}GHxf@9^j&!oJyH&@EjnZQ zb^rMJ;^=vE6rxYZ&ld0za=(ud0ZGT6H@}E@aP67I}#tiG3-URnwCVE`CJw zJYZYksonu|m%Zg2^e8SDnhA(6YCQj-`?VI)mooF#5?YZW_}Ntso~VP>5~M;=!1^da z2Nu>){3Dm7@Tgg+M8Oa8=cq?vn!B^c%iy@vxXFnWVWGk*C6!$;ZSdxYov5%dlBRODMG741)Eqy5bzcCm%CZLb5m!}>ANbE9{DmxpKit5dbhp*uB-yy<-}B)Yk|xgC>lh1gWs zhdbkGMaXLZPU9mqd3IxenC`N~FKTFz`5UuwYUIYLQT0{PKfA2pd3V+9x;oZfew`5S znDl3uTA-V%W!%Dg;_t|M8!(S{fiWjFy`7r7eBRAtvPt=l+*ZEX|NzQiZu*W(;7qve=@m1d9z?qA~<)6A`5(cBEOb|H{_jW%dr zXkWCc!!+ZyQFRA`v0!^WVR!;;f*QUK23VoAIu&>k@+Y*z)}<&_(%n@4B^sZ?i@od$ zCtox*gG^G*uoNy+cPubK;65;KBB%T8#rY>?=bpUyTUddqywmQbL1O-pF7Vjh+B$NBz#IZXT@bB#h~6oU=BcuDZf7|}0T7=^kHbgccG zRy7TRSp_~3&V{GmU1iOuD8(zm?P63%Fg)t&q2b!q8{Dw)e6nB3=ZM9>04f_(P>~zQ zUG;dmd*QdJ$~RAV>B=ynO1P*BG;V@?I2JKa9+4;KTE7jpDeP-g7;d~SP3ith(CX@s z1rs8ipzKY5`P8#PuE?w2h5HVgSylTjZTllskg*T28}Ek$p%Ggw-w`DNqaBlXWl2Vf z(toTKt<7|-dpgmkHz;`I8-c%Ib;xWFB}XjQ;;8mH!9>QeG7p{7O+>dlqu&P$@kPz& zqxGE|kDYwFEo>SdJ+?!Q42%IZ2h$WXS)s5?CaYetiuF#q0`l4!VU>h}MmW#R`wi-K zlIuGnqmvD(z~ZAj^(av^BQXlxYKKJG0-r~>ACvNc7x~*E;?Xh0+8u@WUc3=&gL8A2 z-px&Wqnb%{m5I@+Xth+^^BkhuOMwZ8#5i)o^nD*z1hpF{He=R|;pWtht+p7=QBv4A~g&vQ2n+ z{8s>ekQ$tr*Ue>sq$8~2xWtbI({>D;gU2RPt%Cjlx~8H<%o-88^UNAPN7TIG5kBrIR3BQX=ZlwQLJzDb>Bf# zVOqDYt@@UHT&KRj!tXa8J8|c?3#kbKpe8X?d2atN33#R-1_6)c2Z(v`EG?W1guUSs&pbYRf4Xy5j~S6VbMw$PqskDlPv`5V5DZt+W1#=$|bg>3KAyPnbyWMfaL% zF3$~wO!jQBVH&Dxg>S)8?xqFRvLFk7B%!jK$YxRSTWrt?%o*M4O5CWmM8x!5R7DH( zF|D>xU225-BYb8Q!9%Ay2H00L0jQZ5)Lo`E?c;BDqPXcc3c_sL5Co5g+&p{_h*Yq% z5D+|CWy3DC9&VZF=HXk!(%QnrtV$rG7J+eHa+3ZaiJ6jA_!l-U9Ej|)4$-T1`m9YG z;1UfV3_EBI(6I_Vtb~r1ffhy?0O zQ(cy(kN|a)9@QIFp`ed%)No{h`oAMLk->w`kqA68V!#IvN36@V=n=DGU1q%~oP!$( zN}5M4_WTZrU8bKbZ2&OIgtl;*sQ2if#V_Fw@xXN;s3D$$$H_^?>PU!qeEH695xBoI zgXj6gk3M5L3QKgrSoErZXS60?E%nO6LoYnb`m~9Ge?_<5H6VPu@iUGn1tP5WqJ?!c z44avdCdw#+B8Uc%tHJ!|!f3>4MX(W>Wb}NM5P8B}W>z1tGNfIWE|oiw zCc{1!UE&F8P_ctJ8>27p831=kX&4_*r8JC>SAThKdavzmuLCu`dvlqXG5l-@_;=@| z3=y8t8b^Na!vrTV7L6z$&&nh2P3cDq(Jf!jx7WN@s4Q2NT*L$e1|A5$xno~=wh*X_ zeslu_5?=TO`Lq~hNGW*M67N8yhbWvEzHD$LW=J)Bq_9Qj(R_iVRH5_clTW){3pzO3 zFc*HE)|EEA>PwJ+Nz`D%btufhSYwk8og8xNY?H2Pj?oCW1Qb?X*)81;MP*3&+vXnt zO4l~~kWLN#p}X8nkb&)4wAgy#&o%sos2{bsiWR9mP*-yqLmDLgmZ|-i+K#$|5Jy|y zBgBz&3ZXW)qKgjfe0Ehoy!9avSPVdR?E}KEqn+L;s)+9wn)hAflgxyMcG(kMmZEqN z?%2*7*KD&PwqSvlao`S-W|jXQ@ehbD4?5T659r;F4fq8J4`c;!3Po>AALlMr$-@i$ zyp)KbS7lfPG@XEkeE zE#C+VJ3{eEY6qC8aax+-1DH?i-ebnVM3UOUFsS!6&l`5si~}pA-|0e0s$B4eLw|Rn zx{{qN_I=7(zb-Dq94V0SYT-I-OA{dQ9&D&_iv?JH%osrNNYf}%?hr=1sSi+`eU?l` zMip5S(h@SHzpz7>(5+g(#1H;caRqcE;|MWjC~}1C7byIC+Jh1lFDM6e8VsMX4QuPm z#VNvTgcI@m5-ze6j!57e?67t^Sf;c04M2eDl9{+O#G)y^A)xp@Q_IW3Rzru=KYnxy z-Fcsp19@-dd@PUXiAt`z(SP4Z%VS_cOW+3TCzM$ob}@N99jfT8$Jvl8mdUmTYbJ05*c zQK^QU3JNE%oM64=cecnC2s=0d-1B2Zz@R*a%=f+ob{|@}vzNbym&2&9Oe61I zahY`PE3?@}xL=U*W(7@60p0<}c^$kq@Ge085&geR^xT}+p=gusRX8+Io$6^qk&(bd z3q1`&kklyYX-L*|;rImz7hmMeQdQcx>v(aMangnuctif=Q*>(QNVovlN3R1Zqj5T? zpQKksu6>tyOKKx2i|~)2Dn=$SP=d_zCmbHO^uCE7;$a__1{^0UB_eyPMsk_8KGJ$b zh90k(Gr2 zZ>LW{d=zLorwhwzTDrj?o{}=_Xs>XxlbBl0&&^W(Bd!Y*x$qiX0b=aG$aH35vdknj zcQ&e7HDPxF(t~7|D`^^^D(tc7?ZYiI=3YcGKZ-AoEbT|cGC=4at3JqS(Q<#g_M#1d z;^oioAAa^IXZUN>xl(=Wav(Q^n&xW-qvyhq20?vjlp8qRAY}-&QVM*$z_LqLPt{)r z#K13*DdN#b145d;4N}y|vy*0f*O~=QMs*$@(gogoYZD7(G+C%>&Jv+&FFKWBBNz$+ zVE-o|`QY*`*Twjx;2g>t$rVjsE*QwQ%Ue|mN(cHw(QGC~?-Ww;Qzm9jNX{sRM|+nX zums^rBh^~CCs}A#a^t%wSfd5YQ4#);Wp|dV1n{^h#_*%(Ot;6qwt^&{+R>n%X^#lQ zvr>!(RJI0RHZ@2O;%drd8)(NCfo|7u!kWA=GCn9PD@+Eunf54M{=UcH>1$?S+uXUl zQSz*ScK?9-q(OAItO8oK#4)=F`dVt=^EaBE(6-FVtxL42?kIcjckTypP+>ozB#5*N znVnM)?W|bQfpftqP8sUJ0gloZaKl52NoTCZQ#|647n`@9W<{U7nB9-?XF?f45~}$m z)Te-GA}^Ef+OUts=>8Y671TZ>f+PH+6v<nP2agYZCopCxJjM6e{#kn0Csb1E^oJ z>*nKT{@TpD9D0N>fdNIFFjJ`)`7tkU|AvRW>x8>qC+^SrsCtDH+Bl+7=((n9%J)@X zMpY1g0CwLm2K+K(?je$yc%>4hi563Ih6S!75MJW}lELB?lw)e@@I2ZY5>FU7B-e%V>F z4HiR9)feij!tig>>|6+jU$A6mtyT1UV|V~~knuAg+p&t_gGmNQmS!mKl-anDtWZ=< zgXA#GqzymXZ*J#gT!Y8chBBpqN=mq0JSbGnH^^)IY^_DHHKsjm?9iveNv>y5q)8#( zWKtSRdK8Bqu#j!|9JNT+AA&IZmRHm8YIybRy8z%BSKs-fp_Q+zIl=IxD`jTvyZl5K z8m^hK^)w(fXXJ&G>p(`sQ*vV<^B48`{yZMleG|{)qvG{Yf-p+g6G(ks2DSdK<||@P z`|>_kfYZ4S*%x$p+VEFT4wzwKv}N8_$l`0mdYZugPp!&8Gln1f^OLfX6vM;G)ne_& za;@l{y?|kO=c$(F!$unSI<@m#Vq5Zl7#%1A=R*2e{V)zaI z5o2zoIb{gy7{$?~?edKpZ#^oc!9$N}0NFToS{f>$fr>`{0-VdBwlIZY;hN|3<3C&N z>*4ifvm7b!E?{?orDx3MBU&hk^pH_|Lcp%r*NJt=j%nVVbms$FcfasK#=4f9r668( z`LlaH)`Bv5-X><-&Tr8d=N;>svrA-2vrArGpS)!u$i) zMAclONTxU{%WnFk8}sM9p&QDsSyPr*qEa=1h-Y0`6zF(c(kK?mXp}^uX$8w8X$M_O zyx9H1I8^;l#m4_!klxQ7XaYH_zUruA?4crfel6Q6E7(fyJ>iHmi%L{6g$IM4;3W}| z`!qD{c2^vtQZGn69~N#GZM9LsVvnGuEaZfp3#F)#uwdSn8KS^zo8F`Ru02iA{1QtV zd4ZZx_Pc#SJ4RDA%;ZGpLA|cce$=e0Gz?`4%U3Aau&Mck1LHH`^XI(rxrukoaqr)Z z-zA{OH9Frxa*U%q<{4VeGo0kv&5Fh(-|b0UxFx|Hl+Pb&Od3^>lRS z2Q3Y*Ma{DyJ$uxLaL=Kq0TWN}_6yH^(t^>ZKdMWY4asMX2OGx3lWv5Cfr&+V#P^4Y zi&CD2={7ow$3qs6o1F_U|4o&K#EmLT|Agb*$)@~BP%}VqS(M?VM%UGd{j!XdU&djd4tx=>`Ye+M3O^Z<`~O_GaSyAbL>AWw^hif7Wl?c7EL`9xW{+ z*!U9HuWCLIdFRGjfQ6yD_1ShtxG2IarR0DD2~S!+`4p5vOo_quKtJeO?7>YuwGgN= zEdd^$Xpac>x^WpbQ!5BO^=a+U{rKqEqO4}d7F{NZ^rqI-8e;P#-)-i@z{A7JWBT;d z!3~U{{NJ6d4f=TRLW8)fUPbLXf?_9xysBm%3YYJ0_z~#c6P>o5Cc5okOS~f5cG%Iy zB6;_VHD4A{XdlqM=MJaQ{X%zrNB0MUSsD2Y^m1bW{i9Pa6uk0%igH+V9($AZ;Tu~cX3`qw{Vnu$s+y?n2 zu6%!BicZ=ZybM9aG{GH)pt=}D%*=;_UV9Ct+dZMSOOS-B8D5yRP>V_mQ89-{wZ{aW ze=H069un%r@8av^m9!=T4N?>O5cBzAP`5`oEOAq$7}bw;`XuTnTxm!8h?71x%a`UY z_I+5%$70{;O5ZqWruY!7%7iQIBpUhCK+9;@f{~kh8Ai-G2NOui238i8A^ry$jl`BA zL--YA!|NB>w9%>$$k1YmpzjwZUJCcwVp-U8Vfv`M8+Ilb4fGr^``-7N3YRyMR}c7n zNbB@Tg$~_eBL*MW%->xz&on4liU%nYs7YYMj-nu4s#+zU>{t$H4LrNMB^@?1E(NI@ z9Y__-yv>SQ^l|YE-|*WGqpxj}I;2oBaOoPZs8lpPh$$(h%T=wyD~}Gy8IH!7&gse5 znDGTVwSavW_;`VdSJAj-o*OiJ>7d0(+sFv7$En$nO0KJwA})K$jBRAalVeC~WAH-+ zbNn1hrDEq_XtD>DTi24E6fnEok6-z+>ns$ELrl5zYe$<(+k)d~BI5!gkJun|$MN`) zs9tB1ykUz1k?hHHggq83+STs-UqMArMD2Jzbbm7(ooSa;i_HAhoYEcNs_{_{K?hH4 zzUARV1o62`EgdbQ=ezBiZ7`XbQk~?2A=P-!g;Rt7$T`v%Y8>>rXF+Pw z)dVWl`M83~1_45BAv~KIT~aH<>;Uew(D$=c@82Ii05B5B15 z5&Ob7xOQAxt(S~OUHDjZRn;0P;bYVI4keDY*`PBJgxBC{EWv15^$BIZ$d5n_xX6^4 zGY)aZyCqk~Nsva+GDzCeX5N@wznHlO@VQhlgI%Zq7)H_!Fcs`L{MhK)Lq*onLe zG}{D7Qv~edGDDsmk&9|B{s4Fuw)sEkb_|(TT2<5YgZ@hQV4YM|0(MpKzRh@6NkbNZ z%>$|7m;q(J445dM3FO&PNg$6rHUfYVg1O`IeGd;B=ihX<=$46ZpO*7~dNtkny9KoH z3rzb$wZ#ZN?XwMAR#1A9w{-BPuu%)gd&Ga^4J}Fe)|8MElaP{b#d9F+)%SKj0S>Sb;ax4B3^xyVUm%1@RCUGpH5u{D)wbII??V6hqLvh(WLk89*SyQzLo&)#2 zI_1m{Q2; zRGw|uE^WbUN;^02(UQTtvX;2Dl&NpxRz0wg2r04@3B z!kZ!|yncqZk=`Dgw;hvQcuMOr-HQix_ZpO&cJTPfypGuOXu~O3RAHt2%y)0ejaY`_ zG00KGfkfFKGpR~~!+NRw1 zLNaZBg=TD|enL~pn=1JP#spN5*i3os{i(I=@^ZcnHbW&hEfLQG_EvrLplWOpi+j-zltcdA?4o;nitc3>;YU#7K&vda zVB*65v_3~xf0v8dH?*2e(ihyb042+H`3uT|O{Q7bBha$-Jn3a-r#*U}^u&wJy6)-g z_h3jl?#N=lS#R4ddI33qQ#H|!T4{26e~A2My+!nz6VUD@$O|G~yB=1PwUhB_Vh0*s z&LPhyTLCZ!?cq{zR3w8}%+81xBA&w~bSG3a!N)`SCV!ERVY=avElN_KdFh`=!{}x4-z2VJc}>Zqpw`Eac7O!L{c3!G_?6j0aY!LSdXz%{%*mTA@?^d+qTOB^@sI? zpXfI0h|w4(d^80#A`i&S;*&2IpAnW#ou*&B8vjX3Y1fKK)`ScYgriV*EZd%R2bp zf(q|Q%zKa>5Y?)t!d6iNpPRwb_CU}A4Prg<#!W``HK;O_&>^Z}8A;XgnvT4!B>o&wdp_LNu6o7uO4Q4o;L)) zV~g20EdWTlkT@V?xw=Ov81&{H01uLr5a~1KkNrE6qvXGXy{6DI;91#u<{FM}<1x*9 z@wTPuBh(V`A}}9%7o#f}RjnJU!5x$K1a$|NH;{>EKjId#%!!)TgB9>^rBj6~G&BMq zUo$=;q@)r31&}!bS#ayWoB*Q?3J)2iEDOC35P_K^@p3R~v-En;agH}6RENq;sIZDD zBmJ`V6Dioi)AmoPJ=zencv_jx3M{#!2-*l3hn)Dv;03aBN8z4eTa(?tn^Hnny?~2t zUN`zPTW(mHDps{ZAFm3`Gct-h;%-K8KMx|EU^ZU>TKeYr_bs3};oXa_P{WqN{jw4V3km-$|gQ@p7cgvO+9tN)_L4?|#*@2|&=em#CT==Pg5=xKz2 zszwO8wuaZ)a3++VZm^$3Sk2pJ8HZM`sg`jGlYEg}MRgC$z0*XI4(h_aYn!3;j^cRh zq+>E|^NYN>Bb)fJykpfziq(A;+5q(3)WJ33;HJ|zp{U1J8JHnOL2@aqfotQxmSI`fyaI~dy>QOTS|8pHK-mb* zWja^n+CuQN!X;8&tP%$m*?M#wRB4R>xUL)k@bu!gj2?ZA>lTK-No_XH83h9HJEP?W3}fR{RsWpP zPZjP(E7GDO)fQhpmwLkdy<#dWQMjtq%Z@dR=3#pEJ<7)~w9+H{{ z1yR}y$J zyN*wS(Z}ekT+(@+B6Tip=;0+OV~|Ltmch&4j7I~SzJuJ5$t;aP$5&zzPn7X!%`Jbm zDkRVU?!>=#r&eDk`a4)!`Q$;X`^LXO`L5!oEgQU#nN~@TsGotsD)Ba_U8|qIPRD#K znWQy;$xq?w=x}>HBg}oXVeH+mbj)Mq+v*(K7p=|0!)4gAXj9l2q#zThAQS$CIuQ`S z)G#eMTBmmjjej8nBw3c-`M<-dWjP7H0F;%1Djrj&uR+};0HDH&%($crV@9T1}0aj~EqQtlT^K#lA{ zZWp7g@FWw8*`C{O+Bha1!m9(zfd8Ikn_;+>GnR!9hR4+s@(D*AY%Nn9T&+NpD0 zDbH?mgt&Nr{C#P5(_bLiiXaO35(HqSjo7!6igZxlBKFS5IT}KvJSPb! z0oV86>|M6eZT|N16&w)c*%Z$ol z7D3HcG~Za3t9H0GaftKDviW5j=RaREj+soeqlDb6wTuGe2W=b+AfZ=&ZhC;O4bjwWFNsEL(vd5+o}(R>UR2LRa+;xYv4lnwaxJ|Y`v+4({1@14gI1EI^lBY2qtgwB z<cX>ChLGf>sZNs21c<|$);MDwm^P56MC*=FRq84=B&L~66v`3QILryoJ6j!= z1E;Hl@VL%UJg@YRl%sg-{C`sY6G!*)hL7AKY(E+Vy_#Sx;TF(^4ok z*JS!_|I?)T6moL7=?voY9*B&Oe=Gak0sV;nqhGLHRm);zb!7qFP{z#%Dpp7_3qsh1)044$ zl2Sf3($?-agTH|_Y(mHR_R(LdHcS#bDhcOEwe(tqB;K)ZX2-g9SQ)kL^}?ahOex}3 zNHvu{N6BuQ`Yg8VyNngNzTRa4Q#+f2Lm@h$cnYfZkDPbd_{*p^F_ybNx4+wgX~r6S zwAIItp!ftEEA%IVf00-cDV(bWHzq4`A$+KJmsNz&4&bp?Ghq|29kKTmwwA)Hizn9% z-ieivV9)s%z!#|6VB%9(snQ`nJ&D+0Vp%r)C{~t^3a0Jv9fhW-7egDwi0P-lYjQYU z$A;V4D<&59I2wHS=z=9v(X|Qx1{g;4ZXICOhamZIA4NsH5|UrlGNncPfOe!clv{Lj zkU7&RlE?g&Z08lkDqTfK&C0;EE*03QW7Y$SQSRF?3@<|XdtZB=1B?%g%x=A`zQ_Q| zM>E*f=oY?31{QBhyBe>-wg!1KY&(dpGV!-O zhkG@$@#tyCg1s0t{>AGA_uh$b%_dGtGaBf+yka+jW@wkvvj{WxpQ|ow3*-g$2bdTO zdMrhaIZB8k7Cs-n`Gt0;dYTjq5s)ANQ= z0KehKD=pe{0N&}|u@$G?sXkte>)GXx7rqTXkk+{ZnKMVD3dh>9GL8UYLZAj6Nmn(J z4~18{{Wuh?GI*|p+7;)1Cab}|9Jho#uB$4cB?5<{%#~=n!fhsF^9q|>TJz}e>izA< zfHfB9j(O}Z%rF$Yv+08|2vm;9Sa2Y@8tZ)det0m~84p@(g=UMj-=e6O6}pmR(l}JY zRwucmBMCg-kpPpWw8qBsh!k?E2l1Fzp={FYjT%Hah23Y0Pu+1mUB~F{EXM;691jfy z;@OM8C3L*#sg`Rd*hRK!e>r~y0bAdnK$bc@!Qk*qh5n+tX7Z?-#}M?^yZB?vwvV_( zk|bKxdw4;Fq2S4|CB8)8c65ssDJ?E-w4G)idE)3?7%j%yJOr9ov1%xiMO)&_j`{D8 zI2^pfC#x88LJ=J=Iafo?lWtIK-H@fvCPl7srz~UEqU24XTtgcjzjuwd;f5=tJ9Rc1 ziFR?|=0dcya>ATP8B@SEHe|vRz99ko$?9NY| z4j``#)zw`QZ(Fg8ec?B8=g6KJmq-KLy9Pn6hS)U-$cIljhDL_7J^^^GxwVeeWWOhn z2Ss}pz_tG)Ogh+W5pHX6g#4McE)>rFmqsXruPGSL`uXqX;p!=0u7u*a4{^RGl?mn^*_FivYTwA-A% zI1UmSZGsw#^~K_NOzhCiUqZ$nV%7F=JVOtYlJwrYt`_XmOv5u!{~bgJLn^SOgAIbM z_VYZ>pP70x!%Av3)4?%W9Dig5{cw*b8F3a=X?3;rr#tfY-_DD%%fEw`BazC%@5ne$ zCH5s=hLg-QV;8?fVLo7Z-HY4#(6uXWl(9Kd`WzLpK9Nz5*J5z!fniMB(Ea%y?V7`}yQsPLC>pN5Z zGVw!6+u#?OSt7tI;Hid&o2)a85@5oNF^19>*7rk63B&W}e6wxBw!fV_EA;V~;BZi9 zaOu!hj*4e|Dav3qi*vez2X$A6wfs)hDZ#k4@)aDN9g0qna7g`KwKcPs8Uyh zG-75xL^at=8xPO0z?<6EQZ>b{&Zn%_Mnswij)X`)u^c%fY+wT*5!5X_$G(KvZSrH% zRuayDq_1L)58D^2*%T^YPTND=9#bcSE`!Ix#dH2hjB=nC#j7H$D>;XFh6P>>2O=tz z!qzO`!7s&Yn?0o&bx3&$i);B4dpzG>Tfw{b@!mH1;U_5JK=B+cn;Rx1f6>iU)cTYp zg@t@Eqz<6ass009dR);yiMB6bO$<~Y{kq;4!k{bUphsC4bagoLyq~czb~XUxcCGBr zHJw8`#p{CPm;XHF?6hnkd4N9nXfSG>DiXEx@Q^PmMjUok0OQD+XWorrbx=W*%_SOm zDIw2j9n>@e!_%bdnA11zs&~6kn0NWf7_N7SaCB5$Z7?>`L(OATTs+@0BFodn%CM;J<}XBFG7$emZFh zDk5k6-!V)&usF%BAq`-KDo9q6iZ6xARmln0w}SS~d~tg_>7wE|ZGodRT(Tsu6uuPy z2(ObscZ@j@*GISOA8j=7`tRfGYur)$bfj~!n#Gh~m24=ae^Qo~*`jMs{Lzw|hP*rp zY@b|SBROYy9{e8{^W;c=lBemTOQZ5)94uoJid`qkkvyz0v>q5Ik|zkuSN5i&K!-7rA?y7_NM9O_{~~4SmT?Qwq+!v%EOw`;Zic&S z{OuFVYqp^7C422kpYQ+B4|3HHng;BNzN0SECrmqxEr78>ENq01pF9_gq8iJ%F-RHJ zRq8>!%R=b}Dm?GG_AhQs3;QIZ>!-*qTPKZ8wrv9sbh(9{h`yDR^b%`3(Q8uf{_%VX z^dPCItpRdGD?fpZ=T8{@u6%UAnZF%AH>hIiRCToCmijCrn{AcZcy6$*xMh=ZC!s}i zlPBi3S=W;4No5cGJJs3n^9ff>^P63sH!_Add0U21;0jVnTtwa{AjgIS$)ktBpJC{R zoAT^I_lc984r(LR0n=M_+>ZQ&$37Sg#6Z&c2F-yN|L{Ta2Q9A=lx5bZ`{+ccaPJkC z51TAJ_d$Wcz>6<8yUWw4ws{>bn}wCa@Zj`^n1kNYw2Ayak{jnkf=pP{c~Uf&rP-9D zD8JF;L9#cOu}>@yXfP!&C~Ka+O@H_1>hZtApwxu%OZM9Bi-*~&3qf(iCc9J!;7nrn zcR+W^NK>m6FXZY0qN!V*s-q)6O^HW&b(H~$O4I5?3t-xtI2ykG&^`qw%zEYf=_~&t zwSn)_s7;uKJ36@pW_})!)#cVO3l81=a`>*5GEBH>yRp9lj>nFd@cXpaTzGuz@OT3j zcThDN-&!G3TFa7UBvL-3#grh(&>GDqiMTi7an%@jo>?gRQIh3rfy}4^5;AO)z^b#Ykj+ zH3TVih8M+S_vs9cqE{#X`B zc?r5QQ8DJo;MyISc!wB_)7o}y+YwCv$VY|l`$^9z z+d~V-&!15VwfubJH4)5!Qi18EmXr=Rn3O5sfk>GO&>>^=+^Eqi2_Y zAb9aHdQ(4S>xSk<@pdQ6Z?2dw&)coBy+L zTvXQyZu`DJ4|D{Xyd2Og`s#Am3Cj1w%hpcGrDXWFA){>}H_|=HuAC+W7N|J-SgN`Fb4F)Cg;MXYDt+}-m^_Qse5fHrOM2g*M_dr|}T+o=}+%m53 z42QnJOZZg}4F7!a?UnoVDDkQi#PhgbGPHF{UMWT-3xFl~FNk__!ca%j6M;#ip^mN# zm&$ISwt+*gtiIpzMP2Z)0mPwE8Kj1S>`;7ysv@)&k;ij;Fu#;PD7Nz4M)S*p^$usi z!z^~-vZEYNIFlasN+hO{aqgubbY+woJb0k_SyEF_g?Pnf@{oX58AS1HX$mb0?#+sQ zhL8Yh8P96K6l0A;Htk0_&+!ZoNMB*H%@_o}JVy-Sc?~nCt=V)I3G3t6gGpPkma#}r z^L>$Zh45K?k0@p*4;2SyJ@}nZnmKtzSni1>nX{kn%FG!YzJI>es9evThw=wbIWt>) z8Tfv7wJfDgb9futf?OX%TqY6ExeyAW$w`ik_nl-OynDprLs3o=J=>tLfw1pw7kBa*X3P(E86++A6vd6N3Zenk@ME^ zU!yuGsP!iiUXujKqY~XPNdSb4#V(Nky`U=*Hbqd~N($!0<61b^{2EdKL2mCqh8wOW zTsBXrBrdbs>WSU4QwJ@G^wh~g_F8%OYR%+?pFv^l z7(WOk4|zwy=Nk+trAyU%jfua@jLCS0mHY@h$2;vmvSxx~r{9*UtA;BLJr;)#bI4RbbF z&^mpNm=!U!N0C@VpmLuU=9Aid-%`?$*7`%Fu8@PQM!&fvksv@U4p4v2agG$O1fDWt zbpzmEA9QLB^5V~7QVIhX7Zc8c6Fp?FwfK9jZOS#6_dqs)ZWR$oW`4DAX3WVMehAxRs;;zjXC{p4tG3KAmMrrJp#^%x_dr)P-ZH z0V;^c4I4Vbcw#3Qi!8t*K)}q(GG!NKtf($&X_PLp_PcUPp!35Cf`+dcn-M;ymvyr* zu{l&blH>y{^~i-|#}|b~`B}F8~qoW?%XlH@TggHnh8^{_^pakZ~yV zaTlxRg>$KV-U|E=si5NY@|MwPv+h1GEc5sA=uh!htgz+$OvK(MIHx_#dM$cXoP73= z?{HVqbcht2HLSK?syjrRjJ&yI<^zKOofF2lC`BQr`h_HVZBfRSjW3%1GG^m={f$$j ze9L%mMC`XFE@wVL$SV~K7#$h;O0%TiGx-F$T8}0^0@vVNqzzY3;>NAV$d3_>NDI(SGO0Ud7 zi4Ps>@C?-z%U7IXdOpLJ#b|=XTV#siJd83`pm>Jsm9RW^Y-ULt%fQPMBeM^K>=wNZ zDo2e7WUpExX;B$^Ud$SfR;*x2l{3-0XiuTDqB$7iS_?7q#jLq3U5#vDHt2YfL5+gQ zP%X>3UQx>i_V#~S;izF?ykMxGM&;b-@uOv;RS z4BDb@A(C`_N_5S<&BCoNK_(AS^9pUO88y#YcELuJ2If6vpC~o&jJ>N+*TM^=h)hbP zm!e+|yYzI}C0Gw(gE}Lw@Ab>yfx#Am%7#FA;UiDmjp?Fr-WJRo==S?6Rjep>ueZr~ zw{-KH(ry*Gae}tcDln_M} z7*wrF=#_-lV!}oFoV`Zf%W$3YsA$VnI%-|o(AXwTXQ|T1Q2d?%1`-r#G5Q?-gX0%%DIXdO~mm5CHs3EDu%^c}Y~K!$K0x8_%v?`RA~e zi-!TcOG1q0ZL{~mHw`_Y@b)7!&rCm4+hwUy`coi<4Xa{gRtfC+6zx=YIEdXns2EC z>VRqBT(!^!*RhS01U7TNrFJf6I}*$L_!K~Sjt&OxKJU|g%w(tC$5vQ>*JRPT4~kZ` zq_P_%gt*IrTaD9TkRlXHy^aZaeP5;+wN~E+A}k+5cf-}TvIMA3jeE| zXUlXM7@@{vU7LV|*C4!vRQ*L^p!=%7iI2rF=jid_TRC1{%)f(n?KYp; z{%%v_PP_Wr3|;_7VeCR=8IxaaIxaJzGpDa|I}WybPA)ZedA()csr)YS-G`LfAz_JJ zmz}3PCod%DcUK^RFRagE=W3!@34)A;1YVGA`yY6)!vP1VE2ns=E~_-G-jBlpnU<!upBDag_VI`>lEPKgy_Rk`yz+`u!v1Bp z?uaF|T+lD4FC)bXBxvW80;EO!eU0vRx%Xtvs3~hk-G2N@DQ+UywT&iHj;Y?5(V|>B zM=bfc=b(>!_8YLHvDY_9DE>cd*8-R0`TiXi8z$S3=8)fhbBM^9qH_4zW+W@K9FjRi zC_*76=CsLS!<<4+)pA-!iKMVR)N<^j9|9jo{^W5+Ap6YG;e?Hge`P}c* zTfK+-a9!W)dwnmNWCL<-yqfqv`e^A;rUU`{S*EHv(XEUS05j-L+k9kN(tDwQy9Pr= z9TvKZTRV9mKU_H<8aLx|S|&PP8WsXFbU*ZPV=oK47h=ask48PS1({w1Q-MFeKtrc> zf%!h??TQK;Lc(Tl_^Ip(-pP!O3qmfl9H8-jM=SiID+1aG2O1j><{}HZhH3;-;-P@w zD;Xfn!ln!E6AT_x?)$aRjLcr*Y*`~>e9Z}`Yn7GNI=jG#HI!&tKij1dcxVfD`wv+?o=J=7YBS-F@9@h>v zTc}*XYkiA~T)AXd0JTz$F3NPZtp{ng3A16UY>QV6A2Zn&{v(bTI2hoJE4?XwhN-EbP5R*; z6H_09zUz-E0MenMC9isf=CP$0C$TEU_rez4>Nq;+_OafF-O%XOspq!X8QpzvyS+Me zB}cwJ=JNP`rl9~%YJxBOBZ=$b(<4s|79&|jRE5eSJIWgJ7_^t;bBT&5(+sf(l5!%4 z<$KPwUHbi-X>)w1&B66eqZee#F~2k7MRC3FP}LqZa&yGU%@w(EI5VpDP^~-7%c14gTgtpGrFK#17{$zCXFl(o{NTbW6zTxD6A+&Uh*zD5 zxzt*Onoe59%szF`+!ty(Rarpk)dJ>X!KKNe*GpxvdUhs*Zd=DRz#l|`3QFUUEQCAH zXCyV-LIo5A$QQf;S7-yPv>X*>bJd%6cn-}AS`Dd=D4va4M#$_XoO35vbZ{7uT-{&f+B>V(-q|>s z83t?bWVLeZ{L$rc?RI1waDn&+85bf@NN{LmyQ_G(;BLkN)DIBQ-z(g6#B&&U^D2~z zkJ$o&*e+S)IsUac;J>qq%GP(%+pG0>G1?9y#B2pupW3f?|X zIQXYiUkNu$PmItrMfj*)@L%(M=CiR%pg_SwRHPUaA!!xA`F2C zj&>py#}%8Vas$OU68xJg45T9Lv)GHVBa_1Y|As?cz1V5z^Dx_`!~JWaQQLnDaa1&3 zf6d%%x1$}Jf3w@KSAJ4^{f9||L#W+kZYNoa20U9~#)BJji5g=jQ*R^xh(EN`sa-$6 z`CSjk9iVo!XqPc-lWSIZKoXz@Y^9Q~!v=g?<#)Q~_=P(E37_Qg=I5;n4O$AEN z2hi09{LW1Y&I6?v_c3@e!v=*Bm>$6AD;8GJZp~W!Rdy}0?Csf9B4x0yIf~3NuW1#P zt^BKFZokr*?qW7|vx0LTwH$f^8_X$dfnS>cX;QEfUcT6!@Xq8!5>M~Dd z<4deERYnyHWPpXHeKrhc|GNo(TEU=79JBff3F7cOFV@*v~b&5Dg>M{dlD? zzW{_e8eArIhF2@La&b8YB(UwRHU-pt#{Lj%PReL%C`j53SWy*CG4Af9%g`smeuET; z`=$ugETL*vygV&<%djI6eK_x3?tl7Q>h5%X2nekO>+tOZ(?mW7)KbN_Z(>ppqLtVo z0kF-d!ig{OZ3dLyh`C#E3V~RLBs3%nCos_6MhPLT4$C{e{i;`_{qF3CFzcQkC!igL z5(_4qgpz3{1vPXSHK&A(G8nt;5ZwsM7gPfGjoQyExX|DPrrt9_WJ)v!U{r!6scjWy zQ^Zmb;jg{{B-AJ-Uf&IS4usT@ydKyJI}E4vE3csUyIj;`SJa;GFt|Z3322#h=@br1 z0P0L|%5Ydib5_t^%c|GVPSzo@? zyidw~-5)HTtH(4^Vk3UK z951WyUfdK+8M%XiG=Q8N`sl4(V)Z`cXl#NUnD*psmKLVua2#tICTEP%Moh)V0;!2b zf|44gAQ-ZqGbvt^&v`iR0y&N;f(=EhJmk^mxjH{SBk_vBbqLI9X>!}z@^BAV%w722 z5oS#jZ$&+MbL#)YpYQ+VM?E;TdODz*i@}YsH830}^9sH!2Ky3}GZ3!$=H(fr<>*8PvZs zJ3UP7jBSd2%~sH4Lp%8bO~Xwxb|2(nuQb}{xR5(@FSNnhCy3SSIm#-A|~xzTx>y zl-5J7nRu)Mg!=~rG~Z}`h;U#B5Y{0Cj6T~XncLKDtKw6s*trk|K0LfaiKXNd=-IL~ zcCbnx?tpe2cvSeJnPigsQ7Se~v%SaK1iyZ^OuH4pltDG8%zaq`=|c3ED^ z;L4*i5u4VVn0aV42*$iVQ?6w(R$J5nkx|SQbnO{=7PdA2KyC4IqX&G`eBLSS{#b|j zsNkj2jw;^{cRrb4V=j5}ymA-rE1?m(ZD2+2psH*jkAT7Dpl{hrA^FyoYpQT=e*h zB!%ZS`B<$B_zAoX^n``CF^Q6)fyA+yNdo^wLDZnxDk!(YW7qKH@lgB-yEr}*zJJ4+ zXE|gjJBr0xGid>}z@{$o!%zUiDts_YIR6UgDtB{qUE#PXyhcoQ(qv*S!cguH$IVOS z&EvM^XNQNA{z`b%g9|Hplz?6a=;?Ir zd($iLnBw&?C`(6~ff@@zu;949ZTCTK-I5;KS?Al?c7@fDPJN{Vzl4>~37?VEY`8Kd zJV(y4L8Q%s?I$Q{zCXpB%Tn@>2%nPRjIcQ+altX?j5a=NfSEP4OSesFQ!EJF0x*Xh zIZ(tjnkB`4)RvOsGww0BC-hzzb z5KWaJ9hKUuT&@7+)yj6?^R z3@62OC?bv}T%ryqR?hD*Id7t;I63hfh|zI72CYJ+O*dgn3sZl$Of8c=X65FOt&VN} zO_K(PGJtDWN_gzM3kAfk98?RKKhb_6pndD$Kaf=uYfARabe##{Iz+*bBbO4p??t}C z#N5yx7&Kdu>$b}}QX?t^hn&12fa}5|Ik6!qd`9V&JwAgC=Supje~-y?sQ&GXEOs8^ zO=2hN&%h#NhID=-*(~6l+@tL89%Yk`V~5~r?bjaXpqIx@{X~*jsvLC{GX^w9m|~;E z{zw~PT4>7jO?(F8sy!9Ow8W26rf;}i`@!bg4^pEG0?zITSk~VF61ZT~=up&(OPT#G409B&3iqDm zIl;d%F;#G+ARdMS&D-iV@YG}liWKCZk*JBlilnbb^NbQRbtZLZplr4bklsg+MJjw& z67E34BGceoxvJBz^gYDpNqaIs{C;jqsj)Rw0T3Jt8^Q=jEh37U_~sc*s+j1xIq=a9}ShATg;f}Ig(GH zy-`*FPM>_AQ}Vx;P)EH}12Z#~A@P%z7c*GQM8IPIa)9i@G55FlPFU_r(=}Q>j5+Iw zg!%5SJm{$~$Om${q>@pIiQJlUperAfM?3cNt@Igu%#;~8@}qH%DK=9qCOY*_yTNs- z(8aEi$u^`kPqOiq8vT)?5L|IMb7mV0=0`9tzH(<^x6vC{Ocst1oNQVjb<_}tP_p3T z_g$^7p}rc#%lhLdLy0W4IC4pGh-?_gGCPeQF|&~$VsNI{FEFT+w2PUzMf$9f*<7nK zbVrhmCA*OCl5AIRq?sfe(_1B@I68mTIv2(%Lt0a7YVaAOf-pC62os{;4Nwiu62w~2 zyB6##9C+lMj$60(I~J~cj)0bLZAAo zNS#T^v_jVC4ZYr2ySF15=ow*w-sx!@iqkfyuMV;KShBvWL;9|cWERzYH5p`-x^%b! z`5#c^-8Y5axUdS7YAoye!}pti1I9ykAMT>_@TC)X$SuD!a;rc+G~W=#r|kW52dlHxT6^palcR zFZuMP2`|!7%{(y+*1pe6W-n6v6nxRAU}%kk88u6UEj(JVsAhqmhto`C$?Th8n-cyV zTs-c_D_nU&fwJS+Yk9Z0a?1*`E^(#T)a`18DRJcmLc=x~^}}#=ZAkIeYu~W(h!*Xm zA(t?FJCgj*n;1PFbXLip7GtT861r9ruH+Voj1N0pP+UG+OI=YTT zXROY=j$EBjqfNCjsPBqbMLI;lIgCo5K=fB$Kz9Cu*c)|0Gy#MCqi5sVrJk}pG-m@Q zPy!XZZb&i5mgiboMU#Ql`NrAT%#%;1Hd7qKGMN=GCaRCaQ5L$%M^GpWG2+%hWpHKi z8lPa5p9Z}e$rK!U@a54$?8cH4Az;gq=#f1_c^Wzu4rFY(;6J=u> zZ!cG+apfu%=Xe^b$LNw=4eod#% zJceiPyO#f415x-nzGGp%f=&a0F5u+>W#6jO+a=ebTl)`;tMfum8`>PKWvzQ4`RS;@ z)ehlI-h0ir3z`@kxWEh6^M&LbVAlY^HT0;pA1a@t2QbeHml^=G&4AAX^$iQtqn%=E z@^FL7563<;;?F*Hs}Hp?}H-(sC&vt`8@LxWDJ?4a6M z63u{gh9tIm>Z)=e*S_$Zm+J!4{SYDB?ml1j$0;Re9dw*&l#GyXgOh}WKt-w4V6j%( zCL{0=l?KHfrA5{!g&Se=kC5A9?8WwSBAKt(C3qRw6u<_PrUderhiD67D+Wy-A)W3R z-)Z5l6|EL8ClQ)6GWQ+CcO?&gv3$Ssfq%hb|AGl#tI{Y_X01@)2t!A<;sqHC)Qv=}C4;)nP7b=Lb>-KlM%hts0-H*V>E~iE%0*M!pySB5Vywl>^fUVZuf3#Sz+qs~BBvU*r z5Qo1Ozec5MBl5Itfl`qb>|l&B?t>xE1Z=1eJY$E1fhGduYApLk9)o#}+DOK<_<_kI z|6#NNuEubw4_=|RB#nAlq923);;mRYLtYG-El2ZnOPFJcn&SfAH@@G=lag;A>6AlTA(Vk_@svttR_rc`N3 z=N{#WHTFPp8{m_aki`jdeUR?%6{z{r5Tew0h|)0FlR;bJ25rP3e$~~3;HT4Z$bn8J zED!usJ|UE`JbN~fMrzZAuEqbnY)mQ^A(^5OT_`*@Avqx^ULQ6Lkv2#%pPFsk?s!)- zS%pS}BV*|8GjQX(ni)60TN&1>4(K3<4fg?HQr9`3EM=Mz$X+U~B3CU%%+9Cw^{0Q6 z?W+p(c*{JQeptin!ICWG7vK+D_6mnNOt6)%6Ku_4P+eleOP2gTdxFOVTj*9oGtzSD zrt^TGk9b!l8xJ=f!f5*OdN804zX;^p1lu*ndpM4T@)a}XI9PrTHk7oPexYoC*-^J; z5imZ){`?x_LPGiS|d zl6vxkMHxrp{&7u@Oaf~d_tFgEKw`gP(#qULN~PD`C+)q#xNXp_L&*x1-o0r>#1z>o>N=f~Y?LTJCi3%@4*<=JC+LCc`#^C_-J6M4fB?)<)x~qcCt~Ta^UnW^8xLF!e<#c4p}a|V zVUoP@zxgknTw3eGYj(`0uRb0W_^GaBciUE~ep1on7#Y{aCDo4&@DPn?g|QB{ypOHo z+H%zyvXzTlS@~t097O@%7=TPDL}u!0k5nfbjxJrd!N3^|cTq}Ek_V3+as;$v1uUsO z5UhVb5Kq8Ev|P6|C0CR3H2nX)P@HUs=1rv5j?_l5DXQp06`6`DgWuHo@5!$~r@0__ zG7zs5W5Wl~!GkW2*W?Y5x{mjAY`8cIhC!9);W!4*NqTSUH$EmRIG$+C}?rsU?s@=UE7it1TzoD6YpL zoQ_&6S}Bp1It|^MxQXP0_F&@}mZR92k1iIyJxA^IN`|d4U94^HhcdZM>z}!Na^kes z$rJ>lh`+z!LbG8P&OshEqqz#EeEA=B% z6SBbxz}Eq;!jBMz>wJKp!fR&{O-_tSvU>dTEw_jgjoKDfowxL6H%-&h?NhtI?9@jfi430s8W#f2D3=^ip73t_G-H0lCI!=OHtJQ0$dkZ*CgA z@k+GDDo5r~236-1qhCQMMtTt2l)Nw$tuW+@ROOHOH;CN~n;dTerMy<81t7~H+hXaM zy7_Bzp$Nt`gliUe$BudC@hy~@5^qI#trTUo+1zI+YXf7U2yUK@g8*Guw_D}~k%Iy0 zl=YkQHf%zre!3xru-8yo3K>k)(wu@M=9~{F{{3mfAE;=Nn?b zN?Ti=io660lXAb4i4Ld;-BL=*Z`#vN!A$4)Q;|1W8 zh~wd>`s=0Y04>Aj!Y2w8TT-&u0!2%KF z5Ca5sY;-~;_(j=TwVVpV75CL}*w?zV37sGy9>uJEeV2-C+i#fBbYzC_aX1~VWWh{6 z7b$yPhUO=dstxpPDi^b{Gj0)KX|fp~G3%38QGCu2W91WocH1-UuO&!ZMukwp1Kj#p zr9gn@Sb&y%ppX(EHG#S<8R5HKFcwKgGnm@S`&IFo5PcrB#z$~%36>txudng^_6z;$ zS@}^5c!R9;!C9_jd{5bTYO%lVP2Q^y-b02=5au*tK`r4Al~>_vlx3VK&rKT-eJE{{ zLa0?|@_LiO0fJ(b9`6SgquliZ{)NpEOGnt1j8zI-aV0~tXBjJ?2)%DIssVSU44zP# zORr=PD9$Cpe&n747Hi7j$!Yr;v8cqh^GETWo-7%gqLFcolTwc;BO_aK+HKPGAo~MO zB)Hf+n0nWqyv_?-F&2iKJliK~TlqjnaVa^0LBw(&uiJB5NKs-I_X(fkmR;Y(zamYUuufd54zUqZTS9zj* z*#6*(X5gw*SdY2NuhOLb0Y3M5a=TOc!1?3{sCD)2NfobteH)aa?TC&F)&fbc3A#-v zywPE^K$3#9!))H6*_#2%KmKY9aQQ0-hBD1P$nNQ|!s#inJd2U@8QNx;yGU1@i( zJ-oZSGJ8JaKC_3p z^_M|AtWAu?Lk{WjYXEwZ62TulzP#Q=GHh~{0i2{ z%{y)fQiB3s6?Geeo@@YP5WRScLWq>jT6=<65O%mZH*I|ZDKRB>wN= zoBw6|8f@>pe~Enij(urzux3%wU-`2d?~^gJt2BfF95?{}f$}rdr$PUkRIm**A)Kum zFjWrbE41tFW9B~~`OUJOuj=-F+Hn5O7Wuze-5*##ez}R__5!1lx3xb=_+ufEL}&ng z^KGzTsZ=uH__t0do!>S+Gg* z$Ec$q)dCa=KFLvOn}{+%)SWPcV)-$sAHz_C0=f+hSdlWJuQsNpQ>soiN|uer7_Eph zj($EH)vjXO^&bopKNLrd!{mV z8ghC@NRROhfn5Z{7EvOBuW(G_byX)27=k#BFN5 z{vP*zL9pKqy%V2Y-Fn~|^q5ubm;m>*?~OBYVBbn3B7 z%T+=ePCbZ{`$na)423K7_R&4&NYlFGER5ZqTiuAT37N3y%lOwnFU{>(JMHV<#}CYM zADMY0Ja!M{{%t|H0U*t=W$G%VZ9++2gJ+}OhT5A+#83VEHrl>U+4GqzENt9djB(XA z`YDVNZos+0pm*WwW4=Zs{r}tl^ppTaKTJIgJdINJ#D;6K2X>n@y!EV?KbF3vzC<6% zra|dodxWG+DL02#sZ;_MxstxzD61P%KU@+6t^?RN+%k?16($qlifC}u@_Z5*>Ht|v zih7s9rw@i0oGQa$sDCdovL%+LyaEH?5*CuEb5k#nyFu04%uw?NgV!YL>&kL2LyAeY zr_W8qSWTs=fbUpz6@Q<`SiRJZi54v^!mKeuGsI$1#wcZ$Ty;L+;3&TWD}~)1-3!LY z_(d3A59XIbvp|Av*?BA+K)JdRFr2EULF5KmVvz6*wu=E|e42X$y>(=}!QVVxb7A8C zrAN8vfx<8#vNR)+>T*!2gU%MpdL0^5^Auv$RBBt|S8bfLZ%O@xw{m?;?k(l0lQ^crU3WeaGll1P@U?P7q!;}g=;vUpcdosT&RM=(l>_C0i=Tq` z3c4#23=|6NM=0Rn6lp@e8_+NJf-ZIqNv11md1O^|p;L)(Cna|+Snwe7tUWLjuz}b$ z*uRsAeEemI9|fI2v&o^g&2b`~1|S1-k9-u%-^uz1nIUmdUU-WGHS70bdNQd79yns56)W^qP&l<%1BGq1_^C91W%CaxR zYXVz&>81!irIJtg2Vh^h^REA=TP0a9YKd+YGdniDF|!8R@sJ;P_TlEUR?)!h8B5JS zFV(kE$3B4V`yaZ$bo5z>(tHA|2K@$4{?2GB$`RAhkr%>3N$%{N!BJDC;VkMd=fQTh zTnPeBrac@!&9rNVAz}tVCh?1Ty%4=2ZHV^l98;hv&usJyG%yEl+t3d|vhq#BG@mhN%hO zGHA>Lu3iFp7#ydn&t}_e;iqCE9^EpBA#aS2f$HdGVR_WKQbE10b~w7wT~h0hO}i0) zdg8P(R~~IA6O?N{0N5)GKYcvr%9G#Uf6U}4NtAM6oj+qg`Ko;BsM-&9&eGGNLabx0 z1=_615Gt#M-h79R<#RKo9KD*hc^4s9t&8WugV-`giE}m`+LnDPZ+cG0{J@9AXD>Su z__@&dwAxhokOSL5OmkT^eEda!Btc~_Ok!H-KUEccBe)L|Kx^ZeCW{_HXOYMFJe*LA z_hVGS26q_XJW#5^k*WY{qxx}e{whw6lFPVNlrq$O69r57P&k7rM1Dzw=oL4$`ww6F{Izt!Wwu_5>)N*Sa|Q=Th~NrY-1jdw z{7F>}kX z;FX1QJ^?PO^o)gztaE@517$r+H*Kulf%-s?>soD>o(BML>w$jL2VJX7-U9=OSc2+` zQE=BQF?@w=&!ZeXPXmkGFq2L$BXTHUCkd*@X;qd#Opg4dJe;g+bH8D~@oUE{W)@Ih zI9zg!L1?*ai?VjAZ0A+($cwX#4n2YHTb36d^7v};TE~TvUoOUTNVVp7U)`MfIE7b_ z)vD;<1`r=!Jt#T_zjov_dF1zyDENl7FC^r#iUH%rc{6{vEBCN5m0D@Pw^J#cAwWZ?r z9qTMWAq<&tD8Jdcs%(<7hDmcAcBvJrzK`6ELG*U2D=4}M|4LZRnaJ;o0eWm{NN>OL zc_M1e5VEOQb%I{U1`63tP!M$(ei8R^CB7>aK!rkU4rv@I*ZM8h98_-Etw5f=1ctwr zu}x#Efkso`sh5nduE5@Jz}i*M&g@H0c`pQrJybGTJtNMF5(5zX*dT`j1|DDwt0-6j za7`Dx#-N+LJ7Yy=0Eg?rq3{bgQ-@D=3xL;%v-u;=_Qa(?=$b(CbxtdkU>U^55mX$l z0e<~K7U3<(^cC!SZZIgY8?9sdNaV+|;y6Lw|Hp$zd6(iLY(xd*l$8g4*kSY?!7o-i z(;AZni&*Ff>PkD7(`F-6aTJ6cv4SyBEaLNBfVhAyIL{Tm!muj%f*~G+o|Pl+FX|nf z%F1H!QBu=Pv2&_)eMR=8@&V6{urCG4)FOz<;XU(@K;zAehtO8w3kp;PBT#?GdafPw zW2YxB1rtsye0x2P{TaQ@sc^UtND6c|F`e}J=KG_2RqEKQ1Ngk8FV#2@2c0s8;$uZ5 zbxi2d7tOR0pr#mbq!VpfxT+EM#>ZdxzUFMXJHmCqgfrhI`y1_e9cY!?VQ$*U?Bn5A z-JN#b2(t-6v#sx5ulU3$i;efBE`EB>pvO^$u`I8MY#HQtD32AD^jg#+dd zr`qVeia8|)3s6t&y>n6YLqsVWj=gZ^#elp0aO{Ow@Ah4TCyB%0*dMU{>FY*IZCqCR z!*%B-ocT%zW@|p({=r7m-OIYnn`*b_wG!VEK%a07bVjVm-ovn5kGYr0RSCA}Cas{n zg7vC0k+-42?{UU0;@D3uh}Q~4G`QxhfdXyi1Ch_JB8^R8KP=`$1dFJkCVj!Q70|SR z?gdx2P#3@mL6>Z9oc#qH2qzjV0Ynv`M@8By?C8qVfN${9RgYQ*()Zwi!|<1Zo{1EU zs5=w`R+~s=h%gfQIA96vR2VByM5!X~dnj~J5V)$OZ&c!y62V@E-|)@ZDN?i?tjE3s zM2FsLdWa+slD>t;g8i0`AK{K<&}Ia4o1JBCLK~wg?!WQuUE$d`JfGg;mnf?toc$_C zDRAzgC5HFq#g1WJ&OOQjuzImkpeM_sTb9U33t~fc2Tl*aZ-^R1(u&|DoQl#LZ~@>f zRAP7z-`F`7C;nm}=Ej`{pQknchmgJX&Ty)%`kNH+SOtrU-KI|3)MR+FrciE*OuUWa zg;$h9#9>yv;EGD9eI?v_$a2W6`fsnK2WZcPD`_FjB!E<&JTzzA_a19L5{0X2N%g2r zMDbHk-Kvxt&Fr+f_HkRYrr*Y93PadJai-4`$S?5VQ>lbI*9XG56qmvl_1XiSTtsG! z3yGR?CrlEV^FGL6xbK+qz^Zj8Ao}2t=--^&_nrrl@9hi9ZXWu$u5*uu5!2wyi_F9A zzO}{e3D@lICHLEYIhR#{BqS{ajT^-m8qkE{4{w&trXDk>0SnAe_WKokq)2aT4Ak~f z-Zu01)8oF6VM@GBx0|bI=WzK(2c%34AQyXdC*XJ=zSbcgJ@YRxstBl#d5>%yul@~;(9xPQ-hkcbe{=&6U9E= z0@GH!G4M`C;%jthqd9kC22^eOP|=?;wegy~T1GRm1%l<*yIB5r8o zLZm~M?dt};^Sfq^k6*-I#u+%M{O@D>opd=1q1o^g-m;)vO{9t&)%yCls2;>pK zcamI#j4kLR219S#JUw2}v&>b|zftxO2IZH+rk|%-WFH@Wb=t9A*QeU-OA2F~^lHT_t7@a1!&EfsIssrvT@X7{G1L%3-%b0|Lf;pZfjeP%`A6 zxqq0G_r;%be*W*B4xb+xxqe)DtCNm4bN2f_{Nk1Jc86KJoz2!1Z6@L77p1F@?*h3C z!sVo0K95LTdQ1oV3-t%cjk&BI(|D@Yp4uOI)iw=1=G%D68+9uQJ+_e9Ts&b7q~H^xsaFD za`Cb8;@Lp^c~61AvZmfH8OpmIiffg=lXxb6eG+L8zV6(31gkAXS+NFrlCvl)bY-Yq zvFHgbaCQEBFsRmd>emLnq?(kR1GA<%x5$X*G*7BxCb22QoqJxU1>I{dhy&-oLJmFn zc`oZ$q7bZoeI`4r=n^L-<#^lS?wOtzo7ilFSN#C4GxMt9SaT!yTH#xxt0TXUoX=m# z^MDUDk9p+e|CMBTCm+?La-%CW=ZHPBaYsI``_077y~07*M;8#8=I;q2Ka{Is0Ox_* zZ;_4NVSIn!31~rxl5XI`HK7Ds;JJ3}EVrA1tgMg4xs~5>)Ibf#Grv^9$eg>y8NB=f~7gqu{QxsLa zl*ee$#B*j~_$kP&ywU|}LEz*KJibENg9qdUWUdphPL^?+-{Tsdx6=_~P@vHd@w({{ zkkxq>$Y{Lh1ilUW^Vvg@)YcKkZ5OE6LD6x zYQ*y411uEhRi%`mx9TQ9wfuh1-MUcfe3%L6rW`YA=*KRD-&7Nic3~29`FoOR8=m?v73rfM{ zzp2Rq)153pn{Kt&n|P7f;klI0EXVaQMh8X)%rE+K$LpW9@p|btlcG3o-n_-ioum$b zyx8E=4F@y6+th)uM!jJ@pM2zYclYOcBOd>+ z0ou)a+d3DW88`oo0Y&(><0fVwM|^ap!8VlP2AMT3o0?EIl^UvPn@;SWL-zdo*UnoXY__dY2DA}qBwc2owI^0s2fbKcMk1Ou5N*CT>WVc*$Dj3r=kiRqe zdlFJP{dpSpaRQ_>l-xy*Z9d8!gwH~}f9(OtkaV80MycpxU2DB)MXey^sQOmxylGs6 zWu>t$naqko9=)1>p<-!te!hmmBQx<));mVl!M@-ywe~_i$%|Uec=$# zz985+yq7hxbEY=!Go))I^_GUq0r!h=du9y014OTEVn?{W65uQC6^sbO**K8v!q!}H z`nAWfN4as@)0p2;EqnE<65Pki$J?QI^rr<}1b92u%Ng30&W`8;eR5l@M0Cny-qO)3 zeI|_rWllgFe3U?+DE1sQ{K$E``RH+R>{o6WbJKRGS-AiOD6BaM&c;4zp#YfUbOH6U zbeu-LdRJ9jgcOti6j6EfFQ?N&s6txB)KaMrk$v$rcRJjhDuI`we$H~Oh?_uua} z+1#kZT?OkN6ndGbBT#*i@!9PYg}X1|cXC!NB?2`oo@eFa%;{59`*WU{o~xx>N}24} z!yjJQb5}{VoqEIp84IZ&`-9ZShmN1~Gm5PL*dp6Nzh3zM5C7DaI5;(|%2(79NpLWi#W5F(fD^o%PYjCAtV37{rsJQbQL8$JBn_?ZD@4bC8 ziqRpQA1B~=1qFjzWJ=YttoE!x3PLFqWvmV5Df~3=26Q1f4v2R{J8eM#kR!h3iX9jO z;DgA#%gIAZA&RUrOTmXwaWW|)J0zaIDyrj|bL)J%S+4e`?Q6-_*p+=$*w6jgKWxU36>xqK8R~9ujY%DvNKp2$;sH4_F!? z^jM8P`Ek~{szj~~2;+`CyVWXo_!_LpgwNBh;bKQjP6$pH1e*j!Re-e)`a0Fkg3vBE zkvMqj>cI%fG7^i_j8bD#8SVIPypNZ)qKwus@4ho2%;y#e-Kb+M@&yPpm8*)<2aJOw zR+U&=SYCW10mGF0^>FP=?znTmUS6z3w5ibiixaUc>r ztMcxd$Y(#95YIznd0-z8coWU~QM;PX<)SuYVVK{eTNsQqc*F#W<1- zRJHti#5k78r#XWLpK59JpN9DL3%p6DPGP%{es%uK;^_6!?r0~K-dv|&PpT#nAW5T! zQAwr%FNgCfN(z2v5eli2g&mNZ=qZtjD#i!b0nG5c+p)!`3>pcB3(9FMhFlfS>J)-K zA&t@zI!A9%8My0674uU}PCnR$PMSyf6vY7x!DxOwQWZm%x3IrJ)DXsCU2zE0@sqJ1 z_%<|4;4ADKwS&?Q2^AISd#+WUN_iQos1X@EX@CZ_P*rE?Iwa@e-Pr`qeyc3&v`&`9 z>na)an+5H=0&4Gug!E|Q+LI=r5QCNd9qr~le7_a@YQw%X#Xx^E&F|OuLo5h?HI9Ii zFF<9f%#bn{Y4Ta|UiZ+e20V9w6W%tH{Eb2h*alT)q!3=SQ9ong4h!9eFTqc@Dz{Ed z?dQY*;WP1mPF|DKHB2{juk`FuJ=$&m{gXxvgOD_nB zpM5my{Hy3@Lm*^Ul_;A`s+Dm2^KD;y#6_5GMg?+Wa62SHkpU8g;bOq636MJF(X3_; zHSgHde7kFFf=INo!P+Z5w?fR4+qLhTr^u$JZTXJrwdL<~yW;ylxb<_#|J2Ll;yVHU z_3YyJ&g|zzEWQ_6u`diE^4+iNf=bN&sc$`@g@3nyGMcF}GR{@~OdJgt0x%cDxQEoW zlls?GWP*l6kv9BAnTaEHctiq+GqfaW8?8ffMhR8kgO<46L&D+ z04%@5pFraSgz`2eDF>`F8=~QWcOzC4))c0uSWq-ml^hiCPB5Wi(C0>(_=M~nu+n&u z8c2O?&_-@C#kn@1+vqUw1y2HsLfu(hhS2QFs?Ax%yU}a&90G-Tb^s-ZbT47x>>E>|dRWM?ou-{G^uc zm6bqCUbs5XMq=A|rE$6;PNPauJ20`72Nk>lvhJD4RxqqR>hY~81O$(AZ&cT-#~i^g z0+r!_J%Aitj2r3;r>Z>F5N!u$|1ztahokGhk*+9QMI2P&2#lZu zx86Bt&A8Wmv7rV)B}T5zsi@@6e0Ld>Dh&c0qJezK4|O>7Cs;pD=GNl_LIE19NKQk$ zTZL!eRbEiK$#1C1MmrA>xLp!9NcH>nO?Z%mc*rj!S`ig-gn}ZT|MK`BsL+ICPb?g`eaiH(&M_Q8t^4I1@q^=4IzsaH zpkiE!!>9OBES$x(%N3kuvp?t75ACvb@iOI=U| zTV#l+y*yK>=C-dRvU3cpj{u2ET?37S#`--`*|CRIP$$wnY_bH%8F}^Ls-RNCf!BK2 zH#2-uW;m#=5HFEy*g^nzspDSskbCvwpvQBRUVUCF9rV1qtXDV$xvteu0Aor3;9_uu z;(G9K6eJu46(^#_eD2mE`TO+QP-NItWu3?oRB1>e6vX0WLw24)W|(2EnYuSGGz2Q9 z{&8~c0sa*JLyqoKE}I0?Y1^TiSk}!+c~$N+d@NB68JCP^>vYI_9dGe=W{bDe@U;?H zzuzBBbiL;aTxEsEi(UWy3u9)#99aLQy<1`XOYmKan%bYJ$|7XGJqS1q(02gcB4Xj@ zonDt)yq%?!^9J?>_>tOg2Y2v(iH0%J1qx*($3UvZXRck)Rpz^^3KhAs8K=2$AOr&0 zY{zGdd<+NYyD*IveB_L@EqAz56%TNkH%=%DYc=Ic>Z)?RS!7)xRC&E1+;)1{WJ&Sy z)P){P7GRzI+V;5TE|tyV#ZDq)iicvX7^F9Ei_%rAJwKg<$wYe4>3u(_?dv7m2OHH$ z^^KOE{Pl~S@AkiYXaDdSH`-n~IiPo8z0ZrT?JIpeGjr+qR@N^0n_}}v8X{^{!z$m- zG}mIzCZq$9EI=v--D)T!#gbCo4Ujhl!821b2RJ+V<@8NxaquI0Ep4~3ikSm{83qrU zAv@$*^Z4#f3|#C6+?3%plTVr{AfCHZK1I>JNMVaqwYY-;Zi?NX)$i zkt;y+Y1v4DQ_XK+eQ}j{;4YZ_=To-KJeHJ&0W1);?5ie{<~}z`C4%ent6#sF2vPnk zeaDne8XaxjeOttfyY3~!^xN~umqYPUjT)yS%B5Dh@cwEtx$b#XCX4z83hQA}!-k)HZB96~14u;|r@R zk|v8Dl$9we_p2PEv>(L@6GnfEq8#_Vza_ng%$i~Dyq5Qo#GxEY82lki=>zhQGpy*0d(j$K9vj>RN%h$vPBf7te(t&hq!5`sE%yD*lEIVKH%)mD zI7B{xRK>TY2*{MTwPASn#BNN>p5i<8N@n8$dw$k|RDC{w;zzBeSoN2C=LVDbogo&7hyt@En_xhJ$9AW1H(iiy8I1imm;(0&~kQn#H!R>w7@&U~kbiCKf&)>+M$ zD?ez;)s@6G9+qW9E1!mk<1(UE@kQ3}aQC>5v6^-<=-7IUJ>Leo43Y;NOrlLdN}0e1 zaCyTVdWPc1?s3Ad%{Jpwd`s1?pMARJd<1G{U#*^N`; zl6})=rbD~V`55hWh_o+94pkEVc_@PHAZ93ba?BXaK@EB_zjL02pHf<0PSmUBDap|p z*EY9joZTqQ&`$I3kME|jZ{ZjQ;NICQZzI^r(+Hz#fhRXVIsxGZkJh>Ha5|u^A_zF1768nv zHh_g(WSbN0K@0#vAA%oHMt~OtQ~E`0Y%Kdxq11N2?kAm=di}g)LDYi_ zQ>o-09du^we)h8CXTA#f$b5L zx}4`myiuk3Fnyfl)5EB5`;Z!QAE`DP(S5JdJqY_wx%We)e{N;E^&2Z}pQCH@kxCmccY}7SZN7q)ON#SY)|HXeFPVzreFfxzFA+-sWD7vM zpiguENJi-mh3mPu1&@FhmU+=J&n+khGaRUgZY_vAiGG)ch256wn+UGg^4Q_mRegJG zOB4K&PTjy!%}`B`N@s<5+M?*p`_sl`xX}+Tr&lQYiga#!5KET&WTp`h}~_^|`!0brtSBhwu?>F)AhWr!21@ za6tM*w;P_e>PlJ&L>8D4QI4BNx&_QN97@1xFc2hN@dw3ki94(;jNT9aI1H&MyaBuu zFj)BB3H)83X}uM$#yhqo$*H8N1PyluQeij}3MK^ndi=_4xv4SU1Ctcca*`XH1Yd#Z4$z{E%A|Vz5{E?rUlyS~kM{|&Q!`cJ z6c9Vb`4-GjkIe|+v7I*?f<#$t`|h#ryS;61Wn++aJ7+YdyyrttLUB6lSIM*8Y=Qq#vL`5}x3H0(AAe+aZ_g$Sb_`xqOg*9u!`)==`^ep6@)0JX;uXD^wS=@ZvT|BLoYGef{BZ*@ z>{kzmpQ%x##FO7TuSlO49dK=U>>#U|pmccYjng}3Nn-7?dbyv(!Xl}2UkSidqoJ?} zkTfeQtaDp4;dDrsR5W{813h?j%lrl_YWKsrL=LWKzkGKz$=+e*!r!bc29|SNnn5xJ z##hfLS=4RSxsFqPVu-SSUyN@or8RkSQ%(9C+Bc%n4-I7IFubK*)az15%T|t(_+=az zr?OvwiSP)tf(oe~2k-O&D0<2}ag2AunLMk-RRH$lz!}$VmV0W;ygOsOjNW{(5yC4U zP2Z5A-fdRdURHZt8rU{nVQBW3=AC5iodhaNJQJ5y@)=H2j6Z_OZAbwY1UO`75e5wk zyfT@*SzsD^6a=(+WAtC<$Y(QjiyF8vnNIQQwLmW^3(>tfg3q+QFQ;$7Yoili?m3Td z8<2(E$W-Cn3qDa_{KDBsW7vCu$m7mQ;Q>j`9Bu-*pzz{#_FTDtft-7Y8?T)7ch(lv zMAjXLI?GPbd-?mex9CPC5>%9$Qm-ABQ&Vn6!5w=vn%bjVZ`i=r?Rwm%x>;^$8>KXQ znq*R~EZlk!ajr18-YKAec--!8*RROdVFpaZd-4%w|e?-$l)}bvM({lWkaF>sxZr6SQ%lJ4d^Gf)* zjFZ4gT!_JX3RB(1q=KCa~N}n{A4t|Shnz3Ou&i_&!fo26M%x2-fe=8=KTrXO&f*ZcARiw|G;VM}iA_lXF1WQI2e2AM zlpbmtsueYg5mAq*VddToOS}lBv=qeLs2tO6{X4%|;_|9S%+s3lZ!YArZ?EFE!l#bE zh#qke9zZ?dGaYE5en}i9xDSt*1sF)mBXl*SfF#N37PE(z*@>g-u(U%T2ksl|IZ7&% zkr%&0sMYn+OZRR>u{>=TU3H7&;x;-r{q7HX9x4h zs}*Ew8q@e5;l$u=*1Q@>*;lquO71K$itP?n|39ND{*0^-tAK&PgE3|2jQN#%TrsOS zU9pd}lhd1zO2?1FbrBf#f%oe7vkrO3H!VE$K31G%ob^lVd!3ofUKMT+QW;q|Z|VXd zis2F{1d>!Ixb_6Q@;ykyttYuLhG2vU&mP;{+5;3bO|b0*^v&cyugHZ*C~6FyFXz8) zkAe#KOWbtsSJfvK++B)|_?1ODq1- zwG`_FZ7_SdF7EjdecoBCcLn`;AU6CQ0t< zA@&gP_Kw@Y`)o~GVRAmHd2HI2@TXa^2H6(uGA0o7$M)3(JskW0gM9-rJ=+Vq7X*XL zNdg4Pe#u1#*BNT$*jtw0wP+9uay~pQ@A>YK>V{sNX2qaStI{Y_*ef5?SMx`|nmmFMxAWRHUIZo1RWV=)&rk|=5W0?l z%AOYO_qR7By$3e^Jb1(<3gg)bc{@w7D@{RutT1QI;lMSA@!_8PsRCph2r4&Qf4tkQ zX_GVNLSWsAFr=0CKLqY8ga5B-e6+9Zm(z)-~rdLlL98rW; zEy8MqRZIj=8Xk=t{G70P^Z`c9N0 zs9IRlx)*s~O1v3G-1>Lk2fhB<_wQeMx0%Ws;JcDcdJdk(4D@;}mwwK7vmQ73Du2&* zf1@k?>RH9yI0g2c0T#d{6X5s(0=)LUDQww3%d)?Flx3eToAG0<`se zw|-(HlQov*h4Gdq#K0jQ&WlutOR|~^Hkm1yLx}z+=C_g<%y5Z;BL;63l`e?z(b9|u z{Qc*AGGWT6VAMQITXp-D*X@#}1_UTxH(w2gCl44Bjy={W!gx?_G)yb6L~Sj3%1L=8 zCm^;yv;$`Lb3|j_;r&h&WPOy8H1yz6n5C3ql*@mmhq#X?a64+e*KbTJ^o&}2;@2yI z>a~9)kb5sjS7G>T9QbeUI0hnB>sYrqYs;fhLjS8@%|E`c{i9O1PRg{ftP5Ov?7=ve zu+R{F&lBhoDkah64!Bjr^GbhSel`%sXRJ^PRNperZB zAH&gkJrxB!VQSkFqA6&w%4ijw zT=CDY1)vN=>~i|e`_uM6^$S5Kr`rvJ4(Z-I8KRE{(IBa}blBtqJu@cpRL%>YS#zlN<-ALysfs6{@5R!+rL_m6sbg|*-%N&dQmqgl=)8u_Xcabne35lW z@;-+_u?^qnq7zeiX^-;CwY#;haBR%Ej1bolLXeIDz+Emmg2NgpZ{Uvzs@rxRIBeYV z%~r;T=9rE7))sXh?##VM!S67*_vkRO8M=4qlFjt2H_Jymv7fX_Qml4bLvBpf7XYPX z&_F=}_VJ5>OE;ZMF`v3widCe*Ys5DwFRIY>@wDD+j1U+Bey}6@qtW zJf6n;(m)#we+UK%wn4N%LD*0)*| z9O3>0<4?1=-_UR9uum!MEAK*0EO(*|m1yf#nt#yjTn1Yr<}1FsKsPs}sx1S#JAOFe zSOD4ye;U3@zHf*D7R{cMm~fR^RdW|u@NlGTwoDDfLnT9lj}`n4L4~cCGI(+eqLt4= zd&X>+`>N#Plz_5tg`r(VsW3LPF&lU%HWI-v`_|j%p~jL>t{Ht}3IL)rDf;j+MZCqq ze`oQ ztj@s)EDIoV14QWi(&3>wXs!e<33>CLCvQqlezJ7??c3VJ*JJ}29`vL;r1yjf2SJ0Z zJC61hX-$4pNOa&^6$XTaci&liz=K?Y%oP=xtH{#O*Cs^6uA~D^U^ml4Dz0u@YiCJ) zfDSnPo$JjJa($?LB`w=24!D=xHPU`}_QSSGXohPq$^jVhMhV&Ti7?^osN(=VN2S*a zw^_1qQ%h5SIQI`OtQuQlsVBc`&~5m=v=^c!z}HR5i6_}%m`XZT%cqAX5c+o^(m8kK z-R8_|H|5o_>ep@D)28d1wc7QvR=<9+EpGS7d)GR^r-#<%G0zbr{TjCo9{iER-nC~7 zhKJ4c44&S(h-|!mgXBBdI9xQL)AyHN4r)8^ziqqD*<4drPn2gKya}Gxw=1`-5LS8} zrvXS!sOd(_3CvZ@SR5-%2%A)}vE~r9zofvO1@Ve27M7YtNxc*+%D$a21#L8N7^TD} z2Ljj7(;`E<&k2jMIn5DYgIm9E)PDGG>M3I>gDfy7J`h-x#-M^&SR?Msx?JhPku04E;T`JU!T8@ z`+~ht$#b5iEtYk99j>kc&(!5rEB`92MJuBgW&^{3*LgBd9KKVT8KBE=Hw?9>A_~xg z2Dii4Q5DsUDMF#8Riq^qM#mLqY8~Wmqz~wK|%BV~Z_jxvN zS=)*__T>$NaGMePGO1o@~1U&4cK+yse`ElD$ z>y2IWVkKeqe0CU>S7b3`T%B`TvEHnrpA)C5XlBOc-A( zCtcwd(|s!CzF1Wn*f$Ph(2kIC}+&KT@YX(WX00?H-^7}odcbtp}LMqv60l(gJVYLtBmWd^XocS z%w%pA)F*+2SHRV{m(1A&oGlC)foiaEc){%vge#Oog)hjvS{B7n6>TL}So+ocSd`78 z$dlzfKe7Cmy9Q7mChLW7kKxvZ^GB~IUbw1nsM}pA;YF>L8YaNi@qVH9OdH0n6bj(R-<|Cg9|IbC<1LA zq@p9~YSebrFv{$9eO(sr`J4wAIFpOXCi>AA%oYKnYHcPC-BhnTxVmOYG4UO3fpd{&>Hpp2RTUdvU7x^$=b(D z*H)f)t)lz?8Qp)!o&A?n7tWGhh~ufnywkn1$35?KuYJYtXD3^~wEa;agRe04k61`W zv}#)@+dr{|%DbrC8Qc@S!ha4K+rYhKfmO*2`^LfduR+G=Rke7k%G$JX9cDtMmUtkq zqJjRXdTXKiyArua+6LC8L;9Gnqv8)ZEFHP4;hHlIAr!wR8~fBD?f z-&0Y>jh7uE=N_7I=y?Fo9#>({(KSI~MKe*qO`bhePPV_>o!cJMu3FZ8PowVJO`DUw z+kDTv%{lvq%iwfp>>J6gN9`n+kZ!L9!x?E3%iUF�@v7wXvR-%k#w_2&c^r=( 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

      aL>J$<_KdpGMe{Z627jq zC26!fP(x&hrY^^^PNm=2h{=+uuB0c~24BTM(ZC>Q&zki1(Ut|utHHK{2p?Mw@c;z{ z9hFHQPt2Q7-$FRo+qGr)ufwH30NqW?fqUA_cdwZ-WXd)b+u|3bC^?t?AT}%ogv#kY zDb&~wnI#M`$itlsNX&_pPY4an0r~7p{9Pe8j@I^$rP|D7T7aUy9$x{_;TYPjrhbJR zr*sxoAn0DvDg79bTpnK4tY6=;qMf}Q?I-b1nZ39*#TY_P*W=9|`M&}G{J((g#WiPt z>I3F@EBkA&(z9W@T%~BxB)jc^ZP(9zsnVs6O`Ys;Qo&pcxlFct9--n#=$ zqKXZ$-nqX@I=xtzSRNsZty6;VV*>)XxyEy=;u{?QLV@JzRXs@7WPNl;M+L~q&wqaK zd^}J=-O|VODemFn9S*e6(j&GoqpsyCw7F$2+;YtC@yKzf&LGfYlyGixcR^|@{9pxM z&PCQL*eByXg6UClfX@P@7!Rs_>!38eD;%#6cM5R<9OHIHgbaUd(&h#}1^g_xPqd!G z-_`W6b@{G*!7+i5G`3O}ZV6YFhI?tWT|!RD$mZE2n{i8H_Na?@_&|8c#iC{>jb;!a zRz$~OPVb(`F3sKe_H^-yrtbQ#xoD;Kh~v3b4k8HXfmZKgEE;RHA0f@j0STYjz7i6O z)MLxa0~7aU0Lt&*g%M=Dt{+R|lVnDDX2$i%jKO4{O3WdyLUaUGSJ`+KK@V-AnSfw9 zz)x7~)V*nJs z3>{xCL1G(tBLFJQvnx$j;N_Jqq%uj3&6ZsZ+HU1aX2d!0%lDYGxFNi|J zf{n}=;b1IuCa~jaFG**)y$nu2h!;R7DuC$JZCWWU$!1a%1P=y!tV9=HW6;=WVgo>w z|LfAu542HU1D)Ca&0Qt1Jmo84xf0wjeWpUFMO-%MdL#oV|3?c0k>Y{=vf%>wspR)X zlqpF}aP~gMl`HXL@2-U7Zm~lTK$Oi04@?SHI#&!uNq}n#NDC@&db`da(}}sA_TIF< z`3$i%M6C%eC*K>EGL7v`>znBqH9ssz{Zf^Xg}iCt?5y0ME=A0LyzJ1aGlM5i9bvjz zBjKT~Eh4$e-Ak7p#C2=p)KR9J7l6>G(wcPNODPsPYLJgXkAuR1{sfyytEzSjO3U0{Wsl%$@E5zn(cek9AhrHfa^mOGUtoU{H>TRP!c#+| zZ1naqV|YD2rrF0F2-+gySfB|>m9?arg>VU;hBYLg_Vsy0^GWJVl#EgbEU%#B;b` z$`FFTdw{$g?|fp17ZS8H&miEr!IdQjS5PPU3BYWvs&Nqk4iFbh%ob5jjcF%#nQ&6g zWBce+d}RDGk(UC~CK@8Isq52x7eyJ6P!Xu65fh^sjA1c7Vh%Qr3O0_T@gNUd8Qw1E zK|Z*vQP|l$2$ct=$DnbX-K-$_j0bB+@FoQU*YfobR#gERBANrwo6(E;AVm%2bht%# zf;h^y8X{lUy9bqcr+5~U6D@(m$%L1GJYg~o(9g}Xi zj->Wz)Yk3#)00*Ks+pr!A6pQ;>@bECpm5r7ZC06NUoCwGFLn&=m^?N9dcvRN;Ze$< z{nvTQ6sGdR8nL4BXOzpagz1uS7>YiWNF)xB2SM^x2NezRMI1vUXF}3E;&ei5)80A< zZWsUbRJ?Uc`s|lgvgaiP`y2oE801c)4`E{EO&#fLE#l-Apn`yos{5%ps)feIBoroa zJ6v&8nzcdIyw397nbo#&w;pB%50HuzURyTp2WO1JPeY=wLYe!pfpyd8EOym@Pl6sm zBQldbgQ!d@GZTe>t}sfh>}V7jTzO_?S7au!AV_zFZrp%BPBuS`(>xQ*QebEr)WIKo z`i3a^n;PFKkXwlQ@{$lVMGo?Z4sJ}+b?ykL;^u%Tw92Y{l^yJNF4j`Fj8#4rflUWt zliSy3E4hj*xwEnxhkhR?A_mTWh&cg8pip{sxaGzAVW+0Am^gKG(LY@cRq0ZpJ5wa8 z*tWG?q=l7_A%M#_aFQZ|*y*Mpz_!Q^bgGd0A$GjIc()XXIp6a} znswwx`L&jPXf8tn#kqB!C|jz;no8+tPfq9ajRAd6>ZBZ8btHa(79} z{ILK%91ywX%?gm17!h(cv+y6<`b1}TwqA7avS141X1*=4{90m(5dm?%!JxoK0DJl_ z-hI8sak>vUmLOk}kQjfG`zsXf`JGt-v!GzM3o6mZX7^*|2kp1{!eP^4R5y+6uB~kc zT{A#()D{>{!$}Y9*X?g5CaN7b-7-6YNY@0DJ{>6)bq|!L7dELR%o-+ko9|Lr=gVNt zV_2?1ZH9YBU39QBW}lo<=cOqOhK#XI2<|} z2gda7RNoanSXZwWn15kXP=gQu;Z%bHA~AhcX2+ig2o(gplMy^6Dj^xwW4hq2dwUn6 zyaqR>^2$B_2!l*9x>6eI+KIj4m zsZ6y;`JPaKsgw z&>`BT^E^j;yS(z6z42}JJh4{?zAGvad4gYxdTkjdSrlCiOrXy;1_4J5uK01TkiHzX z=f<|XX9W0BM1P_Qv)8^zS{@Wcw%y;Y2FMN`ZrckGAO{|OM~5bRA4XK1fK%A{F|!lq zKwyXxY!HB+AW3vLQ&50AC)Lb0uYwj)phEe< z;NA^|JuI+MEi4Hac9~*E1Oj){?zJ&$p|%f}8ACqR4nMAWG9wR# z&7d>9uuVJT2P;QdvG67bWcNmG)BH$rux8Ti$J$}WxfR9`q992t_mCprdOH>eI2A$m zp<&=$@Nm?hq4`r1Cn*h`{Xf47WuXa$H3#C%;(%<72jnnYT0ur<(v*-~58{2;b>IPL z8YuTe%I6Lr(F*m}gaMy2#kpwjx7C`MYjtxa6TZlP^9ha^NjLPqCoX2wQQAgbW3jGL z%il&;;8A+MdEd)$3M;U4Ekq`SB_TdEYcKFZuZEkMC6@IyO^%(cy+`4vM(plokE%bY z)BTs2jHs7@;RY6sPbp3E@Oe6oI$ALxVpwZMsUSE->uPHEAkR_JiaOYL1rh`9_ZQ#N z+UwmI*aumC4YVV@Sq1_v+~c(Z_ZJmoL(h9!Q}L;y;uGy7ju-T?LJ*yD|Go#_iET9Y z5OYaf7?E$l2U;HXE)=Zums;oJAs)OjEpWT!<2)bnqCuX$gHnAEpLcZ|tLS~2*we#) z=V}#{$|ucAAGynWdUdaDqc;6BJLBOQzu%`RjJ8JY&>wTF0U8~@Pu!3cZxR!i-y)Gw zbF%s6_P+muK2#@Tds;qs^27*sdvcQaTf$`sh(0&wt39rPW!qO;IbcNj?7OgXIKJH> zSgPeLY+Rt@NJIpxSk_^y15buWfhV9W4e(rK7J!;h02*R3*HwuH72ciP1NMcHk z|J|HFN(P^?EgbowP@x-;NB_8+bC#r#;W@=m;BJIG(aQmCZUeo{XbVyy_9$gd`UCew zICy2rz(ftoOzu82iDgzsN7l;v&3)>3_o?4n*(?E^Dw5^l?$c9upW4W9e7__Nzv z0SkWGf8WVIdpx9HeJfq>?s=I6qZCwEo8FdeDg%`RgbpBBV6w}Mcm)px#=VaY#x6%J z*B!}^O)$rqr*jV0QV;U0T@v@a*ranVJs>iUCRg?rJQ=W|QIUSyp%#xX8yezRFH`EF zF6bDw8(MA{T3}P4K*|%m+U;Ot`q>71G$JSH zA}Ro(AG!j5wbx~408dm+7R1j!^G%{Yj`{Lwh{r6HfopFrR@;Vl1(gj659faGjtzMX zF41%&wXNsYzL|af-fpY?UnKjfNX+LvSg_P;-Cok%!t}eY>7$OAE8}3)bs7bt7O%fY zclnrG9(BtaLy$2am5{t_9b!Z#_tH~e&V1YcZAiaKfmoPI$UcnZM+C2dp$n4apR6SV zFn=I2V^L6Vtf=;wVJF^6ne^v6agJcFOIF-zd z2tKH44h0=qwaW7sev(__{!511%dhak1UYO&Uo+XvqiX9Bo|cX9G`NNQI6ir7dHc_7 z;(OcSW3avk{HAGSZKbCNk!SMoVKE&UGON9>o^GNeg3KbU|R}v8!IQu_v zac7JPc?YnqM*mg@PIT*lSh?i%(AOGThyg>Zj zW#ays42v+3-owz_hszhev;KzNm*7LpPW;8{D3rLyp2S%qcdL(<^zl>D^q=I^5c0RV z!AC+9(e892(2jV3Pj+os7u)MLNyW@o#r#ctA-Xw&Ltvh>sPHNP>ON(nL|G{%!C6UZ zL?ZqI<*`VnA#oCl8u$>;PA2eLS=0?oi@Zz+dTd~j?uEgnbvUKdMk?87Fo6Vr{ zZx6L|`mjA0>Q`Jyzxlo!bJ`yu5rIe4>SBC@^ZLAX^}(Q>S=eg4{YN9?Dcdg;#*8YH zW<4?AdHPm$FW0xd-rpy?H}Hr?t4vz3%>2;lTNp{I7{JO3K>(KxRSo>4&{l>sCgmqh>Vr-@zlU5K z*v8^bII%fzJ5qb`FWyOHKeka>98V!M+!)6U{^H*s@3Jzo_azhthHs05!-kc=>yhptmYP5ShDqN+>c_(r+0DxrE|mTFtI-^(;K z*kd1y9z&TO+8s0?KVYzm;vInF-O0$@?FVd?^rF2(D#lapo;-Z zvt{W?XFA+M#2i=dZJqDwr38QX-H33_x#8%awGP1CtanVq+b9)+80+qUKr+x$mX$v9 zM&6uC>z&0Za~x!TJ~e%n+SZ^R_(MW>FCgNB)73OF5Be#)`Wc|SX+enxUp7g5$~+kU z!IY73x3`hz7J!4ftAjb7Y=N04W(B4xM(b|Q8|c5p!*Nx=L^B8CHzDLe(VfO%Gp0%1%g-9L;n6zY+D6$xAH5g234U2FES^2Xv{pn8 z7&Dn^Y;ZGu^a9XO$CtgvlUulso{GCx`!_Mej?i6=F`l1Cg3B&-7v|pDY2QwT2FyKM-84$;kr$8k}liXe-84wMTc$++|oG-hRCj^9Iz$sN7^Py7HBN*jb@}j6YU=WQwcxnbkaU_KRdKmwgDLwYsP$U3i%Bi;X!rC_r zGVb}={`NKZr*esvPh(SxX}z4pwY0iY_y~T0)c%Ob2aKGevv>4Nx1jXh{^+nLx`$5Q z&^QyxT?0vyEV4P$y2sJfA_6*X)`=V!IBR|wD*2%{(0xyDozPMC+rr6iO#u8*c$$9z zlA9np)y9Setcz zF=yv>-O!oi*96BKgm-&_l|e1+e~l1UK*>-Y7HRVwrG+y-dXDxm%DJ+N|071Q`3Tz4 zf#kR|spSW}+nMqkdKgrz6q+G`;UD9mnK0bF39B7Ku%!K)pX6Q}&MKUVt_A2kFIK}< zB8pIN3Bl*PK=YsX983rF>+ex^=V3N8r%fP#`z5;*iL;3<^$yVQ18%Xr!STew5spd# zY*WZ7-o4#v=MkT9fOTtrko}Y##2e?>@;yT7sAKB3lT1^UVQL_NWsZoM!#!pLqK ziA~V5PKdPEhS({R0w%?spvJ+xp)km3gpWo6_nU9V%#d;7W zMiXowqe5W}vuQ^MWac0;t&EYq)GHwBBfL!ER*ER(5Olg$G$7}V!~>y3prR{Ci6BHP z`n@BUS41Nx$ByfEcTY(#OEqsPd5B>{t-r_x@9&2zHEbukxv=5dCJH!MkY{rG^viA; zgh>I+g=DgN-&1LFqc(7Rj_Q+fc+-7P9jt{I8x)bsz{`NQ7E*0a5Q>bbo=daVeK;tQ zf1qvk2wgc>!?f7<8-6WwA2q2?S?N9ZNAyYo!}N3}U*8$!HG7Ngy+K~cY14jt73mL{ zwoz3&zFq*zb=>lXY{CcQ@qMMff?E5o&1g>>p*+$wv`7->5{guNmeQ0`3R1dT`|Vq5 z(CX-~vsvt8buab|@T>F-UsVMgpCFSzkd0^%%2A{MKtJL^toT>Il!13wnuen@-6EHy zc|$Doq#sfMMj;&Fs`>7;JM~o$N+2Hi(0e3v) z0r6t8)b-sSoL`7+B6qiBt)MAt+cyc70laADuA&1B^iNk$oPzJw9eh3qHzHK{^K^By zLYjpqLi?sqncJeHROS^g`6?CnJAaUa>YF4c#GZcvQ5dNX0)MCJ?p%M_uqQ5G*@X6O*7cXrLn00z?cX#5FT{FwZMuL`om)pG+T!j&lLhs=mjtPb55dSYMb zseJ)c?drMvJ)OX4N(wI=An41_T->ouCEHhKR4s78>F*DaICyp@23{Xw9jZa8g-4NQ zKT{om0M{)sj;Rh3ienPv+7gLPJWYoPpMl*z#{As^vw!A(!DB)K@Ek-fcY4ob7m^-1 z!Q8VX3PtgL4P~Rp_BhRCG*I-#i#AZu zchw_~Qlukh_&kj`5}`nlW5SmO517~ip@TtF5W9@0K|4h`{}{fMy|5perI6u&hq!bL z4&{jcgl~%O0p+%mi|6%W&$VOP3_jGr6%dNJLA~aO2;(lwTCn)p0H-;4yeJ1J<)our107*NrtueDbH&?JU#RchV&gp{V0So1 z7`Vn8-n6$`casoizv2z)imvYuDkxhlf-{<}OpslTo&7BZ?Ckur1R1p@e!oyT&s5s8 zXjlb2I;fpc;Ahe_ya?qn*>=IBJ0sH%Dr0e-)e#=ijJ|;Ji0QIndwA07_h}?7hs0eW z`z3?0Ig!CUf+Lc(Y=fo^)wdy?9DY}aKO#LbJa!4X9#X7Fne^!3ISl7OB4W}gn9=~f z8H52z@WV1mX#gq0r`*_flBcQrD&DBkMv;3?0`8f538pCq4%vFRw&Efi!kwWE*)&_6RWEsd4s-IkWMSiv#(S8c(=iPf1igwZy{_#JuQ4Gu zp`~qpiYlxCa!v8x8QP(J{`;71fnLM)noG?!hcScqE zUTBdY+G;J@mQT$O-s&WCA{JOYsMP(tvQ!WcN_4y8Z^9(vRS3@0I8ut@AT{Wq4mEr4 zVvJD8NC*wWPmu4$+Zc=usL273$jJz)m;=MI@iLIDRY}NW=8Hc9hg{HY#NrClCt8_6^7o}^QAUfRmKEd4kCH-So*+pDwL#y814%GOWnmuhFKPqw zWZ8)v_l277Fo#5(5KF4!%PU#vwx<*8{l?3)ur#O zc=t0}Efx7!tuE!JXu01lU-NHZDj#pt&gqwi?AyEZphOi2t|XHK z0lBfnQJz$e7R*t%pZ#%#4y=-%aw`%kG~k}rt-zK`XdfnE_$;_-!?Blqai#aD~>o z=*1rUN#SiIv!y(nP3T7@TJQQO5D63fYW`X)dA5i$tHJI6W9>`eYE0YzOG;z+qR5h$ z_ib#6v{)-y8bdW?L`-FCDlHSnk``qb8p9Y0m8DQA(_(G2gou)oqKuR*p?$Ca_qv~R zo^v{#Vt()c^SM6H=YF1ZQqFmv`@XO1`Y!wq4Ipqa)i!@7l_GIG_{6a56Za6v*Tgzg zX*yeoM3%as^B1wW^J6!=+BrI}0nk+^5x!48!m3t(RJgcAhK?P-5$_5~N|qv5uxXNY zv4;h73_K+4@=@ICk{qDSn)>Z1l!7AIv&Y^cgEm?Tn+F$v{o6_N zF#KS8kuOVN+$7CX-q+dYGqu{sF?F_*4E#^8iK7bI*VL7Alwk&;*~zxDs?gN3JYO?$tj{4{9=s zzQa5l;?-Gy%}$fcX3*G_63od!xWIGEJa_zd);%yJwtKnQLC+5TbNDo5#2k$sqk+Yi zt67L2#Wj@qF{@dG<1{Vi$l2;Ai?6|w;Si8Y{(G?nKkdJ-um9dNY|M7#bWwV|7*eb+8xdN`#KBCCb*hWzktxW98-{z!NtZAWFid2cu zpTyE8@&19!%HJL5A6Lzvhq(wk7HHWn2Qu-_Zo7bytbZWL5Kz07mLX98fW*%(ht9{R zNd_`ggU}Ul+-IY{&qloHMEoFh4!Gt)fk>kiZ)Whx@4G%d(*Y>2_hl}P9`HysT~3Z3 z|2#c_Ke}nPo$k$8&gEBT@P(??8Pm0Te%n@kt=09dhV0GL-%f+^OM-Kg@*(-(;1Zy{ z`S~wY^b(?LvG~zSD2cA^?dA`+dy$SQPO^RP#TCNNI8Y^FROuf<6}uZ&Ke(N@O^!s6 z+nHH}FBNntMZv*UdDiKW@ujB!8M)bn$CZ+?+*>5ZaXEtH8igvmWX^+hf7zb!FH z0;z>kq2>ZNfFT_C1uEBG6`g=%`*+XLg}Mx7q9SbjK{WOugb|Vi3244>ReP`$z42ba z&Mqn(4U3#z^)F89gIP>nkih@I3w&VQo2foBN7DPqpk$H?P4eu*bpjg$=1|1#^edMtdN0KHE1{8oR~nW>PUY-w#G{Nu$7bW9qg zECY@G8B46o%AC!PlYC3{m5P6Nkh(oXBaV-k#Sa~KJzV#GzaU2KUpJge!1j9bJuNTY zHxDnL_dE!q&;CEcQ;cgH37WTJ>x1|ebe%?k<^{neqw3;m%x~>(V@m&v^`p>wZ@FAR zolT5~C1p%%o*fDfM=W}89tRPr^>1%=tuQ6t8g3d1c3pN4pVpD|=)SS9Pj;_k2VGrn z;q|rf1=_efl?- zSG$_!JChh)nm4N=-8UicFoBZJR}Tuw`ids$wBi}c9RGonCE};&b_STa73Rxa30vL+4?rV=j>;={TP3g@S)*O#rIrb z*T~ezCN>c$&z6T3F~eKNM&_EV0&239ll?HsWu#>S(=9?Tmig8kTnDXQ2=zL&t6eHa z`5pmz84}dhUxhZLedRUOxHHUaJ_bC7WGQt`BoZacmHJBw>?{S>D|WLKJ3rN`y2^IQ z+?>-890gNAtbYIxNzvYs?{ymgH(L*;Q zRnN;Nz~Bm_07ESFA(@4WsL6un0rEfKii{hfpGD>dp*n?}rR;R9o%YpNZn;mj)u<`i zKi_}uuGphJzM^!&B?_3spu4KPIqGd8H z%#ClpN?QvGKxLGvof*Tx3;^-t6xCoj^k)0V9LI(9P68s&UzCYHeDfe^xJ3WEgF`1$ z+ZiHeGKiMS*F^X}8>q@MMZ2Y=vo}4Obq-ue;OsayGzMIUP2$K(S5%zZ@#aqv1w29HDHefj9L&&)Bg)N@pMK%q>gpMGC$)u3k=>xV-TzU4NMs~xmHLJ|fS z?IO#XM>R*(duVw&KQx5h9tVBH(Q*D4V@Y}3_W+9%@vh1TQvi~J6$e0T$L$7DB8Dx3 zC=qf6@!L&g5ddWDfq&fr5~=s>%LWHj&7K(Lz45O9zG=!TkQy2sqrMO&<2&To$VWda zkJE5j5Q0<`?dm{}fGODxv9H3p#()~Yc3%ZAVo-fYi`3imT~s$;;*4Q81$yZmF%2K< zXR!=6xB@G6X)XPXq3Q$$9&vb*#(|~|$Z|l}yrcF0c*ZU`o3-d1@GS&>fH#P*uW1)1 zrokTy9fiI7yer94pjaciWJ}`%)ViQV@fH08OyDLu;W1kpArzs+H4gy8psrG@;Oivq z3x@5G>;Wn*_Fqfrh>UUi25>NQ-UytH5Lu z*dpWPS-G8#y}fhP?#|&{29N)GcoE)-A3s%J=#VF`4d~Io zuQ2sdiQkUx;@xJurB4GFaxw}~jBiU%ffut8&lHX(oZRleW*g>ch|C@YIB#&x<;fN` zLS8bc$$YftC<{nriuZPD)YtTQoeOocM9=OS=z7V&Tg`V?@8ATb6v@`XK;?6Sx20JI zM=PHT%f#D+Fr#p|SAxBhuDaRRL{leQn14xh?pvLr(=^{q&gkFgIH0n1aQ0TgC-=&z1D5s0V}2;g^%y#5ZW$!M$|@f&5suWta>Bvjnw^ z*pBWdn*cG|HbijmN!)n267^YdgMEOpyqq=3nee;NNY(h~9 z1~`pnZD4>PL?AGJ@7c!SPiXwXfPKN{LeylG4$syfJeKDrb7&$yFA$~+=ou`34{VW# zT!iMG!J{*h4DCurg5Kr7tv{ojh)=crAA&8i_;t~EYk(30-CfXLlRT3kzVyyFZH!jU zX(GUUIgrdw$-&BSW~x`eTyq#hQ-W}FTKb=moj|dWuL~}cR>6^|>EK5Y#=cq5`h+n8 zaPrU748m^{J)kS*dq#abCZGyPZcrF8&aC^s`KhCnsjws(--a zs`<~zWS?0_4|sDUA+AskS#7lf8!)m#!FFxo1YveS%B51W1MK3EOMC-)G+-rua{+@L zYNqIi6l-A8WgH=*1{rFuAo`F<%%HV)=}eor;Uo3r;d#8S2c(K>)~g-&eC?SA>@dJY zc#xGAeS593jdip+W#Ln$$cV5Tj0^arK_1&CX5J&F@_dQS9rdI6zuDAbHV` zB?z&uGgYo0YX-O;34%=duQ_ogJH9SKAQl4L4O%1!U@kPpNBAC+TZQt!ihjRE8I^&P zK7FOk0ZlpYQyNzOr!1ka>4$CyPL-bYg;RQ_GAhIn`Qj7kuNpjwO+4q2`N_>s#^HLH zS#v~a0nB7OkwOf_D3@?1LSH-r1w-f}=Z6q6eY$m5KjIk#DEX@@@#vy<20&s)x%LF% z{6JI30sH#J9w`eS2L}UiTaXfP?E_$p7(tnDS^bOeeop{u8(MpFVLF_Ce$24fsudl7`>Se)4$cQRyf1Ua8oYs&zGef5ICk{!Fm6Y7{lyM~7pVZj zss%jeZTV|-a#M^;GJ1E@@C7OsfY@4XRKON$4M>GDRRvc;9MerpB!Xbl31gjS);K}QBC0EEOfyVp@_3bdN;C6*fQ6u8;~)B7>5Nw7YK z@p&{HezwN^m2pZlT>Dz)X%50oYzDBiTHog-U2*S1_8n0Dp3NAmBH zrQ}6%@;VZ`SN^m`4W2K?a|05xGg+N($RI{>)(Hi;kx|S&DCCW1umOj8kU&0Uka{zm zlYcMwH0h;h>T1uelX@MT7<2&e z3yMH5Vl8t5qvAwN;HQuX(AtKvysr65vpq9ZBAUa z+gA4Y-d6K-4~Knn=)L(l)R>k&J^ha|gt-~B@})`ZV~QJ7J2->!M+wW7a>iN2Ohf8jy%2JIKx~&(cO|0N zL4^yKZ6d4+L!UOG=Q8cx_t=F_dvrg$M@DuJ97X-i*85Vr;tM0RgE-=ysppsAF?h21 zZ+m@%v~|k^$i_@SQD$8Nq8zkL5*Ede4g2-)SML*KpB{x*q0<3%_}OXH0OnneejfG%j01`0G_5pk z?M>KAc+cqK0A&v5G}bbq>X^ZcEse1BLjO*@VJB$dw4DJV@rm(1gT`N+5iDg;?*0@M zt2iL>FI0qlS`>xALK7Jq&^Z14Vqq)`>NxA}2Vsr?PF-qKlGzG#VNSc=P;A8_u zcd7Ut%kD|ZWJ+`!`}!0U@bQepi^~3iTc@g=LF?oQlQ!k*Q|m~85oT-H{OAdlT?G=a z_;O;$D8bv{$>vu@0n^-7PFGF*SNPbIFipG-W&t!yiKR>^Bl4={w``(p;Ytt4qS2P^ z?ryJ>7gd=aqJ6XXGjt+BNJcI{Oihc0D949~32Ra^WYKrr0tPdez|7`B*h-^w{g<<; zg&mp)LJd>#<^k7LfZ>73sm2hlc>wwW#EaH*{e!@`wZXtFXGD|%`?JZa;TPRzMY-m? zWbo)MvYQuQN+rfc-txBYL)SHJlksrg)v5VFz2|30Mh8c1UXK2OccnIXq@rdz8n^;p za*Jj{%k+S3(a80{p@aPPdYR0oe4pVO(HaG}Yr0?m8g0`lR+xS^R3*txNhA>@^Lp78 zNl&{$89DWQF5HQw0b$#@2z8-3Nw>O|k6W`PI|jxFmfKbu{{=0AT1PSA0sy(C25AU- zpN<^he_f$rv24ObLwz-};bUlTs2hm);@cX>1n&jIa-@Fo0K*~ie4}bYIpK!HjXDMX z$n3J1b3mUZb9Wx;50nv1#%4mzS9^0#s%7<5qsQNt#(mex?nw9Cv4gH!?YrVBHIAS2 z+!yS5Jmm6~-tgJ|ot)}2UI1$Ud@*3@43mz*;?Y1E(G`IVawII~qz1t0#hLNXe+=^< zqY02i$9zyWUuUDR!#59tedc!Eaio8@v6?E@upAQh6oPxt?Yir7{~qIhIcaOCaBy>O zH_NII5N34fKOkiFDyaw$iHpeOLkP&ru)Kit&RP;euw5(osS^`0;p4LqHys_!ubid| z+P&=r^$&LFoV^lS{3A3d>`~XMn~~ik3&kWz$nYg4sd6$9n2}aZKb)2mNqI9J#QjQ`$EP#l}Sg9es6&o>rB$+K|xy%X#w(lb$-=v+kRKk-Zn9CPiHE zURgZChbu2Lb1c#?;v(BEC)@1=6j0Ex0=fYhOgR629DR7*n%^aB^ex>f*EtBv`nDEN zQ>S#G?85zS_=NJ~EY#s`CbBxCt?U;=o&6yAk==|Ee?&vWrs7CqD7n%g(s7i=k!FNy z_Ud2m`_5bY)(zL*JRSL4SYBrpG1*dV6Qzcfy(7m_hBYjhUR}(?-vOJB=jU0(cW1%f zT;4h~8z)m7PjL=lAocJ=%WPOC$;?TS-2tMb;8QbvY z2cmYXJPN$sI>DiCyzZQ2fjQpyL}4h7%e z&t!+7T=e7(9FFmy42G4xR2U4JY&w7O8gEKzb`}#t`T;uhi%21fkAouF_mNnV zVF-orH$HzT6#-*O67e&D8R#`w{K|q*SO<<^I~%MvUaF^R;qrom=3X;0(2uAXrCZUN zCZq+5RoRkPp(jrOsN-`F?D&v18M7_lTa zwHR#`XtFVa0p_kRkr0HSH%y6Z5j5%b96RjOddT7~*E<1D#3^bOq4=n|0)j?xsu9Kt zLo!qn1hZZu_a*1I|FUoP)b`9*x4e?e=$_0a1>a5`0R64M2=Q(ajW5CvxD3ZlF>~xL zmap#c_Y6Se61`J+w(QVoCnj5!ExBC6`~N#FWl6| z5(R^E2|+!cX1u{p%i422(UZxhPT+9>aZ>@fh({g45KWLD;I0yai;jD~#Yq?JawrFE zPL8N{F8T0OPIj5>mdJfSIWGlQnQO|n)r01)gRn6DZEu@81%Qh{D&C^2J2eza4i!}@ z;>iKG^r4;Bx`xaHKx6nC*wzNOSigehab5|c3lvajajF#|A^nW~9E`6RW4z9y)C#o61}XaSJy}ntp0Nc<~^`XCSDs#KkIQ7h#-Qr95C|{Q$cE zqD=PQqxuW&`%wSjAnVOlK#Xv(3Hh)yq z=Y!JQmcc5r*3g5Yy@?76|JoZ;{4Nb=7OI6GI+Y-i`S5jcZn3w$bLjLIr~54TC^iQ! zpoV(lP6A0u;-qw(daAXK)Z!p0cBouE5ovkx#e~v1b2l)>v^-Z*N*k?PVPKAOUq)S_lG(tskB5W(L3tp-)J@jP5aJA!~?>1v8GqYChzv$|x zL_!nYxcGGYiipm4Ec@;!@&VTGE$ni1=}w=Bkr^XECW1^ciZR7Z| zIchx%0}*PEx=@_6nR&Dp73!d8{)Irf9n-(wwv`~Qf#d87fJRssADBRJdQPLodKY51 zWD7=u_%hJ~{hWr)r$4kk@t^o5 zv!@sO(y>A*0_;oB$m2r1e zUl0rHPc6j6T0daHK}@fwD53@|K>U?RemU^{X$Ji!_>}@m6{6{o&5K;|0-lXu47jd? zpcw@Sy(!ExpuD+etINV%>@-gClYOfJUZPh)4p$?!YE?tQ0 z&TZs_VR>HPHKC{BHfB3{*Ik-*PfaI9V^(;z^tiyi^z*FK*E4AOoM-dNC$dMM=(~T| z`D%(%0|+tZS**AoeP@&1{<4fgg~5~WW46KGhRV3Y*@j?A_XqAiJhAt`D1Oi{(z5Hcpy4f}q(1p@UYeZpCf}lpQ|$#pgs~jlPHl6JZ!RB8xOlrC^O( z*d8Ds$Ph;v;iNPa^!{cysP>Rj|5&A-sxM;vDgrrBF29IM9l*YR-Mc_ z^K040Tw`9UqlF*`PEgH|<^{yDmEY>#yUNKLt;|=0)HkW!EPa&hTT+vv<)O81*ieUG zi)5(t=plEZq0>(_-LHKfwBh9>%rp60M36rOXphhG<8e1GN0>DER8PkT)UN6Tg&GhQ`d?5Ap0O4-kJV57wMXkd?MB^dl@G#qk z#UA-SL-ci%vtd;Q<(YpF^HlSvqYsJ38Js!AsL7%1{u#YS4ZQ@)IQg4!mxzS`U@WjX z!u<4T@3Er~YrE#B(az-DBdp}LIfvz9AC*QwDvcQ+E&6q_w<@p;D6l_(Iody?K&_%O zEKhc$%IHa4=H5EBXV@cN2Cc2Z*pXRwHxwYud(wHQgMVHnh-n=CX0&}?}%iIa{!>=soQ6n7Bjfh>t+FG+}i@sNH!#!~N4dRnryk%bXw| zq%Qn_@#Ji&b95kEp&Z!K7AD+|y?k@;W#tIWpIXC)L0aZ)Q_WQv++%5kp8%r;SI@c! z?Fs~Ro;g7W{t7PsXJEr$`iVR2pdtPF2e26U^oJiva4f%Y>Z<`s45N<=80rbi=knl9 z4;t_-;7lTbQ%e@z@d5ui4h@VwF~b}09)(8~;IVcU^N3da6_`nJ1*3^VI0`SBKOBDr zfcseyn~xbisYT+1|6sI-6jEL?luKMSn`8__l zeY4&F!`69$C}Uuz;OuR=$O~E|2{<{OcjD61*9CxJ08c#a&fz2}v1i&HA7Nm8ICXOI z40qFo5oTnA3s(F8o*@*w54BGCRA6qF2_JG)x|mogHga45P5Gx-2$)JssHP{( z9*uu0i*k|cxt63@s^qHRXvFVwzIsrpBUkZxZP`H=x#7)0$Ph+^=4haJCBdQ4!kWr5 z1a2wi`w7~EQu=8ud6N00(r@$3m#h9GTED+0Ef9wtF?zH5*Z@|^Ap4*Fc0}vzjXMyC zT(O{gvSsu}EtloAaWGKF9%=NTelPx~3;{_(zr1ZjzVi)vIIPS8<%cLw$iR|56?~VN zN|oSLUwyct zFb@7u?^77lK(Ui0M@**NVC~;BZ*Isw+9ns!`3@`-+~zDFf6zSoTxbrSWMxRx?9)dv zUc6S$L4Hv{mmX4Z?}Jekf{bh&o`U0(7lS_I=7>6ATS0d65J-ah5YXx9B{o7HyC_ae z?al{o8piB7S}ZVoN)7S%V2ljGq0{a0h6+OxUZOVpK>317_bK<8ejP~BEI1>aR>xBd zPB?hPqGg8;V3PZpb;IwMY$f3n?iXP2K^W3EznLSL3a!A;@I$8*n>+VPLvDxV9r$r@ z&6SY!8PA72B7LHJKMN=OZ)cH0;kUES{mg=yI}=|T0ank-OdxxZUB_>S%v%Mrg5m7Q zmrcGpPoN9|D6r!Dsg~)$=PeFNpSfj|v(bp3;fE|-ZbT|VVpl+g{CUH|$kTHFS8VcVJP@>Ba$U^-&Qqwt4C{2FFz>u=D^C z_}L0xap^OGdU|~CzrlUDo`Il%+cGgA;dYiUwA`vq?9FZLPzA=W=+sMPxDzJ1-f_r1 zU?IQ=is2_2gi_%85`(=#X<-K4wmNj7G~C-Nk;9(vyUy$|36Smh3$fUR3E`Kw5z0 zfV;w_2n_kTZP-mlkd|ksaEMN9!ykxvOxQvfN z*owZ+3xT-`RHT5iM62?iu;3zPh840BRM2{W_*%$n9o8T^MpGvKgN6JngEcV~*1h{Ui6i0hNUUPNSjGNlYxG{$&vf=0J4L{#%_&KHF=LE@EkMo8`RJ#ek(!#(uK+TD^!x&@N%}={h2NH8}Sgv1Bfn?ODv)okse8FL*(WbJp4W z2xE@ZNGY+-evVDtPyhy@GWAY>?R1mNWIZ4hC-}m*Bk{c?kuC=M)d8pGTV_LmKVOOF z{+i)Xd%%2O;UI{QBcHtd5elma9q}m6{8oGO0sz7G{p9&x_l&}J7`TNd}oEBkk+DM0Nb;`C^^tt44^dqZf~TzKR6~EE4}(=Cv>f_o&^| zZdjSM-TS~4fkQjC)$;n9>#4pzsXGs!YEUGrhYNK+GUe*GVWqmHD_e1XVV_81s2Nz6 z9l}lIEsn!6?lz9|*Liwx%P5Ak`#eb6*`0ixF_cFau}nd-g}`MB5)DfLL*}WEJ!!FQ z#>Mna(1?<6c0=blIRerfr%i+tv5D=Fg$POt-cAdu2u!Q{!PXsf%bxxbGrMLL8o^SN zLmE8??HF#!97UPgC`%%Z3{xllEtwY(%!p4Ca8i@mgw(Vd7^C0xbvJg92d$tK(2~j4 zh6Ai;cA;aNF=)cfZ$hlzR8{@#6?as|BVun$o}HNDDP(9+1OC9d(zIwOB=J22tf^=y z#2S}5A`Oa&xET%c)J;}-_@p_IT|Tk9)HLGer9zp2wKDdJ z&`8?z_mzuv&o0)^76ir=&+TgG+STRluFKn1K4w?>D4n96nKgfDd5qqtdQ5%7U8edi zDU2zaF!}xds>0K2V8I34!h#%TAu>JzR`C5dxkrqrlGt) zid0Pn=2+5@;X?OCX&TDndde7oubL3#ousd=d*293G9T(@xbx@1bINQzK+Nz4eo(slE*K{rm%_ z(P0gJ)Q(s7Chx}j8d&xMfoZL;4p5~71-}ay3|jBh+qnW|z+rEz03*i7;s9kkl1+NQ z1FIxDy4DFVBdtC!(x@4&+<+HQIyr9NoZy%6>6NotG(Hm`_S6ClW0PY(6DONvJO0e0 zdL-~aEqP;HC0Ep}Mj5w!#j7l5gQFpU9nelah*T$BXMjEBkas}G`8$8z)5iXf)lvaA z1iM%Gg0?F5_VBBRsKd+YK|RNXv@Ph)XEI+Lz$80l^*G3?8#VSZ*4r~W_Yky>&ie-b zXap-Ixb0MQKKpUz;!8u%Pd?OlP)g_hg&p)k!@DvKKYle7%pRu4UGFG-10K+pZDeszlJtV0$&W0pneIk9WDrt zD9whjQD##UxTE*tkRT)7rKSdTmnp?3;u0vNT@ zeg;K+dIgjgJR9^+_o|Gyhy!@~O18$*56U?zT}t5Fu>*eSko~ZZTZ0!CX)Fz6H`gR+ z?e40BDaWOUtJmzrUKago6xk&|6ktnv2-X*|NcdrgJg*-(U4PPmaqrBi2Zm9mL1yM@ z@Yfw=>w&^f+}Zxos{2^Go>8&1v7 zAy*cL3&5hTDTWL9io}859esC`*MZ(HE0aRAnjo!;u2hCOL49E;@i58tjkV~zB6S$i z^N!m#nTW$k9Gbvmz6s+bOj^ht2>yc%f*c9SPTQ_k`p`Oe5YBeTiY>sdPeroZ(fuO? z=8lJERnjC9=Lvi4x1kN|GMj)vhMOyW2=v^TT(%2YIyxg~A%G>oW=?Z$PP4pJ>A%Js zSd(lI3&j7DJ#Yy`>RT22Pd?i2ou9=4-UqUXL9Xs;N2A9!r{0dAS8+7Tb#7{-0`93; z=V|`BfpA<`OD*m#PpievY3@OeyOKYU0%;+Rd@UV=f0{p_V1s{Z2zw}_p)G|w#1EPj zmK@MM8V#yGw0o`kL*mw19GdeZzF9o*kmTVq7RQ~Gw>Suk{G-_bf0ESTUX^mpJ22ja z;7GVtM$zN40kxY~MaN6mnh*@eLZ75$v9X8xKE!|^G=UfDc4;gf0RTFj-B49;iMIM@ z-5_RKKEhx1+vEVmVQ5DTW6L2rZ=G9Ay>;@Kdc$%LEOfjZsslYAHuXX>6zk+P&m^0G z0{Hehq2VMTFZUwnls`obur>|dt-&^C6PyX|=;~Tky?gH!m-Etj{pA5KE+|y57Mygt`AW9hS;qC6_23KH z1N>tOWmlKW*zc3kHt<{zxq?Fj8(L$U+P`u-<87l&&v9rjAgu`QGe_8S_{V9*#k;$~ zoXO}6*%1{`93izaJK@uO=Xw;nKx@E4=d?az3E&r5y(%Fn?&P8h!J#KvYL!!GxSM2a zm_=i+Vqbl2U4hypW^~)8iWw6OXsr++q(Sq70pJad_8+E!ySih(8W_*SVfiNBMALca zB3KHmG3GA%6D>}bkXoy&8wjIh+YL8nP&C&XuP!(2g2sauR07%!seK5p2|=)PpZ#ks z_ppi-Rf0TK67FzXcJO@H%4krsYeFZMtzyhQ0R<@3x3x0R7j0_t^GpbC+NN}~?C{O9 ztea(NYY~#hSFx=i{q1N){IKq4wF?)sA`b2Y$+cJIL~JXu{vV_LBFVk$xu}{R12nl; zMJ+^$!2yDp7%^#8>4QNNucD@?>A=GOHMamzM1U2kTYqW1>B-&bU!$r50XcB40BnZ) z5zDOVc7r+y^ef~pxfh1jzw6al*>`ZwRbRJo|211dyEeRh--I*5zWl~;Zvr2<$dB6} zm|RW)1sjoi#lW}ftWo{UCm!DK^rx*Qee|?*w8oI0@E_E#qn*IxNGrRA5z(WSNsf9F z;Fs9p19uh0a*Mh7k3~EM$qh8WdzSu!xDtQZQ?IVd=Nbujz8UBv!v4J*22Vq#H#R{) zQP}*v#Iky_dECRyPiqTQcNOtwkx_A!8josF~#~Eyn=s?co95I3MT+VQL|%8#)S>0tWM4W zctl-@HZ!sIvotlpfuL&aT{#)e3H145kODC&P?L1kB~Of+F#9xF#CaZ$K>kBHbQf$E zy(@3PV+gt&Aa6N#9_PafE~|-M3r4dPj%`~7U+y}n(;&xk{MgOQ#~-EJ6(R)yU)RY? z><^Jz05IQKU~@zTIoeg*YOpfg*_xg?&~%325f4A!*%lzQjsC<0Q+3Uu*2H?Wv-$jk zcl9;vxQ|&8u!hNMBgq7R9NPd+(Rm3r2$M43yY6a!akjaGPltlxlQiMP!db5Ke(Qic zO0@o3%c%-PRna8uvIH=lYt~!vM`QvX$#@osgg& z^(7ua#s@$MsEi;aK*SB=lvV(WaS^ED zcEYg*;S2BFlxkGG9(g`;c36+#LlWJ+qLUW20gE_O6bjhx&U1g!j#){M_AKd<1%(Sf zgjyJFWy#{=tD^C=M=48`2SW4~zYXZI_vR60neQ87T$>?h`#_li%u$|JV?8uNo8x4x z6|hgNt${xuGh*!RvP*J=tsO0-l>+4gCp#?J9;#io6_HQ z?Nut>(Y9AYqJJ`4J6&$p7zGrG#Ym|DmhiKUkXprYAjIJ3G~1}5Q^6$~cV+aaS@o_yNZ8NfZ)oO$6i!GP$`_CWTX=4qoOWNU=T*i-{f_3Hp z+_4a38v7s~W^(DQYV&@D=GPwi4W8LuRI8c`n(|3mX<)bJM{=I!ut)gZBWjA=hetB? z;}i29eAcCtr!w{0bkak2P-tE@3gV*NfpPKYN?uE-URb=dq zWwh0{s2nutHak$^bei0JTiJ739wTveY2tt})}-@#2>H$?gKv|!sGRq8(~iW%M{^(M zI51TC`Ho|&N@N=Rs}9I9{Fbirf=t)YABF509wf)Xov3xO`|#1;>Y8e8w=OQ;*kpG= zGvnW9jMfAK?h8@D*>R4`RO^uyGT=R9I8N)&odr2rbk2Si|iu!VtqE#FLJ`27)lh`lb%E zme4Bi-uYD1b~H#)faWGkR_Yb60h`n=4uN6{GiSm=66N0ES)8I)@xyiEgkk_?`QUJ~ z{AqiG2jR#BcisPxdq}bAa1f2v-;Z3@`^K9MKM`p`!O2A9(HgS74&eK^($KgZ`*&-T zHoxGA4IFTZbd4#`Kx%>AT8U-AWb+W5xG*+Yb$Up{0b-DM~u{JR_u^@44h*?_74(9mCrOAfKVP z)g3E}uzS(t^e4(+yL*98r+Z5zc9$< z5Io|TygxJs$-n{FLe^3dl%^@efU^VGur@5iK;3>^Xhb8PadfPpR%cBRrcF?P=1k^= z?O}#&5?v)t{0X;scO+eAbk#nE|p54QLh3O#>-`^(BMH{&nyx5)S z%L-%7E$rX_@FR1*GxM4rpKV67kPN}r+m%cvvc%Qq4Aaslp7nK5cMY0l71V}4*cV&b zcmtNPkiknRmac-}7|L7P?j1m?3O@ch!!&S(dCR96btgzIp@jl^JTj2Jsuf*v|EN&P zwg#fcNHLHjeBs^{GSH>Ijr$jnWu&>h8E;b8$8+gaz z`EO(y8oABe6slIr0`TN)LnaN42{i`JHUG`ZH_Md$q8nv&bk7vq+xl9Id_A(X^<(x~m7piJD6=U`+hd`+)gM0Q z$UkZq#aNoZ3PIze)@tjg;T`K!Wc9RUGL0KMYrVN$!rG>6iYw$Asja6wi7WFO*T$mp zXxuM$VsG3@;w_9evJUB&K~lIsaQN{7YTc;x5e|iT;37_(&I`Hgd#+smlWWrEyhzLH zFy%O?*>QC%IzeI9jdR6aZ65MS{?qEkm$Z-{Ajyc-{DP1tC-cea9}AB5kDW#eVx9f( z7#mlQlxZ3isL%Rl=#imGW$piWfm+SRd+~$EsUBQp^!g3Uw~d$K1TBtUH5+ev7^kb6 zI=_Eg+UQ}rIKHs^F@uM;26=Yj9>)ywz9L?bREa3ugeoRLdZrpBj$tb&t?EZZmT(zH z0(=qQh9I4|0G(q@mdCM}rB1?kOI=-F<$yEVs+sZiZ49VkTl6Zt z+N&@&Np2`DVMLT%tw^GalyMNvoUeu_Q_|Jo-$7q3(f3{?cOv5fYv>SY7C1h;G!$U| zAtgjAU-#apf`Xi}Td$^kk`qW^WD!D{$k%VEqhEBVu-x)Mj4J8epn@nYExH4% zs(SUo08GT2wh~@(x_ZTb0(NND8o>TuR}Hjg@eYj%w|t* z*E<$)gs}PyJ7z6@!-!@^jQdHL=aOw-+BE;=f0LH$vQo#1&~+u~I^VtE8Wp(0cPzNR zh4|4CGM~%vgSDHN|Lv|gZL4|oQb@a!0a9IGY+#W*le$1Nm!m>u4S;Ogv!Pf{e8%Wa)KFO^PwuvU>k)Q5SSLcVMm$kY+QjbZ&n0Uda06r4Z_mcG{kmk!p1(%*y`gG z&r5aPFT*sYEzfmP?~rdIwjLN>PSDzmXDY?H_+PBg1s)G28E@+9PQY9fn`>wR2%B8W z=N`!;nP%y4DB%E+^Dw|3aDgA54>6`b0BoaMf1AD*qQZU>!g8FM_vfVm-xJro&kDkTVe6t!Csz2voS3(4)4f{V8RESbQo9CVh+@srNXiG3L0KbfT*s1xoj60qSNX8^=ZC0V>3UO$QVRk4^&AYe+QY&O;&pnMwKqKl|7GLJ9lCZ(`QOS%wI*M zH2hf0-hgY*HW^F=UHi`u@(0rOb#+3QF)d`We?ef}mSnQj>yYK|bj}gN&JO+i7A|_W zX`!~|!V#q>Z#AT^m~VSAv@FcNAyg%5mippTN@3|f3vF+QY9ZG!(3!Q@B4IdGrF_`m zZlL{xWysVmjekULfu5C7k^yGq<55r=({BP*0+6B#8 ziG|*eR{cxi3@!fyxdB%{S+M!t$f>}&)a~&l82w2gV@RgC8ZIdBfI3G-$1W5Vo%fzl zc6ZXUa?(89zF)wX(hTGqM-=N{1bTK)>vS`wvT|a2<7emyMSHp%>c{wy~| zd%cd@{GXNjawHiux%uOsxfpt3gNddtRL!-9BnTzV$$zo!aLUe#7mx0Hi&y}-7G@Sy5lUWfz_}X|0QnJdN$}u}z1!Bi&gO=#PeGMJ+r8@E~K#0)n&)x3UVS zOxpCrG6Z!Qn8HxO1WU}VJl5C9Y<4A8MldG}k*;IXqYRX~ z5XL)whSgVqcZ_%Kq zGz11Ws5*N6c2Mq{Gr@bo+MA{-z})Du+A2_pZeXP>w4-O`4=5g`PA;@LUKV9iyTEgc zg?=KqOi0}SfLjC-3$$6E8V=F@UlR-96=@25jhvh%7CC7E)?~zk72N{rZ!5fa0g+Um z_dMwA#~+@!p?E;*E^ymy0)Q#$&QVx&K}?tx^Q*ZFGhB!hDh^AhC4V4(QH6>$W zK5PpSEQm3`TYu0sfUP=Sq|S5dC6wy^4agjxD=bGk&K(Bm6n67pvm^D&bm+st%wSht z{tf-=Q1cvR!gg|f3pxr&Dj2kCT1aVT;6A7Ob_(QPED|rzw|hAq#%wTe2OYznEz4LK zC8n6VZNe3kz0lYP^Bt;WX6E(v+E@A_JL$9(Sq>#DT)y&;vK%fGLaq}s*aGZnBBsQ9 z7r{!V#HPf%i+EJL0&JNJAeXyT3{xv=Iylzy%Hk00E-$Qi($sC8fOg$H?>bg1HcVd#Fnp)qf8drp*c2UtFNa|9=pU z6Je^*x=4fezwE2ZLB#MF7n-A#dId8H=!hM`Q-ng+Lg(*7bx&g=mEb9Qfxvi<@MJmt zGE2Il7vr_<@f~Q}{|_le;@wUA^hQI01I^;od6yiNa~n7;9T0Qq;&W>YZTEnE6ci0! zu_XwS<1SvrjxgU0FW)CDrO5pMl2Q;40|W=T=2C#2e(7OuPt7d!J~mH>W_mE|DlybS z4t6hGsi(uKCNF!vv|IVz69@ReQmFbFMd!1`z(Bv0(2AhQiqMLL_!4DG(oj;I@)L3> zhLWmTe=oiyNcGxgK|3P1bfIi>@fO!BF9%=P*vbEdY|$I3C!r@~-@Vzg>1vaCfl-z0 zUqv38!Sx5$+Mj`Q3-C@%HJKX-Fi||Xu+71W*X1i-Gu+{;-(WFwGWm4+3NvIeyXvmK z(qI4CH}v|jcb^pNuHDLCU;XrBUR`5uzSTAQc6z(#&LA(f%sg~`;E8R1Nbbi%nBJxD zOL~+dHvfu%nLI*M%76f-Ypw(xRGMJQSIJrlL48d}qxXGd<>U)>N)coYRf*|={-CGI zxyl2Ro)S%vn1afJ;7%8j2FXCU?Zp6fdjYB9x$>aZR+rNkgWfIG@=M}k`d_m}A!ccr z9=f>GtTj+LmTj19pxV9U$V%faoPQr!D$?ULM8C5e|1gU0WAyrkJqR0dQymoz!Y6p` zP4nWk4ZnE2w!)%bENUi==fKE*zJX@Yi6wphxFC=*tf?`6-_d7pAdpII%v}*XJ_u7x zMp+d#%?y&^STmA!zR?KBiomtN>ByVAwH%1o6d~ThW=b4EQrLSPghHZL#OZC;^_np# zEcrMzHTVe2J06y|%^#{R@{qeu>bne|*CPKN#-|9Odg>5zEGxF;MRF0l1x>Qf!#Z^ z+y!eXu^aK5QGiCB1f3vI0@grql37$V*RZZN{%Vs)Dw78f(Ahw}S&RE)2?eHWG+@~G%Xxe-af;*`$?dqSZ*iUMt#rPvqwT~d| zD{mxuqLF;*ynf>*N3E75T5K{0g zi1Pd{SEhXUgtF|3kO>zx0luaKfI>IdH<)WzYdpcbDxzi-@hY0#QmcoPz~NAZ@zd21 zS_N%}L#`k0u5+Q(QTqc-gvcHw<{PU@!Q{{cM&Jk0XDd#Mk8GXaYZo5)OXZ7H{OS^_-1G=EK{H5*f=yV^iQ%FYxnHoTI@QIF- ze!X2M)g0)H7yGQL;{v|+w^l%P2^~giN1?O_3FV;v<&;PnV+zet0IYGr6+S$cm`tH; zu=|vh#3?DKAazDiF}S#Opij^?S~NSfoj;)WAW(i{NGAZG&H(8&SM7+323G!_j0N=$ z?cT+gMvl~zwQZIGG(erI?DosGna%B z`|1oIxHu*M@$hb$Id!#{o2|?(8D$$pG$ah5h=^M0(3{Ak4UHs|LX z^PR>7(pw!>)gfJb!zJrDr)-TSgb-tvj&u^sQWX3~u@jr)&Ohij>!-;6r6uzWRFvJ& zYl;Ep2_jJQ-6$aN^hJ=9@C`86B!5llO4pD1`OT1Yf;#Ed)n2W=P_sC}ZFGLTQfht| zn@`)LHr#l2?QeiD0WMsk>!$9XD0l(Dd}A5HW|@!eH1bq_7wUP6LQ*t{f!ZZ5TG&5N zqo!Q_J6)wYtuuzX!?}A58H1?p)n|_IGEe1!WZAv%16Tag{Y2W-zU=JMh#@+Y6gUvTPI&sN1&_ zvDy(_V3OqmGAn2W1AY;X@?-XtOD5QJ2x2~_04Z@f)?rEt>JHclKmsJm{Up)9IpX41 z*z9mBu>c+kg7FQ&7AT+AVRjtjWW#R*TP~`+51YtG+Np`D+E;`Tk*X~S>@?s~Ji{H} zmV^6%4{(^J3-4{F!Xz*W(& zQ111w-s#ErRqe2cic8Su5{Pz@5=s%n#e?aATtQ&1!|<3MUiaLR}>3xt*SyK$^D05g>gCm zUwaSOh+;E$47707r+Fo3xAjlFan$a>$c&*s2G0ncyL;i$e}$7b>i1-TB)A-&JS8=G z%ABzVz-yf70=iq}WQRO?WHc(iK^^)1|3CPgC}XgB9*Ca+4)PmjybZyJT7Ok#kuOYd z60H_+zL*gXB`&Kt6}zK7M(RO03Ys_3Kl!JP#DWY2Ib{qj%eGuO7lmB$x~{~S{nUJD z6j7a$Bzxqcd%PCAE+hxTA4E%uha`kQ{C>Hy4WeSGf*Lv80t7x=y+AUd7h63`O1CaC2F8?%t%>X|R9cgqCdNGs^sPbSu*hmWlnGyz^hMhXNYq}8Cg_7gG9OO5}z@BJvD+z@fwyDUZ${{+b` zv`K6V)YcW;)+)Hqju?mnWOPI{yQ04JzJuI@15F)=>RmeP8(xO?ePj>Kt-hL~KbC}x zzbb?~`*8mr>M)K16vzAZSIMkGj{^LS(&uUS z{Lw74E+g+mYeBU2RY`n3$X*D)BwM>$rhG(*d)Ew@{Z%OA7u#)DCWwEZxm|}J={Ile z*pt@FW+dL&?X|r(UB*-W?U8<_y8TSGC<}ba*eyBAS_Et*We%wsY&#c4KZPYjQ>Tjn zko0{ja{ggz^c)WxRe>1VecjORYmJ>mF`acbhbkb|f^xY+gsrVcbcs>AArVo8GYLOe zd`&Zmdk_1O`Oa_qqWzDi2iQ7802cPy8@~1ax;KSdd=%Wq?NK2NylM?z61lXJoU}N7CkXTqPeOoPiiRO?s2SwF7@iI&Y$O9h9k8?2 zDaZmCA}P?qm$C$PRVatO|ASJet3YIX7DbpX>hUp0rgFpXcw;~$YgMTuAekk+6Hgyf z+oMTv48^j{Ppf4%T?NG@^Wdc$R_oxEx8)a--!R+L;+xSken5bLRc2DckzM}}z zWL{Yx8(8p=gQqhjdV8EOo+Pnu*n@qR8H8*k8`a@hzQjoqlnJl|fn9EqAV}s7UfY$N zdj1DuV%liN$Nh2@nS4@_g-hX8msfu6MPcNx$%_NGs#}KK3q1!%EVlytITdRH+6OJQ zU`06mPN(*V5i9H$(b3eW(ZfVP;speP9r5A4d~=`a?cIjI4-olMqh#l8u$+VM6b^}V z4j}ch&mX3_22AR8;A*df@J3b<4;MMtwqt#AOcfJB(qV(zz^y~|@LwavJx^PU2X=Q3 zzZFZMI2&MT$HQ-PQe!-m_E~*`?&3$_Ho7C%ph81iy@fW*f^4ZS>VEk;7^udK4Dp#Q zi*a2n8Xk{7CXC~q$8&KkW67}$iw3c%*Y)~F_a5l$fCrN4z*wqsV=uevYRk%wPAj=7 zCjEhIfLN1RL^G=>U-r66KG}>ZeL@xtUb{Njge4Mo#Imgr&B8Fx2I8YmLEBvp)!is# zo1#|=kG0Q^%7dMt+(%4^5KD4+NER@tv|10tK23##YdR#mw`h5|}#3b{3oWw>4KP zZV|X59s{A}36Wwn{BJQ6IBGTUT*?2T)d08@CPD0ZvY>euA0LwHeNK;)36Z)v7w9xN zjVnT|v(N6m`2`52U|&B1ybJ_}C+>>)|CtG!3Q|51NqCpUXE+?GoiRaI{lJ2}-u3L| z7Ml!Vj=;-BQ0m~deZ0$WWey%cFm)x;L_yOto2a5b=*5cIpJGrKfLz4dv@OTvy0-_7 zQ4-mty}zBs{?`lb!of5?yuJU!Ho^ni_;z7=i0v?Ujvoyst9SEO<6B)VR_ehpg8V$e zg%G&MGMy$yjBK4ch}5mab|Qc!Q;B?T+)3dWGK(kii;;m(*$pwXa&h1P__;1OK#pr9`fgg7E_Cf3S>0|IL~ z*Jfb-eo};0ptylJIR~~5xQ*|=>~+xGZM=D74oDKIQ#ub}n~P{cZgU%d><|(EyuH>C zx86c~7q=*KW>BZi%+qJU#+!15T}TSXjy)mD6*{Z6N+B+vpAW??SP-Dc_|EtALOfB3 zR$>6Ht=6So=?@FV9R0*VHYEVdmsYf6ZYucRx4NaWkVvoTbjMuVSrj(jU15nnB*7rk z%DFW3|B?1Ba5bgt|3iaD8XS~r$QkD}1`X1MP%+f_9mzdnDz{Fhi$+38BA1z@zX@a7 zqGXCm7t<9}F_b}>l9HlaMxx2BtFHg=^RB(uUVFDo<9t5PXMf(c*52&)-s^qe=Xt)D zN;Ozd{BIe9?Zv4{g}?=4gI#yoab`bgHZSkP?GNxM44INERa*0plERd2UV)V(_!37| z)!vyd0N@yKs{kKwV2-Lfx(Xc80qKHMz^&qa>8Lv}Ed+N6Q*g?`(%w3!BY}FEl>5Qy zYcZji=0BAROO%>Zx3^VCS~n-ZJ7b7!jfTn|eg~bCAMkI5Lx~9_hJkgNQHAg}w2YF* z|2Y&YjCB)|XX7&o2hX98C=Q#y=}gj4%5&f(4q}M`;d9TG^R$+Cosf5~K3V>8Iq*E_ z5Ns>|E(7vMM%ONo0G(8tPR#e^bm}@B9M_49Hih9emu@UDjq|#+z_$N_Qq8RkT(;WE z`LYNP`CSix(q*fi<~GDUC~vl&b+%Odtjzkcc_bP+%(&~e&!gwlUT+*OMKjBYKXVDh zDR5mK&;I=8th1kc_7cZ69LSP^LEeqX1VGc>V%F>!>K?V7YMS%F@mI0>m&5^G(!?U8 zL#95=CTI8?XRUlLRg<%6VgACI(2p9a!-aMiP#yXk{RRNknq zyy1!98yTIjsW}ogx3mCbP;s?7>hiVPfA+S|pt)|fweKu{j~u3&lg#j965TN=c8v3D z|0&_ED@Du6duwvkOFRp!ry!da?Hww|ZNM2W`18Uu!ZE-bHdyZa_#8ibbSOwf2SS8eRc{ECjL%$pa7pNDwKmxhjTFdO<3mD~ki)&Xkur*(E13 zr6L({(y7K#%1!X4f>2XzRfNW%=;3w|!#9K?BpWZb1H(>B7;CXP!!M4UL`WBhOsk#H z=M(EU3U!PCMCnA0Nx>E9PyuoU-UL~W#e%qZZzXJ(o&3pH?Wd?I|CzJ-@R8TL6CT;D zzLIqHTc_ZE6b%1&)KtstDb!<_^I6E;rhm8-favkS_H^edhlXg+(C8L)OPE#3Dv&F)3>d=1qV^M zFI_h9sWs9ZgZ!ZQ&#C0$Be4UWBg2)3i-aO(LmK=g0&b~bTTCjyVTo4Z>B_&~=Kz$- z{^{L_Z)xpE4WkM>L1pTL2!s%5;_iL`e)Z4ZGkw9#2I-`rPSiAOx#pc`M1ay*PKm5I z*cq|!9g<*&J%=lP&_F_50bx8-sF9(h-lFM-nVPXr_;s(hP^&Qus(< zt{K38-s#J-g`)tg4>Nv@>U`RCK2Oc^6ysjz3vs z9th07o}c!FGV(JrF1qtp)Z~a(lrXSOtu&w0G4RDKL+luE$&Wznr-I`k5#_)zt|(fG z`{LdFdRQF@M!Pnk_dqfLi~y){q-t25pETdtc-(k>8+*qjP7g>%CJ1-+RPpK0|AlG{ z^bMITM4d)dqBmAKetr8p1E4s)2P%!XBYh>foT%kK8-f-Kwj4&VAs8@`nl9@o;AJEY z)`Ov@3x!s%rryrY+bmILUGJZA=@F`7D22UZH8Dw9Ov+gRHmUPVZ<+>%thaNA3{j0k zlL|6#w37;g2P0VeJ~^d7i!bybP|F2lcn>a!(?ybt&Jl>z2U<6rYHRw$HRP{u_811S zsWV4aP1s`q!jd%@UTm;l@ti?%c~2~9dmX~og9~e+C=h1gGxw5jG@2ZFw(!KVYlfyi zC=D0=yj~kcpC!Q2G?|n@F*r%uc0evD<64L6{XEVTLdj<;2z80hCu^L45kyjrv%&x` z;N&aM)qbfLTvQ9o(Dn%MMI8f(B&J{sZ7K4>KnaXI(bD0v#5}I$;Yo6cB(jQdukU#k z8N(Jc1G@yZ!Rn{aKtVh7{IRIG=+iN$pF2PA;^2}uWelf{M8})Ajn35$9MRv%8O`ec z3!>jQW3X{ayKzKmSF=rj&9TlU8N)6ZZJiL4u_Us5j02P`H(kGb;feFKH_5}_+CVzr zf?a^bB{hqDp0H+7^y^5q`1-RZNE&8mKIXQQvZBuN#sdigD}uD4ug8`J3?i+c5^JqR z(X30zT2{QYm)NO<(Zf+dS?jW5tpgRC0K0a(8=VyQD0Yv<=r4>$kF)r^{?RoDiTiwm`L)j! zg^ppYgW>7jhNtn^V17DDJ-!9*gP?oNvrWxC>v1Td6)9BLS(Ix6c;(2kHve?irbGF3SiMnZL9sz)GYwaiXcfsdT>0>NJ5mWtR)wyDUirO*)cHDG>eO{D0T!kljW%- zu-x(??%i?=3|hHpo`K0kRMOU-*u9N-3cWDesL=q2TyTeyN7UgEctR|aOHvfaZaqmK zMCkytd-u$)+%qe4T$A06z%%iDM42PZYVvldFyT+w?pT7Q(E3`~#{*EE$a-ii@Ff<^ znPNy1QRiR=a4hdP6DXfD@-b+QE@Wp+_SJs8rbm|um9flmq0wv&d=*PT#CGNhcP5#dTteU^&K ziU&5NjGp!?c^EzxNjk;jx6X(^FLnW+7cK}tFT8>wna)K(i*sOYvrW3CzqVa-$+D zI;tHQd6eNUeW?%8gnc*kVP>)q=(rBSgXKtD!5s<F z{X~uJfrO1&*v=gm$CH$-EJW$;m8HApE9La3H-yw09PkTy?xb2l1(G;yA2{R8vvIJ0*pfNKHLK&vaa zlUNp@T4`<$00|)FXVhD(jB3O22j=!yXB%1`)rDpaJ{&L{pgsjInqtHhNma#-!#f~b zLfB4R`R|k<_2PSj&8(-2Nm1nVa!PKyhi zjv?gDAWVm5OWW-9Y1>T`r}oeNLus=YYB@TEx>1F*D-;JV@iFUl^8a~%mJ6TZJR|GP z{R_+B4rfnk0>OpEdbG$H!eF7r%pu@HC&z*2jOVsxetcJAY&~U7`Ns{18n3_E?%Zy# zdBWW~n|Y;Srz)01lhH=&B+>W+#y#}6v+S%Z6@0r&U-W0%rK)ppvU(a3Xqo~K|TM>y_K$78e z1_B%kG=-gThvV5Z=cuX|x%V7ONYoFRW(qBIx_MieiqdO^)k=qpk~PC;zAFgEx7mdtC5q zQL5Vn(>BA)UFA!{+zDeY-LkZcm`5_N4X(;9Vdu4H!{xGL*OpdjMFILV*tEp2RjwHw zd~zXF37xCFLeD>p4O&-QwF~PpuVD&6qN}8M#Fdb^N9s^l?Wzvk1w~ZAH*=}v+}euG zCo4a2GqiXG>r8J>cs}=w!H}+lV2U_lfEK#T0K15F8$zL-ttbF-6$Y|D9L}!|A6VOX z#kV?Nd*K~OZ_Wjj6q1foKBO>Pz_N(7PfF0>Yf;797S1SIsa>s#gkeW3T*L2`_W7<; z5Qsv2$koGW469N@3T99{b{|Eyum(}4FsqY0>4;}ic7Z^`a0T0c&f*tD9-=jONEk3j z$|nqq`3VmRLy#@>98+tosT{Zg|AHi8kZge8kuWSv?w-x&vuMeGvt$Xb7Z;pJvbegl>}} zYi+&i*X~FACLhuGM=WgZSLY;wmxQem(t@c{w|nvFi5~D)-lbPyzBX#XCGFMW6S(e_eBl} zk*nRgA8LSP1!7g+UM;?{*402+3+yZaqcqPG38xn1l43G&Ow~_YI5#a-5FJYb+!@^V zbm!}nAggOk+Z0w2Ia=@DGl-WJ=-^Q&$Zv)Ab$V}+E31>!HGZlY8~zhmi=K1fF5R6# z*V62W5COmOBa0y9}pX%fgznVqqRlCf7J zD)fjgEH-#34N??pD{(%=dteA;opxF;zYTULra~|h9j$JFktlh;7?4sPLc$T3Me#`{ zaFECy(nskWD**0(p|x*+^VpQfv+9jLdTK$PLJlJ{Uf3jZ9*qL^JnU1h5xDzir7U>xO3L{~*?Omibtt#JR$R_4;=9YfbJsW?jsm z?VvokkTs`In54cT$-Y`CmW8M9QLT)`bD6CTao1@DMrweh0gyH0_HsLG$Nq({Kd9RZ zk?2K!XjI71o~et^Ylfic20Iqgs}ed|pyPvV0%9Uf+r2N8+Yut^4}(p=J$5e0{dv)2 zXVGfKflEt)MMqfv9FqIh_ zcpF70@VF$gy#th%;2;N~q|$+nUKd+ew3ohKiw;4%z1FC4R$k2P?C(j6!11O?Y1{hk z<=-V3>K*`&CJ3y~(+llSTk#63-BDP^a}0-n(WBy}<^+o%wa=hJYm!^tCW5U^+jnEj zr+c|IqTlefDC3LVa&?E7fr*>4?p}EG*ZtSh3z4si2FU=TxT;~a9UU@3V7 z)Mza!L1&>C*=zk)v7`4TY6$c5icC>lFxg1w8%#Nb4mR1vS<^HdR1Qi5qdDJ+&`G~Q zIZ4ceR)9rf#OI)xWkEkf1$Q}pfT1!1fj4j;V1aDR&Y0%Nf4S%ckl3Jd{El==LG~~j;)mKjHG{V0^YBAM}W;(R}(R z{j8`6KML%@7b|W-#Zk=XUvdf3!HH)(fOxI8vV!X4ezu)BFksMY;2{A^?%t| z0PfirlzQDXV-GI{O)AlRSEJK`o7;%hGe)d}`+F~v=0|}hJl$BYweKTzH7(Hsm4!8^9+CL~zfW4y^-;x+V`X|mW1uv` z7qSO;w)0BSR>S^lXYk-tO}%L!V>f-{ux!$1K!f%(ru_Z*st#eK!!$8AdS9;|FCs4B|hFbr{fOP}pHO2&@g2UZzFUuYUc`NgDq# z(wyKu$;wC*kfhG?1U`L;JW=4WR(*z^OCc;){W8e|+Cyo}$^TA1DbYUah{Np!r!+Yt zMAtTLNxWTSVVi1b?MFzq`QXSGJ%sxn<{MT(0}Rt7t+};XL9a`eVL}p!|;r}l)eXBhpCD7k?mUo`V4%> zRhW_i{e=tx;#2BMpV#+B8Frs-(D#SqS4^}{CsHty7l5A!S%nKUy(Q#5uFK9O=g3_G zM(%K_At(`wQ5C36IlrBBvGwZ*{jINv{(NjvcTK7&f>d z);21kPt4=GnyqGS)#=6)_AxOb7gq=iDGWHQ!Do%)BhnxG&&S`^^mD8kVYsq1j^Mrm)$)}<-tfde0#>&{U>ebu39 z7|R!S{MGGz0j&sM(;)4machIDCk_Ul%(YZqm2qaIQ<>b%COpJ13$kWV0tPGtTT+)k zPw3~y!3P!47D&fHTEjaWik{X9o0a;QN}N&0fLT^XzE^hY_>I3wn!)G_%av#NJ~0LY zIDU^O=feGUZGnwyfjgRd+Rv`}*8^F;Kr*XxnF1vU9l|hXWq!;8%a>lDFN_!-_r|nR z^W&*fFe;ZR@V()V+N9D{V(Ra3-a@|MXLrG~uxJXOBM1jw=L=M#*U%jK92y{DCrn=h zVk}xUF^m>t;8`V*Bto@HwKIu>-k(?RW$M3Y92vuNxKodM<_7uyPQ zqg+LY;m!D#5m0Ahs-DbX#aiT0jDz>k<&u(p=fy+0x?-%L6*J;-PSo+~4smIY<5n10 zZ1_@N@4xy3q%lKpH5bB@9mZ?5ADCecD$q zb137p%%E4_;2pbUKR$iDLMQIrE%?vjA3>?K*5wGb-Jv9yzePf;l52ZP=O$o_A<($l2BhF{#fgeEa%6a7`F#q4c5j`DL1Hn$w4f}4uCPN3jF zl<5=l=YiJ78-ZB?a8Z}M%g5Wja#g+-W;{_BDT6dwpovOxQ=l*Q)^tgCYsX#@a&93YC9M?Yp1_ZLDnnDwZK7`Y~b6AWgU;f zg&6-{da;IA)>hj&k!2#ekdJWpIMIyKta44SStx z=i0X==~h5m{>-ebsKd~)xel|rzH%J~Kp$$z^c%nsXrV%0wa4>D&>0-!8?FmF4A6h= zR)--Dws2GG-Wr)rqxL{n%Co)BsMPU&EUsrkFiCTw-v{T;{%wcAEoWb^wqE}9$H2uo zXHD_17-&b71m_t5layPl4jPPtj)GjPfulr!Evg(WdRW?Y#(B$;=$1dS7blo4W_t?Z z7NgTKA(8hSR(g~j2lc__O}UkW`~eW|c86gL>7dO50|MxdHf+Bl8%B+&+J&yNV2dYH z6BnEZkxN=Dj|~j8ui6hbY#vb|mR9>~+({Z$zhj!^XWCJuXx+qXU*M1*b9;F12_$?CqJd$>o;$3`;AgjIKh|Y1o`mTF z#$9I&=rGKGrNUfwt(L^+eSMb1$g$6J3ww8m;U`9l#xo_YawfNFurb4V8Y4do*ScdNiD^O$}+2oKK9P=O7vDsetU9ljmLpcO&S0U$sYN9L&ffy zATx2!#fDoIxm;?U{hPa)C+CnSF#Hgj zhM;VVCWC@fk)VDgxvEMXi4RG(en<1HWItvxYzzOqym#gbT&;ysq(OK_ePnC_b*B5F z*22E#>Q(Lwj~1ek^6H=D*(cl{D{MM|(Xbd=pWxj&zzNxH9vqyo4g5Vgw$%tI1n`{2 z5I*6WEFBB8HNw7fL}>HR9h5aK3EK`TDUqKg(>ZH5aHw@+G>H2Mp^V-jb3iy325v9M zS3L=Zeb_GDbIc%l&+hGOnMk4@EJ$Z!GtjF(u&L$fnsS{g>)28*J>Wi=A=;Akpkv-3 z&93l@M7KqQypR4_2AA{nt47LNY59R^`CHNm@cd3l5-G3%*?Yom{0Xp*sJMO@c%v(>5jCIODz-3vY3+xFSi^VV%3xLyLk)O!HV6M&#tI)Q8`nU+YNU8 zm|JoOfej>Wu+!Zu$6?Y3gqn1Xmdl0!$syp`b9zV7kU|;&&tcef6NcGUl>g-n2|khE zy$KMDoxq#GE-t#EKS1B24U5MG$Tva9N3@ElUb=+bm)RTROOTIM)Jeb>I4AGgk#R|I zKU0Hc8PJw4D|BV*6p{@rJ4u^z;qAkZBUY?|;0Wefs3AVK&Ra1|0}ME_#OyM8=T}zD z)=;s?QIFe*tY& zw*D+_ykMJ336o$`DjtJ;u~!SO8*t@>!Csx{)|eS1{;OZK%B{%Fjk-^0G_C4Jtk&0a zh^!ofEf;H>q`4YTxFETA*q6ZZ)J>->9pk~KlvW#G?n zEr!H?KO*>({6N(7AtVg#sWaVBAF#&ttcUB_^~s9B0&+Vu9@q9 z{({*y_r0K3AWQgLDZ?`fg+UbV?yx1Y<`6kO+Z~O9D|Xqw(0xXYo68Kl9NAzzRh zFkF{MAj#zmfF_-1PO)DQD6Fd8*UVsR&cgPeue564soNRMb#-N`AhPq0_!4M=X;&da z2vgwE!R=T9o;Vb)Be64yYLWyi%&{71E5JAXXZ{DE+9OtD`#gc!Se|X>4eJuE86(_^ z(`<{=$ZA9qfV4|{s*;o3RsK9|#+IY|8hP$ZvLM))d8YKBR^Y!y`=Uz&KP%lAeP8Qe zVS+ePk}MY?&OaR~Nf}_*W1gw?6^qeu?+*|49c&OGZY)^)mX1MjfRv;+mz7S?{fPE@iTgt z1C}!|Gq3<(`&?R<;VH`XS?hOoEUd83f=p+YvIVZ2s-jOIJk*PyqB?&VzG9-=Pr-L| zHsRa{SizhF;>(eFNlgjcG-COB_gcn0J{MYrpVeOemQd8qGXVH{XO~deYC^Kc9ahf& z&T;+^$=>atzM!DOv{pb|WI2K~dyvTyayFE)8oy<_@_$=kNCQYuB&@ojIw-~rjOwxP!5OR=UwC)oX6oW-m zQTXo$OyDImsjY zQz9Rr5d`v$lIDfy(7%K*Z>^YqDUa=wL-mOPAl2(CstMZ%tjCCqTTyZ6KpxZG@l&b= zBZ5I>Qos-Em^qM6Jp_`PTo)|0xC4+PD$wNy!+t-LcO#6Sh(LVqhLPd93(J4JuslrJ z{{m>`B+F3crU_FET%tt50=P~<|#srePi*10aZS)Q6Sc0)32dVf$jVmGW z(}}R6z>oQ>G_bkztfUCF2aq=d{9a&>90org6y_QKQ&`QGRN`fJ|DU_Sk9hbv`xVRe zU;T4O^Opv`Ke=4$$^HTm#z2N3d7%zLB`n2gPB6bm>L6hVv0e^eYE{&UByUBUtjqRN zWzU;0k3eUcSZl|1Z5wU|j6e>-ScTwIblNkN0#mW?6mLDrT<(y?#S;unk%88UH>(X9 zidPOvk|DEZ$ezr~UaZ}-cYLEhzF~02Fh7d+YKW3WqU3ly0x>59-Y6Jz*v-8|6Z?ro z`;GvB5}NM*PMRs`?y2$ zV5DIw8&;`mmPTq;Sh?Bm7_v{*W5{$(g8mh<89E!I%{Cu8M^(EFHloK+07%2R@SPgr zJ0~lOiHzK#wlc(UWr*ApxR*?{IgmX6lv*kdz>yt;zStwSzX5Uhqy19}XJn+L;- z`#00qx3@hpKe`1fDeos13*nC|>MfciBZb!GA2;0eSG}OHA@TKo$)zoKS{}(_5ZQ9-j)fhXnW?;^5 zN{hCMRmr6pf*eW-7k)M^84S#`(nh?z`Vm0oE@>&Q3%++<5UsVyPHR!A;=t7fmjzMc zx~Rl;!R5#WB#H!Jl37dnKisWW@ziI`GPv?s0Wb-EQ{XP#=N+FZ2MRTv{K+3#KO9uD zuB+JqeECww0>oDA9DksQ639J`yFzYmfI{Il;3!U8ZT9gzt-;OLTO6O|2LX4qRG{qL z0frRFpSkqM4LtMij((wIowvpexeQcN0m!XQLj+!JM0f6z#ef_F0+XSevTkn!@4@V% zyMy|~!9LfsOqKlJjHtqPSy00l*7N1YdY?i+-Db_yynP~6SRhAzUM+RXJ{=~L4D>SD ze)yx^#aXK0G*H9@Tw*I&jS@Mx{a=@`VfM^N)B_U^25CX=691fIcILI&=xR*GU zeJ z!T}N|w*fjtk!he`)?c?Kpr#J916}n0neL6`QC#ih%Vz>8F~bG)eSGxRW6^4xdIIC& zpQ{5aFF=#)EeyG8jNry{kKCof|20OP#dB>%{A<|u?t^X(bR8jQQaS%M$Ku~VOXwCHMmD&q~Q2zqN38ZSI4S6iM{6UgAAZL(`FLZ(Y z1_(41Im5BMl7UK{;Rk>gDe7c3vw-ub|w(Mu$F!=4<(^Rn?{YE5;|m9Zr}YCyF~djaw{WHb_SRM>j(DvuY%8b zQx%KalSl?@K1fb-g<$R~jU!fkj!X0Jonpu&^tTo!@yMhf6~mN} z?nuE%H~_bh&`bks>jHf7JuiJ}4&5?v6hGB@4DAgNb>FqOor9Sn?RTgA-@i@!?Z>oV zmRdgdhE%biU5Fc~PGD=CY8(JnDI`{$Ro*P@j3OV*XBT+CZIBn>p?7h2arkIJ2K4RrPthG%?u(>~t| z-T@Fc)ra2{k{2$(IGWL&P$9wOPbqnUParZ%%(a{J^?>z|I<7J6HO0LFX77?Zwcxj-nu-Rg*_k9I3bbrJfNvqbP$+GSg6i;%ioX-pBL0xj$6?@0)={5`Px84k;xo z)b6DM5i)9dNUP~xh?W6*`gt@+H>YpnV*%*Ib#HccAk!F^WuM8`tdPM-B9Qv?x`Bbn zX<`HSB|ReQSP|LPB7Ipmf!ZNrB^~V96$De7f;J%qNYAh^AlRi}d6DaNPDt zVc9terRWNZ<#{;r;xBZ88_U( zGo4Ki0A7V{(`__i4S_fQB@kT$**?NM4^a@ubMV4tWOeMfAHROo0BqE#1Kz|xQs10~ z_zW&d0_W8d9pa(SLQ}VwQ@Og422)59i>6}vkO{h~G0{PpLhceB)&`*tG~Mqin?4&~ zgq^uh*&ea#yAHRo^(jX&$DFyRj&fH~8#;~-yJvzDD8~xqGwdz~Om$2R1*XV0$oUas z%RqF?h_Znb1(A{Jd{Ckw4BAgoU`qvLk{kTmZ`V23HkPEnTtpc|CG3ah1vjZ!fKe-_ z6DY@h1~diw;zETDBvG*?(5dXvbm8LgxVvD*F*)5YN4ELTZ=Z3hJ%alm7E?O|+~?N5 zccP<(eSw1f=YF*1&|ZM#tuotF-ip##)2r<1-}U*iaqTzq(2QR!~0Y; z5>VaGtCaI_JOrNM~#lK1lwpA$R;=USlxEfKxeyVl3$X+_Qqd7LA0cA zZ-KzP!bmD6v3XECe=Tl_Fp4g51T5){^#>+7-oZ(5lm*clO!8iwB{#;?$c3`YJNiFh(3(!w-<8gHA%0lPPS`D{oZn%vmLrKsxAdCwRx zA#FXp9Jvt666jP{181A{{mr0|7eO|2B{9eKd&KNyn`^=AXT{Wp2{GQ}`Md(i{AGqQmfG+6@M8^go(M zfpQ%zaUg9d6R7-6S(a#>GzJ|yC=np3(`Pd)CRY|R^*mSEQkcHD&L^IXxtG{iX6b~z zcC}5#PwovIXNiYE`*b}#3QPU`80VRt^El#QDr-15oP*L4Y)JR#Ru1`F)foj<8<>HL z?GqcOmgnt(YSN6UkXu1;OEGdUBx)T3e!FScb1Me}%VXg4rKQPtBY5?LaMSK zi=bMFb&0;Wq^kWJX7tu%yPj(?5Og14q%RYn=_AjR26xpkN6+Deo`c(fe1n5&O>+y;rCNiTu)t)6}%Gmi$}i>=m-(*U`VXWSf5BtkoM)?XJ`W11(m8kDZd zVH|6*eY$-fm5jkd>%E-s0DFlPR}L#G=1-rm~F*`&utX1qPaGy^u4^O$jL0Uv~ znK!uMD?kA!|Et1!WQ1_ZbU*0lYkqV@S-{$Dok%^Gz4Ls)8c2qrn2j1GiV+_g!p-L)T|24*ZaNM-7jaGkXJ^2fJf{C=r(S5iYc2aQM%goFmvS zk3(lQazz`=aQ8sI2`UFg*@@oxOdy6S$yfxL4EMrQ^>^v89?vK=219K){RRd97r8N*6VGxHJ}4hQ|V+L93poKN^i4EP{N6mjf| z-L`8eE?u^c8$y7fs@*gdo13F$QFpB-oYyrr zp5V>J03o6O1sAxUldNufgp5YH!gcmEQxbu~xEFJG*tECL#s{*q>e*H2m|rI=y2+&GBR$uZd0e<*z5gCX_!E%N4(q1pUF8N@QZ-5%@g`6J0 z=&!mRvgLez54d{NzS>aRSnwufHS9eUM8WDehn3zOzFd*#m8hMd`oqK_TF$ph@>J@Q6hT1#Z&Al&o;2<@>veQM%$@FB%vU)E%ggBp*{g-Zr();+vfUqBHUWLl{Ge zgR%*ZB#rY9Ck7a3qlQi8K+-;V0}E$P_N}Wn16OrnNKUa-5+@Nx`2wa)Y+0c6Jw6y7 zFCaGc=PXtqyMlhy(i>ae=|W&7+a(N zGGb@sWGL`q)5P{o*gDAs_aVuhlsSx?yfab@q~l~Vrvz2@Gn*~ND`!-aMlm!IlYkqH68)C(6sCS=VPoSZJ9cM zp_lFO3O-w0SE18(16>G!eV%%pR@JM&V8*$otijFjbjst;qa^(WK4*X`qX&ZiFW%sQ z+lTXyK>ipZhFa-7*1;l)Z*f_)FGS2B#mQO;1Pe)*1P@In{BamvIynrDhRWS4)hfNf zfq&tMeyBsJluz14f1$HW&#tHww=|=?BEC`g?9deO72nauF`kU~ZwVwQB!;kZQFp-L z*`NpwBSdH9s;p7bk$R>F{dVkxw*zUdq(>xGI{-0R z^OdYlJ};rv`Jm>j8x@$`zJf7icCOtF=sYq`4Pf3>6`?zT59W^mdNdhb2?GRZNSQ(C zG0*PRy7AM47>J&4-f{y$3s;`$E!R63vudKq-hU_E8m(^%pKq;5{}j7-N$DKbb5=kH zj!7CoYl#CgVbGeu?UQ6t^cFyM%v4x{CG(ZyxlVFbGN(xr zIu#6E-{%`58}w1!s>NSD@`m(tpzeaC!5|sKg)V8N&WC;v&}@J@e$&OY8LhdvReJH<{WY$6M&)G5M^=L3OC@fyTqRwpZSO$H|8Ouu7ruUXiIaDgq0R z+3$&O0n%eZ4j@=0*q+6lZWv%zW&~5KSxp&-hA{aOmhlA5hBBE#gN9oi2wXGo50T67xNhb9hN>M4ES?&c(h8PGYZ9~67 z^rFOIBPn1Cp-0_3K=IBeMWw77?%Fo#CdK2dj{n$rUH^l^EoO!`>-{ILepG*%G6xpW z0Ph%h!k>uBw#LL+5e*XuZ_a=F3oI<0O>QM?J4y4q&awkiwe3hF5lhB5wU(JKj%e4r z(*EPye2_i4-2^ro!f94+EFmetoGEw8^271a>1hE>Vn|xPFJm2oco>Kt1EWWSUPIA) z&>WbAFvUYRz2lZsYOxgO+NQ19RJ_A7D;4lpz?EgWI8`!?1 zxXc9Oh!R%V91oe=bI>c9zD{{?~h?-?JYc_ev`!72p)==>E+RB3AKQpk?R3 zj8K9;Z(DVI{I#p0wc(I87a^olY+9nd;}8%R;s+Rqy3HHpeGEDL)PfTAxkYlVa7^qS ztH^R^@Eqx@X6(COye|W+TdZSyn~o*UZA@c~v{t5LqKkr$f|!7gN1(m`_wEb-gzOA5 zhp4bODX_m(6AN>L1pQVb(#=VAD}0paN~xxD`9lz+I= zS`G2+jvA|a!SG(}b59QUcRqnP5axMi8kq(_0}<*Nkx_1if7c;NC1R-u!5xpG!QqS4 zv3DVDgokKZlN`pKlWyy78RiTyJRu46Aq>D}uMNueHb;rb;UO$h@q=ZBO<=k?VF$3A zc_ld&+3HFJe?cl8!TlW&Z<5ZLDAq#^^bsQvmmrB3H4e6H={uHbBcEqE1RytX8^~is z=}*s;9$4b~`_IAty-?k>04S)Pd>Q__bJAs)1{IukdAK1I6-eK8QX>cd!n#}3PXUk; z4F@gFjgUyT_6*obKSeJcQdBT9|B_gsZBWBruju z)xOXJ8V@NdEo~$h=|5SZaIf&TdFM&*fro1R%%bAS{<2^2tB)!xv(VXPcu)vY2U1=wOJ(GT*bp3pk$IIX!wtC>p&TzYOuB9*$Ggb>33C$AT$ReYTG1g%zT zRkZKVol@y-;OuRP;*GgQ^i&#jMjSKn zc2V-G9nBQ;c0%%dY}o;W0sblWJ16>m1!)bJ@>_|E(slsutm4;1 zo*N8BTg;k(cSA|mSoRCyzZn{czcDfwJU=kxQ_}{H6V!|LY7j4sL*T9xn5@cO=oh;`i}wB45ZF@laTKH|BNz1&i(J^{erkHj%%b4wz_)Pqu|gBG zA6k&G*n-F#FhsW{bObJO5bGy#n&WU>K&xKp#zu|z=}^#2-;g*r^Og4H6v`c1OXrbj za0!%=`ic=ttq~9(EYuE%#hV_xpvsXSuomOOMZb?Lxx6E{b(Bt_<(VO)9SY~@yjP4J zGIm0;ZtRZUX7}!g_qQg3HSC|m(=8px0T}>tLv1}U*GL*XE&hCrk04;%@Cn*`_K6^a z(?V8md3{9399tH@H8b!_ecD%r1pJV406B=#8Z@Wsrr=f=A1LrULWWVuKTVoC*r&h1 z!BN%rKlE1>hE8w}Pk*r`p=Q+N*PA;JpOvtOe}gBO85#LpPcm&fYqh=g>*vAr0Yb_a zpDf8b@?TfCQwb!1^gUWNxEDf`iT+(@=D6svJpS%rbHE7H+lEirZCH9VIF6J-uKar?3%c1voIsJY*qVXS{t4|(eKEUtCaa_{a zduy^FI)V9-CEoAM737{EPSL|W01tF2fH?vBiS50y+k3G1v&y@lBeDxq5cd|RR2Cu( zvu{U3U+dnYAMPzy$3WCHpa)pZdGR);?CHRUa}}_|%uZbIm0X{lYV7%67HjLXXmvBBRV;g+ zN5wqP|Bm-uTc=IPQgo)goF2>v8VzK|=&rO*I-x)^VL~n^q?XG7qh9S$n@5_KS|{4@ zrNOfyoXs%DGhX8U6?_mDm6H#G_<{on$fXBAH31Yy%ov86O&%wU1VzokoV1)=^8rm% z@daK+BEgnaUs*4=93i@b@BWhSPnKWTX+$Uu@=Dy`B~HTMnIFSEH7PL`^Y=%+g5h~^l{JUrXjz!~TWnDgeSg9vkO z2u(kv=Gtl7L1umu&Q+2z`VtU>Me_??Uerz@#$pbW5DI`h_>i0-=m&mYXx5x53mEZL z@M$pU{igd}ih2xtUMl^fhk(bwA2~@V73;36tzLJ<*S&&l(QZEt-E`ZDGnVEorJ?;q z4C*_)!!%VbV49}>No4bLRi?=K-1HkHG2JQ72x~Pmg&Hc_0P9zj;r>jsuxc2RG?1Xq z5AcT=ows;~YzO`rA2l9I|0<)Y1q27LyXl{DKAyl-O1jNF+gxtIKY<23jyCCW zP7;_Af&0QUZlN2q&ieFoRDyR#4&522McG^AWb|7Ycz_$wBP9QE6-~!P?@`!CQWMcO zZCU2YxsD@pB(9dcy=7;EtRri3DMs9M6i3dz5je!7V{nV7sHl2ioymsjJ!3)O*qdEj ziH^}t&ko_b7qYrH9#lJ^wumzHD+t7e4w#UCeKxy~#Rm z>^Ul1U)O=+Q&4v#!JWY+M74v?!=9-5WK$75P7U=@huWZ10Z54EP(?|S4!BAFWd3jG z2RU4JA(ujw8l7}OH3CQ>=emsft+kSMQ1~m6A44(~3*zp0^4M%U)sP2rtb}XW71~cB z*MYGdNQxbxz`HvL@CU|H4l2N)`9!XXMqpy0z+j0q=+Y7jEl`JVw=v=HX{)VQ=rQHh zFOfMAYN<_1Wab(Kqj}|3>^P-zfA~ z-S$g*E)Zs&E3|d^3qpQ9o>#+NEi?XFti9=S!=K+1sU!h6Ei*j5((v@Sy4trF0iZH6 zf|ta7NampHU>NU%Mgxyh+T&^Q@V-uS>gTXz)Ue>UIjxbxu}aFOZTd6Aq{x>ykn1FU^8vj-tukY zQqc!BKPFIMAdQ}nnpreXsyQ+VvY^}JW7K}nU*%V~s!;R%F?J&%e1pft$J4P-*WVUcK@M$?kDtUaQVQu^aE|LVrXvlc>dCI%5#0`tSvJ;OQv$g zC;7QMmXw%ox~S|LtFjN3({R6!^C*>mh2OPho@vNFz%ZIxLd)%}mRCKi3Gw#DTRP5- zPM9>D3Qm7M@})Q4=?N1MVq$BsM2DK|%JxFQYL$~c?06_67l;jWwE6Pr0k$Kbqg{Kn z+BSMp@aYnwpZb)YENeJzl>XfEr8l(l?c&o*>l!X>%V==FQ&!#7OjqIAg+$`@-sVzO z+q3s4T|*+Vj|B$rn@dbQdP}d?&tHYLA=VA@4m(+vdfMpp8_VZ@%1u{i`mV;JS7Uv~ z)1t^2wI@K~P?o^tl3;s|Cr!1p60+yY^i(ZxCCjbp4^24fl=S=D=B-A?5u>Et{<_zX8WlbaV46@GLsd?(rsTOyPY ziu)00Qgovq;XM%lLdbXqjSlYY#>sn(}0^Aclg3T(WlUkLMq0CCfFHn?R z05VjyYvObz%w(H6)fVjQ@&6o<`#6%luc9!{a6?#9iRbKR00nCL1C|V%x{CpuPG2LYGELs;19dbEx4=spi{>zKz|W4GYlVKg%-=`m}AxBV9lul zWhEFc;tobafdp$Q>YwT*gDvi0pM!;JKM-)gw}+q0Jn1URLlb*dWlS3v#aem;>ZuJK7qdtQE1sDAe4Dn2PIU zEV1S2h_c%Zc?3o%FyY|NLmZB1EA9*28!?H{CQCBA?3wBNIa!KXY$w~Z~I z4{K^JFSqk)v?!})Jn9!)qLYwLL}-`)k9h{Z6O`d5KrS47gp5qDJZd?-dg0$PqTgKqr}*X4 zqVMr9M4p?`qoQ%UZ|DPUhqOL-<9gJu^Ur+yz`bp=R{L>AZeD5!|F?s^c0JkVX{mj5 zq{UN}>n%^Vm>F!deiZ*><1a9jevtmcE1qt5*#-sIt)Q(2=RJq701XQ9fuxVYuuWWp z0zfB-?4&(NpXOfrde@T=j&E6-Y`R4E&>rBt zpUHNjc<=4ez5B5@oiq*ytU;a*`Z(-XLVq)fN|dM-0G%IwhEntA-l6A@VJ$fw1Et3* zV0LLEkU)M+E1ty=5Dc(i)DD-=ohp^ml*niDdMf;2VF#F)xYo!#gKm8J%*>g#>&H%( zrJOa2J!ARYBgFgYDtce(XW(vZ;8Sv?Eb6S$>1^)GnlgIFlnJl}GPRb0J^OKOLjYS8 zBo=(fLPD32s4{UG2S=9xQuVI_GNmvky&4}bwCGLrRp-8WN!3bnc=%4F$r!r zKp7~XbdbO=>udRZSa$4^>_K|M$d@i7o1bjbusT0!zQVnG7blI4LGcsEc>Prm*6NEK zb09cAzkYWUL_4<8{hHLH!PTD~G>~XAMt)v6O-NaE%5lKfA*y_#hQ)3{{V4~ge3x3_ z3M*ByAf$K@q$ZL?*f2G@;7JqGLD0~&d!IoLdN(I6qH<>n-Cht4OOJriaN^u^puXU{ zgmq<`#7K2Tm37JDnCgCoP_f_G9-cXUgU5kHNIrTc*Zi+Nj9zci#)$vwZuIgdr?xs) z#{p4{!FVtiV{PImX4)%Yq2gxgX^QkF#}pNo*#&M<8UIGfO&BxNj0YJtQJ!t8VUIX4-A^;2NIyimJ# z4BMx5XX0gOCiArrA7x?3uNW@oG)AQ;)O=0wt9j0KCMa$kj$fFf0)@r~d?{8-$1N;U zA=`&(I9NhE4(uKny21e}&ybE}_-spvIT*m337!%iy4ecvYTU!Z5I+Ym574l`00V;%}R}a>T?GgKXnB9LQRJfLudAZEFI@l#6iXF(_czI zs+qo474dK=zg=grafbWu7VPJIK%M$IO$t7PlO7JER?a zdcm{sD02g3icdB8MhIc4BA;o^ukB0sHQlfzu_*qbNIwespAdINj9T4b-T30DS+>*A zY$A#iZ=5Vb-zPkB?rVU|eXu-lH#h^xJ!Yq)Pe}6#-VseM;-9WF0rx=r@quj=+)(KY zWd{XMk$L2P?G6YO+RnQql;F{D0d4TMOs`8um#_92poIp9{d-ZdB@GUAH&)vJJiE`& zEA3a<5?l*e4#nk zA|vL@*V-X&k$2_=*GCv^y7|9n9xAnJ!By?sij!>@hrd3NzdnD}xtydG`b*=sEE!pz zytkox)wJfNaodW<98do4Y4xge%}ax~6^$$wz@*ZC-x6)U2DX?qK~bkImQ7HMzsjv7 z-k|VFub>t{CL`)CYD~8{!==oh34#Fp$%$M*@PYwB*(2Zl2o;37aZmDDE?vVb2c_=mfy=ux!l@e!Pd?a`{opJzt&FuI=vSy<`b2kFNz z?jbIsKTDwoV8eiVVs_7mzCi8y?6bH{`ozcywnT6J0+WN&nUoHz2e&`$?juP!4E^bB z>_O&f1X~J&0N)oL+CE7lh!sdWfBQ%mxwig8KK*EF@;zC0EFm~Ld*rjflv_lD<~DtM z0W5N9rvuH7_ldlnV+)oa&AZ-1n-mgAE`iGpfwh6W1a?DK3#}L4E~Lqo+cY&-s4#IM zE@uTkL=%KpW_8V49mBiT>gb|B6anya?FjtWm@A9N!5aqF9SzB$>D5^Ck(CuYH>3bj zxjWuxrSM=GSB!uo^X74OPk6kdu+<^$Xmm(CfT0pVrI2`lum)^1l#;MnMXRGX`&f`9 zGLPkf4Jq8O!``B-m^1pHUk|fgj5kcg_p7gY98yt?CT?kSyz6VnXk|64S z2)F;t4Q5nIzf)nKL_?DmoeM|cULmKjokT#aH;guORfH>SzUpwV?*<7qbJA2-gGAa2Cm)#4LtOP{mOwZ!$wG*#L~Krq{1^< z$Ph>77I7q!8~Xd6pwdf1EfN(3bSY6< zK{f>aBHI39x<=pkgT3Je?oaB3w?qcNFV| zf}rV;uB-~o81o8Z>kb%;?Zo@wEJx7;0$&4sl#L9ajSD;Bqev3Tq|g8Ap8#xEqytP9 zGSP1~k`OT;1IY!uSH-*wVf%wmNQk!~OhQuJzbXlifM*N&x-pK>!;&hgsbYtNB0Qw&O{Y7ypU{ZTpUJZ`kbyw7QPnnogO${4Nz4Nfqx$988LV#i zl+Cxzx5+)ZwbYCXP6RG_0g)#pBBaa8r5_}g18c8x7)c{D@#8Kb3qd}D{aEqNy{ZX| z$0sZvD_T7M{bNx=!lIK2cpRzq0lYA#-Uq~LT~+=V;-r0N{`~rgQ_XYX2Po6S5Q3+=bpgB^o zJTg0Q;LDOLNPAYiiB+E(gM{dcPyJcR!RY)A{1qN_&Cphk&M))OV8n8kO9-b%)X+RF z+KflG4;$FNe{cKMnSPH?n2IlKj6pxLYS%#Oyps^~W9uYaR$b*QGbqc*ZK+|<(}k{| z_{j{L?s9LzIQnI5Xs` zvFFry)~=LA!&HHX z91!vWon(HR2gC|><6WYFkAO2Sh$DtAuME}2pfgxeUZgIdL>A5ehn)Z#`~Z7BC;S;T zKyZ*w>pl15agslv_Cr$`+ZM!DaRPZG8S6>X*XTgeki8($ljZUb@ZI2xfkxmI{8I)S z_j5?5p~2BN@ebH`Ba48$pJ}%+wd%Q-(3hcqjp_{<~B>aP8F#aEWBHm%_zZbqUvsRP!rVKI2el_&IHvn0G@44SRq}6Jfnmsk{tMvo6A6(0Q=?(l{;e?6ytib_Y)hy zoftIm4EPl6!Xbl=zwK@PX{IkQ8mPbk^nGqR5gs(C)xgnbVU+dGkR#gC^BH{t`e4}q zu=mqJ_LtitpdTz%0>-Hzg5y(Sf~i>r&_&?k(f1&SZP~XW_dj-h=s>-ZiM>!4hhHTb z39J}njUIFxHg14*?KJSa6bkT;?b)LErB!r+5Hk=R%>+{v?HQ^YSv1^sAom&=-u%#+ zOx8Qk=a%HMAlCJVz9t^pR%rIV<)*ybqB6iI30kzk-3M4oY`y6K7_3HM&j&KV6$ntk zLm{i2f=@-#$#{43L-I^nL<{pugV1H@07D{i&}JHieS%Y<$}jGLV9#C0@42ZiBXaLj5J=5pO>tqja0~TO}zi+sx&G$&Q1o{;zdJW4hguh)9rg4a0 zG0~cArv(=XpvRJaq#iK6$Yn;SGVKd4r4Xhbi4w{;`X8OQJ#wFE>AxDqWnJa*3>Gbe zk?!OGxN59Xv9`!fVynof)gT@LQzr^p8hG~)ImLNu_Ar?SsuT!m2FRr4lV|G7BkLD8 z%U3Zs+)}hfEm|qpfHCPHs}tW!l8|}M^?^JSoa1wFhOd-_a1!kNl1X$&G@MDa@H|#T zYai^lu&Fa6*gQe42zLdbyA*fDfw0cjy)}f6llZi_E)2(P(W2AH8s0zeK+dx03?(m% zPM>PXBD9se!)7f}QjdDPt7E3AiKg}S|9xxMvcXKv^kA?3jxB#`nojN=d~kIoDQ-i z2R~;^uN;-|J&}537bZZYYeTK zJQM3K$74>|S8EP7GKJZsVU&l$6b`&)-MEN>n6I$!`t0)S`hJfGs#fh&37l$GCI-7G z2DTTRr3uY@JFq$to|3<=No?i-Xu5Heq6btF7?zD>ax z@ngu$wxk8jgd{nkHN+^`>gdgbvvnYSp$q!yWm9$zU6mn4f|TGvN;-^oNYE)LXI6U5 zrwG)!MKnmNo95BFW#ICV1#Tg5$B>lh(`d7U^P{iJUXpE#`hYg;T-S(&NE}9!R4205 z)NrJp<9}#4vQCCJ7v%2{HQhiUC2Ul{NrI)*;oMm0u=THi<_n@Qn7)V#>`z5GfmFC2 z>%*i4*{RFwu8OCsBXYNzvYs|}99bc=ewW63@RVoi!Kf=~pXkE^Ceo0WxdxlY8Ml9$ z4UrsG_6K0qn)=bZVjF#3A0C7rwVTrdW?;N`^iEXoGDs_6IbVZ05~kbBe`}-pOy}?h z4;@qJH^Cdctp?x?3W5-u1IPz+mv|MJ4sFM4IP!k4Wy%WCzI@p?MfI`()hZbRvwdQd zNN(}?dyNLO8iAMtBj!k&>XGOs5nSAO{1uG#{EYP!{Oa+?`i`O*;NROH?-Bg!(YsCy zPf1M19+>&cNm3$sNr&*@+O?&f73EbCOB+JW9(AjLWyAvI;4(=OZ6TXlVOAx}DP74? z7lF7?f~nTC5=^!*0n0m{yrv{yU!dklv>Dxj?V`ks5k`0w?JD8n%vzmXYZ~IW4NqI$ ze>yDC{=O@%V{7`1bMIw$LM?pd$@A<- zC{5Fp^)Ww@@6NP1`<53!uoMsGWn8Y!B}Cl_eDGx2iyubRp9&A5cn@SyNhh{vk01<+%66xpCPqc|5_P$cgVk`YLQB!DJ^MYYW4;Y}X?DA!tEc(%{;!k-aWL`+?{tIH~^ z7sg}d6dIii45eoUzU6Sgt-O-F>38whXmcSK%s#rTX6yQJ?Nm`_s%SSVTBL(oA0w+& z(MRiJMyHBQqwD)mCme>h-P%|t5&p>;N4>>udo$MBZ3F5cUZI8pia2xLFld>jRfZ@Q z+m|trt1hk8Fm6ONLNEGcGc7UKSdg~dVkmrLzA za0>&Qv(`wq53h-{sUHRRr~yq;>Mi2lFui0a;_RP)35&Xs&4UKC)Q+dzQx`aC4khQU z+Rg1bsDNaKjs7b1;i^o_f^QA*oqT94 zxV{5}sijc)0aHY-k$p>@u$v&mDO?_gW*?~7FHwifx(QAdiM3R?GIGxC2#9SvXAvX1 ziK{u=O#!7PUKfVeotl-9jS1Q`DEq*(&9r^|>QDq*XA|D>s^C+pt#$=-euFGg22IUffgNVI1rJi`KYJ6 z|2Vsxq=64@;Hw2;+7DUcuYLU;=I$-J@fZAg*&XM-z$v9?oMT8TK0_k+)Np!1Rzk(* z05#Ufe3UvbGnINmu5hfRa1}ENQpG0^{-0@fGc^%;faGZNiFc_K{KUJuONcO1c8vB- z3i&Ce9zt~()@p!wyzQ`^o1pqw*m31;Y1qfoppPVg&ly9vrXN90HjUdf)&0L3q!|JjyUN~=;a|i7Ruizht`WeT# z#loT9NZ192%nrt3kb=y$redy%)D*U>u!>v7*-1Bnl7WOlNjIEogHnEgWEswKdtoo!*SQ~;}cGWgZFnBL=&JDF@W9umpqU+_N-KL4`7p9&e~ zs7)=GMJc2he{nYW>xg1hBa7~MUXY-?_c7^W{Qa$*j_WE?gQ7*1JRNYYE6 zngoIY^JbU>a!nr#??4OG1cCaSAxJ!B{tR$?JH1p?ZhsA7+7zlQDJVia>t*CS9W+6B z^0sSR-41^YJ2*mYgU`BEUOA!t*@RPLC!88>KH2UR(xc2L$kk-Lep~a&_AAFyNEx~b zP%vm)1`|s&-3gt;0G*$W>ThIUtA{jQlYqaVSw(bn-|*0l(f-!rEZ)!9c-);RZ6C3Q zDWcbWTcke2Oo(0w?NtxI@~G8Ar~{~D(HR)Bz8!~*NK*JI^&$8dkX0TO^bGOo z3xS&*YMklmpxbdVZ)~!}-YstVfXSc1_NpFBID?lzio1R)Tvr7bRbHSW4_4q}>*eb0 zWeRrOfH&YXg0b%0$b6<_F;Q|nF-rP(d88Tr{ZHboPdrNFa01dgwJwvCZ z8J9*}j$pF(b>8P|w?%M?whFh;w(WG0hTSS0FWR8Km&M8bAkprVxo7y z7XSzB`lH8NNy_Y?Wa7wrh8g&v;2C%cU<+ZVLr|M-3nqc|L$`$lDZWq0^s|aKi?xj| zz}Qlb5tSzV2^MeqrFtWA=saPqVPCt2jAy$lp!nk6?_lr z(5^dFS1MI(ECo|r7d-2-eMgaa2?Hz%FY3?E=VXW`(=>klQ&iv_G=88_?I2n1 za_afMyQbvqR|#E~)>jDt`7mvUi^HbYjmWJrh5=z^o^d5CF{IPuZXQtjP#ESf6|Eca zIxt9C1@9L$3T}sexSU1Y_ObBc%iGe9+6YT2iQmN?ugS7r(VFj5k2h1{Y^H4Ffz5D0o$h^IvwA z!}#vy@3j$$Uf+V%Jb>g5H9(ph0fs2g%451kteaRXxvV^I7gw0%=-1X?SZfRLIfmxX zdfgeMc9;%qUF@q--OsjW1-uVpbj>Ux7F|A8IKmQ}HMa^+BgBgm5zh_b z#Q)Mp0Hi?l+$~y|%Ict%1Iu}DLH;&AJWyuauQZ74;poJIB+|1&|BWzq&i0e+XauuK zI__w?DSH~?mJmAzD@p8M&JiUKn$Oo;*B{efACoDl#7wP^1ckG^xyt<5P^GqRa}M}V z5l&~O&W%4%__u4=E}i%V2*>&j*G845saB=sB8-+u5Y!mh%krZk;rSOwzFe`XdGBKG zPSN8kh~&>%KsS_)p%@hNd;f%ps1K>Zy;_2*y?ws$xj5HWT64C~owI%GTh(metzV2s zE>h?L6jG6t-esIc12pj_0WtUvc^8%pv(`iKxUX+cDw`o3vOQ-v=h3=wi5OH~jaa|sK`jQa}N3P>IUH5{DFjQ;BYh z29}eizvA7SRED=c9N{6Y1rJ9oP@D1l?9IFP{9p3Ke>k~+e&$keNO<2%ecw+iL4Z2> zsoH+M9O$vUfV)G%x8P~=Gk8#g(0)fTm;Z%D#o$wDKsa$bC-hp|bkElMbcq#pxsGwo z)~Fxz#8V!?*j&A}aZqs3J23sIV$92HqQJ~EVY%@OB8Dw!>b&B=)#0CjWBJlPv*v5? zm?#i1_!0u*wf#u0O-c#uNDzZ3DP=ho|Df*>nTWe_2fLZw7KNZ&?al4-^n<*mq72$2z=E` z9MWAB1Qs0WX+tnYZ%cyKxCVj)o*WYe8Bl!u1-?j#&Las05&+gy{!%p%tHBE9@W9R& z2m|#n%|k@rS2R#y!tmrpsY{Q)3{?F*TJ`fi8FSxx`_fRI+t24Sf0(vwieISsufc!- z)9#kO6KrYb%|yHH+4Jfl|1Ai~Ru9R_UFR6D{rly-!^S;sK<-;X%>s$x8}12ViMMPc zpoVNP)$C#75jOYX%xz!5%E6=b5RD}MJ7`>4U&R>`3(GRbVnA1%a72~nr+TKlR6ya~ zV_8K^4aiAHEK52B8oF@;O^8)%b?^~Vjt5`K`xSpe#}me5EIN24(s4?~Pb}yaO2>Z% z{IZR?Zs2b`HW8ci!*ks%P(FPusn{|1h}>lA^q)+s>!~yYCFx!?T&i=hQ$~`9>50n}%D6KC->g50|(uxy&6sL40vm zOA!2Ep)M*cPW!O{d}+$6y0-iAwJl5Owdgwc*@IeoNmiaVTOZ%lID1q3_J7s&W5EB; zLV9cR@#LW6y6xpRf;Ul7nIm^dZF5L2WB9=_rM891$qPQ- zNH!mGueY7fh|Y2m7hc!L&|HInrsZiQ*yDzm!p{kgI~rlio|eU2d)NjDLEBi(o&<?Zy&Yb7s6T!NXd5gA( zwJ#Und5)QLKg*mezBte2=E2_`TAB$DY_b-g>n*;}4~6g2-zyAGqjCzwi?WJSU?Xr( z2fzfrn)8S`xnZ!#x^H-#s!c&?eC2edCqfWusES6SZvDunTH}%WMxW?cJW$hrpk`$2 z!5!eZJ2mdSzV~^3x9mDhZE9gU59k#($$}K14v$%DVNehj3G#j{StvQ*H10q4ExQN_ zqh&gIMoIRSwRcMv}^khwKi_q{^xv~@BbmniVZI< zX#b}Q;Z7ipoj5hEy|F2T6U;^1$5pmd)mO^q0v!zk6dsq&1&}G>v(4iI`M+W)keF<* zJ~(8f(Tabysf^HeCEx2rp z?%e8K5hOm$U~D#+XOTr#u}$6O+c}$-Srj4ga!~NKzLKEknz*PR3qW7>*x%d8u9t3N z5O)HjY-Idcz){`HAv@XZ`TG}(jz-VVxmeU$Ro4?=7fwO<6;mEqH!ho ztM33sxSc(6+50MzvJiya0Zy=|u3`q-zoEJJ&RLxJ4UrsZ{Gjf`qrwmj>P9+4AB0^6 z@QSGIf7+WJ!io>2`eYz50Uchhl#IhH3J zmc>`bkqykO(a1dVrgohwk<5Vw>=AG_Nh#+Vr#rD{TYc-T42v({dGl2DUkEABAO>d4 zR5HzkvjYpa@N&RK17`wD#EZzO@+f5ZCIL|$-3cr?6YTLKUOVw}PfL}x6L&QIJ7ajh z6QBl+B!F_7;gk97OYxgg-es!Ve!aGug#etu2_5trhw4@51;u4WW?0NWU{rJ@N&Z+ZdlU%-h1wo16Nx9s=WkNlPJs0wkCK{J$)`!%5f; zQJ#N7N-r8sV+?DK7OyK3ll&7(uiy8+Ze*b0h{+gpqAk|M5FYV-L4+^0}4l5)BC&WbQMmQwDOcsP6qf5i@`WWpX| zFlXcl|A$P+IMq`Wk$d8b4oR{D#8U?ukGhgRHY}ZiH`KLp1rW%QcPk5QjmD{r=tFNHDTdyh+(cSnV$22sc6~+|@+JJ*aK~T< z_91I7gE;k}Q1K636D@L`dvn;lJHvLqLdEZF>Kv5-^gxB-p?lM?olWeZF#fAs@D=Rw z%KuE+mFJv1LTXyZoZSXAnD!>&cLdC*Zb|RJiK_4xN5Y#R3Usb|iFlhbVB*)3Qd+Jh zeY5S?plwN8uO)4TRX$gpwGTiO&^}xXG6mvrd1)UPc;B(iMc3zFPky<^7hnb;4OB;c zM3{^3*4e&uXZ!42IPLQtA`mT!K@p4z4Q<^Y>SM3&eNF}C(Vcz!L)z`5#+_5MZ&g)0 zM$%AY9bCNcVTK)x;kE+q5E`E~UFnH+MYUhTb&M%1ANfyL@&ANg$y*g(1FGVozQ=tP z*hCi)`b$Pmn^_-Wkg3&0k)cBPp!LTlL#NKXkrFRk<`}X*;`ff`HtcZ)xd`b@&`0?__uVefw`V8% z4i>5Q4h{{qJUbmx)3B-qv;=1%hN~rB#3ycPiI~*s|ItBlbXZJVz=f64VL5^<$Bva8 zOKGxOaA13`cf^_~v8z53YO4BJ%njKwR^i+Z(HcsL4J#U%!$cKIUlo)F_dDnZij;QKN2c3col)#?-R{N_z*MEx%MZZ zQsHDNz#e!?Q%N{QH205h-DKZ3V^kY@2}#TF2~>{MOH8Ts*jH;bhp-4qFQJNfS%}lu z&Y5KB+<0c~S3V2=?c@G$p9R1AEJzzh=mc)L!f^*k1!4+t3YVFAw_y^4JP-B8^1?Zd zTS*I7pwBU{6n+c2o&didXicVmRcbvTDuI_G6tFs6R)WAPi_ijeOS;Q$L!3Pk;QHuJLMEiVx zHb{m|po`Gv*FFlW%6$m0mlME_V4Hr334z+964U+dVzUwfSCo9bv>NFO?G)D>@s|lP za@Uc{f$}W?MaSq%XLZogjO_@O&_UZtx~J>|*V?Qul*Q@w}UD`MHM z$P#dr5`?AQmrikI)b7;yfZg;2A8`*Yv(+k3UmzbDUwV=-5r2j&)}9&2wQ#i`s2P8t zhFjD<#L-%5I_&JV#UMAdi)y8?XpP7bNHs}O7v4#fRU=H%TUwa(x2*Tf4gu&YA1a$`;3 zF&3(WW%9jy_V&-EFTkQV-cZnPf3|t2!t9;DY(~FGf?Z-U8sc{!mq2(JarTes>D{R( z&I`46Vq2OK&?a_$^U9$_hop#P&L?A%w2LHAeu@|=Co@D@1UN#fiqBBR`TVDSF1ytk z#Qr6g7AC7yu@Cd1)+NF2dWk9*v3|*0H=-N*msZ=H2swhf97LUb`6}CGGz*ex+ipC?Q8j;TWt+I5UbzP86H`iozblgp3Rc`Fv%j zYsT@Gl(BwgjWkcB!T~;!`VEudiVJIrKg`sP;;6lzfP$j7BN8`H0b>WyK)Ragerv|e zO$OlK%6>MjD5{`8Lw7)IL4{;r|%(ivb+)aME`u=y}usc`z!C>!+fr)*XN=5 zuZ_aNy~-<5+0VYm=3eE`TW~zBd^8nR`t666ow_$&d^D2^^TXQ~7av*R0K-GrptNL1 z-W%aNX;^d$Rsnnf$+DJLQzI3o-5u6KKxfVM6O;-*&CQH?&q8#)s^^2qk`uQ|PG%21 zdGgMvlck4H+3i9sWY)5*FTgr@+lJY>ks z(9@O7_Z8B_5(n#ve#ZS5Q>a+6=@q^1MUhR!E*dx~e#)I<-{CyawjRNsz^TD_)c|EC z`uk95KRrr$7QV6**u7#s)jvjox1`oUyV1$_xTEj4M}IR9mU2N!+_c%mwd&;8Q=D4N zAKZbxT~}o*kw87%doxZ2>IjTJ5zyvut>*EdUz%WB&hO9p19VdDTORLoYW~yJz)3~8R&@Gg!)4jy&Y*3}w7-f^?@7nfCSJ#!8%!UO8u?pKFr|5&UUp,Dlmy6#JKzM^tD}Zu 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�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

      jjyqppEvq$Qk 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

      S?|^s`g~6lMJz z+XRN}5^&BnNG1B)7w}A!EkBCknSJgg%&BNcz!^W`UWyfzfG{9Cub`THYp88*fba<& zK=`PzKXd@X=li|G=?RPV;1%BMwaR}QJGZO&0sb2H*cvr&C%1iV$~maN^!0p5EPSo_2~)Z$Y**&4fy#wLyLlJ<-0q{0No zr%;fm#aas7L`q0R&VMR6LHwKoRMjDZAJVj&^^D9cKsg%g6%W8CNZl3)4_*t`gE%BU z?W7PBjBN3u*#8dN$;eKTC>NuS!!x@oZb6^Dmq@tR^uv?r5JB*F8H)8ZWhzHBJxZx? zxe)l+ILt|iyj}6(ePYMS^&|5|Z&^C(%-+YCn6WE*ExviGI4dfT>AAiI8b`DIyhig^ zn%&dT6c-hEXV8gclj_J5-eoRP{L(5k8v*mc&WY6Of!Y;5bGM7$|M2M>g@I5u@F6DyS{43pV}m59Y07-tOABu$is!ij$Hp8qBbzC_2?AJ zsH7#uoC@5!tn_Ni?bFx#H@=V2zilLiM<1fEl3ztdYK0JOhx@klf0fDzud z%tbEW-%=ErVy*bafRSEhzE>RJCEPIVTt0qs5R3m9un}cY|q1yovBR{J?<-B({5Xj&<`_z%et7o*DkLD;3)|Nul#=l zJQ5>keTRrm-3EqP;kBFU@fNc-O3W(zZBbXlyU29od7KYr;El?`GEwRSq#kg~`cET$ zpgTHZTxm@I@z3iuGahCm^MIq;ZTeD(qgoNPs84W6LvR(PCE$Gbwr%P%nB%a;0O>{^?sBkOOyQ@U-W`Kn#EKO4&qq}9qGYZN`pii4ZAA~yugEw$-Gz;1My`y5dC zRO?WC)zCF@Zx|kQ(k35pMU>)?JOqfK_VrMO*^P^pUY4B|oIsyN)wLRE(oDs*|9^)( zVV31CGq)LQzA9GTrG`BqB-$jRBen zLXxnMnpNS|6FV70_B%twQVk7$oSaVXuRr~b*B9x&}aHjeMd8N@mt{Ekla|o4d=K< zGe6>RwCylHEyM^Mr8qZ`fZ=bGy3I|??89tU%_iIDEvXhm!hL@r-ht%i9oQADBJ0@v zQm9IVC(U))3Y|TozpvqcUmLz91r3=4CcNLs%ZprtV|bu#dbEIxo#8M8tc;nW6{q_C z9+6WdSNoNzaMZ-#IC#9kW@+8&Xs`T&5AL=JwlmY5=h4REq_5;u??YcQ)fVf9Dw3(4rqKWZsWxO^1vt*Q`mDAshWt@1%yr`B8e)fkdhwvJNlls z&rk2aM=g`2Olr5R;@O8htJf+9HbhUYF8P;;sfM^K7e68sZS7L(lc(E^(09dP3>7J5!?s_q8xwJ%b0uU z;F9=rTFi?X zb)s=3OO_3o%+^ZfV2kCja?U~v)b-Gc0OQta2;{L~_$>UC;Hm#*ET$F2&HspZXcQ4w zHX**cD-5@JxY?EWy$~o+6&KTfm#SI0;Dix2#m6%%7e$Y4={&@9KD)!9o$_3WP#zUc zDd)PL)za=7wtCEH=-L#kTg7Onm;im1zh{+$L4SeOl7@H~MSBxaiJrZ&{}F)j9GkSr zjo1(ZntQNf8e+7b{6jc^>}%dGvbto zQhg9n!g47rQ3!<+wWm@T69pxSV%d!)FIMnrtFwPgug!={<+@r1EvnZltJT~Lp^ISI z_^MfYp2vnK-(`NOU4vG^0om_mI*+e={ zt{~#aTC77{kNm_45V_)i&z!URk%$7TtKr;4Te-BLTyEgmZfpK=tgN>{T2V)M`FgXOJyvhNh(4@P1Uy2LWN0;cl0P ztwA0=3^2rap%5-E{3g4>g^EFbQFd*{^@=!CQhJZ|H*e&L;&exU-yD*ic2Z(sYAKmk znm(fLTc#@OB}C3&1f5CyFRV|^ycY;$J|$12)2Lg1&!hA-6b(!ZA(UVWBM)=;ZI^|* zLD`0Qx90Fue0;_Rm<2>*Yiuk$p-FAGEbo`IxoQ^S`1}+bEd}nuGDUj8^sI*z+phh$ z-DMuPd^td0^g+re@VV3SW?LG>Yf1+&G~r}{&CZsi=qRPyAMRuSNs|LmLZX3X=}n^d zQVH-R&yfvi_$%UI5L2iCJRnf`$_x)6C+_Kl)qljLKlf`$Nr0X|YZzWJ6e=&rIrmXP z{Kc>fzwP>ZIob;MtQ?2!#ATDmXGS81&NgG%ZBPuRwMR@uYi(+5jt#E?n8i|r70Rkp zwn6@YZ-2-Tcv|;9)m&S--LdTMgo>7hzRAaUd7J`t8;yY(LXf=Dsfk#VZ=rQl90aF+ zXI=4;hEWu{41cpkgrh0S34gioo3xUf{<<25=f8kI0?#&1S$vT8qaq|}?~jg}>38}O zI{q{~UJ$lX03B+cY#GO7OOfFK2YPHKaki01OUCCdN5+caEh>PDXco!VnD^uI_v5gX zAIR#w62*h14T=sy>}aiF7S0(B7JXQU*F|4LB7qjuVhM_e<$EC1Hj^i~ zQ!ee)>9F*seOmTgaE*ciWpr&MF;{vW_VKJFYcW$Pc7-E?btanj8RNqBnEe z?KUQa_qBbQd!3Z+Gjizj7hwV-$O3-C@ANEAG1rvnakKOBem7{IdX{&hg+*90@RdRR zLWFljjs&^z(3&ewaN!m<)+F|sfrhvr_=jT{%0Kp>vPFqg&ubb1dfB3OjsH^F20n-{ ze8CIcsgs!=UTrv8(gZC8^V(ar-R4l;X_B_ep8+U1MqglhFr0v%({4??)AnXtdWfx& zL8g63?Z~xz?95kDVs&kfH>0Exhi_SccwY8x2T|MW5tP=5>19iQ(LzKe3OtNiaD@z6vneaY_@(Oh|% zfjk!D-hQ$5N4z&tT^{>2o@!FZ1+a@tiNFxp<>nypQ`n34Zz~>7;eM9_BIujty_A!f zF?JoYutTaJX}<`()nAIw1hxRC%it(k$SBGmJEgkQx4iP7%-`7drm64fumw|Wjkt#_ zjvO4B?}pyw%+@%GOKB>9+4y;kb4-QF8Tx=Y9;}fe30B!b5)p_gTDvQE$!xR$+4P{9 z(IixyMPR3%`r9$H-JBCg&YyN_y2YazRVwu2sK{c%;Gba(KXOI%HnfK3$e~{gm*n|a zh=*nLPAoKQFQ<1-v+#(?fI^qrDhLaI3cGQ82jLw6mJzr`TPV8i#XQVQK|V9A%YHWA zESs0KnL$dUc@<8u>Hz7^9lOb=rHR4B_vIT2g&|8a9}cV9%t?q3X=pep6kV{&!a>=h zhORvJK+E%futlA&SCQQDz|M2QRZY4f`veJ6XS=osn&<=_E z_2}o3uD_dN)`z%Dncq;FZxZCfGC&{Jufs4bAik8)4g-C#8{xaaA=_A)e&vQuht=>3 zxU`AlfxGhEJTlasVy%|agC8cB&(KZQ+r@N6(iwviEuCudw5hQJlJ*z|IwN~ zI;9zX-aGo^0?wsg4+4nz2a#J zighH#Oi zc-i=@e-BqVh~L=%OyqRnZyQ4LcqfGh&jVB4H1=R~7%gM>U~>eMh+(E(44V>-!J?&?S(vHic34Aak^{@_ux`$e zhkO&{NAK>LIzH!KIP%}VSuo*vjOnpWlG1j&(P8dm?`p=?@~5Xn?w{fE_|M}#=WF@1 zQzCzech>)T)`(mAJ$FpmW0#u$=VMo${=m;CEEI8xma7@HAbB*=kb(gePtz*pq;ZAY zg5`Rosb@G)w)oN>=_dLCs*j~woZ#)YJ=uk1?tlbwR#PEz-6&e-o33s*er1!hMcOa= z&Cj%@jhv63Ax$GI8F3%AEi*b$eH{z33SzU3!t%1ap14ZTu#9)D&5!RQq+nH%|i$B zPYusjDS@vJ?y%H8&a_R|s>JjKjx8!^t|a-$1^t3fQEFgTvR!gloe-)Gr?QxaJ}(h$ zR|!pYijPypP-#Fiq22d=hPh@}SY8jBCIEOO_V##bA?Vi|DXbnY7T+AtDUu;$nWPOc zS&?FZZHFR9i4^wi!US8`Z8PWdMbFHN@yMwkKO*bQjkx*?R*4U}E4OeO%|p5-E^N?` z>fD>>cWtAf)0z3zxjJ2wG#`mLLhv5`1)s(Cml)>_k7V_*SiMvZ9b&+!UDOr+QqDWi ziU(2uEImh5k90?6ez2c0IJmP<11{^j{aazp(NQQ&9yJ->KB zzuX~OlF^*c^}oP*RD$f0{m}^$q-W#rw}sPd{mK$HRend>iW;2tU_k=%t5=?BO1cj? zWiYn?zQ0Cp@slF$jy`Kkt2~a~1x{s?c6S;-Gt#rTph+kU%yP0zZm1Im_f`H{8M!%R zOQ5e!XM&m0$=RMo1#3TcR-_8Bxhi`Gkvj^eM;*CSeT+OhI5TFK?XHnOd7PZ>T4=J| z|9aOw(TAI#1B$Y(%h2rlc@=nK1&sgFUH<;5F-te@F))NyE?)QCDQzLb5<}2lfCt{u zkICc^_j{)|sc(1#F7$zXCKfAXWW(i50gEcKHXKAltqHn@#8-ISPxtZ-`Ub%kNb*Cf zK@)Krai!$x81%}5ZraKI*{VpbvyocA?I@U}-4w-0b0&%SI=ue@_h7gS?w(;S9$}63 z887JeT+Ti#&8~1P;Qq+P+Z4=>CnOW>H>4!6W3#qHS<#(u#J%?s!D}15+%9C@H1EfS zxt@RDGWcx7=;G+zKh#lvfldq%F~)7Flnv=oq2#8{xrNR|*+DKP5;=rRz+N1mjl2z* z#KvclzVTbAUIBz2z*RPyM!l3}sDOl;PCvWV%IpoQNc+ZeSeFKr^ULGWWLRft7zCNbGZr|_-47X)<}DN^hvw{=usK36Cn>*Eb1m+wD1KyaaX}~D zfFi3r-jNI1Pl_~pc4k`{&EkaofDMJV|0NBPgMUu=Z@y-N#@-lHe)ia>q$i@_bTzRB z>gXOada+&r{2t|qL8x#FYZ4!q`ri_ts^^_a3+w82`XymnY2;IXvwk#+D9v;A2qt&P zDyvAw+$Zte0WmeK+G+O3<_25tzMlreoii7H$@=lfSHRd~G6Tk*sd(i8*$km*lV!U( zvl=-1q=}U$>t*bkr<@v_eISrF@}l928{V>SSI@930a{;YYA&wQ(((+}w8##!skSbB zVZ5nlj9GxLVdk(A2SG#0R093EKJ%W<%a!+o88CH2^&j#eGCKA4*ceD<3W7K zCVM}#PcsbT?mdogzZ~aK{?&};=^-zsBZ3YY%uC>jnNyJqNy&E0o4yfDK!P&Aqrg28 z3=K3S*#koh0jHK01ge1l4MCX+i5qC7JVUUtdFm48mwsecD};+s^*ZnbZ?OdFrchAI z-@Vd}q=~Z7O$AH5jO?MZVtO{>(@I2RIToo1``5dNZEZ{kXdk^)%8I>@?z7M`OT-lX zlMbk|W)J7eRUN|ZTfT)H4oy7{H{wBQsQkG&P=#H!{%JA{_)ruP@`%FXd<>@N;DZqb5;Y1_K0%%$PoqQ+u=dzjF1 zgJ^we*3RP_T6BNsG%l#X8zXh2e2P~0?qCNQX%~tT^CQpAlI!~C=5R%Lecx$@#4W6$ z@8O%b=h!{(zVJb$|DqHVSJAK>UexiJ4g*v1t__iSOChHU6D-76n7DRZoZ#$gKiN{b z-Jw-vRXft064EYIj72EAg70Aute|p|U&^vyAR2(}k!5<==(jjD z-SM1tLA*?GZt@A&Xq}zCU}+-9KhHbYZ}fqdg%3r~KXA&>aqEt1;&%ous!Y`V>cv() ztI=<@d}DYUhVwv99zS~ylZ>R4Wy5Y&Ys1_RfChYEaurq{R_aVv9$Hfk;ChJoF)hj+ zz6kxRuA=#y!6SKACe=p#Y2})Oe@(RHJ~54sSoDdj;$J7`eBxSQ8qNF*w0eUjx3c?; zrJdjD2N+0-!$N-qYljH9F?KTSx@rLYVX=_=cDWdYP2N*rAti4mL!+;mfgG5|hv~S_ zgn}r%z|wSd)2}>indP;HJh)sJUPoe$V zjdYwZrUK?e$2kO|`R%`=f1nZtZ+dHgdpr-?ZZsYxZq-^JY}l?d#$oq&Gp<~p;QUxG zaYtHC;=1GR9gdqL!tZhmd@uQV&KE41^VwKNvS*bq;@rQg9SUuSxPk)PTK+eYo1)5; zDL^k07a;cid4OIjcX(}S9XeBH&foguhF{hVyu_Exv8!XR{!{HSWAN0PQ77JiDd$d8 zkjwGLN?}Symc4!C@n%Z)9r$dJ@5HIWN5!@|I3 z|HR>Ikid&a{CD8$-gI!|*eBOBPn-aT=aH&%%I^&ds6s`l?9!6gWJnWavtmhR|9G-i zE3&;3<|VjVxy7ehNbvC4wm!UnX_8>yPoCWw8yftJJYq67)cY42b%VSx7%SrWatln} z7OuN4SbE&Fdq&Ru%#MPX)qk8%lt_nK3T|4JJ5+e}Dn{h55_zb|gLip$<67@S)YYX# z{(`cNg6^m&$Bqf5Kj=GtI?uG;X^y>LZ&+IK-NMSu?VokFhk4KZrQo-K9EXP5O)XCI zV*b^e^TCZDc^Lt<5q5sAjVKoU^>$Vs+Hyo$4>Z(*n^%{+QB;C)Th=YBgnPUU({2NO z$K0KTbmzN0`@F&MpW>8XLmNsvjWQ4$rTVY16-F8Dv3<7FEH1TgkZ?{5-7XrnH6>kv zY6!z4+uK9ITlBCRImp-}r+{DvBIGjI<+Fsycjfc)iW-78JgA z+N2|WA2Tf|=t}TbKZk{W4gZFtdxhKGDp8BAu={wHgO6D;l8cMItVSb?lCsJeaIK8b=FZh(5t3A9pQ?m25ef}L7 z*lkP%PEfW^w)_7Cf<`bPh>R0ei{9=@F?1jGyT!-gP;m3ho(1JA@Cjhdds}39SbX50 zlEpoOQvqrDJcs9zp*40LMZ++>f%UiP;C+O0aBTY=3VJ4Z;Vq2CoI4s%-!0uk{qO0ws80 z5e;M}M&?DK?APR9@O~pBlQV)teHVW=%(U?Mpi5WeV^`%+(7fc3z$W8lhrt}jNPn~H z?j%P&E6=K=TFIwYIbu}mto`J4k?9#rH>=YRGB=7({un6FjTB#15` zeNpWxRf%&0;OS))GVV;BDaE--7f5Wolw5(aL;p>z%Stb{*!DfSF1URB^A`UCenxwe zw+Q@eWs*M}i3OG6qLD}Vl8msHzK2}RIg6@IHu_+D`JWvn#%b=<=V((c4({J%_Tl~L zlWW&6J9p>*%m6WAxxruZbjHLkyowjEQRlg{$8|oYv8m(D_}ty!VQf0`Ny!*j*Q=II zy7(YQu}`cp z56XuYfMuymog#D}1u_d}oZrTxtCqOqw7&ZK6AYMX2E7A;8)BCNSxQLdUSgVld@Wsa0^#cQa z$mrm3lgTlVJJt?YM^--?_F~JfopTp1n1o!BF}M#yuXN9M`y|sP?VEZsCrGW7%u3a= z0zeFah!sax4DlVR{2m;DR=ji#!Lt4rVYdSkvhFWg$A|1W(PPt?z}rCEU!+W}#wwC)`UdibF3U;-66I11vhH}k)knXn_d zu(?Q>@epjMEL({z1V{pb5JjulWMhC{O8jMU$ip-XAty&z(;I)P*{we<3?ql6;citw z&!Pdpe65|2!0NL+JatM__h01xqZTHg9Pb0%6JsY>kWv68tx&EgfgJfFcQF1LcnbO> z>IzE-q02NY%1{|Ah6uJ5aV`iJq1I!-K|4JI^Nxq1 zu5^U+u>u%<{Mp18Q>pxoiGM-*y2ye+xD~q0&JZV5Ed(dTDucaBpbQ@MyEzMr*w|}q z3ujHmDq(T^>cf35K@oUz@7}Zgy>QsUwnty`Ske@s*~1IsbE>%%PJBXSmXt+QeTU@3 zKpr9ubf@G5B8|7g0_6h;aYH!`!i!`fH=n~KCGV}K5H}>;pu~Ux7nE+neH)(eOH&ZF zF|sLQm%mF?L@DT>4?0Qq7SmC8p%0-67w(67ySLjXf)A>+b%YM?9Q;4%GMoTWT!For zS0QZJDal9d%@A?v5aw;a;lzs4m=)e!BFDXoa$^b`TX&I*cfd~$0--E6JOMm*sNr9pg-t^ytHM$;Gg1IEp+0bK-vzm&R*lt<@G!<0G;?lu>pY>SIEjXs%@(3KlbP)r9c%Op zG^m2jF8_?F=4SK^t)7s^A|Vo7D9hhe-P-W`NRbd%wLy>(xnb-{eVT(vv)I0U-$}N<&n<+@f6wih#N!}DOn!kttvq#8 zeQ0gwFWD#qlXzT1c`f^#n#1h2Q!Mcs_lp2mS|9F?};iw}j2OAXD9y$BNIDn3<)_n&V2H0z?w4Cs7 z!3ugR*|dAUEB@_$ZZoK`cdiTe;t!tjzz?`9tjQ*w_jx_%f#3d19w+CR6=BPdk#=iu zRx(l$u$hLLpI3-SORCKBgG-%Wb;{EG3(8?0(9EiadC2pd`i>V&>+_Pp^RbI&63j)E zVuop5dO^blL`5*NTx8h+7RiUL9s>pa%Px2YZhTE}I3N5N=@fj}0tuh5)D^1oWzbBc z&m=_%!F1VAPRUVG+~>Pay5dg;2|JxBg=f@Th|JyeI#n@1m%uFQl;253NB!JBK`vZ} z!Gu-e#j{5U=L!32p?oto0v8leqLb;aU1d%&)p9rZOHTyvoS2ja$^sKNWcu+%)4;> z^SZu5?pw171o^GI6N*c>#c`8mLk^NjH(*MUTx%D+=%-T)yKxQ9}P6IN>$Ck8c?SbH}b&&RK3gtR8C?st*$(38j9r&aXttl}t9KFOemqg?=al^YqYDJHFvwZQSa!A^V`>o*)uL4x7 zJ=KU6gtypQ{uv#Arg4JAH%S0{PCt_>2pNVnR+%gh zz)s;atU0k$SlDN=l%G?{P4b4lcXe;pN|eEJsSMU(TR^cBUUjY)#QJDEt#3|#J1UW$YxFH z0i8r2WTYWUlK7R)RxV0$a@b3flUdC!6L0V2<0>AX0S8zNb>Rs)r{d;n&8t(we>n0S zDk{OIX7pFapbwz$N!Ptz%cM+r#1&+#vZ)U8A|bqXsC7ou_&K14lmQB3<~#Tc&S&5T z79n_LtK0nAEgvFatQEtTz|c6&obrjk-vhXXW*_G_V8Mo72y-Ai_hKm2GA$b2(_dEL zn>cI+5-pId{hf|(J_Aq@g01|0D5WmA%DF-o5Gr>DsuT!Tkd&Y|0%KBpq%S6lTG8tM z;vT+dF)ljXwD0$3;Xn+w`R5IiM|~D6`8h@GO|!nt!gfc_6ZF0$n0vN0Rwdl+U%${Y ze9cTTyf~EhIuzCOm#4_wjBW7BKoU9o)L-CX<<~L~RwTE0smHlDK9y*plMV5(0HhjS zRz4#=h_B81GbKL7lGc|T*K-i9yD=Fwyaz_d^CuDY?dyO3=28Psn|Ab~@){Wv{@v&SHWkIGoHq6>O-I>d*8iqPuV zeZb)xt5L&U!m`AzaiyTsTTG&+-HsjAwn-~JEGWSw>K~;sq8+Xh1`GXCC_b z>i33RxhrY7VhOc{M5UctZoXi_sJ!b_LHi6OghqsJC`DS@u=;kWi@ou&KU;*g8*mTL z);t77QRPSKuu-6hd1Urn9oeWopYb^xqr70sjXel?hbHFR53$67;V0{j+E7kz;iK0E zh_?P7%BgR1t2m%!pV?W- zOCb)!aP{(oD38e2)8UaV-&jmb6+~h0z>Db$ea_!44Xzt=v zZ9=K##RykYwWAWu-O{NdF0K}=?kjN*7FuNNd?oH_a1DAt`kKD>fgrmObVyFwUK+?! zrmSBMP>9L0!4$;SO=FkFjYLm+_5#drv&}sXa~|Ri+WB6;1(VwcVso}xp0oa_bk0*0 zAQx?dbAwI*&i6z1y+QYrq`eEQosj-tWIW~;?Q|nLep*Kpg*PRu#CFXz#rh@s5mMbT zMPCB3aA;EG7kBcC(NwCv4=|&k&e7EO>+hU4A@$6}f0w&JjOGs9=bb?HTq%c4<`e+1 z^Th*MzLPQvO7l@hL1Co)-%)2o?nD0wyNZtRj0oo27ZBg#AT2i)iYwV)s%J{ecenUe z&oqDOm&N-MHa#h*!#*Mj35Evo2Djxo)_qWqI>l9g7npKetxQ&n+OJrSpBO()qwx6p z+7Pvl)WwGl&wQ}q2`0mz0RWE{h~&WM5>QZDw77_g((Z6tD#5@QzT})Qq;HW=2@{bu z`skaPI-1oN^5;y1V3%y^9QX6a#(@}~B?G>)I4S5&?D$~LD7J+C3gAZy((7W_sZVzm z)Zxd{%I(c<6`FeTMSPn!8+873hXx&sel+>q_98}Ou%d-D0ES(bfr(+F`$;_);;m5Q zgNK*zWzxZ6>DPBk!0ipeEKm=po*jVXjJIq&=6WbO>i}{~mLd7~K9hRzNsJ856Zq-p z!gK_}5!6^c!8E8~lLUb`wYGjz`!e~X!UVnI!hZ;yKWr@=V9*cU;*&P@Cg4>7vs8Wt z+xcqUCj!tz!Y$|khD_hkK+Sr41YTH=7f$D`?hF)1TUXc^2~Py@sK?&rZ^0f0D2-?} zQ|~r_N8G=x#or;&CprRuN5;=xoex#4(h~b27$1K@u7FRwbp-cp#QaIaD3fn+?sH27 zkwS}Ru657$YA-!#Sq5=9g&Ty}Cr#XNyng5US*Th>iW{b}UYx&b;&Yh1v8t9FND;_iPn*Odj`0Ge;w195v8rD zU)!zr2r`)9`p6yx$qG(Lc_`v&5h8sXP^@uAN$MZTn~#ViuB9&R0LG7tl_Z33D40xf ztdb4y6^JIy_4_Hp{QNy6$3cBQ`-%nQ<>55u*aNFb(N!*hj{29PgJh3813la6v4v+T zf|oF@K#>6 zZ*6jpy79-Oppse~E?ihutb=Yvncii~;Nn@k>&DI9G14fNgfJHpu4XT;Gd%pj?U`}J z#r`*^DqE)4xgg}z21!b!V?oJTGgx>8X8%YNAzX3L@Z=$>qQHa}myKz~`i*8oE);*b zqHg?eJ4P0!YHf5(dZXNZ#M+y5Ixw7YtKH>e^=oVZ{+KLnPUMD;q25GU$af6dr&xEf ztYK6Y?~lhO?@ zC8Ch7(bzvDouz_A5wWRDYjvks{_iBUw&0Qruo1VYrM<)){0$%^=X~ml!Tzk+sAetM znCNq_?N(Sqm$7NZq;;uJ?i4|o*CA%~dGyP!uoI1kj2&OB+jxb3@UTQ^*NebI6=7Q_ zM(`z>EJ3Oi!cYsC!8tD3f>7>)k_S$(8!XwB$Buj?MUyIV*k z6{r{CBC0Aj_DO!DeA6ED$XN@YkyI*3*W{6=Xx3cjuA>XX_NXhVG}ih>Ga(vSNUTJO zv~H_|Nip}cLGVQl7ijIFluQaD>mz&vWZ;0$wwSyIT45pTbuy%X^-vr~q`O`fw)@0M zHq6}_^Ml?k*YGqmpSUbnk%if=ygt7)+RpKB&5K!L)A99wN%IFA@*Kmll(O`QYYu|R zweL(wA4-PmHeT4_Ga&B+MhJBmVC9RG+B`2uNexJQdIIU4{&<*ycZH;EsMDt1c;EI` z6~FD1WSSuQ{-<>}|2VgHsxsgF z^@X<|e5OvWU|&0nCX?4z!#wPqV-?O$eD9NnI=K(hi$F~ANMoNp-_mD^5B3=y8bP|# z@hQ8WY;ng+u%(cYRRu5Gu}pG6K&B<&1duD$EZcd(@5X@KP_dp8;VAIxvwOxQopw z0kw{)Njp$b;g)}= zUW!X=b%WMtP0u%H#M$j(^PW`SyhP_wS^OevZL)mZu!q{j03al!{2u^NN02j;>|4^2(uu0=C!2Dmwc`Ge#+{Oi zCq{^SGyk0IK=L+JHQ`Nb78BtGgZSg}7u11?`hum}w>5;{`8Yor!_T%!bL()j#bRVb z0n|dZck*s7iEX__&I#Gdd zQxCk2ds*`Mrf|zz0R&&9bek63F=l>G-xv6dx#j-%deTsIE~<6@L%kOf2&z^f6<^T6 z7e+!2rW1k6vA4B#jzcgE#Ck+ zZrIbQRUg^hjgT4sLe@P-$7>ODrw`+4TODw?;-4Z;j5s6h{ar2L+VKp zwf{(Gh`KwD7A3cYx0hp-xw{bn1^l}2lXkWJMk7O1F%TL$2?GVP;AVlwcN5fa>Zm;# zD$D2U_XTu%j(dB|jDry;3z?^#U)<$H5SI@pt-EL*mT^AJy#3I$GT}~9QAd0kiQXWA zgLbd5BPQ}As||VQa-rmd9>dgkTGuH%bgx6}hDR(^aBJj-=vOv{a5+(|97DPJ2{9Q+ zuXYmA|Ju=})5FYzVapI0aVuka7-+Fc;;m~j*@=8TW+y`Db0syr5lU?69DqXa3EcmI z4lQ1><;2c>x4pmE&da`iV#8tkGb#z!$}|sv(4)EUvp~oZeLkxE&-+_Xk1=C_P|ULV zPzSgS<RGD4=k)2sRO=CT05^8U=X0llcDjUs1$+!BP&HydI2OX9Vh2oK6r_v~k6hO5`Q|_VU%zM=Y<~a~ zzNfE$LShGEue;O!KK}#21PvH?mfAMobi{}O5YHkBs9Mhwjl)Qbj2DPYdD0zO(y}Be zR>@E^VX{r9#s2CnX(@!*b<8Sm$54#~6i`pbsy==@(&HfMQp6JdAAk@=S|G~wgW^%} z!sBg3LbX*(@7cJ86i2KiDOI_^Pk^A}&UZq-gI@`(Rk_RK zai~{B@&ju@s-S*1Qn@q;<;mONfO6Or%xuOyra(Tj8g*HxIz=6#4F2r8;5-K52oXr9 zvkKwP%b$MwzI(ix=?()Fdj7Kfn?K{_C4mT?rf{*T^PeJG!aus4AKO~ADIzL%xD_NN zn3ya25D9%}j8_pv4H&`kZC?{6E$$B3I60%Qx=e*9Dc1L zemEow$6xg@Y+_L;SylH&1RXV;TuMuiWPBjr>VhA#&^+@Wu$nT8a1BYImYZm&8#F0?Na%45|Ru z;*JpOMc>C2;{>}pDGN;pPv>)qu~6@Sg8-+?Y^LG0=~t0y=%-m7h28G;J4Kxsc%a1p zSMUO^F-c`5{$If#I5!c0?&b2MnZwbdd&2n=2%=q(9&R+=02=8atqCYEhGUeTDj8!R z&&-B{6ghP0S}{ai9U>tYdZBhMWD!3*in$en6&+(N0#ZaGC^o#WgMe_hz&RPmROk)C z>eShOOc5vsgxo5jbgsH?P5f$x7idC|1df^UH4|Cd4$4L0`161H$O4`24`K5m<=!?qs+2dnJ?h%+zssgW z143o7>A|m~v&3wGEz)co4?i05)O)^<)2MQXAamIT<=oCh&h4G{Er(j&7I#lXsWn!Z z^*}zWD2cZp*_*6~ei!2g>RZc!s|514fncJVeaH|Pll=x0?%R#37=LZhYP(pSr3Q_G@=7;P*a^^=4e^e@f zcwM}DVt(v3Ja>Z@oLH5(`Z;Leb6)4~`EiL_oWERVvY_m>tNI&~7E&@>(!`M>w$^j{!fyp1{mA5q`G=WaBZ6QTs!SEqfC(y6AnRh&5 zPv@kE-H4Icy_xqgV$Y*7kAGfx>9mf^vgMo5uV!k$M5FdDjW&SpjhG)+?2BdD$p(gb=P3wp zu-{cFPr4G)tAO71QviEDgXA@TdL)_@0yvLsogtf$Jrt0ORTBhS23V5=DI2@(YcuB< zc9OLJR1^ICr^ix54d!=5n6dh;Ynb0(4RrcIqu;MFyt2vIDbJJ6dX?j_P14tiHC7gIrga72ERmjIY z4qpo?EAV&?evM2M^#XpM#r@}gOUR;LMf{Qn&#J@DAah{DgXA}Rptn-wt z_E{e#^Zr+itbt3X5u?!c|3~zOJi*POlo~b&-0mXKa_egv#7;QLFaf|RJ_q6tG?URd zfC~%?2^68lA(zl~O}*pR!sY?tjmwX-og5s#2vdnQaCCweQqjZXFN;@V-wlUQB!H-N z1;{SUS6|bJ2I_ZMCw;tbW9ce1BGOQ>t}Hm>{Ca6;xPXcrLye`C&_%TfC<6$eB7fQO1Z*H2#8cx^+Cfu!lb3K z+uc0OHmB58^e)-cKwJ_VK?aqTGdj5tgyZKVN{lO^j57SYl{xG18*t&_W6II z{5g{m;cpEGKga-RvZNR7dfJ~;JvbKo6{Rs=?Ttg^7u!eV%^89h(}Gb}(^210)^XnI za2b!Bm^hF>B~2=)#JljEDL}yK41XvptaoCDW23AI>1fqQkgko~KE(C--Liss>_pRy zYX6{aLrKK^hY%>HS2~<4$FlhoyRQzw`JsNJJK(D;$HyIXt(+Lvc@wd3v!lM1UwDf6 zk=tyZIfsG$hdwXH927DjV1rMTpho zcKaqGR*8G#t@IyRNNE@=%kX(oaFNf^GB|>~m}aOQv#DFh9Kq==;+5sNYeS)HNo%zO z6O`4mcKxIobE9A4C;qnTjUo`kN!7dVUT?`ZTNhL_P27g$u8Sy6eKAD#5j~M0y1d+h z{vG+Fvx$eMRxN~a^P}Qgj@h}lLh7h@WY*m1l8Zgt^Y!Pf?p39FZ=S&@+eT_gftl=~NtGTi zHyifH_qdD^8n>ja@2x}*HLb#^;TXGI<_))%qt}Cz0v7tC|QcFdx2qnnv>&_09uoy$b_`nwbLh+h2W;_wb0; zwQ0j5Mm|o+0?=5q2s$|&=TE@A%n9Oeql{`MeP4lAE)BJCT20ftdxxl5u8tP#pQNzn1yqgmBIW9?ge2#w@ea3Z(a8i}`HXXE zyhFPb>Ez4>`-(W_o7qRpbH%@ZZu!e%s~P+G3CB@*G6Yr~G}_BS%xk-TK=qWhfa=Le ztbTXF;PZBu&Q3;FRp#j=iLoT{E@n+slvEZAXTbo&wwMG#@`e4?@-17ge>Qv2)N%XY zi9x}qcn6xe0IZK!DnyeAIVc!D$Sj;<-Yy&})zpT;l8JQ7l#AR5>JaWxfjYS8f)9CP z0>Cc_$v4;Pg)cGnB_aM8lL;q6Mp0G$*nITg>N91y@-8Y>Er;Qxbyp5tP5^UQpSM}h z=twe)c;pkj9P!MW2L@-I-@n9rQq4bq?xv&_uxX6u?rANe-nt?9@pYXL`1IeT~OFWBL)a`$fd!G->G*DfIek zH$@~XPE(9}#g56Eh*8k#0xmr9VE;u8tU6nD5yyP~G>Qu6PN$Xivf=ud-U(sy2gu2D zR%dmI-}1}z+lQR#(fVZvl>Jc5Q2gyQ8C4VV!^>heR^|4VuHG=l^~2Tw;J;ws+-1ZQ zAt>Q|96!kvzWSMF>cjTU&{KXh&=Fj!ly0b^LuT|#)D5@mZo*Y7(=8|o0qSuZbNDm< zjga8x^i{p+wU5M(nT(gK2GP2G2VYVaEKOY{Z9qdqGM`43;@!)ifSLu&nAkZ6xsizZ zu5I)7qa?CE&qmet28ITOeq0&(AWWd49>^z|pYyd~0aBWFA#LOiRu2|$hZyR{glgy6 z1U-+wwmtXJob?c_P=*1b%~f9LntbLOSRVXX4+G{@DJ$L}e@h(T$D#%%CB+*j?~U4WMmvf)eOqvBlxixP+A>A1WVe4*3|krQadP{0PA@rVe^IHIQrLE z@i0|o5jnIios+8BIU3<~bFHGbLfD9YDl64EHzrc4SJg<&xr*7_hQm{RE@r1jx2%P6 z2hx#zL8! zT{)6;Du0wmgt9Hja;(GRaRmsv(#KNYP;8xCXY>XBn1W~XFGH%EXzZUpU#+J`+MqZQ z`ZUg|j7%hZ-SqsT)*t8myDZ>w46n_fW*A~ZaT4D$J+K6Q-1eDnRo1lmBx1JBvE|!+0yhDN{PHVFB7h@O2I=x;BcT;Sz7c28TNCkr{BqK)T z)o5(@P8GJz$FE#lTk+c}N}sG{eV76?5p-uL`le|=4Z3%ikKD|VuW{Hlf9IYSJMH)R z`8q3>6{E0P`4izFjgt4GZx9#vl0y21b0;lFQWD*~7y2w{vbU}aF4a7L8{2j4N8@=~rnlFZ~m&`Q2X%GhDqA9Yc zcLjh-2tpuv@-NQydBfJD8RaE`8;g1<2m3WqkMNIkUtVRRI$9AY1@yj-pbHuPwHHgwQ+k7!W@oVZWtl+r$?W-)F2cXn%<>H{+dSgroRs&C_;iEngS;?^UtG%S}C9 zjtt)yK&b`w!P3fAgPN7kC*`7cW%M)CP&wovDR3hd0WS+V95uM6N924XtzZz?i$5-) zbtJmb@th}c4$f1O(GPq9k=`*x!}+*Lk#FnU-r?>qgF7z?*;KKOy-L;rtBEs+kG@@N zuO{8QKZytI^;yf{L1`k(dyCIG&Zqja8FN+RDo;aek34_M_kWLk^YfKdpyGKrWgG~?(;z1!~L;{UNGkR7}bJXcABFR(Q^WJee*)|k%J)pS<+tEB_bI&KQU^5+- zGvP}puUdvLL?(43^#+WPSR*A5U`IXUrdq`lHIEl+=3QzAvKLH*v3OyD^%ra4U-r8y zw$>8VHh!%}B+qb3`X7IrUt~_?fqB-+hsCb63JyeyMo=?b^4wi>dKJx%u;vI(g{+D&2>l9=g9w-(pUt$MJjS zyDEz6KY0B}1G&Hr3k~`r@5>Z>BGxV43`q`yDBNpRulN3pIjDw9(`}B@>~-Cr@sGzw zxC*{_9$n}g7TLDve2)9EpDOo#s~P848-uv|D(=WIA@%4*wychFr5yi;iBj&pRV zZs{Oqo97w;k2|YqTUf?ed0vVyV*ELsaORVl^;X>JC8pkPV{!)1bB8??`ta}B?>ybB zySFEPbT|Srt^ zc=Vx4bRD)??+y8*Jlr>NQldD@qzdZ?FxprCJ6)SX3x}ZVP&g2=vRKuMeM;yHUD5Z5 zZtC7Q*p>~irE2!&1y?Du+SF4XS$*QbmzwIikUwF+ia!Y}%!5e#=iMM8w5wicF&Q50H^)Oz$k#^mpN-V-a?^7`qtNL0~)9#K1 zw(7cz84QqK=WuZ7;7T9J?Mf{)TRf}}K#eaipuHngW6;6PM%66$i%8}}VSrl5_RYn@ z-d#C&+asd?ZI}BizdFBIXf^3zA}F4&*O9d;P8!96rP%KQysI9t7EVSpI$S!fc0tZZ zp{OXTY1-Q_xao^}%3Xu1_Ye1uI%#2tD#Hg~`Z+bq4=Un?oL*LEFoaa(z?24M{JAXb zEJ6nCoJ~kWI`yE~{j19qe(w-kQ`M}n*tU6kUQxvi$Ut*y@Z~vtQBzZ^+v@i4NA>^s zYW;k4$RB;l^S|Q6WK@)L#B6t(1w!>s`l_Mm*GLFel(1vL%8Kvx@PDK4flT*~?(}#| zN`=KP3nQSn$nfrmJoAHD1!cR{*Umt3VK@I|!_f&@UCl{tK6T9R1h-A$ZTNmgF|`>g z9U8cx`(^-=M-V4XZ(Q&7&-TsX^%1A+A53I5KGdA<=Pc!`tXu(e;;lq+ymM|@b@!>t z*!l~g=s(dUkrLX3Or?42HfErs7LY}fC>fC60p#&s*ww59i}A~h&yH)%>eX$`tOd6+ z>~Y3nX(~BBPKcjFDf|}tNJX`_lTx_YG%L{o9`H}s4cL+@+dU}O1z{H02v2NTyV?h~ zDoT%Lila9uU0iQjyQTbwnk&&`reAzB_cnQLUmYpXd0lxw>ph~w&O-qyJZPd zQC4k0RFbUCfJya4DgcGI`SAjx5EgKc{GBg+GVUEIs48D^CC4YO0GUa^(BJA(^32-h z!m%i5N4(tgzcT*ZR{wXkdo)F!;r+r8&!w*B>#^qAT z{N)2+90l2fWfZq%!rcR^-NQD-&@lo*dzQkTyy_|-tSB*hL(|)~dHE+W)#$`9(rqb2 z`SBK5KTxsgER^Nq(@qv(e6`(;P?_(nr=ROHx%?eD8`BEpBOdvD_@e#*0 zzJKa<#V7J%_Q4}-Y#`Tq@*%6;Lf;2!wi}I4iP?^AY+Paw#2AF-wZ$$k;Fap%sz0{3 z*!701e})J*fmM zoGszbHFWwz(_7oJ9XFBP!nS@p=$| z{jjB=-h5Fkd3&g@U=wq!QGA;`)q3+qv_%f^^@TEB<*A3Iodgt2>d=w1nY`7VV0bzq zVS)Vuk|;D@?$i!3+`Yy|3FXkbH+SeH6Z&q&+U|23qdqKXe7wIXKP^0?ch>T&VIW#De1Y!o+9gyW8Bxgu{p7T%SLtUofNU6B;aV?!tQ$fR4ns zOYaU|io7V{7Kf*v!+>=%CI1z}W8^V6$?WNOT362VT1Wewxdy5UaZokQ@|+Q&Qfww?;(>W_)3f>Yux`n+Ti76% zu7t~08-MdbEhoZBs)mdBRN2j&OTnC!;e|l2Ypig+$X=!qXJU-lJ|Ffuj`Ao-##1IYEg6=wSN1l&9OtGC6RWSvs!joOeqgB} z7=Vz3fZ7(!H%v3?U_0Xy5M2;DGovnpca93Vj$UUB2=YK18aOUv+3(>2HcT_qYBJM% zx7+_~ad7i7NZ@gV@Z(xg^|s6ZIH}q&YjP|P9yu(xgLPI4>r+nIH)N?`K`+V+A<=^+ zDBh}pvD(WQCki;zKc$mO+4K31E*~TJF`m+FwzeVXSz#C^Jla!m z`oXpfie#mVrmb8USCVa)Yvp*aQyVvB@vIzUa1m84#XD2S7CPYTmS(F2w zft9M%@x4@M>BImV8G(gyQo&}aTp;Kjk|O$_K;>8bP4;Qz;BSa8|L9IdDYEZ?YiP@# z4_zdqd1r4Y1u4U_HIGJ(xwn7##+pIRAO@h)KJz~R5n_W5zcK8{WU2c?GW1x1ExNvd zvA6&mDf}*Up=e8nfF5cR_$Cmd1YJG;(_#`c)T!%5P~c+WE+ao$?ED|08JkG{D>a6F=~NbD9BNy%urhnQr{K!0Po@%e4y{0h29mY(vve?P4!SxWbUz!hPaKvOY=JQeC_QDpSxyH@R{~ z&r26=o;zkAyDOMVWsFvQR7bQ*kjfH_KcLOi52gxbwq)wRS>-p)PcX5Nr`$-z3~WP zpey^VE9R?#`Qe>MTO14`SYZivt3AQlTuQv2YV$n4!wTFZ@A2tN@FWB6@TBfIL+EV+ zgvPQLTNTE4M`}~?e1t=xr8s5ceRnskl3A}_Y=Jg9fisKjlT7ocA^TqqU-h?<&N;2c zA>~DZ^w6YZAAfl;G=DIp4~VF}07AJ?CTxQmTyfChK$2r1&dbB{r4~^8tnYo~dsF)M z`*EH4`i1TsE_Jl&(pxHCm@oW%2Y8;?wx8TAzofXNz84Ax2w@D-y+PTDy+=^0y3OgH z07PT{+^3#<)KhN@HXqMm+&oKrJm2y!Tgbn-6x0vG4KU(z*Fz2BgWHi?;Q5x?&fS@o zbNwBb+7yUN&xxEM`;nq22x_^7^S=^8o11Sw{O}tZ-TTzV>9I{P6~3Q^W#4fe-~HDVSGG>jabq?v&M4)E$uKt|Ty|&jBg{SbZUpb&1kI?Q-kn zydIl}l>nbtTpjWkHatt}xy*Eyr_!^Rn_6C8Op`A@#OBg-LV7JJT>Ey zzWg;}c(OTSC#AX{Vh4Cn|4wA~^%5hsxjZo0P}m9^i6JkZwL`NuY4iX zDtC?xf4muDc9Dn``0ok5YZ=6o?ai1j*X)M_(`X!=+Yoq7&_3`z$dTC9k3M~W`}RUG zJmdBE{^Er8XQnaHd?Lbo!rco&#_%IdpEJpAftE=|Xft3Ck4kKTRRPJq=hq{Q=thg< z7B*lES+2O)>XYFeHduN{|4Poz;RSi?(k~2$-IWl}L{>Vvms-G85DyBasDz5Ou>$^> zYh1rY*|g|CMTWEb=;8nR&GeVU^ZtZC-+>*^`|v(0hG9AG!K9BDqBYOtLL9HvO1&Bv zc8q+R)Y_3w{;tIEkk|flBqeGwjJ9H!W28JZ%#roRP;@_d;a6dUtB`na_(E_K>Of4- zG{Mj@E+mCNN}A8p#l91Ac>bVRe~@t$TrhMf=}l-Xg&l?iJ1n^a zW}k*P>Ml`|(ian4gi5d^S%BE;^U{UIvlh>%BIO#@pFL*z$cY-ZlrhWex)Oy$a+Kn1YrkKN%g4_>GEaCpd?YC0YkDP7@*K$psp#FP-lgxZ(co(S?LrZN5^xWpZn}vb&W`3LzBU^8O$=_4weZ3 zXyj5tA5T?tIB3*^FBb+rMM4O}{-E)<97XU5@Or#6bP3vMAR)mWgZo5D)26%&l@AEs zc=V&^9iHBB!EDW28UE;BfPBL{U`R;#MmZpAxr& zPIgsX)Z);DMDMGDvCDY$WI_wU8dln78H{#m*~Lpbw;tXz z=bGO2l$+Ay-y~>h48;l&HR>3VPbz=T0~Ad!B*ER}u6mSRh5) zNPPi%7*NXG@bV)MB{O$9vL~rUiQc3e8d(OgsvL7SN)1^_h@Ykx>{4hW!kJMZ$WmM& zlZ>1x;j-#4j;O(6g^|X-*!evEtDn}1)^z3$+c)^9!wnMP99u*9@RdYu@ZkdlZSSL^ zQygSHwz-S=dm0eziB@K3(!vqHW1W5Q_!=AUnJ?v7tB^nPi~2kuq|sGgyHPQ8@yM(I z2~~@Mir%i!2C8^d`?)y4bD*__2|XyX7e2GArbXDMh$BWLG56N9^sh%;77oHo+!ja9 zOJjvZ0oICHPH_5d2#3x}URS9UGiKU|Sc)`+I zG|yzU877HsR4a+;d*_!7$AYpZcOIQe^gU zC-%JdnF3bhQ^N%GckiQ)@n6x{>~dtZ{gPp9H#3Rd0EW`4t{gb`@o!Zd9!;|C?si`v zfJW^oedG>b$bUb!KsC)kCE7r7@!MAr)Xj6ZjER^5rUxhaQj~>FvbC7w?q*K*E@m6X z3@h?&ErhmMia`LNK%IW_!)JkWWG$i!L1#kbFk$Mri8kiRSxTTM>UBX+dIbl1YT7p= zXJb3+G|V3VL1s+o*vhu6ZB9`$cT_V-2pCahJ*4)yhUYzX;GnYYGQ=4Yn$4{!Q^fftZzkokmHVIHHNgPJ7m=IDaq z<7UDW%3vCWs!f4*SOVxaU>ARCd@%Fd_LJUiYV4Tfpj)syZgm4?{+{`HhkD?izl1k^ z0MYwBzDv~c9p2n@p)C6|!eEG*SY0w#Ft*7q`_ciWM+s}=p>Q*KX4f);I|oBB788od zv_g0F)D*wlaA9HM#ddFoC`kKZJ)70`Gpwm>!JQ(j4UfcJu8R*i2dT=a&p@g&nq_|4 z=1j`@BL#!7Vd$|acoh4E1(Wf^fGHIbC1dN6WumHBc2S@LUZ%MR#yXGkN$b*6HeHp3 z|CxZFRr7otc#!A6O=&GWOmZ)U!39xe%S+he8G8mJ9F}uKyH|Y9dwvaORYcpCYC;}4 z8!d=RUJGS|0XvV8M;lC!@;oM(EqNih<+EFYgnN@??jZ=l#p#zAI~*8C=^UiVM+FVw zH(?u~P_$K`JAOh{-EyDQc}4~^(dx>#K{=LG+X`KHm(WZo`=-D1%gQ&iZxh4A{>^0M z3^*)=IKZI9;MWyjI=NH=tfE|UqAfzv&%}YRVF4jNW8|^{;c$GH{KHpa$e51Pr;H2e z@Y>G2M_ozqDH}!UUnaW)v*X8;X_kZ;eqW~i6@PUwW8#%%9@MUaIS47&K4;%!e#|IT zDD~xf6o?00kJ2-QF=KcfAy?Y3P@+LSir|WIcM~mxk!A2-ay{GdW9{Ar;ir0&1oCPu zZPKhV9D*AEDi&2fDT>>;b?mwA2xr845TS^4YtT|A6maoQb5`^$a_LT{!HM=p4SFFlEfX!;n_F+GXYfpfn+>=Qpywa^p|-L*e5aM z55;;DEJTUm4ty=L#G`*N28bTF7G?s>=zdOj1#u;+=3a*V>+fsAB^!-FJ_P!JQS5Ob zg|DfrHyl22NZ>&9e8^K#uqgp01#0S&>dps1e8ysD7Dz*HaXOOkoXQQSIV^QBTs9Z*t`VA@aXEKq9Vj8v>Gd&BL2wC}he{+R{}e$+;zI1wwW_ipAd{CN zQ8N;!F2k8=g3XahiGi)zOUVXP7;k|73A06M)n4Z0oi=a3I(0%c*)qas<&3`{OxX^q(F+X zo!Dz0X;p82^E2z2xr*|ES#!@?ZFQp55Jt)BneJL6F0tlErfaM z=!OFm#H7lww>@|8$%q~$<`t~ZF7U_F1zkHb3sX^#NWqDqDp2b6NU;Y&7>eRzfEG?- zXxO31>!{n~2GiemxLA_ zQs-S-6RzGDjVtpgjWM|0I2a3H{Dj|gk>fqFE77fCV>QY5 znX(`>l}OmY5lUNhSIpdThqcdgl^~#T?{7q>9VM8&ffgn-csd~G!?$pAM!p7i0f?Nw z$P(8oCmSnv8<6M`APZ-bt>joMDoP7_filD>4oQpdWF5UuO&v(@-8BISC&F14eAeKhLzCrFz^8>S!><$BLI5j=XT+}KUt zD|(Q?yrUB2JZj0xDGb&@qh+-HncTb;U%~?N@W;dRo3#*hVxD^;NQ79(1+H+Q&iju!Vtyco=Kk7bv}29AZD!GOiA(g5Uiwin_I0Lz#xd zVL=cBu$x1s_zs=dqu2_FVahk=wOwvc=eg_nz*=Uu88Xm9;4lcjPBSI2;C!6I|4g*q z;1EM(hzih=S^OET7Bl<938S9^-DpdAV>zna?*?yO-`fc>5P%LOZFkqdWUKCPoMTqf zmJwd4T`M>B)&9=;%PLVlR>*{Uh|f{qteD*Ud-C>0J*lgz8X%VbBUydWYC%j&Xa{@ZxSl>qnc$JH#rhXm; z{9y!woI&dJ-h;~s`%-cN7=?H5&;lizymFM)5E?0SOoT{{4M;itoFx z&oL$s32Ff&F;8T$-RC60RC&}9HR&7$doc7*6pn=G!Troba2z%8OtBQ~jLy$nV*_Ay zX+KnO^5ut;w@3bDRJ_XSB9OHJc%K*pamKU?G<3xxv0t~?a?VCIB-|Qf8fRL5l`dFQ z4OS93G~tU3Z)GyxC}a~RNuq*4#Dsx3Mp~wbcM7Rw`W9CGjK>3jAFw?wcU~ZFOkm`( z<3d%*bI?#Yd`~u@jS_n>CT*8XYU3yGgtrsV3lxT-<`ZB?M)mN~Cd*3Pg!Ai}>H*7AW~T7a zLj+rwCx6C>?28nmhw>ZDAkh9_YRCCfRM2@7E8{&a{s>tpU6uJOlLLr4ARL8)ddNeB242LJmYh1r9}Z-9eE##}I`3@+eT zK^sa9Q+4^ajcn+v0yG6s0%g%#_K z!ubt=n2!w}#0&|gRzF3kEesldeW9olNi0_qci?1$m_YSpS4wW9mV)$h4hpqFQXJ{* z2*`Y91S)rO7F(pKIT{F`;tBt>(D!jZ5%-?2C6* zHEyzJJne$yTYh@l=MPRJSQX73M?o9tpKl_;L`g!>192l<%b z4qPwgpCc%g4* zM*{qO&MWB5oitb2@nd3DPPp&a%_lV(#)s|I)H=;^J*wab1T@F}014rO8p?LN@N}n@ z&0CvyZHY}Qn$P^qOyjYuwI?~z&DWuPHk^sQ@4gX~Pl$cQP^aydLLa^eeL*@suBU1c zE7=d_Pkew0bG<|J_aK_e>-p>x2^0}(fTvZHh>?QS$p3o*2dq9U*w;(0{l=fxa6@rjN7 zuhFre=H^dXUo)BsI5-Ox9836skv*Oj4od8GZ`;^^Tz}hZ44v)rc|yYm9S; z>)SyA$aM2X=w`>7Z>S^GiAa;b-k+A&W4075m=@{$OKFm57l&cldu!fF2J8F4hQ|9f$G72?cyOQm~Z7 zR-Ti%^+iCzQbsas^uq>7S zhmd5<4_kL5OC8{#PrRJ+;pQkP7ADOVn@70r3UhBogAvs3th=R9$J6_|BXJ{&|CAfI z`VI&=t2(w7`(fBh{T8bo%5I7y0^@JeUcj;`~VH7Y6Gx%|TYUT9miaH9Z9~;%cEEiiLmK_ z-Xi9wA^9D54sc)gzFq+CRmeG^b;I1wMlQ^fv{sa&u_BSM29#r}xM%0~Lf*&WSDzyb z0KjOGs{KbP`v6PiZxQeBgbmM~ir!SMm10<7R;*`zHw=NXJ<5#?4=F0l>32PG_n%Q%f2p&<3%qFplJ!-@h-i%gDZNPXfu z@k?8=;N&%p!(`A3s4TYLQrAE6!*)Pn^NJ`pn&v1rmck`~g6>9bMLVJPVZ-(a{g5{G zjo6=DkuP9geF)3zxFosJCF#&1QK4jSQ5R;_?traU$ERn|9t*-On%QY*D?9e^aVeM} z1a~NZGjUOe1w?z%x~%&fl5R>&x7AeD`#HhomxTeozbrDvhF5;>bcb75WuRilIO{h! zI~^m2@Sx@Z=DV}U7>+&W@6l37lN* zVe*+tKAu<8Ju)C;P)L zu;qXUM#B&j&KZ*hr5d*8KtMD4gjvTO?neO^lMS+H1(rx|djlqx$F_=}2tUh#6+L1P zvu)|4c%vN{M*$6}cq1%aAT6CV_qyJui0?b0^#3zH7e;}UD;ebSWz1}JfA_zbR6ZIY z#V@PX?Cm^+7I&D5+rzCKyl2+KIwj=DAI8e_>We2<4&A|rCHNSA@N*i!F=v6)He@9N z;Q~{xWm>kl{7nJ~vDePIYT{p(OH90l`a*m4922i^!as!A?T8BKG4UK0K4-5jhlZBU zjgCE@3v*8m65e+ACLBL!8oWDK!{8@xjZn&t`5jo2mi!eklGNEm1 z*5ahK$55c?-WpnJKC%67Hyc%rHbwN5sK2!$H>RmJM1O&rt_ zb8Mb3pic?)I+)Nyoa!EwcbXAHDNtjBs;3uO_C?H%x%8(^5m8Wt!C?1Ki0YB|MtO#) z=VQ!nOyC)rVFo}zAciO+;Jqm>5rI$3cz!!PB$I5#C#Q}#bUi0GE2ucmxeMjq5Z2=} zj%*BA3~fXj!H!)O_i2yvp0kT2YAf|TP*5l1Ykn>MhgDTT|5mQ!!bd~%J5|UMDM>+V zpIHRlJ&d@Oqk7-`lSwpS^lmZ@o52)W7y*UZ5ym~U)#%6BA0=N^@0>LcT4OfNPX=tz zJ4!IOukh{DX~4g7GY~;4c&Fm)@|H58rf%;0 z+ZTtA7r|i7&%Urf;H%SW4D=Z~^7Y6cNCz923wur)P0xjWnI&3MFRer}1;aoohZgiF zf9r=axezQ(LY~3o>S$goB+ckqI#ihTdRmc=T9W18K9B?&va}y0efWF<+4&h#G1~r4v`Ggns)WR->St?`(?1}_77)aLC&jF>9P zll4;AH$x102@Zo(OA}N$I2=6&x3Bw9^xk5hfS>#TkM4Qd3S52*{DmR}+hEL(aJ!@} zNq!@tDm}VI*!t$5FR|`(3YPBvGT1_w_ z-&#ihT*J#W1c!c@-cSS>emK7!#lNDwNuQ^zy_Io~@zH>63EB{^0hjt>D9h}$T9GFJ zG2BE@q}~x5F{WVh{h`{19CS=Rx%0=#)TrfnsjUyQ5HFqVK(UtbZ`&L zz`c?uB`b%)^N1^CYNT~_B=f$siA@F1MJl%(w6vkRpb0sRki6Y)h{^=qf=5lWo3GBc z^ze{S*Oj;)J!^PAgrcuJ!u-2GcL(%{RyunZJVC|;;5qW#^zx|%^cA(Yz&{M?;j*nO zEf#i_@Amh?T=HTqn%seZ!V<*6&EHL6GVouGdboURu8tVr+6S4_UVNFfj&cpQIX~XD z9=slDmhq`%IGC@_f;zJYx1P-G1Dpyl#NG4W~ng4dK-ns4mSVLzg@QQgMhOicSzt4mkyrg&o{ew8`{^BWEE~vx!!Ps2s zeaAiDhL)mX8b&*mNnr#j*L%AC_CQ(Ya*Ge^1ZtVH%65EXO~A-E8=|g|6S2|(-$sOT z6yps{`>R|7_KVCw#;W>apVZYe@oq{hCs!BDD774(oU`zmzNKbW149PWskTGm%A|t} zY>$E;tLfM&c9I>{IH zjHKuDR;eRaj$mMhP*V91#kk}L@GAT7yi4&q|s?zWbK{2bf0jTRzF6{QhA!_ z!|T_D-Z*o0b;PwIo7g2b9f|Ks0F|z#nzYZ@pZRsj%B7vN0t{lJ!wN?z1D{t@KQB^X z_Bdg0?%@5Wsc$+-U`@9zu8)W`U%-(*l*-@N^JB25rVr`E4M^Kdzlk(cN2*KV64Xy4 z_}=JlSvc1{o6M_Z}a~Ed9MgLhrN)P ze{L6s6}K$!hA}EDmTig~0y+$LtGj+?gZ~BR2+YniMBk%Bp&~A>g&9|fs${!{OTubi#>}Y6pUD#gG z{+&Jjdx7|aT5No~yiQ(1h$X)|iqV3`Mu(Lz?b)8CuK+tr)DMG#c8kU@9CGmF9vh&b zw6|~s-FbfEMT(mRmdRF+PiyB2_?fqXiZcIpxPe-E?#~ZDEExGULQKDfJwj(Sa`(19 z44B=fHm=i%i!_kuJ#(?n06qu9^QPKvILzwaX59ZAd_CNFKe-Qr0@|&C;7`X5suXsa z%fuUSy0R7mpS>g7!%hN&jH6k30!gwZ2D?96OD=jJjO&T%duyfpzs^baeF#*c{`)aLC7xNFNuUrQbCN! zF+!x-;Ey8)ow5!5BqsA$0&z)G&KHkf;Xdp)v%x=x|9M(Fzz;hA@^xa*l8nzG(=egN z4%b9hzm19d!ChrN5_7@$d|ozTBi`*UvVp*smbd0zONCx_srVyaB_A7VeSs|2=@syY zU6}nIT#___qCg|A-zoB=e93TcPvZ3RGl`AqCLVhf;ZgQE+v)qC-2%k%IUs}~Xw*rJ{@XY-a9)!hd97z*~YDBG4&(TqP zM#+LRxxum#`S*23Unt~mN;)_qlvf)~Kck1N9F1eCxrmOQ0dNmpGv*SkTnSKIN$A%M zBa??=$ZqirLI*6^lj9l*f?Tko(QvZ1utpeG^>)lvwn|iN7!}W36+BZz{78kx-CxUH z9nSmby^E)=T?p`4b&F*g*5rxEjAiB=t7Ja!x8ST=CQ7a>*$@sTYP4x7_92ZWiQaI5 zq(IF-20dWXuNz^FaJg*BQ6N%nD#vX{vp1}3t{I%%q=t2s9xQr%|GrjBE5psa+ zOC4dayA_4Y)!ymY*z*4QI7Tb!K^xfA+u>rurpoA zHtkRuIg1hYyd4so$$R!={6?4f0}R>Ag|kQ5-Mw@G#kZIRK-mbQAfn8sylmM8hj|vT zeG7P{JHyb7pN(M9vdovX22O=^qS)|#=S5uUl9A)*rdNIAhH^qaFxz-QEScm&xMGuVuJZA@m?;aTvyy>7n%Z@=r+_^9 zrsU`ZB%V3Bm(||gSPg?kINg~<`mhtYmHaj(dp%1yaQCeIm2Pl=QVPeQ7GLjMb%y_0 z4Mjab#*ZFNOk#CoLg|OK$+Q8>L}GPl^)8KWzM2H(F-4(t_G;?<)11h)zO|HT1BS%JByMUEnioMsFO-}>-3{L`0H?5-&h6szmjfQ1>>_ykJ3o$ zlUn@T1tD8~k^&^A`YpMFD&J%)6pS&s`vL*p%$lZNNJ_CgX#v9k&LW3NU4*2i5$6wb zNV*W@gpZ^Bh?a#vys&5j+WcNxqF0A;j91u`H`XJG+($#-A~1xh?*R)$U?}X#hiruP zgB(Ool2J>M@CI|&UUB+^Ct}^F#j|$T2dwqaTaa5mY&{d(X3I$55Z3l4@=I&OaGkWI^W=RY2Wh!#1oSK|7_k)qfnuBr}{OE+C@a}|;9s8+OjY3wj zVY-67QBFZaS9f}a0BjF{Pm2X}`xZQE1N{M4hjw$^fz)q~o7*SWx4!?>PY;;|)~`1? zff;H)qT##5$0^Uq9 z-VI-9wEh%pP8p+iKxC8dV=5F^I+)w$u4IK0_YSmNKd23wnny?jCDy- z+MA+@Sx){i=@FS$C^H3d>zOb7>_uo(xqC(RKTANI!RW&^BMqGBMz7?pf!6UPcJ6^6 zU?C0*;Sa(kNZF!pIU+_?%L0F!#*S1lXDlt4QcRF^_h>^qG`uMXP zyg(bGo;t*?{!#sll-nc5Lomq3w!NC`AwN(sn{7NWwK%-k1gQ33~VXXCV)?a%iz+|TbyCyPw;#*#wvljVP+(;ULe?bkPg{#muS zZmUU|ZnGrBuArb2-$zNseE!9I2xpuO+n)H!K5R2WORLu?UqBOQ+~fBKey5Sg`iiNs zGst^HX?{yjkNNSlQRBCanPGva%ZUS_eP|xJ%t`L@nRdSL#}yktdb@Yn*3Smmy zF_1k$!cc_ABh3YU0y3>c@=opgV^EC$O!7BIJ`N!oRfQa*T&kh+RpuOq0x}YqEka6f zIf4mp3(CMFE&g%yl?YTG6EcwXlH;qf;Ucl0A4hEY1eoEu;v(}j3OoUVP>Ayse+4S% zifB7MUZ=qoCpf%1vL3pA*dMOBK_zMz32$_?6VsnRIMfv$!6awbG`A)Yl0fz6Y^2+f za;qb3*K`&K>PcM|O3QR0{d5+CyTB{-y}&~N(;WWa7|Z`3Yi9x$RlWazKoE=+iK`eX zgWAP@VWP6R!H7%TZW7c*2Te8?HW4I6K$bzo(2S_e6i7fR^op{GqQW4ui0g=iBOnSY zI?BEb`@qcq{XJ)x84ygn|L5s>#;?ap$C-0J%lrL$@0_i-a7~C67S64yNx}#23qB>k z|0}1;yg$Y?1Mo&Vz-I`cIwRq3!3S85#^HrF>Byr#)}<%`6nS{Dd^-{t9snZtg;$$6PN+hn@8BAAX<8 z43{o1z;ICYg6t-#8mO{D=>ey1U}hh~vndP&LD&qVX{8ok>P zAsl;gp>PkPv;kLVyJVE$FYL6rV-<<60U+X4JB$STjJPH6<(8n8aN#$i*@>>TiflX4 z=geTF$N`t+SIbfpt-RW8cxoPb2BR5*ZC;BT-BD5cG~}v{QA!To??`G#dJRLna9$wu zNKD#BJ|S6ew1RV*FW8rzn{HFQl8+$QvL4l@J*N1+YO`e3l$?=3x+4k$19enHmL99#yje$}-5H2Gd4 zG%18sIj>pv;F1^qQ1~#TH+lqNoP_s8+byb{C*LLIr&1f|Wl*gkG{eZ`F(HIHasl^{ zual(3=^!RhQag!>G6|A7F5@?Yo6OUztb|Alw?W|6Nktz^=0Y(-Ux?v!WM|GRS~cpq zMUC!0(5MZn?{A3ahL1b=#i_cK$`-p_zfS#nx;8~CMGFM^6`gQ~;vC?yP14Fd4RL4# zPSIq2gdc&(DQZi(5oi(s0{!nKj7DxEJEWJF%>q$dqfR2(Kf{`%4DA=*g*|Ox6m`cS zuGqL;%gD*H$KpAbN}T)xZD-L>JhagI{IF^X0l`MtQ-;J(N8pp5xNvN6_ zW7Y+7lYg98h6NLno;8@z57aZ@?0VsCvlPOsJD;mcpt`Ka#u0KZx z+aa0RZ`Sx!u;0gDc`>b)o!Oq&ITfMKfzanra;oiIeSQ_6y%y@@Z@Gt7SgR#0Gm*l^i?e5*dv5SBf z(K!YXK(q0(alH@t0m}qSA_L=>b4v8Q-F`HaM3c6Um=PX3`)+WmYCgqwWv^0h{Q6W%w6yUkV| zi+|pnzP!HQO+a9Tu2&9>V*4AW3Xl#k2Dim{{~FYC<5Dh`KCg014Ar<)=FGtT1HIz~ z;J5c>)6T|6lz?~FWhjHn>+Aal9GslU^oEEAC2f0Ea>h*z=p)-wBE->*st0aeU4I*g z3%c7uD_fHnI@4{_mF@Iipao~6e8n?66lT*%aRy9Y_G}@xWml>8xrt0GsC4ZM;A`M8 zdEzH|Csn7T*>TA7Z&{=}umM>#8qyZMdP&>Ud@(U^A6)ub#NFwW zqJENSCuKnNma%Y$aZ+1-3^;&l$RFxe+Oxk?5G}|0_s{m3{n$T|ROGT9U!JRq*eZRO z=#7ue^V7HWiX`2GDB!#`PEj@=dgG(fQK8zm_39chz*}bae^|u+7Jo!LJrPhSos`^- zGW-ybgx9ddl;R{iivC7jp{!NWn5%Q{1sj~#J@+0et6tnO$bc5pwWm-Q;I8tjx?qS= zSvK90j8;->ZBX-)GMBBCf*=bjpqG_Z$m>k+1jgOzYYlw9sWm3~e0K&x**Q1_;p3i> z`rik8e^}O7i6$e|W@Ef!%h-Xx)%E}_u*rh8c3jfQh|=a>M)AGq+I1}p?)exL3WWaL zuwZpj9xQT~-MWC34tQ6QGgiT3i~>V33@A6%E6y46D8z{DWkARsO z`|=hi{{Vs8s*xa(v5V0GNnJlM0!ff5ZPeXH+7bCF?Yoqto=Xr8oy)GR7$edGt&Mav zjKoAUvWg}2w$SP_#)Wg&qz72^;OH~E*%dV=$QE~#jRXJKT)nRyUc_SuA|QX28hlU< zqt}sH+o5%%1Wr&sq3(^sDuf0FoGNpceOu$WnWcf;AQt#+k2Hc2Ws3HPMYP<^aKVW_ zxcK}q*zh+IA$2N}KOhVHg+?72SSNG7tP>Weo{68?A5?UAQss#VD*R{HXOBe^gDl#e zaibrIxroH$-63jr(!V;dtmO0QT$6Kj+3(b%q*=h?_jFWSGBaFs)Ao9$T1 ztwN-)w(C)+T^`Mu0>?5du~WTLEopA3$0n^QCyaM6{xSTnA|oQ^0QDUSGFw3&6meNL zQED*NK`(Oy0j-Y@x?rm--CB{q5l_mzMEP|jYZ>$|F9-9BB!9VT6yojr$qlvpGJMOu z)FZky{@t`2a}*0Wpaz#dL>?#G?MT^gGy#u*Az=DRK6e%nb0}J7k~Q3_P`AwJ7=Vn2 z5pN{b@M5|$z@KWibUup1$5Sq?;95NQU;Y>_&!VLZ=;){rh==H&hi-sU5i*5^Pm$Bn zW7;p=F^d@P_L1*?JWhK>wj~t_HiGPU6DkxJ^Hl-2`=^h z6}$4#7Xi1*)>#B-V5%e$DugoZAkPzaUK(K#S3iT_h2M)6OyVd3AT4tjH|@KGPHpIR zN7BO$>Fz>?=lBqwwFTxzDW~1*8{x}B@TE&{dU(qU5m}yaK$D3?GzfO)SpN`rQxN9O z7)3X|a><3Yd#e-G_}7auz7m*l0;kHN*Sp zel$t64nr)35anGk+fb4jgc0vq;z!2bM?}PJ536^G4#02&#<6tia|KJ@RDKSW&wVJ@ zn6X{aTv0@Cn#X+H9*fwRKlf%Lv||!k0Ru`YBkzoYc%z*@SheXE_DBSAVwkuAiL7Aj zbbauFVIbokrq-byNOkIWA6RPNkK9H#F+ddf6!i$0q9rBbXd`j$kOS&fY7ulN&}jK3 zJiyWxrX90*EQGoi`^BM|Wb}<3iyuNe*q8g;hB;WpBD`nVDi%%^NK^4FX@DrWF2n1v z>-Ad~OO=8?H$->yJSZm^!`ws7P3^glF0*njAeo~Vb6$f-58R2iOYU2l#%mVgCOD@; z+qld{rFvgm5{OXkD*V6+RR1%2n=^9%6Q%n&IeJ`;LCWbI63L|u`SL`Y;=DuEAG_D> zZO^#|#9NI4$Ny%_w9!h{ma%;QAEFK?-B--2K!H{%sH;>EupSqteUyM}Ft4~b< zQQpSu;lTPGojme`c8$L|{S zc`n)Zn0_j^`oY0oQwF#u`1<=AHXP4xExpTypE1f#Zs1umdpkAU_8kzz`sUl40Pp+@ zC-gyt-a-zwOmwI6o6#L!0#;AdE4L*a zzlb*n@f8GtN1J_U=MV4QF~Gmc0k0)-ACg)Rtq+!JP{ow4hZ`LFydPtX+vjix&Lf91 z4x5SMRB7f}6r2+j)WFkp$dy9pDf8%NvJf)%zjr_R^LAK0exkF* zl`nAq6rU1NYMPG`foe6-CBg+j-|*b62&u-V^9-3_4t+kGQG5fy>5HS$ekXb#bE+b= z0NZw2*CvM!kb$GGv*mGb@<{3H*3&jIFRYpqH)f^3&i6S8ItpE~^pSvZVfS^_%U&8C z^Huxa?-TMZF84;KUEbKxa)dsF`vkjVD>SBNUT1d^is0IwvH|1D)36o0xAsFbiw?+% za1I9B8_9u;QDow`fHWyaAD|U^OAz{Dwn5H!XG8MaEL7GeUDxhvh%yd&H_!;L z#M)Nc2FZinZnS=U?*5@&TmB7E*k=|b;4zqlje%5SMEK9AS7CtHAv`1j`P}U>T*Ut4 zg-w&bJCV9UPcELr6_>~4^&wplA`A3E0JK&!GIun#F+?SrqS@^}wbo`08dc`dhZD)h zkbH0Hf$&kGVuu!P4DnY_)x*=A7IO?C90_^4-MPl~!s0Z)7bZ2JDj`eqSx;Geum@6= z2ss}$WZg3^m3v^Tw6v~y2*t%5B5PrjM=31fn>*j z#hOS!AMu6j)>*BactHE(0+kHZZ*s+)5=_in0p*8KYyFi^Qk^H4CW%SCCt&smqu$Fk zYY_4n{+#I6=(_G1bM|*GPonjDl3vtAf^8TSq)}TNf~S}({ren8^}FF4p4rXw1x)}S z&gWGM0Cb&Z18;whAg(=5e{=5s!gX7wo-z4hP3$!T>y3xV=*<2(F3=%9)B*?!F5j<+ zQ9k|M)CwK+C26lOedR}DviVp+W5p(9PN!BW>HQjmPaPtp5SqJW#h8R)%@2yj#mfxu zV2OVY8YDI9z#Fkfe4<@z?teTO7!QY+36@OJj5%owsK;g3zHH7@a)4Z-9_tjj1Ks(Q zAbD2#%1zuo=8!RrG5F1Fddh+YGX!d{M;r`a`V4kHgviufp+9G#g>mmr*kU{mxzvm8 zcjeWv>=0VBxYG~IZQ$s5O?}z9S-L*>z1{(>8vV`FIX>yn>$7T|=n-=Z zx;?sT=tg}7{YVYnquGZH{s=3g28|s4v5gT-C@%K&X?v;F*lI^blJ(4B<1@U+r5avr zFR6tOdP)q*hYrr^xha%JP4-^jU@nr4pzu|9`xYh)93#>f*}sRa5j7YnavFfTQ8p!@ zMh1;l-RCUAH!y+l5$=Edgu$wH#7s^z)D&qR(Lk;ZQDG0#cZP#`B=xe?zk}jg%&L7y z5R0Ut+^;sWVpnDQixQ^>%&Ofrt_NbbCC&-aQ)bl`tr+ukhGLth0!&50E0!)q8!uFw zkW1S5j8m7l+xT-lyVkxG|1)y(?-EPVpz&x3vVB;q})OpaGaYLz)g61&ky0ys{1CaUiWv!H?Quuypfwb+S=sdfG8*=(ieg#1AAaA5rLVtI$Y>*a{s<#$7UM2I!H!5`RS zeoDpdJbUaxmI(GB`=#GREM2IiCo`bRx*%n_3kWqGZUHiqS*=i==n9TKgc#@PW~^Nd$2KX~clU=360k9ZLXkGT zMygGur?--sKUN)N>4R@D-2urqK=9)cWvUvr-G!j5jZ?d>+&9VKBC7JtgczQPiZ~`L zNg)aSB6-Ku0W%VO>m*;z(-!zqp&&VX81CHsLT7{)z2cJlleMzDi-Y`JO**Kz7;fV`u)G-vsaU14Jk( z`zT#->GGyOS6B$8&k#3YGNWWD-ajAWa*#!Kz!)%Qy%y1J{CCzv2C;8RNMY-v_ z11gqMk(!K>eFp>>CpP3OWF;mX1?NnsL{kW;0l!33eB;|RKT6y-LK8EndwYXRTKe%H z++<$Q`LbP0CvioA&(k}W!M~MYdX)_C7||~o`~RY|_~!U&bbk{FM~Cdf_Qltk-Z5YH zySM$J0xgg;Ry1E6i<$_(34}`6heZq^rt`ZeBM9GQ!0Vx`10o|tsfw^4)%_hJ7<8&3 z(ZgHzwKeLOm#JDEtZ{Px*}>kbI2vFwfRIr&Vrtn7=~j$u!yN3%W20BCyvPJmA9564 zB(>_nC<_v1yxp?s9^9kp?a$~rgvSku?5&zpf!?)5(LBt}dgES~dI2qLJJab0jXoK1 zmblb+RfNdYousFiJe}{_6z^&_nZiDPpLy}W#(@^WsjYcbn`7IaO=3x<`8dF(z0o1? zC~{*1458xWfXc?_Zpqb2tLjhcYBe0-Oj!D;^RYLPy`cemHooSYu`QRz_&?m8)4bHY zn|Wb(Nz-Ff#Xh~Vb?yhbFrJ**^mqY()O8Ql3CVXha{Ul=wS@RK2tRm?Q01oOf~U;V zQ&dT}c&U%)7^}P2jL_3`#SG*ov&njg+UQCTn@T(8-R}FKJ@7x4 z7M}^NmqE{nikr;vT2j#$bD6<02qrXgTDA!=A`H!p*qwYI5xn{3aR}Z)-hxhc^5OE{ z%o`*rm|NyCkkrM+llvQKlQYTzCSDMwh_)S5PP9Ltk(-dJnk+ewZPSs-b$~+_58$Is zAh;$FOdsY1(OMl=07O93+#b5WmkD~sMGKmyk2?a$5Ny8et$}doNFQEt2G@w+%U9VF4WT8H9LXJy_Jk zyLHD{bgZXM!U!5-mmS5`GsNOE{6L~U8KQz_;~ut7Xilj`IJ*b-987eoZr7t3%bWW} z+VumE+Gn7;Szm)9^hJFab}A)bYh+$PAS`-R#~n|`^o87*f2AC@McPV*#n4Di&Pd`n zSruCm@(_|Y0#fM91>=pi4u&d79pS0m-#Ytps!y8HDgPMW;@kB{`F>vvIQ)l0TuSK9 zxQjctvvIwfzK$4r@|4s|4{115yK;9z#0&Sz;iDRVV!Hz9 z*b3N$2F2gQKf*(vlCLf|k@UNOUX3I{_~H>&1QU%&<_XBC`SrZKlWK z8QH*7iZ_Y;jg|}V7P^I(P#WW{@zE_L^_SF-Z{7Bc+!3+v<4=e#Zx-qDS{+ZJePzb> zX}k=Ak-G=>9^}-{L8c%vhHmN4i51To1m2uvqNYgd+Zhnu)?&iezN5~AT;=hROUv}8 zPN%5+LpDG1JrBt#qonpj96;|wi$t1EnnfOBwxa(?bUj3PPhAtrlKXq^VLfOgdZ;DN zQ5HAnGll6kqDCBSyS(ho<0fgiHZ8Bj70jFZy5pQzz93?4U^g~xQJc)8l}vxL?Kw>u z@;F_(L`0Cz-2GKf6z;rp?AagGup*iw3v>#fjCX1MHoa%Leem?t78CC?)O=D3rj$0n z>)t)qIB3sy^J}4LJJZE0dg8AjIvkdcekvsl`Zfe4KN)}fP4sO;TOZOaE#JOm7QTJ; zjnk$;776bj5ozCPb4uYP)wg`qmvhr1wLLn8V_4s!-j`D#LUBbMCea7TFK2*3T@B~T zLr)XnHi?pu5(>Uemm?eX@L(`}3w)tbB4HaTrZ z%LD&PMA4gT+FrNq`A9r{zItQ#{=@}WVwLg78k9~FW;(=7@Q2N&jbrUOHGMr;ysfMWr2OR!m)U`Egfz<(qiCvr<~MfC9Ug$kC4 z2;1q5Ah4lD=&e5h^bodOITks%fW4|taLJJn1_^kEg!@g&>T)el{bPf{)G%7R)k~NZsLr3Ef z{hBl<=QRg?3MpV^bdnVV%yc{3(f9mJ0UX@BKOmkB;ZwNcbXlb(hdQ=D51HEQWThXS z1W3q@q?gZ1JGKk`D+3+JIwd`1H};4BaE98Moy}X2ephKlw%*Uh<_W%uq zUj^ND^0i3Fvn}3dH}CkQcikxf+{+}7?2jIJgNk-M%J$(L1b`eGU+{eSHb`z6_vW4P zC;lUl>0bsbvc%4w!i*!fD`%wm4v=xEez_85PD$Zyl@((|3B62bT5u zEJE=8(`3TK6<|L!80=?1s&h$ph2q0VnjJF62i6U~$s8}DdaES3{Zwv*wr>)G<@4^T zoX1l-1PXE6$>sM{5InVYVCmOv>L9tYX5uGEhYA=-pK0yY0pjdVB6SCpI%uINO(ZdR z?WA<>!^gVK(5*oFLctA27?%^x8!*8q)%~q6p3+~No7AbBVey-5;eq2ooojA*PUj7S z$bM|n4|Y^s@1_|UXEp6B)lPdwtTA2D>ihGivceYYg_pY`^OX_6OsE6j_sjy|i{xOw zUAsefMe_)@VB&;sBkfO1th!HkrHR4bztLgtI~jTk!jspir!Y(+h$q5#u=I{jx;|^= zH`Ku@;_E$a_+=$lo#Vbu>xFvc3DMkeLm=S1)9jk4dTPE47Y*WjBg z%bk{pl&OU#jGB$Ln%e`4)>qG?PzK~MWHAeViijgn`R$VjrYu!G5&Orr2^x1+1C(Z7!Z|&pvi3eqs&le`tEz zu}E49Jof(q*dJKT(*j!=X}EiTU>U`M(b>3tVb0V$Aa+x3)jU=vhFjiv6ynA~j4L6I z+`N>^tQ=Ea27;(NMBnZG!Iol03^BXN4#V#Vqg}ym2b&UfpXvKlr-I>M?JPP}g zs*6%NeZzdIr~Umz5-R+lFDwfrdQ|yX!VwK(ONtm?3%7&wPTb1et9vV7o=yyhY6JvG>R zWFDWQuCci$VXkBzS_krExG-Xk!tTk6t>_$9hOw2;F*VmQ)Xr!m9#L&wHKs>jv0qC; zG!7RYGAewNOoO%K-1dnat$w7G9ia9N}yl#A}JMlt|YPgpy55J{aeqbwPm%)}>?)JaC##2i40?*&Id14N){l;Whoump(D zT5zP_Y}+GIbq{h41|CFaLjCv%1xkylA`rV+&Es(w0U>n00>?SbafYD?c0^=$bmGyP z#}k+Lg>mRdrYLv7|GebTlg@UIc}lL%@xb&}F%}#i zo0YE;kH-k1l{Cex?#%pi_hZ&=Sp`AU52OtCSYxx>j{I{`ekZ%+I-w08%OXM8#D8ppa{OWAqd zR*myJ$)wW%T2s8D(DfPUNfas}?x#0Bxcx5i?*af2&1zgfMz)r&)`~TgarqENiND6s|85DQ3(<}Rk%V!qb_?zv2! zV+*<4xQ&~oB(}s~O=V6R`U37E*elrQ@W)t z9oV(L*V2ARzNw|VU0j$*b-QG(;&A1^MAd*WQrv63_e=g$6zfjr(XFoWM_L*{T2Z3lWE2F*7Zx%`zq?9y#w0lh8KJCe0pVd_b}2_r0f9I5ta$q36H zV)Yr;{$$MnB{Xzrky8|TkT6$H3H4fn?TQ27B()@WyWwJ4=R=RaX5#^WonYv`@tY^M zLI8hop?ZJk3mrmUEVF+}uSL>`^end;Md46qAwY2?U}ys5C@&0lD3zk@-57hu4uN{n_F}+%33T3KD@qQ zC0_&iW_=+IZV*RZ*W4b6lBy;J+rwer0a=&x+AATXXeEtLCx9^+^Lxksd1I%S9@69~ z!42j{_jB$TFB3#fhN{{#m_g%VvgJCf{H?}1jL$%oG z^)aq}2!{BaMx^fFCu*Aqg~CiB0Es71^KU9-tvccfk6;?M3+-Ct9ZbqtrX?mps(l8B zGyumC#Lwt=v1Gmvy8_r>sD<6&ddC_77P8?7$_XN`Y$MwOSa-p%jKuNsP+_vkQYtyz!OGhwWk0lbO7QTQMUiA zJYiFhVm{P#*o;up%U8o^JiM_V(&gh2AotRo@YO*$R_n8ua~Z`Dx?h zJ=r)(Uy|ZqLZDHY2$~v1K)3F5kV>=GeQCi z1~ZUSSzO@p5G=tFvj7OGZwPU4@JS(;h{nh~5)gHMgMA>J=45*zIo$mML?T{Qxbqy$ zocuXFab>HM%O5ITP74f8d-FrSg@6rnT>jvT+`Fjkp(f`47#-^YJAlA$Y>8*ZJ^gCb z(v#z~-%%TrM9=1sH>XDp?WA_pAwE?|;tt3geT34@-s6O$fLmRT)p$t=Rll%z!QG4n z6G^CV0)N{T@d|mjvV72z4ZuO!VicO)Sd$9*ps+Gc(a5C6fy>TqEWaD0s+KN-KzRK& z8}T&x%?9TE5;&ZaA#t}83McezGNqeT_9ij@6i^s??0>qjIx6k=d;(+-C~e>qgX<4l zF?1pud+ulSZ?PAdK!kihCu$46q%8~Z4K+y>M188ik!4)w93FVqSgVcW-mTup*&UiT zz1l5;+Wb6w`^}Gt`Y-4?x?M#5!eJsZ^J{a1tg+{-l;$mg)NF#Djq1c%1bA&ev#aD^ zRAL`uE6feD*~`G2%sJ74t+a9<8&Fr*!rt<5c9&j)M6p0|dgQI0beBkQ5F^|vWcLt@ zL@?jAr!B86ff`(c8++qd4J?1|=BTRaTNW73Ma-5)9dHbD!0R~Z^7AGrrcK}1xBk}0 zXw#P4mEQw|IQh71Gk=c(V^L28&cmh{uPypt>)iOYIEM=yx~f`t;#2K7 z=cUB@=G9V{k;HrV-Q&T4$%3}MjhF_Iuz0Xp6}J7Sq2E0gnM{fI`rZb_rns5d|Lh;q z4xLs5<-j!d3Pq+rtyY9ci6DiW&5?EFYn|?tKVQAqIQi&*{teF@*WoLdl!vP*DD;|= z@J_ETj2Juxcv(~8+36dhUFdc`@Up;89rv%d6Bh-8?L;+{F3*C)v%$N1}iDf|Z zuR7U@D6nJmlkV%=v5Rg-_dy3lM@c7t5#5b!)BvKFYJ>ckxJl>QkYIlO%%MY5sF>(-FO)}dN4o7*zX@Y zgBN~qv;8EJB2Yi~3jkp8LrOWlmw)Brs&qzlg=S=;>W16v)KB!gT6z9o2L!nUV!dRy^|ZM(>EQp8lK(;XM92V(B`ACeKm{zf ze^5}#z4V2^qjNcTjzCpQU%)C#oxkJizOW0CeFg_|HCuv`R<~^QY%%gY)|&xdOn<0X zDASb5h+{-^qp$I=)e1JY^=1t4xBdrX9gSL>{rp0#R(q)8Sohe*AwV~ZTTB6s;qD>1 zJy*_>5kKjMe#N>6U({m*SN|oV3_cY1H$e+Ijk{)bzUv+aASp@LGa+?)3!bysZ{Wq| zp9#cjlbQyDnvm=0Lmr1unFI0I_uxf!O%>aKr*-A9I3)fRot{!}a9> zJmJyt5O?bv%ipj78svFm0Yr0nA)qX5i0n19TI92XUu@+k-4C}uJg$4vhXXpf#3*@@DaB8`YWX3s1Lzp% z%2|G-`##hZ*?rDa+k@91BdoTmn|Gqn-E+R$YrKEl7zh59^1yVHYA+@2I7GaX5?E~x zI;O`>8(Vi~0Mt)Ar*ZoSARG{mi8kOHQ5bGW0q|vhL(xM)bHalhLVm8T@Y-Hve-TCr zfU{7n4&fc(5HNz}N9O;*VnQMrIwr0PSM-K)0{*meSFEhd+IrJl`zyDFdVP;sr9+&? z9B$-c*TP$wE@(&E8wqP^37$3#N+c19FAA32+Ao%@Z0^(yx(vRg1g-K)0|Zm8+$H#d zsPNNqH7N!D^{q$ya<2u(*8)H!tf%}vri5c%nNEzi)<5lU1Y|;`AV}$P|1|V#-{&}Q zaY#3TajIpmulnt&%LJ+uIr&AZz#Rq=$k9tiIzSl(kkJPq*Boo{Msvr-Bah)v|Ai6g zYZ)#E3$A?gYKV@BWEf2&bTnnwhmFfN!(F=_*iY$UTl|%aHUL?t&(x~WgwCR<)vq9E zJro>@+7Y*cH^_3yK$z+^S;(Lh4RL(l6h(d$vaBhZNm7v1^>iA!Wtt z^e{ko{9c=cN&DkR+Yl8%go&&_<^r_p`}9?;6I8mO4-s>CO5L$}3Dkp~9X--ZxN~&- zDo@d8QBF7Jkv@s7|5Hlrs;(wFR||&o1tL{k3^Tx6FECTuGVpbQ7}JxFO?W z(vBIKbP&~BZ<=Rg&C49KKD&8I_ZgylL^Fp~4O@tV>{d6?MnsD=y)4b+Cdv!!Y%7+H@dMt_8+vXyq60xa$j?&e%dGW2BOfeS>sg1&Cq4JO8tC*)m(^oq)Xy1z&lW=@OscfE?lH*T2D)t` z4QsM$ivLOI_WO_n!V19|9QP{{xinrQ z1j!&3r8o(ryvVkbg@R36N0P!>6OkN(Hqj#7hhYn5yXO@jz1R4UciKJ0=s*fwQckT3 z7w-Sj$#=ebv%bl$-;2}ij_~Ra>d*$p@ZCXNrxMQ0{)5WwxLd4Prg6KYYdl(-|6h$z zj4>bWQ^_v%Mq+UYYEaC)k!TudJQn+*%4c^!SQ0zN?ch?ccK7k|)7w{BX5a zt!Hk7Ss!@UWXeoGZ9v4&m``p9*|;It6GzAFM;kW7fttw%z@=?IZXOt#oYy6}EDm=g z?3YSLSfjK%BifQlu_EREWKm%KYY@ZX`G>Lc)nyn^f_(lpvA!>BoNBof`P0syI>>*- ztCZ$9?Z#sp9mjgAbU8e(aST2no?#O-lQ?kbkyuc)H6T_G+4azeW%Na9&qKxN3~h!M z9(~S$fX)a=>K3*JH+ui$r^;Ol;X$gu$0KZWPm)LC%Lnd@<}D#w+3#&sKb^HFNh`nf zFj9y!T_JS|6B)Z%o4${ZBz7UE|IU%iZq}BsG(V$uMWbA}baXzp)oYUq>(PiXAP=qm z@>~TvVfR)M8E=OIR7H=s%c;4y@OH&6%tO#6M#F)`zjgRGC~zK&#vMpXzIwfE=qhLu z0$pgj0lYtTXJ+qjB|%&CKeVlc+6Mp+fG;TZ*`mI!S#{hv_(gkN3Irs5l#Gx1iqo)6 zI-=;*-aj0c{h4}7GEcf`_hpcF!nPN1VVBU z*P4T73?i~5Ap{qI*c&VDfN)_VBi*E8={I@_qIr~Y>GkuySDtYiVi$j#4&pqTy)6PA z&}<3!zyjtBsR4-I36Ut3m$PaIN8+za;woq&0^Fs`5FM%U!kz8=6)Z|ax}JwbhZg9s zvm_@<7lP0^wN{4*w=Cp>4^pAo0)(^Is zw9d#Bn0vP8D_l72dhMBD)8>cn;myXD{yJpSf@JOw$=!u!xL4NA%G&iA)&Be*ilksw zH9TZl&Z50l3MKbcQfKfRfsN|YO+!U>=C!MzQ8q*%WlGvPnxh$uIKsxtGdsP$r%JGQ zqk;A37tRF3yf+;T^G%^%^U2PN8oFX!D1g{Q zfqwFT-SXxitb}Avpke!=(6l?)2R%GEyQYCCYcu`8Onv?!`U}CA$dC|yPHruz^o?x% z_#Vv;Cfixo>v?4?lN~%RCpJ4JIn@U&c?g(_mIA28_&}o;AEe=a_<6&-BH7A-b_T7d z4QO!qfZp7xaR)gwD^On0OAIlFlOh324E=~{K(t_#mn)~+2(noWN-JrZG9TxOclk7> zhrQgFr%MukXe=tNp7CU8Z_sC$6<@~f6Sr5|>1 zTq52~U$=d&vr!5qbnXr+V1m#&-S%n$#BlkucQ_B-0LfaQh@mREAwD397!I2~&P3IK zl|609?FzasYHut{wm@LOyDnH zZg+fS61EHxP~pfU0Pc_?WXs*{#)&J!gG}|}x%*~iZWsq$sJt2uWReI<8aKqWXTK7` zr$Up+?nwrjE-IBsT&tk7>LS2#8*ej5f(HprYZ#i3rOD+dgVUTc?<6G(QtV_eyX1CtAZdPQkGHM4~IPwj$7kFeI=v~ z>_x_OsoYYVT(M96FE>5%w}ugK8U-pq1+?Xx!&NBuu`aa$_CTXb3ABF-UP!^*0bSF= zCTI}*O805y$>}C_gatt`u=B}yEi`!PqaC`e5m^VX?R)5sNQ?A64!(|56J&{l4zqYk z+Vra1coQlwanOsI=Bsnl;eYC=rrwJ(kRN7M3QatWT4-(e|u_|#3>k9Z@y;_sZYEd)M>%a-B;EAqAvuCu5Z|^B7{km+2=Z=ap@h+6E_ktlFf)~BoA=4lCf#+2)rgP;FxN@@lF!dP1m3y?A zBOvBjtG%ypk<(EqoBzl52l7xdB7}*o&f@7GJHh0{w}~Qk$`uBZa2N8CH@>eBWn4je zj56zQca*vO9C-F|e`T8W#$TW~;}7n0bVs)RyvY_Q(27_6e@vtiK|tUfig&WN+Znd9D=v;MEP# zD80_BJEL#;I|>B&PyJTC_|9PcM!39K@3f`JZ3JnLf80zB{7zh{riUJK6QwRzgR{Rm zS8++lYyG}gfd@M%{o5InKh|2Pd^z~f8d(ykx5l|gT2F&PzcB8Ha}V4s72oLI&rTe37XKb{4 zN1!6EcFq&t)~*Z;7h?8F$^)<$elKJpEu$MV4=jHH%IzJuPdqEvwPC>NH!=M1@H46b zUrN?DvOvXAMQ}qp9*HN2g#BP81mG3<5s*kNyGUrV`TbqY z&=2l@SDaD}F_NkGc|KQ!G2F9TW>Y=NG!ca_BM!1^bs+Nyj1w`tRfxJ!o< zQONokh8xH;P}Fn5miN+IKQJ(dd3YjSNS@eaE2p_*0h)Zu- zo0}D^T|s)FU+`iXc!8VJczLVSW`U>BFpgCj{NVB}KCjEkH0^Bf`H;i6tr{xU0Yd@a>_vs@p&mlSJRq z7CYV}tbAlcAc1`E1YM-Jn|KEd9I@6;1r2M8+j;#u){fqDJ%t&2ScSnwp$+_*-A?lu z*}eM)%5PgW7b`J$&eiYq-EEfQrgJgNH>C&fUP*4JDCDWnV~}iM_Oe71^y|pG?6=qh zjU#QN$&FZs;ygwfWO1RLR%ejkBqvWgCQj4y=@MA_5pdM zePqFn`4ggAEX(nG*>Zc@`#Y~(1g_g5eGV|-+Ft4hvQ(~CX7n`@c?{k!%*oZ})UGfz z*U76onRHY9{@+u@J%wH_%^=m_X2W;w*)NyiP}To2K2r#+`|y_Ap6asih4+i|c2!Jo z`Fdi3)rkzA-()JP#f62E@Bn%(R%0NS6y)RzoI;HJ4BTz1{V zdXeidWre}~->P01^J^BKFzw|oyl|V>c-b{=v%n*({#u;lAcFMt1@Z1CY4PV zVa8fXg1|6i4R-IIMksrf$n9@8MSH9Qt&Au?4nT)kx9)F5$)daksTVO2(}Nw0u>0GU zsRGk2`qr^G4!WM*RCzjv93s<F+V6DVz?^@?EoTgf@iPC29i^UHv}M&9lVo_~PbVM>NAgdKHKdeR{!6r1 zaN&FJZ=;%`P@5zgD{L`w_=eM#r^5lI1MgiAp zvqTw(mzw!L#*jW>8LE-n8CKck2=DGoN)v~rP-q`=!bcFusSjHhDafE%?jhzP zG*zKAFq4hhhjy+?KQ!tC2`c=`RnPZ|lpXIZ*7%EvN8jO5_p&S$N&M#pp7;e|*TS+;_=E}rV*{)|j$Vgq zZgvOzEBeLu&shJc|2q*dVVD^|DXRww_EwvfblkN}Hj;?n@kpf|ob)QtuD z%L_iGRbm^Y6a#jtZ&{24iJzc(jRdxLMBMI3fj}eghpGr+a~JU2AcFNiA{%A+g3Kpj zs!Kle)U7$ zOtAg#+DGwQFQG$dcL9aXZdbU$2Y(F|qv^`E=*NpFf;EJhG>)A@6GE0n@e`NL9wVg6 zg}F07OA%u*xN9r(T*C6ES$Bn>by)lvqA~j6LbXZI{%|HYp4WvD`jJ_+l=X<98%X;v zWgfnTOs*IZZpi+SGoGht9KnXTGpUQ;6zJd(Z4j3s^z&zXr?xcl9<^V}xy&;2xyf(pUH_=YATC=` z+!n?bZn}|IR;^zlEP4o_=acjY49j_=Dtk#cMBm52e?h+4a89;t+gIcit+O|IbpqU< znxfAwl3+8wkmrM#&nGX81A;(HW#UKeoFyVwWWvqXu3krmlR;s_^MDXsT9_1<>xQbA zi#$7<4kU4^gHfMQ$y;gW9-Umb7T=shRY>hM{j@!| zO2PXWlH6H0>n9Cl?`4z7latzA^(q6|yV>4}P6j6p=_}T{jD#TQWlZ1aa3cxwvPtxp z3b>KAaYfi3(Q6^1jniQkN(%&P(}m zmFM$iUQxC{YGc2mX7LP3J5l;4vBg#*+v8uze7hZAlo9n(^}V755Or zKaTLaw8mY$a69e*s=@k5;A1Z8hI?!4#qGVW{{)BiBOLOz@ynba)+#a{|EU=UEz!q& zGxL*+&mXL18CTr%q!n@KgN&h!qQKbj2!U;-0o78UOk*gMFj0CYNmE33NY8GNRF-zw zuaAH_NIu-)`-N?bz+=X+cqtiq^lwtjdtb@0c)@|TAE1ziL;&-&mHY{sE!KVU9W|#h z9Mn|YLVJPUxcAu?mIYfaavUTeV0=v~W{F{+s0g=z?zk08&ux3F#@HV~ULXZY8Rbz) zOUr?4tw42p;~-pd6|N{*G(*j-r#%V2)0%1ZrDf7kt=nHXf~4v=tb@QR-`ne81fCOO z`LG0Dns7X%GjzKs@skFP7oLSkViZA5-nAG%5g4(_7_rRxbw^8F8( zw_g$O9&q&?5->XAbg&u{TbHhf)D;S{uLQ2J*|3vAT1%#|YrF~H4X!K+zdqA3PDjti zbmA;ntt-Yl|EgiV+@`~Lf8v@zv&k3*s3IPfS_gGFly#T?#X4w|MUjN7fPK=q4w1$# z^(V;EJNQ{jZ)W48fA9UndfA`Arv1nE+<)Z@0!hKNa^o*EGH&wid3EQ6pi7a>5Oz{O zIBS1TIBnuK)NyZK(*uM+lFsOrKbduhgPD~$XWrzo`{!e~YSk0+j2*CYBPhZ?+s)%1 zmbi8sRpyR<=maz6KcUCwF}NUA9>|82SRx&kH9Y7~SC888(0|ABEDXBg(LHwHM>1I? z^R)-%u7!6$|NNtWMv;6|39ez?TFX!7CnBBa^HnGRnM|X&2*&{*14jbtA&AQvY$Qp$!_hV%wzB&*(#QXLwiJ(ot(p|6pOQ;1ALA*u&N zPtlV98IoTR#)*?J4d^s!aqXDXq5KlpF; zM#kOFYk*z~-3W3TEKFFo6o(yxLn~_-Wyrl55Zd9AEoJ8<+1;D>&BqE0I~At(g-r-qs%nuq zCc##*mmz0RE4exZ2@f`Bj!e7MMRA_o@ zG`72=c2dmz(P@X4AiC2(e86FzYxHzSw^eCI$*h<%gWGk7Xal}eN;0dy?vSyct&Vv? z(VB&<+i@FK=~u+AxcdoUOausLPl`nOzD72s8+Jjy;qjFRof~0-s@u+dT93HwBBqbv_=Qa?-HAUcE0nT$GBKn;{t_djUXdxLq*-DFUNR=wqt*6Xqq|$O9U9O*=DcqjS4ExPsue887uFnDdF~4U$(iJ9L>0LQ=FC*MmF) zqsL+7BL%gz`BGKg#4*vfir48c2R>`cU56Yy)2Bn~1^XhT;{|%3V6!{qYyWo+xQRSK zD$3!laX)X){FCXiS?Kp&uhWzDC9TzNJswG^n@Y>)yCe6|uQ+y5t@SkDJl6UWBl5HF zxr^V?U*|&J-9~@|rm?H~_q;XpfI=heZ_j?pq4qu>m6k&dS0pfhP~DlX$6o#zZBFdB zD!94OZxFDNWM7O)#x+p>h8@UQ!(yBVEAVc!&%!j-++%$j_`P+@n|~0!FqmjFvi}DO z(^O+aRO)ga4^bogH0fLJ!iqY@?H-%=uBXZJZRWNQ8Dt8&_39ds24Q%yGn-`lMU zKI8>vOhQk9&F4M0a*tq9`g^Vk`N>yHXJy=c{Xdw~+HciJi%EGDOw2-N?ci-8?n8NC z64#XS{Lq^o9EKtgy!TUqjzdfug9nKl2x}i0_&01|{x^^s&pVFWz1gCl~c5H%?UFsYXhd2WUms3PLZ<_YrkxI*y+^Vd4Qnnu}6Z zy2#&)dGxPa9jeHn@Ij={SwSGH-uKL73m~BBhZDK74w?$Y4Hm6`RI1IoKaSTM?icEO z)al497JuZ!Pui?!(5eXFAO)H zGcZdHdv`BA%ys50R-1f2LVaC<${81>`|2&VxTZL$4I@qN0sg-IT7Qnmg@n@Ilk zqAq3Jmx5v_2Hf9W@SqC<2w|g@O<#e^c_?%a&PzFb^y*BR-Hr&{9-=qgy{tZBIl)T%A?sTx@IUcM&Blw-O!Gw80 z{{zp@XOd{sQsylD-v=Y0+Jilx^L?5)l{w{cX1fHc?^70h1keDlP6BDjS52$K^Rqsa znZoaW676qqS<%Bj&c?`LU&fhGtVBJuyh5IO{~yA=9qtNQ$P9R6-P;qCUijRn zqr!WjO6eIug4BVZlCNGX+wjaIV`wdaTo-79JsAl)kuQ){nAYjM8u$kE6VE_N{akGV zS{%q1eBY|Yk!?5NRHs`UlS>H$=c^$3CB*pP2<`+_lT8)D7Fom%U)bQ%+Bf=Pz`+5V z#k6WGVcJJx-}ydGL>f#M;v^e-buvi}SPc;MsmX`@)Cse1guhdCub9Qj5ZKfk;afj> zkwI3zqR^Skuh6qW5Dl%ahp^=HX;c3B!}sr9duQCnpOiDMhuc51B+g^mg^wU-!Msh$ zHK7#0f%M(Px=zpX)1__A3b_fWtg}JCLtl7gw$j(%<`QA%beU{hI@OmNs*mpVL98Uv zy@4J)s_`c(*W`yuFAz#h8GR`H=+`_A(WB*nGXV}q^)$npoeLPgGq(34Cy(gT%Uq0QsQpTFMzLhW>@UoFMOtI#YwEww2%6& zTt8%y<4zJYy0&O=50B&Lt7p1iBVGj2JNv_x`mVoXZ}nzS7hq7XRDKz4r{ITJ99ZQ*1lV^#n=p1IbIJ_K5MBor>T>Pk!i~pmR9hX_ zC9Wt=d)gbD&1PXrCzkD>2UpY5dB znSJj50_oCb)aFKVLB53zlH%SP7hGI%%dAge%#U5I+ldu+>9a-d?JAgA#*%zRN#w|X zlMpywcc?vkLx1X#JcDH9k0iR+oy6v6f9$mDqJ%1#H$I+nNr~Fy&{G?UeoMwT7@6|+ zO42FVAR8YqYM?B^;VmnK_53culIh@9W7Od-p|&Bfr}bMZeP_r8?U*O(wpXtcS&6AK zp!{o-;sm$5C-rd>YFLpnk71SM?jxDA|$V zCbmvgvSPuk{w>n9DnwUpsSES#xU#6vd0NQa386<+8LP%bCo5hnQ>d*A`zFoEMWqUM zmI<248Q0PNNuL0JSJh?@vVp?X_RZ;=VWq(yJ2cI;F6rc+7?G)agI;^~^(Cq4X$Gea zy2N?|dDodf?HZ(s5x>)(SHMZb;mq>-E-wv|8L6mJ9p!`&*8jc35utG!=a6wz-=lkG zZ))#+jXJEi?kQ~VxUvwupnPy^k~ABn#?IN=R00D^q9yx815~w{}b( zyPE5F-@kP*rcRBg zG!klN=-0GOSxPucji;v!JyWC2(ngk|L|G52QDdZ;o|-rzW0Hx`D5Frcpan_xNGZxL z*`0I#*Z01UvskK`|Lf)T^xSirrgYAIf3MHyy585)LFIf@34?b{sZ9=#U>^fkWH~@Wx#V{=V72oADm&&n!_?xi%C+rY$Gy9?zN8NX{uZd-BuC zcp*2?b_3%z_tyvP-W2YQJCP+lN{Ah!dbD?lYw!=YIN#EP;0=9AW-rxCHO-dXznWxP z5)7v>pHmIrF)rE!eWXoP1sh6|P^dIKPI9cnd~ehf*B1W zMm15Qo2d0ce2YW%Nw_n3M(mD^bms|H$avV+=_sm3QyhGZ7%8)HBSuV{t6k#R7rWfh za=QDklKfKorKraGPR{0dF1^&dMzJHeH+p zfmq54c`(>?dL1H1-vST{AWIZKQlF)bxK(cTy<;{~-ry)aO(zzio}Z0mMbkasvZX{I zj6!+i(BBe}02mHwxMk}hjAy`yVG|@ad~am$gU+tI{hybN$EublwBvNu5d%d1*G5iB zK6lg9ddmDkGfdJ~yVe>77aPz9gTuXQ=>Pr@OPg$i$y2h!Iq~hqNV7{6KP3L{mMkW9 zcHevU^i{OoOcdM4V+COYV^f{#3Nnb%y?$2J{Ye>%aHASS5q`f4b2h4)Jt*|X-@bL{ zl6opukE3eM5=O)42rGaY5{5kvRN#@!Y8agigQ^R+^tjPXbw^^1* zHvH<0Dk8ehbV%J0S0cG<#I76luM|~HLZ(67)@P7;+T~ZJIVxyO$m3uVH@?i`@}GEN zt?20V)7%*f+oEJH6$Y+v$ez8Y_H^1hs^%8d^E^M0%}I$JHeS;b6+oM&RyB|=$&_>K zFPXs>fs`rNYS^vNSA`5V)P=zHu^)v%$Z}ckVng?G@nC>6Q%16bj1H+r7Glu}^fR!H z3Z0@=C#G(M7flQ>4tn{hYcPQC?ElS&pmv}NTCoHmBk`T08=GP3M!3qs!XR3?E(b18 zY69@926(v2>8T1OT@&4XpS7-Q_7YmMv9k0iEx91B#rRmJ?os#1AS+3b0h}37M%Lgvbn8uizN4GZ!m6R z^_@qqUb{ILUF1YOH36A`!YN!_l&No8y7=0|Z+Bl-qAo~x(}X#H?(jdrGJmaJ-0wJL z^7ra!qv9pZKpPcvfI9V&)^afmKk>1_Yy+Rq2$egJTY6e?x4i80)u~?dba(%S9S%~8 z_RAAlMtx>{AXMD)Y-yPer)9CznNh@jd z{@M-GXB_&)XkVfy;W1zM(SN*wlJYkSA)j5}W$p0$=RAZ``bjOPGt`U0`)*3eCXzU! zVnLK!+vfu{?V+7*@;tpWWk}8)mXQQ3yZ4B{I|%H!-QZ6I!NPa2SqplsF!vpC5$9*% zsE$scy3JwXZ37Q&c0|caVfxZE?%eTUWqe96uHR7{bj%{(#9!hHmnut!rYN=WW7%Vu9k}&uu^~`<}WR0^;lh10!J7 z@t*zd<7VufX!Jaxh}0}dyBP$8sNvnLfouuP+f>)4*x6mHD=2pAy*ECu&$ih8O5jZ$ zAl~YtE=lWBQ8C)K=ght^S$Ct8Dt}%xDyLsKuR-ZAgkGbBe)j}buODi;g{E)YG=UYh z>sQgwunX1LW_lck2AZh)1Lbts5;AT6lY%fTm>_bXYbHb2XzxGXX%MvX)a@PBz!;ow z$6OAx+QuN>?r5yxSv|JIpC+=sd7oLWJkZTU;|w{jB%7yQK>IVC@aRcX9r}##4|^sY zX^4LK1uvNRT7R0V=CXJJVkx$76Z3z*o&;Vd;YRX&t<~H31j!67k>Ls@Z-lQOGBW`>5T`O}T!p=kvHFCKUzrhu)QN?GR|-(6^pbVh)8?7AWiKw4zGNMzIBOOc z8>apjgdNz_&PL`RH0_gHm}pzXT{wWB{4QLZ(30k+{~Rl!>-c3`xW+r1e(b+?c;zWc zS@Kqheu5?hJpCZLk7$fHm>@SpUixQL7Qntxi(YVJ)n1M9J`?1OL5FYDZ}?Awe?=f?4_7-`5wvX!A-G9m zZUd(Z@-~1M45L&Fl#Tb%6W{)^z@bEw>JPK5(Q)%7ja}3aC=zgU?xe0(9=E=TMRy7} zLy_5(l~Tlc_2s#f6j&>LpA9BELrvv-nARlpI zN{QI&hAQ_F@u$I3gzq%kk?8LP!9=X=nKb{~AD?}#UYe1=1Vriqvk;?+q*#E!2ly0C ze6DFdL&FFv5eo)-IzeO8_Y>w^!kK{uY_i!vQwpmK{QqPw9w($=4UaG}|Hs&;31eam zfn(&!1jXG70L{W+);=q@B{DcaC2MuE4)ARj#OBQ|9Nw)iC|XBfKqoG`)m#jN$WLoR zr_HTyN!coCD`Pp0qMC7A8mH6p#OxiIYSn`F>-GmA_U8!%P3MxE&4xN^mM41sz=C!r zabYa}@Lb2D=~#4gU7)v~ZDfAAR*FY-b9J1zo}*emDv0O{5oC+{pi_;rVz`sUz2=I& zx0>s;_t6##+mN{BnK^015{cGr3(#pAjNuK@6CE1;gV?>eVDM(yY=v&jH9Wl4S0UmVd<$|ht{_Whyq-f(r&BI>pa#CrUsY`GN z*pPmQi2{6*m>uAA<_#a477zz@Xx)uNF{I<6^1&5ypCPAucRs_xKA;^`rghbfN1a62 zaD%UrK`B&D|6K8lu_TYuD?fCh|Aybr>&r$}2Bv-Bf^0JQM%pv~fQDe@K+Y_|h^G{h zPCD9xNmYSQIwUuPYEjo|)-d{_b6b<4da>qOA9ycsY#D6AXi{n(sq%jBO?vpf9APsQ zI&_r#o^cJrQ>ZT|cyYUF!24udUw4ZdO_h(ka0`*rT)td1%z8Vgobo8ni2GJ!M zN&9yNRaZS|Z1%2XnPyOZ<1ecjEO4r|uoSCZdxCu7|Bx@bTh@yzT^e(N12!MBI7SNF z{)c-iN)Y5)0%UrNUVVA&d$#h7Xp#Qfv!@nWtWrgJ2L6qY;bcUthbF-7D_y*N;74{r z)Lx+OAa2lchpsv}h^oPg#vTOs0W5k2RGTOgQ$_oZ&t+AiTP%54yR5W7pM(ko|aD0;t={s#ffin3mkv@(m z>s0iwiyZaFjuC&dlblSN3xPmhjPIs_`P2pWy;voj9}@HsdRe2x|*~L&wF(J=oKiI#M!P}`t_b# z|0OpyrirWxd}UD5Y;~~JSvMR_n{W<+CHKDd z1{4mY5AHmd!AKjp{WL#HuO9+s8Hs;4m(n~H5iKK@#=%TSxQeFkgY3&QNbHKF$FmJ8 z_7?W@zWTk&uk(;RdJ9tg7>!=lTC0j$_JCknj>0z z@ONau1dKU6jsmCDxtLq*Ctf*9{|!S%4`U0ErB2eqTZ7EBcy)5dl~L%}Ym@|h0hRm1 zO=8r9%}7fcMrh~{BUwTDjOk!C=Hn6IH(mqf4vE=C7bY)Op>{Lku0~4YjAD1hHm7m& zsZ}I7t-3u-?z2EYx3@L<@U6g$Rwej$5MJGfUPwCo+Ju~|+Pa|i%yf_Pg@|K@>pxx` z^(^+-pVIJ6#X#avD->XC+GxcYhNY9%>*w6rJl9=iH=(OBzKf?8O%BbC;qK~7G z+ee`tq3?010XZP>p>h8Odz&`vxC%3GanuWy-Me!$quWC3uW`GBiqPYMkI+b8Bth(e zjgyVf_UW|t)teFN9Fp6Y?)6+|u6pnkMNk9S-$)MxpimB>W*$k>Q=}(3AgG~mJVhvM zV+xx;y(RJqy+y|pRUCRXY>sxdQsWQLV+BC6aKXhs3RT93zY%>k5J1pnXi`>xIAEqp zn#KHa3&@^Nty{oiJ3d;{Miaa0yXVE_3}4ldAE0U|aYHeox>anjvF&e}7ge?sZSf8l z$y8#UB0jqzCzs{ii{7@w;?kdS>nqmIb{2oZ!7}#Jy}7eKj{?y`@=(4CXLWckyLt^g~Y7@i>vDuEPY^VvB__62dkg~bu zW-$G%zkX9%$^8cvQzDDM3M;nQ*)|=srtl?sX4771Qu>BgGRsDN;fH8mX$Hv>0wMPi z6o}Y_Ure*w=$B6+dQ?Q%@|nq)P8V*qYY}ENhpZ z#O46MF0$|OW)ucc@Ihk=$QXw>|Jv%~WVOuMZ$`4tKpsykL+(yW)&R^OQs}&`*~f%0 ztq9>xt748aWl|Hn7{iJtV>E6WLBxP{gEt){=6@biSZTaI~3-d zVv}3Cz+ph15fY?41I~)0M|ccaB-YNs>>rsh6z6{M-@4$I4yQGII=u*LJ@wY9wTkPt zT*FyWB@wicjd`b!ILb?m@+I62An1;XoK1Xn0(M~zpZDLs%|d}hqte?oKv-f6O@HD4 z(_fcMPrgssP>=y5kO@4|XrS>-F*Q5Xq z9PjwH!GAhOt?EsCX#w=!(+t;xB+7QB;Btq{8r|h_C zryEO(lHIX>!9m~h@rsfWiy5&kjo1aXvcdi)zdWOL7Enn*!s)V=HHupKL}Sl&nIdR_g)xnPQSOCqNOXD(wS5e;tdZ?DWQ#9u zysJ`WaraOGqduAI4$tpS>K02h4J~6L$y#UVg0FU{S5h|KY6doU5muZ7`N_s$WUnqh zvh?e{GBy}xi+nr+M&XfpWbt94r1l9&gRrcr@y6aV9t}8{V}L?#TYZE`kG$E zR0^{|Y-f-|{myjta15$v#DWZJrn!Mcb8GM@ovFR=PWa;V-}9N#c>ZYa^!=hcT;GM; zVnT{{gj_W-$Qu7*tk0z{Tc$f)k1aJHtR&W+?@9jFFqewm3HDjyPy1mia8kYJ_-v+r z4_hL@&>#JSf50w_xD1=|F4LI^44>N93}y65GomkGkz<5~AckUSNkkjYFW#zgeQK2~nUNpL82W_J$(&1O^h`Z3p-}rQo ztkQIpJ*0Zg?zCJThHk@$Hm-xJp94~WR&qxHR#|W%LUE(;1%BqJ>f2|2VanrOItL$N zPJ{beN1GB$4TB)8Y(P~TBX2`iHc1(dgj?@2;)jZQ>K~raxPIRN?V*w#X7dtnKMLg4 zvJdUjf!pj|dPX30$Y*>pM4~5q4DMcqZfY8Wi)0Efuedg*uof!4{_BF zQFC&ka>Ksnxi2J*6iNxPyaLwy;G6AFt2|A+=FQ}uZ$xP6PV-hKoJ z>j76=ax;HuXM+F^e>Eeh79D+O(-%?ud-v&8)E(d+;7WwN6yUs+2`ieNSe4j2FOtn2 z{>PLr?ZHFKy@51AY8kDi6?z4JTF}KbVkwlb7SHxrl{ataB z_ZczlP_2fcZ_Tj{q&WhZ@SB=BoWyXVc;gPG+6`m@kUR@QnDmVL-XT#N)^AWU*lmU? z)nRROzOJ|E`F8ZeZ@AW!3LLCU8CIfiONo>61C-4!U7f^es*v?%Oh|yjj1+^yKuYRrpN05g-caK}U5JVf#rWQ;P`Q%xS zlf&mz4Ru2U70RbEEN6_R4XQX0qJ*(OXAx?h2^#STH@sPO8S>C^qEl&savAkb9XT|- z#!thk55cQT7MJq0FBp2?W9F@n;~n~5cXNS@dI`Wr{00!8x`|7~Ks0XJnB2ss#V_FN2@V61vXgKS?hsTelT7_MlB#vXqm z_5oPQi@YTp7L+gaB$yZ1vqKqH3=nh9N{c1O#Sm)z3luHVa5bkR{(F#hFJlu1oGWXO zr3|S*Mq;Bt?1uKv3or=)?bQd4x*sdnPEG7aLB~AHT;Vs zU>(g(iVKd1M+3}QqHLZm{LObueY2YZJZEEk?5~qn9ueaRE5H51Q9!7IIb}PRH=OSboOu9cx2O2U8ByGqyytU6%<7O$8G2S$J zAdq^~@6<}!sL)(W)Q&Zo&5{e!!U1k1=@17x>D6Nx&fv)v-Uu<<$Dseil2;z;sMNts zLX)!>Pb7HJfrV%%t<~b(0K66W8I??9IfJ1NoCd+X)awVy?)f?g0CeW|WqV!0<||nF z<7jg7Af_zA319f`9`gm%x*#MCY%~vEvdIU2QrNFkW>ws3xo-efBBR}U##r4jUirwN zx%-jh!0Zn7h8oi@neTNhh;@Z=ir1GsU1%9pVY(h~ZvD0X-9PFKdl%Y@ zVEkq%1f#c|-rkURAw1i7d&23kJj&I#&5V19Q1VmU%beAIA-aY%bntZz%}WCg7}7?J z9)LC@Y4n;;L=RY!J@^ z_X?3+R;9zAUkjp1MB|90A^MoG-MRYkc~@B8z@vw9Dwy_@bkw33#FRnwVfqOtnj`YM z6a74J@vgNE)luQ+0pAJChe;SnXT0)@?2anlGFS)K$ys7c8)auhW^}}oBJkRaJFjgx z=bkul8q8m#WPaYlEzgvBjtH*?y77Cr#(riCpUH4lM1?iiVZK>o`|5tm_O0I2luQq_ zLCrK$u^G6`u#N#mZ4~>N*b88};AY1GF48N@0JI{_O)76o^=D|ziJma|jtTFQ1qJxI z!k`8^qg;sH2BkFSH0Aqy66UThbE4n=tC83vA5U6{?&Eh3Z1^i{s?V6*o6&EKd(y!E zuuEMqxvb79aWh~(DF{DCx=D%UZ1hFV@E43M4@!5C{|mZRy=^iJ1*1EuxCXsHz~S zifS!T-$mR4T;hV+oCl2^HO^9MUF=vOPtflj%XT#YKUf`q zNkg8rAzNA)or)RVmWJd_$g<*DfSsY{zzFANLU$lbV_=tDMFp?esX|~_{GKA}-3N{g z%io^MMuB!guU0?o1qx=q@tjx4)yT_Uks*950xHApz`}S=oW|tG6BHfgWnpF!E^;An z+&T@}C;{ixL*5)bvUE1$P-&PPB9{4q@}|-yr^}?{`HVq(n38 zsMAZCOK$Z}wq#4`kfNBhKS>)nDaa&5lMmh9Q2QPm;7!g%=C1I_x(f2D^)77?1aKZ1 z`(rOYZS9%XpPB2I#ONt`*42M4U9BqsMLM4WoHlE6*s{5x3W(QojFw*BDp>0v%1mDX zL#=1I=X_naBs)Jq<*f8ENaUjh5cqy@9swk6&{N#8_7rid3G))tk~ zp*JH3RxijF@p~O~;>3Z0-Q0KnkYDjv6tDw;LNZeTM0CvM4P{6N0pWEpmN$J?#>vKb zZl^q2O?7PQX8K^ljVZF5{{I$7Y^TIY@0t&jH&%Nx3ftqfcpe11o%{)! z(rPS8W(PYUC?JKgc0fcL!G<D;xCj^%c0${AB&M;*Iys*QvNH>P86#(Xf~PB- z+Ar45-aBjZ;z^3Cd=n+T>mjpZZKJ>)Y!1f2Wf9Cr=y{=7Or}AUA&uXMgHJOS6`~Yq z2v1|mH24|aRJXF0`^#2l#_GUMh>OGfb)FXQGlk#mL*$J>1!4bz|9B|O#LD^c`C!$e zg@ynHey2faf|Shx^pGjQ(MbcK^U=iq6fLB}AF7NLn^S79-#3hJ#-!!V_J7GglCD%S z_EB8i#YOcv@Zy;|=g>HkG)&>RkK$6BkL3*+iKl7K*|5N+tmo*BQ17NYxam$DkoX~d zs3r*d58_V(uYokIZRY}!y0xs@XVLj+^@+FMb5osDR zIU^dg!3!)J$!am!rlirbtvf6D!L+>!s6__MO(LyPor7Tm2^ZpChbMX^CJ)0egu{JA zb1>8>^U^WtmdzfJMmGP~h1E?D+7H(sST_9DHoDqDUoq%1V5-E1GV-W~K`(rIwIs_Z z?8}Fl(L^=Q&1Qq@tvmcV9^-$)&>m6{X0)U2pwomc@0~32CD__fVH;W+^NnfPt$JSK zhG$I&4;)DwQrma8{(iW#;v8LBYa-iefENw)qKkjEu<}8fDDW4+ANn}z^53@!;5JHI z)yF)(&aygsuB%pM`O`b~E?iB!Ylz`lQ@a{*WdqSOs{>21g?$5yAx)c^@H)pW2+p=8YH`er9WHuyZyE8X1+&0VFxGz#$h(-2E5SL#LoShqt^Rnq574E`wyz$yu1V zYQ<(XA8_Fq-B%fhs6EPnQtU`(9=}FEkp@W#O7Tta+}H>tX(b8hT)Q!2uFEvUTZsi6 zjaW}P&y2*U#vtege9>3$X|%E((k&YR?sFc_(=kvH$dwON zHMtZOAOpe?+{XmJ@e7aufHN<9ab~i){mx({fro^R0j*`kgw4d#xPJ&6hevr zCl~l8r~IA$2+YWR~3Yrw#i6mV`=lDenBYk;8$xb_c(`4%asIKr3Re`7Je+dO-Y$D%BD zpH|M5P6KACy1dP>^&?X65&Z&2m*4^i_O=qZG`+7Q{&6?v3C!Qq!IYWI0!H>WYhe7d zz0nRQEeIF7WUWY5f#5ue#N_aO9H=LUV_zkze1nQ*bih{-n`UlF@h3aqOyjc+M%vRT zK(t`yxq3qkXlcdDUHcCMDd60@#HzjmT$)hZX~PX=)Dz1}pjbNeI)H#wMBz%04| zi_6_pAN}d0_!T3lcg2fYJKG08cy-efbkjrOh2oa>2%JA4ZRBck+m?6>LGTZy&3fPP zGWJ$ow)rcJN?`uK0CK=TkT!&#wv@SI4}}!SvGmfhFelOmbCAC={=>Hj+$De(;_+>E z(Jkm(uk_G0CD@pliv^W6KzVv^5$qgx-$O!n$JN)rwytfvv12$ z%bTBjNz2?03{;>dngB<%56{qdk^mizBu)6pRQiPV&WocxiU&FW+A`?SWug*-2GF{H zoAzoSvei6+{j|!cC7$ow+!)p;X`e3P4cvaHw5lmf+kfETe-ulK_c!igGwsieDk&;xU5UYSwXx#Xv$7X0c+G2>18~t17w#xa8?1BiVdcAUCozB!!camo z*D4vZ{3FXfF({V)spy#^5jP)@B}6XsE(fqAH-j%d&s1-<(?*T&Pw63>v7;_k3kN;m zUFjN8LBp3oYW8R^&2!%$vppRVRVd$rNp>uoko=iI5kqio=73aY<&@{{qN9L;Gh_B0!QkriB# z8=Lhfq{ym!%*?j6e#gxVGK1J}W{^S=fYUxy*_>HX(h}&-3Q@~{WaqSZbzBctu5Sp2 zcI>qcEk%flY{bMV)`Eiu>+^3D5eH9uyk)@bQ*YHdIwR=Of=vy+h43tj?Df*(wVteF z)NTN&52EdghYL5Qb5n#)?7x&q-AoGx92e9<7i#c|?yHIOgZPNRZ2_Abab*+TT#5!D zq+u*iFWJ}vQd`zl>ge~v!JlGZQQ{_qwx>~$fe{&;7QH&kyG9VHKmY1Xns|5V#99P* zLiM0;l(=jKhhx$Rim?r`o{e1(iYAqHjKUv5Du?IS6Q9}2E$clqT)#~+P=dz{jpf&1 zQcFw@My{o?n|7Z88~`mNb^&3N(Z$HQx&Uim+ix=J9G6?GuTcgDmn>j~Y2i_PXu}VJ zgXKOrFJgJatInuW0c8ay`4vddW2YVG=8pJ2&Y1`?mrtaCR{{JBHxHT3)fggEuMAzF zM6AK;Rmt4!9GCg7fn<0@3?vQs8-SaHZ#@(9p^dnR;_TGoZH(qM#IbtePzx@2egS9q zP^>e~I1GXb0AwUhiG*(nD}YuQjPc1_AF`~dEMh<{{6neR@yIPZp9YW>G z;1hJ72T1_46V`{}8p#?t+w)=Xyv0c!zk?x!j_;r2@5)@hP>lExl{*Fq0rY7BS*anL z`B}U1G(g}oCdgT%(ndxSccF$Om)viEf6B7Jp;$Zo23otC(XlSmdsW3rHRSIqn`sj# z9h>lD&OKByCv>PkN4wa{u%s1-6!)Qui|Q`mE@AM{T2q%Cu&3NOtyyEU#{|?JD1(AW zy1ufBA)7ZPn5uiPNOjqAko$K+N{6b~vW$ddQeV*G8!QM`H$ zRFz?SJZ>hE);iwGcG>EdCtj?0@v%VIh%HEHk6Qn=9e#;nq;`kQHeUzV@4M5fzm*Fh zbbQ7nk7AJS+vmRWk?y|jNN#1AWe!Pq4~1sv_#v2(;G#&GN4}RdPwhwl$>2u2d*De4 zc2~KwhX1DT)fI}Ak+uCB-83xhwtkz3N-QYBk}iOt%XUQu7o6Gdm#ZGuikT<#=DhtE zgW@~Ur&aFzRF|q3CKntlo2Yp5k71>~{@c9$2};#(W}w{0x8|CYYH)t?bc(-Ubh%Vt z-mh&j)dX;|}!S zZtQiF%?T}5c+p}~kuJ)S{mY_z&+8il@U_H0Q1!%bM{{Y<7q$9>1-~gW)?1>?;z5%| zz58)D{hL=KwtPdu14K0m#0uH9P@1Gq?qsR)&PMQ{^GrKjvAt(MP{ntMd9P`@HVcF` zWN)^_9!oAZU5_Xaja~y(_E5O~O}y~UvE&%j^=p8eZfyKGx$Cg6m6eN^%TpNSbN=`A z6?_rE_R$0#+MF$Xu2LTUov$xy?<)=0cf#o>R>ZZvap&s<*9%jBjKcB<3xvon(+mWP zPLwMv+ueex2n(A9%@r3toKX${F(a=8OhmJkz==k7HtBMo5i?r$O@&h~J(;rg1Nk<* z%r!iROEEN?2_1ucar4~oD2y?^QFOAN^2$)r9@0bz3mjC?X7!vzjQjwB0t?vz#;=MO zPrmy%ySFFA3QfALJ+YB(UJj_}Bv&PZA2ttdX!wg7ksm5Eo_fafw6AA;_iyPmZU63r z{pzu7sXT>4|4U`hFR$wJ?l&Hjwt53R|e9zCE=V-NQ+mQL& zSE?6+>Tm)mnC7Qpo!0iy^7**Wr+;Q(vxjiWD&h3WLzsp_L4!?fqN!jJF z=r(AHM|MF;0v8(Jp!TSfWY?Li3MlW{Jbep6oFZWOCCIZWgcP#FB)0ew39C&1u!h}a#}S9@^UB^ zBe*4pZKUqJSQ969o+p{Mc{ttr9qkU!m5y3Q1&br$($)tDE z_JJRxyiKlJv3cN#L@&sq3p|$GoQD8RC&Cd2vdIPqu?cd~2A|hWjXB7OwI3n31ssBR zJtiMk?w@VT`vAuAJQzdRDiVt)krG0NP|n0j^gfpG!Le3w#vPJ3=xPew+6xf6wX^i+ z-4chN?1VK9ZJ$KZAZGLUed``t-UwIJ>lg)HCY>3~ZO5TT2&=Wu5#&PxIa0_6$W>VK zQYQcmT!!8x7uKys%IT>5Yzf2+Ix*=pBhXQ^LOhchYrl4DHZo3CpZ=X`P{ZF8HDuK7 zY^0P?kaVxPyl?-v3)1B#XyrW4HVnT#SOf2uGcXlM*-$3;cjj-fHum$ld)y=a0gUl- zPFjN~%)}XW$Z0mTkfCg6A9$g}HCTBnTeiyXMVQ=#I6zP%fr!)tVx=16|K&EMt(7i9 zBaj#hoJT^Hzs)PaIOs169_#^2w)a;4LK2_su7m-*dNc+KHfqEdElQFA16)TCai*JS zz(Awz?ZTSJi3@e0NNm6N)c&~8lt=Z>s?M1|ew~T(%oX7KUAh^FT1dXMA$EA=eQ9Zf zy+GaL*>1I`PA>D;17{&aWIBwhlh*=IOc;y6xrY}lT{Mo2IaH)Stvkt&BP z2nJ}eNsZJzp88{;y4hVEjE>&OJ%NKz7Uf)B1bMc<5YlDX-tk)w**oG)KISVY;qvVD z^KH^wvyZV2rGKBVR4bR~_N&7Nn^QSq93fnBv91NV&(%Imr!KFs9&}3w# zuq_6EwXm<*EVMlI2zKT(#d$LZcb5AEBp5BrD3rJ6)2Bt|2~apW$4*1eD8qRUZR0u2 zrQWsg4&ie6rWE5y;-bH294fQO5EFoN@h}a0*f)pU5=4-gtw1LsZ`K-K{7t9a1SGeV z_gq;vH|ZaJdqlo*LA^e5%fmo5d(BZy+16?gum^5F-s#Q;Pd70vOK-KdBoCxJ8?}n9 z{sBQbv!b;j?tq_dq&j}udcW~M0n?;#-1lCKKhJC%-TC$bN(S0zxWvInvMFWDGhm4q zj9*}mzXwXsh<#7^7Z#*Ifjx;~cgF-%-fm~qj(fS-rLu9yxpXh1>LZu=Eb~k`dGMmH zC!QN`zcFaxMUybTvN;T86EcKF6IC|CZ409+?%=(~arN$p-3;{0*r17xU+BqJS0NCI zEtIa1JwzJQv}3CLt$jc`;?zON zkYP)(-$=)PBUuIuX?rS-Y&|cdL<-Ce6x>v|;fIcRHmSQ2{$QW&d&)<-V#E(WoWSnr z3QO++!=X*GeKs$t6J>>=l{=IwH>{mMYaf-Z5fd|l&<&htqO~>z0i8`&Ij1by_Gcdv zcH0vh&-fCpgFjKG3AA1(`*VR^084<7<)F=A zcR*hDk_B#yTn`-RF_$YJ>iQh2|1_tFpXdU0xG{iTWD8QEVdvjk@8dGO&0iPeo;@tF zCpFS9K3v_1>z>#Csdquk=v{QLB|zm?Nh#(qhzRCSLqzcOb$f(d#t0SuU(Bt+8E+;f z_kE1VT$}zLlv4ff=Nw`o)d76l=)MZbvN7yv#FQJwNz>x}w1U^5m37bR;FZwqGUYwz zpA_z26r4BAZ!fN91TqIn%p&EW{#(ylte&hpkzEv2+jQJ`P7Ss$B?Ra)CL3+$*ocIE zj|mUo%h}iSU_UvUJb|i*kddBAIgE(U2pktOrr>96CVfE>C^~4606rS(=ihC0NO;0>6xP+gzUKvAz8ma@3*YS`3d znf>4SUlh`qh(|gk>^<82K3#(`?IIi`q6uz@ko~inD$nQTcr~l;@Ng*3i0QxGEs5aQ zHnZlsVz>Q{s@1p-1zA6> zW)HY5^t-gsxRszasVk@>a|=o2ix`L?a%gK27Q!Uo|Bz~eLK}(`dUTTJ@4<-8 zm=*J#%pLp%5Fz6zVWcCvun}Fe@C|7t5~NKavmS5dN^d=dH(q?(x?qoT${AcxPQs^alv5tBfSu0G z7f7`AT6(1l`CWl-emK?#?g&spJ~tyjw3*4lj22mGeBj0SXoQd}aOMCRFvbP#+37=X zs*?6|#nfzkpO&4Ky%LM83vn5L+{e36uTU4R=JuZ%#x7kj zUSl;?g?vGss~^NeBmny|!fgJaZOw?E21C288n9S~O}6)1pC`g|N&P->*h8^JMXm*} z1JP^T-|1)~*>X>km~%v9at@m;x)HaUT7z^ZWX;_Zerderbcqc={=4pzgx`c*}SZ>AKhs7L4LG(e8xsXwNw4)gW=0bCnXR6y`vp&cRSqP zmS5{1YC|;Qha3DB%u)|g399=zy6+~$A_^0ci&yuG;SzEHrlp!2ZaiG|pNr(2En-0v z%p&-QD#74p*bB1=1W~dmaHBesNcQl@<;Xmo;p6xMOnVH{vlpjZe7pOx5}S-1aPV9< z&+cJx#pM~@yL@dpNr(n^vAPqOoC`s`jW?wa|0Lt{$i6H9T%#FZ{U<8^R_FhRv{`to zaYp+Ofk2W+SBE>E@H4{%BG?M=&j=+YU>7y*m7$i7A-j0-RNhM2r5VY*CB2aZfW zGZtVn*duW^$3Y#72hmU5u#2I^mOU0*$>||~5R8~Ew#dhrA`<0YLhl_vt(A+R!OBxP z=><_mZA))!M1{mNP`uSj8qJq)eu_qO5(W%(C%2c!K2ZS2G7K^n+h;iV!Q&> zwl<1$%)ZxhA;*L=rCHRo;@p_PN;j$&c8$014=UlBbg_kV=X3`PjiB z$3=Jdd3;(?Zj6WKx=%j2NIgx7`++7cIb4L}3bR6COnKxB#JrLaC6xr&bI;E_I9oE2 z+`WGdiZTF;8d7FMv<<=4O38Ff(#U}Al(vyaxQ6O#4p7Fo7Lcy%uB6Ipu;LX@!O-8B zTFema*;@hT8CnPYW5IEYq9T*CmT0{?wZ37ITEQc5wIbB!U-9DMR7^QEsq)VFHkE54 zqJ}SVMu?grrQ>bMbx_*la$0>4TsAUy&!?^MH()w!H+QhK$oc~xS&Tq23&qz^9|iD6 zWN(uQG^@pBy3~f>;ECA7hs8FaYokXmnk^24%6Y1A~$+c5%4KV|n;ABuBlKUMq|9@kNyQ10D zf*?2S-3?zYI;7N@iOoi_q|;KI`mxy%eYW9Z$iXE+MtCYN+}jfry*i7SWWk<~eLvh| zl9=_rmqzk#;vyD2`y)gC)8fAa=H1xAZPbG1Yo7uLo7FZYFO<7HKju&f<|NqOhh0b= z$vBMitoT&vu4;T@%O@gAA1CRu7Qf-Bh&14_hvj0EjptO3611WBHW=iiuct1M)rDo4 zcYeTU9$9d>%$4{5%h_lG)mw3V-q3Hsm|{G`ZBKAAA{X)*0n4pTlFjX^5o$I^Fec}5 zICl62Z$jf^W5SBpJfND!1oUS$do$C8cmdL)8NzjMzWpKt%k49r=gtggtp-uJ1l4Nec|Xh zhmUwh{dJ_m9(9KITf5n;DsVz}oud%09*u*w=1#vucTq+W(7e*$2h~xMklQlfpVaw8 z5iYAWhWPO03M28uENOhi327t$dJjDu2AarbwR95x@{zJB`yb09Os^ehbsh3{CN@b} ziO-1LtA!Wv<51Hnss(3moq1+sDA?HT0~JYfq`s5l>Uw|h!bWVbgRo6Qy}M_dZce%p z6}EX<~{$N=H_Wq7?}SSvU#wkmPimopBE{s_tQfL z24}UL=-v*hc92}qujpP-4~e5%q3Yti7r~HL)8$WE65!gHHTiVEvkgKv!xuNh^$rYb zWCA{WpNp>S9q`^U$$;?)={PKi;5-w`mk+1XO-+je|ebJ)6$szNM zmy5j`8xBY~Ju=U@kKc{SXf9q^iq!voNnWP&XFX@1!^woG;IU|49c*P-xBN4419BR# zym;fz6LSL9x{^PyIhY7RxsJi3y-N@?&|bW0CcNBOsq$h;X9xdO?W|2IwsS(}6McjE zS5@)GEtvW{AUp~$<7v&g%V}LI@Cp(UyH==ki4~1WJ7z{Hlfe5GyVZ&7D^&i?h5c*L zMmOn2*!k|qv-e&uPkYfzgv}hvbc0_a3Lt*1OL@XCT;9o@xW44XEW;*rVqM>5@s*Lo zGj)QW{~#SR_D`b~PD{=>JheX`-1bq@T2g8p9BIyH?ly_GzF((064Clzh=9#qo(j|t z3Ml&v(bG4Bnco@MW!fx>oHF(mWFi3(Gs0&&wxg7ubO7;Q6u7=bX`ywMLAaEI5^J*0 z(@Ky%AdX!}Qon|tv*=r;8oJ0j0+rO+M!-nJ^IK~q8>Ria&pN+}0bV%?w2w+i8zp8V zCg!UcCsJ=Ae8TIj0N#3GQ%(iXdQO8*3+^{)tQB+;h@CGnC_hoTg;BXhsr&`LU|GX` zc2kWb*Z0-DKNZsc0D;5V=+lfsSDUY%>=#{@ih0r+-^dCLY4ipMYR4L75G8oBzEOlD z(znTWMT2=QKtgyjv=f6BwZ3`0_?qxzw^n#Tye4P5C=YtB1!91+rLjZ^K;tH9wDf)Y z^qmW=Q9k=(OE26AJR@wH9#qDKIm`E4ge&d&y<7PWaqfP$5g4uzX#<_(>o|>E09fA_ z=;mvC<|)Q5FIF_`!YXtmXT`5;Eg-j%+%w@t^st9bnjhxeM#MiDgvyBcN%-{9ni zo1MZbnO%AfHe?9sy{J*O+A&CPV>D%(y+AG~)S_UVvVOU20x04jTXVZo(D&gx8oN1d2k`wJ=A0vG?d_WpqM#Hr1KO8jpRamJB zvU(X9z@A>TbfMJ!u+lYMtixca*`SWIggXgx#@D7%-I8bFST>c>xyod-J~f6s_}0t`s}QG@9W((@;DoJzXg^>CH#vX*4KLerj*nezr81;Rd> zcopzy7V(`i(c5&lL4~o1XGFGOg4t!mumpDxSNBvm|yabs?{T(Zh zTg;<50et&ep^zFtZ~-DNG{IG&*T=Fx-0Mh3*X;=^+ZLO;zj5lpXM?2G5Ls)HW1!go zCmHNv(gs@`tYz;-JA6Om@`av+>TLwwa`&vRPw@qFTY0VIxef`^_tT1AK0)6bfmrc% z4UF)=dTHIyRC>m_W5N3dKBNDx#-yz=bUkM78~QHh9YNg}wfu*}nGZ!1u?4{HEJ8WL z$)4XSUKvBI=xW*YSUk`u zmLlw2Mam7wVDgd~eBu2N5lxe;J(r(J_fEDjxBDlN1_5$$XiJP7IFK7(CF7U=jn#F) z&o4>iMtt79#y5)n8G&5V7?x+*_-0an#$i9vi{+H+nF%|wXYnBba(~&bYK)%xI6n`> z1DMkAmWHlqv{?p#{@sS%uA~$EIGeE>nCQw&t2}{9?6(a z$sC1Ej6)ZL@Ef8wnoGUZjZ!s~+^OI9*iDoNS5o{HejSb#LHQ#@WC>#)Ak?J#)MuJ2^i9vjKpBoo zgzj^)wV^3#q$fhoJt>Um51u!eb*7fJFM_}B4q z9{LiA>A)UJK7;&^ny#8iNGyxkO^cW2tUU2;L}!1qOH^4A0AfmA$k|)m(PcB&xADIFRO}0jrQ-A9|%CVaA=p>+Wh-7vw+2 z&0s6>*Ydj1Cv)UoJf@xXX&HZ{}<7tNJks8`6x|aPVeFQ2na#uhBn+ zFLDGC8-Yua61~KzNGGpo#Y=X2d~O~Zn+HmFpNq0<#2z0GP9t_lUF_h2$4oVSm)v9Y z#p@fmAUv}x7K6LiGN-O%A}v2S;P8>`E*b(qWl;vh(#NpM4l@BiyPx_c~kI z292I@^AvAwdVR@V@K}XKLQP)!IJ3wo1M9z9U=g=82GyyXk$4ZH83ZKo-e#P$!>n%j z1#-=LYl~`Z=7kD#x8&L_8% zB_OH6igG}S~VZf{UE#xLKx`OglZXs+y6>|PLScc}vsbwsz@hEc#(aBlHZ!F^Pc}#pK3w5InduWb4I0-St=^RmLXbT$R+bg*s*E z$9lAVS|ar_? z`u}506TqR{!oM?DAfoGQbuNmDPdtC7RQ_zO#NJty2@@$ILt{DMsX{G?X|4D1*JO98 zZ>z5I!`x-9QEv8Ed=KR$y?7M9uW<_SE}M@~VIg8fd%wOBHPPU6P7_s17;i1V4$zi= zr1`u~eqJ(RL`sz=2RN-azLKD^v2?|eG|OKR-iedOA80Ot|;E0k&MCR~tjU7VHJl{4z`$RHPhgj8+m_9^$wykW_6swqAM zY8PBGuQKXPFPARHiS0!<{&z9fm+ulW!wqS|+wf_*>HB|!6Xb}}oIu6Yuyv#EZs@x_ zNowWFNRak+w7hZfIF!xiA3&1|6HA zo(XMfWD!I336EAmTaKRCalas{xNT`sf)N^*;`ACD$Ms)3=$CjF7g~*t3jNn^c}8r> zC^&n<)WUpWhE`b3q%L<^l_l9O3%9g+#grl+b10vAp0X@J+`yA9{GvyQ0zEVK|3Nv! zWXuB3RoSkHbbJk>h~fK^DI(mN5kd@yy=m4H2&u1hvT6gSlJY>YRakm zC=Q#}vREOhRSelm?{D~9oa9+F5lzgO2BRrbmbIsJmv>7l)_=~cc)mnwWqhAj>H+QI z?I?Hm+)seno6$YOcxxI&>J_QPHx-b8ZRHQGS0%u}b^EfDJmb1B1-i)h3<% zM;snz$f&H7m~+8@a*0W2>Wo3eOjF;M>TJ(v26jfbZ|Kgs7Sxafzc%r6MT#_pX#BH_ zN84d+ta#mXwr;*T_bF~-4_+T8duXz)jupxXu?uJlfSLEPq-P;yZEedv`2_h`?4kx+ z9y6CD3;y^}Gh4|amr{GsJ%FZ-vA)563g3uoJ!E}()ySi1u9ulN-vi{OfkpsTGqV$n zCV(n~kf07YDAd^}BDwclIy;Q4CH|2U~Tzd|w#%59))K%vhH^~!J2+>m*_+bNs8tII2t%CQ`PCFjno4f{O_@%+OB@Dkimxr4X=&GOy;oF*n(fzt5zR07YLa8~)5>(c?!E*&pE8io)RxdU8YhE=Y&K+rrAjD=(REO%N1u=g zMOM&J_QrJ@j#WnuDqP{=M8Ks9cgikF7kU4*+r}Fo66+1Mn}LUt^5G0!;FON_f;-ZF*VNucsIzrU0NJ|^A&8GuMbo;)ZS7C}b%wg_B z@{qY&n(l<-&!@W>xgpeUgvg#5lriB_Y<)AdK{@vpN{9QT*ZXK8HreY!ha{fa&n29CPKVv!amE-3wUWh7Nc2{%X zje}+Z-_zvn;VCIt1PLd?Lb41WO+mUDHd2AALFh)9J(=ONIYd_ydz)_WoAW=%)4O;n zM|bLK1kEje%!xzLe8#1F6W70#PuPo!sbybHojxh#ICAwsYsuV+&!}2b4<9*NA3*+! zCj1tWlb@1d0V@fx-7(04C4_D#{fsZZwb@is{ljm9lBMKD! z+l)I!U{xQvMA}BBW^YE+Z&5J0B^{q}=}+z0NOJ^sQz~x&x#kzW?T~pedTpra&^uV| zqIyQSvBnk)KxMRH&hXjvIY5ir;RxNBZpE}%+t1@_R79eEgHsrYfc~l1&(2ATQ*>&S zBE{YKOH9z%^!4(1?nf%1E!j1?IE&F^+Xx6C<6Js{E~^ zJA9WA?Nt`9e?Yf=GcTzFJZa5eOQmB|cRNl#Ie*oEPJelB^{0#S}me zXKP>N3hCa@z>xTzWe$^*oWP<_$A~M@QH($m#C$p3P)>PHxOWaIx-<^<);P;GC6hfTkE*!;A$K z;OHD%S5L*>fw#uFv5CQh!38;M>Ko*rO5d6Iw<&xNEr1Z2FuAOxuLCowBz+`p03)f~ z;kG2t+3CFQ<|u%AzK`Zd6p-@2uQ{x%q%KJ3n!QXKm%-7W~+8p+1_hOw#NhL zrTa`ztN*B3{x|640j`6k1F`}XN8M2Ke( z=xvTtxe5XhRyJ$r&jv#F?|t=o`Js2~ zbNMS9jEkuXbrcU$HZ8#}XT-|pe7}?Q`oRiUKj$>&nx+l4u2Y#nE#E!+Mc&Mb^Glim zcoyLXAa>Zf5~Kk72mbzse|4Q@^Sn^vt(gYH6ayeMh9l~W|9$rtM#I#knVny=Z5dXM{FdI~s1?!LG7^-((0CB+Sy{$wEJXNWlZ%fqZeJK!7zKSl94(H-duc zWLUENC%+2rsB7E#jcKQ~l-(ISdFh{rd?CdB&NtY@){g%Sxme0Hnonxk2*n7Wf9bLa z25JDFYHl+}ecX>!8ns+N5&hdGP)F!;g<{n1?ppBct^j2=-r=zmWA1i7c;kc9yg{MX z-I%+BJKwNW45D&EwK_yEdKTWCdatobX}02_`}V(~NCK8#Xc~7$&TXX*Y?#P~hSqmz z_o=48CD3E<0728k%VKXm#Bz>k)#cWpztdSt`Sg;_O3I%%_K;TkNEDEhDz5{6sN%v! z1KK(35BTE3+CHd^y6|(9So|VyQNV)nWuC8Ix)}r{7=G=chK3$Mm;Qmav21Lcl-z^r z9^*>eX)u+?f^V<6Y2xK-6^-HG3u}Ngol1NMY7qM zmn7B4VI8gl9#MK$bifXa%NGJSZdf~K{)M6HNxqwdumSjIBEk~jAC|aQ97uKNn*N-iT9#_^bj$0Qc+_FV$;+>@fE#pV$RZ zm31MaoI)8hBv!h-odwE;_N)mtjj$!27DWh#K3g??f~f1*-kNq?(RUt4_z!q62^@Pvt*ycd6{B@lE_I*& z)A!E5p>VOffxf|A6d>?l_rzdZ{M=_JzBfGY5_PT2HBHvGEgln8r%xCka!79Za_Pe| zl6ip=FP2K|l`&o{CDunm3{`BE-McB{wN!aVxm-}~GnqVnorXO-JfG~W*{`A(krUFe zCuZ2i2J8KkEhFxnBtI=DN=f56T*-MHf3Ik;Uk7_naETKR8=D+#0Y(q+5Hs7TsUDo5 z!LM4$n_2?AnUO50ZN`42Q8d)r+4a|5^M7@A4Qk#iC;p}EjK0vJulR$}V_sa?p_43PlQmjvF zj5na30(jUEe4RkX(0@DbjZ?0{NG6yhW4D?YxRtb*Xq+Y=SroQl5rcF4|6}buz@j?0 zuMYwOAv$uoim@=LxtPBNP$`Nss93HM#N4aFMvDqk3=&a#wV*-7gjg5^L?aS06tP7> zP!KVSs7O~tAt)UjI?T+s-gBlR7?bZl&pa8A2awFndC$A|UhB8cS`fzbWjNzv+6|)s zM}sr=g4bg-r)xehU_qGnnU-VTDz@8?xH(a2POw1SRw+nX9C=|38glb*Gixy=CX%s! z1Y^!aI~!K*n@lkvKz)c9tsxnW!h|j1oClj?7Ude%>65<9nl$EI6QA$RDdr6y zANhewC-b&%vWG_01#YLO52p5=v7N6G;k)dB8t zO+-8l5->A@0Oz3(hSH?b&CUbp{&B6BEh@B6owsz1$py@%;dDVNWRX&U+_Iq_%lCp` zRHPXzw=DMDI^-%?;YziC5Uc|o+not0_=bOhKK{(DB!Ko`=SRkYC(z%0Y9X}Xi@8S+ z@kaiqW#soQBggPY{-Xttn&lpH_%-oZ!EyXLJ;>6bQXY3w*?H&{-p*BS!_H`~VzX{Y zv+iL$nsyy-f*W%Iq3-F!c6M*tN3qiGWrJh6K#sG`j$#Rfc|G3_4PiLKcZ83m>h0Qi zRP0D1kL}iEM>aPESp@~Kkt|hhbM6xcnK!VgK~A`jUwPq?jCh;b*lBRgNMx zq8TJfyG(gwF71m17LA~qg9E-jlRWd%Oi0Q=5k0vxY-?Y@D$prSdaIZNJ>fjxm3-DT zezY6^kthGnq5w_|OYZ0zxuf{6N$9ck&{(gx#b{kxU{sUVu`n8~5yDg&x!#o6Wrle` z-ExCaLL-D^9TYOSL86ek6nhRg$cqTofWiNyOI0N*8ol_~eq(F};`tWdt{tK$Zh&_| z34|BUtb%7S(&CAi*7UOG%X1}2`F63>t1Ex4%k*5yXFl#zhJBu^`bX8F_C;mbJqc$p zH5T`TzIwu~MTJ9InrZDB&`spt+{V-Mgw1AciV~wBsST% zTE6t)9}P=yVOko_2mqXW$?%3cs1z4B*sqJoH`uaQDvhgX4jc&3e~X`N3A9~$=*&lw zceM_ekUo9q^zY*!jN`pdz+505T;&cYZu9)$7U%EK6?078b*1W&v0)l0I}ovT5AV;% z8F4h+F!P-0U3*c3lt$SGx18PXeGBnZk8icZYAG<~4i| zbMR+mU9?+fwCa*=&s1cc<6kWT-syEC9`%8~?%70qFj<#zn5F$2OBjZ%ytW)ju6p)gUNT*zN`I@_hxyQ&1jHpziCt#s+C?gPc9;WrbnpWRlFKV_<2b*l0W_Dw{trY4 zML@XaK7Sy$ac*{rS&BaBBBha+^+~d8l(w~fPU-0#oo^-tpbF3~W87ymmxFHG{cF$! zGTM<-@+XQ9DIX*~UN`OkK9%Y@(PKQpQjIqf%0e>6qZiV20}U(6>X&T9g!l3t?hvb4 z1=Sh1D@qXzb4`9bA~Y!~3=(U%kgqILJn16$;2N?uNiu_A4)B=Zy7-q&f_^ds1yi$m zTRs9MvZr{ZD3LZml+1x)4+6QQ_)zuQcclM?8pLD>2@&X+sO9W0*EaF8?Wk?sUlL!C zkC|M!!|jUu$94r%n>}Y5UW2>=6;i%Tp1@IDk#YM;vaY+c;T?cZBYPsJB(>?vy29fwRZAe@QU<}a5u(%&QdZ3MsHJ$nn7+s=>n zFXhC2M*l7(&jmI-!SABX_PamN;-!{jKMx_lt@gL}KP-J5$)-3Y=M5Vpw75P6;5GHU zDDo#REXj9n5B5$1g(v_35^}PkvN#3T^$8eMzVihs zaH_3HJPt&>330V44d7MpbEQnm zOpjTsJK2=}y=q5X1_j%$dufpTb)i<^%Q?(ym}&f8yVg{}Q#16_j#0#l%(wnOXwqs% ze5;e8n3^YFIoV+3%HkH4PS2%a54R>Ja_t)Ul6AU(15Fq0AF!U4`A+vwcB^tof78&t zJEBE>)|=8EsAo2##|+%8;11!^#v=bZ+h&9Ed18xxc^A#z3CkW&`*##y?{F4^dz!lU z2OyplJ4-Il!SGrR`OV(D{DdV>{lUJQpsAj6O^lz|0DXsu3q9ygdLY>S_h$?5@RDLX zV+~*w7F=LUn-TDNOZ>DM7m&c!*SQuXku&qin`7ld5g z`@g7qRDH6pR8?2l&c1Aq>;G|!Uo)$&u&Db!o61QLUV1wat`3uGfghsC;xN0>qOQd) zvHYw3BCBW92umh>-30DuD zc}__V$F`^?d?BoVsFJ7n*^eU>){3FfO9sq4G%TA1Aza zk}lDUS0|%@cQOjL8~ZM}@B+NgHFsY${*Hi!r|}=8?7dpK`d`mgruu$z+4qyP!#!wI z>U%=&?|<|UTV(=^$T>mlSNnEF>*=C+NAm?h7q;kyS)sTu01Y|kOT=SV+`6-s8Yc7F z!ugP#BYtVw_{2mH*oRO;Qla8a+y`zm?Y)F%xtccEc3LlZIljL$U)ue4;c{H_}zs?TIUpV zm!r(CQJSOTewM{X%-~eET+k7j`5GL{sQA2C1VzwR-Ayi^P=W5E@I#@8ckl@jB$}>* zKq2@!rs#`Ux1*q?JvK<@k5|feJ#|E}N;SwQx61M7Vt#oW;VpD+q@LRPAKOgNRCuR0 z%F4vExCleDx!a1sa_EbBXYz}~IsSvp2{)itTPBD3imTY)35OgF6e8Jtg9kd|0ti59 z$s(n)D4?t3CHEVjN#Eh>L&+si*a6h-7zzvVXFJ#)3dzmJ8l7oR$P*#ykOo|Ttao{J zT5}A;dvqzrC(mTAUStwx%LgVV9|{nz5jom6#Wf+Pq06}b>Z*Ab^>D~r?u?<5@yhD~ z$rT?AwSiD(lVPe-TE}aZ^dk`3mCqk{*OXH1EfJ1)q-!C`!4EluG$C)>*_pb+sz{WR z({f71!%Qy8Y~MNT?&KeQV0S0A@55Z@h}piYuo-=RKb2n$Jf!>GLjrRVHE16~S)4`Z zlL9j^#BvUWp1=hJcpQGx{q6~@F4Fw$KobkgC~o`WZ4}vIoq_KnLT}-Z_95SyJ#JY= z#^3N!rEQKf(SO;UX5|Cu#M*3NyLM3bWGT=H$xSi2flV}pH0~Zd6D~2N=+O2tlQ0ct z6a#$+WEkdf?3(q#J;zuTKk;wQP#7VVdF-b) zkjOt_y-ps#E+Fst%3mCw5v)B@ZG5UaSN;OR8IFd0B41MCw=%&II^W!YHHA^!88Vwe zyn=LE9N#oJIR0bKfU!ohS8f}>IIEp>J=4}%Yh!veX61eB}#9*NWatfI{-8ffLy5Mw1#8%su#IsWuE?kkr`+}#1PUnLgSsuh1O{Utam2)W)Sk%5_eN~W^I6H zq+Y960s1kpChwYQ2B?b{TQoKjl;X6cypI3=sc zePk_s{s|i`oG1v>} z!TL`X9-y`<=iAgF{$*DCc;%mq2S69Q{d2Lb9{Y?|#5(z>PJwLmwQ8#_j)1YpTq|J| z5X~E#ZSLa>@%J`oXZ>AtGR$*N{(oid9;qD4LA{4co>li~}QcpwGlQbJ;q7UwC6M z1M+A{;Px6=>M#U(mcHc^0y=b(Y zLlD2qlgY*9(D-+UjuC#jh?&Cu7=xPk~Jz(!+Li`yR@K zaffI_r6r^!X&3AtE8UltW`@N@qdMJla3Hv)zIU^=UV2tX^Ja+ol5-go(NH3OUUvjc z+>R@sd9w+&LEX*Fw&6)gN*R7I$){5JWsq-V9DA7&l$(~rGdsTm9zrzZ z`PF&7w(_>M(?}@oJb2;{xfh=4E8&N?C?dHi&%kDbiIr1q&ur^lv zsw`pzIRtuO3x--q_%zOQBH5P-o^bB0qm1{=1pX*fybM9d>4DGREsl_&Log(0hBW#PbSA}?UY;Jy-i=_JGyNbE(dj-vZ`+JFCoPZhN*v8YO*k_8q|eycfJ zid6&`F^nsK5G{NRwcFrnkaDkJG&ES`hCY`8&Y3vB-{sDuSXJV@LAr5FH$gF*4S z;1{x~J~L@LgTvbYa~Htews3nsO?OeUx+bqJSfR3M#054G*f#KRt&uta8${$W*Lgu+%rwkSwx9H;2?;8t63$obv^RtzL(ffG&$Hy@^GL zgo~20Xad7BUusy(yFjz_0T;>LQvPjtU54cF{YC!WN~`yB0mZxq-75%EfmkIRwm4@%b0QMU2JB zXxse@W|7ER)rv;9CLXsGK~bbNtzUHQ3XCI8EhEF~Mk6-nGYp%M|8jZTQaJDSPg|zyeRovME?jf2M;31S{<-Hgkzkz2v;R)jmT5wm|Yk)btRDM+CHSgT^m| zk%zSEh$4>Ms{TSnbW|80MVxB&zoH^KVcNx5qpQWi!~+!(nSZ<)ufI4s%93+LGwX<* z!oXG~otp7W0>B$>olcyWZo3mfN9er2Jf{O~i6*?q1i@3?!jOv;Ocf zCF33%!UjufYt>(Et11y+2XKiOV6nfO0QWEW4dpOeLBcw)^G=?4xqhhk81E z#=uK&Bwkmx4K*!#X_AzCO7ZTk0PERHpFW6e>8o|3zrdJ1F^KDX6LHBQoc4yTr!TJaat8W}yn}A-Xsk3Tr^!Zfj>u zeK#f8{W0#%;I4JT-DUGW=7Zlt}0UX$#h~K;rqZiSKtGP7dMvO=2M=;&ou1A6F1hd5BG}mc*4EHHPa9s z3CX93SucDZzWfzEwpz~i0)vrjxxfSq5fRi!WEVOOAOm7z^e0j|pby2Q8Aw@!ArPa$ zG)j0Ss&)oL_6ZH>JTK^H-62&4Ky4{qk%-F^i8k#t&eqnM`FnGoEwO7rbm$l^Es*=W z(;^f_qaD`%T89v47ZOfnNG9&+=1|owwy9K0c;03Nd{%3j_t)OfDymBJLEzK%s6(1S|N8E6`j@QZRq3${G)xlM#a=6h^{)jt8itIl&yi zy5yQFryz7@w#O8Ap<`nA^E5u&Tw*drrr6|fdNCgnJV7p}gJ5GU9)DEIZTMf5MLC>p z-*~}ObGyEqol*2}##RTer$(DbUZG4`d9}~#MGQxWpypX^WH6Mi7dRgqGnuC{D3@GR z7L5vW2uhjNW}px=GOxV)v+Ehf{0QKo+h)PxGk72*qP-4#LgWde^>V~;wL~k&@FBss zA^40f4-Fqi?HnxG9EtTa%(~`F$Ck9Zn2E;BSLBK1Sey2Q+v>%v)tWY7;J5M@GV#X2lCW3Ht;zYARD4!5eCXk2GBauCfM<`nmpFql%o36a7D5NKY)dNr|HROaw z@6IePhM^b60Ln(DLYN@2x~TGBM=0YE)*Z@h+`&mn(n9*23{VabNgUACz~tT>mijCO z6c{X?6DLX#9^xH^s|fbAw*=0W;HQt>!r-`Dzq1NZG^r29Ot)jS+}V3b5E5@c;5q3xqeB0+sbp}9ea1Hlf# zYxOM32AxDqyMnhwVj04;2pgRDr$x|ft4C&C=4fvu)B7=q?F6qe#b}VV3fs6(hlU1%7|QbI~-+pj?x@0 zD|OXDk1F?Xxj;wRlu?=nI7I}isG@KgHo2afq_EeuBjMW_SIWk1au%T9aVeol61)28 zjRNuo=~zCP4Ql8Nc9PQ}3}=r8$Spyp@!6c+Krlko`wSa+VNpa1A8J}O%#-LVb8`c{ zkuBC=;<_`0lQgvsX}CkN+CFARB$z7!14og2qBsw`+^TklZTmgEk7M76E_et=%r8;dhTXv)>v&fK*1kb-VY%!hx8o+qjYYRKQuC;u)!^p|#{5`mwLKO(F*ww1Qi}7k$0_D-S7&qaD9e^ zQK;w}0q=k)=?)6}7zi1q8rS08|DeifuI7p3dvWvgy^pRU8+FdDhjy^~<_7eSpVn96 z#%xYI#Q#<|q2KMm%E}`%Ow8=Q>f8EB`1SGY{H{Mb*Q|HZq{&X90Xu6|VAvv5x%w|i zI{^ia1m$3;=27?XJ|gkBNV~p!=1u03^Y{md5dZ4p)csJ;OzY44(IkU@N^qRkckoA( zA)kJ6U}wZ|NY0<%!5je2>;FII;U=AdEV@0XO=!JF1}@-^vijLI`&#?N9xIDJ4co0SIxj+zj;<~ zR>1EK9Ih3?wbY`Vhr(-!0f$tXB-JSp)hn&Qo$7`@pV-jtY@-*jc^}? z_^Gf)yBc9jv2-r9t^JRQrgqRxp5W^zv>J>|F9=E^EPJ}`vpogn5qwyxKom5K#B}?u zY<^J3%Z5N|7!0j!q8PaFg$Gh+hCc8^(6R9wtV;zRrMsc*h<)NvpNoyo%FMWq^1d;l zCQDTv-Yzw6R>EH>bzhmHK{>7Z{F)g*N3xZ=WfWX=o#*u9_Q0M@b+sesU@nzVvWvN0!L1kWmQ9U_#d!r)5+jSP#>)vR2%F)_vv{a0$=S>Y`WEPo}GwRkwEVIyo!5 zli4PjzID;_{#{%I$sP3+AHA@yxS>Cnn0)x$W=7zk`!wCgl-hxbggYYX2k>c#MWKd9 z?FqRYJB9Mgy4*lh^SHhVHW<41wVP`ihsBul%WJEC`PsY+6K^~EX*)-&UnkPA+?SWN zozurXc(Sxf?^c%G`Obcw*iyb;;KFcEIfFbIpRtuPi+KuPNByaY?jvfZPd`a~2$>8u z)PCov=9l+F;ssv>M8DB%MQ}mf&*2T^>AXE3=&5%4sXNoKk^SF*xby7R@=lEl8R73X zzU8&gGku#9h>e4X6yz0x?uL*zf;x#hsBwzxsYsxt-k2o`DAx^4!C-`l-axI62-rFa^wR9rz~e~!7kdc*G<)!n)vDKj>%4JI2f z322fS@**I|k{mmHoSyEr&xks<%Woj1R5=+pzUh384&*)1;m{c5!_6nS^vILVT-VFJ zkW18wu1T9Y%*#kP?|!&K;fV4XgaUu>DBF%{^UXNK4a2-B6_!PE#Rj{KsGY+k@$@Jj zlYb#p7yL0)Oul0jmB`YZ&%=e(>Qk%%t~0sTurTsBb`AYRu0xz7u!W7BHIZ|ve#Msu z6|6$ak&xm1|6M2{>kU-wf{^wahw}8=+J7#)CV9#_@K)pEcQU33#Lbep+O6n zMa!;snYubbpefvju#Ss6Kf4QDPq*`W-PpSLR26s>%qk7;t-G#u!uheIId|kwFR3ST zw8L-Yi4eil6Dby%{M~k~C8f$IWEtKrzJQdZ^v}|*~8RH9aI73ec))uKkivmrj{q&XWmwIoknBj zNJQCN&LZP1%k=9F-Fvy#fT_Ny?DPc9mXTcis$Xi|PNV#QbHwbh zZA46OtAYQIrvFKq6oN9TS=E0J9Ga+jpR+d+d`Z}lEDsUn<0|;r8v^%g z_%QH-xOdl3(V_qUiaH?T&{lhas^gXineazyN|!qEP!p84^Etck0m>uv>bRq(EdTYg@(xR5zmrteUK#w z=B;65mUZu;?Br8Nl%59nIE^3s^`y-+M}-|fnD=|m*5h`mPg2U>mbtjQ7#JB$oIG*V z(XfN}R^$L6cjXuO4pu{DLp)F@k&)TSOua``%_OhuuMUbtl@p4~FP`pq>> z_*F73a{|Npb^|>eql_-5M}FvwfvF&w`MoR=q0ojn7+OvT?g2=tFSvHHck-Av28D8g z<#$}GV|OhY*>+IQ=U7l?{^F`yP1oQHNpsbxKlUiFjlN%$bjD_8g8J{RBj2Up&VZY1X8gpi zRt0YQ?SOA1Z7Opb9V*q0$*n2wdHt_?UeSLrExkkLWrTcu2{cTl6!~mzy5j+AO7%)T zGPNg^^Lpw)&!H^VRGq>@q3uaiWlPDc7Pu#O@q7f8BfFe>)xiDPw6469*`4`S!^Tc# zJEC+5rRYz}AR$_4=rRcPQK?&E=#6Jvzf>u}RUGl};wCur7X%uae61Z`9D1Nr=9S-K zBZD!Mk`vp{b^7c1C+Fd>k9U6ahu?|$J+uUIlku5q+% zXNXMC@*5_q-!hsO1~rbZ_RhJX5xn)QOVyL)pUQ1@3xvs`{3hE)j%)D$R{)VV_t;%# zav;+cr}5IE(jBmNdBML33S{Uyz&)`%9=i11rTI6f&e{?uCPQXK@%&~K zK1zYR@3Y-T*oVL+G?D_u-f@4@(y8Z@?iHg^O%4r;k@m3mlTyBU{J;wg-;q zqAFWAD`qw`{5kCBRO$q;B#NZn5e_z8_jri#1Ro)xL+URP+tBXpJd-Dh81cX%<4~1X z3|8egI_S5Qr`vTwwi0!XY5$f6S0a$@8xh44{|Nq1{bDbCmhl#@3r0K%cSHyo&j1V~RiB^3I+(7@tRIHv0mL zb1sMbu#LZak;(HyM*F#(h8^8|*~Ty8!#y0&y}*HYFScLHUveFLsXUQ$YbGUj(&Sjezut49b z*(_XoN-2!}oAjFxANyD};^jbmwK-rSLE+y#(&Lmp7 zfL&@|;GAZEwLEQ8Q~9r=6A@)2jO(-diBz@zf@fr$QeRg8E(`ks@P>`ONj#*`$3JIA5D_w^XrpYL7tC*5Ec$i^5<&KS`pM0M3MbfzKMq>o zy2I~t;wOSquEXMRHz{p%XxjS2+Pbc13$pY_yB3&6an{xi41a*)ulC{2ujZD)!o1(7 zrDI(s`EJNnc!e!M+uYS~x_Vk4H8dqb# z;;ZSsnqWJLYgj`=ugM!%pSoL|B0^n=KcKk502eUl8N==DS2cZ?*=YY}yi&XQl*wVB zs)8B+Of6nJt~So@or)^*(r#{FW;OS$cH~#;W(lG3>y{VIm|A~4*!}JXzq|ftCWY2b zYlu+B9%Ln7%ba^%;2Dw}0!eYN#S@{@4+Wjd_S++!$4lo_I0xdh&PqdnB{_^6k>!J- zGnja{^odbXC(KkmFD|rZ?Oo*Zl8_(w?1i`uXQ7P&voJpcoQL@6CH0^0*&!;Ww>pECX*m|O;&gSMIUHgMGg4!IRT6<*i|{)z;0 z0s+ZypC#1*4tW7^$XL&)R~bQlS|>|)pg*?T=q3u9OKQ*eDt|~2M}O)e0~JhqB*!r( z227=I9W0BXL+lRZhkG(Yk7#CKkmSC+D$b5@O}{Vmx$9#5`kF>tI>XZ{Bttu=O5LtL zA*JKl2Jdfjt(WXtJgNVULN`o8k9664CI{6-#K^S|~j>*IjwUui7=aOXO;C=P*G`@OuQotz(< z_-<;$z@eL2Q~&D0?FAXN_|g8(Pg>1+Fi)Jj68o)lA1o5gO7$h*!zqe ztu^hrJ!kKk6Kumrt|eLWmP zUou{@R68zW*YsuI)fy`m+Vm4FnJ;rGNYD2gfkfxdE*rk_+Wf zoK9wn@}@9PWfR@dC9c@gY_^_z2^(x# zwJ#lO^JFFip|I7ZI-C>#_G*0!sZ53yx&6rr>^(@NsTZ-1m-eEtF|#cmcs5Jr*y>4K z-O>K+d)D-V82nAEBT4M&Z(UV%ZaL&!tF)D)iFzUS!mvvZnhybUnla_Ok6@xITV*?1s8$~%A1F~;ZEIg z2uBgB>V%+yKSd^>43bc@%WS^YnfjTB#am1!r}g~SMkRSw%GXh`UKS26YUK!?+>H%U zn}x$7wQ@vVkb~NR7ude+uorifZP)Qzw11jkC#dJiP1Il|M`@jou3NEZb z-~AJgp&}3uU|V*x#JdDRGs+#!X#Fv3*oUT@FH_6c zR<2c-M?N)}3^$$Rt#IO0I^)>?v0gtwi~fE@Ks)Rv)3Yz*&MI;NLFI-<5cMDc6~F=E z4Lt90mdZR8@aNA-bs8*4j_FCo4%Vl(iUaW3j@0eTUfCQI>|-{i-^{I_{Fi=AB{>9U zQwBz<4vd;u5Wln;=;H^Qj5W98$lh^ioJaGPy`IbEYN#i3uZ^;AC$S@O} zIcc9?8jZX$w)_2vHIe7P>O)&0*Sf$?l+{CXt%t$E4aQ%Kzsz&GVT>~W1tRQ!+`jUH zSDHKb?fiTayW|G$;uEXv-$f6sOVhLO5LVtMJGF{!c&wYPx3Wp)Br$%%uZM|T_gL=_ z6*Q8`PPCR7eIlzAfZhaS8@izR4$jpHE0RaWDm0Y8<$n&x2DRCEtCXHEZ&f=&`<<-1 zmrN)Sr&WumHfpNwIi_^;&VDPq^$dH$y+*_0qJIO~sPP8g*N|+Cbp4ukT7_V<_Ue&~l)rHMQ%g04kxU1!fntow9$QekFf;_U}-7%ylRYa)?+AwN5;d6Lz46`KF1r z^qNNGW`-H~m|qhkZQzv3m4(5Ws;LPa?84Kl%X9NnSV=4a}A6O@ctb0ceGZZxrgn%NSRr z6_yxIwF4JQrSwwwYXco9ENL1?DReIr*4ik~Ax@->r(S9BVJwTe$29+#N=6htO!wlC z$ERLqreZxvgmB`Tm!AAnxS{4*9wUJUH!hNSH`TuY`vl-}Y%~(!p(HyuN}h}jT4SbK zC*Zqt3rYdvH1I@#8v7=CU@uGw_Fw==xXpjV(oZmQ2=B(nJDn6HFRlOYXT=e)SuJ`L zTVR@T5TV_Y>M~4JV1T94yiw4!exd5|lT!NctYo*!y6~>5OpHY`7U!b%i z3LKd1-?85luBh9f=T?@+;0vkvyH0wH_3un8^1Ak|-&-U75YDgibWeBh{l@Q1;Hs-PYFBJzRBROM(|yeU;RF2|ZS5H>UaNH^ zeFnhaeyi>4`8>N0_JC*Sd_0@306PgK=x)q7_76oAae>bCJv| zQaLg5x~RpD;_aYyBf$t3gLsN$YRVy!hd>2D5)J^*C+!P>p6wYZ2SDn`a044ma#k>- zrZGU@t;?s&n7P7E>t|L`^4f3xZe#-{66m2`*eDBUJjCsXn@d;by&6c(jS~ zjOK)Kt7`Ny7&zqGZ$}>%(wHvYKK}UZ zl|8q1ulbgp_rN@~Mn1K4dTL?OhBx(>c6XF45Z%Jbsz@o-$;@T#V&+7XHS=26`GPrx zRCrI#Q#VoAlg~S<7^IG43^BYqO|qm31Khv`CCq6RSMy#X1c80P`L|@qUgoBUUbkyI zp36y*)1zZvzbZwC($F}PaOYx=*BsJU=>}abQ$P{@I+`uk7A^k<$Cm4MV(t?^LKa_Fv0vxcgR{{+0p5Aj`hi2i-1|@*D1UE*@E;j z7Kn8yzqgi@&0_k7Xs9UsAl}h-6*zRzk84{4>unTfkGr24$DFHPPD)PbFA zc?Jmq69suan4RCln2v@OGzU?GZwM+0=6P>w&-?;T6hE^r`A3ezz($TgH{|*FKjIA(wmr*E#U<-?Udd82H&Z}gj?5JAa;_E8-AVN@~06BDo1smg{vBlTrCpm z@zSwfq|lMrsUZw-1v*A9ZN?aZ^E6K^SZm>iAxeKkLtojSh|Y$hyD8ng09(m@mV(vk zKK|#~#__s+++fW~;feA8T#hIQF9ojk61+7KPfH)z)rY2Z|Fps9_gTh&Oe&lj?CaPK zpL992wXy6D&Vr1+OtcOlX1mX^dp9|ycQi^9%77!PgoZ7V$ceFi877!8znW)St!1AH zr2GL>xAho%0??a+0DVL#eZbGs&0?CLIlv4H6j@+1V zWUXmHDBY-CgA{uM)BYoI11kTj#IO%xZUXTcoqJ%1FjJb|7EJnv)9a*Ge7!gh|M{u zp5o}a&jh3Gt4>u;rCi!dNTYB>bC{w?3HFYtVI;fGRl)v-0$YY)g0q7lKh>`jHA(T1gNIm>OB_rXpk*s7&y;436 zFEa*JC-zU~h>$1_+(|9DCir|qPY$3v_ zB%5ViwRe(W?>{%$U}l33ccy{O+Yoiy zpjt+d1r#3mro8JmdV^;oZCCVVK7UQr5`;cIPNID^WvD`?=gTr*oFE-2D1|X3qqGhlhF?G{y^bQjiG<`B1zA#N&rnM$`DZq(1sK4J#&ON4*#+|g5T_r%5& z8gFP~-AhiwPBa$qRg0-4NEHaqE&DGGrjCbmj>qpV#sk;70uacp_kb+Tna zKE)<+(+K7mVV6cFkl@IU-Yymf=JPR>pq-*tQ7tHGv(FD6Yts9djAsS5m+P ziChAKBK;^EJ64<74L%TS(lAg2%?-`HMx{*RsM(1(E3E<1!eC_E zU!R#d0YfhmB`Z>j3IBjqN|?!$q6g|I^*jA)- z;WbVn?N?2ED#W#?6kfbb;dZ|az+^`Vy#O=f{Y5zrhqzT8>hJJc_ho#KEyg&FccBcg z{V3zgn`z#Ym=On^>$3Ixzj8U@H8-lW|00x4cdx*?f2@yLqZz31Yjs

      Z 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

      2!H=ceGe9rZDYYWDSH3_gp0GcsYIy>Xo{0GI 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

      #8-5aoD9; z0w<~eIGv5~WM@&knWU_a`aS5H$%}3!zFC@(Y1$7_be=TS1?9{gSm-rJn9_tbLujl{ z&~c~S$KsY4!DSAF$mbJ=ObDZDO4(jl447!`kU&{hchA()C045 z-TtVt+hiDe8eo$*kS%UUuU@5DsoJ<~^W4`WA5n_6L36|V!Y>U#8~V&6po{=%6zjT% zTefOlf`a8cWZi-W!H!QL*vE|Y0cNB+dFyb#@Ga0irHxz0?L`PflZx3wvw3C5C&Us_2f&dNPvZs%M#5hyFd?Wv>}{z~ zn-64GdR#(K0kct)!Li}1iN;eSE!yxoW~bYZFGdbiOEYY>m9 z>%MM7(0UPA#j@N=_w&No`wx1d9yGm;wCJ~VOl^M@)Ki>vX>_38X6QEvVF5+f`B%14 z5A+*){2i;y;eZw#y9o(!=b}se)cUQ!^a)lzou2jvgYxl&H(s}r2@YcOUoDxu)w5zb zPLHySDAml`H!wVOA`}`E!nKANxm}I!c_Z@%1YL;RQ1;Xm%}oV&K~`n9c>@D>>f>UU z@@Ghos@#bta{(?Jysh*xdi?pS{<{`9C}G3X`~YQkYK=+hnl6av7Kdi_>=^+D$#n~= z;}L+RGU-!h$+VxQsA9`#aKhpK5?buPVTgYwl_o`XyINj3u_$&~T-%3Ale{(lf-Bc* zc^LULT>r_k73MJOrfmIg=o*y`lqV*$oS2VNVffNyYbnr~jqkdwKw!f-j!|x8%_>-L zbH`v|KzX?^+oSSIB|KHBSTQnmh^9>XuNT-&V{XxepU(v z6AY?(lI0(n`wyCfu=PgGz>n)_>%2HH9sEF$y*jZ=UKt@mb;%>b1hJIZgar^-XuzprWxbzYM&e}=?g7`x1O zh&|LesVe0%JlvkSg0FZP;j>#0ccn6!kIKaAKy~@W0D5;GNnj1YET|eKpf@rf5E&58 z#0ZjyMT23(;AAE8E?GV^oJC6f3F{O@m+~W|$~c!hore;%YU<2hK}G3k6%=#2ehOg7 zb_Ui1Uog;{E+!#ORuOeMi|&A_MTZSayTB*YF|=qL2W-bmVqbJZ6e{y~D!wz`A>xqn zV-M5BSKQQN=)JiH9GKmDq_YDPk!!Lq56Qkv`Yf?2!`l(U90-)*pxwDY4x9z+1>E_k zoQ`9*f(DR2n(UM&L`F3$QA3)MG;7|o$t1mgO$5kUOF4NGj}^y9BtQn?=D}8E`YB3u5G+KK&O-+JZ7#L;h)3Qi?bJCvd+wF5hT0kJu z0-BQD_|W#_edC1&x$=i1@a`(Z1;%e7JQgZ+6)+1AHar^EmSeTa0XotHec%x~#w1Q8 z>}el9gw7zT@@8!C{>$2RX>f7_cHOpZOw3HLZ)Fa(>)E)j?T&9%j_}@GHj6Pe@0k}sNu7kKzERqRfp(iHY@Il-*1J9b zn|lIT-{=*w$^-{G)Ft=uF64w2W$^={f-1yTsP~G}ueEu@#D^8tbNi$lF zw1qU3f5}Wuka~@PWCH>(?B0PQ;haY9-!srR;8xj|P&+m}Q)|4{NrRUie))_mgmgMaW#u$kvLnmhouwlBbx*vO;ipVPI{q@qx-G`X7&HBkMElkNFGh(&yS z3G+XAFuuLDtECC|I7jh$dp{0|@xF8Dd8Z2QOM^hx8h#IaCyPzzS`X=q^DeYJG` zte*!Z^4olwwzUCq@tY``Az{hTG_iNV&tP+?6QI)5YD&y=c%Ni(6_OEWagcXqDh@2WHnWR!_ z!c->)OB2*3Olh)m&ijr&#g@(v;`+RsJYG?D%SGH+FT7F8rE#7xUX@aWBi>c`ei3r? zw7K;MW&KC;EXaFbC|Pi!wC$HPX5ju`Y~;DAcgJMjWic?IKsdE+L-h<)Ubg>1SC)%6 zt4!p#W|rt8e^Ke+;Eji}FWvRa1Tf5SK%j;srtWv5*i=?5Q2r*81AlqlRL(tQXnMcw z_ru_BzNuGCL`}(y!3KdlPIj@r_|Y4_qy)h{3fE}!INO|%g2zkRz8hPf|BH+5LMB#5 z!^vaDBb`lAw8kd*yo;8i^boIeYhMEU$&5S0+?^Y(E?+VCAL!A>hSZh*N2u>@!Bqj* z7?wLMdR*tQonE3QTlkL9A`v$veRQCuZcLAYF(^;yc!(W#lzbyJ=@DHx!ZTAw3L_C^ z_%5iYu$d&%9is+f%G4^HMa`Gi;ZJ_wx^?v($zolsO!85ga2kW| zJH*^V^wlGx=D!16d)~T_7|fs{BSc={W-b08RVHZtPm!#ikT{tG-*O4WQ@bAZcvf8$ z4?zyKYgF#~E>|XO-sJ?uFvMKU-8ie|;;O~{$_jvGMwC=%pRVo;Um*<#u|Y^9c=r&I zmM?9FaVm|`av`)yyX}t1%OEBUL}=A9DwlB|(&9nT&ZyGQBmaBEb#V7;fB?4!i57ht zu2|1MJ{UuY&ZiV8IWRk>(Xv^ClUZnu#U~0lStX07=7;oE6pVTC6R=`O*E#Vr487B8 z?UuS8QKend$mIHp5xL(v_Mgf%rqmzY23lA9997J(6~HAVl8<>2Yv3r09aDyX@+bV7 zx9&5szlCE%=+eE$AS4{QrkaVc4*P#tn7ofblGHp25;Rbl1afUE#+WNEpe&`v_suD(OjsEWmzh*sI{{i;yZ&-I%BluaM4;=J!B#s|J7K=WAkkl7?Ag zN(BfsMzp(T6kY!cMrbA6-w%D7kjMgr1PT#Hs!CXmqv5d$FGI*ODDVzWb`iCtL;Vu7 zW~(R}%|@u+4(7*28Wv69mi6YD37oDeJy()>zD!ZQ1lk&aCByup!w~n_&cYpYRKo@u zBt+}2OY#lJIgxpDtS2I|JEQ?Yafk^jT4Gw{6$MZ$mLvASW0in{kUZ+QT{kdhRO965 zC6k!)+o>|W!rwOd^eMj^Bf5+c0UTS5t|jCT0J2q5JEC!t5eCd;J;}NJT9TLn&KS3R zd*7C#rc*!X$71_*pbvEJ386Jnp|zEv1Yo84h{5&oDny9P;N)JATUw6o(Y?kHbUBR9 zKHaP+Wdes=P?uD{p)NV3eg9FfzPs0qk08G_(ybBu3!bTt71b`XJWOcIZpUAdPSD_fxOoomR zHp=4dRmUWU_%CYW|5Xz|fICA@f}`hToA=-CZL&3G5AOMfY&dE^4m~hJ#^#f(f7O=G zxR<J(~?E&r_s#x#R|XV`Ty&dV=)s2|Y0v;kgi(i0&uBfMUKK5Nm5y$1T4v zRJ_pEa9uDgXolf(mO_5cH0O!XdnItmjB(!RJ?T~RQmr|?s?LJFA*md@cPThJ6w z4tA){-wX&%dZ}yQJ&0~mZDG;y>Dpq5TO}&KmB~mFWpEgPh=j`G;m7jk!;hs3H#R8f zLMiWu;>Af3`DA>540#t~sM=H1=i~B&U*l)TP!+wYHzLB6OOKY{1Sd)p4UIpqDr{VR zPI#mqMUNS+SNhm#kf+rL7D?!dqG+L8jz$^`?0M-i>2}D=;k0jzZh+X}pP`T;Pq=Wz zHTX*XlX(w0p68@7{*nI~*N)S1HgKFdy(7zMlRbj~o1NArqP4s_0FoBJh=36?CVxLPFUlf9J;bcZFpwd-Mg0V|19egaxR)2t(x%O&|lKZM!krcHtcP8 ztDsl%a%D3?~))W2lfa<0QGb08Gr{m9F0czsaG65AjRj3Od!EZD8VdA zqm@y13E768_Kg!S;8we?GSrXSueXPJ64kce`>Z(U$^UI)g1V%^txRDm_meSsT@$?u zjKPBYCEVId0HB|tK0a`~=IY%xk6aR^2jwO7Q!XvOD_I_Vv2kT4upkLYAhR`krOdKK zd9q{u%G(%zDF-KhX`;|+dzmfu?B6q0vl50Ik0&G1sEqkUe&Eok9!*>L0!Q9MPFCTf zfJt+@(pY2K=UES;>sR2ay$8O=h&t<@_ck~CO!NRW<`mo}+RDH8nOVszCh)rhS3_fl zzg-~nyIh&o^YNFTn0gTQysWTtOj&zE!>5-Wgrk|62)Z{N4|P9hi2vjH!a|Icf=4vW zIu=wde(>niKluJP74sLG#Tb64UpFzaI#B!mrtWnJw=gbw+7k(8T*WrwiFPh5EoBNb zDL=2$@(v{?K@ zYjAZwEZz;0@xC?V`vZo&oNvx56;ugjxHg~%(7AGQ(+j9_iKfn+&yn;|jb=UFzYgFY zO+%YUt*_n(^A97bPSCOl>0jdEgizXwX~_WYtUi2;5a=QfUE{+*=#TdI^Y&s0-Pm$H zczwqUM#Bq#5uV&kinkbx1K21)pS>!Mi8BH{<28c#M0*XH5{NP#y766@Rb_ri&dvj4 zE#wjtU73|(SMD7|p(PsVm3l@346wRJVV7wPbx+5)OQTA?u_^opkp&1#3?ij3kFn}* zWn%R3tJ1$qTB9@%8kVF#tLoS(L60Qr8CIdoy&fZ#G3K$@^9IIWb~_-R;&duT)p}{b z%i(K-76v*Z^mcjBh$?6%c8khVtqqvL$FwUeS!%K1RQ3cBBJ+wre!S`%S$sy>jfH!+#-%Ag zYpBcAhgxHXSFyjYOGlAfYmNQNW~rwF!jAJucISHR=vV=D{0>_>F~1^!?hMM%bR@#M zBQQ7b=-im~5}Of8iW%*Dk?KfBS)|;(?m+k1?J+hw6U@E)D9Nz9MMON`nNi!hcT01D zqve2Jp1-aO9?qAsksqLx^{k4vZ2NU-(Gh3ZE)|V>eul>R-vX>*Z0^sYBY|LzylK@RH)K^{fml&)|fIL|XVlgz@i@f?iQXuvJhLjl750;g0_hHAgP4S=>i4>wWRrW9kz6wGU8i43IkLvLN~$9r7{PZUW3&KsJ#Clz56MM(FKztV{U0L%8McLTM5i%c<8! zaAnL)Ai9M8JPTRVm}$N8L>K`9zseJ^r9#$J(MqjFjMg-R2YwIsUs2F_B7(*GDYzG~ zdA~E}?2R$kA5kzh-AR?sV$yUebz8cf4KxlRsX?4g3TbSA*p_fv=2$;05Dt9~VYD2f ztYsziZ#2J8UhR`js4c+@7f}u7;n5!;n#T86&(c}Ii|1|lhy<8oP1@oAz*Q|gt~V1c zDI%)w{0WlOMS>Gj$#(-Xs`KwaYS8ZkiaX>3pk+3)3b~R`C-m3xn1IxUq?gjsH|=3) zAsVr^!Gxf&p3<25#kL4tMbPrQoOVH0U>sGAj$1u$RQb$!UwdAH9C(aOa6sEwmAuqr_K63UeH6BV zuE&X92N~cV0?;sGbS6d^6D+_LS~^ox9rO478mJsh-(g*+`cE>S|1c!hVt=nJE^B#Z zHYZe#8-Uko0*oSL;j>$gxX0x#4!Ha!*tsuG>y_0TAt*E`1PeMVVp)e zr}1N}g14&7ljcasEQ&0!2{xOHNsd?jHvVN9J}+p)=`#A~ZxfPm$Nge)g#X-2X9+kEm1 zqj{8hg1SxD#p%x^R@kx9fmNT4htMCGATWX^C*JFThI2(T6+J@YqN2bCNglU~XevfZ zsYOh`vJaS!F?~nxV17UDF{LYltL)D1^=yQ%=+l~bkkS@OspQ0V4&_ijN)IGez^jG9 zBS2~>T9}uy+oOYi2R47;xAe@uw2)F^ia4_wbJFA*LRF)&*jaB;dt!po3C1NK)%Mys zK~xN|dPsfVF;v;`Z86q6`3=#>u%DR4H*@n5!(c2)Hpsz<_Cr* z5{J%hCg;SFJLJz8?3b4P9m25x@GVk#&hj`&TmY4LKgGUOA^Vr& zCfZd>vg&tTue0P8Nhb4WANF3!IeUfOEn};!KC}iV*s}KO7Shre{-!HY0BPP(VUkMY)V8a_QEd==G?l1M`V1 z%&eyf2oDJyl;sW0or#+3ukX-7Fz_{c1r)S?%N-Z_B`>u6rbG^4{$*kjy?$Z>7ceaF z=-tLXD9)-RRvl5AW%#?mz?-Ki4Uje$rL(he<|fdw^MUWEE0d}eM>}RH?kkUU7NUq8 z3$n7$d3qnuD&OKaRVFvwP@J5lU*XI{WgI^@W+P1p4j_lNY%AwwJ8rGK3kS}sz&x)D zR>93y?$%^-bi*b|+{#Pf>mW2m;3bmpj?IEG5voKO-Z3%3Kmci82=l=Ne&EUs3!H>7 zx1OR~PvmiwvY^JGI{CELy8Ye&X>f_@%-n9Z*mpMrIfnifbXje;3v>d8U;hMjo$Nhm zUPl@O!DFZrwRJ_EuLyH9q~M_6Ng zXMF!2HIUPXEd#vLE%Ps?GSNAWb!!!^;sh&J(K56&&Pk0z3rhlrxj#?Md5DnvBqx3 zyj^z(j{6BV>v1;4G*=;~AWmIeG{sXNmW!E*^gIMzK%T*@byUP^9i6)R#$@JVxG5UV zZ$>sRs+7|c&^7Fy@1`6CLgk@zsIO4mRg@zX5KZw@6iQd@dgKn?EcOOm+CT=_xV}C( zQnO8E$$5xO0hlQS6)s@sxWGb@AkbNQ8Qo6}ldA6OBNtQbD;*2SkwWsCoQKmgTMP6mJX1D|0{2~9GoxcVV8kw zj6pEXV%CZ`8z#S$tY4AuKk)0Iydz%GeDm8-g>4wIpUNA`V|o)X0rl++?A+B+7gecu ztC#e8wV;I1O~KOky28pu69BJ-M|feAZ8QIAbf+@Zu9bU^V4aFN4h2gMgR zCHANoRH2w}gJXaYlRbGv*`0r_`0>uKd_tdE%>@ z?fa7SO9Nc&BDR6_Y`$KdB zzta}CgR+ZJnO2FXZIFzl z$;gQut3pRBAh)N^&1>!(Gdz1jW_~>F#0mfvUc>?f-=ra*U5CGH%B|GY#*px}b443O zADABS%bOvTV&=wTJnZX>A?*UMs}vQ=jrjJ?%9HIMz8n#36BQ{ufc;O~a}oEjzwc63 z{GyV**s6!?>WK;68MF=SMIa4V^nXz9`v=2%mtl_h)V@E;6PkK=TtAgYM|OIzSDs*h zn9hZ8^iHemddDbu-_y44&=%t`k4u&FDBb3|`mImE$56D?;>%zWGy}M^ADHM=iJg_@ zH_er&KD<%wtE6dxsig(f(!FosrM2eXK~R!q!@VpLBzhHIjH?G~XKTV-W)`Nd_95mE zWagGiQxV$#G%&Fq*uS+a6MRFO)tR<|)MGY&MDBuh7ZNl%~?o2&B(JLFP{+(>KNM638}H z5cUM1)xjaT8Ld5wMvZQQe&3qu-`0x%s|(2DTr>z_NsBdJ3>a|m)bb+ra(KM))0 zV_-S{TL{5Jo4I~P&uv>Qg9hQmCqGt6-i2Y{=Tl* zE^kfosRN-Kqb1PCvDa;dYea1<>D2G0-2UKaiHIHgZ(^1oskf>KEZdbd-QRp6W4_WM z#Y3t7I^XXGf1;QdHJvmeuY0u8G|QNDqAiuK|0rfE@g$U+XX2hZ>NnmzhtzE28qNO3TS}wi6e=>n_ z_%0Rc1*Ro&IcxcAU=dqoH{VJtO&w+lYQ=ZZb`lpiD1mqvpIz>jDjJ)=Iajm+V}?c0 zL|9Q#vf-AhLeUC}1a&QYhcC!S14u|+qd{{~g@QNcJT#3{${r|6d&7H>%nxrJb4^54 zd&H9;BTK<+cBg9PvP%YQPN@j$z0>X$uTSRsekVlfqTPM>Jo;aQ85#QL6k|TyES zj?^z6Z{K&kQJ9zGrJM4SW?^A2j0^WCT`F3=oGsl976t0W#<#f--~jn)z&fYEI~#HX zM9-VzW&A*+|Ipl}LufsWdTw^eroW?C z@lZ0nPRM1zr9Z3n$gGwF$Gd%Z=;q`J)to%UJz}o{Ze(8?Wk&wN*NLu2cSE^JWQz{= zdac87#IjorTFPyRC=IkZpDg`u*JEBCZ46Z)FFlPTsZ4YZjjovXN!E@(d@@UsTy$yQ zl3q<#m#>YpCqV-ZPt*dhDrA$r=JSIt{kYV2A!6zNvai{3^<8FU{oLzE&ghZ&%Bu$eI0Gfd&MZbP0o7?t&b zKKRUEEk#`J59jW8OSz$tQ8@c}LoRqdQXpB&`MHCe&3W9?Z-l-(CG&&gUU83j-4DL7 zIuf)db^jafaP3VMo?@GI-Vs?$R?2uKCSj=#fG4QEqpcNlxENPF=I~B$xKZbaiUX@N zu?pUF05OPZ%&S_f3pHVb_u5sp6(-1p?jtzuHRNcd>B)8nJ2?02vRnw^>sxt=1||A} zE@r+$;4$o_s%3;PevI6dYmIx^0nRAZa;QHv@lZ|jG%vuNVij5g`Vi9=$=vK2i+J1rWZz;v=> zJ)-&KOf;XUn7Li#V^-c-9*yoD1LY!qXFleD3#7r&bWy%1+K{L%A)wUI4V1MA<2cqW zQgp7es^}uG!j}E;+{s|47uOG48g~QaX;@N*0Y1%o?mPQcs{)yso6^(b%g+u>;N7=$ zZtvMV#Hn$wQ6u?Hw2vy)*2YBV0lV?R3>-abYk5n|1-~Hk6Wc7~K3W!vc*IU^WI)BE ziMaa#SwM(X!a=nbXGhhWtR#TtgcIx!xXJmpwSO^ zO{789*eSlD?G>TnkWlJAf@#F6B7;niKnnUpes>50E;dZOO#C_(J%Wfjdx6fCR!p^9iO%IgN`4#&9+(ynATMF7JJ5PLqb zd$Zq8Px9^xTpb*;qbVwdq7@;}pk>^ER7G8*>sKpLOr!(Sdtk=#ME!=9zI)rStvCBO zbh$cl^Sf~!Tvwsddo7}NNI-E4%72hq>;lB0eWB)P(;%8(1?oRm6B+rK@B3*tzVb{;_DBqd*r`@ z`hoB`kEw^T-2ii!=qmZI^Ft;1?px9zcPQy!I=Gv6aE)o0zXfRVLTohw#Cv01!rm%c zCLq1d_?_a!L@9IV_tN5oxgbpLO+b)Ty`?Am6K^!aUu1s^C~s(JTxdiS zAV|T(;N!awK^Ap^MPGUHVuW%+^;qMWQhi5LTa3Yo3+jPABktuI!M~E<;`YN9wEbt~ zAk)Yec_|u7msr&~VCo%Bfn(H+B;~xJw|DjA}=Hd30_P2j><>CWkr-r#hUC z=$SX8CFL6>x5xQQ2&r7AJpBwRn<(AEEp%wghKlO@_>SIi*Q~@N8ht&{PO!tG#j{$* z#c)q@(X#Gd#2os@47IKaH=Z-w zA=ACBy#8q}x*y&$a(u$3i!`iZ8}1ATC-X3~9Z;`b2FNrzrW{(-G7+6d0khCey(^i1 z&A4vEi(z7*Ptg(rh6p2+*Myp|`!Z(OQr6n`#NrGxc0&p)vHot}5Hh>AMNIQcdJ-Ls;4cmf?EP~J$BCe=Gh6A zrogvEl-eHk1Axe7vtVD+a5EeCucu%EJff7gKbmOyG z?<{JVX0nozG4qcPgO8yzAl7_l(U-mKAd&3H4SD|N`CM$qd#(+7oY8RhJ;1%KR) z30+0OeM?ssWVg>v8_`7`c+HJy?yI0x&iLdbEsqYAu0ZxdLTh#5T4Icr&f2ZYnPFFZ zWfrf#F+IH1W@+0mXdP4_Zks5Ru$R5pZQ)WT=>Rd9_tklKabQT4w9)NANFE?J=04QV>-pg_wfU35GfwsXz!=Cx*c zb(ykiy)kdS@%kWR6tc&F=ku|>Y?5Pp!kIE0&~59aKgaG3*}WPwk0we>QQkMGlAnQU z6rY=S4klbHL+TZ^ZbfTCF-Z-H0WhX2#U6L#jaNkVs7_F%`4)kgU_j28zG zj`K&mRYiw+n<-kdnGETB9m&ClvP}@TD#Q&_(RiOb^qQzoHnql}gS-7U5zy3|XJ(zk z4tWEUX`&7^K}qrzjZRXpxIIR6;8zQXIl#-a9MyJB#NE#~AI?mUF=D{U$qpJAL<60b zI^W=?E$tYLg>i z@I@6Z$8Hc8ocf|6=!x3>%eI8?8emRjGTQs*3ys026A&Ln;j#NxebNm6c%6>Lzr%zP zkq9(oRPB&*(?wC$ZFVqgH&n~)0YCo*;zBj{91mpMF{0}1P>-&_Wr!@x+{PQ#Dn^4Q zsQSs|a422`(-`e}rxp|zSA&-kZ1Pqb0GExvNOWE-ULp4pxSo(Ww;RbU4nJY45+PaP z*-iHw3lpYE{uQL)K_wT5PDSf7)ZhH}gIbQjCff2Uf)q9C3$13APUlMV1fXV1narqL zkw>?;9}VvQvhUB};MuhX7OHBKEnW7+!-kTQo4f&qu^Ft3H8woO*YMKhr^3#^nt&*8H_mTibh^7Gx zFvAQ5?PE~A)j(nmhnO3-g^SD|nxULYznm5Poc~#_&8B{1^Y=qXOPl=8_T1_hF8E|U zaiZV*(5-!?DdiNbKK&sF9p2byf!$updry0Ut=??o!+X*L(ypslsmeMl;>gSz2r`=jhQF09!Irh^*7Wu5#sd+DAi7SP1NE?V; ztgwr=%!d0C7#lz#bW`El%rdL?884(fiQiX)kEB?%YO^_I!WZOk(uy|O2D>~#4b`?2 z`ed-|r89PTz;W_`BKqmK|9PwB^0Y)MY7yaB`yLcKp!r+0{Oq;7UQJ=b)^icE;?Z(gbxw6RPkz`!Dqg#95doBqerrcs zbH~EO&FRWG=cnfJFLxcqrxV&-*a)T2Fgl}op(%Y^3`|ElqZ(_z-*RNVIP+S`l#m93 z6ZC01+2>lxgFzDv!)*8L)ubbU|}0PD}iUjmrGq0UI*K*N|!Esyc}K=jjW65 zHK{5C?He_wCL{~yMlMW#!NvYboHcMnsw{rc9+R_#?opI?62C^*NHSR3a{VaAvto2r z;VP<2;ql;?#k3O|#2*e?A?SS%pkzbmL+Ob+g>7kS0?^n!gt9bYiYe&EF%r0C2dknC zrmSrH{tpGx8%${uP#Jo@zE~b?rw}4q3P44@gDFkGG?~&98BAb!FcIwg_S()wa7NYb zyd#nYX{F87r|QXUCSl}JZ;|P-784DC^U;8p;{$F^Z49QSfNZSHluy*b(DH(vtzbzPz?SU_V@)g|~Z4K=w0+ey}Chj`bF z122*OXd3v@1TK8l`dlM@9hc5tj;%026j`}{ipizO(`|Dh$I6HQ1VfafmBV~><3u~@ zJmD^gzXvQ_))0F_&7(H~Jq2XuS@Q!J=G<`mqhIf60sKeXZ%mDq=g9Gvw< zb)iM>tcHl_&tiq2E0DFcn^97ZDw%@y)v094Rn;7jojU8E(roWB4ai<#9MDf*nKG&O z?_0dYcbX9y79w?@$+%~`Kw3UZS@#w9qv~CNQQIQw1I`3;uWlgv78jh(rh;v_8Z6K? zKiyLNJAHiRcCF3eFz}HSxnEDBWQ; z)T~rpI}dRZRzZf8_RGm7pEtr)Axw{IvMQNhdH#=VG*nx0GwZ|<&(dM=@>SV9uwX8L zMO@zNMVn~e*d@JQCWv;AgJpv8Hr-T}B^cF_u1meQ(AWj^whjojJOTC9;7p_MdEHN^ zUah*$Nm)G`O1vEFRzSP-)6yimq!g7s(M>RFvHiHT!QC&|XZEvA7A`IoCvQNXmoFCi zBc1ZVKb@Q?2PlVbVd=4yJC7^6i~-7@=__8|w;Kq5)cZNT=gE7)WuulS>OH{Do!!V! zlZ6Hj?yj)i$no9Qt@+P=Ky-ss24o&dl5BK&0gPy~m{UzCWUnWgj8xQ1CpX{pE6{{1dLAj1uz$7|n{ z)%2Nu*!pG6Ohgw%DF~Ge`vptBHlQA0GCq{hAaac1W@3x~6gpu&n0EV2M&F^sf$j9X zImSXrAoRi|T+-XR=LM|44Opf>Pxnk*qS(ALjS<%bd_9*U6mJ zqF=qJL2xX+A~E%Iy*Wj;Fz9`3&tKVVl7vX$HKF4 zFRC}s8xQ)EnTMTEDV_0#^WgJ<4o?4H_qftSIg#KyjKrI`D8Tls{ysdeYjfwed?s+Q zqiG-cCNEl}r61q#mO)GD?O~(DKm2S}w9JaJL!z6kt?W`3>$8})8$6w4C-JY#*o4xg z;CWyXLcL(bx>Gyr<=AjC*2ji1=1aN_>$TI;wrX$YbWA6-ndAMzHGT)^XvxNzJ$VST zN?P+{VG_d2x=@*@q?{=|7nCIkGprF!cuM3XP5G?XtIvARVr%8mv0uY(tx%Sn zU@DV)Ylg2~7P`rwd_qIuXf^9>X40|Ga~7}`%#Y@#jIyfmcWgwO17y4HtI#ad6l7W> z6f%8uBI?3BPZsrk3)^yMP*no1>^BG?hP*gmFpToXwfgY}Zyf*`taa~yK{E4*7`=h9!cTkz>f9HA~h+^u4_;}r+0<91?uDpa2Qr@_48q{2DY1EmT zOZ)pFc{35Oi9FN*A_&*?`6-4{x;3IOE#;TC{REHI4ireS*ki_C5@g+v`SLSdq%UH= zbm>=CSiuo|l~C#(5sQo|ouPK2x-rZ4c!w&(;3G#^$IB4$`ViK=ZnF64_U1f$bCe|e zgoQaS)zENaO6|~LPNLnYQfB=h|E+*e_M~%e*9phkVyS~(pQj6|vOQ>HPp;wl$&1&}F#zm!+s<7J(?U_!- z`2H`O``47$CAsi+z|SRKPpjZPF09pWJOwd?#dMVs7betuN4{?t1R?{*#;rB+NP)+> zGgYrf*FND4J`SOD_&y;dt#3v1{R?R?$acLJQhSxs;fL!9wSE}<_- zhCY;iWXC<(1UC4zLZ5_k)HAQx1Ell7${63rmT_Pi!t2;MrDQHU9U;48{w{0K?@QCY~7m!{GVn zrmQG4YpzQmMkgnYt~R0vFu99I6OCqVN-RCon)XcjMo#Sqo#I4wTYi(Q3-?xZSNw%J zcOAB$pMdZW?;&nLk)gpO4N_(h1%F|HlH^$_!@-RohY`RE<6 z)Lh65&*-;m-*Txni6?C)rI{FLNT|{?e&UqN#{vv!D4yYiFicF)zipiz!=Ft(X{XN_G>s?NVop=%?PeSIVn26txA|MHpE^;DwtdnrLdCMkM$x_ZT|~a9l-}A-0GvS}KAY8i`on^|a2M zgbV9IaZaW>I$m{Et5lpFD8gzajvGnrZyt63ib{+0Q9Z1;@D<40bQ5qGwY8R~@cC_C z-9$#;2|R{fT%>b3InjufK_6TB=Z%GBi5ucpyfQ7Fb+%YOfv?E6H%~wu6|-sai*B1T zTNbP4_pmyz76bS$3{#%-3)|tWWdaK2f}HTn5+oem>ha-33%*xrCsufEUYG3%HhMHS z(CIt}LB7@bhvJ~UhMEhAF3d|Z-7dIWDMu!G{1)wDE(^C(k94tAA$l>%u@|W3z<@q% zN?!Eq(!8r)_X9kCk3HpY)K`^u;Q%9n`tYNi3-&;V{<^>UHNN?Uui*~lJ`nJ|8xV%nNm|!*3LmI*HWMFE7+GOP= zIybRC!`-O*1xYNb zJiY~P3;QxdpO5;3!UF{VVQKYt^t2eTYLsST3@cAP8fo6v+Y*@IPLP8B*PkkoX^L1xEN3*dlP&USlld8-t9& zySav631>%QE+v!`6~SrkQ<;^otS_e171TI@96;pUP*`h_5j=Gr@Re}VfMliU>H|$Vz;@kc(vde_que2)OEd_5C{`}|6udeaR1K_u$_}Z zTEf@);57|#d^Dq^o@tJ}rx)FWuS< zL{jG0vOev0w@t&gb!+@RfSZtJdt57%Xgh1pQ5sK_e?CnO?jmg%bC7s!Ks&CS(zm2x zQLtv<9{uk42M-{=p5E?;;Wl&96MR84vs0gi%z4}L$PM~j?i7zk+nK-R#q%uEf7%H^ zX(YGl)L6t(89w|6W2*V%ldO+wOW#G9W*Vt4m*A%~#|x=Lm)nSIYX;Z`Lx7Ue zwmV=9vc1{oj&3B|A)p(c19HJlzf778XW@|{$z=~_C?cP&`5^4272cB53{8fWM&pLr zi85Kc%Z3{r-0G*}yFbkP)}yd>I0!`u+nutrZSIMjagpWb7-T|biKYQydO<$+7wz^f z9;$lb89*zR-vF!XTixdIZSBfSn?$QI=31$%%70(;6gWTKHH_W`y`K`&t_wy$nx<>EE%gQI?19hF+UvkcL zjmM{;CW-i1iSGL4jbtjG!NSM?qdMjbffb>HV&LPOO!5MMtW39lZ}|N8Q)1)|VTt0T zo`D7Tmlb;rFGo2f0$K637~#&xJW;UIhq_&C2unaBsMx(`Wop{3{ok2fqEZ9v24ERU zX)UD~t0u@d=JSV5TS}g%vU=b&IH1 z&{ETL#j8n21i|wqx&7B6;ShICJ6Xq(=WcE>E~(nR_uS$PtVO4fu+>QrgYr5eZiF;D z3&5W-*K#7T;0MjE5Sm$vHeTU9wT@hv_vyiU$`%S+$zvi8)y-8Xyw*jxP0EI(L&X_I zoubY1(P4WP7P*MZIg0AV_LLe>gdvg7c;8-+DTWGaE^Pr9eiX|aAo4Lr6DFlaGI2@O z?SepYijCN_ZPz16yHZA(hQTAQ%v{vagq8X59S108Y!ai&YtCw5Y#YjW z&zp8Cp31K8&e-}4JI*wZD26sm`2nCZMSr+1d(Zjjw->gFKpl#Tm}tI2%KOo)A_Vq> zOI~FekdS|hwfFThA%m~hXiN>z8l69EJQERr`~Xo6=-a#bP?69HbOpODVci86(!{O? zZDqD%=pjYqJ$@Dd?duWr!k7NZc$;%Hx|Lx2LoDQslYfoO_aTp1<^LT1!!0 z$W*il^JDvf_TC5ok%(%P1OP1?z$(K+g%;Zdt+zqT*5Q-sTE8TQ9-z~`oX^wT!cOgSI zh~ML;-ZrxHDT>}u1y4svp+rA>r78Z_?i`*N0`i6KQIbVyNyTlC%1AxKPRl{x`?VG< zVLUHcuxQQLMEgNAZkvn?H0rZAY&$pgINr|UfP-R$z#uE4d7nuX)R8FlS*hecJ#yD; z^#lxFzwiZ@NMGxs?S{{3XVxewdLm=tbuX`O&qm&n_MP; zxRLdjT2ijCe?Z-&b_Si8Ou3s?Vjyt?sN&!6niMHLJ zh49?$=6~RXGDXDZenIMhL}~VLnm_r#*(YCKSj{U6xBJ`w4~K0Q6!Y9{X%mck;+15k zQXk%>VHMD{-yp{(%yMfYJQQ~O0GhYlV1#54#FWe|fSlv&j73$=o&nI~gg z&Xi}^&SdCpON>4dv|M!OrHt<;It?THTtq6WwOw0o=ilivTv)46VJjPg67vqNcv+bH z=nr1VLzA)xJvfg!fdzxHLBeclls7EX81628-g1^^t5Fzj8PrPC-9Bj_}yEv9WSYd8Ggs}tmY=KLwxvLuQT~Q~;U<9bQ%(NBecMA$eh#{nbXlnKnM}8u= zg0l-5ystmrk@s3~IOcJ*rNV{e*1V3`O7*>`OT(0*q;A-c@-oJe;2Pe2l4~LZd~QTK z73N^cMF@Np0&!)+QS#iK3NIv3p*Q@>MbUD!dl1w;aOi%=9g6Yo77WZx(zczl)ADn7 ztW5NCPYe=uA@ICn1%a0_7ic@5O`L~KC&dp6?6U!frnqhQQoB9&qB8JEQhHid%HF@g z|FjnByS!GY-u?hRCAz}ja_5PwUYCP^`px_b7yV2)s{UUTDxW)A2M(UTDP?2SE1pg8 z?pSW9@ZcB3*nDid$bX<~>~)yCzJddveS*%)7jqxa$CWs{b<{QJI9p`yUvC^{GI)CM z1Jj&3uJtzx*XM5%RvGr{spVX~u<4@sEmXV7HCulGo*4cVpFVDOTmH-4a!hq32$aT? ztq^(LceqmRuvijs`3ojH=9y7r4EWGriI09yUKqQ7F7;x>UwmZCKbSoC@mJ9!pP3|K z3*K+IT`AIZ>ab~BUmQhG<{D+hcNaskU>2%-JbQ`|A9M8Aa_{_XRZzv=aj~-CE~w4q z^HF<@(VWnSsH%`h(6W!Som7>Y+PeDZ#_=np&hK){T7GUhae?y@bY6a$L22%eZb=-g z0#i)bZlxH(r}whG=upV2FSxeHIJgTVBck$B5MqCQ_MSK);S~XIyLrtAtCZ#rsHmto z+4o!yKAo42Sss#*PE_i7fg~2e4(HfJ7)~Gu28)+wegac8%9^x$V>*p8%@f#FPRek` z`dR)gUb}iu9j3sXjXK3ipeSq(nd&V= zbA{9_Zf&A411c|On4;-GU!~EAp*B~$P&CgqI>(&RHTYJ2=9B>U;b-_+4+Z8Nao*31)<5kjvcD;d|5{*Z6#x8M z(N}d?Kiq4va_$E<@iSxcAgyVJm*$&$M;k!W{628*W)0VZ7#C`~k}rkvyx|DUK?0{y zAAXO7mV*i;G@b}5i~E=7@{vNsN~AjGd3c{Kc=Um--TTgwe~qd5+YB_1uDtAZKk#8t-Z7-^j&440 zF3bYoO8bK`FilbFtMm#J%|3+6c+l0Y9oo1~CCMevAS0=hldHCwk6=68y~t~_0u9em zGK-z^$WIhA5AlgF;0P^zv^8{I+=JwdFIo2gyFz(YK~}7dLUTvNzeQWiO}I`KU|B>| z`x`vMtNqnSM0F6-kdYFe4eZ6AR zC-ahigq43Tja6=K$v*RRf_JL=$=_w(sc8TnV(^CQc2c7AKBI49rg^X0*R2%6li>)5 z|9@4V&;W)v;o$wOZY!PUG$t*`?Dt1C=blU0m+{!*FjB9mk|n09gDq9=kH@{lV*H#r z?@xV@XB}$$(~jQP?%AxrQFd#q>RnJfel=1rC1@Bv9w3^vtn%8Akr4ru#Ii-}<&d*I zO)kk;9N=>vw+!sT_oJ%qY=H++^hId@45vCFKD@O{(aCmp$QPjJk2%gg)QSx0+!gcCkX1Y8}L5CsfGou^x;A^kA51WKBG!vMo z{<;)!a`zGG1;(i5t3;t_FdKN%>y{{NojB!foH3vx);FCrZrZoFbC#!;C#UlnSTn@Q zPu#jQsIza(&DXd6>bY+jg3$r;PD7fnp@SP16`y$n;5d9b3tBf^Ay+!@+DKvS8Nv#8 zVum;H0&6|fnq|SC0Wi7co;mZ9gIAOYGmn%RtFPsnx5ecG}h6$a(vKw zm0fHQkZKZN5)t2n>f|aa>l7^a@#sk7bY|?8K2x@x$SDQ7h0^y_0>}>PFIb;2N`Z=m>;4}5EN9VC8YI>GB|3tgOQ;NBu{c^K&Z3VRx@Q$^f zEAL9&mn`ze0z9cnFsx0x!Ktp=ncBV1?JU`k@>fOr@3C(b)cqM>2D#mjW6FLSQx>a| z;r+7*oHB)}l%F_q3K(^p{0b0s!I#|galT?NDQ@9MNTjx}n zTs;s=47Q4eTuQkE4@tAR)ZPc93#}!Sfn-JpmhN|wdYE# zQP6Yat!e@##%yH8HQ=03sia;sT#*Sf(FH zzhhNJ!2^Kd*Po7!&$9ooWr}*oO!W#{f-bz@FdD?F90a)G z>}aHj7BK&$x)*>DZ0LsA8=4yuk_&(#GubWp-UeX`5R#le>?w(=9UIYMKiSbM|Jv_N zFb9sgW_(6X|FYbez>LZx;o@0sK7@F7Iq!C7i&e!(=4hf_fZdtikGSDRFjWCHjmVrJvU^&%-~jJ~{+3PeM7(NpC5{9 zjJAyB2JpmgDK?;fN~UaOF6p}`AXCbYwK(I2>zjSDr|1t)+Y^8yfck&i{lSZvj~EG< zk8Ktt8W4NYHvG-D)kOOuXv3k#(8SZw6F0$p2$km~d%XIdo8c7(H^|VTL7B}LUvaa+ zf5`%57vQL$41I~K&pRb?p1dXdNZ??z;60iBQZKr%-afvyI=IU2OK88)iaX0DqQIb1 zF}JI+@_(Z4!5>wBNv6LjMQW$8m{BZ}%Hs2H_q%Hy>9#n4uy{{AKJ}@wh9QQsg~}9j z*e@=DHpNZJZdj<{J)~RhDru`?#LE#k26yB4%)a=XKNR3NU>Y$o{736m!74G7g~&{G68x5-PJI1(YvJ zN+zPU5pHQXAw|c+!o*^$h)F{wBp5%>E;37T+#r^NWvyMUQ`_pfE8PK5mQRJfP z%M^62j-Xv(3#Su`8u-I5BKDO<(`&FX#5PwY3GscGYD2)-048#{2zzAv8?meyrKywO zVRf7B% zDPk5cewN!>=Nr21tpgrATtp_DUi`>;@zWbC2!rpY(nKFkA@o0D)kSr;stncLa{tjH zsOJwn#`JwF6v%TKbB}X58vV%oS@i=lQbbJnk4@Xd-scL?&Mz2=Y{8>^`RtYh;Y2?n zI)YxA`H!Bi7v~fQfZy)@4qExtV5Mz3MTaW)?7&H5n~qof0Q#P`m+t62aTCXRRGD7c zG+NZ>qnh~Xx>uE71Z5XTLS2A6p+<)gCi%-l$LR_vBfGMvj^{ z;Bc=V$we1$IdE!@hWH_)&aJ

      ypes% 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�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�fZ9n)qmDf7akVqOTeTl+4P-@T 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 T~lYExyBxNwkt@C+w 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 E4`a8j3jhEB literal 0 HcmV?d00001 diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 2a61240..1f1696c 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -12,7 +12,7 @@ from __future__ import annotations import importlib -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path import yaml @@ -32,6 +32,7 @@ class SimulatorEntry: simulator_class: str # fully qualified class name env_manager_class: str # fully qualified class name python_version: str + installation_kwargs: dict = field(default_factory=dict) # Module-level registry populated on first access @@ -61,6 +62,7 @@ def _discover_simulators() -> dict[str, SimulatorEntry]: simulator_class=ver_info["simulator_class"], env_manager_class=ver_info["env_manager_class"], python_version=ver_info.get("python_version", "3.10"), + installation_kwargs=ver_info.get("installation_kwargs", {}), ) # Register with explicit key: "ai2thor:v2_1_0" @@ -124,6 +126,13 @@ def load_env_manager_class(key: str): return _import_class(entry.env_manager_class) +def create_env_manager(key: str): + """Create an env manager instance with installation_kwargs from the manifest.""" + entry = get_simulator_entry(key) + cls = _import_class(entry.env_manager_class) + return cls(installation_kwargs=entry.installation_kwargs) + + def _import_class(fully_qualified_name: str): """Import a class from its fully qualified name (e.g., 'pkg.mod.ClassName').""" module_path, class_name = fully_qualified_name.rsplit(".", 1) diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 8cc4797..466181c 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -35,6 +35,12 @@ class SubprocessRunner: """Manages a bridge subprocess for a single simulator instance.""" + # Path-like env vars that should prepend rather than replace + _PREPEND_ENV_VARS = frozenset({ + "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "PATH", + "PYTHONPATH", "QT_QPA_PLATFORM_PLUGIN_PATH", + }) + def __init__( self, python_executable: str, @@ -45,6 +51,7 @@ def __init__( command_timeout: float = 60.0, poll_interval: float = 0.1, extra_args: list[str] | None = None, + extra_env: dict[str, str] | None = None, ): self.python_executable = python_executable self.bridge_script_path = bridge_script_path @@ -54,6 +61,7 @@ def __init__( self.command_timeout = command_timeout self.poll_interval = poll_interval self.extra_args = extra_args or [] + self.extra_env = extra_env self._process: subprocess.Popen | None = None self._workspace: Path | None = None @@ -88,6 +96,7 @@ def launch(self) -> None: stderr=subprocess.STDOUT, # merge stderr into stdout text=True, bufsize=1, + env=self._build_subprocess_env(), ) # Stream bridge output through logger in a background thread @@ -164,6 +173,25 @@ def shutdown(self) -> None: cleanup_workspace(self._workspace) self._workspace = None + def _build_subprocess_env(self) -> dict[str, str] | None: + """Build env dict for subprocess, merging extra_env with os.environ. + + For path-like vars (LD_LIBRARY_PATH, PATH, etc.), prepends the new + value to the existing value with ':' separator. + + Returns None if no extra_env (subprocess inherits parent env). + """ + if not self.extra_env: + return None + + env = os.environ.copy() + for key, value in self.extra_env.items(): + if key in self._PREPEND_ENV_VARS and key in env: + env[key] = f"{value}:{env[key]}" + else: + env[key] = value + return env + def _build_launch_command(self) -> list[str]: """Build the command to launch the bridge subprocess.""" cmd = [ diff --git a/tests/test_coppeliasim_simulator.py b/tests/test_coppeliasim_simulator.py new file mode 100644 index 0000000..9b1d8e2 --- /dev/null +++ b/tests/test_coppeliasim_simulator.py @@ -0,0 +1,165 @@ +"""Tests for CoppeliaSim V4.1.0 simulator integration (offline).""" + +from pathlib import Path + + +class TestRegistryDiscovery: + """Verify CoppeliaSim is discovered by the simulator registry.""" + + def test_coppeliasim_in_simulator_list(self): + from easi.simulators.registry import list_simulators + assert "coppeliasim" in list_simulators() + + def test_coppeliasim_versioned_key(self): + from easi.simulators.registry import list_simulators + assert "coppeliasim:v4_1_0" in list_simulators() + + def test_get_simulator_entry(self): + from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("coppeliasim") + assert entry.name == "coppeliasim" + assert entry.version == "v4_1_0" + + def test_installation_kwargs_populated(self): + from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("coppeliasim") + assert "binary_url" in entry.installation_kwargs + assert "binary_dir_name" in entry.installation_kwargs + assert "pyrep_git_url" in entry.installation_kwargs + + def test_load_simulator_class(self): + from easi.simulators.registry import load_simulator_class + cls = load_simulator_class("coppeliasim:v4_1_0") + sim = cls() + assert sim.name == "coppeliasim" + + def test_create_env_manager_with_kwargs(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.installation_kwargs["binary_dir_name"] == "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" + + +class TestEnvManagerConfig: + """Verify env manager configuration without installing anything.""" + + def test_env_name(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.get_env_name() == "easi_coppeliasim_v4_1_0" + + def test_needs_display(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.needs_display is True + + def test_xvfb_screen_config(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.xvfb_screen_config == "1280x720x24" + + def test_system_deps(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + deps = mgr.get_system_deps() + assert "conda" in deps + assert "xvfb" in deps + + def test_validation_import_references_pyrep(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert "pyrep" in mgr.get_validation_import().lower() + + def test_conda_yaml_exists(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.get_conda_env_yaml_path().exists() + + def test_requirements_txt_exists(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert mgr.get_requirements_txt_path().exists() + + +class TestEnvVars: + """Verify env_vars are correctly resolved from installation_kwargs.""" + + def test_env_vars_has_coppeliasim_root(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert "COPPELIASIM_ROOT" in mgr.get_env_vars() + + def test_env_vars_has_ld_library_path(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert "LD_LIBRARY_PATH" in mgr.get_env_vars() + + def test_env_vars_has_qt_platform(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in mgr.get_env_vars() + + def test_env_vars_no_unresolved_templates(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + for key, val in mgr.get_env_vars().items(): + assert "{" not in val, f"Unresolved template in {key}: {val}" + + def test_env_vars_contain_coppeliasim_dir(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + root = mgr.get_env_vars()["COPPELIASIM_ROOT"] + assert "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" in root + assert "extras" in root + + def test_ld_library_path_includes_coppeliasim_root(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + env_vars = mgr.get_env_vars() + assert env_vars["COPPELIASIM_ROOT"] in env_vars["LD_LIBRARY_PATH"] + assert env_vars["COPPELIASIM_ROOT"] == env_vars["QT_QPA_PLATFORM_PLUGIN_PATH"] + + def test_ld_library_path_includes_conda_lib(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") + env_vars = mgr.get_env_vars() + assert "/lib" in env_vars["LD_LIBRARY_PATH"] + + def test_empty_installation_kwargs_returns_empty_env_vars(self): + from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + mgr = CoppeliaSimEnvManagerV410() # No installation_kwargs + assert mgr.get_env_vars() == {} + + +class TestSimulatorClass: + """Verify simulator class basic properties.""" + + def test_name(self): + from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + assert CoppeliaSimSimulatorV410().name == "coppeliasim" + + def test_version(self): + from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + assert CoppeliaSimSimulatorV410().version == "v4_1_0" + + def test_bridge_script_path_exists(self): + from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + bridge_path = CoppeliaSimSimulatorV410()._get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" + + def test_bridge_script_has_bridge_class(self): + from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + content = CoppeliaSimSimulatorV410()._get_bridge_script_path().read_text() + assert "CoppeliaSimBridge" in content + + +class TestBridgeFileStructure: + """Verify bridge file and supporting assets exist.""" + + def test_ttt_scene_file_exists(self): + ttt = Path(__file__).parent.parent / "easi" / "simulators" / "coppeliasim" / "v4_1_0" / "task_design.ttt" + assert ttt.exists(), f"task_design.ttt not found at {ttt}" + + def test_lua_addon_exists(self): + lua = Path(__file__).parent.parent / "easi" / "simulators" / "coppeliasim" / "v4_1_0" / "simAddOnScript_PyRep.lua" + assert lua.exists(), f"simAddOnScript_PyRep.lua not found at {lua}" diff --git a/tests/test_dummy_simulator.py b/tests/test_dummy_simulator.py index 3efe5ee..ae6bff7 100644 --- a/tests/test_dummy_simulator.py +++ b/tests/test_dummy_simulator.py @@ -83,6 +83,26 @@ def test_is_running(dummy_simulator): assert dummy_simulator.is_running() +def test_dummy_simulator_with_env_vars_wiring(): + """Verify DummyEnvManager.get_env_vars() returns {} and doesn't break launch.""" + env_manager = DummyEnvManager() + assert env_manager.get_env_vars() == {} + + sim = DummySimulator() + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + startup_timeout=10.0, + command_timeout=10.0, + extra_env=env_manager.get_env_vars() or None, + ) + runner.launch() + try: + assert runner.is_alive() + finally: + runner.shutdown() + + def test_registry_discovery(): """Test that the dummy simulator is discoverable via the registry.""" from easi.simulators.registry import get_simulator_entry, list_simulators diff --git a/tests/test_env_manager.py b/tests/test_env_manager.py new file mode 100644 index 0000000..cd435c4 --- /dev/null +++ b/tests/test_env_manager.py @@ -0,0 +1,180 @@ +"""Tests for BaseEnvironmentManager extensions (env vars, post_install, helpers).""" + +from __future__ import annotations + +import os +import shutil +import sys +from pathlib import Path + + +class TestEnvManagerGetEnvVars: + """Tests for the get_env_vars() method.""" + + def test_default_returns_empty_dict(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + assert mgr.get_env_vars() == {} + + def test_returns_dict_type(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + result = mgr.get_env_vars() + assert isinstance(result, dict) + + +class TestEnvManagerPostInstall: + """Tests for the post_install() hook and helper utilities.""" + + def test_default_post_install_is_noop(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + ctx = mgr._get_template_variables() + ctx["env_vars"] = mgr.get_env_vars() + mgr.post_install(ctx) # Should not raise + + def test_post_install_receives_context_keys(self): + from easi.core.base_env_manager import BaseEnvironmentManager + + received_ctx = {} + + class SpyManager(BaseEnvironmentManager): + simulator_name = "spy" + version = "v1" + + def get_conda_env_yaml_path(self): + return Path("/dev/null") + + def get_requirements_txt_path(self): + return Path("/dev/null") + + def get_system_deps(self): + return [] + + def get_validation_import(self): + return "pass" + + def post_install(self, context): + received_ctx.update(context) + + mgr = SpyManager() + mgr._run_post_install() + assert "env_dir" in received_ctx + assert "extras_dir" in received_ctx + assert "env_vars" in received_ctx + + def test_extras_dir_inside_env(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + extras_dir = mgr.get_extras_dir() + env_name = mgr.get_env_name() + assert env_name in str(extras_dir) + assert str(extras_dir).endswith("extras") + + def test_resolve_template(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + env_dir = str(mgr.conda_prefix / "envs" / mgr.get_env_name()) + result = mgr._resolve_template("{env_dir}/lib", {"env_dir": env_dir}) + assert result == f"{env_dir}/lib" + + def test_resolve_extras_dir_template(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + t = mgr._get_template_variables() + result = mgr._resolve_template("{extras_dir}/CoppeliaSim", t) + assert "extras/CoppeliaSim" in result + assert "{" not in result + + def test_post_install_can_copy_files(self, tmp_path): + from easi.core.base_env_manager import BaseEnvironmentManager + + src_file = tmp_path / "source" / "addon.lua" + src_file.parent.mkdir() + src_file.write_text("-- lua script") + dest_dir = tmp_path / "dest" + dest_dir.mkdir() + + class CopyManager(BaseEnvironmentManager): + simulator_name = "copy" + version = "v1" + + def get_conda_env_yaml_path(self): + return Path("/dev/null") + + def get_requirements_txt_path(self): + return Path("/dev/null") + + def get_system_deps(self): + return [] + + def get_validation_import(self): + return "pass" + + def post_install(self, context): + shutil.copy(str(src_file), str(dest_dir / "addon.lua")) + + mgr = CopyManager() + ctx = mgr._get_template_variables() + ctx["env_vars"] = {} + mgr.post_install(ctx) + assert (dest_dir / "addon.lua").exists() + assert (dest_dir / "addon.lua").read_text() == "-- lua script" + + def test_env_vars_with_templates_are_resolved(self): + from easi.core.base_env_manager import BaseEnvironmentManager + + class FakeManager(BaseEnvironmentManager): + simulator_name = "fake" + version = "v1" + + def get_conda_env_yaml_path(self): + return Path("/dev/null") + + def get_requirements_txt_path(self): + return Path("/dev/null") + + def get_system_deps(self): + return [] + + def get_validation_import(self): + return "pass" + + def get_env_vars(self): + t = self._get_template_variables() + return { + "SIM_ROOT": self._resolve_template("{extras_dir}/CoppeliaSim", t), + "LD_LIBRARY_PATH": self._resolve_template("{extras_dir}/CoppeliaSim", t), + } + + mgr = FakeManager() + env_vars = mgr.get_env_vars() + assert "extras/CoppeliaSim" in env_vars["SIM_ROOT"] + assert "extras/CoppeliaSim" in env_vars["LD_LIBRARY_PATH"] + for v in env_vars.values(): + assert "{" not in v + + def test_run_command_accepts_env(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + mgr._run_command( + [sys.executable, "-c", "import os; assert os.environ.get('TEST_EASI_VAR') == 'hello'"], + "test env injection", + env={**os.environ, "TEST_EASI_VAR": "hello"}, + ) + + def test_run_command_without_env_inherits_parent(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + mgr._run_command( + [sys.executable, "-c", "print('ok')"], + "test no env", + ) diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py new file mode 100644 index 0000000..f54e300 --- /dev/null +++ b/tests/test_env_vars_wiring.py @@ -0,0 +1,66 @@ +"""Tests verifying env vars flow from env_manager through to SubprocessRunner.""" + +from __future__ import annotations + +from pathlib import Path +from unittest.mock import MagicMock, patch + + +class TestEnvVarsWiring: + """Verify env vars flow from env_manager to SubprocessRunner.""" + + def test_runner_passes_env_vars_to_subprocess(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + + mock_env_mgr = MagicMock() + mock_env_mgr.env_is_ready.return_value = True + mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.needs_display = False + mock_env_mgr.xvfb_screen_config = "1024x768x24" + mock_env_mgr.get_env_vars.return_value = {"SIM_ROOT": "/opt/sim"} + + mock_sim_cls = MagicMock() + mock_sim = mock_sim_cls.return_value + mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + mock_runner_instance = MockRunner.return_value + mock_runner_instance.launch.return_value = None + + runner._create_simulator("fake:v1") + + call_kwargs = MockRunner.call_args + assert call_kwargs.kwargs.get("extra_env") == {"SIM_ROOT": "/opt/sim"} + + def test_runner_passes_none_when_no_env_vars(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + + mock_env_mgr = MagicMock() + mock_env_mgr.env_is_ready.return_value = True + mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.needs_display = False + mock_env_mgr.xvfb_screen_config = "1024x768x24" + mock_env_mgr.get_env_vars.return_value = {} + + mock_sim_cls = MagicMock() + mock_sim = mock_sim_cls.return_value + mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + mock_runner_instance = MockRunner.return_value + mock_runner_instance.launch.return_value = None + + runner._create_simulator("fake:v1") + + call_kwargs = MockRunner.call_args + assert call_kwargs.kwargs.get("extra_env") is None diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py new file mode 100644 index 0000000..9004f8a --- /dev/null +++ b/tests/test_installation_kwargs.py @@ -0,0 +1,80 @@ +"""Tests for installation_kwargs flow: manifest -> registry -> env_manager.""" + +from __future__ import annotations + +from pathlib import Path +from unittest.mock import MagicMock, patch + + +class TestSimulatorEntryHasInstallationKwargs: + """SimulatorEntry dataclass includes installation_kwargs.""" + + def test_dummy_entry_has_empty_installation_kwargs(self): + from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("dummy") + assert hasattr(entry, "installation_kwargs") + assert entry.installation_kwargs == {} + + def test_ai2thor_entry_has_empty_installation_kwargs(self): + from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("ai2thor:v2_1_0") + assert entry.installation_kwargs == {} + + +class TestBaseEnvManagerAcceptsInstallationKwargs: + """BaseEnvironmentManager stores installation_kwargs.""" + + def test_default_installation_kwargs_is_empty(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + mgr = DummyEnvManager() + assert mgr.installation_kwargs == {} + + def test_accepts_installation_kwargs(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + mgr = DummyEnvManager(installation_kwargs={"foo": "bar"}) + assert mgr.installation_kwargs == {"foo": "bar"} + + +class TestCreateEnvManagerFactory: + """Registry factory function passes installation_kwargs.""" + + def test_create_env_manager_returns_instance(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("dummy") + assert mgr.simulator_name == "dummy" + + def test_create_env_manager_passes_kwargs(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("dummy") + assert isinstance(mgr.installation_kwargs, dict) + + +class TestRunnerUsesFactory: + """EvaluationRunner._create_simulator uses the factory.""" + + def test_runner_passes_installation_kwargs(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + + mock_env_mgr = MagicMock() + mock_env_mgr.env_is_ready.return_value = True + mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.needs_display = False + mock_env_mgr.xvfb_screen_config = "1024x768x24" + mock_env_mgr.get_env_vars.return_value = {} + + mock_sim_cls = MagicMock() + mock_sim = mock_sim_cls.return_value + mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr) as mock_factory, \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + mock_runner_instance = MockRunner.return_value + mock_runner_instance.launch.return_value = None + + runner._create_simulator("fake:v1") + + mock_factory.assert_called_once_with("fake:v1") diff --git a/tests/test_subprocess_runner.py b/tests/test_subprocess_runner.py new file mode 100644 index 0000000..c07411d --- /dev/null +++ b/tests/test_subprocess_runner.py @@ -0,0 +1,68 @@ +"""Tests for SubprocessRunner env var injection.""" + +from __future__ import annotations + +import os +from pathlib import Path + +from easi.simulators.subprocess_runner import SubprocessRunner + + +class TestSubprocessRunnerEnvVars: + """Tests for env var injection into bridge subprocess.""" + + def test_constructor_accepts_env_vars(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + extra_env={"MY_VAR": "my_value"}, + ) + assert runner.extra_env == {"MY_VAR": "my_value"} + + def test_default_env_is_none(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + ) + assert runner.extra_env is None + + def test_build_env_merges_with_os_environ(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + extra_env={"COPPELIASIM_ROOT": "/opt/coppeliasim"}, + ) + env = runner._build_subprocess_env() + assert env["COPPELIASIM_ROOT"] == "/opt/coppeliasim" + assert "PATH" in env + + def test_build_env_returns_none_when_no_extra(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + ) + assert runner._build_subprocess_env() is None + + def test_extra_env_prepends_to_path_vars(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + extra_env={"LD_LIBRARY_PATH": "/opt/sim/lib"}, + ) + env = runner._build_subprocess_env() + ld_path = env.get("LD_LIBRARY_PATH", "") + assert ld_path.startswith("/opt/sim/lib") + + def test_non_path_var_replaces(self): + """Non-path env vars should replace, not prepend.""" + os.environ["MY_EXISTING"] = "old_value" + try: + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + extra_env={"MY_EXISTING": "new_value"}, + ) + env = runner._build_subprocess_env() + assert env["MY_EXISTING"] == "new_value" + finally: + del os.environ["MY_EXISTING"] From 5c9e80c7081086ae9adfd784966be40fe56420be Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 18 Feb 2026 15:01:10 +0800 Subject: [PATCH 049/239] [Fix] Trust DISPLAY env var for real screen detection Simplify _has_display() to accept any DISPLAY value including local displays like :0. Previously rejected :N format which prevented using real screens directly, forcing unnecessary xvfb-run wrapping. --- easi/simulators/subprocess_runner.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 466181c..92d7abc 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -212,9 +212,8 @@ def _build_launch_command(self) -> list[str]: return cmd def _has_display(self) -> bool: - """Check if a real display is available.""" - display = os.environ.get("DISPLAY", "") - return bool(display) and not display.startswith(":") + """Check if an X display is available.""" + return bool(os.environ.get("DISPLAY", "")) def _stream_output(self) -> None: """Read bridge stdout line-by-line and log at DEBUG level. From 30dc5c7f7a72e16f6705a6da875f85ee1480f0bb Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 18 Feb 2026 23:52:16 +0800 Subject: [PATCH 050/239] [Feat] Add EB-Manipulation benchmark integration with configurable task env vars Integrate EmbodiedBench's EB-Manipulation benchmark into EASI with full alignment to the original evaluation pipeline. Includes vendored env/utils, task bridge with image annotation (XYZ axes + YOLO bboxes), prompt builder matching ManipPlanner, 5 split YAML configs, and 40 tests. Also adds a generic `simulator_configs.env_vars` mechanism for task YAMLs to inject environment variables into the bridge subprocess. --- easi/core/base_task.py | 8 +- easi/evaluation/runner.py | 4 + easi/tasks/ebmanipulation/__init__.py | 0 easi/tasks/ebmanipulation/actions.py | 92 +++ easi/tasks/ebmanipulation/bridge.py | 233 +++++++ .../config/manipulation_examples.json | 28 + .../ebmanipulation/ebmanipulation_base.yaml | 42 ++ .../ebmanipulation_common_sense.yaml | 42 ++ .../ebmanipulation_complex.yaml | 42 ++ .../ebmanipulation_spatial.yaml | 42 ++ .../ebmanipulation/ebmanipulation_visual.yaml | 42 ++ easi/tasks/ebmanipulation/prompts.py | 547 +++++++++++++++ easi/tasks/ebmanipulation/task.py | 101 +++ easi/tasks/ebmanipulation/vendor/EBManEnv.py | 189 ++++++ easi/tasks/ebmanipulation/vendor/__init__.py | 0 .../ebmanipulation/vendor/eb_man_utils.py | 633 ++++++++++++++++++ tests/test_ebmanipulation_task.py | 407 +++++++++++ 17 files changed, 2451 insertions(+), 1 deletion(-) create mode 100644 easi/tasks/ebmanipulation/__init__.py create mode 100644 easi/tasks/ebmanipulation/actions.py create mode 100644 easi/tasks/ebmanipulation/bridge.py create mode 100644 easi/tasks/ebmanipulation/config/manipulation_examples.json create mode 100644 easi/tasks/ebmanipulation/ebmanipulation_base.yaml create mode 100644 easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml create mode 100644 easi/tasks/ebmanipulation/ebmanipulation_complex.yaml create mode 100644 easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml create mode 100644 easi/tasks/ebmanipulation/ebmanipulation_visual.yaml create mode 100644 easi/tasks/ebmanipulation/prompts.py create mode 100644 easi/tasks/ebmanipulation/task.py create mode 100644 easi/tasks/ebmanipulation/vendor/EBManEnv.py create mode 100644 easi/tasks/ebmanipulation/vendor/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/eb_man_utils.py create mode 100644 tests/test_ebmanipulation_task.py diff --git a/easi/core/base_task.py b/easi/core/base_task.py index d0bc5fa..72191c4 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -110,12 +110,18 @@ def additional_deps(self) -> list[str]: @property def simulator_kwargs(self) -> dict: - """Bridge-facing kwargs (simulator_configs minus additional_deps + max_steps).""" + """Bridge-facing kwargs (simulator_configs minus additional_deps/env_vars + max_steps).""" cfg = dict(self.simulator_configs) cfg.pop("additional_deps", None) + cfg.pop("env_vars", None) cfg["max_steps"] = self.max_steps return cfg + @property + def extra_env_vars(self) -> dict[str, str]: + """Task-level environment variables from simulator_configs.env_vars.""" + return self.simulator_configs.get("env_vars", {}) + def get_instruction(self, episode: dict) -> str: """Return human-readable task instruction for this episode. diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 2705086..05bbe2d 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -515,6 +515,10 @@ def _create_simulator(self, simulator_key: str, task=None): env_vars = env_manager.get_env_vars() + # Merge task-level env_vars from simulator_configs.env_vars + if task and task.extra_env_vars: + env_vars = {**env_vars, **task.extra_env_vars} + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=bridge_path, diff --git a/easi/tasks/ebmanipulation/__init__.py b/easi/tasks/ebmanipulation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/actions.py b/easi/tasks/ebmanipulation/actions.py new file mode 100644 index 0000000..8a6eb4b --- /dev/null +++ b/easi/tasks/ebmanipulation/actions.py @@ -0,0 +1,92 @@ +"""EB-Manipulation action space definitions. + +Unlike EB-Alfred/Navigation which have named discrete actions, +EB-Manipulation uses 7D discrete gripper actions: + [X, Y, Z, Roll, Pitch, Yaw, Gripper_state] + +Reference: EmbodiedBench/embodiedbench/envs/eb_manipulation/eb_man_utils.py +""" +from __future__ import annotations + +import ast +import re + +# Default discretization parameters (configurable via simulator_kwargs) +DEFAULT_VOXEL_SIZE = 100 +DEFAULT_ROTATION_RESOLUTION = 3 +DEFAULT_SCENE_BOUNDS = [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] +DEFAULT_MAX_STEPS = 15 + +# Eval set definitions matching EBManEnv.py EVAL_SETS +EVAL_SETS = { + "base": [ + "pick_cube_shape", + "stack_cubes_color", + "place_into_shape_sorter_color", + "wipe_table_direction", + ], + "common_sense": [ + "pick_cube_shape", + "stack_cubes_color", + "place_into_shape_sorter_color", + "wipe_table_direction", + ], + "complex": [ + "pick_cube_shape", + "stack_cubes_color", + "place_into_shape_sorter_color", + "wipe_table_direction", + ], + "spatial": [ + "pick_cube_relative", + "stack_cubes_relative", + "place_into_shape_sorter_relative", + "wipe_table_relative", + ], + "visual": [ + "pick_cube_shape", + "stack_cubes_color", + "place_into_shape_sorter_color", + ], +} + +VALID_EVAL_SETS = list(EVAL_SETS.keys()) + + +def get_action_space() -> list[str]: + """Return empty action space -- EB-Manipulation uses 7D coordinate arrays.""" + return [] + + +def serialize_action(action: list) -> str: + """Serialize a 7D action list to a string for EASI Action.action_name.""" + return str(action) + + +def deserialize_action(action_str: str) -> list: + """Deserialize action string back to a 7D list.""" + try: + result = ast.literal_eval(action_str) + if isinstance(result, (list, tuple)) and len(result) == 7: + return list(result) + except (ValueError, SyntaxError): + pass + return [] + + +def extract_pose_list(text: str) -> list[list]: + """Extract multiple [x, y, z, a, b, c, n] arrays from a string. + + Reference: ManipPlanner.extract_pose_list() + """ + matches = re.findall(r"\[([^\[\]]+)\]", text) + poses = [] + for m in matches: + arr_str = "[" + m + "]" + try: + parsed = ast.literal_eval(arr_str) + if isinstance(parsed, list) and len(parsed) == 7: + poses.append(parsed) + except Exception: + continue + return poses diff --git a/easi/tasks/ebmanipulation/bridge.py b/easi/tasks/ebmanipulation/bridge.py new file mode 100644 index 0000000..28a2c5e --- /dev/null +++ b/easi/tasks/ebmanipulation/bridge.py @@ -0,0 +1,233 @@ +"""EB-Manipulation bridge -- wraps vendored EBManEnv via BaseBridge. + +This script runs inside the easi_coppeliasim_v4_1_0 conda env (Python 3.10). +Communicates with parent process via filesystem IPC. + +The bridge adds AMSolver to sys.path at startup so the vendored EBManEnv +can import from amsolver (CoppeliaSim scene management). + +It also handles: +- Object coordinate extraction (form_object_coord_for_input) +- Image annotation with XYZ axes (draw_xyz_coordinate) +- Image annotation with YOLO bounding boxes (draw_bounding_boxes) + +These are passed to the prompt builder via observation metadata. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + + +def _setup_amsolver_path(simulator_kwargs: dict, data_dir: str = "") -> None: + """Add AMSolver parent directory to sys.path and set TTMS_FOLDER. + + AMSolver lives at EmbodiedBench/embodiedbench/envs/eb_manipulation/amsolver/. + The parent directory (eb_manipulation/) must be on sys.path so + ``import amsolver`` works. + + The path is configurable via simulator_kwargs['amsolver_parent_path']. + Default: auto-detect from repo root / EmbodiedBench submodule. + + Also sets amsolver.task_environment.TTMS_FOLDER to the extracted HF data + directory so AMSolver can find task templates, object models, and robot TTMs. + """ + amsolver_parent = simulator_kwargs.get("amsolver_parent_path", "") + if not amsolver_parent: + # Auto-detect: try repo_root/EmbodiedBench/embodiedbench/envs/eb_manipulation + candidate = ( + _repo_root / "EmbodiedBench" / "embodiedbench" / "envs" / "eb_manipulation" + ) + if candidate.exists(): + amsolver_parent = str(candidate) + + if amsolver_parent and amsolver_parent not in sys.path: + sys.path.insert(0, amsolver_parent) + + # Point AMSolver's TTMS_FOLDER to the HF dataset cache + # (contains vlm/, amsolver/robot_ttms/) + if data_dir: + import amsolver.task_environment as te + + te.TTMS_FOLDER = data_dir + "/" + + +from easi.simulators.base_bridge import BaseBridge +from easi.tasks.ebmanipulation.actions import deserialize_action +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBManipulationBridge(BaseBridge): + """BaseBridge wrapper around vendored EBManEnv for EB-Manipulation. + + Handles object coordinate extraction and image annotation to match + the original EmbodiedBench evaluation pipeline. + """ + + # Camera views used for object coordinate computation + _camera_types = ["front_rgb"] + + def _create_env(self, reset_config, simulator_kwargs): + # Must set up AMSolver path before importing vendored env + data_dir = reset_config.get("data_dir", "") + _setup_amsolver_path(simulator_kwargs, data_dir=data_dir) + + from easi.tasks.ebmanipulation.vendor.EBManEnv import EBManEnv + + resolution = simulator_kwargs.get("screen_height", 500) + max_steps = simulator_kwargs.get("max_steps", 15) + voxel_size = simulator_kwargs.get("voxel_size", 100) + rotation_resolution = simulator_kwargs.get("rotation_resolution", 3) + scene_bounds = simulator_kwargs.get( + "scene_bounds", [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + ) + + self._resolution = resolution + self._detection_box = simulator_kwargs.get("detection_box", True) + + return EBManEnv( + img_size=(resolution, resolution), + max_steps=max_steps, + scene_bounds=scene_bounds, + voxel_size=voxel_size, + rotation_resolution=rotation_resolution, + ) + + def _on_reset(self, env, reset_config): + # Construct episode file paths from HF dataset cache + data_dir = reset_config.get("data_dir", "") + split = reset_config.get("split", "base") + task_name = reset_config["task_name"] + variation = reset_config.get("variation", 0) + episode_num = reset_config.get("episode_num", 0) + + episode_path = ( + Path(data_dir) + / "data" + / split + / "eval" + / task_name + / f"variation{variation}" + / "episodes" + / f"episode{episode_num}" + ) + + episode = { + "task_file": task_name, + "task_base": str(episode_path / "task_base.ttm"), + "waypoint_sets": str(episode_path / "waypoint_sets.ttm"), + "configs": str(episode_path / "configs.pkl"), + } + description, obs_dict = env.reset(episode=episode) + + # Store reset_config for metadata + self._current_reset_config = reset_config + + return obs_dict + + def _on_step(self, env, action_text): + """Parse 7D action from action_text string and execute.""" + action = deserialize_action(action_text) + if not action or len(action) != 7: + # Random action fallback (matches ManipPlanner behavior) + voxel_size = self.simulator_kwargs.get("voxel_size", 100) + rotation_resolution = self.simulator_kwargs.get("rotation_resolution", 3) + rotation_bins = int(360 / rotation_resolution) + action = [np.random.randint(0, voxel_size) for _ in range(3)] + [ + np.random.randint(0, rotation_bins) for _ in range(3) + ] + [1.0] + return env.step(action) + + def _extract_image(self, obs): + """Extract front camera RGB from observation dict.""" + return obs["front_rgb"] + + def _extract_info(self, info): + return { + "task_success": float(info.get("task_success", 0.0)), + "action_success": float(info.get("action_success", 0.0)), + "feedback": str(info.get("env_feedback", "")), + "env_step": int(info.get("env_step", 0)), + "episode_elapsed_seconds": float( + info.get("episode_elapsed_seconds", 0.0) + ), + } + + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Override to compute object coordinates and annotate images. + + This matches the EmbodiedBench evaluation pipeline: + 1. Save raw front_rgb image + 2. Compute object coordinates via form_object_coord_for_input() + 3. Annotate image with XYZ coordinate axes + 4. Annotate image with YOLO bounding boxes + 5. Pass avg_obj_coord, task_variation, task_class in metadata + """ + # First, build the standard response (saves raw image) + response = super()._make_response(obs, reward, done, info) + + # Compute object coordinates from the full observation dict + avg_obj_coord = "{}" + task_variation = "" + task_class = "" + + if self.env is not None: + task_variation = getattr(self.env, "current_task_variation", "") or "" + task_class = getattr(self.env, "task_class", "") or "" + + try: + from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + draw_bounding_boxes, + draw_xyz_coordinate, + form_object_coord_for_input, + ) + + # Compute object coordinates + coord_result = form_object_coord_for_input( + obs, task_class, self._camera_types + ) + avg_coord, all_avg_point_list, cam_ext_list, cam_int_list = ( + coord_result + ) + avg_obj_coord = str(avg_coord) + + # Annotate the saved image + rgb_path = response["observation"]["rgb_path"] + + if self._detection_box: + # Draw XYZ coordinate axes on the image + draw_xyz_coordinate(rgb_path, self._resolution) + + # Draw YOLO bounding boxes + if all_avg_point_list and cam_ext_list and cam_int_list: + annotated_paths = draw_bounding_boxes( + [rgb_path], all_avg_point_list, cam_ext_list, cam_int_list + ) + if annotated_paths: + response["observation"]["rgb_path"] = annotated_paths[0] + + except Exception as e: + logger.warning("Object coordinate extraction failed: %s", e) + + # Store metadata for prompt builder + response["observation"]["metadata"]["avg_obj_coord"] = avg_obj_coord + response["observation"]["metadata"]["task_variation"] = task_variation + response["observation"]["metadata"]["task_class"] = task_class + + return response + + +if __name__ == "__main__": + EBManipulationBridge.main() diff --git a/easi/tasks/ebmanipulation/config/manipulation_examples.json b/easi/tasks/ebmanipulation/config/manipulation_examples.json new file mode 100644 index 0000000..520a0e8 --- /dev/null +++ b/easi/tasks/ebmanipulation/config/manipulation_examples.json @@ -0,0 +1,28 @@ +{ + "pick": [ + "Human Instruction: Pick up the star and place it into the yellow container.\nInput: {'object 1': [45, 13, 18], 'object 2': [72, 20, 18], 'object 3': [50, 42, 17], 'object 4': [36, 42, 18], 'object 5': [70, 43, 17], 'object 6': [50, 77, 17]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a purple cylinder at [45, 13, 18], a blue moon at [72, 20, 18], a green star at [50, 42, 17], a purple cube at [36, 42, 18], a yellow container at [70, 43, 17] and a purple container at [50, 77, 17].\",\n \"reasoning_and_reflection\": \"The task is to pick up the star located at [50, 42, 17] and place it into the yellow container located at [70, 43, 17]. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving to the yellow container's position, and opening the gripper to release the cube into the container.\",\n \"executable_plan\": \"[[50, 42, 17, 6, 61, 36, 1], [50, 42, 17, 6, 61, 36, 0], [47, 41, 26, 6, 61, 36, 0], [69, 39, 24, 88, 32, 77, 0], [69, 39, 24, 87, 32, 77, 1]]\"\n}", + "Human Instruction: Pick up the star and place it into the rose container.\nInput: {'object 1': [78, 20, 17], 'object 2': [28, 30, 17], 'object 3': [39, 47, 17], 'object 4': [50, 72, 17], 'object 5': [39, 75, 18]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a rose container at [78, 20, 17], a black star at [28, 30, 17], a green container at [39, 47, 17], a green triangular prism at [50, 72, 17] and a grey cylinder at [39, 75, 18].\",\n \"reasoning_and_reflection\": \"The task is to pick up the star located at [28, 30, 17] and place it into the rose container located at [78, 20, 17]. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving to the rose container's position, and opening the gripper to release the cube into the container.\",\n \"executable_plan\": \"[[28, 32, 26, 0, 60, 94, 1], [27, 32, 18, 0, 60, 94, 0], [27, 32, 28, 0, 60, 94, 0], [76, 19, 28, 6, 66, 109, 1]]\"\n}" + ], + "stack": [ + "Human Instruction: Stack the red star and the olive star in sequence.\nInput: {'object 1': [42, 24, 19], 'object 2': [54, 53, 19], 'object 3': [65, 68, 19], 'object 4': [39, 73, 18]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a purple star at [42, 24, 19], an olive star at [54, 53, 19], a grey star at [65, 68, 19] and a red star at [39, 73, 18].\",\n \"reasoning_and_reflection\": \"I need to understand the instruction first. To stack the objects in sequece, the red star at [39, 73, 18] should be at the bottom and the olive star at [54, 53, 19] should be placed on top. The plan involves moving the gripper to the olive star's position, closing the gripper to pick it up, moving to the top of the red star, and opening the gripper to release the olive star onto the red star.\",\n \"executable_plan\": \"[[54, 51, 28, 3, 66, 37, 1], [54, 54, 20, 3, 66, 37, 0], [54, 51, 30, 3, 66, 37, 0], [39, 74, 29, 3, 66, 7, 0], [39, 74, 26, 3, 66, 7, 1]]\"\n}", + "Human Instruction: Stack the red cube and the blue cube in sequence.\nInput: {'object 1': [35, 17, 17], 'object 2': [57, 47, 17], 'object 3': [33, 76, 17], 'object 4': [77, 86, 17]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a blue cube at [35, 17, 17], a black cube at [57, 47, 17], a red cube at [33, 76, 17] and a teal cube at [77, 86, 17].\",\n \"reasoning_and_reflection\": \"I need to understand the instruction first. To stack the objects in sequece, the red cube at [33, 76, 17] should be at the bottom and the blue cube at [35, 17, 17] should be placed on top. The plan involves moving the gripper to the blue cube's position, closing the gripper to pick it up, moving to the top of the red cube, and opening the gripper to release the blue cube onto the red cube.\",\n \"executable_plan\": \"[[36, 16, 25, 0, 60, 34, 1], [36, 16, 17, 0, 60, 34, 0], [36, 16, 27, 0, 60, 34, 0], [32, 76, 24, 0, 60, 104, 0], [32, 76, 21, 0, 60, 104, 1]]\"\n}", + "Human Instruction: Stack the red moon and the maroon moon in sequence.\nInput: {'object 1': [67, 43, 19], 'object 2': [80, 47, 19], 'object 3': [34, 58, 20], 'object 4': [84, 68, 19]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a yellow moon at [67, 43, 19], a red moon at [80, 47, 19], a maroon moon at [34, 58, 20] and a blue moon at [84, 68, 19].\",\n \"reasoning_and_reflection\": \"I need to understand the instruction first. To stack the objects in sequece, the red moon at [80, 47, 19] should be at the bottom and the maroon moon at [34, 58, 20] should be placed on top. The plan involves moving the gripper to the maroon moon's position, closing the gripper to pick it up, moving to the top of the red moon, and opening the gripper to release the maroon moon onto the red moon.\",\n \"executable_plan\": \"[[34, 58, 28, 0, 60, 25, 1], [34, 58, 20, 0, 60, 25, 0], [34, 58, 30, 0, 60, 25, 0], [83, 46, 30, 0, 60, 15, 0], [83, 46, 26, 0, 60, 15, 1]]\"\n}", + "Human Instruction: Stack the red triangular prism and the magenta triangular prism in sequence.\nInput: {'object 1': [78, 20, 19], 'object 2': [50, 25, 20], 'object 3': [55, 72, 19], 'object 4': [56, 86, 19]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a blue triangular prism at [78, 20, 19], a magenta triangular prism at [50, 25, 20], a green triangular prism at [55, 72, 19] and a red triangular prism at [56, 86, 19].\",\n \"reasoning_and_reflection\": \"I need to understand the instruction first. To stack the objects in sequece, the red triangular prism at [56, 86, 19] should be at the bottom and the magenta triangular prism at [50, 25, 20] should be placed on top. The plan involves moving the gripper to the magenta triangular prism's position, closing the gripper to pick it up, moving to the top of the red triangular prism, and opening the gripper to release the magenta triangular prism onto the red triangular prism.\",\n \"executable_plan\": \"[[48, 25, 29, 1, 60, 92, 1], [48, 25, 21, 1, 60, 92, 0], [49, 25, 31, 1, 60, 92, 0], [54, 87, 31, 1, 60, 96, 0], [54, 87, 28, 1, 60, 96, 1]]\"\n}" + ], + "place": [ + "Human Instruction: Put the red star into the shape sorter. \nInput: {'object 1': [65, 11, 17], 'object 2': [50, 38, 17], 'object 3': [40, 64, 37], 'object 4': [45, 83, 17]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a purple star at [65, 11, 17], a red star at [50, 38, 17], a shape sorter at [40, 64, 37] and a green star at [45, 83, 17].\",\n \"reasoning_and_reflection\": \"I need to identify the location of the star hole on the shape sorter first. I can see that the star hole is at the center of the shape sorter, which is at [40, 64, 37]. Then, the task is to pick up the red star at [50, 38, 17] and put it into the star hole on the shape sorter. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving upwards, moving to the top of the star hole, and releasing the star into the hole.\",\n \"executable_plan\": \"[[51, 38, 25, 119, 59, 26, 1], [51, 38, 17, 119, 59, 26, 0], [51, 38, 27, 119, 59, 26, 0], [40, 65, 49, 0, 60, 45, 0], [40, 65, 41, 0, 60, 45, 1]]\"\n}", + "Human Instruction: Put the maroon star into the shape sorter. \nInput: {'object 1': [35, 30, 17], 'object 2': [29, 38, 17], 'object 3': [53, 38, 17], 'object 4': [64, 58, 37]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a purple star at [35, 30, 17], a maroon star at [29, 38, 17], a green star at [53, 38, 17] and a shape sorter at [64, 58, 37].\",\n \"reasoning_and_reflection\": \"I need to identify the location of the star hole on the shape sorter first. I can see that the star hole is at the center of the shape sorter, which is at [64, 58, 37]. Then, the task is to pick up the maroon star at [29, 38, 17] and put it into the star hole on the shape sorter. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving upwards, moving to the top of the star hole, and releasing the star into the hole.\",\n \"executable_plan\": \"[[29, 39, 24, 1, 61, 109, 1], [29, 38, 16, 1, 61, 109, 0], [30, 40, 26, 1, 61, 109, 0], [65, 60, 48, 0, 61, 54, 0], [65, 60, 40, 0, 61, 54, 1]]\"\n}", + "Human Instruction: Put the lime star into the shape sorter. \nInput: {'object 1': [47, 13, 17], 'object 2': [27, 36, 16], 'object 3': [38, 50, 17], 'object 4': [54, 69, 37]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a grey star at [47, 13, 17], a purple star at [27, 36, 16], a lime star at [38, 50, 17] and a shape sorter at [54, 69, 37].\",\n \"reasoning_and_reflection\": \"I need to identify the location of the star hole on the shape sorter first. I can see that the star hole is at the center of the shape sorter, which is at [54, 69, 37]. Then, the task is to pick up the lime star at [38, 50, 17] and put it into the star hole on the shape sorter. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving upwards, moving to the top of the star hole, and releasing the star into the hole.\",\n \"executable_plan\": \"[[38, 49, 23, 0, 60, 108, 1], [38, 49, 15, 0, 60, 108, 0], [38, 49, 25, 0, 60, 108, 0], [54, 69, 47, 0, 60, 3, 0], [54, 69, 39, 0, 60, 3, 1]]\"\n}", + "Human Instruction: Put the green star into the shape sorter. \nInput: {'object 1': [70, 27, 37], 'object 2': [66, 59, 17], 'object 3': [38, 63, 17], 'object 4': [63, 77, 17]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a shape sorter at [70, 27, 37], a white star at [66, 59, 17], a green star at [38, 63, 17] and a white star at [63, 77, 17].\",\n \"reasoning_and_reflection\": \"I need to identify the location of the star hole on the shape sorter first. I can see that the star hole is at the center of the shape sorter, which is at [70, 27, 37]. Then, the task is to pick up the green star at [38, 63, 17] and put it into the star hole on the shape sorter. The plan involves moving the gripper to the star's position, closing the gripper to pick it up, moving upwards, moving to the top of the star hole, and releasing the star into the hole.\",\n \"executable_plan\": \"[[39, 62, 23, 0, 60, 100, 1], [39, 62, 15, 0, 60, 100, 0], [39, 62, 25, 0, 60, 100, 0], [71, 30, 47, 0, 60, 37, 0], [71, 30, 39, 0, 60, 37, 1]]\"\n}" + ], + "wipe": [ + "Human Instruction: Wipe the horizontal area.\nInput: {'object 1': [33, 36, 19], 'object 2': [52, 38, 15], 'object 3': [59, 68, 15]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a yellow sponge at [33, 36, 19], a green rectangle area at [52, 38, 15] and an orange rectangle area at [59, 68, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is horizontal first. I can see that the orange rectangle area at [59, 68, 15] is horizontal since it is parallel to the green arrow representing the y-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [33, 36, 19] and use it to wipe the horizontal area at [59, 68, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the side of the horizontal area, and moving the sponge along the main direction of the horizontal area to wipe it.\",\n \"executable_plan\": \"[[32, 34, 25, 0, 60, 34, 1], [32, 34, 17, 0, 60, 34, 0], [32, 34, 27, 0, 60, 34, 0], [60, 80, 18, 0, 61, 31, 0], [61, 54, 17, 0, 61, 31, 0]]\"\n}", + "Human Instruction: Wipe the horizontal area.\nInput: {'object 1': [56, 19, 15], 'object 2': [35, 41, 19], 'object 3': [54, 47, 15]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a black rectangle area at [56, 19, 15], a yellow sponge at [35, 41, 19] and a white rectangle area at [54, 47, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is horizontal first. I can see that the black rectangle area at [56, 19, 15] is horizontal since it is parallel to the green arrow representing the y-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [35, 41, 19] and use it to wipe the horizontal area at [56, 19, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the right side of the horizontal area, and moving the sponge along the main direction of the horizontal area to wipe it.\",\n \"executable_plan\": \"[[33, 43, 25, 0, 60, 32, 1], [33, 43, 17, 0, 60, 32, 0], [33, 43, 27, 0, 60, 32, 0], [58, 35, 18, 0, 60, 28, 0], [56, 8, 18, 0, 60, 28, 0]]\"\n}", + "Human Instruction: Wipe the horizontal area.\nInput: {'object 1': [35, 33, 19], 'object 2': [51, 41, 15], 'object 3': [67, 63, 15]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a yellow sponge at [35, 33, 19], a yellow triangle area at [51, 41, 15] and a blue triangle area at [67, 63, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is horizontal first. I can see that the yellow triangle area at [51, 41, 15] is horizontal since it is parallel to the green arrow representing the y-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [35, 33, 19] and use it to wipe the horizontal area at [51, 41, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the right side of the horizontal area, and moving the sponge along the main direction of the horizontal area to wipe it.\",\n \"executable_plan\": \"[[35, 34, 25, 0, 60, 20, 1], [35, 34, 17, 0, 60, 20, 0], [35, 34, 27, 0, 60, 20, 0], [52, 47, 18, 0, 60, 84, 0], [44, 19, 18, 0, 60, 84, 0]]\"\n}", + "Human Instruction: Wipe the horizontal area.\nInput: {'object 1': [47, 34, 18], 'object 2': [72, 53, 15], 'object 3': [54, 81, 15]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a yellow sponge at [47, 34, 18], a yellow triangle area at [72, 53, 15] and a green triangle area at [54, 81, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is horizontal first. I can see that the yellow triangle area at [72, 53, 15] is horizontal since it is parallel to the green arrow representing the y-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [47, 34, 18] and use it to wipe the horizontal area at [72, 53, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the right side of the horizontal area, and moving the sponge along the main direction of the horizontal area to wipe it.\",\n \"executable_plan\": \"[[46, 31, 24, 0, 60, 18, 1], [46, 31, 16, 0, 60, 18, 0], [46, 31, 26, 0, 60, 18, 0], [72, 63, 17, 0, 60, 88, 0], [69, 37, 17, 0, 60, 88, 0]]\"\n}", + "Human Instruction: Wipe the vertical area.\nInput: \"{'object 1': [55, 28, 15], 'object 2': [42, 51, 19], 'object 3': [32, 63, 15]}\"\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a white rectangle area at [55, 28, 15], a yellow sponge at [42, 51, 19] and a blue rectangle area at [32, 63, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is vertical first. I can see that the white rectangle area at [55, 28, 15] is vertical since it is parallel to the red arrow representing the x-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [42, 51, 19] and use it to wipe the vertical area at [55, 28, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the top side of the vertical area, and moving the sponge along the main direction of the vertical area to wipe it.\",\n \"executable_plan\": \"[[40, 48, 25, 0, 60, 12, 1], [40, 48, 17, 0, 60, 12, 0], [40, 48, 27, 0, 60, 12, 0], [38, 25, 17, 0, 59, 0, 0], [69, 25, 17, 0, 59, 0, 0]]\"\n}", + "Human Instruction: Wipe the vertical area.\nInput: {'object 1': [53, 31, 19], 'object 2': [66, 34, 15], 'object 3': [59, 73, 15]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a yellow sponge at [53, 31, 19], a blue rectangle area at [66, 34, 15] and a green rectangle area at [59, 73, 15].\",\n \"reasoning_and_reflection\": \"I need to identify which area is vertical first. I can see that the blue rectangle area at [66, 34, 15] is vertical since it is parallel to the red arrow representing the x-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [53, 31, 19] and use it to wipe the vertical area at [66, 34, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the top side of the vertical area, and moving the sponge along the main direction of the vertical area to wipe it.\",\n \"executable_plan\": \"[[52, 28, 26, 0, 60, 94, 1], [52, 28, 18, 0, 60, 94, 0], [52, 28, 28, 0, 60, 94, 0]], [46, 32, 18, 0, 60, 68, 0], [78, 35, 18, 0, 60, 75, 0]]\"\n}", + "Human Instruction: Wipe the vertical area.\nInput: {'object 1': [37, 26, 15], 'object 2': [57, 49, 15], 'object 3': [56, 73, 18]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a white triangle area at [37, 26, 15], a black triangle area at [57, 49, 15] and a yellow sponge at [56, 73, 18].\",\n \"reasoning_and_reflection\": \"I need to identify which area is vertical first. I can see that the white triangle area at [37, 26, 15] is vertical since it is parallel to the red arrow representing the x-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [56, 73, 18] and use it to wipe the vertical area at [37, 26, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the top side of the vertical area, and moving the sponge along the main direction of the vertical area to wipe it.\",\n \"executable_plan\": \"[[55, 70, 25, 0, 60, 26, 1], [55, 70, 17, 0, 60, 26, 0], [55, 70, 27, 0, 60, 26, 0], [35, 26, 18, 0, 60, 55, 0], [62, 19, 18, 0, 60, 55, 0]]\"\n}", + "Human Instruction: Wipe the vertical area.\nInput: {'object 1': [64, 21, 15], 'object 2': [34, 39, 15], 'object 3': [51, 43, 19]}\nOutput: {\n \"visual_state_description\": \"From left to right, I can see a green triangle area at [64, 21, 15], a red triangle area at [34, 39, 15] and a yellow sponge at [51, 43, 19].\",\n \"reasoning_and_reflection\": \"I need to identify which area is vertical first. I can see that the green triangle area at [64, 21, 15] is vertical since it is parallel to the red arrow representing the x-axis of the coordinate system annotated in the image. Then, the task is to pick up the sponge at [51, 43, 19] and use it to wipe the vertical area at [64, 21, 15]. The plan involves moving the gripper to the sponge's position, closing the gripper to pick it up, moving to the top side of the vertical area, and moving the sponge along the main direction of the vertical area to wipe it.\",\n \"executable_plan\": \"[[44, 46, 25, 116, 62, 97, 1], [45, 45, 17, 116, 62, 97, 0], [43, 46, 27, 116, 62, 97, 0], [50, 13, 18, 115, 60, 13, 0], [75, 26, 18, 115, 60, 99, 0]]\"\n}" + ] +} \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/ebmanipulation_base.yaml b/easi/tasks/ebmanipulation/ebmanipulation_base.yaml new file mode 100644 index 0000000..781caab --- /dev/null +++ b/easi/tasks/ebmanipulation/ebmanipulation_base.yaml @@ -0,0 +1,42 @@ +name: ebmanipulation_base +display_name: "EB-Manipulation Base Split" +description: "Base evaluation split for EB-Manipulation (robotic manipulation with 7D discrete gripper actions)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + split: "base" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml b/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml new file mode 100644 index 0000000..02730be --- /dev/null +++ b/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml @@ -0,0 +1,42 @@ +name: ebmanipulation_common_sense +display_name: "EB-Manipulation Common Sense Split" +description: "Common sense evaluation split for EB-Manipulation (tasks requiring commonsense reasoning)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + split: "common_sense" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "common_sense" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml b/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml new file mode 100644 index 0000000..ebc26f3 --- /dev/null +++ b/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml @@ -0,0 +1,42 @@ +name: ebmanipulation_complex +display_name: "EB-Manipulation Complex Split" +description: "Complex instruction evaluation split for EB-Manipulation (multi-step manipulation instructions)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + split: "complex" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "complex" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml b/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml new file mode 100644 index 0000000..7b3d9cd --- /dev/null +++ b/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml @@ -0,0 +1,42 @@ +name: ebmanipulation_spatial +display_name: "EB-Manipulation Spatial Split" +description: "Spatial reasoning evaluation split for EB-Manipulation (tasks with relative spatial references)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + split: "spatial" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "spatial" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml b/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml new file mode 100644 index 0000000..b5fc2ad --- /dev/null +++ b/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml @@ -0,0 +1,42 @@ +name: ebmanipulation_visual +display_name: "EB-Manipulation Visual Split" +description: "Visual appearance evaluation split for EB-Manipulation (tasks requiring visual property recognition)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + split: "visual" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "visual" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/prompts.py b/easi/tasks/ebmanipulation/prompts.py new file mode 100644 index 0000000..fd11e72 --- /dev/null +++ b/easi/tasks/ebmanipulation/prompts.py @@ -0,0 +1,547 @@ +"""EB-Manipulation prompt builder matching EmbodiedBench ManipPlanner. + +Reference: EmbodiedBench/embodiedbench/planner/manip_planner.py + EmbodiedBench/embodiedbench/evaluator/config/system_prompts.py:50-73 + EmbodiedBench/embodiedbench/evaluator/config/eb_manipulation_example.py + EmbodiedBench/embodiedbench/planner/planner_utils.py:41-50 + +Key differences from EB-Alfred/Navigation prompt builders: +- Actions are 7D discrete arrays, not {action_id, action_name} +- executable_plan is a string (not a list of objects) +- Examples are per-task-type (pick/stack/place/wipe) +- System prompt has 4 numeric format placeholders for discretization params +- Response schema executable_plan is type:string (not type:array) +""" +from __future__ import annotations + +import ast +import json +from pathlib import Path + +from easi.agents.prompt_builder import _encode_image_base64 +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.tasks.ebmanipulation.actions import ( + DEFAULT_ROTATION_RESOLUTION, + DEFAULT_VOXEL_SIZE, + extract_pose_list, + serialize_action, +) +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# System prompt from EmbodiedBench (eb_manipulation_system_prompt). +# Five format placeholders: VOXEL_SIZE, VOXEL_SIZE, 360/ROTATION_RESOLUTION, +# ROTATION_RESOLUTION, examples_string +MANIPULATION_SYSTEM_PROMPT = ( + "## You are a Franka Panda robot with a parallel gripper. " + "You can perform various tasks and output a sequence of gripper actions " + "to accomplish a given task with images of your status. The input space, " + "output action space and color space are defined as follows:\n" + "\n" + "** Input Space **\n" + "- Each input object is represented as a 3D discrete position in the " + "following format: [X, Y, Z]. \n" + "- There is a red XYZ coordinate frame located in the top-left corner " + "of the table. The X-Y plane is the table surface. \n" + "- The allowed range of X, Y, Z is [0, {}]. \n" + "- Objects are ordered by Y in ascending order.\n" + "\n" + "** Output Action Space **\n" + "- Each output action is represented as a 7D discrete gripper action " + "in the following format: [X, Y, Z, Roll, Pitch, Yaw, Gripper state].\n" + "- X, Y, Z are the 3D discrete position of the gripper in the " + "environment. It follows the same coordinate system as the input " + "object coordinates.\n" + "- The allowed range of X, Y, Z is [0, {}].\n" + "- Roll, Pitch, Yaw are the 3D discrete orientation of the gripper " + "in the environment, represented as discrete Euler Angles. \n" + "- The allowed range of Roll, Pitch, Yaw is [0, {}] and each unit " + "represents {} degrees.\n" + "- Gripper state is 0 for close and 1 for open.\n" + "\n" + "** Color space **\n" + "- Each object can be described using one of the colors below:\n" + ' ["red", "maroon", "lime", "green", "blue", "navy", "yellow", ' + '"cyan", "magenta", "silver", "gray", "olive", "purple", "teal", ' + '"azure", "violet", "rose", "black", "white"],\n' + "\n" + "Below are some examples to guide you in completing the task. \n" + "\n" + "{}\n" +) + +# Output template from planner_utils.py template_manip (lines 41-50). +# Note: executable_plan is type STRING (list of 7D arrays serialized as text). +OUTPUT_TEMPLATE_MANIP = ( + "The output json format should be " + "{'visual_state_description':str, 'reasoning_and_reflection':str, " + "'language_plan':str, 'executable_plan':str}\n" + "The fields in above JSON follows the purpose below:\n" + "1. visual_state_description: Describe the color and shape of each " + "object in the detection box in the numerical order in the image. " + "Then provide the 3D coordinates of the objects chosen from input.\n" + "2. reasoning_and_reflection: Reason about the overall plan that " + "needs to be taken on the target objects, and reflect on the previous " + "actions taken if available.\n" + "3. language_plan: Natural language actions to achieve the user " + "instruction. Each language action is started by the step number " + "and the language action name.\n" + "4. executable_plan: A list of discrete actions needed to achieve " + "the user instruction, with each discrete action being a " + "7-dimensional discrete action.\n" + "5. keep your plan efficient and concise.\n" + "!!! When generating content for JSON strings, avoid using any " + "contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, " + "n't) that use apostrophes. Instead, write out full forms (is, are, " + "have, will, would, not) to prevent parsing errors in JSON. Please " + "do not output any other thing more than the above-mentioned JSON, " + "do not include ```json and ```!!!.\n" +) + +# JSON schema for structured output -- executable_plan is STRING, not array. +EBMANIPULATION_RESPONSE_SCHEMA = { + "type": "json_schema", + "json_schema": { + "name": "manipulation_planning", + "schema": { + "type": "object", + "properties": { + "visual_state_description": { + "type": "string", + "description": ( + "Describe the color and shape of each object in the " + "detection box in the numerical order in the image. " + "Then provide the 3D coordinates of the objects " + "chosen from input." + ), + }, + "reasoning_and_reflection": { + "type": "string", + "description": ( + "Reason about the overall plan that needs to be taken " + "on the target objects, and reflect on the previous " + "actions taken if available." + ), + }, + "language_plan": { + "type": "string", + "description": ( + "A list of natural language actions to achieve the " + "user instruction. Each language action is started by " + "the step number and the language action name." + ), + }, + "executable_plan": { + "type": "string", + "description": ( + "A list of discrete actions needed to achieve the " + "user instruction, with each discrete action being a " + "7-dimensional discrete action." + ), + }, + }, + "required": [ + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + ], + }, + }, +} + +_CONFIG_DIR = Path(__file__).parent / "config" + + +class EBManipulationPromptBuilder: + """Prompt builder for EB-Manipulation matching ManipPlanner output. + + Key differences from EB-Alfred/Navigation prompt builders: + - Actions are 7D arrays, not named actions with IDs + - Examples are per-task-type (selected by task_variation) + - executable_plan in response is a STRING of 7D arrays + - parse_response() extracts 7D arrays and serializes each as Action.action_name + """ + + def __init__( + self, + n_shot: int = 10, + split: str = "base", + use_feedback: bool = True, + chat_history: bool = False, + voxel_size: int = DEFAULT_VOXEL_SIZE, + rotation_resolution: int = DEFAULT_ROTATION_RESOLUTION, + ): + self.n_shot = n_shot + self.split = split + self.use_feedback = use_feedback + self.chat_history = chat_history + self.voxel_size = voxel_size + self.rotation_resolution = rotation_resolution + + # Load per-task-type examples + examples_file = _CONFIG_DIR / "manipulation_examples.json" + with open(examples_file) as f: + self._examples: dict[str, list[str]] = json.load(f) + + def set_action_space(self, actions: list[str]) -> None: + """No-op -- EB-Manipulation has no fixed named action space.""" + pass + + # ---- PromptBuilderProtocol methods ---- + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build COMPLETE message list to send to LLM.""" + # Determine task variation from observation metadata + task_variation = "" + if memory.current_observation and memory.current_observation.metadata: + task_variation = memory.current_observation.metadata.get( + "task_variation", "" + ) + + if self.chat_history: + return self._build_chat_history_messages(memory, task_variation) + return self._build_stateless_messages(memory, task_variation) + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into 7D actions. + + ManipPlanner.json_to_action() extracts executable_plan (string of 7D arrays). + Each 7D array becomes an Action with action_name = serialized array string. + """ + from easi.utils.json_repair import fix_json + + llm_response = fix_json(llm_response) + + try: + json_object = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + executable_plan = json_object.get("executable_plan") + if executable_plan is None: + # Fallback: try "properties.language_plan" (ManipPlanner line 306) + try: + executable_plan = json_object["properties"]["language_plan"] + except (KeyError, TypeError): + logger.warning("No executable_plan in LLM response") + return [] + + # executable_plan can be a string (expected) or already a list + if isinstance(executable_plan, str): + try: + executable_plan = ast.literal_eval(executable_plan) + except Exception: + # Try extract_pose_list as fallback + poses = extract_pose_list(executable_plan) + if poses: + return [ + Action(action_name=serialize_action(p)) for p in poses + ] + logger.warning("Could not parse executable_plan string") + return [] + + if not isinstance(executable_plan, list) or not executable_plan: + logger.warning("Empty executable_plan") + return [] + + actions = [] + for x in executable_plan: + if isinstance(x, tuple): + x = list(x) + # Extract action list from various formats (ManipPlanner lines 329-341) + if isinstance(x, dict): + list_action = x.get("action", x) + elif isinstance(x, list) and len(x) > 0 and isinstance(x[0], (int, float)): + list_action = x + else: + list_action = x + + if isinstance(list_action, str): + poses = extract_pose_list(list_action) + for pose in poses: + actions.append(Action(action_name=serialize_action(pose))) + continue + + if isinstance(list_action, list) and len(list_action) == 7: + actions.append(Action(action_name=serialize_action(list_action))) + elif isinstance(list_action, list): + for action_single in list_action: + if isinstance(action_single, (list, tuple)) and len(action_single) == 7: + actions.append( + Action(action_name=serialize_action(list(action_single))) + ) + + return actions + + def get_response_format(self, memory: AgentMemory) -> dict: + """Return JSON schema for API-level enforcement.""" + return EBMANIPULATION_RESPONSE_SCHEMA + + # ---- Stateless mode (chat_history=False) ---- + + def _build_stateless_messages( + self, memory: AgentMemory, task_variation: str + ) -> list[dict]: + """Build full prompt each turn. No history accumulation. + + Reference: ManipPlanner.process_prompt() + ManipPlanner.act() + """ + prompt, task_prompt = self._process_prompt( + memory.task_description, + self._get_avg_obj_coord(memory), + task_variation, + prev_act_feedback=self._build_feedback_list(memory), + ) + + # Append template_manip (ManipPlanner.act() line 433-435) + task_prompt += "\n\n" + OUTPUT_TEMPLATE_MANIP + + return self._build_message(prompt, task_prompt, memory) + + # ---- Chat history mode (chat_history=True) ---- + + def _build_chat_history_messages( + self, memory: AgentMemory, task_variation: str + ) -> list[dict]: + """Build messages with chat history accumulation. + + Reference: ManipPlanner.process_prompt() chat_history branch + """ + if memory.is_first_turn: + return self._build_stateless_messages(memory, task_variation) + + # Subsequent turns: rebuild message history + messages: list[dict] = [] + + for step_idx, step in enumerate(memory.steps): + if step.llm_response is None: + continue + + # Build prompt for this step + history_up_to = [ + ( + step.action.action_name if step.action else "", + step.feedback or "", + ) + for s_idx, s in enumerate(memory.steps[:step_idx]) + if s.action and s.feedback is not None + ] + + if step_idx == 0: + prompt, task_prompt = self._process_prompt( + memory.task_description, + self._get_avg_obj_coord(memory), + task_variation, + prev_act_feedback=[], + ) + else: + prompt, task_prompt = self._process_prompt( + memory.task_description, + self._get_avg_obj_coord(memory), + task_variation, + prev_act_feedback=[(a, f) for a, f in history_up_to], + ) + + task_prompt += "\n\n" + OUTPUT_TEMPLATE_MANIP + + # User message with image + user_msg = self._wrap_as_user_message( + prompt + task_prompt, step.observation + ) + messages.extend(user_msg) + + # Assistant message + messages.append( + { + "role": "assistant", + "content": [{"type": "text", "text": step.llm_response}], + } + ) + + # Current turn + all_feedback = self._build_feedback_list(memory) + prompt, task_prompt = self._process_prompt( + memory.task_description, + self._get_avg_obj_coord(memory), + task_variation, + prev_act_feedback=all_feedback, + ) + task_prompt += "\n\n" + OUTPUT_TEMPLATE_MANIP + + messages.extend( + self._wrap_as_user_message( + prompt + task_prompt, memory.current_observation + ) + ) + + return messages + + # ---- Prompt construction (matching ManipPlanner.process_prompt) ---- + + def _process_prompt( + self, + user_instruction: str, + avg_obj_coord: str, + task_variation: str, + prev_act_feedback: list[tuple[str, str]] | None = None, + ) -> tuple[str, str]: + """Build system prompt + task prompt. + + Reference: ManipPlanner.process_prompt() lines 48-70 + """ + user_instruction = user_instruction.rstrip(".") + prev_act_feedback = prev_act_feedback or [] + + rotation_bins = int(360 / self.rotation_resolution) + + # Get task type for example selection (e.g., "pick" from "pick_cube_shape") + task_type = task_variation.split("_")[0] if task_variation else "" + + if len(prev_act_feedback) == 0: + # First turn (ManipPlanner lines 50-55) + examples_for_task = self._examples.get(task_type, []) + if self.n_shot >= 1 and examples_for_task: + examples_str = "\n".join( + [ + f"Example {i}: \n{x}" + for i, x in enumerate(examples_for_task[: self.n_shot]) + ] + ) + general_prompt = MANIPULATION_SYSTEM_PROMPT.format( + self.voxel_size, + self.voxel_size, + rotation_bins, + self.rotation_resolution, + examples_str, + ) + else: + general_prompt = MANIPULATION_SYSTEM_PROMPT.format( + self.voxel_size, + self.voxel_size, + rotation_bins, + self.rotation_resolution, + "", + ) + task_prompt = ( + f"\n## Now you are supposed to follow the above examples to " + f"generate a sequence of discrete gripper actions that completes " + f"the below human instruction. \n" + f"Human Instruction: {user_instruction}.\n" + f"Input: {avg_obj_coord}\n" + f"Output gripper actions: " + ) + + elif self.chat_history: + # Chat history subsequent turn (ManipPlanner lines 56-61) + general_prompt = f"The human instruction is: {user_instruction}." + general_prompt += "\n\n The gripper action history:" + for i, (action, feedback) in enumerate(prev_act_feedback): + general_prompt += ( + "\n Step {}, the output action **{}**, env feedback: {}".format( + i, action, feedback + ) + ) + task_prompt = ( + f"\n\n Considering the above interaction history and the current " + f"image state, to achieve the human instruction: '{user_instruction}', " + f"you are supposed to output in json. You need to describe current " + f"visual state from the image, summarize interaction history and " + f"environment feedback and reason why the last action or plan failed " + f"and did not finish the task, output your new plan to achieve the " + f"goal from current state. At the end, output the executable plan " + f"with the 7-dimsension action." + ) + + else: + # Stateless subsequent turn (ManipPlanner lines 62-69) + examples_for_task = self._examples.get(task_type, []) + if self.n_shot >= 1 and examples_for_task: + examples_str = "\n".join( + [ + f"Example {i}: \n{x}" + for i, x in enumerate(examples_for_task[: self.n_shot]) + ] + ) + general_prompt = MANIPULATION_SYSTEM_PROMPT.format( + self.voxel_size, + self.voxel_size, + rotation_bins, + self.rotation_resolution, + examples_str, + ) + else: + general_prompt = MANIPULATION_SYSTEM_PROMPT.format( + self.voxel_size, + self.voxel_size, + rotation_bins, + self.rotation_resolution, + "", + ) + task_prompt = ( + f"\n## Now you are supposed to follow the above examples to " + f"generate a sequence of discrete gripper actions that completes " + f"the below human instruction. \n" + f"Human Instruction: {user_instruction}.\n" + f"Input: {avg_obj_coord}\n" + f"Output gripper actions: " + ) + for i, action_feedback in enumerate(prev_act_feedback): + task_prompt += f"{action_feedback}, " + + return general_prompt, task_prompt + + # ---- Helpers ---- + + def _get_avg_obj_coord(self, memory: AgentMemory) -> str: + """Get object coordinates from observation metadata. + + Object coordinates are computed by the bridge and stored in + observation metadata. + """ + if memory.current_observation and memory.current_observation.metadata: + return memory.current_observation.metadata.get("avg_obj_coord", "{}") + return "{}" + + def _build_feedback_list( + self, memory: AgentMemory + ) -> list[tuple[str, str]]: + """Build action + feedback list from memory.""" + feedback = [] + for action_name, fb in memory.action_history: + feedback.append((action_name, fb)) + return feedback + + def _build_message( + self, prompt: str, task_prompt: str, memory: AgentMemory + ) -> list[dict]: + """Build user message with image and prompt text. + + Reference: ManipPlanner.get_message() -- text first, then image. + """ + full_prompt = prompt + task_prompt + return self._wrap_as_user_message(full_prompt, memory.current_observation) + + @staticmethod + def _wrap_as_user_message(prompt: str, observation) -> list[dict]: + """Wrap prompt text + observation image as a user message. + + ManipPlanner: text BEFORE image (opposite of VLMPlanner). + Reference: ManipPlanner.get_message() lines 191-216 + """ + content: list[dict] = [{"type": "text", "text": prompt}] + + if observation and observation.rgb_path: + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content.append( + { + "type": "image_url", + "image_url": {"url": image_url}, + } + ) + + return [{"role": "user", "content": content}] diff --git a/easi/tasks/ebmanipulation/task.py b/easi/tasks/ebmanipulation/task.py new file mode 100644 index 0000000..b834bdb --- /dev/null +++ b/easi/tasks/ebmanipulation/task.py @@ -0,0 +1,101 @@ +"""EB-Manipulation task for EASI. + +Adapts the EmbodiedBench EB-Manipulation benchmark to EASI's task interface. +Supports 5 splits via per-split YAML configs. + +Key difference from other EB-* tasks: actions are 7D discrete gripper arrays, +not text-based named actions. The action_space is empty -- the prompt builder +handles action formatting. +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult +from easi.tasks.ebmanipulation.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBManipulationTask(BaseTask): + + def __init__(self, data_dir=None, split_yaml_path=None): + super().__init__(data_dir=data_dir, split_yaml_path=split_yaml_path) + # EB-Manipulation has no fixed action space -- actions are 7D arrays + self._config["action_space"] = get_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "ebmanipulation_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map EB-Manipulation HF episode row to bridge reset config. + + The bridge constructs full file paths from data_dir + episode metadata. + data_dir is injected by BaseTask._load_episodes_from_hf() and points + to the extracted HF dataset cache containing simulator_data.zip contents. + """ + data_dir = episode.get("_data_dir", "") + split = self._config.get("dataset", {}).get("split", "base") + return { + "episode_id": episode.get("id", "unknown"), + "data_dir": data_dir, + "split": split, + "task_name": episode["task_name"], + "variation": episode.get("variation", 0), + "episode_num": episode.get("episode_num", 0), + "instruction": episode.get("instruction", ""), + "task_type": episode.get("task_type", ""), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract metrics from trajectory. + + The bridge reports task_success and action_success in StepResult.info. + """ + if not trajectory: + return { + "task_success": 0.0, + "num_steps": 0.0, + "action_success_rate": 0.0, + } + + last_step = trajectory[-1] + action_successes = [ + s.info.get("action_success", 0.0) for s in trajectory + ] + return { + "task_success": last_step.info.get("task_success", 0.0), + "num_steps": float(len(trajectory)), + "action_success_rate": ( + sum(action_successes) / len(action_successes) + if action_successes + else 0.0 + ), + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download. + + Uses the HF episode index format (task_name + variation + episode_num). + The bridge constructs file paths from these fields + data_dir. + """ + return [ + { + "id": 0, + "task_name": "pick_cube_shape", + "variation": 0, + "episode_num": 0, + "instruction": "Pick up the star and place it into the yellow container.", + "task_type": "pick", + }, + ] diff --git a/easi/tasks/ebmanipulation/vendor/EBManEnv.py b/easi/tasks/ebmanipulation/vendor/EBManEnv.py new file mode 100644 index 0000000..303205f --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/EBManEnv.py @@ -0,0 +1,189 @@ +"""Vendored EB-Manipulation environment for EASI. + +Adapted from EmbodiedBench/embodiedbench/envs/eb_manipulation/EBManEnv.py. +Changes: removed gymnasium dependency, internal dataset loading, image saving. +EASI provides episodes via reset(episode) and the bridge handles image saving. +Hardcoded constants extracted as constructor parameters. +""" +from __future__ import annotations + +import time + +import numpy as np +from amsolver.action_modes import ActionMode, ArmActionMode +from amsolver.backend.utils import task_file_to_task_class +from amsolver.environment import Environment +from amsolver.observation_config import ObservationConfig +from pyrep.const import RenderMode +from pyrep.objects.dummy import Dummy +from pyrep.objects.vision_sensor import VisionSensor + +from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + get_continuous_action_from_discrete, +) +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class EBManEnv: + """CoppeliaSim manipulation environment for EB-Manipulation benchmark. + + Unlike the original EBManEnv (gym.Env), this version: + - Does NOT load datasets internally -- EASI provides episodes via reset() + - Does NOT inherit from gymnasium -- no action_space/observation_space attrs + - Accepts configurable scene_bounds, voxel_size, rotation_resolution + """ + + def __init__( + self, + img_size: tuple[int, int] = (500, 500), + max_steps: int = 15, + scene_bounds: list[float] | None = None, + voxel_size: int = 100, + rotation_resolution: int = 3, + ): + obs_config = ObservationConfig() + obs_config.set_all(True) + obs_config.set_image_size(img_size) + + action_mode = ActionMode(ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME) + self.env = Environment(action_mode, obs_config=obs_config, headless=True) + self.env.launch() + + self._max_episode_steps = max_steps + self._current_step = 0 + self._episode_start_time = 0.0 + self.task = None + self.task_class = None + self.current_task_variation = None + self.episode_language_instruction = "" + self.last_frame_obs = None + + # Configurable discretization parameters + self._scene_bounds = np.array( + scene_bounds + if scene_bounds is not None + else [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + ) + self._voxel_size = voxel_size + self._rotation_resolution = rotation_resolution + + def reset(self, episode: dict) -> tuple[str, dict]: + """Reset environment with episode data from EASI. + + Args: + episode: Dict with keys: + - task_file: str -- task variation name (e.g., "pick_cube_shape") + - task_base: str -- path to task_base.ttm + - waypoint_sets: str -- path to waypoint_sets.ttm + - configs: str -- path to configs.pkl + """ + self._current_step = 0 + self._episode_start_time = time.time() + + task_file = episode["task_file"] + task_class = task_file_to_task_class(task_file, parent_folder="vlm") + self.current_task_variation = task_file + self.task_class = task_file.split("_")[0] + + self.task = self.env.get_task(task_class) + descriptions, obs = self.task.load_config( + episode["task_base"], + episode["waypoint_sets"], + episode["configs"], + ) + self.episode_language_instruction = descriptions[0] + self.last_frame_obs = vars(obs) + + return descriptions[0], self.last_frame_obs + + def step(self, discrete_action: list) -> tuple[dict, float, bool, dict]: + """Execute one 7D discrete action. + + Args: + discrete_action: [X, Y, Z, Roll, Pitch, Yaw, Gripper] (7 values) + + Returns: + (obs_dict, reward, done, info) tuple. + """ + self._current_step += 1 + info = {} + action_success = False + + try: + action = get_continuous_action_from_discrete( + discrete_action, + scene_bounds=self._scene_bounds, + voxel_size=self._voxel_size, + rotation_resolution=self._rotation_resolution, + ) + obs, reward, terminate = self.task.step(action) + + # Special handling for stack task (EBManEnv.py:175-189) + if self.current_task_variation.startswith("stack"): + if terminate: + if action[-1] == 0.0: + reward = 0.0 + terminate = False + logger.debug( + "Wrong success condition for stack, " + "setting reward to 0 and terminate to False" + ) + elif action[-1] == 1.0: + action[2] += 0.03 + logger.debug("Checking if the object is stacked properly") + obs, reward, terminate = self.task.step(action) + if terminate and reward == 1.0: + logger.debug("Stacking is successful") + else: + logger.debug("Stacking is unsuccessful") + reward = 0.0 + terminate = False + + self.last_frame_obs = vars(obs) + action_success = True + except Exception as e: + logger.warning("Action execution error: %s", e) + obs = self.last_frame_obs + reward = -1 + terminate = False + action_success = e + + # Build env feedback + env_feedback = self._get_env_feedback(action_success, reward) + + info["env_feedback"] = env_feedback + info["instruction"] = self.episode_language_instruction + info["env_step"] = self._current_step + info["episode_elapsed_seconds"] = time.time() - self._episode_start_time + info["action"] = discrete_action + info["action_success"] = 1.0 if action_success is True else 0.0 + info["task_success"] = 1.0 if (terminate and reward == 1.0) else 0.0 + + if self._current_step >= self._max_episode_steps: + terminate = True + + return self.last_frame_obs, reward, terminate, info + + def _get_env_feedback(self, action_success, reward) -> str: + """Generate feedback message for the current step. + + Reference: EBManEnv.get_env_feedback() + """ + msg = ( + f"You are currently performing the task intended to " + f"{self.episode_language_instruction.lower()} " + f"At this moment, you have completed executing " + f"{self._current_step} steps. " + ) + if action_success is True: + msg += "Last action is valid. " + else: + msg += f"Last action is invalid. {action_success}." + msg += f"The current reward obtained is {reward}." + return msg + + def close(self) -> None: + """Shut down AMSolver/CoppeliaSim.""" + self.env.shutdown() diff --git a/easi/tasks/ebmanipulation/vendor/__init__.py b/easi/tasks/ebmanipulation/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/vendor/eb_man_utils.py b/easi/tasks/ebmanipulation/vendor/eb_man_utils.py new file mode 100644 index 0000000..640d31c --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/eb_man_utils.py @@ -0,0 +1,633 @@ +"""Vendored EB-Manipulation utilities for EASI. + +Adapted from EmbodiedBench/embodiedbench/envs/eb_manipulation/eb_man_utils.py. +Changes: +- Constants (SCENE_BOUNDS, ROTATION_RESOLUTION, VOXEL_SIZE) made into function + parameters with defaults matching EmbodiedBench. +- YOLO model loaded lazily (not at module import time). +- All functions preserved for full benchmark alignment. +""" +from __future__ import annotations + +import os +from typing import List + +import numpy as np + +# Default constants (configurable via function parameters) +DEFAULT_SCENE_BOUNDS = np.array([-0.3, -0.5, 0.6, 0.7, 0.5, 1.6]) +DEFAULT_ROTATION_RESOLUTION = 3 +DEFAULT_VOXEL_SIZE = 100 +CAMERAS = ["front", "left_shoulder", "right_shoulder", "wrist"] +USE_GENERAL_OBJECT_NAMES = True + +# Lazy-loaded YOLO model +_yolo_model = None + + +def _get_yolo_model(): + """Lazy-load YOLO model on first use.""" + global _yolo_model + if _yolo_model is None: + from ultralytics import YOLO + + _yolo_model = YOLO("yolo11n.pt") + return _yolo_model + + +# From https://github.com/stepjam/RLBench/blob/master/rlbench/backend/utils.py +def point_to_voxel_index( + point: np.ndarray, + scene_bounds: np.ndarray = None, + voxel_size: int = DEFAULT_VOXEL_SIZE, +): + if scene_bounds is None: + scene_bounds = DEFAULT_SCENE_BOUNDS + bb_mins = np.array(scene_bounds[0:3])[None] + bb_maxs = np.array(scene_bounds[3:])[None] + dims_m_one = np.array([voxel_size] * 3)[None] - 1 + bb_ranges = bb_maxs - bb_mins + res = bb_ranges / (np.array([voxel_size] * 3) + 1e-12) + voxel_indicy = np.minimum( + np.floor((point - bb_mins) / (res + 1e-12)).astype(np.int32), dims_m_one + ) + + return voxel_indicy.reshape(point.shape) + + +def discrete_euler_to_quaternion( + discrete_euler, + rotation_resolution: int = DEFAULT_ROTATION_RESOLUTION, +): + from scipy.spatial.transform import Rotation + + euluer = (discrete_euler * rotation_resolution) - 180 + return Rotation.from_euler("xyz", euluer, degrees=True).as_quat() + + +def get_continuous_action_from_discrete( + discrete_action, + scene_bounds: np.ndarray = None, + voxel_size: int = DEFAULT_VOXEL_SIZE, + rotation_resolution: int = DEFAULT_ROTATION_RESOLUTION, +): + if scene_bounds is None: + scene_bounds = DEFAULT_SCENE_BOUNDS + trans_indicies = np.array(discrete_action[:3]) + rot_and_grip_indicies = np.array(discrete_action[3:6]) + is_gripper_open = discrete_action[6] + + bounds = scene_bounds + res = (bounds[3:] - bounds[:3]) / voxel_size + attention_coordinate = bounds[:3] + res * trans_indicies + res / 2 + quat = discrete_euler_to_quaternion(rot_and_grip_indicies, rotation_resolution) + + continuous_action = np.concatenate( + [attention_coordinate, quat, [is_gripper_open]] + ) + return continuous_action + + +def draw_xyz_coordinate(image_path, resolution): + import cv2 + + image = cv2.imread(image_path) + if resolution == 500: + origin = (62, 239) + axis_length = 30 + color_x = (0, 0, 255) + color_y = (0, 255, 0) + color_z = (255, 0, 0) + + cv2.circle(image, (int(origin[0]), int(origin[1])), 3, (0, 0, 255), -1) + cv2.putText( + image, + "(0, 0)", + (62, 255), + fontFace=cv2.FONT_HERSHEY_SIMPLEX, + fontScale=0.3, + color=(0, 0, 255), + thickness=1, + lineType=cv2.LINE_AA, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] + axis_length, origin[1]), + color_y, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "y", + (origin[0] + axis_length, origin[1] - 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_y, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0], origin[1] - axis_length), + color_z, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "z", + (origin[0] - 20, origin[1] - axis_length), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_z, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] - axis_length + 12, origin[1] + axis_length), + color_x, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "x", + (origin[0] - axis_length, origin[1] + axis_length - 15), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_x, + 2, + ) + cv2.imwrite(image_path, image) + + elif resolution == 300: + origin = (38, 142) + axis_length = 30 + color_x = (0, 0, 255) + color_y = (0, 255, 0) + color_z = (255, 0, 0) + + cv2.circle(image, (int(origin[0]), int(origin[1])), 3, (0, 0, 255), -1) + cv2.putText( + image, + "(0, 0)", + (38, 158), + fontFace=cv2.FONT_HERSHEY_SIMPLEX, + fontScale=0.3, + color=(0, 0, 255), + thickness=1, + lineType=cv2.LINE_AA, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] + axis_length, origin[1]), + color_y, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "y", + (origin[0] + axis_length, origin[1] - 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_y, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0], origin[1] - axis_length), + color_z, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "z", + (origin[0] - 20, origin[1] - axis_length), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_z, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] - axis_length + 12, origin[1] + axis_length), + color_x, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "x", + (origin[0] - axis_length, origin[1] + axis_length - 15), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_x, + 2, + ) + cv2.imwrite(image_path, image) + + elif resolution == 700: + origin = (88, 335) + axis_length = 50 + color_x = (0, 0, 255) + color_y = (0, 255, 0) + color_z = (255, 0, 0) + + cv2.circle(image, (int(origin[0]), int(origin[1])), 3, (0, 0, 255), -1) + cv2.putText( + image, + "(0, 0)", + (88, 355), + fontFace=cv2.FONT_HERSHEY_SIMPLEX, + fontScale=0.3, + color=(0, 0, 255), + thickness=1, + lineType=cv2.LINE_AA, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] + axis_length, origin[1]), + color_y, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "y", + (origin[0] + axis_length, origin[1] - 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_y, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0], origin[1] - axis_length), + color_z, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "z", + (origin[0] - 20, origin[1] - axis_length), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_z, + 2, + ) + cv2.arrowedLine( + image, + origin, + (origin[0] - axis_length + 20, origin[1] + axis_length), + color_x, + 2, + tipLength=0.2, + ) + cv2.putText( + image, + "x", + (origin[0] - axis_length, origin[1] + axis_length - 15), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color_x, + 2, + ) + cv2.imwrite(image_path, image) + else: + raise ValueError( + "Detection boxes are not supported for this resolution. " + "Please disable detection boxes or use a valid resolution." + ) + + return image_path + + +def increase_bbox(bbox, scale_factor=1): + """Increase the bounding box size by a scale factor.""" + x1, y1, x2, y2 = bbox + original_width = x2 - x1 + original_height = y2 - y1 + center_x = x1 + original_width / 2 + center_y = y1 + original_height / 2 + new_width = original_width * scale_factor + new_height = original_height * scale_factor + new_x1 = int(center_x - new_width / 2) + new_y1 = int(center_y - new_height / 2) + new_x2 = int(center_x + new_width / 2) + new_y2 = int(center_y + new_height / 2) + return [new_x1, new_y1, new_x2, new_y2] + + +def draw_bounding_boxes( + image_path_list, world_points, camera_extrinsics_list, camera_intrinsics_list +): + import cv2 + + model = _get_yolo_model() + image_save_path_list = [] + for input_image_path, camera_extrinsics, camera_intrinsics in zip( + image_path_list, camera_extrinsics_list, camera_intrinsics_list + ): + T_inv = np.linalg.inv(camera_extrinsics) + rvec = T_inv[:3, :3] + tvec = T_inv[:3, 3] + pixel_points_2D, _ = cv2.projectPoints( + np.array(world_points), rvec, tvec, camera_intrinsics, np.zeros(4) + ) + + results = model.predict( + source=input_image_path, conf=0.0001, line_width=1, verbose=False + ) + predicted_boxes = results[0].boxes.xyxy + image_bgr = cv2.imread(input_image_path, cv2.IMREAD_COLOR) + + box_id = 0 + text_positions = [] + for point in pixel_points_2D: + x, y = point[0] + min_dist = float("inf") + min_idx = -1 + for i, box in enumerate(predicted_boxes): + center = [(box[0] + box[2]) // 2, (box[1] + box[3]) // 2] + dist = (center[0] - x) ** 2 + (center[1] - y) ** 2 + if dist < min_dist: + min_dist = dist + min_idx = i + if min_dist > 400: + continue + increased_box = increase_bbox(predicted_boxes[min_idx], 1.2) + center_pixel = (0, 0, 255) + cv2.rectangle( + image_bgr, + (int(increased_box[0]), int(increased_box[1])), + (int(increased_box[2]), int(increased_box[3])), + center_pixel, + 1, + ) + text_position = (int(increased_box[0]) + 20, int(increased_box[1]) - 10) + for pos in text_positions: + if abs(pos[0] - text_position[0]) < 10 and abs( + pos[1] - text_position[1] + ) < 10: + text_position = ( + int(increased_box[0]) + 10, + int(increased_box[1]) - 10, + ) + text_positions.append(text_position) + cv2.putText( + image_bgr, + str(box_id + 1), + text_position, + cv2.FONT_HERSHEY_SIMPLEX, + 0.4, + center_pixel, + 1, + cv2.LINE_AA, + ) + box_id += 1 + base, ext = os.path.splitext(input_image_path) + image_save_path = f"{base}_annotated{ext}" + cv2.imwrite(image_save_path, image_bgr) + image_save_path_list.append(image_save_path) + + return image_save_path_list + + +####### Generate object information for the initial observation +def _get_mask_id_to_name_dict_for_input(object_info): + mask_id_to_name_dict = {} + for obj in object_info: + if "id" in object_info[obj]: + mask_id_to_name_dict[object_info[obj]["id"]] = obj + return mask_id_to_name_dict + + +def _get_point_cloud_dict_for_input(obs, camera_types): + from pyrep.objects import VisionSensor + + point_cloud_dict = {} + camera_extrinsics_list, camera_intrinsics_list = [], [] + for camera_type in CAMERAS: + cam_extrinsics = obs["misc"][f"{camera_type}_camera_extrinsics"] + cam_intrinsics = obs["misc"][f"{camera_type}_camera_intrinsics"] + if camera_type + "_rgb" in camera_types: + camera_extrinsics_list.append(cam_extrinsics) + camera_intrinsics_list.append(cam_intrinsics) + cam_depth = obs[f"{camera_type}_depth"] + near = obs["misc"][f"{camera_type}_camera_near"] + far = obs["misc"][f"{camera_type}_camera_far"] + cam_depth = (far - near) * cam_depth + near + point_cloud_dict[camera_type] = ( + VisionSensor.pointcloud_from_depth_and_camera_params( + cam_depth, cam_extrinsics, cam_intrinsics + ) + ) + + return point_cloud_dict, camera_extrinsics_list, camera_intrinsics_list + + +def _get_mask_dict_for_input(obs): + mask_dict = {} + for camera in CAMERAS: + rgb_mask = np.array(obs[f"{camera}_mask"], dtype=int) + mask_dict[camera] = rgb_mask + return mask_dict + + +def form_obs_for_input( + mask_dict, + mask_id_to_real_name, + point_cloud_dict, + scene_bounds: np.ndarray = None, + voxel_size: int = DEFAULT_VOXEL_SIZE, +): + if scene_bounds is None: + scene_bounds = DEFAULT_SCENE_BOUNDS + + # convert object id to char and average and discretize point cloud per object + uniques = np.unique(np.concatenate(list(mask_dict.values()), axis=0)) + real_name_to_avg_coord = {} + all_avg_point_list = [] + for _, mask_id in enumerate(uniques): + if mask_id not in mask_id_to_real_name: + continue + avg_point_list = [] + for camera in CAMERAS: + mask = mask_dict[camera] + point_cloud = point_cloud_dict[camera] + if not np.any(mask == mask_id): + continue + avg_point_list.append( + np.mean(point_cloud[mask == mask_id].reshape(-1, 3), axis=0) + ) + + avg_point = sum(avg_point_list) / len(avg_point_list) + all_avg_point_list.append(avg_point) + real_name = mask_id_to_real_name[mask_id] + real_name_to_avg_coord[real_name] = list( + point_to_voxel_index(avg_point, scene_bounds=scene_bounds, voxel_size=voxel_size) + ) + if USE_GENERAL_OBJECT_NAMES: + implicit_name_to_avg_coord = {} + i = 1 + for key, value in real_name_to_avg_coord.items(): + implicit_name_to_avg_coord[f"object {i}"] = value + i += 1 + real_name_to_avg_coord = implicit_name_to_avg_coord + + # Sort the objects based on the y-coordinate + sorted_indices = sorted( + range(len(all_avg_point_list)), key=lambda i: all_avg_point_list[i][1] + ) + all_avg_point_list = [all_avg_point_list[i] for i in sorted_indices] + + # Sort the objects in the general name based on the same order + real_name_to_avg_coord = sorted( + real_name_to_avg_coord.items(), key=lambda item: item[1][1] + ) + if USE_GENERAL_OBJECT_NAMES: + real_name_to_avg_coord = { + f"object {i+1}": value + for i, (_, value) in enumerate(real_name_to_avg_coord) + } + else: + real_name_to_avg_coord = { + f"{obj_name}": value for obj_name, value in real_name_to_avg_coord + } + return real_name_to_avg_coord, all_avg_point_list + + +def form_object_coord_for_input(obs, task_class, camera_types): + mask_id_to_sim_name = _get_mask_id_to_name_dict_for_input( + obs["object_informations"] + ) + point_cloud_dict, camera_extrinsics_list, camera_intrinsics_list = ( + _get_point_cloud_dict_for_input(obs, camera_types) + ) + mask_dict = _get_mask_dict_for_input(obs) + + task_handler = TASK_HANDLERS[task_class]() + sim_name_to_real_name = task_handler.sim_name_to_real_name + mask_id_to_real_name = { + mask_id: sim_name_to_real_name[name] + for mask_id, name in mask_id_to_sim_name.items() + if name in sim_name_to_real_name + } + avg_coord, all_avg_point_list = form_obs_for_input( + mask_dict, mask_id_to_real_name, point_cloud_dict + ) + return avg_coord, all_avg_point_list, camera_extrinsics_list, camera_intrinsics_list + + +class base_task_handler: + def __init__(self, sim_name_to_real_name): + self.sim_name_to_real_name = sim_name_to_real_name + + +class pick_cube_shape(base_task_handler): + def __init__(self): + sim_name_to_real_name = { + "small_container0": "first container", + "small_container1": "second container", + "star_normal_visual0": "first star", + "star_normal_visual1": "second star", + "cylinder_normal0": "first cylinder", + "cylinder_normal1": "second cylinder", + "triangular_normal0": "first triangular", + "triangular_normal1": "second triangular", + "cube_basic0": "first cube", + "cube_basic1": "second cube", + "moon_normal_visual0": "first moon", + "moon_normal_visual1": "second moon", + } + super().__init__(sim_name_to_real_name) + + +class stack_cubes_color(base_task_handler): + def __init__(self): + sim_name_to_real_name = { + "star_normal_visual0": "first star", + "star_normal_visual1": "second star", + "star_normal_visual2": "third star", + "star_normal_visual3": "fourth star", + "cylinder_normal0": "first cylinder", + "cylinder_normal1": "second cylinder", + "cylinder_normal2": "third cylinder", + "cylinder_normal3": "fourth cylinder", + "triangular_normal0": "first triangular", + "triangular_normal1": "second triangular", + "triangular_normal2": "third triangular", + "triangular_normal3": "fourth triangular", + "cube_basic0": "first cube", + "cube_basic1": "second cube", + "cube_basic2": "third cube", + "cube_basic3": "fourth cube", + "moon_normal_visual0": "first moon", + "moon_normal_visual1": "second moon", + "moon_normal_visual2": "third moon", + "moon_normal_visual3": "fourth moon", + } + super().__init__(sim_name_to_real_name) + + +class place_into_shape_sorter_color(base_task_handler): + def __init__(self): + sim_name_to_real_name = { + "star_normal_visual0": "first star", + "star_normal_visual1": "second star", + "star_normal_visual2": "third star", + "star_normal_visual3": "fourth star", + "cylinder_normal0": "first cylinder", + "cylinder_normal1": "second cylinder", + "cylinder_normal2": "third cylinder", + "cylinder_normal3": "fourth cylinder", + "triangular_normal0": "first triangular", + "triangular_normal1": "second triangular", + "triangular_normal2": "third triangular", + "triangular_normal3": "fourth triangular", + "cube_basic0": "first cube", + "cube_basic1": "second cube", + "cube_basic2": "third cube", + "cube_basic3": "fourth cube", + "moon_normal_visual0": "first moon", + "moon_normal_visual1": "second moon", + "moon_normal_visual2": "third moon", + "moon_normal_visual3": "fourth moon", + "shape_sorter_visual": "shape sorter", + } + super().__init__(sim_name_to_real_name) + + +class wipe_table_shape(base_task_handler): + def __init__(self): + sim_name_to_real_name = { + "rectangle": "first rectangle area", + "rectangle0": "second rectangle area", + "round": "first round area", + "round0": "second round area", + "triangle": "first triangle area", + "triangle0": "second triangle area", + "star": "first star area", + "star0": "second star area", + "sponge_visual0": "sponge", + } + super().__init__(sim_name_to_real_name) + + +TASK_HANDLERS = { + "pick": pick_cube_shape, + "stack": stack_cubes_color, + "place": place_into_shape_sorter_color, + "wipe": wipe_table_shape, +} diff --git a/tests/test_ebmanipulation_task.py b/tests/test_ebmanipulation_task.py new file mode 100644 index 0000000..91820f6 --- /dev/null +++ b/tests/test_ebmanipulation_task.py @@ -0,0 +1,407 @@ +"""Tests for the EB-Manipulation task (offline, no simulator needed).""" +import json + +import pytest +from pathlib import Path + + +def _has_scipy(): + try: + import scipy # noqa: F401 + return True + except ImportError: + return False + +from easi.core.episode import Action, Observation, StepResult +from easi.tasks.ebmanipulation.task import EBManipulationTask +from easi.tasks.ebmanipulation.actions import ( + get_action_space, + serialize_action, + deserialize_action, + extract_pose_list, + EVAL_SETS, + VALID_EVAL_SETS, + DEFAULT_VOXEL_SIZE, + DEFAULT_ROTATION_RESOLUTION, +) + + +class TestEBManipulationActions: + def test_get_action_space_empty(self): + actions = get_action_space() + assert actions == [] + + def test_serialize_action(self): + action = [50, 42, 17, 6, 61, 36, 1] + s = serialize_action(action) + assert s == "[50, 42, 17, 6, 61, 36, 1]" + + def test_deserialize_action(self): + s = "[50, 42, 17, 6, 61, 36, 1]" + result = deserialize_action(s) + assert result == [50, 42, 17, 6, 61, 36, 1] + + def test_deserialize_action_roundtrip(self): + action = [50, 42, 17, 6, 61, 36, 1] + s = serialize_action(action) + result = deserialize_action(s) + assert result == action + + def test_deserialize_invalid(self): + assert deserialize_action("not a list") == [] + assert deserialize_action("[1, 2, 3]") == [] # Not 7 elements + assert deserialize_action("") == [] + + def test_extract_pose_list(self): + text = "[[50, 42, 17, 6, 61, 36, 1], [28, 32, 26, 0, 60, 94, 0]]" + poses = extract_pose_list(text) + assert len(poses) == 2 + assert poses[0] == [50, 42, 17, 6, 61, 36, 1] + assert poses[1] == [28, 32, 26, 0, 60, 94, 0] + + def test_extract_pose_list_skip_non_7d(self): + text = "[[50, 42, 17], [28, 32, 26, 0, 60, 94, 0]]" + poses = extract_pose_list(text) + assert len(poses) == 1 + assert poses[0] == [28, 32, 26, 0, 60, 94, 0] + + def test_eval_sets_have_correct_splits(self): + assert set(EVAL_SETS.keys()) == {"base", "common_sense", "complex", "spatial", "visual"} + + def test_valid_eval_sets(self): + assert len(VALID_EVAL_SETS) == 5 + + def test_defaults(self): + assert DEFAULT_VOXEL_SIZE == 100 + assert DEFAULT_ROTATION_RESOLUTION == 3 + + +class TestEBManipulationUtils: + def test_point_to_voxel_index(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + point_to_voxel_index, + ) + import numpy as np + + # Center of scene should map to ~50 + point = np.array([0.2, 0.0, 1.1]) + voxel = point_to_voxel_index(point) + assert len(voxel) == 3 + assert all(0 <= v <= 100 for v in voxel) + + def test_task_handlers_exist(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import TASK_HANDLERS + + assert "pick" in TASK_HANDLERS + assert "stack" in TASK_HANDLERS + assert "place" in TASK_HANDLERS + assert "wipe" in TASK_HANDLERS + + def test_task_handler_has_sim_name_mapping(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import TASK_HANDLERS + + for task_type, handler_cls in TASK_HANDLERS.items(): + handler = handler_cls() + assert hasattr(handler, "sim_name_to_real_name") + assert isinstance(handler.sim_name_to_real_name, dict) + assert len(handler.sim_name_to_real_name) > 0 + + @pytest.mark.skipif( + not _has_scipy(), reason="scipy not installed (simulator-only dep)" + ) + def test_get_continuous_action_defaults(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + get_continuous_action_from_discrete, + ) + import numpy as np + + action = [50, 50, 50, 60, 60, 60, 1.0] + result = get_continuous_action_from_discrete(action) + assert isinstance(result, np.ndarray) + assert len(result) == 8 # xyz(3) + quat(4) + gripper(1) + assert result[-1] == 1.0 # gripper state preserved + + @pytest.mark.skipif( + not _has_scipy(), reason="scipy not installed (simulator-only dep)" + ) + def test_get_continuous_action_custom_params(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + get_continuous_action_from_discrete, + ) + import numpy as np + + action = [50, 50, 50, 60, 60, 60, 0.0] + result = get_continuous_action_from_discrete( + action, + scene_bounds=np.array([-0.3, -0.5, 0.6, 0.7, 0.5, 1.6]), + voxel_size=100, + rotation_resolution=3, + ) + assert isinstance(result, np.ndarray) + assert len(result) == 8 + assert result[-1] == 0.0 + + @pytest.mark.skipif( + not _has_scipy(), reason="scipy not installed (simulator-only dep)" + ) + def test_discrete_euler_to_quaternion(self): + from easi.tasks.ebmanipulation.vendor.eb_man_utils import ( + discrete_euler_to_quaternion, + ) + import numpy as np + + quat = discrete_euler_to_quaternion(np.array([60, 60, 60])) + assert len(quat) == 4 + # Quaternion norm should be ~1 + assert abs(np.linalg.norm(quat) - 1.0) < 1e-6 + + +class TestEBManipulationTask: + @pytest.fixture + def task(self): + return EBManipulationTask() + + def test_name(self, task): + assert task.name == "ebmanipulation_base" + + def test_simulator_key(self, task): + assert task.simulator_key == "coppeliasim:v4_1_0" + + def test_action_space_empty(self, task): + assert task.action_space == [] + + def test_max_steps(self, task): + assert task.max_steps == 15 + + def test_format_reset_config(self, task): + episode = { + "id": 0, + "task_name": "pick_cube_shape", + "variation": 0, + "episode_num": 0, + "instruction": "Pick up the star and place it into the yellow container.", + "task_type": "pick", + "_data_dir": "/tmp/test_data", + } + config = task.format_reset_config(episode) + assert config["episode_id"] == 0 + assert config["data_dir"] == "/tmp/test_data" + assert config["split"] == "base" + assert config["task_name"] == "pick_cube_shape" + assert config["variation"] == 0 + assert config["episode_num"] == 0 + assert config["instruction"] == "Pick up the star and place it into the yellow container." + assert config["task_type"] == "pick" + + def test_format_reset_config_uses_data_dir(self, task): + episode = { + "id": 1, + "task_name": "stack_cubes_color", + "variation": 2, + "episode_num": 1, + "instruction": "Stack the cubes.", + "task_type": "stack", + "_data_dir": "/some/path", + } + config = task.format_reset_config(episode) + assert config["data_dir"] == "/some/path" + + def test_evaluate_episode(self, task): + episode = { + "id": 0, + "task_name": "pick_cube_shape", + "variation": 0, + "episode_num": 0, + "instruction": "test", + "task_type": "pick", + } + obs = Observation(rgb_path="/tmp/rgb.png") + trajectory = [ + StepResult( + observation=obs, + reward=0.0, + done=False, + info={"task_success": 0.0, "action_success": 1.0}, + ), + StepResult( + observation=obs, + reward=1.0, + done=True, + info={"task_success": 1.0, "action_success": 1.0}, + ), + ] + metrics = task.evaluate_episode(episode, trajectory) + assert metrics["task_success"] == 1.0 + assert metrics["num_steps"] == 2.0 + assert metrics["action_success_rate"] == 1.0 + + def test_evaluate_empty_trajectory(self, task): + episode = { + "id": 0, + "task_name": "pick_cube_shape", + "variation": 0, + "episode_num": 0, + "instruction": "test", + "task_type": "pick", + } + metrics = task.evaluate_episode(episode, []) + assert metrics["task_success"] == 0.0 + assert metrics["num_steps"] == 0.0 + assert metrics["action_success_rate"] == 0.0 + + def test_get_instruction(self, task): + episode = {"instruction": "Pick up the star."} + assert task.get_instruction(episode) == "Pick up the star." + + def test_builtin_episodes(self, task): + episodes = task._get_builtin_episodes() + assert len(episodes) >= 1 + ep = episodes[0] + assert "id" in ep + assert "task_name" in ep + assert "variation" in ep + assert "episode_num" in ep + assert "instruction" in ep + assert "task_type" in ep + + def test_task_registry_discovers_all_splits(self): + from easi.tasks.registry import list_tasks, refresh + + refresh() + tasks = list_tasks() + manip_tasks = [t for t in tasks if t.startswith("ebmanipulation")] + assert len(manip_tasks) == 5 + expected = { + "ebmanipulation_base", + "ebmanipulation_common_sense", + "ebmanipulation_complex", + "ebmanipulation_spatial", + "ebmanipulation_visual", + } + assert set(manip_tasks) == expected + + def test_bridge_script_path(self, task): + bridge_path = task.get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" + + def test_yaml_has_zip_files(self, task): + config = task._config + dataset_config = config.get("dataset", {}) + zip_files = dataset_config.get("zip_files", []) + assert "simulator_data.zip" in zip_files + + +class TestEBManipulationPromptBuilder: + @pytest.fixture + def builder(self): + from easi.tasks.ebmanipulation.prompts import EBManipulationPromptBuilder + + return EBManipulationPromptBuilder(n_shot=2, split="base") + + @pytest.fixture + def memory(self): + from easi.core.memory import AgentMemory + + obs = Observation( + rgb_path="/dev/null", + metadata={ + "task_variation": "pick_cube_shape", + "avg_obj_coord": "{'object 1': [45, 13, 18], 'object 2': [72, 20, 18]}", + }, + ) + return AgentMemory( + task_description="Pick up the star and place it into the yellow container.", + action_space=[], + current_observation=obs, + ) + + def test_build_messages_first_turn(self, builder, memory): + msgs = builder.build_messages(memory) + assert len(msgs) >= 1 + assert msgs[0]["role"] == "user" + text = msgs[0]["content"][0]["text"] + assert "Franka Panda robot" in text + assert "7D discrete gripper action" in text + + def test_system_prompt_format_placeholders(self, builder, memory): + msgs = builder.build_messages(memory) + text = msgs[0]["content"][0]["text"] + # Should have voxel_size and rotation params filled in + assert "[0, 100]" in text + assert "3 degrees" in text + + def test_per_task_examples(self, builder): + assert "pick" in builder._examples + assert "stack" in builder._examples + assert "place" in builder._examples + assert "wipe" in builder._examples + assert len(builder._examples["pick"]) >= 2 + assert len(builder._examples["stack"]) >= 4 + assert len(builder._examples["place"]) >= 4 + assert len(builder._examples["wipe"]) >= 8 + + def test_output_template_is_manip(self, builder, memory): + msgs = builder.build_messages(memory) + text = msgs[0]["content"][0]["text"] + # Should contain template_manip content + assert "visual_state_description" in text + assert "executable_plan" in text + + def test_parse_response_7d_arrays(self, builder, memory): + response = json.dumps( + { + "visual_state_description": "I see objects.", + "reasoning_and_reflection": "Pick up the star.", + "language_plan": "1. Move to star.", + "executable_plan": "[[50, 42, 17, 6, 61, 36, 1], [50, 42, 17, 6, 61, 36, 0]]", + } + ) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "[50, 42, 17, 6, 61, 36, 1]" + assert actions[1].action_name == "[50, 42, 17, 6, 61, 36, 0]" + + def test_parse_response_list_format(self, builder, memory): + response = json.dumps( + { + "visual_state_description": "test", + "reasoning_and_reflection": "test", + "language_plan": "test", + "executable_plan": [[50, 42, 17, 6, 61, 36, 1]], + } + ) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 + + def test_parse_response_invalid_json(self, builder, memory): + actions = builder.parse_response("not json", memory) + assert actions == [] + + def test_parse_response_empty_plan(self, builder, memory): + response = json.dumps( + { + "visual_state_description": "test", + "reasoning_and_reflection": "test", + "language_plan": "test", + "executable_plan": "[]", + } + ) + actions = builder.parse_response(response, memory) + assert actions == [] + + def test_response_schema_executable_plan_is_string(self, builder, memory): + schema = builder.get_response_format(memory) + props = schema["json_schema"]["schema"]["properties"] + assert props["executable_plan"]["type"] == "string" + + def test_conforms_to_protocol(self, builder): + assert hasattr(builder, "build_messages") + assert hasattr(builder, "parse_response") + assert hasattr(builder, "get_response_format") + assert hasattr(builder, "set_action_space") + + def test_set_action_space_noop(self, builder): + # Should not raise + builder.set_action_space(["a", "b", "c"]) + builder.set_action_space([]) From ccdc800a91527652b058df438bcfe51890ba3626 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:01:58 +0800 Subject: [PATCH 051/239] [Feat] Add YAML template inheritance utilities (deep_merge + resolve_task_yaml) --- easi/tasks/yaml_utils.py | 67 +++++++++++++++ tests/test_yaml_utils.py | 180 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 easi/tasks/yaml_utils.py create mode 100644 tests/test_yaml_utils.py diff --git a/easi/tasks/yaml_utils.py b/easi/tasks/yaml_utils.py new file mode 100644 index 0000000..b4e146c --- /dev/null +++ b/easi/tasks/yaml_utils.py @@ -0,0 +1,67 @@ +"""YAML template inheritance utilities. + +Provides deep_merge() and resolve_task_yaml() for the 'extends' mechanism. +Split YAMLs reference a base template via 'extends: _base.yaml'. +The base and split configs are deep-merged (split values win on conflicts). +""" +from __future__ import annotations + +from pathlib import Path + +import yaml + + +def deep_merge(base: dict, override: dict) -> dict: + """Recursively merge override into base. Override wins on conflicts. + + - Dicts: merged recursively + - Lists/scalars: replaced entirely (no appending) + - Missing keys in override: base value kept + """ + result = dict(base) + for key, value in override.items(): + if key in result and isinstance(result[key], dict) and isinstance(value, dict): + result[key] = deep_merge(result[key], value) + else: + result[key] = value + return result + + +def resolve_task_yaml(yaml_path: Path) -> dict: + """Load a task YAML, resolving 'extends' inheritance if present. + + The 'extends' value is a relative path from the YAML file's directory. + Supports single-level inheritance only (base cannot extend another base). + + Returns: + Fully resolved config dict (extends key removed). + + Raises: + FileNotFoundError: If the base YAML referenced by extends doesn't exist. + ValueError: If chained extends are detected (base also has extends). + """ + config = yaml.safe_load(yaml_path.read_text()) + if not isinstance(config, dict): + return config or {} + + extends = config.pop("extends", None) + if extends is None: + return config + + base_path = yaml_path.parent / extends + if not base_path.exists(): + raise FileNotFoundError( + f"Base YAML not found: {base_path} " + f"(referenced by extends in {yaml_path})" + ) + + base_config = yaml.safe_load(base_path.read_text()) + if not isinstance(base_config, dict): + base_config = {} + + if "extends" in base_config: + raise ValueError( + f"Chained extends not supported: {base_path} also has 'extends'" + ) + + return deep_merge(base_config, config) diff --git a/tests/test_yaml_utils.py b/tests/test_yaml_utils.py new file mode 100644 index 0000000..57e0e82 --- /dev/null +++ b/tests/test_yaml_utils.py @@ -0,0 +1,180 @@ +"""Tests for YAML template inheritance (deep_merge + resolve_task_yaml).""" +import pytest +from pathlib import Path + + +class TestDeepMerge: + """Tests for deep_merge() utility.""" + + def test_flat_override(self): + from easi.tasks.yaml_utils import deep_merge + base = {"a": 1, "b": 2} + override = {"b": 99} + result = deep_merge(base, override) + assert result == {"a": 1, "b": 99} + + def test_nested_dict_merge(self): + from easi.tasks.yaml_utils import deep_merge + base = {"agent": {"prompt_builder": "X", "kwargs": {"n_shot": 10, "split": "base"}}} + override = {"agent": {"kwargs": {"n_shot": 7}}} + result = deep_merge(base, override) + assert result["agent"]["prompt_builder"] == "X" + assert result["agent"]["kwargs"]["n_shot"] == 7 + assert result["agent"]["kwargs"]["split"] == "base" + + def test_list_replaced_not_appended(self): + from easi.tasks.yaml_utils import deep_merge + base = {"deps": ["gym", "networkx"]} + override = {"deps": ["torch"]} + result = deep_merge(base, override) + assert result["deps"] == ["torch"] + + def test_new_keys_added(self): + from easi.tasks.yaml_utils import deep_merge + base = {"a": 1} + override = {"b": 2} + result = deep_merge(base, override) + assert result == {"a": 1, "b": 2} + + def test_does_not_mutate_inputs(self): + from easi.tasks.yaml_utils import deep_merge + base = {"nested": {"a": 1}} + override = {"nested": {"b": 2}} + deep_merge(base, override) + assert "b" not in base["nested"] + + def test_deeply_nested_three_levels(self): + from easi.tasks.yaml_utils import deep_merge + base = {"l1": {"l2": {"l3": "base_val", "keep": True}}} + override = {"l1": {"l2": {"l3": "override_val"}}} + result = deep_merge(base, override) + assert result["l1"]["l2"]["l3"] == "override_val" + assert result["l1"]["l2"]["keep"] is True + + def test_override_dict_with_scalar(self): + from easi.tasks.yaml_utils import deep_merge + base = {"x": {"nested": True}} + override = {"x": "flat_now"} + result = deep_merge(base, override) + assert result["x"] == "flat_now" + + def test_override_scalar_with_dict(self): + from easi.tasks.yaml_utils import deep_merge + base = {"x": "flat"} + override = {"x": {"nested": True}} + result = deep_merge(base, override) + assert result["x"] == {"nested": True} + + def test_empty_override(self): + from easi.tasks.yaml_utils import deep_merge + base = {"a": 1, "b": 2} + result = deep_merge(base, {}) + assert result == {"a": 1, "b": 2} + + def test_empty_base(self): + from easi.tasks.yaml_utils import deep_merge + result = deep_merge({}, {"a": 1}) + assert result == {"a": 1} + + +class TestResolveTaskYaml: + """Tests for resolve_task_yaml() with extends inheritance.""" + + def test_no_extends_returns_raw(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + yaml_file = tmp_path / "task.yaml" + yaml_file.write_text("name: my_task\nsimulator: dummy:v1\n") + config = resolve_task_yaml(yaml_file) + assert config["name"] == "my_task" + assert "extends" not in config + + def test_extends_merges_base(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "_base.yaml").write_text( + "simulator: dummy:v1\nmax_steps: 100\n" + "agent:\n prompt_builder: MyBuilder\n kwargs:\n n_shot: 10\n" + ) + (tmp_path / "split.yaml").write_text( + "extends: _base.yaml\nname: my_split\n" + "agent:\n kwargs:\n n_shot: 5\n" + ) + config = resolve_task_yaml(tmp_path / "split.yaml") + assert config["name"] == "my_split" + assert config["simulator"] == "dummy:v1" + assert config["max_steps"] == 100 + assert config["agent"]["prompt_builder"] == "MyBuilder" + assert config["agent"]["kwargs"]["n_shot"] == 5 + + def test_extends_strips_extends_key(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "_base.yaml").write_text("simulator: dummy:v1\n") + (tmp_path / "split.yaml").write_text("extends: _base.yaml\nname: test\n") + config = resolve_task_yaml(tmp_path / "split.yaml") + assert "extends" not in config + + def test_extends_missing_base_raises(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "split.yaml").write_text("extends: nonexistent.yaml\nname: test\n") + with pytest.raises(FileNotFoundError, match="nonexistent.yaml"): + resolve_task_yaml(tmp_path / "split.yaml") + + def test_chained_extends_raises(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "grandparent.yaml").write_text("x: 1\n") + (tmp_path / "_base.yaml").write_text("extends: grandparent.yaml\ny: 2\n") + (tmp_path / "split.yaml").write_text("extends: _base.yaml\nname: test\n") + with pytest.raises(ValueError, match="Chained extends not supported"): + resolve_task_yaml(tmp_path / "split.yaml") + + def test_base_without_name_not_a_task(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "_base.yaml").write_text( + "simulator: dummy:v1\nmax_steps: 50\n" + ) + config = resolve_task_yaml(tmp_path / "_base.yaml") + assert "name" not in config + + def test_realistic_ebmanipulation_merge(self, tmp_path): + from easi.tasks.yaml_utils import resolve_task_yaml + (tmp_path / "_base.yaml").write_text( + "simulator: coppeliasim:v4_1_0\n" + "task_class: easi.tasks.ebmanipulation.task.EBManipulationTask\n" + "max_steps: 15\n" + "dataset:\n" + " source: huggingface\n" + " repo_id: oscarqjh/EB-Manipulation_easi\n" + " subset: null\n" + " zip_files:\n" + " - simulator_data.zip\n" + "simulator_configs:\n" + " screen_height: 500\n" + " voxel_size: 100\n" + "agent:\n" + " prompt_builder: easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder\n" + " prompt_builder_kwargs:\n" + " n_shot: 10\n" + " use_feedback: true\n" + " chat_history: false\n" + ) + (tmp_path / "ebmanipulation_visual.yaml").write_text( + "extends: _base.yaml\n" + "name: ebmanipulation_visual\n" + "display_name: EB-Manipulation Visual Split\n" + "description: Visual split\n" + "dataset:\n" + " split: visual\n" + "agent:\n" + " prompt_builder_kwargs:\n" + " split: visual\n" + ) + config = resolve_task_yaml(tmp_path / "ebmanipulation_visual.yaml") + assert config["name"] == "ebmanipulation_visual" + assert config["simulator"] == "coppeliasim:v4_1_0" + assert config["max_steps"] == 15 + assert config["dataset"]["source"] == "huggingface" + assert config["dataset"]["split"] == "visual" + assert config["dataset"]["zip_files"] == ["simulator_data.zip"] + assert config["simulator_configs"]["screen_height"] == 500 + assert config["agent"]["prompt_builder_kwargs"]["n_shot"] == 10 + assert config["agent"]["prompt_builder_kwargs"]["split"] == "visual" + assert config["agent"]["prompt_builder_kwargs"]["use_feedback"] is True From bff7d0ec5260ae1600d4cd48f2151f5b13ddc05b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:38:45 +0800 Subject: [PATCH 052/239] [Feat] Integrate YAML extends into registry and BaseTask config loading --- easi/core/base_task.py | 5 ++--- easi/tasks/registry.py | 4 ++-- tests/test_yaml_utils.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 72191c4..ea6b85f 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -19,10 +19,9 @@ from abc import ABC, abstractmethod from pathlib import Path -import yaml - from easi.core.episode import StepResult from easi.core.exceptions import DatasetError +from easi.tasks.yaml_utils import resolve_task_yaml from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -209,7 +208,7 @@ def _load_config(self) -> dict: yaml_path = self._split_yaml_path or self.get_task_yaml_path() if not yaml_path.exists(): raise DatasetError(f"Task config not found: {yaml_path}") - return yaml.safe_load(yaml_path.read_text()) + return resolve_task_yaml(yaml_path) def _load_episodes_from_config(self) -> list[dict]: """Load episodes from the dataset. diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py index 3d96ad2..390b86b 100644 --- a/easi/tasks/registry.py +++ b/easi/tasks/registry.py @@ -14,7 +14,7 @@ from dataclasses import dataclass from pathlib import Path -import yaml +from easi.tasks.yaml_utils import resolve_task_yaml from easi.utils.logging import get_logger @@ -57,7 +57,7 @@ def _discover_tasks(tasks_dir: Path | None = None) -> dict[str, TaskEntry]: for task_yaml_path in yaml_files: try: - config = yaml.safe_load(task_yaml_path.read_text()) + config = resolve_task_yaml(task_yaml_path) except Exception as e: logger.warning("Failed to load %s: %s", task_yaml_path, e) continue diff --git a/tests/test_yaml_utils.py b/tests/test_yaml_utils.py index 57e0e82..94054ba 100644 --- a/tests/test_yaml_utils.py +++ b/tests/test_yaml_utils.py @@ -178,3 +178,37 @@ def test_realistic_ebmanipulation_merge(self, tmp_path): assert config["agent"]["prompt_builder_kwargs"]["n_shot"] == 10 assert config["agent"]["prompt_builder_kwargs"]["split"] == "visual" assert config["agent"]["prompt_builder_kwargs"]["use_feedback"] is True + + +class TestRegistryExtendsIntegration: + """Test that the registry resolves extends during discovery.""" + + def test_registry_discovers_split_with_extends(self, tmp_path): + from easi.tasks.registry import _discover_tasks + task_dir = tmp_path / "my_bench" + task_dir.mkdir() + (task_dir / "_base.yaml").write_text( + "simulator: dummy:v1\n" + "task_class: easi.tasks.dummy_task.task.DummyTask\n" + "max_steps: 50\n" + ) + (task_dir / "my_bench_base.yaml").write_text( + "extends: _base.yaml\n" + "name: my_bench_base\n" + "display_name: My Bench Base\n" + "description: Base split\n" + ) + entries = _discover_tasks(tasks_dir=tmp_path) + assert "my_bench_base" in entries + assert entries["my_bench_base"].simulator_key == "dummy:v1" + assert entries["my_bench_base"].max_steps == 50 + + def test_registry_skips_base_yaml_without_name(self, tmp_path): + from easi.tasks.registry import _discover_tasks + task_dir = tmp_path / "my_bench" + task_dir.mkdir() + (task_dir / "_base.yaml").write_text( + "simulator: dummy:v1\nmax_steps: 50\n" + ) + entries = _discover_tasks(tasks_dir=tmp_path) + assert len(entries) == 0 From 7ee5a47cd478afc992eba1804c6e64d598934930 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:42:51 +0800 Subject: [PATCH 053/239] [Refactor] Migrate EB-Manipulation YAMLs to extends template inheritance --- easi/tasks/ebmanipulation/_base.yaml | 39 +++++++++++++++++++ .../ebmanipulation/ebmanipulation_base.yaml | 35 +---------------- .../ebmanipulation_common_sense.yaml | 35 +---------------- .../ebmanipulation_complex.yaml | 35 +---------------- .../ebmanipulation_spatial.yaml | 35 +---------------- .../ebmanipulation/ebmanipulation_visual.yaml | 35 +---------------- 6 files changed, 44 insertions(+), 170 deletions(-) create mode 100644 easi/tasks/ebmanipulation/_base.yaml diff --git a/easi/tasks/ebmanipulation/_base.yaml b/easi/tasks/ebmanipulation/_base.yaml new file mode 100644 index 0000000..c597078 --- /dev/null +++ b/easi/tasks/ebmanipulation/_base.yaml @@ -0,0 +1,39 @@ +display_name: "EB-Manipulation" +description: "EB-Manipulation benchmark (robotic manipulation with 7D discrete gripper actions)" +simulator: "coppeliasim:v4_1_0" +task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" +action_space: [] +max_steps: 15 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Manipulation_easi" + subset: null + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_steps: 15 + voxel_size: 100 + rotation_resolution: 3 + scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] + amsolver_parent_path: "" + detection_box: true + additional_deps: + - "gymnasium" + - "ultralytics" + - "open3d" + env_vars: + QT_QPA_PLATFORM: "xcb" +agent: + prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_base.yaml b/easi/tasks/ebmanipulation/ebmanipulation_base.yaml index 781caab..d93d307 100644 --- a/easi/tasks/ebmanipulation/ebmanipulation_base.yaml +++ b/easi/tasks/ebmanipulation/ebmanipulation_base.yaml @@ -1,42 +1,9 @@ +extends: _base.yaml name: ebmanipulation_base display_name: "EB-Manipulation Base Split" description: "Base evaluation split for EB-Manipulation (robotic manipulation with 7D discrete gripper actions)" -simulator: "coppeliasim:v4_1_0" -task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" -action_space: [] -max_steps: 15 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Manipulation_easi" - subset: null split: "base" - zip_files: - - "simulator_data.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_steps: 15 - voxel_size: 100 - rotation_resolution: 3 - scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] - amsolver_parent_path: "" - detection_box: true - additional_deps: - - "gymnasium" - - "ultralytics" - - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: - prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml b/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml index 02730be..da883a6 100644 --- a/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml +++ b/easi/tasks/ebmanipulation/ebmanipulation_common_sense.yaml @@ -1,42 +1,9 @@ +extends: _base.yaml name: ebmanipulation_common_sense display_name: "EB-Manipulation Common Sense Split" description: "Common sense evaluation split for EB-Manipulation (tasks requiring commonsense reasoning)" -simulator: "coppeliasim:v4_1_0" -task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" -action_space: [] -max_steps: 15 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Manipulation_easi" - subset: null split: "common_sense" - zip_files: - - "simulator_data.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_steps: 15 - voxel_size: 100 - rotation_resolution: 3 - scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] - amsolver_parent_path: "" - detection_box: true - additional_deps: - - "gymnasium" - - "ultralytics" - - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: - prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "common_sense" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml b/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml index ebc26f3..96552fd 100644 --- a/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml +++ b/easi/tasks/ebmanipulation/ebmanipulation_complex.yaml @@ -1,42 +1,9 @@ +extends: _base.yaml name: ebmanipulation_complex display_name: "EB-Manipulation Complex Split" description: "Complex instruction evaluation split for EB-Manipulation (multi-step manipulation instructions)" -simulator: "coppeliasim:v4_1_0" -task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" -action_space: [] -max_steps: 15 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Manipulation_easi" - subset: null split: "complex" - zip_files: - - "simulator_data.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_steps: 15 - voxel_size: 100 - rotation_resolution: 3 - scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] - amsolver_parent_path: "" - detection_box: true - additional_deps: - - "gymnasium" - - "ultralytics" - - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: - prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "complex" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml b/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml index 7b3d9cd..f666b2a 100644 --- a/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml +++ b/easi/tasks/ebmanipulation/ebmanipulation_spatial.yaml @@ -1,42 +1,9 @@ +extends: _base.yaml name: ebmanipulation_spatial display_name: "EB-Manipulation Spatial Split" description: "Spatial reasoning evaluation split for EB-Manipulation (tasks with relative spatial references)" -simulator: "coppeliasim:v4_1_0" -task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" -action_space: [] -max_steps: 15 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Manipulation_easi" - subset: null split: "spatial" - zip_files: - - "simulator_data.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_steps: 15 - voxel_size: 100 - rotation_resolution: 3 - scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] - amsolver_parent_path: "" - detection_box: true - additional_deps: - - "gymnasium" - - "ultralytics" - - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: - prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "spatial" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml b/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml index b5fc2ad..33eb7c0 100644 --- a/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml +++ b/easi/tasks/ebmanipulation/ebmanipulation_visual.yaml @@ -1,42 +1,9 @@ +extends: _base.yaml name: ebmanipulation_visual display_name: "EB-Manipulation Visual Split" description: "Visual appearance evaluation split for EB-Manipulation (tasks requiring visual property recognition)" -simulator: "coppeliasim:v4_1_0" -task_class: "easi.tasks.ebmanipulation.task.EBManipulationTask" -action_space: [] -max_steps: 15 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Manipulation_easi" - subset: null split: "visual" - zip_files: - - "simulator_data.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_steps: 15 - voxel_size: 100 - rotation_resolution: 3 - scene_bounds: [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] - amsolver_parent_path: "" - detection_box: true - additional_deps: - - "gymnasium" - - "ultralytics" - - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: - prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "visual" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false From 80f4fbb97c6233fc96b3d8db04582187c7a0cc2c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:44:48 +0800 Subject: [PATCH 054/239] [Refactor] Migrate EB-Navigation YAMLs to extends template inheritance --- easi/tasks/ebnavigation/_base.yaml | 30 +++++++++++++++++++ .../tasks/ebnavigation/ebnavigation_base.yaml | 26 +--------------- .../ebnavigation_common_sense.yaml | 26 +--------------- .../ebnavigation_complex_instruction.yaml | 26 +--------------- .../ebnavigation_long_horizon.yaml | 26 +--------------- .../ebnavigation_visual_appearance.yaml | 26 +--------------- 6 files changed, 35 insertions(+), 125 deletions(-) create mode 100644 easi/tasks/ebnavigation/_base.yaml diff --git a/easi/tasks/ebnavigation/_base.yaml b/easi/tasks/ebnavigation/_base.yaml new file mode 100644 index 0000000..25d03e6 --- /dev/null +++ b/easi/tasks/ebnavigation/_base.yaml @@ -0,0 +1,30 @@ +display_name: "EB-Navigation" +description: "EB-Navigation benchmark (object-goal navigation)" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" +max_steps: 20 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Navigation_easi" + subset: null +simulator_configs: + screen_height: 500 + screen_width: 500 + fov: 100 + success_threshold: 1.0 + grid_size: 0.1 + visibility_distance: 10.0 + boundingbox: false +agent: + prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + use_feedback: true + chat_history: true + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_base.yaml b/easi/tasks/ebnavigation/ebnavigation_base.yaml index 4f9ecb9..cb9e1a4 100644 --- a/easi/tasks/ebnavigation/ebnavigation_base.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_base.yaml @@ -1,33 +1,9 @@ +extends: _base.yaml name: ebnavigation_base display_name: "EB-Navigation Base Split" description: "Base evaluation split for EB-Navigation (object-goal navigation)" -simulator: "ai2thor:v5_0_0" -task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" -max_steps: 20 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Navigation_easi" - subset: null split: "base" -simulator_configs: - screen_height: 500 - screen_width: 500 - fov: 100 - success_threshold: 1.0 - grid_size: 0.1 - visibility_distance: 10.0 - boundingbox: false agent: - prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: - n_shot: 3 split: "base" - use_feedback: true - chat_history: true - message_window_len: 5 - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml index 1eb39e4..19089da 100644 --- a/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_common_sense.yaml @@ -1,33 +1,9 @@ +extends: _base.yaml name: ebnavigation_common_sense display_name: "EB-Navigation Common Sense Split" description: "Common sense evaluation split for EB-Navigation (object-goal navigation)" -simulator: "ai2thor:v5_0_0" -task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" -max_steps: 20 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Navigation_easi" - subset: null split: "common_sense" -simulator_configs: - screen_height: 500 - screen_width: 500 - fov: 100 - success_threshold: 1.0 - grid_size: 0.1 - visibility_distance: 10.0 - boundingbox: false agent: - prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: - n_shot: 3 split: "common_sense" - use_feedback: true - chat_history: true - message_window_len: 5 - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml index 4442cad..f57031d 100644 --- a/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_complex_instruction.yaml @@ -1,33 +1,9 @@ +extends: _base.yaml name: ebnavigation_complex_instruction display_name: "EB-Navigation Complex Instruction Split" description: "Complex instruction evaluation split for EB-Navigation (object-goal navigation)" -simulator: "ai2thor:v5_0_0" -task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" -max_steps: 20 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Navigation_easi" - subset: null split: "complex_instruction" -simulator_configs: - screen_height: 500 - screen_width: 500 - fov: 100 - success_threshold: 1.0 - grid_size: 0.1 - visibility_distance: 10.0 - boundingbox: false agent: - prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: - n_shot: 3 split: "complex_instruction" - use_feedback: true - chat_history: true - message_window_len: 5 - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml index 07606ad..5406eef 100644 --- a/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_long_horizon.yaml @@ -1,33 +1,9 @@ +extends: _base.yaml name: ebnavigation_long_horizon display_name: "EB-Navigation Long Horizon Split" description: "Long horizon evaluation split for EB-Navigation (object-goal navigation)" -simulator: "ai2thor:v5_0_0" -task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" -max_steps: 20 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Navigation_easi" - subset: null split: "long_horizon" -simulator_configs: - screen_height: 500 - screen_width: 500 - fov: 100 - success_threshold: 1.0 - grid_size: 0.1 - visibility_distance: 10.0 - boundingbox: false agent: - prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: - n_shot: 3 split: "long_horizon" - use_feedback: true - chat_history: true - message_window_len: 5 - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml index 2a0a557..5cae896 100644 --- a/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml +++ b/easi/tasks/ebnavigation/ebnavigation_visual_appearance.yaml @@ -1,33 +1,9 @@ +extends: _base.yaml name: ebnavigation_visual_appearance display_name: "EB-Navigation Visual Appearance Split" description: "Visual appearance evaluation split for EB-Navigation (object-goal navigation)" -simulator: "ai2thor:v5_0_0" -task_class: "easi.tasks.ebnavigation.task.EBNavigationTask" -max_steps: 20 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Navigation_easi" - subset: null split: "visual_appearance" -simulator_configs: - screen_height: 500 - screen_width: 500 - fov: 100 - success_threshold: 1.0 - grid_size: 0.1 - visibility_distance: 10.0 - boundingbox: false agent: - prompt_builder: "easi.tasks.ebnavigation.prompts.EBNavigationPromptBuilder" prompt_builder_kwargs: - n_shot: 3 split: "visual_appearance" - use_feedback: true - chat_history: true - message_window_len: 5 - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false From 5438ff9e3ce6403b5c729ebf32d683836de5058c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:47:32 +0800 Subject: [PATCH 055/239] [Refactor] Migrate EB-Alfred YAMLs to extends template inheritance --- easi/tasks/ebalfred/_base.yaml | 35 +++++++++++++++++++ easi/tasks/ebalfred/ebalfred_base.yaml | 33 +---------------- .../tasks/ebalfred/ebalfred_common_sense.yaml | 33 +---------------- .../ebalfred_complex_instruction.yaml | 33 +---------------- .../tasks/ebalfred/ebalfred_long_horizon.yaml | 28 +-------------- easi/tasks/ebalfred/ebalfred_spatial.yaml | 33 +---------------- .../ebalfred/ebalfred_visual_appearance.yaml | 33 +---------------- 7 files changed, 41 insertions(+), 187 deletions(-) create mode 100644 easi/tasks/ebalfred/_base.yaml diff --git a/easi/tasks/ebalfred/_base.yaml b/easi/tasks/ebalfred/_base.yaml new file mode 100644 index 0000000..915aabe --- /dev/null +++ b/easi/tasks/ebalfred/_base.yaml @@ -0,0 +1,35 @@ +display_name: "EB-Alfred" +description: "EB-Alfred benchmark" +simulator: "ai2thor:v2_1_0" +task_class: "easi.tasks.ebalfred.task.EBAlfredTask" +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Alfred_easi" + subset: null + zip_files: + - "tasks.zip" +simulator_configs: + quality: "MediumCloseFitShadows" + screen_height: 500 + screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 0 + detection_box: false + additional_deps: + - "gym" + - "networkx" + - "opencv-python" +agent: + prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + split: "base" + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_base.yaml b/easi/tasks/ebalfred/ebalfred_base.yaml index 591cdf9..c4917d6 100644 --- a/easi/tasks/ebalfred/ebalfred_base.yaml +++ b/easi/tasks/ebalfred/ebalfred_base.yaml @@ -1,37 +1,6 @@ +extends: _base.yaml name: ebalfred_base display_name: "EB-Alfred Base Split" description: "Base evaluation split for EB-Alfred" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "base" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" -agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" - prompt_builder_kwargs: - n_shot: 10 - split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_common_sense.yaml b/easi/tasks/ebalfred/ebalfred_common_sense.yaml index 33f9262..20922cf 100644 --- a/easi/tasks/ebalfred/ebalfred_common_sense.yaml +++ b/easi/tasks/ebalfred/ebalfred_common_sense.yaml @@ -1,37 +1,6 @@ +extends: _base.yaml name: ebalfred_common_sense display_name: "EB-Alfred Common Sense Split" description: "Common sense evaluation split testing implicit knowledge" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "common_sense" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" -agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" - prompt_builder_kwargs: - n_shot: 10 - split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml index 577f541..5cace2a 100644 --- a/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml +++ b/easi/tasks/ebalfred/ebalfred_complex_instruction.yaml @@ -1,37 +1,6 @@ +extends: _base.yaml name: ebalfred_complex_instruction display_name: "EB-Alfred Complex Instruction Split" description: "Complex instruction evaluation split with nuanced language" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "complex_instruction" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" -agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" - prompt_builder_kwargs: - n_shot: 10 - split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml index 52b2a75..b1d7f49 100644 --- a/easi/tasks/ebalfred/ebalfred_long_horizon.yaml +++ b/easi/tasks/ebalfred/ebalfred_long_horizon.yaml @@ -1,37 +1,11 @@ +extends: _base.yaml name: ebalfred_long_horizon display_name: "EB-Alfred Long Horizon Split" description: "Long-horizon evaluation split requiring multi-step planning" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "long_horizon" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" prompt_builder_kwargs: n_shot: 7 split: "long_horizon" - use_feedback: true chat_history: true - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_spatial.yaml b/easi/tasks/ebalfred/ebalfred_spatial.yaml index 2f040f2..8fa658e 100644 --- a/easi/tasks/ebalfred/ebalfred_spatial.yaml +++ b/easi/tasks/ebalfred/ebalfred_spatial.yaml @@ -1,37 +1,6 @@ +extends: _base.yaml name: ebalfred_spatial display_name: "EB-Alfred Spatial Split" description: "Spatial reasoning evaluation split" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "spatial" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" -agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" - prompt_builder_kwargs: - n_shot: 10 - split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml index 1648e01..f712741 100644 --- a/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml +++ b/easi/tasks/ebalfred/ebalfred_visual_appearance.yaml @@ -1,37 +1,6 @@ +extends: _base.yaml name: ebalfred_visual_appearance display_name: "EB-Alfred Visual Appearance Split" description: "Visual appearance evaluation split testing visual grounding" -simulator: "ai2thor:v2_1_0" -task_class: "easi.tasks.ebalfred.task.EBAlfredTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Alfred_easi" - subset: null split: "visual_appearance" - zip_files: - - "tasks.zip" -simulator_configs: - quality: "MediumCloseFitShadows" - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 0 - detection_box: false - additional_deps: - - "gym" - - "networkx" - - "opencv-python" -agent: - prompt_builder: "easi.tasks.ebalfred.prompts.EBAlfredPromptBuilder" - prompt_builder_kwargs: - n_shot: 10 - split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false From aa0d7830dde6140b4693d5743556c25bb40b8b29 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 01:49:21 +0800 Subject: [PATCH 056/239] [Refactor] Migrate EB-Habitat YAMLs to extends template inheritance --- easi/tasks/ebhabitat/_base.yaml | 37 +++++++++++++++++++ easi/tasks/ebhabitat/ebhabitat_base.yaml | 33 +---------------- .../ebhabitat/ebhabitat_common_sense.yaml | 33 +---------------- .../ebhabitat_complex_instruction.yaml | 33 +---------------- .../ebhabitat/ebhabitat_long_horizon.yaml | 33 +---------------- .../ebhabitat_spatial_relationship.yaml | 33 +---------------- .../ebhabitat_visual_appearance.yaml | 33 +---------------- 7 files changed, 43 insertions(+), 192 deletions(-) create mode 100644 easi/tasks/ebhabitat/_base.yaml diff --git a/easi/tasks/ebhabitat/_base.yaml b/easi/tasks/ebhabitat/_base.yaml new file mode 100644 index 0000000..91f14c6 --- /dev/null +++ b/easi/tasks/ebhabitat/_base.yaml @@ -0,0 +1,37 @@ +display_name: "EB-Habitat" +description: "EB-Habitat benchmark (rearrangement)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" +max_steps: 50 +dataset: + source: huggingface + repo_id: "oscarqjh/EB-Habitat_easi" + subset: null + zip_files: + - "simulator_data.zip" + - "datasets.zip" +simulator_configs: + screen_height: 500 + screen_width: 500 + max_invalid_actions: 10 + feedback_verbosity: 1 + gpu_device_id: -1 + additional_deps: + - "gym" + - "hydra-core>=1.3" + - "omegaconf>=2.3" + - "imageio" + - "torch" + - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" +agent: + prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" + prompt_builder_kwargs: + n_shot: 10 + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 + top_k: 50 + top_p: 0.95 + do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_base.yaml b/easi/tasks/ebhabitat/ebhabitat_base.yaml index 70a4d69..6878031 100644 --- a/easi/tasks/ebhabitat/ebhabitat_base.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_base.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_base display_name: "EB-Habitat Base Split" description: "Base evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "base" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "base" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml index dd8a40f..be67bce 100644 --- a/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_common_sense.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_common_sense display_name: "EB-Habitat Common Sense Split" description: "Common sense evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "common_sense" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "common_sense" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml index c9a5d08..a0b604b 100644 --- a/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_complex_instruction.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_complex_instruction display_name: "EB-Habitat Complex Instruction Split" description: "Complex instruction evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "complex_instruction" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "complex_instruction" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml index 9f5e70c..9355659 100644 --- a/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_long_horizon.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_long_horizon display_name: "EB-Habitat Long Horizon Split" description: "Long horizon evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "long_horizon" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "long_horizon" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml index 12ca5f4..fcaf8d1 100644 --- a/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_spatial_relationship.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_spatial_relationship display_name: "EB-Habitat Spatial Relationship Split" description: "Spatial relationship evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "spatial_relationship" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "spatial_relationship" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false diff --git a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml index 6269376..543d437 100644 --- a/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml +++ b/easi/tasks/ebhabitat/ebhabitat_visual_appearance.yaml @@ -1,40 +1,9 @@ +extends: _base.yaml name: ebhabitat_visual_appearance display_name: "EB-Habitat Visual Appearance Split" description: "Visual appearance evaluation split for EB-Habitat (rearrangement)" -simulator: "habitat_sim:v0_3_0" -task_class: "easi.tasks.ebhabitat.task.EBHabitatTask" -max_steps: 50 dataset: - source: huggingface - repo_id: "oscarqjh/EB-Habitat_easi" - subset: null split: "visual_appearance" - zip_files: - - "simulator_data.zip" - - "datasets.zip" -simulator_configs: - screen_height: 500 - screen_width: 500 - max_invalid_actions: 10 - feedback_verbosity: 1 - gpu_device_id: -1 - additional_deps: - - "gym" - - "hydra-core>=1.3" - - "omegaconf>=2.3" - - "imageio" - - "torch" - - "habitat-lab @ git+https://github.com/facebookresearch/habitat-lab.git@v0.3.0#subdirectory=habitat-lab" agent: - prompt_builder: "easi.tasks.ebhabitat.prompts.EBHabitatPromptBuilder" prompt_builder_kwargs: - n_shot: 10 split: "visual_appearance" - use_feedback: true - chat_history: false - generation_kwargs: - temperature: 0 - max_tokens: 2048 - top_k: 50 - top_p: 0.95 - do_sample: false From 4ddd6c93eb8e0fb44c8e31da4cbcffea29bad440 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 18:54:28 +0800 Subject: [PATCH 057/239] [Refactor] Auto-capture config.json from __init__ args via inspect Eliminate manual maintenance of config.json building and resume logic. Adding a new CLI option now requires exactly 2 changes: argparse + __init__. - Auto-capture __init__ args via inspect.currentframe() for config.json - Align argparse dest names with __init__ param names - Set all argparse defaults to None (real defaults in __init__) - Simplify cmd_run() resume to dict union: {**saved, **raw} - Move max_episodes from run() param to __init__ - Add LLM client timeout (120s) and API error trace logging --- easi/cli.py | 103 ++++++++++++----------------- easi/evaluation/runner.py | 43 +++++++------ easi/llm/client.py | 9 ++- tests/test_cli_llm_args.py | 10 +-- tests/test_e2e_evaluation.py | 111 ++++++++++++++++++++------------ tests/test_evaluation_runner.py | 104 +++++++++++++++++++++++++++++- 6 files changed, 249 insertions(+), 131 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 9fa7c52..fea5daf 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -80,29 +80,32 @@ def build_parser() -> argparse.ArgumentParser: # --- run command --- run_parser = subparsers.add_parser("run", help="Run a full evaluation", parents=[common]) - run_parser.add_argument("task", type=str, nargs="?", default=None, + # All defaults are None so resume logic can distinguish "user provided" from "default". + # Real defaults live in EvaluationRunner.__init__. + run_parser.add_argument("task_name", type=str, nargs="?", default=None, metavar="task", help="Task name (e.g., 'dummy_task', 'ebalfred_base'). " "Optional when --resume is provided.") - run_parser.add_argument("--agent", type=str, default="react", choices=["dummy", "react"]) - run_parser.add_argument("--output-dir", type=str, default="./logs", + run_parser.add_argument("--agent", type=str, default=None, choices=["dummy", "react"], + dest="agent_type") + run_parser.add_argument("--output-dir", type=str, default=None, help="Base output directory (creates

      ///)") - run_parser.add_argument("--data-dir", type=str, default="./datasets", + run_parser.add_argument("--data-dir", type=str, default=None, help="Directory for downloading/caching datasets (default: ./datasets)") run_parser.add_argument("--max-episodes", type=int, default=None) - run_parser.add_argument("--llm-url", type=str, default=None, help="LLM server URL") - run_parser.add_argument("--seed", type=int, default=None) - # New LLM backend args + run_parser.add_argument("--llm-url", type=str, default=None, dest="llm_base_url", + help="LLM server URL") + run_parser.add_argument("--seed", type=int, default=None, dest="agent_seed") run_parser.add_argument("--backend", type=str, default=None, help="LLM backend: vllm, openai, anthropic, gemini, dummy") - run_parser.add_argument("--model", type=str, default="default", + run_parser.add_argument("--model", type=str, default=None, help="Model name (HF path for vLLM, API name for proprietary)") - run_parser.add_argument("--port", type=int, default=8080, + run_parser.add_argument("--port", type=int, default=None, help="Port for local inference server (default: 8080)") - run_parser.add_argument("--llm-kwargs", type=str, default=None, + run_parser.add_argument("--llm-kwargs", type=str, default=None, dest="llm_kwargs_raw", help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') - run_parser.add_argument("--max-retries", type=int, default=3, + run_parser.add_argument("--max-retries", type=int, default=None, help="Max LLM retry attempts on transient errors (default: 3)") - run_parser.add_argument("--resume", type=str, default=None, + run_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", help="Path to a previous run directory to resume from") run_parser.add_argument("--redownload", action="store_true", help="Delete cached dataset and re-download from source") @@ -293,66 +296,43 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: sys.exit(1) -def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, - llm_url, seed, backend, model, port, llm_kwargs_raw, - max_retries, resume, redownload=False): +def cmd_run(args): import json as _json from pathlib import Path from easi.evaluation.runner import EvaluationRunner - # When resuming, load saved config and use as defaults - if resume: - config_path = Path(resume) / "config.json" + # Collect explicitly-provided CLI args (argparse defaults are None) + raw = {k: v for k, v in vars(args).items() if v is not None} + # Remove argparse internals that aren't runner params + for key in ("command", "verbosity"): + raw.pop(key, None) + + # Extract session-specific params (not saved in config.json) + resume_dir = raw.pop("resume_dir", None) + redownload = raw.pop("redownload", False) + + if resume_dir: + config_path = Path(resume_dir) / "config.json" if not config_path.exists(): - logger.error("Resume directory has no config.json: %s", resume) + logger.error("Resume directory has no config.json: %s", resume_dir) sys.exit(1) - saved = _json.loads(config_path.read_text()) - opts = saved.get("cli_options", {}) - - # Saved config provides defaults; CLI args override - task_name = task_name or opts.get("task_name") - if agent_type == "dummy" and opts.get("agent_type"): - agent_type = opts["agent_type"] - if output_dir == "./logs" and opts.get("output_dir"): - output_dir = opts["output_dir"] - if data_dir == "./datasets" and opts.get("data_dir"): - data_dir = opts["data_dir"] - if llm_url is None: - llm_url = opts.get("llm_base_url") - if seed is None: - seed = opts.get("agent_seed") - if backend is None: - backend = opts.get("backend") - if model == "default" and opts.get("model", "default") != "default": - model = opts["model"] - if port == 8080 and opts.get("port", 8080) != 8080: - port = opts["port"] - if llm_kwargs_raw is None: - llm_kwargs_raw = opts.get("llm_kwargs_raw") - if max_retries == 3 and opts.get("max_retries", 3) != 3: - max_retries = opts["max_retries"] - - if not task_name: + saved = _json.loads(config_path.read_text()).get("cli_options", {}) + # Saved values fill gaps; explicit CLI args win + run_kwargs = {**saved, **raw} + else: + run_kwargs = raw + + if not run_kwargs.get("task_name"): logger.error("Task name is required. Provide it as a positional arg or use --resume.") sys.exit(1) runner = EvaluationRunner( - task_name=task_name, - agent_type=agent_type, - output_dir=output_dir, - data_dir=data_dir, - llm_base_url=llm_url, - agent_seed=seed, - backend=backend, - model=model, - port=port, - llm_kwargs_raw=llm_kwargs_raw, - max_retries=max_retries, - resume_dir=resume, + **run_kwargs, + resume_dir=resume_dir, redownload=redownload, ) - results = runner.run(max_episodes=max_episodes) + results = runner.run() logger.info("Completed %d episodes.", len(results)) from easi.evaluation.metrics import aggregate_metrics @@ -409,10 +389,7 @@ def main() -> None: parser.parse_args(["sim", "--help"]) elif args.command == "run": - cmd_run(args.task, args.agent, args.output_dir, args.data_dir, - args.max_episodes, args.llm_url, args.seed, - args.backend, args.model, args.port, args.llm_kwargs, - args.max_retries, args.resume, args.redownload) + cmd_run(args) elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 05bbe2d..29cdd99 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -23,6 +23,7 @@ from __future__ import annotations +import inspect import json import re import time @@ -44,12 +45,16 @@ def _sanitize_dirname(name: str) -> str: class EvaluationRunner: """Sequential evaluation runner.""" + # Session-specific params excluded from config.json + _EXCLUDE_FROM_CONFIG = frozenset({"resume_dir", "redownload"}) + def __init__( self, task_name: str, - agent_type: str = "dummy", + agent_type: str = "react", output_dir: Path | str = "./logs", data_dir: Path | str = "./datasets", + max_episodes: int | None = None, llm_base_url: str | None = None, agent_seed: int | None = None, backend: str | None = None, @@ -60,10 +65,18 @@ def __init__( resume_dir: Path | str | None = None, redownload: bool = False, ): + # Auto-capture all init args for config.json (before any mutation) + frame = inspect.currentframe() + self._cli_options = { + k: v for k, v in inspect.getargvalues(frame).locals.items() + if k not in ("self", "frame") and k not in self._EXCLUDE_FROM_CONFIG + } + self.task_name = task_name self.agent_type = agent_type self.output_dir = Path(output_dir) self.data_dir = Path(data_dir) + self.max_episodes = max_episodes self.llm_base_url = llm_base_url self.agent_seed = agent_seed self.backend = backend @@ -102,7 +115,14 @@ def _resolve_llm_backend(self) -> tuple[str | None, str | None]: f"Use --backend vllm|openai|anthropic|gemini or --llm-url ." ) - def run(self, max_episodes: int | None = None) -> list[dict]: + def _serialize_cli_options(self) -> dict: + """Serialize _cli_options for JSON output (convert Paths to strings).""" + return { + k: str(v) if isinstance(v, Path) else v + for k, v in self._cli_options.items() + } + + def run(self) -> list[dict]: """Run evaluation and return per-episode metric dicts.""" if self.resume_dir: run_dir = self.resume_dir @@ -125,8 +145,8 @@ def run(self, max_episodes: int | None = None) -> list[dict]: if self.redownload: task.download_dataset(force=True) episodes = task.load_episodes() - if max_episodes is not None: - episodes = episodes[:max_episodes] + if self.max_episodes is not None: + episodes = episodes[:self.max_episodes] # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() @@ -155,20 +175,7 @@ def run(self, max_episodes: int | None = None) -> list[dict]: config = { "run_id": self.run_id, "total_episodes": len(episodes), - "cli_options": { - "task_name": self.task_name, - "agent_type": self.agent_type, - "output_dir": str(self.output_dir), - "data_dir": str(self.data_dir), - "max_episodes": max_episodes, - "llm_base_url": self.llm_base_url, - "agent_seed": self.agent_seed, - "backend": self.backend, - "model": self.model, - "port": self.port, - "llm_kwargs_raw": self.llm_kwargs_raw, - "max_retries": self.max_retries, - }, + "cli_options": self._serialize_cli_options(), "resolved_backend": backend, "resolved_base_url": base_url, "resolved_generation_kwargs": resolved_gen_kwargs, diff --git a/easi/llm/client.py b/easi/llm/client.py index 1035b30..8b36a8e 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -52,11 +52,13 @@ def __init__( model: str, base_url: str | None = None, num_retries: int = 3, + timeout: float = 120.0, **kwargs: Any, ): self.model = model self.base_url = base_url self.num_retries = num_retries + self.timeout = timeout # Only keep params that litellm/OpenAI API recognises. dropped = {k: v for k, v in kwargs.items() if k not in _LITELLM_PARAMS} if dropped: @@ -77,6 +79,7 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> "model": self.model, "messages": messages, "num_retries": self.num_retries, + "timeout": self.timeout, "drop_params": True, **self.default_kwargs, } @@ -86,7 +89,11 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> call_kwargs["response_format"] = response_format logger.trace("LLM call: model=%s, messages=%d", self.model, len(messages)) - response = litellm.completion(**call_kwargs) + try: + response = litellm.completion(**call_kwargs) + except Exception as e: + logger.trace("LLM API error: %s: %s", type(e).__name__, e) + raise self._track_usage(response) content = response.choices[0].message.content diff --git a/tests/test_cli_llm_args.py b/tests/test_cli_llm_args.py index d68b37b..5a2ea8d 100644 --- a/tests/test_cli_llm_args.py +++ b/tests/test_cli_llm_args.py @@ -26,7 +26,7 @@ def test_run_model_default(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task"]) - assert args.model == "default" + assert args.model is None def test_run_has_port_arg(self): from easi.cli import build_parser @@ -38,7 +38,7 @@ def test_run_port_default(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task"]) - assert args.port == 8080 + assert args.port is None def test_run_has_llm_kwargs(self): from easi.cli import build_parser @@ -47,16 +47,16 @@ def test_run_has_llm_kwargs(self): "run", "dummy_task", "--llm-kwargs", '{"tensor_parallel_size": 4}', ]) - assert args.llm_kwargs == '{"tensor_parallel_size": 4}' + assert args.llm_kwargs_raw == '{"tensor_parallel_size": 4}' def test_run_llm_kwargs_default_none(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task"]) - assert args.llm_kwargs is None + assert args.llm_kwargs_raw is None def test_backward_compat_llm_url_still_works(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task", "--llm-url", "http://localhost:8000"]) - assert args.llm_url == "http://localhost:8000" + assert args.llm_base_url == "http://localhost:8000" diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index c6ec49c..5cdaa14 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -45,8 +45,9 @@ def test_max_episodes_limit(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", + max_episodes=1, ) - results = runner.run(max_episodes=1) + results = runner.run() assert len(results) == 1 def test_per_episode_files(self, tmp_path): @@ -56,8 +57,9 @@ def test_per_episode_files(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, + max_episodes=2, ) - runner.run(max_episodes=2) + runner.run() run_dir = _find_run_dir(output_dir) episode_dirs = sorted((run_dir / "episodes").iterdir()) @@ -77,8 +79,9 @@ def test_episode_metrics_structure(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", + max_episodes=1, ) - results = runner.run(max_episodes=1) + results = runner.run() ep = results[0] assert "success" in ep @@ -112,14 +115,16 @@ def test_deterministic_with_seed(self, tmp_path): agent_type="dummy", output_dir=tmp_path / "a", agent_seed=123, - ).run(max_episodes=2) + max_episodes=2, + ).run() results_b = EvaluationRunner( task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "b", agent_seed=123, - ).run(max_episodes=2) + max_episodes=2, + ).run() for a, b in zip(results_a, results_b): assert a["num_steps"] == b["num_steps"] @@ -156,8 +161,9 @@ def test_config_json_saved(self, tmp_path): agent_type="dummy", output_dir=output_dir, agent_seed=42, + max_episodes=1, ) - runner.run(max_episodes=1) + runner.run() run_dir = _find_run_dir(output_dir) config = json.loads((run_dir / "config.json").read_text()) @@ -177,8 +183,9 @@ def test_trajectory_jsonl_format(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, + max_episodes=1, ) - runner.run(max_episodes=1) + runner.run() run_dir = _find_run_dir(output_dir) episode_dirs = sorted((run_dir / "episodes").iterdir()) @@ -207,8 +214,9 @@ def test_images_saved_to_episode_dir(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, + max_episodes=1, ) - runner.run(max_episodes=1) + runner.run() run_dir = _find_run_dir(output_dir) episode_dirs = sorted((run_dir / "episodes").iterdir()) @@ -228,9 +236,10 @@ def test_max_retries_stored(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=5, + max_episodes=1, ) assert runner.max_retries == 5 - runner.run(max_episodes=1) + runner.run() run_dir = _find_run_dir(output_dir) config = json.loads((run_dir / "config.json").read_text()) @@ -363,6 +372,7 @@ def test_retry_on_episode_failure(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=3, + max_episodes=1, ) call_count = {"n": 0} @@ -375,7 +385,7 @@ def failing_first_call(*args, **kwargs): return original_run_episode(*args, **kwargs) with patch.object(runner, "_run_episode", side_effect=failing_first_call): - results = runner.run(max_episodes=1) + results = runner.run() assert len(results) == 1 assert "error" not in results[0] @@ -391,13 +401,14 @@ def test_retry_exhausted_records_failure(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=2, + max_episodes=1, ) with patch.object( runner, "_run_episode", side_effect=RuntimeError("persistent crash"), ): - results = runner.run(max_episodes=1) + results = runner.run() assert len(results) == 1 assert results[0]["success"] == 0.0 @@ -414,6 +425,7 @@ def test_retry_clears_partial_files(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=2, + max_episodes=1, ) original_run_episode = runner._run_episode @@ -432,7 +444,7 @@ def crash_then_succeed(*args, **kwargs): return original_run_episode(*args, **kwargs) with patch.object(runner, "_run_episode", side_effect=crash_then_succeed): - results = runner.run(max_episodes=1) + results = runner.run() assert len(results) == 1 # The partial file should have been cleaned up @@ -452,6 +464,7 @@ def test_retry_continues_to_next_episode(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=1, + max_episodes=2, ) original_run_episode = runner._run_episode @@ -465,7 +478,7 @@ def fail_first_episode(*args, **kwargs): return original_run_episode(*args, **kwargs) with patch.object(runner, "_run_episode", side_effect=fail_first_episode): - results = runner.run(max_episodes=2) + results = runner.run() # Both episodes should have results assert len(results) == 2 @@ -479,47 +492,46 @@ def fail_first_episode(*args, **kwargs): class TestResumeConfigLoading: def test_resume_loads_config_from_run_dir(self, tmp_path): """cmd_run with --resume loads task_name and options from config.json.""" + from argparse import Namespace from easi.cli import cmd_run output_dir = tmp_path / "logs" - # First run with specific options - cmd_run( + # First run — only 2 of 3 episodes + runner = EvaluationRunner( task_name="dummy_task", agent_type="dummy", - output_dir=str(output_dir), - data_dir="./datasets", + output_dir=output_dir, max_episodes=2, - llm_url=None, - seed=42, - backend=None, - model="default", - port=8080, - llm_kwargs_raw=None, - max_retries=3, - resume=None, + agent_seed=42, ) + runner.run() run_dir = _find_run_dir(output_dir) - # Resume without specifying task_name — should load from config.json - cmd_run( + # Resume with higher max_episodes to complete remaining + # Saved config has max_episodes=2; override to 3 to run all. + args = Namespace( + command="run", + verbosity="INFO", task_name=None, agent_type="dummy", - output_dir="./logs", - data_dir="./datasets", - max_episodes=None, - llm_url=None, - seed=None, + output_dir=None, + data_dir=None, + max_episodes=3, + llm_base_url=None, + agent_seed=None, backend=None, - model="default", - port=8080, + model=None, + port=None, llm_kwargs_raw=None, - max_retries=3, - resume=str(run_dir), + max_retries=None, + resume_dir=str(run_dir), + redownload=False, ) + cmd_run(args) - # Should have completed successfully (3 total episodes from config) + # Should have completed all 3 episodes (2 from first run + 1 from resume) summary = json.loads((run_dir / "summary.json").read_text()) assert summary["num_episodes"] == 3 @@ -529,7 +541,7 @@ def test_cli_max_retries_default(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task"]) - assert args.max_retries == 3 + assert args.max_retries is None def test_cli_max_retries_custom(self): from easi.cli import build_parser @@ -541,18 +553,33 @@ def test_cli_resume_default(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task"]) - assert args.resume is None + assert args.resume_dir is None def test_cli_resume_custom(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "dummy_task", "--resume", "/tmp/logs/run_123"]) - assert args.resume == "/tmp/logs/run_123" + assert args.resume_dir == "/tmp/logs/run_123" def test_cli_resume_without_task(self): """--resume should work without specifying a task name.""" from easi.cli import build_parser parser = build_parser() args = parser.parse_args(["run", "--resume", "/tmp/logs/run_123"]) - assert args.resume == "/tmp/logs/run_123" - assert args.task is None + assert args.resume_dir == "/tmp/logs/run_123" + assert args.task_name is None + + def test_cli_all_defaults_are_none(self): + """All argparse defaults should be None (real defaults in __init__).""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["run", "dummy_task"]) + assert args.agent_type is None + assert args.output_dir is None + assert args.data_dir is None + assert args.model is None + assert args.port is None + assert args.max_retries is None + assert args.llm_base_url is None + assert args.agent_seed is None + assert args.llm_kwargs_raw is None diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 14ba51d..0afe010 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -22,8 +22,9 @@ def test_run_single_episode(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", + max_episodes=1, ) - results = runner.run(max_episodes=1) + results = runner.run() assert len(results) == 1 assert "success" in results[0] @@ -47,8 +48,9 @@ def test_results_saved_to_disk(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, + max_episodes=1, ) - runner.run(max_episodes=1) + runner.run() run_dir = _find_run_dir(output_dir) assert (run_dir / "config.json").exists() @@ -80,3 +82,101 @@ def test_summary_aggregates_metrics(self, tmp_path): assert "success_rate" in summary assert "avg_steps" in summary assert "num_episodes" in summary + + +class TestCliOptionsCapture: + """Tests for auto-captured _cli_options via inspect.""" + + def test_cli_options_contains_all_init_args(self): + runner = EvaluationRunner(task_name="dummy_task") + opts = runner._cli_options + # All non-excluded init params should be present + expected_keys = { + "task_name", "agent_type", "output_dir", "data_dir", + "max_episodes", "llm_base_url", "agent_seed", "backend", + "model", "port", "llm_kwargs_raw", "max_retries", + } + assert set(opts.keys()) == expected_keys + + def test_cli_options_excludes_session_params(self): + runner = EvaluationRunner( + task_name="dummy_task", + resume_dir="/some/path", + redownload=True, + ) + assert "resume_dir" not in runner._cli_options + assert "redownload" not in runner._cli_options + + def test_cli_options_captures_raw_values(self): + """Values are captured before Path conversion.""" + runner = EvaluationRunner( + task_name="test_task", + agent_type="react", + output_dir="/custom/output", + data_dir="/custom/data", + backend="openai", + model="gpt-4o", + port=9090, + max_episodes=5, + max_retries=2, + ) + opts = runner._cli_options + assert opts["task_name"] == "test_task" + assert opts["agent_type"] == "react" + assert opts["output_dir"] == "/custom/output" + assert opts["data_dir"] == "/custom/data" + assert opts["backend"] == "openai" + assert opts["model"] == "gpt-4o" + assert opts["port"] == 9090 + assert opts["max_episodes"] == 5 + assert opts["max_retries"] == 2 + + def test_cli_options_defaults(self): + """Default values are captured correctly.""" + runner = EvaluationRunner(task_name="dummy_task") + opts = runner._cli_options + assert opts["agent_type"] == "react" + assert opts["output_dir"] == "./logs" + assert opts["data_dir"] == "./datasets" + assert opts["model"] == "default" + assert opts["port"] == 8080 + assert opts["max_retries"] == 3 + assert opts["max_episodes"] is None + assert opts["llm_base_url"] is None + assert opts["agent_seed"] is None + assert opts["backend"] is None + assert opts["llm_kwargs_raw"] is None + + def test_serialize_cli_options_converts_paths(self): + """Path objects in _cli_options are serialized to strings.""" + from pathlib import Path + runner = EvaluationRunner( + task_name="dummy_task", + output_dir=Path("/some/path"), + ) + serialized = runner._serialize_cli_options() + assert isinstance(serialized["output_dir"], str) + assert serialized["output_dir"] == "/some/path" + + def test_config_json_uses_cli_options(self, tmp_path): + """config.json cli_options matches _serialize_cli_options().""" + output_dir = tmp_path / "logs" + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=output_dir, + max_episodes=1, + model="test-model", + ) + runner.run() + + run_dir = _find_run_dir(output_dir) + config = json.loads((run_dir / "config.json").read_text()) + opts = config["cli_options"] + assert opts["task_name"] == "dummy_task" + assert opts["agent_type"] == "dummy" + assert opts["model"] == "test-model" + assert opts["max_episodes"] == 1 + # Session-specific params should NOT be in config + assert "resume_dir" not in opts + assert "redownload" not in opts From 2bce3b25614a796c458495af56d77a4ddb7e1b12 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 22:35:36 +0800 Subject: [PATCH 058/239] =?UTF-8?q?[Feat]=20Rename=20easi=20run=20?= =?UTF-8?q?=E2=86=92=20easi=20start=20with=20multi-task=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Accept multiple tasks via positional args or --tasks (comma-separated). Tasks run sequentially, each with its own EvaluationRunner instance. Combined summary printed after all tasks complete. --- CLAUDE.md | 3 +- easi/cli.py | 132 ++++++++++++++++++++++------------ tests/test_cli_llm_args.py | 18 ++--- tests/test_e2e_evaluation.py | 136 ++++++++++++++++++++++++++++------- 4 files changed, 210 insertions(+), 79 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 3157983..636c565 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -103,7 +103,8 @@ easi/ easi env list|install|check # Manage simulator environments easi task list|info|download # Manage tasks easi sim test # Smoke test a simulator -easi run --agent dummy|react # Run evaluation +easi start --agent dummy|react # Run evaluation (single task) +easi start --tasks t1,t2 --agent react # Run evaluation (multi-task) easi llm-server [--port PORT] # Start dummy LLM server ``` diff --git a/easi/cli.py b/easi/cli.py index fea5daf..7a9926e 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -4,6 +4,7 @@ easi env list|install|check easi task list|info|download easi sim test + easi start [ ...] [--tasks t1,t2] # Run evaluation easi llm-server [--port PORT] [--mode MODE] """ @@ -78,37 +79,39 @@ def build_parser() -> argparse.ArgumentParser: sim_test.add_argument("--timeout", type=float, default=200.0, help="Bridge startup timeout in seconds (default: 200)") - # --- run command --- - run_parser = subparsers.add_parser("run", help="Run a full evaluation", parents=[common]) + # --- start command --- + start_parser = subparsers.add_parser("start", help="Run a full evaluation", parents=[common]) # All defaults are None so resume logic can distinguish "user provided" from "default". # Real defaults live in EvaluationRunner.__init__. - run_parser.add_argument("task_name", type=str, nargs="?", default=None, metavar="task", - help="Task name (e.g., 'dummy_task', 'ebalfred_base'). " - "Optional when --resume is provided.") - run_parser.add_argument("--agent", type=str, default=None, choices=["dummy", "react"], - dest="agent_type") - run_parser.add_argument("--output-dir", type=str, default=None, - help="Base output directory (creates ///)") - run_parser.add_argument("--data-dir", type=str, default=None, - help="Directory for downloading/caching datasets (default: ./datasets)") - run_parser.add_argument("--max-episodes", type=int, default=None) - run_parser.add_argument("--llm-url", type=str, default=None, dest="llm_base_url", - help="LLM server URL") - run_parser.add_argument("--seed", type=int, default=None, dest="agent_seed") - run_parser.add_argument("--backend", type=str, default=None, - help="LLM backend: vllm, openai, anthropic, gemini, dummy") - run_parser.add_argument("--model", type=str, default=None, - help="Model name (HF path for vLLM, API name for proprietary)") - run_parser.add_argument("--port", type=int, default=None, - help="Port for local inference server (default: 8080)") - run_parser.add_argument("--llm-kwargs", type=str, default=None, dest="llm_kwargs_raw", - help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') - run_parser.add_argument("--max-retries", type=int, default=None, - help="Max LLM retry attempts on transient errors (default: 3)") - run_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", - help="Path to a previous run directory to resume from") - run_parser.add_argument("--redownload", action="store_true", - help="Delete cached dataset and re-download from source") + start_parser.add_argument("task_names_positional", type=str, nargs="*", default=None, metavar="task", + help="Task name(s) (e.g., 'dummy_task', 'ebalfred_base'). " + "Optional when --resume is provided.") + start_parser.add_argument("--tasks", type=str, default=None, dest="tasks_csv", + help="Comma-separated task names (e.g., 'ebalfred_base,ebnavigation_base')") + start_parser.add_argument("--agent", type=str, default=None, choices=["dummy", "react"], + dest="agent_type") + start_parser.add_argument("--output-dir", type=str, default=None, + help="Base output directory (creates ///)") + start_parser.add_argument("--data-dir", type=str, default=None, + help="Directory for downloading/caching datasets (default: ./datasets)") + start_parser.add_argument("--max-episodes", type=int, default=None) + start_parser.add_argument("--llm-url", type=str, default=None, dest="llm_base_url", + help="LLM server URL") + start_parser.add_argument("--seed", type=int, default=None, dest="agent_seed") + start_parser.add_argument("--backend", type=str, default=None, + help="LLM backend: vllm, openai, anthropic, gemini, dummy") + start_parser.add_argument("--model", type=str, default=None, + help="Model name (HF path for vLLM, API name for proprietary)") + start_parser.add_argument("--port", type=int, default=None, + help="Port for local inference server (default: 8080)") + start_parser.add_argument("--llm-kwargs", type=str, default=None, dest="llm_kwargs_raw", + help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') + start_parser.add_argument("--max-retries", type=int, default=None, + help="Max LLM retry attempts on transient errors (default: 3)") + start_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", + help="Path to a previous run directory to resume from") + start_parser.add_argument("--redownload", action="store_true", + help="Delete cached dataset and re-download from source") # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) @@ -296,16 +299,28 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: sys.exit(1) -def cmd_run(args): +def _resolve_task_list(args_ns) -> list[str]: + """Build task list from positional args and/or --tasks flag.""" + tasks: list[str] = [] + if args_ns.tasks_csv: + tasks = [t.strip() for t in args_ns.tasks_csv.split(",") if t.strip()] + elif args_ns.task_names_positional: + tasks = args_ns.task_names_positional + return tasks + + +def cmd_start(args): import json as _json from pathlib import Path from easi.evaluation.runner import EvaluationRunner + task_list = _resolve_task_list(args) + # Collect explicitly-provided CLI args (argparse defaults are None) raw = {k: v for k, v in vars(args).items() if v is not None} # Remove argparse internals that aren't runner params - for key in ("command", "verbosity"): + for key in ("command", "verbosity", "task_names_positional", "tasks_csv"): raw.pop(key, None) # Extract session-specific params (not saved in config.json) @@ -313,6 +328,9 @@ def cmd_run(args): redownload = raw.pop("redownload", False) if resume_dir: + if len(task_list) > 1: + logger.error("--resume cannot be used with multiple tasks.") + sys.exit(1) config_path = Path(resume_dir) / "config.json" if not config_path.exists(): logger.error("Resume directory has no config.json: %s", resume_dir) @@ -320,25 +338,49 @@ def cmd_run(args): saved = _json.loads(config_path.read_text()).get("cli_options", {}) # Saved values fill gaps; explicit CLI args win run_kwargs = {**saved, **raw} + # If no task was given on CLI, pull from saved config + if not task_list: + saved_task = saved.get("task_name") + if saved_task: + task_list = [saved_task] else: run_kwargs = raw - if not run_kwargs.get("task_name"): - logger.error("Task name is required. Provide it as a positional arg or use --resume.") + if not task_list: + logger.error("Task name is required. Provide it as a positional arg, --tasks, or use --resume.") sys.exit(1) - runner = EvaluationRunner( - **run_kwargs, - resume_dir=resume_dir, - redownload=redownload, - ) - results = runner.run() - logger.info("Completed %d episodes.", len(results)) + # Remove task_name from run_kwargs; it's passed per-task below + run_kwargs.pop("task_name", None) + from easi.evaluation.metrics import aggregate_metrics - summary = aggregate_metrics(results) - for key, value in summary.items(): - logger.info(" %s: %s", key, value) + all_summaries: list[tuple[str, dict]] = [] + + for task_name in task_list: + logger.info("=== Starting evaluation: %s ===", task_name) + runner = EvaluationRunner( + task_name=task_name, + **run_kwargs, + resume_dir=resume_dir, + redownload=redownload, + ) + results = runner.run() + logger.info("Completed %d episodes for %s.", len(results), task_name) + + summary = aggregate_metrics(results) + all_summaries.append((task_name, summary)) + for key, value in summary.items(): + logger.info(" %s: %s", key, value) + + # Combined summary when multiple tasks were evaluated + if len(all_summaries) > 1: + logger.info("") + logger.info("=== Combined Summary ===") + for task_name, summary in all_summaries: + logger.info("[%s]", task_name) + for key, value in summary.items(): + logger.info(" %s: %s", key, value) def cmd_llm_server(host: str, port: int, mode: str, action_space: list[str]) -> None: @@ -388,8 +430,8 @@ def main() -> None: else: parser.parse_args(["sim", "--help"]) - elif args.command == "run": - cmd_run(args) + elif args.command == "start": + cmd_start(args) elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/tests/test_cli_llm_args.py b/tests/test_cli_llm_args.py index 5a2ea8d..bae7940 100644 --- a/tests/test_cli_llm_args.py +++ b/tests/test_cli_llm_args.py @@ -7,44 +7,44 @@ class TestBuildParser: def test_run_has_backend_arg(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--backend", "vllm"]) + args = parser.parse_args(["start", "dummy_task", "--backend", "vllm"]) assert args.backend == "vllm" def test_run_backend_default_is_none(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) + args = parser.parse_args(["start", "dummy_task"]) assert args.backend is None def test_run_has_model_arg(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--model", "gpt-4o"]) + args = parser.parse_args(["start", "dummy_task", "--model", "gpt-4o"]) assert args.model == "gpt-4o" def test_run_model_default(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) + args = parser.parse_args(["start", "dummy_task"]) assert args.model is None def test_run_has_port_arg(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--port", "9090"]) + args = parser.parse_args(["start", "dummy_task", "--port", "9090"]) assert args.port == 9090 def test_run_port_default(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) + args = parser.parse_args(["start", "dummy_task"]) assert args.port is None def test_run_has_llm_kwargs(self): from easi.cli import build_parser parser = build_parser() args = parser.parse_args([ - "run", "dummy_task", + "start", "dummy_task", "--llm-kwargs", '{"tensor_parallel_size": 4}', ]) assert args.llm_kwargs_raw == '{"tensor_parallel_size": 4}' @@ -52,11 +52,11 @@ def test_run_has_llm_kwargs(self): def test_run_llm_kwargs_default_none(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) + args = parser.parse_args(["start", "dummy_task"]) assert args.llm_kwargs_raw is None def test_backward_compat_llm_url_still_works(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--llm-url", "http://localhost:8000"]) + args = parser.parse_args(["start", "dummy_task", "--llm-url", "http://localhost:8000"]) assert args.llm_base_url == "http://localhost:8000" diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index 5cdaa14..eaa8ea0 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -491,9 +491,9 @@ def fail_first_episode(*args, **kwargs): class TestResumeConfigLoading: def test_resume_loads_config_from_run_dir(self, tmp_path): - """cmd_run with --resume loads task_name and options from config.json.""" + """cmd_start with --resume loads task_name and options from config.json.""" from argparse import Namespace - from easi.cli import cmd_run + from easi.cli import cmd_start output_dir = tmp_path / "logs" @@ -512,9 +512,10 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): # Resume with higher max_episodes to complete remaining # Saved config has max_episodes=2; override to 3 to run all. args = Namespace( - command="run", + command="start", verbosity="INFO", - task_name=None, + task_names_positional=[], + tasks_csv=None, agent_type="dummy", output_dir=None, data_dir=None, @@ -529,7 +530,7 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): resume_dir=str(run_dir), redownload=False, ) - cmd_run(args) + cmd_start(args) # Should have completed all 3 episodes (2 from first run + 1 from resume) summary = json.loads((run_dir / "summary.json").read_text()) @@ -537,43 +538,45 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): class TestCLIParsing: - def test_cli_max_retries_default(self): + def test_cli_single_task_positional(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) - assert args.max_retries is None + args = parser.parse_args(["start", "dummy_task"]) + assert args.task_names_positional == ["dummy_task"] + assert args.tasks_csv is None - def test_cli_max_retries_custom(self): + def test_cli_multiple_tasks_positional(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--max-retries", "5"]) - assert args.max_retries == 5 + args = parser.parse_args(["start", "dummy_task", "ebalfred_base"]) + assert args.task_names_positional == ["dummy_task", "ebalfred_base"] - def test_cli_resume_default(self): + def test_cli_tasks_flag_csv(self): from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) - assert args.resume_dir is None + args = parser.parse_args(["start", "--tasks", "dummy_task,ebalfred_base"]) + assert args.tasks_csv == "dummy_task,ebalfred_base" - def test_cli_resume_custom(self): - from easi.cli import build_parser - parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--resume", "/tmp/logs/run_123"]) - assert args.resume_dir == "/tmp/logs/run_123" + def test_cli_tasks_flag_wins_over_positional(self): + from easi.cli import _resolve_task_list + from argparse import Namespace + args = Namespace( + task_names_positional=["dummy_task"], + tasks_csv="ebalfred_base,ebnavigation_base", + ) + assert _resolve_task_list(args) == ["ebalfred_base", "ebnavigation_base"] def test_cli_resume_without_task(self): - """--resume should work without specifying a task name.""" from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "--resume", "/tmp/logs/run_123"]) + args = parser.parse_args(["start", "--resume", "/tmp/logs/run_123"]) assert args.resume_dir == "/tmp/logs/run_123" - assert args.task_name is None + assert args.task_names_positional == [] def test_cli_all_defaults_are_none(self): - """All argparse defaults should be None (real defaults in __init__).""" from easi.cli import build_parser parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) + args = parser.parse_args(["start", "dummy_task"]) assert args.agent_type is None assert args.output_dir is None assert args.data_dir is None @@ -583,3 +586,88 @@ def test_cli_all_defaults_are_none(self): assert args.llm_base_url is None assert args.agent_seed is None assert args.llm_kwargs_raw is None + + def test_cli_max_retries_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task"]) + assert args.max_retries is None + + def test_cli_max_retries_custom(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task", "--max-retries", "5"]) + assert args.max_retries == 5 + + def test_cli_resume_default(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task"]) + assert args.resume_dir is None + + def test_cli_resume_custom(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task", "--resume", "/tmp/logs/run_123"]) + assert args.resume_dir == "/tmp/logs/run_123" + + +class TestMultiTaskRun: + def test_sequential_single_task_via_flag(self, tmp_path): + """Run a single task via --tasks flag.""" + from argparse import Namespace + from easi.cli import cmd_start + + output_dir = tmp_path / "logs" + args = Namespace( + command="start", + verbosity="INFO", + task_names_positional=[], + tasks_csv="dummy_task", + agent_type="dummy", + output_dir=str(output_dir), + data_dir=None, + max_episodes=1, + llm_base_url=None, + agent_seed=None, + backend=None, + model=None, + port=None, + llm_kwargs_raw=None, + max_retries=None, + resume_dir=None, + redownload=False, + ) + cmd_start(args) + + task_dir = output_dir / "dummy_task" + assert task_dir.exists() + run_dirs = list(task_dir.iterdir()) + assert len(run_dirs) == 1 + + def test_resume_blocked_with_multi_task(self): + """--resume with multiple tasks should fail.""" + from argparse import Namespace + from easi.cli import cmd_start + + args = Namespace( + command="start", + verbosity="INFO", + task_names_positional=[], + tasks_csv="dummy_task,ebalfred_base", + agent_type="dummy", + output_dir="./logs", + data_dir=None, + max_episodes=1, + llm_base_url=None, + agent_seed=None, + backend=None, + model=None, + port=None, + llm_kwargs_raw=None, + max_retries=None, + resume_dir="/tmp/some/path", + redownload=False, + ) + with pytest.raises(SystemExit): + cmd_start(args) From e20305aa2e5442ee3694a803065fc3eef5cfb7ff Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 22:51:52 +0800 Subject: [PATCH 059/239] [Feat] Stream vLLM server output through TRACE logger instead of log file Server stdout/stderr is now piped to a background thread that logs each line at TRACE level. No more separate .log file. Error messages now suggest --verbosity TRACE to diagnose startup failures. --- easi/llm/server_manager.py | 44 ++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index d5a62ab..0e70f02 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -7,6 +7,7 @@ import socket import subprocess import sys +import threading import time from pathlib import Path @@ -30,16 +31,15 @@ def __init__( port: int = 8080, server_kwargs: dict | None = None, startup_timeout: float = _DEFAULT_STARTUP_TIMEOUT, - log_dir: Path | None = None, + log_dir: Path | None = None, # Deprecated: server output now goes to logger ): self.backend = backend self.model = model self.port = port self.server_kwargs = server_kwargs or {} self.startup_timeout = startup_timeout - self.log_dir = log_dir self._process: subprocess.Popen | None = None - self._log_file = None + self._log_thread: threading.Thread | None = None def start(self) -> str: """Start the server, wait for health, return base_url.""" @@ -48,17 +48,17 @@ def start(self) -> str: cmd = self._build_command() logger.info("Starting %s server: %s", self.backend, " ".join(cmd)) - if self.log_dir: - self.log_dir.mkdir(parents=True, exist_ok=True) - log_path = self.log_dir / f"{self.backend}_server.log" - self._log_file = open(log_path, "w") - logger.info("Server logs: %s", log_path) - self._process = subprocess.Popen( cmd, - stdout=self._log_file or subprocess.DEVNULL, - stderr=self._log_file or subprocess.DEVNULL, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + ) + self._log_thread = threading.Thread( + target=self._stream_output, + args=(self._process,), + daemon=True, ) + self._log_thread.start() base_url = f"http://localhost:{self.port}/v1" self._wait_for_health(base_url) @@ -77,9 +77,9 @@ def stop(self) -> None: self._process.kill() self._process.wait(timeout=10) self._process = None - if self._log_file is not None: - self._log_file.close() - self._log_file = None + if self._log_thread is not None: + self._log_thread.join(timeout=5) + self._log_thread = None def is_running(self) -> bool: """Check if server process is alive.""" @@ -116,6 +116,15 @@ def _build_command(self) -> list[str]: else: raise ValueError(f"Unsupported server backend: {self.backend}") + @staticmethod + def _stream_output(proc: subprocess.Popen) -> None: + """Read server stdout/stderr line by line and log at TRACE level.""" + for raw_line in proc.stdout: + line = raw_line.decode("utf-8", errors="replace").rstrip() + if line: + logger.trace("[server] %s", line) + proc.stdout.close() + def _wait_for_health(self, base_url: str) -> None: """Poll /health until the server responds or timeout.""" health_url = base_url.replace("/v1", "") + "/health" @@ -125,7 +134,7 @@ def _wait_for_health(self, base_url: str) -> None: if self._process and self._process.poll() is not None: raise RuntimeError( f"{self.backend} server exited with code {self._process.returncode}. " - f"Check server logs for details." + f"Run with --verbosity TRACE to see server output." ) try: resp = requests.get(health_url, timeout=5) @@ -137,12 +146,9 @@ def _wait_for_health(self, base_url: str) -> None: time.sleep(_HEALTH_POLL_INTERVAL) self.stop() - log_hint = "" - if self.log_dir: - log_hint = f" Check logs at {self.log_dir / f'{self.backend}_server.log'}" raise RuntimeError( f"{self.backend} server failed to start within " - f"{self.startup_timeout}s.{log_hint}" + f"{self.startup_timeout}s. Run with --verbosity TRACE to see server output." ) def __enter__(self) -> str: From 1751b21c7308d9f0b4147f07cd20a850213198b1 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 22:54:41 +0800 Subject: [PATCH 060/239] [Chore] Updated pyproject.toml --- pyproject.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 12a51c4..cdf7f79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,8 @@ dependencies = [ "pyyaml>=6.0", "datasets>=2.0.0", "huggingface_hub>=0.19.0", + "litellm>=1.40", + "vllm" ] [project.optional-dependencies] @@ -20,9 +22,6 @@ dev = [ "pytest>=7.0", "pytest-timeout>=2.0", ] -llm = [ - "litellm>=1.40", -] [project.scripts] easi = "easi.cli:main" From 22bfe0b496418f7c4ac3c7730c7c93ce1d5720fa Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 19 Feb 2026 23:19:19 +0800 Subject: [PATCH 061/239] [Fix] Route trust_remote_code and other vLLM flags to server kwargs - Add trust_remote_code, tokenizer_mode, seed, max_num_seqs, disable_log_requests, limit_mm_per_prompt to _SERVER_KWARGS set - Handle boolean kwargs as bare flags (--trust-remote-code) instead of --trust-remote-code True which vLLM rejects --- easi/llm/server_manager.py | 7 ++++++- easi/llm/utils.py | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 0e70f02..a9dc8a6 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -111,7 +111,12 @@ def _build_command(self) -> list[str]: ] for key, value in self.server_kwargs.items(): flag = "--" + key.replace("_", "-") - cmd.extend([flag, str(value)]) + if isinstance(value, bool): + if value: + cmd.append(flag) + # Skip False booleans (don't add the flag) + else: + cmd.extend([flag, str(value)]) return cmd else: raise ValueError(f"Unsupported server backend: {self.backend}") diff --git a/easi/llm/utils.py b/easi/llm/utils.py index 296eab7..baf0745 100644 --- a/easi/llm/utils.py +++ b/easi/llm/utils.py @@ -30,6 +30,12 @@ "quantization", "enforce_eager", "enable_prefix_caching", + "trust_remote_code", + "tokenizer_mode", + "seed", + "max_num_seqs", + "disable_log_requests", + "limit_mm_per_prompt", } From 4fad44b09e17dcc5ba24d512267ce230e364d082 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 00:21:37 +0800 Subject: [PATCH 062/239] [Fix] Fixed vllm and transformers version --- pyproject.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cdf7f79..e94d463 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,6 @@ dependencies = [ "datasets>=2.0.0", "huggingface_hub>=0.19.0", "litellm>=1.40", - "vllm" ] [project.optional-dependencies] @@ -22,6 +21,10 @@ dev = [ "pytest>=7.0", "pytest-timeout>=2.0", ] +vllm = [ + "vllm>=0.15.1", + "transformers>=4.40.0,<5.0" +] [project.scripts] easi = "easi.cli:main" From 605f4e8311297371adf6ff3f442f66eb2a9cb626 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 03:10:32 +0800 Subject: [PATCH 063/239] [Feat] Add parallel evaluation runner with --num-parallel flag - Add --num-parallel CLI arg to easi start for concurrent episode execution - Create ParallelRunner class using ThreadPoolExecutor + work-stealing queue - Each worker thread owns its own simulator subprocess + agent + LLM client - Thread-safe progress tracking with [Progress] X/Y logging - Rejects --resume and local vLLM with NotImplementedError - Records num_parallel and wall_clock_seconds in config/summary JSON - Extensive TRACE-level logging for debugging parallel flow --- easi/cli.py | 28 ++- easi/evaluation/parallel_runner.py | 295 +++++++++++++++++++++++++++++ tests/test_parallel_runner.py | 156 +++++++++++++++ 3 files changed, 473 insertions(+), 6 deletions(-) create mode 100644 easi/evaluation/parallel_runner.py create mode 100644 tests/test_parallel_runner.py diff --git a/easi/cli.py b/easi/cli.py index 7a9926e..644ab25 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -108,6 +108,9 @@ def build_parser() -> argparse.ArgumentParser: help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') start_parser.add_argument("--max-retries", type=int, default=None, help="Max LLM retry attempts on transient errors (default: 3)") + start_parser.add_argument("--num-parallel", type=int, default=None, dest="num_parallel", + help="Number of parallel simulator instances (default: 1, sequential). " + "Only supported with proprietary API backends (openai, anthropic, gemini).") start_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", help="Path to a previous run directory to resume from") start_parser.add_argument("--redownload", action="store_true", @@ -352,6 +355,7 @@ def cmd_start(args): # Remove task_name from run_kwargs; it's passed per-task below run_kwargs.pop("task_name", None) + num_parallel = run_kwargs.pop("num_parallel", None) or 1 from easi.evaluation.metrics import aggregate_metrics @@ -359,12 +363,24 @@ def cmd_start(args): for task_name in task_list: logger.info("=== Starting evaluation: %s ===", task_name) - runner = EvaluationRunner( - task_name=task_name, - **run_kwargs, - resume_dir=resume_dir, - redownload=redownload, - ) + + if num_parallel > 1: + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name=task_name, + num_parallel=num_parallel, + **run_kwargs, + resume_dir=resume_dir, + redownload=redownload, + ) + else: + runner = EvaluationRunner( + task_name=task_name, + **run_kwargs, + resume_dir=resume_dir, + redownload=redownload, + ) + results = runner.run() logger.info("Completed %d episodes for %s.", len(results), task_name) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py new file mode 100644 index 0000000..f006ce5 --- /dev/null +++ b/easi/evaluation/parallel_runner.py @@ -0,0 +1,295 @@ +"""Thread-pool based parallel evaluation runner. + +Extends EvaluationRunner with concurrent episode execution: +1. Load task once (shared read-only across workers) +2. Fill a queue with (index, episode) tuples +3. Launch N worker threads, each with its own simulator + agent +4. Workers pull episodes from the queue and run them via inherited _run_episode() +5. Collect results thread-safely, aggregate metrics, save summary +""" + +from __future__ import annotations + +import json +import queue +import threading +import time +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path + +from easi.evaluation.metrics import aggregate_metrics +from easi.evaluation.runner import EvaluationRunner, _sanitize_dirname +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ParallelRunner(EvaluationRunner): + """Thread-pool based parallel evaluation runner. + + Each worker thread owns its own simulator and agent instance. + Episodes are distributed via a shared queue. + """ + + def __init__(self, *, num_parallel: int = 2, **kwargs): + super().__init__(**kwargs) + self.num_parallel = num_parallel + + def _serialize_cli_options(self) -> dict: + """Add num_parallel to the serialized config.""" + base = super()._serialize_cli_options() + base["num_parallel"] = self.num_parallel + return base + + def run(self) -> list[dict]: + """Run evaluation with thread-pool parallelism.""" + logger.trace( + "ParallelRunner.run() called: task=%s, num_parallel=%d", + self.task_name, self.num_parallel, + ) + + # --- Guard: no resume support --- + if self.resume_dir: + raise NotImplementedError( + "ParallelRunner does not support --resume. " + "Use the sequential EvaluationRunner for resume." + ) + + # --- Guard: no local vLLM --- + backend, base_url = self._resolve_llm_backend() + if backend == "vllm" and base_url is None: + raise NotImplementedError( + "ParallelRunner does not support local vLLM server management. " + "Start vLLM externally and pass --llm-url." + ) + + # --- Phase 1: Load task --- + logger.trace("Phase 1: Loading task") + task = self._create_task() + if self.redownload: + task.download_dataset(force=True) + episodes = task.load_episodes() + if self.max_episodes is not None: + episodes = episodes[: self.max_episodes] + logger.trace( + "Phase 1: Task loaded. %d episodes, simulator_key=%s", + len(episodes), task.simulator_key, + ) + + # --- Phase 2: Resolve LLM backend --- + logger.trace("Phase 2: Resolved LLM backend=%s, base_url=%s", backend, base_url) + + # Compute resolved generation kwargs (YAML defaults + CLI overrides) + from easi.llm.utils import parse_llm_kwargs, split_kwargs + + agent_config = task._config.get("agent", {}) + yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) + all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) + resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} + + # --- Phase 3: Create output directory and save config --- + logger.trace("Phase 3: Creating output directory and saving config") + run_dir = self.output_dir / self.task_name / self.run_id + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True, exist_ok=True) + + config = { + "run_id": self.run_id, + "total_episodes": len(episodes), + "num_parallel": self.num_parallel, + "cli_options": self._serialize_cli_options(), + "resolved_backend": backend, + "resolved_base_url": base_url, + "resolved_generation_kwargs": resolved_gen_kwargs, + "task_config": task._config, + } + (run_dir / "config.json").write_text(json.dumps(config, indent=2)) + logger.trace("Run config:\n%s", json.dumps(config, indent=2, default=str)) + + # --- Phase 4: Fill episode queue --- + logger.trace("Phase 4: Filling episode queue with %d episodes", len(episodes)) + episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() + for i, episode in enumerate(episodes): + episode_queue.put((i, episode)) + + # --- Phase 5: Prepare thread-safe collection --- + results_lock = threading.Lock() + results_list: list[tuple[int, dict]] = [] + progress = {"completed": 0, "failed": 0} + progress_lock = threading.Lock() + total_episodes = len(episodes) + + num_workers = min(self.num_parallel, len(episodes)) + + def _worker(worker_id: int) -> None: + """Worker thread: owns a simulator + agent, pulls episodes from queue.""" + logger.trace("[Worker %d] Starting up", worker_id) + episodes_done = 0 + + # Create simulator + logger.trace( + "[Worker %d] Creating simulator (key=%s)", + worker_id, task.simulator_key, + ) + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + logger.trace( + "[Worker %d] Simulator ready (PID=%s)", + worker_id, + getattr(sim_runner, 'pid', 'unknown'), + ) + + # Create agent + logger.trace("[Worker %d] Creating agent", worker_id) + agent = self._create_agent( + task.action_space, task._config, + backend=backend, base_url=base_url, + ) + logger.trace("[Worker %d] Agent ready", worker_id) + + try: + while True: + # Pull next episode + try: + idx, episode = episode_queue.get_nowait() + except queue.Empty: + break + + logger.trace( + "[Worker %d] Queue remaining: ~%d", + worker_id, episode_queue.qsize(), + ) + + episode_id = episode.get("episode_id", f"ep_{idx}") + episode_dir = episodes_dir / f"{idx:03d}_{_sanitize_dirname(episode_id)}" + episode_dir.mkdir(exist_ok=True) + + result = None + for attempt in range(1, self.max_retries + 1): + logger.trace( + "[Worker %d] Running episode %s (attempt %d/%d)", + worker_id, episode_id, attempt, self.max_retries, + ) + try: + result = self._run_episode( + sim, agent, task, episode, idx, episode_dir, + ) + logger.trace( + "[Worker %d] Episode %s completed in %.1fs: %s", + worker_id, episode_id, + result.get("elapsed_seconds", 0), + {k: v for k, v in result.items() + if k in ("success", "num_steps", "elapsed_seconds")}, + ) + break + except Exception as exc: + logger.warning( + "[Worker %d] Episode %s attempt %d/%d failed: %s", + worker_id, episode_id, attempt, self.max_retries, exc, + ) + logger.trace( + "[Worker %d] Exception details:", + worker_id, exc_info=True, + ) + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info( + "[Worker %d] Re-launching simulator for retry...", + worker_id, + ) + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "[Worker %d] Episode %s failed after %d attempts, skipping", + worker_id, episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + + # Save per-episode result + (episode_dir / "result.json").write_text( + json.dumps(result, indent=2) + ) + + # Thread-safe results collection + failed = "error" in result + with results_lock: + results_list.append((idx, result)) + + with progress_lock: + progress["completed"] += 1 + if failed: + progress["failed"] += 1 + current_completed = progress["completed"] + current_failed = progress["failed"] + + logger.info( + "[Progress] %d/%d episodes completed (%d failed)", + current_completed, total_episodes, current_failed, + ) + + episodes_done += 1 + + finally: + logger.trace("[Worker %d] Shutting down simulator", worker_id) + try: + sim.close() + except Exception: + pass + logger.trace( + "[Worker %d] Shutdown complete (%d episodes done)", + worker_id, episodes_done, + ) + + # --- Phase 6: Launch worker threads --- + logger.trace("Phase 6: Launching %d worker threads", num_workers) + wall_start = time.monotonic() + + with ThreadPoolExecutor(max_workers=num_workers) as executor: + futures = [] + for wid in range(num_workers): + futures.append(executor.submit(_worker, wid)) + logger.trace("All %d worker threads submitted", num_workers) + + # Wait for all workers to complete and propagate exceptions + for future in futures: + future.result() + + wall_seconds = round(time.monotonic() - wall_start, 2) + + # --- Phase 7: Sort results and aggregate --- + results_list.sort(key=lambda x: x[0]) + all_results = [r for _, r in results_list] + + num_successful = sum(1 for r in all_results if "error" not in r) + num_failed = len(all_results) - num_successful + logger.trace( + "Phase 7: Results sorted. %d successful, %d failed", + num_successful, num_failed, + ) + + # Aggregate and save summary + summary = aggregate_metrics(all_results) + summary["num_parallel"] = self.num_parallel + summary["wall_clock_seconds"] = wall_seconds + if backend and backend != "legacy": + summary["llm_usage"] = self._aggregate_llm_usage(all_results) + summary["model"] = self.model + summary["backend"] = backend + (run_dir / "summary.json").write_text(json.dumps(summary, indent=2)) + logger.info("Results saved to: %s", run_dir) + logger.info("Summary: %s", summary) + + return all_results diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py new file mode 100644 index 0000000..ab75a09 --- /dev/null +++ b/tests/test_parallel_runner.py @@ -0,0 +1,156 @@ +"""Tests for ParallelRunner — parallel episode evaluation.""" +import json +import pytest + + +class TestParallelRunnerInit: + """Test ParallelRunner construction and validation.""" + + def test_inherits_evaluation_runner(self): + from easi.evaluation.parallel_runner import ParallelRunner + from easi.evaluation.runner import EvaluationRunner + assert issubclass(ParallelRunner, EvaluationRunner) + + def test_num_parallel_stored(self): + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name="dummy_task", num_parallel=4, + agent_type="dummy", + ) + assert runner.num_parallel == 4 + + def test_defaults_to_2_workers(self): + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name="dummy_task", + agent_type="dummy", + ) + assert runner.num_parallel == 2 + + +class TestParallelRunnerValidation: + """Test that unsupported configs are rejected.""" + + def test_resume_raises_not_implemented(self, tmp_path): + from easi.evaluation.parallel_runner import ParallelRunner + resume_dir = tmp_path / "fake_run" + resume_dir.mkdir() + (resume_dir / "config.json").write_text('{"cli_options": {}}') + + runner = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", resume_dir=str(resume_dir), + ) + with pytest.raises(NotImplementedError, match="does not support --resume"): + runner.run() + + def test_local_vllm_raises_not_implemented(self, tmp_path): + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="react", backend="vllm", + model="some-model", output_dir=str(tmp_path), + ) + with pytest.raises(NotImplementedError, match="does not support local vLLM"): + runner.run() + + +class TestParallelRunnerWithDummy: + """Integration test: parallel run with dummy agent + dummy simulator.""" + + def test_parallel_dummy_produces_results(self, tmp_path): + """Run dummy_task with 2 workers, verify all episodes complete.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner = ParallelRunner( + task_name="dummy_task", + num_parallel=2, + agent_type="dummy", + output_dir=str(tmp_path), + max_episodes=3, + ) + results = runner.run() + + # All 3 episodes should complete + assert len(results) == 3 + + # Results should be in episode order (sorted by index) + episode_ids = [r["episode_id"] for r in results] + # dummy_task episodes have sequential ids + assert len(set(episode_ids)) == 3 # all unique + + # Summary should exist with parallel-specific fields + run_dirs = list((tmp_path / "dummy_task").iterdir()) + assert len(run_dirs) == 1 + summary_path = run_dirs[0] / "summary.json" + assert summary_path.exists() + summary = json.loads(summary_path.read_text()) + assert summary["num_parallel"] == 2 + assert "wall_clock_seconds" in summary + + def test_parallel_single_episode(self, tmp_path): + """With 1 episode and 2 workers, only 1 worker should do work.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner = ParallelRunner( + task_name="dummy_task", + num_parallel=2, + agent_type="dummy", + output_dir=str(tmp_path), + max_episodes=1, + ) + results = runner.run() + assert len(results) == 1 + + def test_config_json_records_num_parallel(self, tmp_path): + """config.json should include num_parallel.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner = ParallelRunner( + task_name="dummy_task", + num_parallel=3, + agent_type="dummy", + output_dir=str(tmp_path), + max_episodes=1, + ) + runner.run() + + run_dirs = list((tmp_path / "dummy_task").iterdir()) + config = json.loads((run_dirs[0] / "config.json").read_text()) + assert config["num_parallel"] == 3 + + def test_episode_dirs_created(self, tmp_path): + """Each episode should get its own directory with result.json.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner = ParallelRunner( + task_name="dummy_task", + num_parallel=2, + agent_type="dummy", + output_dir=str(tmp_path), + max_episodes=2, + ) + runner.run() + + run_dirs = list((tmp_path / "dummy_task").iterdir()) + episodes_dir = run_dirs[0] / "episodes" + episode_dirs = sorted(episodes_dir.iterdir()) + assert len(episode_dirs) == 2 + for ed in episode_dirs: + assert (ed / "result.json").exists() + + +class TestCLIParallelArg: + """Test --num-parallel CLI argument parsing.""" + + def test_num_parallel_parsed(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task", "--num-parallel", "4"]) + assert args.num_parallel == 4 + + def test_num_parallel_default_is_none(self): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["start", "dummy_task"]) + assert args.num_parallel is None From d522a1071e5d8a95314b0621435d38c919c0b6d3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 03:38:48 +0800 Subject: [PATCH 064/239] [Fix] Unify resume logic for sequential and parallel runners Refactor _load_completed_results() to scan episode dirs in ascending order, find the first incomplete episode, and clear from that point. Both sequential and parallel runners now share the same resume logic. Previously the sequential runner always dropped the last complete episode, and parallel runner didn't support resume at all. --- easi/evaluation/parallel_runner.py | 328 +++++++++++++++-------------- easi/evaluation/runner.py | 224 ++++++++++++-------- tests/test_e2e_evaluation.py | 24 +-- tests/test_parallel_runner.py | 86 ++++++-- 4 files changed, 389 insertions(+), 273 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index f006ce5..622c15a 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -48,13 +48,6 @@ def run(self) -> list[dict]: self.task_name, self.num_parallel, ) - # --- Guard: no resume support --- - if self.resume_dir: - raise NotImplementedError( - "ParallelRunner does not support --resume. " - "Use the sequential EvaluationRunner for resume." - ) - # --- Guard: no local vLLM --- backend, base_url = self._resolve_llm_backend() if backend == "vllm" and base_url is None: @@ -76,7 +69,7 @@ def run(self) -> list[dict]: len(episodes), task.simulator_key, ) - # --- Phase 2: Resolve LLM backend --- + # --- Phase 2: Resolve LLM backend + handle resume --- logger.trace("Phase 2: Resolved LLM backend=%s, base_url=%s", backend, base_url) # Compute resolved generation kwargs (YAML defaults + CLI overrides) @@ -88,9 +81,23 @@ def run(self) -> list[dict]: _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} + # Handle resume + if self.resume_dir: + run_dir = self.resume_dir + completed_results, start_index = self._load_completed_results( + run_dir, len(episodes), + ) + logger.info( + "Resuming from %s — %d completed, starting from index %d", + run_dir, len(completed_results), start_index, + ) + else: + run_dir = self.output_dir / self.task_name / self.run_id + completed_results = [] + start_index = 0 + # --- Phase 3: Create output directory and save config --- logger.trace("Phase 3: Creating output directory and saving config") - run_dir = self.output_dir / self.task_name / self.run_id episodes_dir = run_dir / "episodes" episodes_dir.mkdir(parents=True, exist_ok=True) @@ -107,167 +114,182 @@ def run(self) -> list[dict]: (run_dir / "config.json").write_text(json.dumps(config, indent=2)) logger.trace("Run config:\n%s", json.dumps(config, indent=2, default=str)) - # --- Phase 4: Fill episode queue --- - logger.trace("Phase 4: Filling episode queue with %d episodes", len(episodes)) - episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() - for i, episode in enumerate(episodes): - episode_queue.put((i, episode)) - - # --- Phase 5: Prepare thread-safe collection --- - results_lock = threading.Lock() - results_list: list[tuple[int, dict]] = [] - progress = {"completed": 0, "failed": 0} - progress_lock = threading.Lock() - total_episodes = len(episodes) - - num_workers = min(self.num_parallel, len(episodes)) - - def _worker(worker_id: int) -> None: - """Worker thread: owns a simulator + agent, pulls episodes from queue.""" - logger.trace("[Worker %d] Starting up", worker_id) - episodes_done = 0 - - # Create simulator - logger.trace( - "[Worker %d] Creating simulator (key=%s)", - worker_id, task.simulator_key, - ) - sim, sim_runner = self._create_simulator(task.simulator_key, task=task) - logger.trace( - "[Worker %d] Simulator ready (PID=%s)", - worker_id, - getattr(sim_runner, 'pid', 'unknown'), - ) - - # Create agent - logger.trace("[Worker %d] Creating agent", worker_id) - agent = self._create_agent( - task.action_space, task._config, - backend=backend, base_url=base_url, - ) - logger.trace("[Worker %d] Agent ready", worker_id) - - try: - while True: - # Pull next episode - try: - idx, episode = episode_queue.get_nowait() - except queue.Empty: - break + # Check if all episodes already complete (resume edge case) + if start_index >= len(episodes): + logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) + all_results = completed_results + # Skip to aggregation (Phase 7) + wall_seconds = 0.0 + results_list = [(i, r) for i, r in enumerate(all_results)] + else: + # --- Phase 4: Fill episode queue (from start_index) --- + episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() + for i, episode in enumerate(episodes): + if i >= start_index: + episode_queue.put((i, episode)) + remaining = episode_queue.qsize() + logger.trace("Phase 4: Queued %d episodes (skipped %d completed)", remaining, start_index) + + # --- Phase 5: Prepare thread-safe collection --- + results_lock = threading.Lock() + new_results: list[tuple[int, dict]] = [] + progress = {"completed": 0, "failed": 0} + progress_lock = threading.Lock() + total_episodes = len(episodes) + + num_workers = min(self.num_parallel, remaining) + + def _worker(worker_id: int) -> None: + """Worker thread: owns a simulator + agent, pulls episodes from queue.""" + logger.trace("[Worker %d] Starting up", worker_id) + episodes_done = 0 + + # Create simulator + logger.trace( + "[Worker %d] Creating simulator (key=%s)", + worker_id, task.simulator_key, + ) + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + logger.trace( + "[Worker %d] Simulator ready (PID=%s)", + worker_id, + getattr(sim_runner, 'pid', 'unknown'), + ) - logger.trace( - "[Worker %d] Queue remaining: ~%d", - worker_id, episode_queue.qsize(), - ) + # Create agent + logger.trace("[Worker %d] Creating agent", worker_id) + agent = self._create_agent( + task.action_space, task._config, + backend=backend, base_url=base_url, + ) + logger.trace("[Worker %d] Agent ready", worker_id) - episode_id = episode.get("episode_id", f"ep_{idx}") - episode_dir = episodes_dir / f"{idx:03d}_{_sanitize_dirname(episode_id)}" - episode_dir.mkdir(exist_ok=True) + try: + while True: + # Pull next episode + try: + idx, episode = episode_queue.get_nowait() + except queue.Empty: + break - result = None - for attempt in range(1, self.max_retries + 1): logger.trace( - "[Worker %d] Running episode %s (attempt %d/%d)", - worker_id, episode_id, attempt, self.max_retries, + "[Worker %d] Queue remaining: ~%d", + worker_id, episode_queue.qsize(), ) - try: - result = self._run_episode( - sim, agent, task, episode, idx, episode_dir, - ) - logger.trace( - "[Worker %d] Episode %s completed in %.1fs: %s", - worker_id, episode_id, - result.get("elapsed_seconds", 0), - {k: v for k, v in result.items() - if k in ("success", "num_steps", "elapsed_seconds")}, - ) - break - except Exception as exc: - logger.warning( - "[Worker %d] Episode %s attempt %d/%d failed: %s", - worker_id, episode_id, attempt, self.max_retries, exc, - ) + + episode_id = episode.get("episode_id", f"ep_{idx}") + episode_dir = episodes_dir / f"{idx:03d}_{_sanitize_dirname(episode_id)}" + episode_dir.mkdir(exist_ok=True) + + result = None + for attempt in range(1, self.max_retries + 1): logger.trace( - "[Worker %d] Exception details:", - worker_id, exc_info=True, + "[Worker %d] Running episode %s (attempt %d/%d)", + worker_id, episode_id, attempt, self.max_retries, ) - self._clear_episode_dir(episode_dir) - if attempt < self.max_retries: - logger.info( - "[Worker %d] Re-launching simulator for retry...", - worker_id, + try: + result = self._run_episode( + sim, agent, task, episode, idx, episode_dir, ) - try: - sim.close() - except Exception: - pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, + logger.trace( + "[Worker %d] Episode %s completed in %.1fs: %s", + worker_id, episode_id, + result.get("elapsed_seconds", 0), + {k: v for k, v in result.items() + if k in ("success", "num_steps", "elapsed_seconds")}, ) - else: - logger.error( - "[Worker %d] Episode %s failed after %d attempts, skipping", - worker_id, episode_id, self.max_retries, + break + except Exception as exc: + logger.warning( + "[Worker %d] Episode %s attempt %d/%d failed: %s", + worker_id, episode_id, attempt, self.max_retries, exc, ) - result = { - "episode_id": episode_id, - "instruction": task.get_instruction(episode), - "success": 0.0, - "num_steps": 0, - "elapsed_seconds": 0.0, - "error": str(exc), - } - - # Save per-episode result - (episode_dir / "result.json").write_text( - json.dumps(result, indent=2) - ) + logger.trace( + "[Worker %d] Exception details:", + worker_id, exc_info=True, + ) + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info( + "[Worker %d] Re-launching simulator for retry...", + worker_id, + ) + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "[Worker %d] Episode %s failed after %d attempts, skipping", + worker_id, episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + + # Save per-episode result + (episode_dir / "result.json").write_text( + json.dumps(result, indent=2) + ) - # Thread-safe results collection - failed = "error" in result - with results_lock: - results_list.append((idx, result)) - - with progress_lock: - progress["completed"] += 1 - if failed: - progress["failed"] += 1 - current_completed = progress["completed"] - current_failed = progress["failed"] - - logger.info( - "[Progress] %d/%d episodes completed (%d failed)", - current_completed, total_episodes, current_failed, - ) + # Thread-safe results collection + failed = "error" in result + with results_lock: + new_results.append((idx, result)) + + with progress_lock: + progress["completed"] += 1 + if failed: + progress["failed"] += 1 + current_completed = progress["completed"] + start_index + current_failed = progress["failed"] + + logger.info( + "[Progress] %d/%d episodes completed (%d failed)", + current_completed, total_episodes, current_failed, + ) - episodes_done += 1 + episodes_done += 1 - finally: - logger.trace("[Worker %d] Shutting down simulator", worker_id) - try: - sim.close() - except Exception: - pass - logger.trace( - "[Worker %d] Shutdown complete (%d episodes done)", - worker_id, episodes_done, - ) + finally: + logger.trace("[Worker %d] Shutting down simulator", worker_id) + try: + sim.close() + except Exception: + pass + logger.trace( + "[Worker %d] Shutdown complete (%d episodes done)", + worker_id, episodes_done, + ) + + # --- Phase 6: Launch worker threads --- + logger.trace("Phase 6: Launching %d worker threads", num_workers) + wall_start = time.monotonic() - # --- Phase 6: Launch worker threads --- - logger.trace("Phase 6: Launching %d worker threads", num_workers) - wall_start = time.monotonic() + with ThreadPoolExecutor(max_workers=num_workers) as executor: + futures = [] + for wid in range(num_workers): + futures.append(executor.submit(_worker, wid)) + logger.trace("All %d worker threads submitted", num_workers) - with ThreadPoolExecutor(max_workers=num_workers) as executor: - futures = [] - for wid in range(num_workers): - futures.append(executor.submit(_worker, wid)) - logger.trace("All %d worker threads submitted", num_workers) + # Wait for all workers to complete and propagate exceptions + for future in futures: + future.result() - # Wait for all workers to complete and propagate exceptions - for future in futures: - future.result() + wall_seconds = round(time.monotonic() - wall_start, 2) - wall_seconds = round(time.monotonic() - wall_start, 2) + # Merge completed results from resume with new results + new_results.sort(key=lambda x: x[0]) + results_list = [(i, r) for i, r in enumerate(completed_results)] + results_list.extend(new_results) # --- Phase 7: Sort results and aggregate --- results_list.sort(key=lambda x: x[0]) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 29cdd99..433f311 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -126,21 +126,13 @@ def run(self) -> list[dict]: """Run evaluation and return per-episode metric dicts.""" if self.resume_dir: run_dir = self.resume_dir - all_results = self._load_completed_results(run_dir) - start_index = len(all_results) - logger.info( - "Resuming from %s — %d completed episodes, starting from %d", - run_dir, len(all_results), start_index, - ) else: run_dir = self.output_dir / self.task_name / self.run_id - all_results = [] - start_index = 0 episodes_dir = run_dir / "episodes" episodes_dir.mkdir(parents=True, exist_ok=True) - # 1. Load task + # 1. Load task (before resume so we know total_episodes) task = self._create_task() if self.redownload: task.download_dataset(force=True) @@ -148,6 +140,17 @@ def run(self) -> list[dict]: if self.max_episodes is not None: episodes = episodes[:self.max_episodes] + # Handle resume: load completed results and find start point + if self.resume_dir: + all_results, start_index = self._load_completed_results(run_dir, len(episodes)) + logger.info( + "Resuming from %s — %d completed episodes, starting from index %d", + run_dir, len(all_results), start_index, + ) + else: + all_results = [] + start_index = 0 + # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() server = None @@ -186,71 +189,77 @@ def run(self) -> list[dict]: "Run config:\n%s", json.dumps(config, indent=2, default=str) ) - # 3. Create agent - agent = self._create_agent(task.action_space, task._config, - backend=backend, base_url=base_url) - - # 4. Start simulator - sim, sim_runner = self._create_simulator(task.simulator_key, task=task) - - try: - for i, episode in enumerate(episodes): - if i < start_index: - continue - episode_id = episode.get("episode_id", f"ep_{i}") - logger.info( - "Episode %d/%d: %s", i + 1, len(episodes), episode_id, - ) - - episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" - episode_dir.mkdir(exist_ok=True) - - result = None - for attempt in range(1, self.max_retries + 1): - try: - result = self._run_episode( - sim, agent, task, episode, i, episode_dir, - ) - break - except Exception as exc: - logger.warning( - "Episode %s attempt %d/%d failed: %s", - episode_id, attempt, self.max_retries, exc, - ) - self._clear_episode_dir(episode_dir) - if attempt < self.max_retries: - logger.info("Re-launching simulator for retry...") - try: - sim.close() - except Exception: - pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, - ) - else: - logger.error( - "Episode %s failed after %d attempts, skipping", - episode_id, self.max_retries, - ) - result = { - "episode_id": episode_id, - "instruction": task.get_instruction(episode), - "success": 0.0, - "num_steps": 0, - "elapsed_seconds": 0.0, - "error": str(exc), - } - - all_results.append(result) - - (episode_dir / "result.json").write_text( - json.dumps(result, indent=2) - ) - - finally: - sim.close() + # Skip simulator/agent if all episodes already complete (resume) + if start_index >= len(episodes): + logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) if server: server.stop() + else: + # 3. Create agent + agent = self._create_agent(task.action_space, task._config, + backend=backend, base_url=base_url) + + # 4. Start simulator + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + + try: + for i, episode in enumerate(episodes): + if i < start_index: + continue + episode_id = episode.get("episode_id", f"ep_{i}") + logger.info( + "Episode %d/%d: %s", i + 1, len(episodes), episode_id, + ) + + episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" + episode_dir.mkdir(exist_ok=True) + + result = None + for attempt in range(1, self.max_retries + 1): + try: + result = self._run_episode( + sim, agent, task, episode, i, episode_dir, + ) + break + except Exception as exc: + logger.warning( + "Episode %s attempt %d/%d failed: %s", + episode_id, attempt, self.max_retries, exc, + ) + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info("Re-launching simulator for retry...") + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "Episode %s failed after %d attempts, skipping", + episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + + all_results.append(result) + + (episode_dir / "result.json").write_text( + json.dumps(result, indent=2) + ) + + finally: + sim.close() + if server: + server.stop() # 5. Aggregate and save summary summary = aggregate_metrics(all_results) @@ -264,32 +273,63 @@ def run(self) -> list[dict]: return all_results - def _load_completed_results(self, run_dir: Path) -> list[dict]: - """Load results from a previous run for resume. + def _load_completed_results(self, run_dir: Path, total_episodes: int) -> tuple[list[dict], int]: + """Scan episode dirs to find the first incomplete episode. + + Walks episode directories in ascending order (by index prefix). + An episode is "complete" if its directory has a valid result.json. + Returns results for all consecutive complete episodes from the start, + and clears all directories from the first incomplete episode onward. + + Args: + run_dir: The run directory containing episodes/. + total_episodes: Total number of episodes in the evaluation. - Returns results from all completed episodes except the last one. - The last episode directory is cleared for re-run (it may have been - interrupted mid-way). + Returns: + (completed_results, start_index) tuple. """ + import shutil + episodes_dir = run_dir / "episodes" if not episodes_dir.exists(): - return [] - - result_files = sorted(episodes_dir.glob("*/result.json")) - if not result_files: - return [] + return [], 0 - # Load all completed results except the last - all_results = [] - for rf in result_files[:-1]: - all_results.append(json.loads(rf.read_text())) - - # Clear the last episode directory for re-run - last_episode_dir = result_files[-1].parent - for f in last_episode_dir.iterdir(): - f.unlink() + # Collect all episode dirs, sorted by name (which starts with {i:03d}_) + episode_dirs = sorted( + [d for d in episodes_dir.iterdir() if d.is_dir()], + key=lambda d: d.name, + ) + if not episode_dirs: + return [], 0 + + # Walk in order, loading results until we hit an incomplete episode + completed_results = [] + start_index = 0 + + for ep_dir in episode_dirs: + result_file = ep_dir / "result.json" + if result_file.exists(): + try: + result = json.loads(result_file.read_text()) + completed_results.append(result) + start_index += 1 + continue + except (json.JSONDecodeError, OSError): + logger.warning("Corrupt result.json in %s, treating as incomplete", ep_dir) + # First incomplete episode found — stop here + break + + # Clear all episode dirs from start_index onward + dirs_to_clear = episode_dirs[start_index:] + if dirs_to_clear: + logger.info( + "Resume: clearing %d episode dirs from index %d onward", + len(dirs_to_clear), start_index, + ) + for d in dirs_to_clear: + shutil.rmtree(d) - return all_results + return completed_results, start_index def _run_episode( self, sim, agent, task, episode: dict, index: int, episode_dir: Path, diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index eaa8ea0..a3cf249 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -256,7 +256,7 @@ def test_resume_dir_stored(self, tmp_path): assert runner.resume_dir == tmp_path / "old_run" def test_resume_skips_completed_episodes(self, tmp_path): - """Resume skips completed episodes and re-runs the last one.""" + """Resume with all episodes complete re-aggregates but doesn't re-run.""" output_dir = tmp_path / "logs" # First run: complete all 3 episodes @@ -271,7 +271,7 @@ def test_resume_skips_completed_episodes(self, tmp_path): run_dir = _find_run_dir(output_dir) - # Resume: should load episodes 0-1, re-run episode 2 + # Resume: all episodes already complete — should load all, re-run none runner2 = EvaluationRunner( task_name="dummy_task", agent_type="dummy", @@ -280,10 +280,10 @@ def test_resume_skips_completed_episodes(self, tmp_path): agent_seed=42, ) results2 = runner2.run() - assert len(results2) == 3 # 2 loaded + 1 re-run + assert len(results2) == 3 # All loaded, none re-run - def test_resume_clears_last_episode_dir(self, tmp_path): - """Resume clears the last episode directory before re-running.""" + def test_resume_clears_from_first_incomplete(self, tmp_path): + """Resume clears directories from the first incomplete episode onward.""" output_dir = tmp_path / "logs" runner1 = EvaluationRunner( @@ -297,11 +297,9 @@ def test_resume_clears_last_episode_dir(self, tmp_path): run_dir = _find_run_dir(output_dir) episodes_dir = run_dir / "episodes" episode_dirs = sorted(episodes_dir.iterdir()) - last_ep_dir = episode_dirs[-1] - # Add a marker file to the last episode dir - marker = last_ep_dir / "marker.txt" - marker.write_text("should be deleted") + # Simulate incomplete episode 1 by removing its result.json + (episode_dirs[1] / "result.json").unlink() runner2 = EvaluationRunner( task_name="dummy_task", @@ -310,12 +308,8 @@ def test_resume_clears_last_episode_dir(self, tmp_path): resume_dir=run_dir, agent_seed=42, ) - runner2.run() - - # Marker should be gone (dir was cleared) - assert not marker.exists() - # But result.json should exist (re-run completed) - assert (last_ep_dir / "result.json").exists() + results2 = runner2.run() + assert len(results2) == 3 # 1 loaded + 2 re-run def test_resume_produces_valid_summary(self, tmp_path): """Resumed run produces a valid summary with all episodes.""" diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index ab75a09..76d0ef9 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -31,19 +31,6 @@ def test_defaults_to_2_workers(self): class TestParallelRunnerValidation: """Test that unsupported configs are rejected.""" - def test_resume_raises_not_implemented(self, tmp_path): - from easi.evaluation.parallel_runner import ParallelRunner - resume_dir = tmp_path / "fake_run" - resume_dir.mkdir() - (resume_dir / "config.json").write_text('{"cli_options": {}}') - - runner = ParallelRunner( - task_name="dummy_task", num_parallel=2, - agent_type="dummy", resume_dir=str(resume_dir), - ) - with pytest.raises(NotImplementedError, match="does not support --resume"): - runner.run() - def test_local_vllm_raises_not_implemented(self, tmp_path): from easi.evaluation.parallel_runner import ParallelRunner runner = ParallelRunner( @@ -154,3 +141,76 @@ def test_num_parallel_default_is_none(self): parser = build_parser() args = parser.parse_args(["start", "dummy_task"]) assert args.num_parallel is None + + +class TestParallelResume: + """Test resume support for parallel runner.""" + + def test_parallel_resume_basic(self, tmp_path): + """Parallel run can be resumed after partial completion.""" + from easi.evaluation.parallel_runner import ParallelRunner + + # First run: complete only 1 of 3 episodes + runner1 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + max_episodes=1, + ) + results1 = runner1.run() + assert len(results1) == 1 + + run_dir = list((tmp_path / "dummy_task").iterdir())[0] + + # Resume: should complete remaining episodes + runner2 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + resume_dir=str(run_dir), + ) + results2 = runner2.run() + assert len(results2) == 3 # 1 loaded + 2 re-run + + def test_parallel_resume_all_complete(self, tmp_path): + """Resuming a fully complete parallel run re-aggregates.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner1 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + ) + runner1.run() + + run_dir = list((tmp_path / "dummy_task").iterdir())[0] + + runner2 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + resume_dir=str(run_dir), + ) + results2 = runner2.run() + assert len(results2) == 3 + + def test_parallel_resume_with_gap(self, tmp_path): + """Resume clears from first incomplete even if later episodes exist.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner1 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + ) + runner1.run() + + run_dir = list((tmp_path / "dummy_task").iterdir())[0] + episodes_dir = run_dir / "episodes" + episode_dirs = sorted(episodes_dir.iterdir()) + + # Simulate gap: remove result.json from episode 1 + (episode_dirs[1] / "result.json").unlink() + + runner2 = ParallelRunner( + task_name="dummy_task", num_parallel=2, + agent_type="dummy", output_dir=str(tmp_path), + resume_dir=str(run_dir), + ) + results2 = runner2.run() + assert len(results2) == 3 # 1 loaded + 2 re-run From f4edcf693cdf6aa2f38a39650af921e1267bc258 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 16:59:09 +0800 Subject: [PATCH 065/239] [Feat] Add TDW v1.11.23 simulator integration for HAZARD benchmark Register ThreeDWorld (TDW) as a new simulator in EASI with manifest, env manager (Xvfb + conda), simulator class, and a generic bridge that handles Controller lifecycle, scene loading, and image capture via TDW OutputData. Includes 16 offline tests. --- easi/simulators/tdw/__init__.py | 1 + easi/simulators/tdw/manifest.yaml | 9 + easi/simulators/tdw/v1_11_23/__init__.py | 1 + easi/simulators/tdw/v1_11_23/bridge.py | 290 ++++++++++++++++++ easi/simulators/tdw/v1_11_23/conda_env.yaml | 6 + easi/simulators/tdw/v1_11_23/env_manager.py | 37 +++ easi/simulators/tdw/v1_11_23/requirements.txt | 4 + easi/simulators/tdw/v1_11_23/simulator.py | 24 ++ tests/test_tdw_simulator.py | 117 +++++++ 9 files changed, 489 insertions(+) create mode 100644 easi/simulators/tdw/__init__.py create mode 100644 easi/simulators/tdw/manifest.yaml create mode 100644 easi/simulators/tdw/v1_11_23/__init__.py create mode 100644 easi/simulators/tdw/v1_11_23/bridge.py create mode 100644 easi/simulators/tdw/v1_11_23/conda_env.yaml create mode 100644 easi/simulators/tdw/v1_11_23/env_manager.py create mode 100644 easi/simulators/tdw/v1_11_23/requirements.txt create mode 100644 easi/simulators/tdw/v1_11_23/simulator.py create mode 100644 tests/test_tdw_simulator.py diff --git a/easi/simulators/tdw/__init__.py b/easi/simulators/tdw/__init__.py new file mode 100644 index 0000000..bb2ee48 --- /dev/null +++ b/easi/simulators/tdw/__init__.py @@ -0,0 +1 @@ +"""ThreeDWorld (TDW) simulator package.""" diff --git a/easi/simulators/tdw/manifest.yaml b/easi/simulators/tdw/manifest.yaml new file mode 100644 index 0000000..2e2fa12 --- /dev/null +++ b/easi/simulators/tdw/manifest.yaml @@ -0,0 +1,9 @@ +name: tdw +display_name: "ThreeDWorld (TDW)" +default_version: "v1_11_23" +versions: + v1_11_23: + description: "TDW 1.11.23 — used by HAZARD benchmark" + simulator_class: "easi.simulators.tdw.v1_11_23.simulator.TDWSimulator" + env_manager_class: "easi.simulators.tdw.v1_11_23.env_manager.TDWEnvManager" + python_version: "3.10" diff --git a/easi/simulators/tdw/v1_11_23/__init__.py b/easi/simulators/tdw/v1_11_23/__init__.py new file mode 100644 index 0000000..d556c9a --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/__init__.py @@ -0,0 +1 @@ +"""TDW v1.11.23 simulator.""" diff --git a/easi/simulators/tdw/v1_11_23/bridge.py b/easi/simulators/tdw/v1_11_23/bridge.py new file mode 100644 index 0000000..fb19a7c --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/bridge.py @@ -0,0 +1,290 @@ +"""Bridge subprocess for TDW v1.11.23. + +This script runs inside the easi_tdw_v1_11_23 conda env (Python 3.10). +It communicates with the parent process via filesystem IPC. + +Provides a TDWBridge that handles: +- Controller startup/shutdown (auto-launches Unity build) +- Scene loading and image capture +- Main IPC loop (reset/step/close) + +Task-specific bridges (e.g., HAZARD) will subclass this for +scenario-specific scene setup (LogPlayback, hazard controllers). + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import argparse +import io +import json +import sys +from pathlib import Path + +import numpy as np +from PIL import Image + +# Add repo root to path for easi imports +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, +) +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + +# Default TDW settings +DEFAULT_PORT = 1071 +DEFAULT_SCREEN_SIZE = 512 +DEFAULT_SCENE = "tdw_room" + + +class TDWBridge: + """Generic TDW bridge managing Controller lifecycle and basic actions. + + Subclass this for task-specific behavior (HAZARD scenario controllers). + """ + + def __init__(self, workspace, simulator_kwargs=None): + self.workspace = Path(workspace) + self.simulator_kwargs = simulator_kwargs or {} + self.controller = None + self.step_count = 0 + self.episode_output_dir = None + self._screen_size = self.simulator_kwargs.get( + "screen_size", DEFAULT_SCREEN_SIZE + ) + + def start(self): + """Initialize TDW Controller (auto-launches Unity build).""" + from tdw.controller import Controller + + port = self.simulator_kwargs.get("port", DEFAULT_PORT) + launch_build = self.simulator_kwargs.get("launch_build", True) + + logger.info( + "Starting TDW Controller (port=%d, screen_size=%d, launch_build=%s)...", + port, self._screen_size, launch_build, + ) + self.controller = Controller( + port=port, + check_version=True, + launch_build=launch_build, + ) + logger.info("TDW Controller started.") + + def stop(self): + """Shutdown the TDW Controller and Unity process.""" + if self.controller is not None: + try: + self.controller.communicate({"$type": "terminate"}) + except Exception: + pass + self.controller = None + + def reset(self, reset_config): + """Reset to a scene for smoke tests. + + Override in subclasses for task-specific resets (LogPlayback, etc.). + """ + self.step_count = 0 + scene = reset_config.get("scene", DEFAULT_SCENE) + + logger.info("Resetting to scene: %s", scene) + + # Load scene and configure rendering + commands = [ + self.controller.get_add_scene(scene), + {"$type": "set_screen_size", + "width": self._screen_size, "height": self._screen_size}, + {"$type": "set_render_quality", "render_quality": 5}, + ] + + # Create a third-person camera + commands.extend([ + {"$type": "create_avatar", "type": "A_Img_Caps_Kinematic", + "id": "a"}, + {"$type": "teleport_avatar_to", + "position": {"x": 0, "y": 1.5, "z": -2}, "avatar_id": "a"}, + {"$type": "look_at_position", + "position": {"x": 0, "y": 0.5, "z": 0}, "avatar_id": "a"}, + {"$type": "set_pass_masks", + "pass_masks": ["_img"], "avatar_id": "a"}, + {"$type": "send_images", "frequency": "always"}, + ]) + + resp = self.controller.communicate(commands) + return self._make_observation_response(resp) + + def step(self, action_text): + """Execute a basic action and return observation. + + For the smoke test, steps just advance physics. + Override in subclasses for task-specific actions. + """ + self.step_count += 1 + + # Default: step physics forward + resp = self.controller.communicate([ + {"$type": "step_physics", "frames": 10}, + ]) + return self._make_observation_response( + resp, + reward=0.0, + done=False, + info={"env_step": float(self.step_count)}, + ) + + # --- Main IPC Loop --- + + def run(self): + """Main bridge loop — reads IPC commands, dispatches to handlers.""" + logger.info("TDW bridge starting (workspace: %s)", self.workspace) + self.start() + + write_status(self.workspace, ready=True) + + while True: + try: + command = poll_for_command(self.workspace, timeout=300.0) + except Exception as e: + logger.error("Failed to read command: %s", e) + break + + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + reset_config = command.get("reset_config", {}) + logger.info("Reset: episode_id=%s", episode_id) + + raw_output_dir = command.get("episode_output_dir") + if raw_output_dir: + self.episode_output_dir = raw_output_dir + Path(raw_output_dir).mkdir(parents=True, exist_ok=True) + else: + self.episode_output_dir = None + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "step": + action_data = command.get("action", {}) + action_text = action_data.get("action_name", "") + logger.trace( + "Step %d: action=%s", self.step_count + 1, action_text + ) + + try: + response = self.step(action_text) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response(self.workspace, make_error_response(str(e))) + + elif cmd_type == "close": + logger.info("Close command received") + self.stop() + write_response(self.workspace, {"status": "ok"}) + break + + else: + write_response( + self.workspace, + make_error_response("Unknown command: %s" % cmd_type), + ) + + # --- Image extraction --- + + def _extract_rgb_from_response(self, resp): + """Parse TDW response bytes to extract RGB image as numpy array. + + TDW returns OutputData in resp. We look for Images data + (type id "imag") and extract the RGB pass. + + Returns: + numpy array (H, W, 3) uint8, or None if no image found. + """ + from tdw.output_data import OutputData, Images + + for i in range(len(resp) - 1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "imag": + images = Images(resp[i]) + # Get the first image pass (should be _img / RGB) + for j in range(images.get_num_passes()): + if images.get_pass_mask(j) == "_img": + # TDW Images are PNG-encoded bytes + img_bytes = images.get_image(j) + pil_img = Image.open(io.BytesIO(img_bytes)) + return np.array(pil_img)[:, :, :3] # Drop alpha + return None + + def _make_observation_response(self, resp, reward=0.0, done=False, info=None): + """Extract image from TDW response and build IPC response.""" + rgb_array = self._extract_rgb_from_response(resp) + + save_dir = ( + Path(self.episode_output_dir) + if self.episode_output_dir + else self.workspace + ) + rgb_path = save_dir / ("rgb_%04d.png" % self.step_count) + + if rgb_array is not None: + Image.fromarray(rgb_array).save(str(rgb_path)) + else: + # Fallback: generate a minimal placeholder image + logger.warning("No image in TDW response, generating placeholder") + placeholder = np.zeros( + (self._screen_size, self._screen_size, 3), dtype=np.uint8 + ) + Image.fromarray(placeholder).save(str(rgb_path)) + + return make_observation_response( + rgb_path=str(rgb_path), + agent_pose=[0.0, 1.5, -2.0, 0.0, 0.0, 0.0], + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=info or {}, + ) + + +def main(): + parser = argparse.ArgumentParser(description="TDW v1.11.23 bridge") + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument( + "--simulator-kwargs", type=str, default=None, + help="JSON string of simulator configuration", + ) + args, _ = parser.parse_known_args() + + setup_logging("DEBUG") + + simulator_kwargs = ( + json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} + ) + bridge = TDWBridge( + workspace=args.workspace, + simulator_kwargs=simulator_kwargs, + ) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/tdw/v1_11_23/conda_env.yaml b/easi/simulators/tdw/v1_11_23/conda_env.yaml new file mode 100644 index 0000000..0b30b07 --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/conda_env.yaml @@ -0,0 +1,6 @@ +name: easi_tdw_v1_11_23 +channels: + - conda-forge + - defaults +dependencies: + - python=3.10 diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py new file mode 100644 index 0000000..9558d1e --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -0,0 +1,37 @@ +"""Environment manager for TDW v1.11.23. + +Used by HAZARD benchmark. Requires Python 3.10 and Xvfb (Unity build needs X11). +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class TDWEnvManager(BaseEnvironmentManager): + """Environment manager for TDW 1.11.23.""" + + @property + def simulator_name(self) -> str: + return "tdw" + + @property + def version(self) -> str: + return "v1_11_23" + + @property + def needs_display(self) -> bool: + return True # TDW Unity build requires X11 + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb"] + + def get_validation_import(self) -> str: + return "from tdw.controller import Controller; print('tdw ok')" diff --git a/easi/simulators/tdw/v1_11_23/requirements.txt b/easi/simulators/tdw/v1_11_23/requirements.txt new file mode 100644 index 0000000..dc314cb --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/requirements.txt @@ -0,0 +1,4 @@ +tdw==1.11.23.0 +setuptools<71 +numpy>=1.24 +Pillow>=10.0 diff --git a/easi/simulators/tdw/v1_11_23/simulator.py b/easi/simulators/tdw/v1_11_23/simulator.py new file mode 100644 index 0000000..7cab842 --- /dev/null +++ b/easi/simulators/tdw/v1_11_23/simulator.py @@ -0,0 +1,24 @@ +"""TDW v1.11.23 simulator. + +Stub implementation — the bridge.py handles the actual TDW interaction. +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class TDWSimulator(BaseSimulator): + """TDW 1.11.23 simulator for HAZARD benchmark.""" + + @property + def name(self) -> str: + return "tdw" + + @property + def version(self) -> str: + return "v1_11_23" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/tests/test_tdw_simulator.py b/tests/test_tdw_simulator.py new file mode 100644 index 0000000..30369fb --- /dev/null +++ b/tests/test_tdw_simulator.py @@ -0,0 +1,117 @@ +"""Tests for TDW simulator integration (offline, no TDW needed).""" +import pytest +from pathlib import Path + + +class TestTDWManifest: + """Test that manifest.yaml is correctly structured.""" + + def test_manifest_exists(self): + manifest = Path("easi/simulators/tdw/manifest.yaml") + assert manifest.exists() + + def test_manifest_contents(self): + import yaml + with open("easi/simulators/tdw/manifest.yaml") as f: + data = yaml.safe_load(f) + assert data["name"] == "tdw" + assert "v1_11_23" in data["versions"] + assert data["default_version"] == "v1_11_23" + + def test_manifest_classes_importable(self): + import yaml + with open("easi/simulators/tdw/manifest.yaml") as f: + data = yaml.safe_load(f) + v = data["versions"]["v1_11_23"] + assert "simulator.TDWSimulator" in v["simulator_class"] + assert "env_manager.TDWEnvManager" in v["env_manager_class"] + + +class TestTDWSimulator: + """Test TDWSimulator class.""" + + def test_import(self): + from easi.simulators.tdw.v1_11_23.simulator import TDWSimulator + sim = TDWSimulator() + assert sim.name == "tdw" + assert sim.version == "v1_11_23" + + def test_bridge_script_path(self): + from easi.simulators.tdw.v1_11_23.simulator import TDWSimulator + sim = TDWSimulator() + bridge_path = sim._get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" + + +class TestTDWEnvManager: + """Test TDWEnvManager class.""" + + def test_import(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + assert mgr.simulator_name == "tdw" + assert mgr.version == "v1_11_23" + + def test_env_name(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + assert mgr.get_env_name() == "easi_tdw_v1_11_23" + + def test_needs_display(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + assert mgr.needs_display is True + + def test_system_deps(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + deps = mgr.get_system_deps() + assert "conda" in deps + assert "xvfb" in deps + + def test_conda_env_yaml_exists(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + assert mgr.get_conda_env_yaml_path().exists() + + def test_requirements_txt_exists(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + assert mgr.get_requirements_txt_path().exists() + + def test_validation_import(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + mgr = TDWEnvManager() + val = mgr.get_validation_import() + assert "tdw" in val + + +class TestTDWBridgeSyntax: + """Test that bridge.py is valid Python (without importing TDW).""" + + def test_bridge_syntax(self): + import ast + bridge_path = Path("easi/simulators/tdw/v1_11_23/bridge.py") + ast.parse(bridge_path.read_text()) + + +class TestTDWRegistry: + """Test that registry discovers TDW simulator.""" + + def test_env_list_includes_tdw(self): + from easi.simulators.registry import list_simulators + sims = list_simulators() + assert "tdw:v1_11_23" in sims + + def test_load_simulator_class(self): + from easi.simulators.registry import load_simulator_class + SimClass = load_simulator_class("tdw:v1_11_23") + sim = SimClass() + assert sim.name == "tdw" + + def test_create_env_manager(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("tdw:v1_11_23") + assert mgr.simulator_name == "tdw" + assert mgr.needs_display is True From b36d99c3b93fad1e88a6d0e6fcbeedb771a335a6 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 18:40:28 +0800 Subject: [PATCH 066/239] feat: add EpisodeRecord and pluggable aggregate_results to BaseTask --- easi/core/base_task.py | 29 ++++++- easi/core/episode.py | 13 ++++ easi/evaluation/metrics.py | 47 ++++++++--- tests/test_metrics.py | 155 +++++++++++++++++++++++++++++++++++++ 4 files changed, 234 insertions(+), 10 deletions(-) create mode 100644 tests/test_metrics.py diff --git a/easi/core/base_task.py b/easi/core/base_task.py index ea6b85f..3ce3846 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -19,7 +19,7 @@ from abc import ABC, abstractmethod from pathlib import Path -from easi.core.episode import StepResult +from easi.core.episode import EpisodeRecord, StepResult from easi.core.exceptions import DatasetError from easi.tasks.yaml_utils import resolve_task_yaml from easi.utils.logging import get_logger @@ -74,6 +74,33 @@ def evaluate_episode( """ ... + def aggregate_results( + self, records: list["EpisodeRecord"] + ) -> dict[str, float]: + """Aggregate metrics across all completed episodes. + + Default implementation: averages all numeric keys from each + record's episode_results. Override in subclasses for custom + aggregation logic (e.g., weighted scores, category breakdowns, + trajectory-level analysis). + + Args: + records: List of EpisodeRecord objects. Each contains: + - episode: raw dataset row dict + - trajectory: list of StepResult objects + - episode_results: dict from evaluate_episode() + + Returns: + Summary metrics dict (placed under "metrics" in summary.json). + """ + from easi.evaluation.metrics import default_aggregate + logger.info( + "Using default_aggregate for task '%s'. " + "Override aggregate_results() in your task class for custom aggregation.", + self.name, + ) + return default_aggregate(records) + # --- Hooks --- def on_episode_reset(self, observation, agent) -> None: diff --git a/easi/core/episode.py b/easi/core/episode.py index a7453a1..a334ab2 100644 --- a/easi/core/episode.py +++ b/easi/core/episode.py @@ -31,3 +31,16 @@ class StepResult: reward: float = 0.0 done: bool = False info: dict[str, float] = field(default_factory=dict) + + +@dataclass +class EpisodeRecord: + """Bundles all data for one completed episode. + + Used by aggregate_results() to give the aggregation function + access to both the raw episode data and the full trajectory. + """ + + episode: dict + trajectory: list[StepResult] + episode_results: dict[str, float] diff --git a/easi/evaluation/metrics.py b/easi/evaluation/metrics.py index 70a3316..910ea88 100644 --- a/easi/evaluation/metrics.py +++ b/easi/evaluation/metrics.py @@ -1,19 +1,28 @@ """Metric aggregation utilities.""" - from __future__ import annotations +from easi.core.episode import EpisodeRecord -def aggregate_metrics(results: list[dict]) -> dict: - """Aggregate per-episode metrics into a summary dict.""" - if not results: - return {"num_episodes": 0} - summary = {"num_episodes": len(results)} +def default_aggregate(records: list[EpisodeRecord]) -> dict: + """Default aggregation: average all numeric keys from episode_results. - # Collect all numeric keys + Args: + records: List of EpisodeRecord objects (one per episode). + + Returns: + Summary dict with avg_ for each numeric key, + plus convenience aliases (success_rate, avg_steps). + """ + if not records: + return {} + + summary: dict = {} + + # Collect all numeric keys from episode_results numeric_keys: dict[str, list[float]] = {} - for r in results: - for key, value in r.items(): + for r in records: + for key, value in r.episode_results.items(): if isinstance(value, (int, float)): numeric_keys.setdefault(key, []).append(float(value)) @@ -24,7 +33,27 @@ def aggregate_metrics(results: list[dict]) -> dict: # Convenience aliases if "avg_success" in summary: summary["success_rate"] = summary["avg_success"] + if "avg_task_success" in summary: + summary["success_rate"] = summary["avg_task_success"] if "avg_num_steps" in summary: summary["avg_steps"] = summary["avg_num_steps"] return summary + + +def aggregate_metrics(results: list[dict]) -> dict: + """Legacy aggregate function for backward compatibility. + + Wraps default_aggregate() by converting plain dicts to EpisodeRecords. + New code should use task.aggregate_results() directly. + """ + if not results: + return {"num_episodes": 0} + + records = [ + EpisodeRecord(episode={}, trajectory=[], episode_results=r) + for r in results + ] + summary = {"num_episodes": len(results)} + summary.update(default_aggregate(records)) + return summary diff --git a/tests/test_metrics.py b/tests/test_metrics.py new file mode 100644 index 0000000..d78d1f2 --- /dev/null +++ b/tests/test_metrics.py @@ -0,0 +1,155 @@ +"""Tests for the pluggable metric system.""" +import pytest +from pathlib import Path + +from easi.core.episode import EpisodeRecord, Observation, StepResult + + +def _make_step(info=None, reward=0.0, done=False): + """Helper to create a StepResult with given info.""" + obs = Observation(rgb_path="/tmp/fake.png") + return StepResult(observation=obs, reward=reward, done=done, info=info or {}) + + +class TestEpisodeRecord: + """Test the EpisodeRecord dataclass.""" + + def test_create(self): + record = EpisodeRecord( + episode={"episode_id": "ep1"}, + trajectory=[_make_step()], + episode_results={"success": 1.0}, + ) + assert record.episode["episode_id"] == "ep1" + assert len(record.trajectory) == 1 + assert record.episode_results["success"] == 1.0 + + def test_defaults(self): + record = EpisodeRecord( + episode={}, + trajectory=[], + episode_results={}, + ) + assert record.episode == {} + assert record.trajectory == [] + assert record.episode_results == {} + + +class TestDefaultAggregate: + """Test default_aggregate (extracted from aggregate_metrics).""" + + def test_empty_results(self): + from easi.evaluation.metrics import default_aggregate + assert default_aggregate([]) == {} + + def test_averages_numeric_keys(self): + from easi.evaluation.metrics import default_aggregate + records = [ + EpisodeRecord({}, [], {"task_success": 1.0, "num_steps": 10.0}), + EpisodeRecord({}, [], {"task_success": 0.0, "num_steps": 20.0}), + ] + agg = default_aggregate(records) + assert agg["avg_task_success"] == 0.5 + assert agg["avg_num_steps"] == 15.0 + + def test_ignores_non_numeric_keys_in_episode_results(self): + from easi.evaluation.metrics import default_aggregate + records = [ + EpisodeRecord({}, [], {"task_success": 1.0, "note": "good"}), + ] + agg = default_aggregate(records) + assert "avg_task_success" in agg + assert "avg_note" not in agg + + def test_convenience_aliases(self): + from easi.evaluation.metrics import default_aggregate + records = [ + EpisodeRecord({}, [], {"success": 1.0, "num_steps": 5.0}), + EpisodeRecord({}, [], {"success": 0.0, "num_steps": 15.0}), + ] + agg = default_aggregate(records) + assert agg.get("success_rate") == 0.5 + assert agg.get("avg_steps") == 10.0 + + +class TestBaseTaskAggregateResults: + """Test BaseTask.aggregate_results() default implementation.""" + + def _make_task(self): + """Create a minimal concrete BaseTask.""" + from easi.core.base_task import BaseTask + + class MinimalTask(BaseTask): + def get_task_yaml_path(self): + return Path("/dev/null") + def format_reset_config(self, episode): + return {} + def evaluate_episode(self, episode, trajectory): + return {"success": 1.0} + def _load_config(self): + return {"name": "test", "simulator": "dummy:v1"} + return MinimalTask() + + def test_default_aggregate_averages(self): + task = self._make_task() + records = [ + EpisodeRecord({}, [], {"success": 1.0, "num_steps": 10.0}), + EpisodeRecord({}, [], {"success": 0.0, "num_steps": 20.0}), + ] + agg = task.aggregate_results(records) + assert agg["avg_success"] == 0.5 + assert agg["avg_num_steps"] == 15.0 + + def test_default_aggregate_empty(self): + task = self._make_task() + assert task.aggregate_results([]) == {} + + def test_custom_override(self): + """Subclass can override aggregate_results for custom logic.""" + from easi.core.base_task import BaseTask + + class CustomTask(BaseTask): + def get_task_yaml_path(self): + return Path("/dev/null") + def format_reset_config(self, episode): + return {} + def evaluate_episode(self, episode, trajectory): + return {} + def _load_config(self): + return {"name": "test", "simulator": "dummy:v1"} + def aggregate_results(self, records): + n_success = sum( + 1 for r in records + if r.episode_results.get("success", 0) > 0 + ) + total_steps = sum( + len(r.trajectory) for r in records + ) + return { + "success_rate": n_success / len(records) if records else 0, + "total_steps": float(total_steps), + } + + task = CustomTask() + records = [ + EpisodeRecord({}, [_make_step(), _make_step()], {"success": 1.0}), + EpisodeRecord({}, [_make_step()], {"success": 0.0}), + ] + agg = task.aggregate_results(records) + assert agg["success_rate"] == 0.5 + assert agg["total_steps"] == 3.0 + + +class TestAggregateMetricsBackwardCompat: + """Verify old aggregate_metrics() still works for any existing callers.""" + + def test_aggregate_metrics_unchanged(self): + from easi.evaluation.metrics import aggregate_metrics + results = [ + {"success": 1.0, "num_steps": 10.0}, + {"success": 0.0, "num_steps": 20.0}, + ] + summary = aggregate_metrics(results) + assert summary["num_episodes"] == 2 + assert summary["avg_success"] == 0.5 + assert summary["success_rate"] == 0.5 From 789d0225702088a59be9dd5c285105b898938c3f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 19:37:54 +0800 Subject: [PATCH 067/239] feat: integrate aggregate_results into runners, nest metrics in summary.json --- easi/evaluation/parallel_runner.py | 24 ++++++++++++++++++---- easi/evaluation/runner.py | 30 +++++++++++++++++++++++----- tests/test_e2e_evaluation.py | 10 ++++++---- tests/test_evaluation_runner.py | 7 ++++--- tests/test_metrics.py | 32 ++++++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 16 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 622c15a..0dbd765 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -17,7 +17,7 @@ from concurrent.futures import ThreadPoolExecutor from pathlib import Path -from easi.evaluation.metrics import aggregate_metrics +from easi.core.episode import EpisodeRecord from easi.evaluation.runner import EvaluationRunner, _sanitize_dirname from easi.utils.logging import get_logger @@ -235,9 +235,13 @@ def _worker(worker_id: int) -> None: "error": str(exc), } - # Save per-episode result + # Save per-episode result (strip internal keys) + result_to_save = { + k: v for k, v in result.items() + if not k.startswith("_") + } (episode_dir / "result.json").write_text( - json.dumps(result, indent=2) + json.dumps(result_to_save, indent=2) ) # Thread-safe results collection @@ -302,8 +306,20 @@ def _worker(worker_id: int) -> None: num_successful, num_failed, ) + # Build EpisodeRecords for aggregate_results + records = [] + for r in all_results: + trajectory = r.pop("_trajectory", []) + episode = r.pop("_episode", {}) + records.append(EpisodeRecord( + episode=episode, + trajectory=trajectory, + episode_results=r, + )) + # Aggregate and save summary - summary = aggregate_metrics(all_results) + metric_results = task.aggregate_results(records) + summary = {"num_episodes": len(all_results), "metrics": metric_results} summary["num_parallel"] = self.num_parallel summary["wall_clock_seconds"] = wall_seconds if backend and backend != "legacy": diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 433f311..e2f3d07 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -30,8 +30,7 @@ from datetime import datetime from pathlib import Path -from easi.core.episode import StepResult -from easi.evaluation.metrics import aggregate_metrics +from easi.core.episode import EpisodeRecord, StepResult from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -252,8 +251,13 @@ def run(self) -> list[dict]: all_results.append(result) + # Save per-episode result (strip internal keys) + result_to_save = { + k: v for k, v in result.items() + if not k.startswith("_") + } (episode_dir / "result.json").write_text( - json.dumps(result, indent=2) + json.dumps(result_to_save, indent=2) ) finally: @@ -261,8 +265,20 @@ def run(self) -> list[dict]: if server: server.stop() - # 5. Aggregate and save summary - summary = aggregate_metrics(all_results) + # 5. Build EpisodeRecords for aggregate_results + records = [] + for r in all_results: + trajectory = r.pop("_trajectory", []) + episode = r.pop("_episode", {}) + records.append(EpisodeRecord( + episode=episode, + trajectory=trajectory, + episode_results=r, + )) + + # 6. Aggregate and save summary + metric_results = task.aggregate_results(records) + summary = {"num_episodes": len(all_results), "metrics": metric_results} if backend and backend != "legacy": summary["llm_usage"] = self._aggregate_llm_usage(all_results) summary["model"] = self.model @@ -417,6 +433,10 @@ def _run_episode( metrics["instruction"] = task_description metrics["elapsed_seconds"] = round(elapsed, 2) + # Attach trajectory and episode for aggregate_results() + metrics["_trajectory"] = trajectory + metrics["_episode"] = episode + # Snapshot LLM usage for this episode if hasattr(agent, 'llm_client') and hasattr(agent.llm_client, 'get_usage'): metrics["llm_usage"] = agent.llm_client.get_usage() diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index a3cf249..bf72477 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -37,7 +37,8 @@ def test_dummy_full_run(self, tmp_path): run_dir = _find_run_dir(tmp_path / "logs") summary = json.loads((run_dir / "summary.json").read_text()) assert summary["num_episodes"] == 3 - assert "success_rate" in summary or "avg_success" in summary + assert "metrics" in summary + assert "success_rate" in summary["metrics"] or "avg_success" in summary["metrics"] def test_max_episodes_limit(self, tmp_path): """Verify max_episodes limits the run.""" @@ -104,9 +105,10 @@ def test_summary_has_all_averaged_keys(self, tmp_path): run_dir = _find_run_dir(output_dir) summary = json.loads((run_dir / "summary.json").read_text()) assert summary["num_episodes"] == 3 - # These come from averaging per-episode numeric keys - assert "avg_num_steps" in summary - assert "avg_elapsed_seconds" in summary + # These come from averaging per-episode numeric keys (nested under "metrics") + assert "metrics" in summary + assert "avg_num_steps" in summary["metrics"] + assert "avg_elapsed_seconds" in summary["metrics"] def test_deterministic_with_seed(self, tmp_path): """Two runs with the same seed should produce identical results.""" diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 0afe010..8d2be50 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -68,7 +68,7 @@ def test_results_saved_to_disk(self, tmp_path): assert (ep_dir / "rgb_0000.png").exists() # Reset observation def test_summary_aggregates_metrics(self, tmp_path): - """Verify summary.json contains averaged metrics.""" + """Verify summary.json contains averaged metrics nested under 'metrics'.""" output_dir = tmp_path / "logs" runner = EvaluationRunner( task_name="dummy_task", @@ -79,9 +79,10 @@ def test_summary_aggregates_metrics(self, tmp_path): run_dir = _find_run_dir(output_dir) summary = json.loads((run_dir / "summary.json").read_text()) - assert "success_rate" in summary - assert "avg_steps" in summary assert "num_episodes" in summary + assert "metrics" in summary + assert "success_rate" in summary["metrics"] + assert "avg_steps" in summary["metrics"] class TestCliOptionsCapture: diff --git a/tests/test_metrics.py b/tests/test_metrics.py index d78d1f2..096b5a2 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -153,3 +153,35 @@ def test_aggregate_metrics_unchanged(self): assert summary["num_episodes"] == 2 assert summary["avg_success"] == 0.5 assert summary["success_rate"] == 0.5 + + +class TestSummaryJsonStructure: + """Test that summary.json nests metrics under 'metrics' key.""" + + def test_metrics_nested_in_summary(self, tmp_path): + """Run dummy_task and verify metrics are under summary['metrics'].""" + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + output_dir=str(tmp_path), + max_episodes=2, + ) + runner.run() + + import json + summary_path = list(tmp_path.rglob("summary.json"))[0] + summary = json.loads(summary_path.read_text()) + + # Metrics should be nested + assert "metrics" in summary + assert isinstance(summary["metrics"], dict) + assert len(summary["metrics"]) > 0 + + # Metadata should be at top level + assert summary["num_episodes"] == 2 + + # Metric keys should NOT be at the top level + assert "avg_success" not in summary + assert "success_rate" not in summary From 5413684a42c021320e474ce7bdbbb0258bdc8e92 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 20:04:26 +0800 Subject: [PATCH 068/239] [Chore] Remove redundant comments in prompt_builder and react_agent --- easi/agents/prompt_builder.py | 2 -- easi/agents/react_agent.py | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/easi/agents/prompt_builder.py b/easi/agents/prompt_builder.py index d7280e3..975130d 100644 --- a/easi/agents/prompt_builder.py +++ b/easi/agents/prompt_builder.py @@ -61,8 +61,6 @@ class PromptBuilderProtocol(Protocol): Return a response_format dict for API-level JSON enforcement. E.g. {"type": "json_schema", "json_schema": {"name": "...", "schema": {...}}} When provided, the agent passes it to LLMClient.generate(). - If the backend doesn't support it, the agent falls back to - prompt-only (the template is already in the messages). Builders that don't implement this get no schema enforcement. """ diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py index 0e4b46b..78e8f63 100644 --- a/easi/agents/react_agent.py +++ b/easi/agents/react_agent.py @@ -131,9 +131,8 @@ def add_feedback(self, action_name: str, feedback: str) -> None: def _fallback_action(self) -> Action: """Return a safe fallback action when parsing fails. - If the action space has "Stop", use it (e.g., EB-Alfred). + If the action space has "Stop", use it. Otherwise, signal that the episode should end via "<>" - (matching EmbodiedBench behavior where empty plans end episodes). """ if "Stop" in self.action_space: return Action(action_name="Stop") From 5835faed16a0c02620e941023afb7ff91c3272a7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 20:45:05 +0800 Subject: [PATCH 069/239] [Docs] Update CLAUDE.md and add AGENT.md for AI-assisted development --- AGENT.md | 629 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 232 ++++++++++++-------- 2 files changed, 775 insertions(+), 86 deletions(-) create mode 100644 AGENT.md diff --git a/AGENT.md b/AGENT.md new file mode 100644 index 0000000..5f568e2 --- /dev/null +++ b/AGENT.md @@ -0,0 +1,629 @@ +# AGENT.md — AI-Assisted Development Guide + +This document helps AI coding agents (and human developers) understand the EASI library and contribute new benchmarks effectively. + +## How the Library Works + +EASI evaluates embodied AI agents in interactive simulators. The core loop: + +``` +for each episode in dataset: + sim.reset(task.format_reset_config(episode)) + while not done and step < max_steps: + action = agent.act(observation, instruction) + observation = sim.step(action) + result = task.evaluate_episode(episode, trajectory) +summary = task.aggregate_results(all_records) +``` + +Four components plug together: + +| Component | Role | Lives in | +|---|---|---| +| **Task** | Defines episodes, action space, success metrics | `easi/tasks//` | +| **Simulator** | Runs the 3D environment in a subprocess | `easi/simulators//` | +| **Bridge** | Wraps the simulator's Python API for IPC | `easi/tasks//bridge.py` or `easi/simulators///bridge.py` | +| **Agent** | Decides actions (DummyAgent or ReActAgent+LLM) | `easi/agents/` | + +--- + +## Adding a New Benchmark (Step-by-Step) + +This is the most common contribution. Follow the existing task structure exactly. + +### Prerequisites + +- The simulator is already integrated (check `easi env list`). If not, see "Adding a New Simulator" below. +- The benchmark's dataset is on HuggingFace (or you have local episodes). +- You have the benchmark's source code to reference for environment setup and evaluation logic. + +### Step 1: Create the Task Folder + +``` +easi/tasks// +├── __init__.py # Empty +├── task.py # Task class (required) +├── bridge.py # Bridge script (if task needs custom env wrapping) +├── actions.py # Action space definitions (if static) +├── prompts.py # PromptBuilder for LLM interaction (optional) +├── _base.yaml # Base config (or split configs) +├── _base.yaml # Shared config for multi-split tasks +├── config/ # Few-shot examples, etc. (optional) +└── vendor/ # Vendored benchmark env code (optional) + └── __init__.py +``` + +Use `easi task scaffold ` to generate boilerplate, then customize. + +### Step 2: Define the Task YAML + +Every task needs at least one `.yaml` config file. The registry auto-discovers all `easi/tasks/*/*.yaml` files (excluding files without a `name` key). + +**Minimal config (single-split task):** + +```yaml +name: my_benchmark +display_name: "My Benchmark" +description: "Description of the benchmark" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.my_benchmark.task.MyBenchmarkTask" +max_steps: 50 +dataset: + source: huggingface + repo_id: "username/my-benchmark-dataset" + subset: null + split: "test" +``` + +**Multi-split task (recommended for benchmarks with difficulty splits):** + +```yaml +# _base.yaml — shared config, NOT registered as a task (no `name` key) +display_name: "My Benchmark" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.my_benchmark.task.MyBenchmarkTask" +max_steps: 50 +dataset: + source: huggingface + repo_id: "username/my-benchmark-dataset" +simulator_configs: + screen_height: 500 + screen_width: 500 + additional_deps: + - "gym" +agent: + prompt_builder: "easi.tasks.my_benchmark.prompts.MyPromptBuilder" + prompt_builder_kwargs: + n_shot: 3 + generation_kwargs: + temperature: 0 + max_tokens: 2048 +``` + +```yaml +# my_benchmark_base.yaml — registered as task "my_benchmark_base" +extends: _base.yaml +name: my_benchmark_base +display_name: "My Benchmark Base Split" +dataset: + split: "base" +``` + +```yaml +# my_benchmark_hard.yaml — registered as task "my_benchmark_hard" +extends: _base.yaml +name: my_benchmark_hard +display_name: "My Benchmark Hard Split" +dataset: + split: "hard" +``` + +**YAML fields reference:** + +| Field | Required | Description | +|---|---|---| +| `name` | Yes | Task name used in CLI (`easi start `) | +| `display_name` | No | Human-readable name | +| `description` | No | Task description | +| `simulator` | Yes | Simulator key, e.g. `"ai2thor:v5_0_0"` or `"dummy:v1"` | +| `task_class` | Yes | Dotted import path to your Task class | +| `max_steps` | No | Max steps per episode (default: 500) | +| `dataset.source` | Yes | `"huggingface"` or `"local"` | +| `dataset.repo_id` | HF only | HuggingFace repo ID | +| `dataset.split` | HF only | Dataset split name | +| `dataset.subset` | No | Dataset subset (auto-detected if single) | +| `dataset.zip_files` | No | List of zip files to extract after download | +| `simulator_configs` | No | Dict passed to bridge as `simulator_kwargs` | +| `simulator_configs.additional_deps` | No | Extra pip packages for the simulator env | +| `simulator_configs.env_vars` | No | Environment variables for bridge subprocess | +| `agent.prompt_builder` | No | Dotted path to PromptBuilder class | +| `agent.prompt_builder_kwargs` | No | Kwargs passed to PromptBuilder constructor | +| `agent.generation_kwargs` | No | LLM generation defaults (temperature, max_tokens, etc.) | +| `extends` | No | Relative path to base YAML for template inheritance | + +### Step 3: Implement the Task Class + +Subclass `BaseTask` and implement 3 abstract methods: + +```python +"""My benchmark task for EASI.""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import StepResult + +class MyBenchmarkTask(BaseTask): + + def get_task_yaml_path(self) -> Path: + """Return path to the default YAML config.""" + return Path(__file__).parent / "my_benchmark_base.yaml" + + def format_reset_config(self, episode: dict) -> dict: + """Map a dataset row to simulator reset kwargs. + + The returned dict is passed to bridge.reset(reset_config). + Include everything the bridge needs to initialize the episode. + """ + return { + "episode_id": episode.get("id", "unknown"), + "scene": episode["scene"], + "instruction": episode["instruction"], + # Add all fields your bridge needs + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Score a completed episode. + + Args: + episode: The raw dataset row dict. + trajectory: List of StepResult from the agent-simulator loop. + Each StepResult has: observation, reward, done, info. + + Returns: + Dict of metric_name -> float. These are saved to result.json + and passed to aggregate_results(). + """ + if not trajectory: + return {"task_success": 0.0, "num_steps": 0.0} + + last_step = trajectory[-1] + return { + "task_success": last_step.info.get("task_success", 0.0), + "num_steps": float(len(trajectory)), + } +``` + +**Optional overrides:** + +```python + # Static action space (if not dynamic per-episode) + def _build_action_space(self) -> list[str]: + return ["MoveForward", "TurnLeft", "TurnRight", "Stop"] + + # Custom bridge script (if task needs special env wrapping) + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + # Extract instruction from episode (if field name differs) + def get_instruction(self, episode: dict) -> str: + return episode.get("task_description", self.name) + + # Dynamic action space per episode (e.g., EB-Alfred) + def on_episode_reset(self, observation, agent) -> None: + new_actions = observation.metadata.get("action_space", "").split(",") + if new_actions and hasattr(agent, "update_action_space"): + agent.update_action_space(new_actions) + + # Custom cross-episode aggregation + def aggregate_results(self, records): + """Custom aggregation with access to trajectories and episode data. + + Args: + records: list[EpisodeRecord], each with: + - record.episode: raw dataset row dict + - record.trajectory: list[StepResult] + - record.episode_results: dict from evaluate_episode() + """ + n = len(records) + successes = sum(r.episode_results.get("task_success", 0) for r in records) + return { + "success_rate": round(successes / n, 4) if n else 0.0, + "avg_steps": round( + sum(r.episode_results.get("num_steps", 0) for r in records) / n, 2 + ) if n else 0.0, + } + + # Built-in episodes for testing without dataset download + def _get_builtin_episodes(self) -> list[dict]: + return [{"id": 0, "scene": "TestScene", "instruction": "test"}] +``` + +### Step 4: Implement the Bridge (if needed) + +If your benchmark uses a vendored environment that differs from the simulator's default bridge, create a task-specific bridge. The bridge runs as a **subprocess** in the simulator's conda env. + +```python +"""My benchmark bridge — wraps vendored env via BaseBridge. + +This script runs inside the simulator's conda env (e.g., Python 3.10). +""" +from __future__ import annotations + +import sys +from pathlib import Path + +# Ensure repo root is importable +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge + + +class MyBenchmarkBridge(BaseBridge): + """Wraps vendored MyEnv via BaseBridge.""" + + def _create_env(self, reset_config, simulator_kwargs): + """Create the environment. Called once on first reset.""" + from easi.tasks.my_benchmark.vendor.my_env import MyEnv + resolution = simulator_kwargs.get("screen_height", 500) + return MyEnv(resolution=resolution) + + def _on_reset(self, env, reset_config): + """Reset with episode data. Return observation.""" + return env.reset(scene=reset_config["scene"]) + + def _on_step(self, env, action_text): + """Execute action. Return (obs, reward, done, info) tuple.""" + return env.step(action_text) + + def _extract_image(self, obs): + """Extract RGB numpy array (H, W, 3) from observation.""" + return obs["rgb"] # np.ndarray + + def _extract_info(self, info): + """Filter info dict to JSON-serializable values.""" + return { + "task_success": float(info.get("success", 0.0)), + "feedback": str(info.get("feedback", "")), + } + + +if __name__ == "__main__": + MyBenchmarkBridge.main() +``` + +**BaseBridge hooks:** + +| Method | Default | Override when | +|---|---|---| +| `_create_env(reset_config, simulator_kwargs)` | `raise NotImplementedError` | Always (required) | +| `_extract_image(obs)` | `raise NotImplementedError` | Always (required) | +| `_on_reset(env, reset_config)` | `env.reset()` | Env needs episode data passed to reset | +| `_on_step(env, action_text)` | `env.step(action_text)` | Action needs translation (text → int, etc.) | +| `_extract_info(info)` | Filters to scalar values | You want specific keys in result.json | + +### Step 5: Implement the PromptBuilder (optional) + +For LLM-powered evaluation, create a task-specific PromptBuilder: + +```python +"""Prompt builder for My Benchmark.""" +from __future__ import annotations + +import json + +from easi.agents.prompt_builder import validate_action_name, _encode_image_base64 +from easi.core.episode import Action +from easi.core.memory import AgentMemory + + +class MyPromptBuilder: + """Builds prompts for My Benchmark's ReAct agent.""" + + def __init__(self, n_shot=3, use_feedback=True): + self.n_shot = n_shot + self.use_feedback = use_feedback + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build LLM messages from agent memory. + + Args: + memory: AgentMemory with task_description, action_space, + current_observation, steps (history), action_history. + + Returns: + List of message dicts: [{"role": "system", "content": [...]}, ...] + """ + messages = [] + + # System message with instructions + system_text = f"You are an agent. Task: {memory.task_description}\n" + system_text += f"Actions: {', '.join(memory.action_space)}" + messages.append({"role": "system", "content": [{"type": "text", "text": system_text}]}) + + # Current observation (with image) + user_content = [] + if memory.current_observation and memory.current_observation.rgb_path: + img_b64 = _encode_image_base64(memory.current_observation.rgb_path) + user_content.append({ + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{img_b64}"}, + }) + user_content.append({"type": "text", "text": "What action should you take?"}) + messages.append({"role": "user", "content": user_content}) + + return messages + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM text response into validated Action objects. + + Returns: + List of Action objects. Empty list = parsing failed. + """ + try: + data = json.loads(llm_response) + except json.JSONDecodeError: + return [] + + plan = data.get("executable_plan", []) + actions = [] + for entry in plan: + name = entry.get("action_name", "") + validated = validate_action_name(name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + break # Stop at first invalid action + return actions +``` + +### Step 6: Write Tests + +Follow the pattern in existing test files. All tests run offline (no simulator, no LLM). + +```python +"""Tests for My Benchmark task (offline, no simulator needed).""" +import pytest +from pathlib import Path + +from easi.core.episode import Observation, StepResult + + +class TestMyBenchmarkTask: + @pytest.fixture + def task(self): + from easi.tasks.my_benchmark.task import MyBenchmarkTask + return MyBenchmarkTask() + + def test_name(self, task): + assert task.name == "my_benchmark_base" + + def test_simulator_key(self, task): + assert task.simulator_key == "ai2thor:v5_0_0" + + def test_action_space(self, task): + assert len(task.action_space) > 0 + + def test_max_steps(self, task): + assert task.max_steps == 50 + + def test_format_reset_config(self, task): + episode = {"id": 0, "scene": "TestScene", "instruction": "test"} + config = task.format_reset_config(episode) + assert "scene" in config + + def test_evaluate_episode(self, task): + obs = Observation(rgb_path="/tmp/fake.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=True, + info={"task_success": 1.0}), + ] + result = task.evaluate_episode({"id": 0}, trajectory) + assert "task_success" in result + + def test_evaluate_empty_trajectory(self, task): + result = task.evaluate_episode({}, []) + assert result["task_success"] == 0.0 + + def test_bridge_script_path(self, task): + path = task.get_bridge_script_path() + if path is not None: + assert path.exists() + + def test_registry_discovers_task(self): + from easi.tasks.registry import list_tasks + tasks = list_tasks() + assert "my_benchmark_base" in tasks +``` + +Run tests: `pytest tests/test_my_benchmark.py -v` + +### Step 7: Verify + +```bash +# All existing tests still pass +pytest tests/ -v --timeout=60 + +# Registry discovers your task +easi task list | grep my_benchmark + +# Task info looks correct +easi task info my_benchmark_base + +# Dummy agent smoke test (no LLM needed) +easi start my_benchmark_base --agent dummy --max-episodes 1 +``` + +--- + +## Adding a New Simulator + +Less common. Only needed when a benchmark uses a simulator not yet in EASI. + +### Structure + +``` +easi/simulators// +├── __init__.py +├── manifest.yaml # Declares name, versions, classes +└── / + ├── __init__.py + ├── simulator.py # Subclass of BaseSimulator + ├── env_manager.py # Subclass of BaseEnvironmentManager + ├── bridge.py # Default bridge script + ├── conda_env.yaml # Conda environment spec + └── requirements.txt # Pip dependencies +``` + +### manifest.yaml + +```yaml +name: my_sim +display_name: "My Simulator" +default_version: "v1_0_0" +versions: + v1_0_0: + description: "My Simulator 1.0.0" + simulator_class: "easi.simulators.my_sim.v1_0_0.simulator.MySimSimulator" + env_manager_class: "easi.simulators.my_sim.v1_0_0.env_manager.MySimEnvManager" + python_version: "3.10" +``` + +### simulator.py + +```python +from pathlib import Path +from easi.core.base_simulator import BaseSimulator + +class MySimSimulator(BaseSimulator): + @property + def name(self) -> str: + return "my_sim" + + @property + def version(self) -> str: + return "v1_0_0" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" +``` + +### env_manager.py + +```python +from pathlib import Path +from easi.core.base_env_manager import BaseEnvironmentManager + +class MySimEnvManager(BaseEnvironmentManager): + @property + def simulator_name(self) -> str: + return "my_sim" + + @property + def version(self) -> str: + return "v1_0_0" + + @property + def needs_display(self) -> bool: + return True # Set True if simulator needs X11/Xvfb + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda"] # Add "xvfb" if needs_display is True + + def get_validation_import(self) -> str: + return "from my_sim import Controller; print('ok')" +``` + +### Verify + +```bash +easi env list # Should show my_sim +easi env install my_sim # Install conda env +easi env check my_sim # Validate +easi sim test my_sim # Smoke test bridge +``` + +--- + +## Vendoring Benchmark Code + +When integrating an external benchmark (e.g., from EmbodiedBench), vendor only the environment code you need: + +1. **Create `vendor/` directory** in your task folder +2. **Copy only the env class** (not the full benchmark runner/evaluator) +3. **Remove external dependencies** the benchmark used for logging, dataset loading, gym registration — EASI handles all of these +4. **Adapt the interface**: + - `reset(episode)` accepts an episode dict (from EASI's dataset) + - `step(action)` returns `(obs, reward, done, info)` tuple + - Remove internal image saving (bridge handles this) + - Remove internal logging (EASI's logger handles this) + +--- + +## Key Conventions + +### Logging + +```python +from easi.utils.logging import get_logger +logger = get_logger(__name__) +# Use logger.info(), logger.warning(), logger.error() +# Use logger.trace() for verbose debug output +# NEVER use print() +``` + +### Imports + +```python +from __future__ import annotations # Always first import +``` + +### Testing + +- All tests run offline (mock simulators, no LLM calls) +- Use `Observation(rgb_path="/tmp/fake.png")` for test observations +- Use `StepResult(observation=obs, done=True, info={...})` for test trajectories +- Test file naming: `tests/test_.py` + +### summary.json Structure + +```json +{ + "num_episodes": 100, + "model": "gpt-4o", + "backend": "openai", + "llm_usage": {"total_calls": 500, "total_tokens": 150000}, + "metrics": { + "success_rate": 0.73, + "avg_num_steps": 24.3, + "avg_task_success": 0.73 + } +} +``` + +Metrics (from `task.aggregate_results()`) are nested under `"metrics"`. Run metadata stays at the top level. + +--- + +## Existing Benchmarks Reference + +| Task | Simulator | Splits | Action Type | Max Steps | +|---|---|---|---|---| +| `dummy_task` | `dummy:v1` | 1 | 4 discrete text | 100 | +| `ebalfred_*` | `ai2thor:v2_1_0` | 6 | ~133 skill text | 50 | +| `ebnavigation_*` | `ai2thor:v5_0_0` | 5 | 8 discrete int | 20 | +| `ebhabitat_*` | `habitat_sim:v0_3_0` | 4 | 4 discrete text | varies | +| `ebmanipulation_*` | `coppeliasim:v4_1_0` | 4 | continuous params | varies | + +Use the closest existing task as a template when adding a new one. The `dummy_task` is the simplest reference; `ebalfred` is the most complete. diff --git a/CLAUDE.md b/CLAUDE.md index 636c565..4ddd269 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,123 +1,183 @@ # CLAUDE.md -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +This file provides guidance to Claude Code when working with this repository. ## Project Overview -EASI (Holistic Evaluation of Multimodal LLMs on Spatial Intelligence) is a unified evaluation suite for benchmarking multimodal LLMs on spatial intelligence tasks. It is an **orchestration project** — it does not contain evaluation code itself but wraps two external backends via git submodules. +EASI is a unified evaluation framework for embodied AI agents. It has two layers: -## Architecture +1. **Static benchmarks** — VLMEvalKit and lmms-eval submodules for VLM evaluation (image Q&A, spatial reasoning). These are mature and rarely modified. +2. **Embodied agent evaluation** (`easi/` library) — The active development focus. Subprocess-isolated simulators, multi-split tasks, and LLM-powered agents for interactive benchmarks (EB-Alfred, EB-Navigation, EB-Habitat, EB-Manipulation, HAZARD). -EASI uses a **dual-backend architecture**: +Most development work happens in the `easi/` library. -- **VLMEvalKit** (`VLMEvalKit/` submodule) — Feature-rich backend with built-in model zoo and LLM-based answer judging. Entry point: `VLMEvalKit/run.py`. -- **lmms-eval** (`lmms-eval/` submodule) — Lightweight, accelerate-based backend with multi-GPU distributed inference. Entry point: `lmms-eval` CLI command after `pip install -e ./lmms-eval`. +## Quick Reference -Both submodules point to EvolvingLMMs-Lab forks. Submodules must be initialized before use: ```bash -git submodule update --init --recursive -``` +# Setup +pip install -e ".[dev]" -The root repository contains: -- `examples/` — Shell scripts demonstrating evaluation invocations (lmms-eval backend) -- `dockerfiles/` — Docker configs for EASI, VLM3R, and Cambrains runtime environments -- `docs/` — Changelog, benchmark verification data, supported models/benchmarks matrix +# Run tests (540 tests, ~4-5min) +pytest tests/ -v --timeout=60 -## Setup & Installation +# CLI +easi task list # List all tasks +easi env list # List all simulators +easi env install ai2thor:v2_1_0 # Install simulator env +easi sim test dummy # Smoke test simulator +easi start dummy_task --agent dummy # Run evaluation (no LLM) -**VLMEvalKit backend:** -```bash -git clone --recursive https://github.com/EvolvingLMMs-Lab/EASI.git -cd EASI && pip install -e ./VLMEvalKit +# Real evaluation +easi start ebalfred_base --agent react --backend openai --model gpt-4o +easi start ebalfred_base --agent react --backend openai --model gpt-4o --num-parallel 4 +easi start --resume ./logs/ebalfred_base/ ``` -**lmms-eval backend:** -```bash -git clone --recursive https://github.com/EvolvingLMMs-Lab/EASI.git -cd EASI && pip install -e ./lmms-eval spacy -pip install flash-attn --no-build-isolation -``` +## Architecture -**Docker:** -```bash -bash dockerfiles/EASI/build_runtime_docker.sh ``` - -## Running Evaluations - -**VLMEvalKit:** -```bash -cd VLMEvalKit/ -python run.py --data {BENCHMARK} --model {MODEL} --judge {JUDGE_MODE} --verbose --reuse +easi/ +├── core/ # Abstract base classes + dataclasses +│ ├── base_task.py # BaseTask — task interface +│ ├── base_simulator.py # BaseSimulator — simulator interface +│ ├── base_agent.py # BaseAgent — agent interface +│ ├── base_env_manager.py # BaseEnvironmentManager — conda env setup +│ ├── episode.py # Observation, Action, StepResult, EpisodeRecord +│ ├── memory.py # AgentMemory — shared agent/prompt state +│ ├── protocols.py # Runtime-checkable Protocol interfaces +│ └── exceptions.py # EASIError hierarchy +│ +├── agents/ # Agent implementations +│ ├── dummy_agent.py # Random action picker (testing) +│ ├── react_agent.py # ReAct agent with multi-action buffering +│ └── prompt_builder.py # PromptBuilder protocol + DefaultPromptBuilder +│ +├── simulators/ # Simulator implementations (subprocess-isolated) +│ ├── base_bridge.py # BaseBridge — Gym-like env wrapper for IPC +│ ├── subprocess_runner.py # SubprocessRunner — process lifecycle +│ ├── registry.py # Auto-discovery via manifest.yaml +│ ├── dummy/v1/ # In-memory testing simulator +│ ├── ai2thor/v2_1_0/ # AI2-THOR 2.1.0 (EB-Alfred, Python 3.8) +│ ├── ai2thor/v5_0_0/ # AI2-THOR 5.0.0 (EB-Navigation, Python 3.10) +│ ├── habitat_sim/v0_3_0/ # Habitat-Sim 0.3.0 (EB-Habitat, Python 3.9) +│ ├── coppeliasim/v4_1_0/ # CoppeliaSim 4.1.0 (EB-Manipulation, Python 3.10) +│ └── tdw/v1_11_23/ # ThreeDWorld 1.11.23 (HAZARD, Python 3.10) +│ +├── tasks/ # Benchmark task definitions +│ ├── registry.py # Auto-discovery via *.yaml glob +│ ├── yaml_utils.py # Template inheritance (extends) +│ ├── dataset.py # HuggingFace + local dataset loading +│ ├── scaffold.py # Task boilerplate generator +│ ├── dummy_task/ # 3-episode testing task +│ ├── ebalfred/ # EB-Alfred (6 splits) +│ ├── ebnavigation/ # EB-Navigation (5 splits) +│ ├── ebhabitat/ # EB-Habitat (4 splits) +│ └── ebmanipulation/ # EB-Manipulation (4 splits) +│ +├── evaluation/ # Evaluation orchestration +│ ├── runner.py # EvaluationRunner (sequential) +│ ├── parallel_runner.py # ParallelRunner (thread-pool, API backends) +│ └── metrics.py # default_aggregate + legacy aggregate_metrics +│ +├── llm/ # LLM client infrastructure +│ ├── client.py # LLMClient (LiteLLM wrapper, any backend) +│ ├── api_client.py # LLMApiClient (legacy OpenAI-only) +│ ├── server_manager.py # vLLM server lifecycle +│ ├── dummy_server.py # Dummy LLM server for testing +│ └── utils.py # Backend config (parse, validate, split kwargs) +│ +├── communication/ # Filesystem IPC (parent <-> bridge subprocess) +│ ├── filesystem.py # Atomic JSON read/write, command/response +│ └── schemas.py # Command/response schemas +│ +├── utils/ # Shared utilities +│ ├── logging.py # Centralized logging (TRACE/DEBUG/INFO/WARNING/ERROR) +│ ├── import_utils.py # Dynamic class importing +│ ├── json_repair.py # LLM response JSON repair +│ └── ... # paths, locking, system_deps, spinner +│ +└── cli.py # CLI entry point (easi command) ``` -Judge modes: `extract_matching` (regex), `gpt-4o-1120` (LLM-based, needs OPENAI_API_KEY). -**lmms-eval (single GPU):** -```bash -lmms-eval --model {MODEL_TYPE} --model_args pretrained={MODEL_PATH} \ - --tasks {TASK} --batch_size 1 --log_samples --output_path ./logs/ -``` +## Key Patterns -**lmms-eval (multi-GPU):** -```bash -CUDA_VISIBLE_DEVICES=0,1,2,3 accelerate launch --num_processes=4 \ - -m lmms_eval --model {MODEL_TYPE} --model_args pretrained={MODEL_PATH} \ - --tasks {TASK} --batch_size 1 --log_samples --output_path ./logs/ -``` +### Subprocess Isolation +Each simulator runs in its own conda environment (potentially different Python version). The bridge script communicates with the parent process via filesystem IPC (atomic JSON files in a temp directory). This enables Python 3.8 for AI2-THOR v2.1 while the host runs Python 3.10+. -List available tasks: `lmms-eval --tasks list` +### Multi-Split Tasks +Each task folder can have multiple YAML configs. The task registry discovers all `*.yaml` files and registers each as a separate task (e.g., `ebalfred_base`, `ebalfred_spatial`). Split YAMLs use template inheritance via `extends: _base.yaml`. -## EASI Library (`easi/`) +### Pluggable Metrics +Two-phase metric system: +- **Per-episode**: `task.evaluate_episode(episode, trajectory) -> dict` (always user-defined) +- **Cross-episode**: `task.aggregate_results(records: list[EpisodeRecord]) -> dict` (optional override, default averages all numeric keys) -The `easi` package is a Python library for embodied agent evaluation with subprocess-isolated simulators. Install: `pip install -e .` +Metrics are nested under `summary["metrics"]` in summary.json, separated from run metadata. -### Architecture +### ReAct Agent + PromptBuilder +The agent uses a PromptBuilder protocol for task-specific prompts. The builder constructs messages from AgentMemory and parses LLM responses into validated Actions. Multi-action buffering: LLM returns a plan, agent executes one action per step, clears buffer on failure. -``` -easi/ -├── core/ # Base classes: BaseTask, BaseSimulator, BaseAgent, Episode/Action/StepResult -├── agents/ # DummyAgent, ReActAgent (with multi-action buffering + PromptBuilder) -├── communication/ # Filesystem IPC: atomic JSON read/write, command/response schemas -├── evaluation/ # EvaluationRunner (sequential orchestrator), metrics aggregation -├── llm/ # LLMApiClient (OpenAI-compatible), DummyLLMServer -├── simulators/ # Simulator implementations (subprocess bridges) -│ ├── dummy/v1/ # In-memory dummy bridge for testing -│ └── ai2thor/v2_1_0/ # Real AI2-THOR 2.1.0 bridge for EB-Alfred -├── tasks/ # Task definitions (per-split YAML configs) -│ ├── dummy/ # dummy_task (3 test episodes) -│ └── ebalfred/ # EB-Alfred (6 splits: base, long_horizon, common_sense, etc.) -└── utils/ # import_class(), logging setup -``` +### Auto-Discovery +- **Simulators**: Discovered via `easi/simulators/*/manifest.yaml` +- **Tasks**: Discovered via `easi/tasks/*/*.yaml` +- Both use dotted import paths to load classes dynamically -### Key Patterns +## CLI Commands -- **Subprocess isolation**: Each simulator runs in its own conda env (e.g., Python 3.8 for ai2thor). The bridge script communicates via filesystem IPC (JSON files in a temp workspace). -- **Multi-split tasks**: Each task folder has one or more `*.yaml` config files. The registry discovers all YAMLs, each registering as a separate task (e.g., `ebalfred_base`, `ebalfred_spatial`). -- **EB-Alfred skills**: Actions are high-level skill text (e.g., `"find a Cabinet"`, `"pick up the Mug"`), NOT raw THOR API calls. The bridge translates these to THOR API sequences. -- **ReAct agent**: Uses a PromptBuilder protocol for task-specific prompts. Supports multi-action buffering (LLM returns a plan, agent executes one action per step, clears buffer on failure). -- **State tracking**: The AI2-THOR bridge tracks `cleaned_objects`, `cooled_objects`, `heated_objects` for EB-Alfred goal condition evaluation. +| Command | Description | +|---|---| +| `easi env list` | List available simulators | +| `easi env install ` | Install simulator conda env | +| `easi env check ` | Verify environment is ready | +| `easi task list` | List available tasks | +| `easi task info ` | Show task details | +| `easi task download ` | Download task dataset | +| `easi task scaffold ` | Generate new task boilerplate | +| `easi sim test ` | Smoke test a simulator bridge | +| `easi start ` | Run evaluation | +| `easi llm-server` | Start dummy LLM server | -### CLI +### Key `easi start` Options ```bash -easi env list|install|check # Manage simulator environments -easi task list|info|download # Manage tasks -easi sim test # Smoke test a simulator -easi start --agent dummy|react # Run evaluation (single task) -easi start --tasks t1,t2 --agent react # Run evaluation (multi-task) -easi llm-server [--port PORT] # Start dummy LLM server +easi start \ + --agent {dummy|react} \ + --backend {vllm|openai|anthropic|gemini} \ + --model \ + --num-parallel \ # Thread-pool parallelism (API backends only) + --max-episodes \ + --resume \ + --output-dir ./logs \ + --llm-kwargs '{"temperature": 0.7}' ``` -### Testing +## Output Structure + +``` +logs//_/ + config.json # CLI options + resolved config + summary.json # {"num_episodes": N, "metrics": {...}, "model": "...", ...} + episodes/ + 000_/ + result.json # Per-episode metrics + trajectory.jsonl # Action log (one JSON line per step) + step_0000.png # Observation images +``` + +## Testing ```bash -pip install -e ".[dev]" -python -m pytest tests/ -v --timeout=60 # 103 tests, ~60s +pytest tests/ -v --timeout=60 # Full suite (540 tests) +pytest tests/test_metrics.py -v # Specific file ``` -## Key References +All tests run offline without simulators or LLMs. Tests mock subprocess bridges and use DummyTask + DummyAgent. + +## Logging Convention + +```python +from easi.utils.logging import get_logger +logger = get_logger(__name__) +``` -- Test suite: `tests/` with pytest (103 tests covering all components) -- Evaluation logs go to `./results/` (configurable via `--output-dir`) -- Supported models (23) and benchmarks (25) are documented in `docs/Support_bench_models.md`. -- Benchmark verification against official scores is in `docs/Benchmark_Verification.md`. +Use `logger.info()` for user-facing messages, `logger.trace()` for detailed debug output. Never use `print()`. From 8952492f743b01a03c273aa85ba77d9adb5e0fe3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 20 Feb 2026 23:47:31 +0800 Subject: [PATCH 070/239] [Fix] Vendor amsolver, tools, vlm into EB-Manipulation to remove external repo dependency bridge.py no longer references EmbodiedBench/ at the repo root. _setup_amsolver_path() now points to easi/tasks/ebmanipulation/vendor/. Vendored packages: amsolver (9.6MB), tools/grasploc (92K), vlm/tasks only (180K, skipped 186MB object_models/). --- easi/tasks/ebmanipulation/bridge.py | 31 +- .../vendor/amsolver/__init__.py | 19 + .../vendor/amsolver/action_modes.py | 67 ++ .../vendor/amsolver/backend/__init__.py | 0 .../vendor/amsolver/backend/conditions.py | 212 +++++ .../vendor/amsolver/backend/const.py | 28 + .../vendor/amsolver/backend/exceptions.py | 21 + .../vendor/amsolver/backend/observation.py | 84 ++ .../vendor/amsolver/backend/robot.py | 37 + .../vendor/amsolver/backend/scene.py | 552 +++++++++++++ .../vendor/amsolver/backend/spawn_boundary.py | 191 +++++ .../vendor/amsolver/backend/task.py | 547 +++++++++++++ .../vendor/amsolver/backend/task_utils.py | 28 + .../vendor/amsolver/backend/unit_tasks.py | 741 ++++++++++++++++++ .../vendor/amsolver/backend/utils.py | 522 ++++++++++++ .../vendor/amsolver/backend/waypoints.py | 121 +++ .../ebmanipulation/vendor/amsolver/const.py | 260 ++++++ .../ebmanipulation/vendor/amsolver/demo.py | 18 + .../vendor/amsolver/environment.py | 252 ++++++ .../vendor/amsolver/gym/__init__.py | 28 + .../vendor/amsolver/gym/vlmbench_env.py | 106 +++ .../vendor/amsolver/noise_model.py | 29 + .../vendor/amsolver/observation_config.py | 140 ++++ .../vendor/amsolver/robot_ttms/jaco.ttm | Bin 0 -> 588730 bytes .../vendor/amsolver/robot_ttms/mico.ttm | Bin 0 -> 589908 bytes .../vendor/amsolver/robot_ttms/panda.ttm | Bin 0 -> 474146 bytes .../vendor/amsolver/robot_ttms/sawyer.ttm | Bin 0 -> 544465 bytes .../vendor/amsolver/robot_ttms/ur5.ttm | Bin 0 -> 353257 bytes .../amsolver/sim2real/domain_randomization.py | 82 ++ .../domain_randomization_environment.py | 51 ++ .../sim2real/domain_randomization_scene.py | 97 +++ .../vendor/amsolver/task_design.ttt | Bin 0 -> 6967399 bytes .../vendor/amsolver/task_environment.py | 676 ++++++++++++++++ .../ebmanipulation/vendor/amsolver/utils.py | 331 ++++++++ .../ebmanipulation/vendor/tools/__init__.py | 0 .../vendor/tools/assets/task_template.txt | 25 + .../vendor/tools/cinematic_recorder.py | 158 ++++ .../vendor/tools/dataset_generator_NLP.py | 401 ++++++++++ .../ebmanipulation/vendor/tools/grasploc.py | 277 +++++++ .../tools/meshlab_stratified_sampling.mlx | 8 + .../vendor/tools/task_builder_NLP.py | 312 ++++++++ .../vendor/tools/task_validator.py | 149 ++++ .../vendor/tools/test_config_generator.py | 259 ++++++ .../ebmanipulation/vendor/vlm/__init__.py | 0 .../vendor/vlm/tasks/__init__.py | 0 .../vendor/vlm/tasks/drop_pen.py | 141 ++++ .../vendor/vlm/tasks/drop_pen_color.py | 29 + .../vendor/vlm/tasks/drop_pen_relative.py | 50 ++ .../vendor/vlm/tasks/drop_pen_size.py | 57 ++ .../vendor/vlm/tasks/open_door.py | 131 ++++ .../vendor/vlm/tasks/open_door_complex.py | 136 ++++ .../vendor/vlm/tasks/open_drawer.py | 128 +++ .../vendor/vlm/tasks/open_drawer_cabinet.py | 22 + .../vendor/vlm/tasks/pick_cube.py | 101 +++ .../vendor/vlm/tasks/pick_cube_color.py | 38 + .../vendor/vlm/tasks/pick_cube_relative.py | 55 ++ .../vendor/vlm/tasks/pick_cube_shape.py | 46 ++ .../vendor/vlm/tasks/pick_cube_size.py | 57 ++ .../vlm/tasks/place_into_shape_sorter.py | 133 ++++ .../tasks/place_into_shape_sorter_color.py | 26 + .../tasks/place_into_shape_sorter_relative.py | 53 ++ .../tasks/place_into_shape_sorter_shape.py | 28 + .../vendor/vlm/tasks/pour_demo.py | 240 ++++++ .../vendor/vlm/tasks/pour_demo_color.py | 24 + .../vendor/vlm/tasks/pour_demo_relative.py | 43 + .../vendor/vlm/tasks/pour_demo_size.py | 48 ++ .../vendor/vlm/tasks/stack_cubes.py | 136 ++++ .../vendor/vlm/tasks/stack_cubes_color.py | 39 + .../vendor/vlm/tasks/stack_cubes_relative.py | 64 ++ .../vendor/vlm/tasks/stack_cubes_shape.py | 67 ++ .../vendor/vlm/tasks/stack_cubes_size.py | 73 ++ .../vendor/vlm/tasks/wipe_table.py | 218 ++++++ .../vendor/vlm/tasks/wipe_table_color.py | 23 + .../vendor/vlm/tasks/wipe_table_direction.py | 71 ++ .../vendor/vlm/tasks/wipe_table_relative.py | 40 + .../vendor/vlm/tasks/wipe_table_shape.py | 36 + .../vendor/vlm/tasks/wipe_table_size.py | 36 + 77 files changed, 9228 insertions(+), 21 deletions(-) create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/action_modes.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/conditions.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/const.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/exceptions.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/observation.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/robot.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/scene.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/spawn_boundary.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/task.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/task_utils.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/unit_tasks.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/utils.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/backend/waypoints.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/const.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/demo.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/environment.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/gym/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/gym/vlmbench_env.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/noise_model.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/observation_config.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/jaco.ttm create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/mico.ttm create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/panda.ttm create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/sawyer.ttm create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/ur5.ttm create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_environment.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_scene.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/task_design.ttt create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/task_environment.py create mode 100644 easi/tasks/ebmanipulation/vendor/amsolver/utils.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/assets/task_template.txt create mode 100644 easi/tasks/ebmanipulation/vendor/tools/cinematic_recorder.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/dataset_generator_NLP.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/grasploc.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/meshlab_stratified_sampling.mlx create mode 100644 easi/tasks/ebmanipulation/vendor/tools/task_builder_NLP.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/task_validator.py create mode 100644 easi/tasks/ebmanipulation/vendor/tools/test_config_generator.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/__init__.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_size.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door_complex.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer_cabinet.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_shape.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_size.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_shape.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_size.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_shape.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_size.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_color.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_direction.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_relative.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_shape.py create mode 100644 easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_size.py diff --git a/easi/tasks/ebmanipulation/bridge.py b/easi/tasks/ebmanipulation/bridge.py index 28a2c5e..1897d40 100644 --- a/easi/tasks/ebmanipulation/bridge.py +++ b/easi/tasks/ebmanipulation/bridge.py @@ -3,8 +3,8 @@ This script runs inside the easi_coppeliasim_v4_1_0 conda env (Python 3.10). Communicates with parent process via filesystem IPC. -The bridge adds AMSolver to sys.path at startup so the vendored EBManEnv -can import from amsolver (CoppeliaSim scene management). +The bridge adds vendored AMSolver (easi/tasks/ebmanipulation/vendor/amsolver/) +to sys.path at startup so EBManEnv can import from amsolver. It also handles: - Object coordinate extraction (form_object_coord_for_input) @@ -30,32 +30,21 @@ def _setup_amsolver_path(simulator_kwargs: dict, data_dir: str = "") -> None: - """Add AMSolver parent directory to sys.path and set TTMS_FOLDER. + """Add vendored AMSolver to sys.path and set TTMS_FOLDER. - AMSolver lives at EmbodiedBench/embodiedbench/envs/eb_manipulation/amsolver/. - The parent directory (eb_manipulation/) must be on sys.path so - ``import amsolver`` works. - - The path is configurable via simulator_kwargs['amsolver_parent_path']. - Default: auto-detect from repo root / EmbodiedBench submodule. - - Also sets amsolver.task_environment.TTMS_FOLDER to the extracted HF data - directory so AMSolver can find task templates, object models, and robot TTMs. + AMSolver is vendored at easi/tasks/ebmanipulation/vendor/amsolver/. + The vendor/ directory must be on sys.path so ``import amsolver`` works. """ - amsolver_parent = simulator_kwargs.get("amsolver_parent_path", "") - if not amsolver_parent: - # Auto-detect: try repo_root/EmbodiedBench/embodiedbench/envs/eb_manipulation - candidate = ( - _repo_root / "EmbodiedBench" / "embodiedbench" / "envs" / "eb_manipulation" - ) - if candidate.exists(): - amsolver_parent = str(candidate) + vendor_dir = str(Path(__file__).parent / "vendor") + if vendor_dir not in sys.path: + sys.path.insert(0, vendor_dir) + # Allow override via simulator_kwargs (for custom installations) + amsolver_parent = simulator_kwargs.get("amsolver_parent_path", "") if amsolver_parent and amsolver_parent not in sys.path: sys.path.insert(0, amsolver_parent) # Point AMSolver's TTMS_FOLDER to the HF dataset cache - # (contains vlm/, amsolver/robot_ttms/) if data_dir: import amsolver.task_environment as te diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/__init__.py b/easi/tasks/ebmanipulation/vendor/amsolver/__init__.py new file mode 100644 index 0000000..7791d6a --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/__init__.py @@ -0,0 +1,19 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +__version__ = '1.1.0' + +import numpy as np +import pyrep + +pr_v = np.array(pyrep.__version__.split('.'), dtype=int) +if pr_v.size < 4 or np.any(pr_v < np.array([4, 1, 0, 2])): + raise ImportError( + 'PyRep version must be greater than 4.1.0.2. Please update PyRep.') + + +from amsolver.environment import Environment +from amsolver.action_modes import ArmActionMode +from amsolver.observation_config import ObservationConfig +from amsolver.observation_config import CameraConfig +from amsolver.sim2real.domain_randomization import RandomizeEvery +from amsolver.sim2real.domain_randomization import VisualRandomizationConfig +from amsolver.sim2real.domain_randomization_environment import DomainRandomizationEnvironment diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/action_modes.py b/easi/tasks/ebmanipulation/vendor/amsolver/action_modes.py new file mode 100644 index 0000000..20ac6ff --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/action_modes.py @@ -0,0 +1,67 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from enum import Enum + + +class ArmActionMode(Enum): + + # Absolute arm joint velocities + ABS_JOINT_VELOCITY = 0 + + # Change in arm joint velocities + DELTA_JOINT_VELOCITY = 1 + + # Absolute arm joint positions/angles (in radians) + ABS_JOINT_POSITION = 2 + + # Change in arm joint positions/angles (in radians) + DELTA_JOINT_POSITION = 3 + + # Absolute arm joint forces/torques + ABS_JOINT_TORQUE = 4 + + # Change in arm joint forces/torques + DELTA_JOINT_TORQUE = 5 + + # Absolute end-effector pose (position (3) and quaternion (4)) + ABS_EE_POSE_WORLD_FRAME = 6 + + # Change in end-effector pose (position (3) and quaternion (4)) + DELTA_EE_POSE_WORLD_FRAME = 7 + + # Absolute end-effector pose (position (3) and quaternion (4)) + # But does path planning between these points + ABS_EE_POSE_PLAN_WORLD_FRAME = 8 + + # Absolute end-effector pose (position (3) and quaternion (4)) + # But does path planning between these points (with collision checking) + ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK = 9 + + # Change in end-effector pose (position (3) and quaternion (4)) + # But does path planning between these points + DELTA_EE_POSE_PLAN_WORLD_FRAME = 10 + + # Change in end-effector pose (position (3) and quaternion (4)) + # In the end-effector frame + EE_POSE_EE_FRAME = 11 + + # Change in end-effector pose (position (3) and quaternion (4)) + # But does path planning between these points. + # In the end-effector frame + EE_POSE_PLAN_EE_FRAME = 12 + + # NOTE: There is no ABS/DELTA mode for the EE_FRAME because ABS == DELTA + + +class GripperActionMode(Enum): + + # The open amount (0 >= x <= 1) of the gripper. 0 is close, 1 is open. + OPEN_AMOUNT = 0 + + +class ActionMode(object): + + def __init__(self, + arm: ArmActionMode = ArmActionMode.ABS_JOINT_VELOCITY, + gripper: GripperActionMode = GripperActionMode.OPEN_AMOUNT): + self.arm = arm + self.gripper = gripper diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/__init__.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/conditions.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/conditions.py new file mode 100644 index 0000000..6ad144c --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/conditions.py @@ -0,0 +1,212 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from typing import List +import math +from pyrep.objects.shape import Shape +from pyrep.objects.joint import Joint +from pyrep.objects.object import Object +from pyrep.objects.proximity_sensor import ProximitySensor +from pyrep.robots.end_effectors.gripper import Gripper + + +class Condition(object): + def condition_met(self): + raise NotImplementedError() + + def reset(self): + # Used if the conditions store any state. + pass + + +class ColorCondition(object): + def _init_(self, shape: Shape, success_rgb: List[float]): + self.shape = shape + self.success_rgb = success_rgb + + def condition_met(self): + obj_rgb = self.shape.get_color() + met = (obj_rgb == self.success_rgb) + return met, False + + +# class JointCondition(Condition): +# def __init__(self, joint: Joint, position: float): +# """in radians if revoloute, or meters if prismatic""" +# self._joint = joint +# self._original_pos = joint.get_joint_position() +# self._pos = position + +# def condition_met(self): +# met = math.fabs( +# self._joint.get_joint_position() - self._original_pos) > self._pos +# return met, False +class JointCondition(Condition): + def __init__(self, joint: Joint, position: float, position_bound = None): + """in radians if revoloute, or meters if prismatic""" + self._joint = joint.get_name() + self._original_pos = joint.get_joint_position() + self._pos = position + self._position_bound = position_bound + + def condition_met(self): + joint = Joint(self._joint) + current_angle = math.fabs( + joint.get_joint_position() - self._original_pos) + met = current_angle > self._pos + if self._position_bound is not None: + met = self._position_bound> current_angle > self._pos + return met, False + +# class DetectedCondition(Condition): +# def __init__(self, obj: Object, detector: ProximitySensor, +# negated: bool = False): +# self._obj = obj +# self._detector = detector +# self._negated = negated + +# def condition_met(self): +# try: +# met = self._detector.is_detected(self._obj) +# if self._negated: +# met = not met +# return met, False +# except: +# return False, False + +class DetectedCondition(Condition): + def __init__(self, obj: Object, detector: ProximitySensor, + negated: bool = False): + self._obj = obj.get_name() + self._detector = detector.get_name() + self._negated = negated + + def condition_met(self): + obj = Object.get_object(self._obj) + detector = ProximitySensor(self._detector) + try: + met = detector.is_detected(obj) + if self._negated: + met = not met + return met, False + except: + return False, False + +class NothingGrasped(Condition): + def __init__(self, gripper: Gripper): + self._gripper = gripper + + def condition_met(self): + met = len(self._gripper.get_grasped_objects()) == 0 + return met, False + + +class GraspedCondition(Condition): + def __init__(self, gripper: Gripper, object: Object): + self._gripper = gripper + self._object_handle = object.get_handle() + + def condition_met(self): + met = len([ob for ob in self._gripper.get_grasped_objects() + if self._object_handle == ob.get_handle()]) > 0 + return met, False + + +class DetectedSeveralCondition(Condition): + def __init__(self, objects: List[Object], detector: ProximitySensor, + number_needed: int): + self._objects = objects + self._detector = detector + self._number_needed = number_needed + + def condition_met(self): + count = 0 + for ob in self._objects: + if self._detector.is_detected(ob): + count += 1 + met = False + if count >= self._number_needed: + met = True + return met, False + + +class EmptyCondition(Condition): + + def __init__(self, container: list): + self._container = container + + def condition_met(self): + met = len(self._container) == 0 + return met, False + + +class FollowCondition(Condition): + + def __init__(self, obj: Object, points: list, + relative_to: Object = None, delta_limit: float = 0.01, + start_after_first: bool = True): + self._obj = obj + self._ponts = points + self._relative_to = relative_to + self._delta_limit = delta_limit + self._start_after_first = start_after_first + self._index = 0 + self._strikes = 0 + + def condition_met(self): + pos = self._obj.get_position(self._relative_to) + first = True + for i in range(self._index, len(self._ponts)): + p = self._ponts[i] + dist = math.sqrt((pos[0] - p[0]) ** 2 + + (pos[1] - p[1]) ** 2 + + (pos[2] - p[2]) ** 2) + # Check we aren't too far away from the next point + if dist > self._delta_limit: + # Check if we are ignoring until we reach the first point + if first and not (self._start_after_first and self._index == 0): + # If it is the first point, then we have failed + if self._strikes > 3: + return False, True + self._strikes += 1 + # Otherwise we have looped at least once and we may + # still be following the path + return False, False + # Only advance if we are super close + elif dist > self._delta_limit * 0.5: + return False, False + self._index += 1 + self._strikes = 0 + first = False + return True, False + + +class ConditionSet(Condition): + def __init__(self, conditions: List[Condition], order_matters: bool = False, + simultaneously_met: bool = True): + """alternative would be sequentially met""" + self._conditions = conditions + self._order_matters = order_matters + self._simultaneously_met = simultaneously_met # Probably wont use + self._current_condition_index = 0 + + def condition_met(self): + met = True + # term = False + if self._order_matters: + if self._current_condition_index < len(self._conditions): + for cond in self._conditions[self._current_condition_index:]: + ismet, term = cond.condition_met() + if not ismet: + break + self._current_condition_index += 1 + # Check again to see if we have now completed the order + met = self._current_condition_index >= len(self._conditions) + else: + for cond in self._conditions: + ismet, term = cond.condition_met() + met &= ismet + # if term: + # break + return met, False + + def reset(self): + self._current_condition_index = 0 \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/const.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/const.py new file mode 100644 index 0000000..161f47d --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/const.py @@ -0,0 +1,28 @@ +IMAGE_FORMAT = '%d.png' + +LEFT_SHOULDER_RGB_FOLDER = 'left_shoulder_rgb' +LEFT_SHOULDER_DEPTH_FOLDER = 'left_shoulder_depth' +LEFT_SHOULDER_MASK_FOLDER = 'left_shoulder_mask' +RIGHT_SHOULDER_RGB_FOLDER = 'right_shoulder_rgb' +RIGHT_SHOULDER_DEPTH_FOLDER = 'right_shoulder_depth' +RIGHT_SHOULDER_MASK_FOLDER = 'right_shoulder_mask' +OVERHEAD_RGB_FOLDER = 'overhead_rgb' +OVERHEAD_DEPTH_FOLDER = 'overhead_depth' +OVERHEAD_MASK_FOLDER = 'overhead_mask' +WRIST_RGB_FOLDER = 'wrist_rgb' +WRIST_DEPTH_FOLDER = 'wrist_depth' +WRIST_MASK_FOLDER = 'wrist_mask' +FRONT_RGB_FOLDER = 'front_rgb' +FRONT_DEPTH_FOLDER = 'front_depth' +FRONT_MASK_FOLDER = 'front_mask' +EPISODES_FOLDER = 'episodes' +EPISODE_FOLDER = 'episode%d' +VARIATIONS_FOLDER = 'variation%d' + +LOW_DIM_PICKLE = 'low_dim_obs.pkl' +VARIATION_DESCRIPTIONS = 'variation_descriptions.pkl' + +TTT_FILE = 'task_design.ttt' + +DEPTH_SCALE = 2**24 - 1 + diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/exceptions.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/exceptions.py new file mode 100644 index 0000000..6876c2e --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/exceptions.py @@ -0,0 +1,21 @@ +class BoundaryError(Exception): + """Raised when a boundary error occurs.""" + pass + + +class WaypointError(Exception): + """Raised when we place a task but cant complete it with path planning.""" + def __init__(self, message, task): + super().__init__('Error in task %s. %s' % (task.get_name(), message)) + + +class NoWaypointsError(Exception): + """Raised when there is no waypoints. So cant create demo.""" + def __init__(self, message, task): + super().__init__('Error in task %s. %s' % (task.get_name(), message)) + + +class DemoError(Exception): + """Raised when getting demo.""" + def __init__(self, message, task): + super().__init__('Error in task %s. %s' % (task.get_name(), message)) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/observation.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/observation.py new file mode 100644 index 0000000..aae73ef --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/observation.py @@ -0,0 +1,84 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +import numpy as np + + +class Observation(object): + """Storage for both visual and low-dimensional observations.""" + + def __init__(self, + left_shoulder_rgb: np.ndarray, + left_shoulder_depth: np.ndarray, + left_shoulder_mask: np.ndarray, + left_shoulder_point_cloud: np.ndarray, + right_shoulder_rgb: np.ndarray, + right_shoulder_depth: np.ndarray, + right_shoulder_mask: np.ndarray, + right_shoulder_point_cloud: np.ndarray, + overhead_rgb: np.ndarray, + overhead_depth: np.ndarray, + overhead_mask: np.ndarray, + overhead_point_cloud: np.ndarray, + wrist_rgb: np.ndarray, + wrist_depth: np.ndarray, + wrist_mask: np.ndarray, + wrist_point_cloud: np.ndarray, + front_rgb: np.ndarray, + front_depth: np.ndarray, + front_mask: np.ndarray, + front_point_cloud: np.ndarray, + joint_velocities: np.ndarray, + joint_positions: np.ndarray, + joint_forces: np.ndarray, + gripper_open: float, + gripper_pose: np.ndarray, + gripper_matrix: np.ndarray, + gripper_joint_positions: np.ndarray, + gripper_touch_forces: np.ndarray, + task_low_dim_state: np.ndarray, + misc: dict, + object_informations: dict): + self.left_shoulder_rgb = left_shoulder_rgb + self.left_shoulder_depth = left_shoulder_depth + self.left_shoulder_mask = left_shoulder_mask + self.left_shoulder_point_cloud = left_shoulder_point_cloud + self.right_shoulder_rgb = right_shoulder_rgb + self.right_shoulder_depth = right_shoulder_depth + self.right_shoulder_mask = right_shoulder_mask + self.right_shoulder_point_cloud = right_shoulder_point_cloud + self.overhead_rgb = overhead_rgb + self.overhead_depth = overhead_depth + self.overhead_mask = overhead_mask + self.overhead_point_cloud = overhead_point_cloud + self.wrist_rgb = wrist_rgb + self.wrist_depth = wrist_depth + self.wrist_mask = wrist_mask + self.wrist_point_cloud = wrist_point_cloud + self.front_rgb = front_rgb + self.front_depth = front_depth + self.front_mask = front_mask + self.front_point_cloud = front_point_cloud + self.joint_velocities = joint_velocities + self.joint_positions = joint_positions + self.joint_forces = joint_forces + self.gripper_open = gripper_open + self.gripper_pose = gripper_pose + self.gripper_matrix = gripper_matrix + self.gripper_joint_positions = gripper_joint_positions + self.gripper_touch_forces = gripper_touch_forces + self.task_low_dim_state = task_low_dim_state + self.misc = misc + self.object_informations = object_informations + + def get_low_dim_data(self) -> np.ndarray: + """Gets a 1D array of all the low-dimensional obseervations. + + :return: 1D array of observations. + """ + low_dim_data = [] if self.gripper_open is None else [[self.gripper_open]] + for data in [self.joint_velocities, self.joint_positions, + self.joint_forces, + self.gripper_pose, self.gripper_joint_positions, + self.gripper_touch_forces, self.task_low_dim_state]: + if data is not None: + low_dim_data.append(data) + return np.concatenate(low_dim_data) if len(low_dim_data) > 0 else np.array([]) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/robot.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/robot.py new file mode 100644 index 0000000..a1252cd --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/robot.py @@ -0,0 +1,37 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from pyrep.robots.arms.arm import Arm +from pyrep.robots.end_effectors.gripper import Gripper + + +class Robot(object): + """Simple container for the robot components. + """ + + def __init__(self, arm: Arm, gripper: Gripper): + self.arm = arm + self.gripper = gripper + self._start_arm_joint_pos = arm.get_joint_positions() + self._starting_gripper_joint_pos = gripper.get_joint_positions() + self._initial_robot_state = (arm.get_configuration_tree(), + gripper.get_configuration_tree()) + + def reset(self): + self.gripper.release() + self.arm.set_joint_positions(self._start_arm_joint_pos, disable_dynamics=True) + self.arm.set_joint_target_velocities([0] * len(self.arm.joints)) + self.gripper.set_joint_positions(self._starting_gripper_joint_pos, disable_dynamics=True) + self.gripper.set_joint_target_velocities([0] * len(self.gripper.joints)) + + def save_state(self): + saved_arm_joint_pos = self.arm.get_joint_positions() + saved_gripper_joint_pos = self.gripper.get_joint_positions() + return [saved_arm_joint_pos, saved_gripper_joint_pos] + + def recover_state(self, saved_states, release=False): + if release: + self.gripper.release() + saved_arm_joint_pos, saved_gripper_joint_pos = saved_states + self.arm.set_joint_positions(saved_arm_joint_pos, disable_dynamics=True) + self.arm.set_joint_target_velocities([0] * len(self.arm.joints)) + self.gripper.set_joint_positions(saved_gripper_joint_pos, disable_dynamics=True) + self.gripper.set_joint_target_velocities([0] * len(self.gripper.joints)) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/scene.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/scene.py new file mode 100644 index 0000000..5b6d0da --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/scene.py @@ -0,0 +1,552 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from typing import List, Callable + +import numpy as np +from numpy.lib.function_base import place +from pyrep import PyRep +from pyrep.const import ObjectType +from pyrep.errors import ConfigurationPathError +from pyrep.objects import Dummy +from pyrep.objects.shape import Shape +from pyrep.objects.vision_sensor import VisionSensor + +from amsolver.backend.exceptions import ( + WaypointError, BoundaryError, NoWaypointsError, DemoError) +from amsolver.backend.observation import Observation +from amsolver.backend.robot import Robot +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import WriteCustomDataBlock, import_distractors, rgb_handles_to_mask +from amsolver.demo import Demo +from amsolver.noise_model import NoiseModel +from amsolver.observation_config import ObservationConfig, CameraConfig + +STEPS_BEFORE_EPISODE_START = 10 + + +class Scene(object): + """Controls what is currently in the vrep scene. This is used for making + sure that the tasks are easily reachable. This may be just replaced by + environment. Responsible for moving all the objects. """ + + def __init__(self, pyrep: PyRep, robot: Robot, + obs_config=ObservationConfig(), add_distractors=False): + self._pyrep = pyrep + self._robot = robot + self._obs_config = obs_config + self._active_task = None + self._initial_task_state = None + self._start_arm_joint_pos = robot.arm.get_joint_positions() + self._starting_gripper_joint_pos = robot.gripper.get_joint_positions() + self._workspace = Shape('workspace') + self._workspace_boundary = SpawnBoundary([self._workspace]) + self._cam_over_shoulder_left = VisionSensor('cam_over_shoulder_left') + self._cam_over_shoulder_right = VisionSensor('cam_over_shoulder_right') + self._cam_overhead = VisionSensor('cam_overhead') + self._cam_wrist = VisionSensor('cam_wrist') + self._cam_front = VisionSensor('cam_front') + self._cam_over_shoulder_left_mask = VisionSensor( + 'cam_over_shoulder_left_mask') + self._cam_over_shoulder_right_mask = VisionSensor( + 'cam_over_shoulder_right_mask') + self._cam_overhead_mask = VisionSensor('cam_overhead_mask') + self._cam_wrist_mask = VisionSensor('cam_wrist_mask') + self._cam_front_mask = VisionSensor('cam_front_mask') + self._has_init_task = self._has_init_episode = False + self._variation_index = 0 + self.add_distractors = add_distractors + self.distractors = [] + + self._initial_robot_state = (robot.arm.get_configuration_tree(), + robot.gripper.get_configuration_tree()) + + # Set camera properties from observation config + self._set_camera_properties() + + x, y, z = self._workspace.get_position() + minx, maxx, miny, maxy, _, _ = self._workspace.get_bounding_box() + self._workspace_minx = x - np.fabs(minx) - 0.2 + self._workspace_maxx = x + maxx + 0.2 + self._workspace_miny = y - np.fabs(miny) - 0.2 + self._workspace_maxy = y + maxy + 0.2 + self._workspace_minz = z - 0.04 + self._workspace_maxz = z + 1.0 # 1M above workspace + + self.target_workspace_check = Dummy.create() + self._step_callback = None + + self._robot_shapes = self._robot.arm.get_objects_in_tree( + object_type=ObjectType.SHAPE) + self.gripper_step = 0.5 + def load(self, task: Task, ttms_folder = None) -> None: + """Loads the task and positions at the centre of the workspace. + + :param task: The task to load in the scene. + """ + task.load(ttms_folder) # Load the task in to the scene + + # Set at the centre of the workspace + task.get_base().set_position(self._workspace.get_position()) + + self._initial_task_state = task.get_state() + self._active_task = task + self._initial_task_pose = task.boundary_root().get_orientation() + self._has_init_task = self._has_init_episode = False + self._variation_index = 0 + + def unload(self) -> None: + """Clears the scene. i.e. removes all tasks. """ + if self._active_task is not None: + self._robot.gripper.release() + if self._has_init_task: + self._active_task.cleanup_() + self._active_task.unload() + self._active_task = None + self._variation_index = 0 + + def init_task(self) -> None: + self._active_task.init_task() + self._initial_task_state = self._active_task.get_state() + self._has_init_task = True + self._variation_index = 0 + + def init_episode(self, index: int, randomly_place: bool=True, + max_attempts: int = 5) -> List[str]: + """Calls the task init_episode and puts randomly in the workspace. + """ + + self._variation_index = index + + if not self._has_init_task: + self.init_task() + + # Try a few times to init and place in the workspace + attempts = 0 + self.descriptions = None + while attempts < max_attempts: + try: + if (randomly_place and + not self._active_task.is_static_workspace()): + self._place_task() + self.descriptions = self._active_task.init_episode(index) + self._active_task.validate() + break + except (BoundaryError, WaypointError) as e: + # self._active_task.cleanup_() + # self._active_task.restore_state(self._initial_task_state) + self.reset() + attempts += 1 + if attempts >= max_attempts: + raise e + # Let objects come to rest + [self._pyrep.step() for _ in range(STEPS_BEFORE_EPISODE_START)] + self._has_init_episode = True + if self.add_distractors: + distractors = import_distractors(self._pyrep) + for d in distractors: + self._workspace_boundary.sample(d, min_distance=0.05) + self.distractors.append(d) + return self.descriptions + + def reset(self) -> None: + """Resets the joint angles. """ + self._robot.gripper.release() + + arm, gripper = self._initial_robot_state + self._pyrep.set_configuration_tree(arm) + self._pyrep.set_configuration_tree(gripper) + self._robot.arm.set_joint_positions(self._start_arm_joint_pos, disable_dynamics=True) + self._robot.arm.set_joint_target_velocities( + [0] * len(self._robot.arm.joints)) + self._robot.gripper.set_joint_positions( + self._starting_gripper_joint_pos, disable_dynamics=True) + self._robot.gripper.set_joint_target_velocities( + [0] * len(self._robot.gripper.joints)) + + if self._active_task is not None and self._has_init_task: + self._active_task.cleanup_() + self._active_task.restore_state(self._initial_task_state) + elif not self._has_init_task: + self.init_task() + self._active_task.set_initial_objects_in_scene() + if len(self.distractors)!=0: + for d in self.distractors: + d.remove() + self._workspace_boundary._boundaries[0]._contained_objects.remove(d) + self.distractors = [] + + def get_observation(self) -> Observation: + tip = self._robot.arm.get_tip() + + joint_forces = None + if self._obs_config.joint_forces: + fs = self._robot.arm.get_joint_forces() + vels = self._robot.arm.get_joint_target_velocities() + joint_forces = self._obs_config.joint_forces_noise.apply( + np.array([-f if v < 0 else f for f, v in zip(fs, vels)])) + + ee_forces_flat = None + if self._obs_config.gripper_touch_forces: + ee_forces = self._robot.gripper.get_touch_sensor_forces() + ee_forces_flat = [] + for eef in ee_forces: + ee_forces_flat.extend(eef) + ee_forces_flat = np.array(ee_forces_flat) + + lsc_ob = self._obs_config.left_shoulder_camera + rsc_ob = self._obs_config.right_shoulder_camera + oc_ob = self._obs_config.overhead_camera + wc_ob = self._obs_config.wrist_camera + fc_ob = self._obs_config.front_camera + + lsc_mask_fn, rsc_mask_fn, oc_mask_fn, wc_mask_fn, fc_mask_fn = [ + (rgb_handles_to_mask if c.masks_as_one_channel else lambda x: x + ) for c in [lsc_ob, rsc_ob, oc_ob, wc_ob, fc_ob]] + + def get_rgb_depth(sensor: VisionSensor, get_rgb: bool, get_depth: bool, + get_pcd: bool, rgb_noise: NoiseModel, + depth_noise: NoiseModel, depth_in_meters: bool): + rgb = depth = pcd = None + if sensor is not None and (get_rgb or get_depth): + sensor.handle_explicitly() + if get_rgb: + rgb = sensor.capture_rgb() + if rgb_noise is not None: + rgb = rgb_noise.apply(rgb) + rgb = np.clip((rgb * 255.).astype(np.uint8), 0, 255) + if get_depth or get_pcd: + depth = sensor.capture_depth(depth_in_meters) + if depth_noise is not None: + depth = depth_noise.apply(depth) + if get_pcd: + depth_m = depth + if not depth_in_meters: + near = sensor.get_near_clipping_plane() + far = sensor.get_far_clipping_plane() + depth_m = near + depth * (far - near) + pcd = sensor.pointcloud_from_depth(depth_m) + if not get_depth: + depth = None + return rgb, depth, pcd + + def get_mask(sensor: VisionSensor, mask_fn): + mask = None + if sensor is not None: + sensor.handle_explicitly() + mask = mask_fn(sensor.capture_rgb()) + return mask + + left_shoulder_rgb, left_shoulder_depth, left_shoulder_pcd = get_rgb_depth( + self._cam_over_shoulder_left, lsc_ob.rgb, lsc_ob.depth, lsc_ob.point_cloud, + lsc_ob.rgb_noise, lsc_ob.depth_noise, lsc_ob.depth_in_meters) + right_shoulder_rgb, right_shoulder_depth, right_shoulder_pcd = get_rgb_depth( + self._cam_over_shoulder_right, rsc_ob.rgb, rsc_ob.depth, rsc_ob.point_cloud, + rsc_ob.rgb_noise, rsc_ob.depth_noise, rsc_ob.depth_in_meters) + overhead_rgb, overhead_depth, overhead_pcd = get_rgb_depth( + self._cam_overhead, oc_ob.rgb, oc_ob.depth, oc_ob.point_cloud, + oc_ob.rgb_noise, oc_ob.depth_noise, oc_ob.depth_in_meters) + wrist_rgb, wrist_depth, wrist_pcd = get_rgb_depth( + self._cam_wrist, wc_ob.rgb, wc_ob.depth, wc_ob.point_cloud, + wc_ob.rgb_noise, wc_ob.depth_noise, wc_ob.depth_in_meters) + front_rgb, front_depth, front_pcd = get_rgb_depth( + self._cam_front, fc_ob.rgb, fc_ob.depth, fc_ob.point_cloud, + fc_ob.rgb_noise, fc_ob.depth_noise, fc_ob.depth_in_meters) + + left_shoulder_mask = get_mask(self._cam_over_shoulder_left_mask, + lsc_mask_fn) if lsc_ob.mask else None + right_shoulder_mask = get_mask(self._cam_over_shoulder_right_mask, + rsc_mask_fn) if rsc_ob.mask else None + overhead_mask = get_mask(self._cam_overhead_mask, + oc_mask_fn) if oc_ob.mask else None + wrist_mask = get_mask(self._cam_wrist_mask, + wc_mask_fn) if wc_ob.mask else None + front_mask = get_mask(self._cam_front_mask, + fc_mask_fn) if fc_ob.mask else None + + obs = Observation( + left_shoulder_rgb=left_shoulder_rgb, + left_shoulder_depth=left_shoulder_depth, + left_shoulder_point_cloud=left_shoulder_pcd, + right_shoulder_rgb=right_shoulder_rgb, + right_shoulder_depth=right_shoulder_depth, + right_shoulder_point_cloud=right_shoulder_pcd, + overhead_rgb=overhead_rgb, + overhead_depth=overhead_depth, + overhead_point_cloud=overhead_pcd, + wrist_rgb=wrist_rgb, + wrist_depth=wrist_depth, + wrist_point_cloud=wrist_pcd, + front_rgb=front_rgb, + front_depth=front_depth, + front_point_cloud=front_pcd, + left_shoulder_mask=left_shoulder_mask, + right_shoulder_mask=right_shoulder_mask, + overhead_mask=overhead_mask, + wrist_mask=wrist_mask, + front_mask=front_mask, + joint_velocities=( + self._obs_config.joint_velocities_noise.apply( + np.array(self._robot.arm.get_joint_velocities())) + if self._obs_config.joint_velocities else None), + joint_positions=( + self._obs_config.joint_positions_noise.apply( + np.array(self._robot.arm.get_joint_positions())) + if self._obs_config.joint_positions else None), + joint_forces=(joint_forces + if self._obs_config.joint_forces else None), + gripper_open=( + (1.0 if self._robot.gripper.get_open_amount()[0] > 0.9 else 0.0) + if self._obs_config.gripper_open else None), + gripper_pose=( + np.array(tip.get_pose()) + if self._obs_config.gripper_pose else None), + gripper_matrix=( + tip.get_matrix() + if self._obs_config.gripper_matrix else None), + gripper_touch_forces=( + ee_forces_flat + if self._obs_config.gripper_touch_forces else None), + gripper_joint_positions=( + np.array(self._robot.gripper.get_joint_positions()) + if self._obs_config.gripper_joint_positions else None), + task_low_dim_state=( + self._active_task.get_low_dim_state() if + self._obs_config.task_low_dim_state else None), + misc=self._get_misc(), + object_informations = self._active_task.objects_information()) + obs = self._active_task.decorate_observation(obs) + return obs + + def step(self): + self._pyrep.step() + self._active_task.step() + if self._step_callback is not None: + self._step_callback() + + def register_step_callback(self, func): + self._step_callback = func + + def get_demo(self, record: bool = True, + callable_each_step: Callable[[Observation], None] = None, + randomly_place: bool = True) -> Demo: + """Returns a demo (list of observations)""" + + if not self._has_init_task: + self.init_task() + if not self._has_init_episode: + self.init_episode(self._variation_index, + randomly_place=randomly_place) + init_states = self._active_task.get_base().get_configuration_tree() + self._has_init_episode = False + waypoints = self._active_task.get_waypoints() + if len(waypoints) == 0: + raise NoWaypointsError( + 'No waypoints were found.', self._active_task) + + demo = [] + self.low_level_description = waypoints[0].low_level_descriptions + self.current_waypoint_name = 'waypoint0' + if record: + self._pyrep.step() # Need this here or get_force doesn't work... + demo.append(self.get_observation()) + demo[-1].low_level_description = self.low_level_description + demo[-1].current_waypoint_name = self.current_waypoint_name + while True: + success = False + for i, point in enumerate(waypoints): + self.current_waypoint_name = point.name + point.start_of_path() + grasped_objects = self._robot.gripper.get_grasped_objects() + colliding_shapes = [s for s in self._pyrep.get_objects_in_tree( + object_type=ObjectType.SHAPE) if s not in grasped_objects + and s not in self._robot_shapes and s.is_collidable() + and self._robot.arm.check_arm_collision(s)] + [s.set_collidable(False) for s in colliding_shapes] + try: + path = point.get_path() + [s.set_collidable(True) for s in colliding_shapes] + except ConfigurationPathError as e: + [s.set_collidable(True) for s in colliding_shapes] + raise DemoError( + 'Could not get a path for waypoint %d.' % i, + self._active_task) from e + # ext = point.get_ext() + path.visualize() + + # if len(ext)>0: + # if 'open_gripper' in ext: + # low_level_description = 'Open the gripper' + # elif 'close_gripper' in ext: + # low_level_description = 'Grasp the object' + # elif 'linear' in ext: + # low_level_description = 'Rotate the gripper' + # elif 'ignore_collisions' in ext: + # low_level_description = ext.replace('ignore_collisions;','') + # elif 'format' in ext: + # task = self._active_task + # low_level_description = eval(ext) + # else: + # low_level_description = ext + # else: + # low_level_description = None + + done = False + success = False + if point.low_level_descriptions is not None: + self.low_level_description = point.low_level_descriptions + while not done: + done = path.step() + self.step() + self._demo_record_step(demo, record, callable_each_step) + success, term = self._active_task.success() + + point.end_of_path() + + path.clear_visualization() + + if point.gripper_control is not None: + gripper = self._robot.gripper + if point.gripper_control[0]=='open': + gripper.release() + done = False + while not done: + done = gripper.actuate(point.gripper_control[1], self.gripper_step) + self._pyrep.step() + self._active_task.step() + if self._obs_config.record_gripper_closing: + self._demo_record_step( + demo, record, callable_each_step) + if point.gripper_control[0]=='close': + for g_obj in self._active_task.get_graspable_objects(): + gripper.grasp(g_obj) + + self._demo_record_step(demo, record, callable_each_step) + + if not self._active_task.should_repeat_waypoints() or success: + break + + # Some tasks may need additional physics steps + # (e.g. ball rowling to goal) + if not success: + for _ in range(20): + self._pyrep.step() + self._active_task.step() + self._demo_record_step(demo, record, callable_each_step) + success, term = self._active_task.success() + if success: + break + + success, term = self._active_task.success() + # if not success: + # raise DemoError('Demo was completed, but was not successful.', + # self._active_task) + d = Demo(demo) + d.high_level_instructions = self.descriptions + self._robot.gripper.release() + self._pyrep.set_configuration_tree(init_states) + return d, success + + def get_observation_config(self) -> ObservationConfig: + return self._obs_config + + def check_target_in_workspace(self, target_pos: np.ndarray) -> bool: + x, y, z = target_pos + return (self._workspace_maxx > x > self._workspace_minx and + self._workspace_maxy > y > self._workspace_miny and + self._workspace_maxz > z > self._workspace_minz) + + def _demo_record_step(self, demo_list, record, func): + if record: + demo = self.get_observation() + demo.low_level_description = self.low_level_description + demo.current_waypoint_name = self.current_waypoint_name + demo_list.append(demo) + if func is not None: + func(self.get_observation()) + + def _set_camera_properties(self) -> None: + def _set_rgb_props(rgb_cam: VisionSensor, + rgb: bool, depth: bool, conf: CameraConfig): + if not (rgb or depth or conf.point_cloud): + rgb_cam.remove() + else: + rgb_cam.set_explicit_handling(1) + rgb_cam.set_resolution(conf.image_size) + rgb_cam.set_render_mode(conf.render_mode) + + def _set_mask_props(mask_cam: VisionSensor, mask: bool, + conf: CameraConfig): + if not mask: + mask_cam.remove() + else: + mask_cam.set_explicit_handling(1) + mask_cam.set_resolution(conf.image_size) + _set_rgb_props( + self._cam_over_shoulder_left, + self._obs_config.left_shoulder_camera.rgb, + self._obs_config.left_shoulder_camera.depth, + self._obs_config.left_shoulder_camera) + _set_rgb_props( + self._cam_over_shoulder_right, + self._obs_config.right_shoulder_camera.rgb, + self._obs_config.right_shoulder_camera.depth, + self._obs_config.right_shoulder_camera) + _set_rgb_props( + self._cam_overhead, + self._obs_config.overhead_camera.rgb, + self._obs_config.overhead_camera.depth, + self._obs_config.overhead_camera) + _set_rgb_props( + self._cam_wrist, self._obs_config.wrist_camera.rgb, + self._obs_config.wrist_camera.depth, + self._obs_config.wrist_camera) + _set_rgb_props( + self._cam_front, self._obs_config.front_camera.rgb, + self._obs_config.front_camera.depth, + self._obs_config.front_camera) + _set_mask_props( + self._cam_over_shoulder_left_mask, + self._obs_config.left_shoulder_camera.mask, + self._obs_config.left_shoulder_camera) + _set_mask_props( + self._cam_over_shoulder_right_mask, + self._obs_config.right_shoulder_camera.mask, + self._obs_config.right_shoulder_camera) + _set_mask_props( + self._cam_overhead_mask, + self._obs_config.overhead_camera.mask, + self._obs_config.overhead_camera) + _set_mask_props( + self._cam_wrist_mask, self._obs_config.wrist_camera.mask, + self._obs_config.wrist_camera) + _set_mask_props( + self._cam_front_mask, self._obs_config.front_camera.mask, + self._obs_config.front_camera) + + def _place_task(self) -> None: + self._workspace_boundary.clear() + # Find a place in the robot workspace for task + self._active_task.boundary_root().set_orientation( + self._initial_task_pose) + min_rot, max_rot = self._active_task.base_rotation_bounds() + self._workspace_boundary.sample( + self._active_task.boundary_root(), + min_rotation=min_rot, max_rotation=max_rot, place_above_plane=False) + + def _get_misc(self): + def _get_cam_data(cam: VisionSensor, name: str): + d = {} + if cam.still_exists(): + d = { + '%s_extrinsics' % name: cam.get_matrix(), + '%s_intrinsics' % name: cam.get_intrinsic_matrix(), + '%s_near' % name: cam.get_near_clipping_plane(), + '%s_far' % name: cam.get_far_clipping_plane(), + } + return d + misc = _get_cam_data(self._cam_over_shoulder_left, 'left_shoulder_camera') + misc.update(_get_cam_data(self._cam_over_shoulder_right, 'right_shoulder_camera')) + misc.update(_get_cam_data(self._cam_overhead, 'overhead_camera')) + misc.update(_get_cam_data(self._cam_front, 'front_camera')) + misc.update(_get_cam_data(self._cam_wrist, 'wrist_camera')) + return misc diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/spawn_boundary.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/spawn_boundary.py new file mode 100644 index 0000000..a4055b1 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/spawn_boundary.py @@ -0,0 +1,191 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from typing import List +import numpy as np +import math +from amsolver.backend.exceptions import BoundaryError +from pyrep.objects.object import Object + + +class BoundingBox(object): + def __init__(self, min_x: float, max_x: float, min_y: float, max_y: float, + min_z: float, max_z: float): + self.min_x = min_x + self.max_x = max_x + self.min_y = min_y + self.max_y = max_y + self.min_z = min_z + self.max_z = max_z + self.points = [[min_x, min_y, min_z], [max_x, min_y, min_z], + [min_x, max_y, min_z], [max_x, max_y, min_z], + [min_x, min_y, max_z], [max_x, min_y, max_z], + [min_x, max_y, max_z], [max_x, max_y, max_z]] + + def rotate(self, theta: np.ndarray) -> 'BoundingBox': + r_x = np.array([[1, 0, 0], + [0, math.cos(theta[0]), -math.sin(theta[0])], + [0, math.sin(theta[0]), math.cos(theta[0])] + ]) + r_y = np.array([[math.cos(theta[1]), 0, math.sin(theta[1])], + [0, 1, 0], + [-math.sin(theta[1]), 0, math.cos(theta[1])] + ]) + r_z = np.array([[math.cos(theta[2]), -math.sin(theta[2]), 0], + [math.sin(theta[2]), math.cos(theta[2]), 0], + [0, 0, 1] + ]) + r = np.dot(r_z, np.dot(r_y, r_x)) + new_points = np.dot(self.points, r) + return BoundingBox(np.amin(new_points[:, 0]), np.amax(new_points[:, 0]), + np.amin(new_points[:, 1]), np.amax(new_points[:, 1]), + np.amin(new_points[:, 2]), np.amax(new_points[:, 2])) + + def within_boundary(self, boundary: 'BoundingBox', is_plane: bool) -> bool: + z_cond = True + if not is_plane: + z_cond = self.min_z > boundary.min_z and self.max_z < boundary.max_z + return (self.min_x > boundary.min_x and self.max_x < boundary.max_x and + self.min_y > boundary.min_y and self.max_y < boundary.max_y and + z_cond) + + +class BoundaryObject(object): + + def __init__(self, boundary: Object): + self._boundary = boundary + self._is_plane = False + self._contained_objects = [] + + if boundary.is_model(): + (minx, maxx, miny, + maxy, minz, maxz) = boundary.get_model_bounding_box() + else: + minx, maxx, miny, maxy, minz, maxz = boundary.get_bounding_box() + self._boundary_bbox = BoundingBox(minx, maxx, miny, maxy, minz, maxz) + + if hasattr(boundary, "_is_plane"): + self._is_plane = boundary._is_plane + height = np.abs(maxz - minz) + if height <= 1e-4: + height = 1.0 + self._is_plane = True + self._area = np.abs(maxx - minx) * np.abs(maxy - miny) * height + + def _get_position_within_boundary(self, obj: Object, obj_bbox: BoundingBox, + place_above_plane=True) -> List[float]: + x = np.random.uniform( + self._boundary_bbox.min_x + np.abs(obj_bbox.min_x), + self._boundary_bbox.max_x - np.abs(obj_bbox.max_x)) + y = np.random.uniform( + self._boundary_bbox.min_y + np.abs(obj_bbox.min_y), + self._boundary_bbox.max_y - np.abs(obj_bbox.max_y)) + if self._is_plane: + # _, _, z = obj.get_position(self._boundary) + if place_above_plane: + # z = (obj_bbox.max_z-obj_bbox.min_z)/2 + 0.001 + z = (-obj_bbox.min_z)+self._boundary_bbox.max_z+0.005 + else: + _, _, z = obj.get_position(self._boundary) + else: + z = np.random.uniform( + self._boundary_bbox.min_z + np.abs(obj_bbox.min_z), + self._boundary_bbox.max_z - np.abs(obj_bbox.max_z)) + return [x, y, z] + + def get_area(self) -> float: + return self._area + + def add(self, obj: Object, ignore_collisions: bool = False, + min_rotation: tuple = (0.0, 0.0, -3.14), + max_rotation: tuple = (0.0, 0.0, 3.14), + min_distance: float = 0.01, place_above_plane=True) -> int: + """Returns true if can add and adds it + rotation_limits: how mush we allow it to rotate from its original + position""" + + # Rotate the bounding box randomly + if obj.is_model(): + bb = obj.get_model_bounding_box() + else: + bb = obj.get_bounding_box() + obj_bbox = BoundingBox(*bb) + rotation = np.random.uniform(list(min_rotation), list(max_rotation)) + obj_bbox = obj_bbox.rotate(rotation) + + if not obj_bbox.within_boundary(self._boundary_bbox, self._is_plane): + return -1 + + new_pos = self._get_position_within_boundary(obj, obj_bbox, place_above_plane = place_above_plane) + obj.set_position(new_pos, self._boundary) + obj.rotate(list(rotation)) + new_pos = np.array(new_pos) + + if not ignore_collisions: + for contained_obj in self._contained_objects: + if contained_obj.still_exists(): + # Check for collision between each child + for cont_ob in contained_obj.get_objects_in_tree( + exclude_base=False): + for placing_ob in obj.get_objects_in_tree( + exclude_base=False): + if placing_ob.check_collision(cont_ob): + return -2 + dist = np.linalg.norm( + new_pos - contained_obj.get_position(self._boundary)) + if dist < min_distance: + return -3 + self._contained_objects.append(obj) + return 1 + + def clear(self) -> None: + self._contained_objects = [] + + +class SpawnBoundary(object): + + MAX_SAMPLES = 100 + + def __init__(self, boundaries: List[Object]): + self._boundaries = [] + areas = [] + for b in boundaries: + bo = BoundaryObject(b) + areas.append(bo.get_area()) + self._boundaries.append(bo) + self._probabilities = np.array(areas) / np.sum(areas) + + def sample(self, obj: Object, ignore_collisions=False, + min_rotation=(0.0, 0.0, -3.14), max_rotation=(0.0, 0.0, 3.14), + min_distance=0.01, place_above_plane=True) -> None: + """ + returns a position within the specified boundary. Calculated using a + weighted percentage. + set ignore_collisions if you are happy with things being stacked on top of each other + set rotation_range to be (0, 0) if you don't want it to rotate + :return: + """ + begin_pose = obj.get_pose() + collision_fails = boundary_fails = self.MAX_SAMPLES + while collision_fails > 0 and boundary_fails > 0: + sampled_boundary = np.random.choice(self._boundaries, + p=self._probabilities) + result = sampled_boundary.add( + obj, ignore_collisions, min_rotation, max_rotation, min_distance, place_above_plane) + if result == -1: + boundary_fails -= 1 + elif result == -2: + collision_fails -= 1 + elif result == -3: + boundary_fails -= 1 + else: + break + obj.set_pose(begin_pose) + if boundary_fails <= 0: + raise BoundaryError('Could not place within boundary.' + 'Perhaps the object is too big for it?') + elif collision_fails <= 0: + raise BoundaryError( + 'Could not place the object within the boundary due to ' + 'collision with other objects in the boundary.') + + def clear(self) -> None: + [b.clear() for b in self._boundaries] diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/task.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/task.py new file mode 100644 index 0000000..37a57b5 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/task.py @@ -0,0 +1,547 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +import os +import re +from os.path import dirname, abspath, join +from typing import List, Tuple, Callable, Union + +import numpy as np +from pyrep import PyRep +from pyrep.backend.utils import script_call +from pyrep.const import PYREP_SCRIPT_TYPE, ObjectType +from pyrep.errors import ConfigurationPathError +from pyrep.objects.cartesian_path import CartesianPath +from pyrep.objects.dummy import Dummy +from pyrep.objects.force_sensor import ForceSensor +from pyrep.objects.joint import Joint +from pyrep.objects.object import Object + +from amsolver.backend.conditions import Condition +from amsolver.backend.exceptions import WaypointError +from amsolver.backend.observation import Observation +from amsolver.backend.robot import Robot +from amsolver.backend.utils import ReadCustomDataBlock, WriteCustomDataBlock +from amsolver.backend.waypoints import Point, PredefinedPath, Waypoint + +TASKS_PATH = join(dirname(abspath(__file__)), '../../vlm/tasks') + + +class Task(object): + + def __init__(self, pyrep: PyRep, robot: Robot): + """Constructor. + + :param pyrep: Instance of PyRep. + :param robot: Instance of Robot. + """ + self.pyrep = pyrep + self.name = self.get_name() + self.robot = robot + self._waypoints = None + self._success_conditions = [] + self._graspable_objects = [] + self._base_object = None + self._waypoint_additional_inits = {} + self._waypoint_abilities_start = {} + self._waypoint_abilities_end = {} + self._waypoints_should_repeat = lambda: False + self._initial_objs_in_scene = None + self._stop_at_waypoint_index = -1 + self._need_remove_objects = [] + self.temporary_waypoints = [] + ######################## + # Overriding functions # + ######################## + + def init_task(self) -> None: + """Initialises the task. Called only once when task loaded. + + Here we can grab references to objects in the task and store them + as member variables to be used in init_episode. Here we also usually + set success conditions for the task as well as register what objects + can be grasped. + """ + raise NotImplementedError( + "'init_task' is almost always necessary.") + + def init_episode(self, index: int) -> List[str]: + """Initialises the episode. Called each time the scene is reset. + + Here we usually define how the task changes across variations. Based on + this we can change the task descriptions that are returned. + + :param index: The variation index. + :return: A list of strings describing the task. + """ + raise NotImplementedError( + "'init_episode' must be defined and return a list of strings.") + + def variation_count(self) -> int: + """Number of variations for the task. Can be determined dynamically. + + :return: Number of variations for this task. + """ + raise NotImplementedError( + "'variation_count' must be defined and return an int.") + + def modified_init_episode(self, index) -> None: + """ + Used for the children tasks of the task temples. + """ + pass + + def get_low_dim_state(self) -> np.ndarray: + """Gets the pose and various other properties of objects in the task. + + :return: 1D array of low-dimensional task state. + """ + + # Corner cases: + # (1) Object has been deleted. + # (2) Object has been grasped (and is now child of gripper). + + state = [] + for obj, objtype in self._initial_objs_in_scene: + if not obj.still_exists(): + # It has been deleted + empty_len = 7 + if objtype == ObjectType.JOINT: + empty_len += 1 + elif objtype == ObjectType.FORCE_SENSOR: + empty_len += 6 + state.extend(np.zeros((empty_len,)).tolist()) + else: + state.extend(np.array(obj.get_pose())) + if obj.get_type() == ObjectType.JOINT: + state.extend([Joint(obj.get_handle()).get_joint_position()]) + elif obj.get_type() == ObjectType.FORCE_SENSOR: + forces, torques = ForceSensor(obj.get_handle()).read() + state.extend(forces + torques) + + return np.array(state).flatten() + + def objects_information(self): + information = {} + for obj, objtype in self._initial_objs_in_scene: + if obj.still_exists(): + info = { + 'id': obj.get_handle(), + 'pose': obj.get_pose(), + 'bbox':obj.get_bounding_box() + } + if obj.get_type() == ObjectType.JOINT: + info['joint_position']= obj.get_joint_position() + elif obj.get_type() == ObjectType.FORCE_SENSOR: + forces, torques = obj.read() + info['forces'] = forces + info['torques'] = torques + information[obj.get_name()]=info + + for obj in self._need_remove_objects: + if obj.still_exists(): + childrens = obj.get_objects_in_tree( + exclude_base=False, first_generation_only=False) + for child in childrens: + info = { + 'id': child.get_handle(), + 'pose': child.get_pose(), + 'bbox':child.get_bounding_box() + } + if child.get_type() == ObjectType.JOINT: + info['joint_position']= child.get_joint_position() + elif child.get_type() == ObjectType.FORCE_SENSOR: + forces, torques = child.read() + info['forces'] = forces + info['torques'] = torques + information[child.get_name()]=info + + for i, waypoint in enumerate(self.get_waypoints(need_feasible=False)): + if waypoint._waypoint.get_type() == ObjectType.DUMMY: + info = {'pose': [waypoint.pose]} + elif waypoint._waypoint.get_type() == ObjectType.PATH: + info = {'pose': [waypoint.end_pose, waypoint.start_pose]} + info.update({ + 'target_obj':waypoint.focus_obj_id, + 'target_obj_name':waypoint.focus_obj_name, + 'gripper_control':waypoint.gripper_control, + 'low_level_descriptions':waypoint.low_level_descriptions, + 'waypoint_type':waypoint.waypoint_type + }) + information[waypoint.name]=info + return information + + def step(self) -> None: + """Called each time the simulation is stepped. Can usually be left.""" + pass + + def reward(self, steps) -> Union[float, None]: + """Allows the user to customise the task and add reward shaping.""" + def angle_distance(q1, q2): + # same as rad2deg(2arccos(theta)), here qw = cos(theta/2). need to select min of (x, 2pi - x) + # reference: https://math.stackexchange.com/questions/90081/quaternion-distance + v = 2 * np.arccos(np.clip(2 * np.dot(q1, q2) ** 2 - 1, -1, 1)) + return min(v, 2*np.pi - v) + def get_errors(point, robot): + target_pose = point._waypoint.get_pose() + current_ee_pose = np.array(robot.arm.get_tip().get_pose()) + # angle_error = angle_distance(target_pose[3:], current_ee_pose[3:]) + translate_error = ((target_pose[:3]-current_ee_pose[:3])**2).sum()**(1/2) + target_matrix = point._waypoint.get_matrix() + current_ee_matix = robot.arm.get_tip().get_matrix() + # angle_error = angle_distance(target_pose[3:], current_ee_pose[3:]) + angle_error = (1-np.dot(target_matrix[:3,2], current_ee_matix[:3,2]))/2 + return translate_error, angle_error + waypoints = self.get_waypoints() + if steps == 0: + self.idx = 0 + self.target_gipper_state = 1.0 + point = waypoints[self.idx] + self.last_t_error, self.last_r_error = get_errors(point, self.robot) + point = waypoints[self.idx] + point.start_of_path() + print("current target:", point.name) + t_error, r_error = get_errors(point, self.robot) + open_condition = all(x > 0.9 for x in self.robot.gripper.get_open_amount()) + current_gipper = 1.0 if open_condition else 0.0 + if t_error<0.05 and r_error<0.1: + if current_gipper == self.target_gipper_state: + if self.idx+10.1: + delta_t = self.last_t_error - t_error + delta_r = 0 + else: + delta_t = self.last_t_error - t_error + delta_r = self.last_r_error - r_error + if point.gripper_control is not None: + self.target_gipper_state = point.gripper_control[1] + + self.last_t_error = t_error + self.last_r_error = r_error + reward = 10*(2*delta_t+delta_r/np.pi)-0.01*np.abs(self.target_gipper_state-current_gipper) + reward = np.clip(reward, -1, 1) + success,_ = self.success() + if success: + reward=2 + return reward + + def cleanup(self) -> None: + """Called at the end of the episode. Can usually be left. + + Can be used for complex tasks that spawn many objects. + """ + if len(self._need_remove_objects)!=0: + for obj in self._need_remove_objects: + if obj.still_exists(): + obj.remove() + self._need_remove_objects = [] + if hasattr(self, "temporary_waypoints"): + if len(self.temporary_waypoints)!=0: + for waypoint in self.temporary_waypoints: + if waypoint.still_exists(): + waypoint.remove() + self.temporary_waypoints=[] + + def base_rotation_bounds(self) -> Tuple[Tuple[float, float, float], + Tuple[float, float, float]]: + """Defines how much the task base can rotate during episode placement. + + Default is set such that it can rotate any amount on the z axis. + + :return: A tuple containing the min and max (x, y, z) rotation bounds + (in radians). + """ + return (0.0, 0.0, -3.14), (0.0, 0.0, 3.14) + + def boundary_root(self) -> Object: + """An object that should act as the task root when randomly placing. + + Sometimes the task can involve a large appliance (e.g. dish washer) + which cannot be placed within the task workspace. This allows us to + define a proxy root (e.g. a plane in front of the appliance) that + would allow the task to be placed inside the workspace. + + :return: The PyRep Object that will act as the root. + """ + return self.get_base() + + def decorate_observation(self, observation: Observation) -> Observation: + """Can be used for tasks that want to modify the observations. + + Usually not used. Perhpas cabn be used to model + + :param observation: The Observation for this time step. + :return: The modified Observation. + """ + return observation + + def is_static_workspace(self) -> bool: + """Specify if the task should'nt be randomly placed in the workspace. + + :return: True if the task pose should not be sampled. + """ + return False + + def set_initial_objects_in_scene(self): + objs = self.get_base().get_objects_in_tree( + exclude_base=True, first_generation_only=False) + types = [ob.get_type() for ob in objs] + self._initial_objs_in_scene = list(zip(objs, types)) + + + ######################### + # Registering functions # + ######################### + + def register_success_conditions(self, condition: List[Condition]): + """What conditions need to be met for the task to be a success. + + Note: this replaces any previously registered conditions! + + :param condition: A list of success conditions. + """ + self._success_conditions = condition + + def register_graspable_objects(self, objects: List[Object]): + """Register what objects can be grasped with a 'stable' grasp. + + In order for objects to be grasped in a stable way, PyRep attaches an + objects that need to be grasped as a child of the gripper. This function + allows one to register a list of objects that can be grasped in + this 'stable' manner. + + Note: this replaces any previously registered objects! + + :param objects: The list of Objects that can be grasped. + """ + self._graspable_objects = objects + # _= script_call('setCheckObject@PyRep', PYREP_SCRIPT_TYPE, ints=[ob.get_handle() for ob in objects]) + for obj in objects: + obj.graspable = True + # WriteCustomDataBlock(obj.get_handle(), "graspable", "True") + + def register_waypoint_ability_start(self, waypoint_index: int, + func: Callable[[Waypoint], None]): + """Register a function to be called before moving to waypoint. + + The registered function should take in a Waypoint object and is called + when the robot is about to move to the assigned waypoint. + + + :param waypoint_index: The waypoint index. + :param func: A function that takes a Waypoint object. + """ + self._waypoint_abilities_start[waypoint_index] = func + + def register_waypoint_ability_end(self, waypoint_index: int, + func: Callable[[Waypoint], None]): + """Register a function to be called after moving to waypoint. + + The registered function should take in a Waypoint object and is called + when the robot has finished moving to the assigned waypoint. + + + :param waypoint_index: The waypoint index. + :param func: A function that takes a Waypoint object. + """ + self._waypoint_abilities_end[waypoint_index] = func + + def register_waypoints_should_repeat(self, func: Callable[[], bool]): + """Register a function that is called when reached the end of a demo. + + The registered function should return a bool if the demo should repeat. + Can be used in conjunction with `register_waypoint_ability_start` and + `register_waypoint_ability_end`. Useful for a task such as emptying a + container, where we want to keep dynamically moving waypoints until + the container is empty. + + :param func: A function that return a bool if the demo should repeat. + """ + self._waypoints_should_repeat = func + + def register_stop_at_waypoint(self, waypoint_index: int): + """Register at what index the demo should be stopped. + + :param waypoint_index: The waypoint index. + """ + self._stop_at_waypoint_index = waypoint_index + + ########################## + # Other public functions # + ########################## + + def get_name(self) -> str: + """The name of the task file (without the .py extension). + + :return: The name of the task. + """ + return re.sub('(? Tuple[bool, bool]: + """If the task is currently successful. + + :return: Tuple containing 2 bools: first specifies if the task is currently successful, + second specifies if the task should terminate (either from success or from broken constraints). + """ + all_met = True + should_terminate = False + for cond in self._success_conditions: + met, terminate = cond.condition_met() + if terminate: + # Broken constraint + should_terminate = True + break + all_met &= met + if all_met: + # All conditions met, so we can terminate + should_terminate = True + return all_met, should_terminate + + def load(self, ttms_folder=None) -> Object: + if Object.exists(self.get_name()): + return Dummy(self.get_name()) + if ttms_folder is None: + ttm_file = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + '../task_ttms/%s.ttm' % self.name) + else: + ttm_file = os.path.join(ttms_folder, + '%s.ttm' % self.name) + if not os.path.isfile(ttm_file): + raise FileNotFoundError( + 'The following is not a valid task .ttm file: %s' % ttm_file) + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def unload(self) -> None: + self._waypoints = None + self.get_base().remove() + self.clear_registerings() + + def cleanup_(self) -> None: + for cond in self._success_conditions: + cond.reset() + self._waypoints = None + self.cleanup() + + def clear_registerings(self) -> None: + self._success_conditions = [] + self._graspable_objects = [] + self._base_object = None + self._waypoint_additional_inits = {} + self._waypoint_abilities_start = {} + self._waypoint_abilities_end = {} + + def get_base(self) -> Dummy: + self._base_object = Dummy(self.get_name()) + return self._base_object + + def get_state(self) -> Tuple[bytes, int]: + objs = self.get_base().get_objects_in_tree(exclude_base=False) + return self.get_base().get_configuration_tree(), len(objs) + + def restore_state(self, state: Tuple[bytes, int]) -> None: + objs = self.get_base().get_objects_in_tree(exclude_base=False) + if len(objs) != state[1]: + raise RuntimeError( + 'Expected to be resetting %d objects, but there were %d.' % + (state[1], len(objs))) + self.pyrep.set_configuration_tree(state[0]) + + def reset_robot(self): + arm, gripper = self.robot._initial_robot_state + self.pyrep.set_configuration_tree(arm) + self.pyrep.set_configuration_tree(gripper) + self.robot.gripper.release() + self.robot.reset() + + ##################### + # Private functions # + ##################### + + def _feasible(self, waypoints: List[Point]) -> Tuple[bool, int]: + arm = self.robot.arm + start_vals = arm.get_joint_positions() + for i, point in enumerate(waypoints): + path = None + try: + path = point.get_path(ignore_collisions=True) + except ConfigurationPathError as err: + pass + if path is None: + arm.set_joint_positions(start_vals) + return False, i + path.set_to_end() + # Needed twice otherwise can glitch out. + arm.set_joint_positions(start_vals) + return True, -1 + + def _get_waypoints(self, validating=False, need_feasible=True) -> List[Waypoint]: + waypoint_name = 'waypoint%d' + waypoints = [] + additional_waypoint_inits = [] + i = 0 + while True: + name = waypoint_name % i + if not Object.exists(name) or i == self._stop_at_waypoint_index: + # There are no more waypoints... + break + ob_type = Object.get_object_type(name) + way = None + if ob_type == ObjectType.DUMMY: + waypoint = Dummy(name) + start_func = None + end_func = None + if i in self._waypoint_abilities_start: + start_func = self._waypoint_abilities_start[i] + if i in self._waypoint_abilities_end: + end_func = self._waypoint_abilities_end[i] + way = Point(waypoint, self.robot, + start_of_path_func=start_func, + end_of_path_func=end_func) + elif ob_type == ObjectType.PATH: + cartestian_path = CartesianPath(name) + way = PredefinedPath(cartestian_path, self.robot) + else: + raise WaypointError( + '%s is an unsupported waypoint type %s' % ( + name, ob_type), self) + + if name in self._waypoint_additional_inits and not validating: + additional_waypoint_inits.append( + (self._waypoint_additional_inits[name], way)) + waypoints.append(way) + i += 1 + + # Check if all of the waypoints are feasible + if need_feasible: + feasible, way_i = self._feasible(waypoints) + if not feasible: + raise WaypointError( + "Infeasible episode. Can't reach waypoint %d." % way_i, self) + for func, way in additional_waypoint_inits: + func(way) + return waypoints diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/task_utils.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/task_utils.py new file mode 100644 index 0000000..f7bfc63 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/task_utils.py @@ -0,0 +1,28 @@ +import os +import numpy as np +from pyrep.objects.shape import Shape + + +def sample_procedural_objects(task_base, num_samples, mass=0.1): + assets_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), + '../assets/procedural_objects') + samples = np.random.choice( + os.listdir(assets_dir), num_samples, replace=False) + created = [] + for s in samples: + respondable = os.path.join(assets_dir, s, s + '_coll.obj') + visual = os.path.join(assets_dir, s, s + '.obj') + resp = Shape.import_mesh(respondable, scaling_factor=0.005) + vis = Shape.import_mesh(visual, scaling_factor=0.005) + resp.set_renderable(False) + vis.set_renderable(True) + vis.set_parent(resp) + vis.set_dynamic(False) + vis.set_respondable(False) + resp.set_dynamic(True) + resp.set_mass(mass) + resp.set_respondable(True) + resp.set_model(True) + resp.set_parent(task_base) + created.append(resp) + return created diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/unit_tasks.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/unit_tasks.py new file mode 100644 index 0000000..6e30aa0 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/unit_tasks.py @@ -0,0 +1,741 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from copy import deepcopy +import json +import pickle +from platform import release +import numpy as np +import os +from typing import Any, Dict, List, Tuple, Union +from scipy.spatial.transform import Rotation as R +from pyrep.pyrep import PyRep +from pyrep.objects.shape import Shape +from pyrep.objects.joint import Joint +from pyrep.objects.dummy import Dummy +from pyrep.objects.proximity_sensor import ProximitySensor +from pyrep.objects.cartesian_path import CartesianPath +from pyrep.const import PYREP_SCRIPT_TYPE, JointType +from pyrep.backend._sim_cffi import ffi, lib +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.robot import Robot +from amsolver.backend.spawn_boundary import BoundingBox, SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import WriteCustomDataBlock, execute_grasp, execute_path, get_relative_position_xy, get_sorted_grasp_pose, test_reachability + +gripper_step = 0.5 +def fast_path_test(point, robot): + final_config = point._path_points[-len(robot.arm.joints):] + robot.arm.set_joint_positions(final_config, True) + +class VLM_Object(Shape): + def __init__(self, pr: PyRep, model_path: str, instance_id: int): + with open(model_path.replace("ttm", "json"), 'r') as f: + self.config = json.load(f) + self.obj_class = self.config["class"] + self.highest_part_name = self.config["parts"][self.config["highest_part"]]["name"] + if self.exists(self.highest_part_name): + super().__init__(self.highest_part_name) + else: + model = pr.import_model(model_path) + super().__init__(model.get_handle()) + self.scale_factor = lib.simGetObjectSizeFactor(ffi.cast('int',self._handle)) + self.instance_id = instance_id + for m in self.get_objects_in_tree(exclude_base=False): + m.set_name(m.get_name()+str(instance_id)) + self.under_control = False + self.parts = [] + for p in self.config["parts"]: + part = Shape(p["name"]+str(instance_id)) + part.graspable = p["graspable"] + part.local_grasp = None + if "local_grasp_pose_path" in p: + grasp_pose_path = os.path.join(os.path.dirname(model_path),p["local_grasp_pose_path"]) + with open(grasp_pose_path, 'rb') as f: + part.local_grasp = pickle.load(f) + part.property = p["property"] + if self.exists(p["name"]+"_visual"+str(instance_id)): + part.set_transparency(0) + part.visual = Shape(p["name"]+"_visual"+str(instance_id)).get_handle() + else: + part.set_transparency(1) + part.visual = part.get_handle() + part.descriptions = None + self.parts.append(part) + + self.manipulated_parts = [] + for i in self.config["manipulated_part"]: + self.manipulated_parts.append(self.parts[i]) + self.manipulated_part = self.manipulated_parts[0] + + self.articulated = self.config["articulated"] + if self.articulated: + self.constraints = [] + for c_name in self.config["constraints"]: + name = c_name+str(instance_id) + if Shape.exists(name): + if Shape.get_object_type(name).name == "JOINT": + constraint = Joint(name) + self.constraints.append(constraint) + else: + self.constraints = None + +class TargetSpace(object): + def __init__(self, space: SpawnBoundary or Joint or set, successor=None, min_range=None, max_range=None, + target_space_descriptions=None, focus_obj_id=None, space_args=None) -> None: + super().__init__() + self.space = space + self.min_range = min_range + self.max_range = max_range + self.target_space_descriptions = target_space_descriptions + self.focus_obj_id = focus_obj_id + self.successor = successor + self.space_args = space_args + + def set_target(self, target_object:Shape, try_ik_sampling=True, linear=False, ignore_collisions=False, release=False): + self.target_object = target_object + self.try_ik_sampling = try_ik_sampling + self.linear = linear + self.ignore_collisions = ignore_collisions + self.release = release + +class T0_ObtainControl(object): + def __init__(self, robot: Robot, pyrep: PyRep, target_obj:Shape, task_base:Dummy, try_times = 200, + table_height=0.752,need_post_grasp=True, + table_offset_dist=0.01, + pregrasp_dist=0.08, + postgrasp_height=0.1, grasp_sort_key="vertical",*, next_task_fuc=None,next_task_args=None) -> None: + super().__init__() + self.robot = robot + self.pyrep = pyrep + self.task_base = task_base + self.target_obj = target_obj + + self.try_times = try_times + self.table_height = table_height + self.table_offset_dist = table_offset_dist + self.need_post_grasp = need_post_grasp + self.pregrasp_dist = pregrasp_dist + self.postgrasp_height = postgrasp_height + self.grasp_sort_key = grasp_sort_key + self.next_task_fuc = next_task_fuc + self.next_task_args = next_task_args + + @staticmethod + def sample_postgrasp_pose(grasp_pose, offset_height): + # sample 3d pos, remain same orientation in a cuboid area above grasp pose + def sample_from_center(center, range, sample): + pos_list = np.linspace(center, center + range, sample // 2).tolist() + neg_list = np.linspace(center, center - range, sample // 2).tolist() + result = [None] * (len(pos_list) + len(neg_list) - 1) + result[::2] = pos_list + result[1::2] = neg_list[1:] + return result + pose_list = [] + xy_range = 0.03 + sample_n = 10 + for h in sample_from_center(offset_height, offset_height / 2, sample_n): + for x in sample_from_center(0, xy_range, sample_n): + for y in sample_from_center(0, xy_range, sample_n): + pose = deepcopy(grasp_pose) + pose[:3, 3] -= pose[:3,:3].dot([x, y, h]) + pose_list.append(pose) + return np.array(pose_list) + + @staticmethod + def check_path_length(path, pose1, pose2, arm, threshold=3.0): + # print('checking path length') + linear_dist = np.linalg.norm(pose1[:3, 3] - pose2[:3, 3]) + path_dist = 0 + tip = arm.get_tip() + init_angles = arm.get_joint_positions() + arm.set_joint_positions(path._path_points[0: len(arm.joints)]) + prev_point = tip.get_position() + for i in range(len(arm.joints), len(path._path_points), + len(arm.joints)): + points = path._path_points[i:i + len(arm.joints)] + arm.set_joint_positions(points) + p = tip.get_position() + path_dist += np.linalg.norm(p - prev_point) + prev_point = p + arm.set_joint_positions(init_angles) + return path_dist / linear_dist < threshold + + def test_reachability(self, arm, pose, try_ik_sampling=False, linear=False, ignore_collisions=False): + new_target = Dummy.create() + new_target.set_matrix(pose) + pos, ori = new_target.get_position(), new_target.get_orientation() + res, path = False, None + success = False + try: + _ = arm.solve_ik_via_jacobian(pos, ori) + success = True + except: + if try_ik_sampling: + try: + _ = arm.solve_ik_via_sampling(pos, ori) # much slower than jacobian + success = True + except: + pass + else: + pass + if success: + try: + path = arm.get_linear_path(pos, ori, ignore_collisions=ignore_collisions) if linear else arm.get_path(pos, ori, ignore_collisions=ignore_collisions) + res = True + except: + pass + new_target.remove() + return res, path + + def get_path(self, try_ik_sampling=False, linear=False, ignore_collisions=False): + self.object_pose = self.target_obj.get_matrix() + sorted_grasp_pose = get_sorted_grasp_pose(self.object_pose, self.target_obj.local_grasp, self.grasp_sort_key) + sorted_grasp_pose[:,:3, 3] -= sorted_grasp_pose[:,:3, 2] * np.random.normal(scale=0.005, size=(sorted_grasp_pose.shape[0],1)) + objs_init_states = self.task_base.get_configuration_tree() + saved_states = self.robot.save_state() + success_grasps = None + trial = 0 + grasp_pose_idx = 0 + arm = self.robot.arm + gripper = self.robot.gripper + waypoint_dumpy = Dummy.create(size=0.03) + init_pose_dummy = Dummy.create() + init_pose_dummy.set_matrix(self.object_pose) + find_path = False + if self.try_times == -1: + self.try_times = len(sorted_grasp_pose) + grasp_index_step = len(sorted_grasp_pose)//self.try_times // 2 + grasp_index_step = max(1, grasp_index_step) + while trial < self.try_times and grasp_pose_idx < len(sorted_grasp_pose): + # print('trial:', trial, 'grasp idx:', grasp_pose_idx) + success = False + grasp_pose = sorted_grasp_pose[grasp_pose_idx] + pre_grasp_pose = deepcopy(grasp_pose) + pre_grasp_pose[:3, 3] -= pre_grasp_pose[:3, 2] * self.pregrasp_dist + grasp_pose_idx += grasp_index_step + if pre_grasp_pose[2, 3] - self.table_height < self.table_offset_dist: + # print('pre-grasp pose too near to table, ignore') + continue + trial += 1 + post_grasp_pose = deepcopy(grasp_pose) + post_grasp_pose[2, 3] += self.postgrasp_height + # grasp_pose[:3, 3] += grasp_pose[:3, 2] * 0.01 + waypoint_dumpy.set_matrix(grasp_pose) + success, path0 = test_reachability(arm, pre_grasp_pose, try_ik_sampling=try_ik_sampling, linear = linear, ignore_collisions=ignore_collisions) + moved = False + if success: + # move arm to pregrasp pose, then test grasp, this time only check cartesian move (linear path) + # execute_path(path0, self.pyrep) + fast_path_test(path0, self.robot) + # path0.set_to_end() + moved = True + # print('pregrasp path:', success) + success, path1 = test_reachability(arm, grasp_pose, False, linear=True, ignore_collisions=ignore_collisions) + if success: + # test grasp here + # execute_path(path1, self.pyrep) + fast_path_test(path1, self.robot) + # path1.set_to_end() + # print('grasp path:', success) + # print('moving ') + success = execute_grasp(gripper, self.target_obj, self.pyrep) + grasp_arm_config = arm.get_joint_positions() + grasp_gripper_config = gripper.get_joint_positions() + # obj.set_dynamic(True) + # print('gripper grasp:', success) + if success: + # move arm to grasp pose, grasp, test whether in hand, then test lift, this time only check cartesian move (linear path) + # execute_path(path1, pyrep) + if self.need_post_grasp: + post_grasp_pose_set = self.sample_postgrasp_pose(grasp_pose, self.postgrasp_height) + for post_grasp_pose in post_grasp_pose_set: + success, path2 = self.test_reachability(arm, post_grasp_pose, ignore_collisions=True) + if success and self.check_path_length(path2, grasp_pose, post_grasp_pose, arm): + break + # print('postgrasp path:', success) + if success: + # execute_path(path2, self.pyrep) + # path2.set_to_end() + fast_path_test(path2, self.robot) + find_path = True + # print('Find a grasp!') + else: + post_grasp_pose = None + path2 = None + find_path=True + # print('Find a grasp!') + if find_path: + grasp_point = {} + grasp_point['waypoints'] = [pre_grasp_pose, grasp_pose, post_grasp_pose] + grasp_point['path'] = [path0, path1, path2] + grasp_point['grasp_arm_config'] = grasp_arm_config + grasp_point['grasp_gripper_config'] = grasp_gripper_config + waypoint_dumpy.set_matrix(pre_grasp_pose) + relative_position_description = get_relative_position_xy(init_pose_dummy, waypoint_dumpy, arm) + grasp_point['relative'] = relative_position_description + # success_grasps.append(grasp_point) + find_path = False + waypoints = [] + for i,pose in enumerate([pre_grasp_pose, grasp_pose, post_grasp_pose]): + if pose is not None: + waypoint = Dummy.create() + waypoint.set_matrix(pose) + if i==0: + low_level_descriptions = "Move to the {} of {}.".format(relative_position_description,self.target_obj.descriptions) + WriteCustomDataBlock(waypoint.get_handle(),"waypoint_type","pre_grasp") + elif i==1: + low_level_descriptions = "Grasp {}.".format(self.target_obj.descriptions) + WriteCustomDataBlock(waypoint.get_handle(),"gripper","['close',0]") + WriteCustomDataBlock(waypoint.get_handle(),"waypoint_type","grasp") + elif i==2: + low_level_descriptions = "Move upward." + WriteCustomDataBlock(waypoint.get_handle(),"waypoint_type","post_grasp") + # WriteCustomDataBlock(waypoint.get_handle(),"ignore_collisions","True") + WriteCustomDataBlock(waypoint.get_handle(),"low_level_descriptions",low_level_descriptions) + WriteCustomDataBlock(waypoint.get_handle(),"focus_obj_id",str(self.target_obj.visual)) + WriteCustomDataBlock(waypoint.get_handle(),"focus_obj_name",Shape.get_object_name(self.target_obj.visual)) + if ignore_collisions or i==2: + WriteCustomDataBlock(waypoint.get_handle(),"ignore_collisions","True") + waypoints.append(waypoint) + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + for w in waypoints: + w.remove() + self.robot.recover_state(saved_states, release=True) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + continue + else: + success_grasps = waypoints + next_path + break + else: + success_grasps = waypoints + break + if moved: + self.robot.recover_state(saved_states, release=True) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + waypoint_dumpy.remove() + init_pose_dummy.remove() + return success_grasps + +class T1_MoveObjectGoal(object): + def __init__(self, robot: Robot, pyrep: PyRep, target_space:TargetSpace, task_base, + fail_times = 10, *, next_task_fuc=None,next_task_args=None) -> None: + super().__init__() + self.robot = robot + self.pyrep = pyrep + self.target_space = target_space + self.arm = robot.arm + self.gripper = robot.gripper + self.fail_times = fail_times + self.task_base = task_base + + self.next_task_fuc = next_task_fuc + self.next_task_args = next_task_args + + def get_path(self): + spaces = self.target_space.space + manipulated_obj = self.target_space.target_object + min_range = self.target_space.min_range + max_range = self.target_space.max_range + target_space_descriptions = self.target_space.target_space_descriptions + focus_obj_id = self.target_space.focus_obj_id + try_ik_sampling = self.target_space.try_ik_sampling + linear = self.target_space.linear + ignore_collisions = self.target_space.ignore_collisions + release = self.target_space.release + path = None + if type(spaces) == SpawnBoundary: + path = self.get_path_from_space(spaces, manipulated_obj, min_range, max_range, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id) + elif type(spaces) == Dummy: + path = self.get_path_from_point(spaces, manipulated_obj, min_range, max_range, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id) + + elif callable(spaces): + path = self.get_path_from_func(spaces, manipulated_obj, self.target_space.space_args, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id) + return path + + def get_path_from_space(self, target_spaces:SpawnBoundary, obj:VLM_Object, + min_rotation, max_rotation, try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id): + assert len(min_rotation) == 3 + objs_init_states = self.task_base.get_configuration_tree() + saved_states =self.robot.save_state() + target_space = np.random.choice(target_spaces._boundaries,p=target_spaces._probabilities) + if obj.is_model(): + bb = obj.get_model_bounding_box() + else: + bb = obj.get_bounding_box() + obj_bbox = BoundingBox(*bb) + point2obj_pose = self.arm._ik_tip.get_matrix(relative_to=obj) + target_space_pose = target_space._boundary.get_matrix() + new_path = None + for i in range(self.fail_times): + find_path = False + new_position = target_space._get_position_within_boundary(obj, obj_bbox) + rotations = np.random.uniform(list(min_rotation), list(max_rotation)) + trans_matrix = np.eye(4) + trans_matrix[:3, 3] = new_position + trans_matrix[:3,:3] = R.from_euler('xyz', rotations).as_matrix() + target_obj_pose = target_space_pose.dot(trans_matrix) + target_gripper_pose = target_obj_pose.dot(point2obj_pose) + find_path, path = test_reachability(self.arm, target_gripper_pose, try_ik_sampling=try_ik_sampling, + linear=linear, ignore_collisions=ignore_collisions) + if find_path: + # execute_path(path, self.pyrep) + # path.set_to_end() + fast_path_test(path, self.robot) + if release: + self.robot.gripper.release() + done = False + while not done: + done = self.robot.gripper.actuate(1,gripper_step) + self.pyrep.step() + for _ in range(10): + self.pyrep.step() + target = Dummy.create() + target.set_matrix(target_gripper_pose) + if target_space._is_plane: + low_level_descriptions = "Move the object on {}.".format(target_space_descriptions) + else: + low_level_descriptions = "Move the object above {}.".format(target_space_descriptions) + if release: + low_level_descriptions += " Release the gripper." + WriteCustomDataBlock(target.get_handle(),"gripper","['open',1]") + WriteCustomDataBlock(target.get_handle(),"low_level_descriptions",low_level_descriptions) + WriteCustomDataBlock(target.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(target.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(target.get_handle(),"waypoint_type","goal_move") + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + target.remove() + # self.robot.recover_state(saved_states) + # self.pyrep.set_configuration_tree(objs_init_states) + # self.pyrep.step() + # continue + break + else: + new_path = [target] + next_path + else: + new_path = [target] + break + return new_path + + def get_path_from_point(self, target_spaces:Dummy, obj:VLM_Object, + min_rotation, max_rotation, try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id): + objs_init_states = self.task_base.get_configuration_tree() + saved_states =self.robot.save_state() + new_path = None + point2obj_pose = self.arm._ik_tip.get_matrix(relative_to=obj) + target_pose = target_spaces.get_matrix() + target_gripper_pose = target_pose.dot(point2obj_pose) + pre_target_gripper_pose = deepcopy(target_gripper_pose) + pre_target_gripper_pose[:3, 3] -= pre_target_gripper_pose[:3, 2] * 0.08 + # target_gripper_pose = target_pose.dot(point2obj_pose) + find_path, path = test_reachability(self.arm, pre_target_gripper_pose, try_ik_sampling=try_ik_sampling, + linear=linear, ignore_collisions=ignore_collisions) + if find_path: + # execute_path(path, self.pyrep) + fast_path_test(path, self.robot) + find_path, path = test_reachability(self.arm, target_gripper_pose, try_ik_sampling=try_ik_sampling, + linear=linear, ignore_collisions=True) + if not find_path: + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + if find_path: + # execute_path(path, self.pyrep) + fast_path_test(path, self.robot) + if release: + self.robot.gripper.release() + done = False + while not done: + done = self.robot.gripper.actuate(1,gripper_step) + self.pyrep.step() + for _ in range(10): + self.pyrep.step() + pre_target = Dummy.create() + pre_target.set_matrix(pre_target_gripper_pose) + + target = Dummy.create() + target.set_matrix(target_gripper_pose) + low_level_descriptions = "Move the object to {}.".format(target_space_descriptions) + if release: + low_level_descriptions += " Release the gripper." + WriteCustomDataBlock(target.get_handle(),"gripper","['open',1]") + WriteCustomDataBlock(target.get_handle(),"low_level_descriptions",low_level_descriptions) + WriteCustomDataBlock(target.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(target.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(target.get_handle(),"ignore_collisions","True") + WriteCustomDataBlock(target.get_handle(),"waypoint_type","goal_move") + + WriteCustomDataBlock(pre_target.get_handle(),"low_level_descriptions","Move the object to the {} of {}".format(get_relative_position_xy(target, pre_target, self.arm), target_space_descriptions)) + WriteCustomDataBlock(pre_target.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(pre_target.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(pre_target.get_handle(),"waypoint_type","pre_goal_move") + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + target.remove() + pre_target.remove() + else: + new_path = [pre_target, target] + next_path + else: + new_path = [pre_target, target] + + return new_path + + def get_path_from_func(self, target_spaces, obj:VLM_Object, target_args, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id): + all_g_poses = target_spaces(**target_args) + objs_init_states = self.task_base.get_configuration_tree() + saved_states =self.robot.save_state() + new_path = None + # obj_target = Dummy.create() + gripper_target = Dummy.create() + gripper2obj = self.arm._ik_tip.get_matrix(obj) + for g_pose in all_g_poses: + find_path = False + # obj_target.set_position(g_pose[:3]) + # obj_target.set_orientation(g_pose[3:]) + # gripper_matrix = obj_target.get_matrix().dot(gripper2obj) + gripper_matrix = g_pose.dot(gripper2obj) + gripper_target.set_matrix(gripper_matrix) + find_path, path = test_reachability(self.arm, gripper_matrix, try_ik_sampling=try_ik_sampling, + linear=linear, ignore_collisions=ignore_collisions) + if find_path: + fast_path_test(path, self.robot) + if release: + self.robot.gripper.release() + done = False + while not done: + done = self.robot.gripper.actuate(1,gripper_step) + self.pyrep.step() + for _ in range(10): + self.pyrep.step() + WriteCustomDataBlock(gripper_target.get_handle(),"gripper","['open',1]") + low_level_descriptions = "Move the object {}.".format(target_space_descriptions) + if release: + low_level_descriptions += " Release the gripper." + WriteCustomDataBlock(gripper_target.get_handle(),"low_level_descriptions",low_level_descriptions) + WriteCustomDataBlock(gripper_target.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(gripper_target.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(gripper_target.get_handle(),"waypoint_type","goal_move") + WriteCustomDataBlock(gripper_target.get_handle(), "ignore_collisions",str(ignore_collisions)) + WriteCustomDataBlock(gripper_target.get_handle(), "linear",str(linear)) + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + continue + else: + new_path = [gripper_target] + next_path + break + else: + new_path = [gripper_target] + break + if not find_path: + gripper_target.remove() + # obj_target.remove() + return new_path + +class T2_MoveObjectConstraints(T1_MoveObjectGoal): + def __init__(self, robot: Robot, pyrep: PyRep, target_space: TargetSpace, init_states, + fail_times=10, *, next_task_fuc=None,next_task_args=None) -> None: + super().__init__(robot, pyrep, target_space, init_states, fail_times, + next_task_fuc=next_task_fuc,next_task_args=next_task_args) + + def get_path_with_constraints(self): + spaces = self.target_space.space + manipulated_obj = self.target_space.target_object + min_range = self.target_space.min_range + max_range = self.target_space.max_range + target_space_descriptions = self.target_space.target_space_descriptions + focus_obj_id = self.target_space.focus_obj_id + try_ik_sampling = self.target_space.try_ik_sampling + linear = self.target_space.linear + ignore_collisions = self.target_space.ignore_collisions + release = self.target_space.release + path = None + if type(spaces) == Joint: + path = self.get_path_from_joint(spaces, manipulated_obj, min_range, max_range, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id) + # elif type(spaces) == list: + # path = self.get_path_from_list(spaces, manipulated_obj, min_range, max_range, + # try_ik_sampling, linear, ignore_collisions, release, + # target_space_descriptions, focus_obj_id) + elif callable(spaces): + path = self.get_path_from_func(spaces, manipulated_obj, self.target_space.space_args, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id) + return path + + def get_path_from_joint(self, target_spaces:Joint, obj:VLM_Object, + min_rotation, max_rotation, try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id): + intermediate_target = Dummy.create() + intermediate_target.set_pose(self.arm._ik_tip.get_pose()) + objs_init_states = self.task_base.get_configuration_tree() + saved_states =self.robot.save_state() + current_angle = target_spaces.get_joint_position() + point2joint_pose = intermediate_target.get_matrix(relative_to=target_spaces) + joint2world_pose = target_spaces.get_matrix() + for _ in range(self.fail_times): + find_path = False + end_angle = np.random.uniform(min_rotation, max_rotation) + intermediate_angles = np.linspace(current_angle, end_angle, num=10) + new_path = CartesianPath.create(automatic_orientation=False) + control_points = [] + can_reach = True + start_joint = self.arm.get_joint_positions() + for angle in intermediate_angles: + transform_matrix = np.eye(4) + if target_spaces.get_joint_type() == JointType.REVOLUTE: + rotation = R.from_euler('z', angle).as_matrix() + transform_matrix[:3,:3] = rotation + elif target_spaces.get_joint_type() == JointType.PRISMATIC: + trans = np.array([0,0,angle]) + transform_matrix[:3,3] = trans + intermediate_target.set_matrix(joint2world_pose.dot(transform_matrix).dot(point2joint_pose)) + can_reach,sub_path = test_reachability(self.arm, intermediate_target.get_matrix(), linear=True, ignore_collisions=True) + if not can_reach: + break + pos = intermediate_target.get_position().tolist() + ori = intermediate_target.get_orientation().tolist() + # execute_path(sub_path, self.pyrep) + sub_path.set_to_end() + control_points.append(pos+ori) + self.arm.set_joint_positions(start_joint) + if not can_reach: + new_path.remove() + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + continue + new_path.insert_control_points(control_points) + try: + try: + path = self.arm.get_path_from_cartesian_path(new_path) + except: + path = self.arm.get_linear_path(pos, ori, ignore_collisions=True) + new_path.remove() + new_path = Dummy.create() + new_path.set_position(pos) + new_path.set_orientation(ori) + WriteCustomDataBlock(new_path.get_handle(), "linear","True") + execute_path(path, self.pyrep) + if target_spaces.get_joint_type() == JointType.PRISMATIC: + tolerance = 0.05 + elif target_spaces.get_joint_type() == JointType.REVOLUTE: + tolerance = np.deg2rad(5) + if abs(target_spaces.get_joint_position()-end_angle)>tolerance: + new_path.remove() + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + continue + WriteCustomDataBlock(new_path.get_handle(), "ignore_collisions","True") + if target_spaces.get_joint_type() == JointType.PRISMATIC: + low_level_descriptions = "Move along the axis of {}.".format(target_space_descriptions) + elif target_spaces.get_joint_type() == JointType.REVOLUTE: + low_level_descriptions = "Rotate around the axis of {}.".format(target_space_descriptions) + WriteCustomDataBlock(new_path.get_handle(),"low_level_descriptions",low_level_descriptions) + WriteCustomDataBlock(new_path.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(new_path.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(new_path.get_handle(),"waypoint_type","path_move") + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + new_path.remove() + # reverse_path = deepcopy(path) + # original_path_points = path._path_points.reshape(-1,7) + # reverse_path._path_points = original_path_points[::-1].reshape(-1,) + # execute_path(path, self.pyrep) + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + self.pyrep.step() + continue + else: + new_path = [new_path] + next_path + else: + new_path = [new_path] + find_path=True + break + except: + new_path.remove() + intermediate_target.remove() + return new_path if find_path else None + + def get_path_from_func(self, target_spaces, obj:VLM_Object, target_args, + try_ik_sampling, linear, ignore_collisions, release, + target_space_descriptions, focus_obj_id): + all_g_poses = target_spaces(**target_args) + objs_init_states = self.task_base.get_configuration_tree() + saved_states =self.robot.save_state() + new_path = None + # obj_target = Dummy.create() + # gripper_target = Dummy.create() + gripper2obj = self.arm._ik_tip.get_matrix(obj) + for g_pose in all_g_poses: + find_path = False + # obj_target.set_position(g_pose[:3]) + # obj_target.set_orientation(g_pose[3:]) + # gripper_matrix = obj_target.get_matrix().dot(gripper2obj) + gripper_matrix = g_pose.dot(gripper2obj) + # gripper_target.set_matrix(gripper_matrix) + find_path, path = test_reachability(self.arm, gripper_matrix, try_ik_sampling=try_ik_sampling, + linear=linear, ignore_collisions=ignore_collisions) + if find_path: + new_path = CartesianPath.create(automatic_orientation=False) + control_points = [] + all_path_configs = path._path_points.reshape(-1, len(self.arm.joints)) + for config in all_path_configs: + self.arm.set_joint_positions(config) + pos = self.arm._ik_tip.get_position().tolist() + ori = self.arm._ik_tip.get_orientation().tolist() + control_points.append(pos+ori) + new_path.insert_control_points(control_points) + fast_path_test(path, self.robot) + WriteCustomDataBlock(new_path.get_handle(),"low_level_descriptions", target_space_descriptions) + WriteCustomDataBlock(new_path.get_handle(),"focus_obj_id",str(focus_obj_id)) + WriteCustomDataBlock(new_path.get_handle(),"focus_obj_name",Shape.get_object_name(focus_obj_id)) + WriteCustomDataBlock(new_path.get_handle(),"waypoint_type","path_move") + WriteCustomDataBlock(new_path.get_handle(), "ignore_collisions",str(ignore_collisions)) + WriteCustomDataBlock(new_path.get_handle(), "linear",str(linear)) + if self.next_task_fuc is not None: + next_path = self.next_task_fuc() if self.next_task_args is None else self.next_task_fuc(**self.next_task_args) + if next_path is None: + self.robot.recover_state(saved_states) + self.pyrep.set_configuration_tree(objs_init_states) + new_path.remove() + new_path = None + continue + else: + new_path = [new_path] + next_path + break + else: + new_path = [new_path] + break + # if not find_path: + # new_path.remove() + # obj_target.remove() + return new_path + +if __name__=="__main__": + pr = PyRep() + pr.launch('', responsive_ui=True, headless=False) + model_path = "../vlm/object_models/cube/cube_normal/cube_normal.ttm" + model = VLM_Object(pr, model_path, 0) + model_2 = VLM_Object(pr, model_path, 1) + pr.shutdown() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/utils.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/utils.py new file mode 100644 index 0000000..cb226e0 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/utils.py @@ -0,0 +1,522 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +from copy import deepcopy +from os import error +import os +from pathlib import Path +from typing import Dict, List, Tuple +import numpy as np +from PIL import Image +from pyrep.backend import utils as pyrep_utils +from pyrep.backend._sim_cffi import ffi, lib +from pyrep.const import PYREP_SCRIPT_TYPE, JointType +from pyrep.objects.dummy import Dummy +from pyrep.objects.object import Object +from pyrep.objects.shape import Shape +from pyrep.objects.joint import Joint +from pyrep.pyrep import PyRep +from pyrep.robots.arms.arm import Arm +from pyrep.robots.end_effectors.gripper import Gripper +from amsolver.backend.robot import Robot +from pyrep.objects.cartesian_path import CartesianPath +from amsolver.const import colors +from amsolver.backend.spawn_boundary import BoundaryObject, BoundingBox, SpawnBoundary +from copy import deepcopy +from pyrep.backend import sim +from scipy.spatial.transform import Rotation as R + +from tools.grasploc import Grasploc, define_default_args + +def ClipFloatValues(float_array, min_value, max_value): + """Clips values to the range [min_value, max_value]. + + First checks if any values are out of range and prints a message. + Then clips all values to the given range. + + Args: + float_array: 2D array of floating point values to be clipped. + min_value: Minimum value of clip range. + max_value: Maximum value of clip range. + + Returns: + The clipped array. + + """ + if float_array.min() < min_value or float_array.max() > max_value: + float_array = np.clip(float_array, min_value, max_value) + return float_array + + +DEFAULT_RGB_SCALE_FACTOR = 256000.0 + + +def float_array_to_rgb_image(float_array, + scale_factor=DEFAULT_RGB_SCALE_FACTOR, + drop_blue=False): + """Convert a floating point array of values to an RGB image. + + Convert floating point values to a fixed point representation where + the RGB bytes represent a 24-bit integer. + R is the high order byte. + B is the low order byte. + The precision of the depth image is 1/256 mm. + + Floating point values are scaled so that the integer values cover + the representable range of depths. + + This image representation should only use lossless compression. + + Args: + float_array: Input array of floating point depth values in meters. + scale_factor: Scale value applied to all float values. + drop_blue: Zero out the blue channel to improve compression, results in 1mm + precision depth values. + + Returns: + 24-bit RGB PIL Image object representing depth values. + """ + # Scale the floating point array. + scaled_array = np.floor(float_array * scale_factor + 0.5) + # Convert the array to integer type and clip to representable range. + min_inttype = 0 + max_inttype = 2**24 - 1 + scaled_array = ClipFloatValues(scaled_array, min_inttype, max_inttype) + int_array = scaled_array.astype(np.uint32) + # Calculate: + # r = (f / 256) / 256 high byte + # g = (f / 256) % 256 middle byte + # b = f % 256 low byte + rg = np.divide(int_array, 256) + r = np.divide(rg, 256) + g = np.mod(rg, 256) + image_shape = int_array.shape + rgb_array = np.zeros((image_shape[0], image_shape[1], 3), dtype=np.uint8) + rgb_array[..., 0] = r + rgb_array[..., 1] = g + if not drop_blue: + # Calculate the blue channel and add it to the array. + b = np.mod(int_array, 256) + rgb_array[..., 2] = b + image_mode = 'RGB' + image = Image.fromarray(rgb_array, mode=image_mode) + return image + + +DEFAULT_GRAY_SCALE_FACTOR = {np.uint8: 100.0, + np.uint16: 1000.0, + np.int32: DEFAULT_RGB_SCALE_FACTOR} + + +def float_array_to_grayscale_image(float_array, scale_factor=None, image_dtype=np.uint8): + """Convert a floating point array of values to an RGB image. + + Convert floating point values to a fixed point representation with + the given bit depth. + + The precision of the depth image with default scale_factor is: + uint8: 1cm, with a range of [0, 2.55m] + uint16: 1mm, with a range of [0, 65.5m] + int32: 1/256mm, with a range of [0, 8388m] + + Right now, PIL turns uint16 images into a very strange format and + does not decode int32 images properly. Only uint8 works correctly. + + Args: + float_array: Input array of floating point depth values in meters. + scale_factor: Scale value applied to all float values. + image_dtype: Image datatype, which controls the bit depth of the grayscale + image. + + Returns: + Grayscale PIL Image object representing depth values. + + """ + # Ensure that we have a valid numeric type for the image. + if image_dtype == np.uint16: + image_mode = 'I;16' + elif image_dtype == np.int32: + image_mode = 'I' + else: + image_dtype = np.uint8 + image_mode = 'L' + if scale_factor is None: + scale_factor = DEFAULT_GRAY_SCALE_FACTOR[image_dtype] + # Scale the floating point array. + scaled_array = np.floor(float_array * scale_factor + 0.5) + # Convert the array to integer type and clip to representable range. + min_dtype = np.iinfo(image_dtype).min + max_dtype = np.iinfo(image_dtype).max + scaled_array = ClipFloatValues(scaled_array, min_dtype, max_dtype) + + image_array = scaled_array.astype(image_dtype) + image = Image.fromarray(image_array, mode=image_mode) + return image + + +def image_to_float_array(image, scale_factor=None): + """Recovers the depth values from an image. + + Reverses the depth to image conversion performed by FloatArrayToRgbImage or + FloatArrayToGrayImage. + + The image is treated as an array of fixed point depth values. Each + value is converted to float and scaled by the inverse of the factor + that was used to generate the Image object from depth values. If + scale_factor is specified, it should be the same value that was + specified in the original conversion. + + The result of this function should be equal to the original input + within the precision of the conversion. + + Args: + image: Depth image output of FloatArrayTo[Format]Image. + scale_factor: Fixed point scale factor. + + Returns: + A 2D floating point numpy array representing a depth image. + + """ + image_array = np.array(image) + image_dtype = image_array.dtype + image_shape = image_array.shape + + channels = image_shape[2] if len(image_shape) > 2 else 1 + assert 2 <= len(image_shape) <= 3 + if channels == 3: + # RGB image needs to be converted to 24 bit integer. + float_array = np.sum(image_array * [65536, 256, 1], axis=2) + if scale_factor is None: + scale_factor = DEFAULT_RGB_SCALE_FACTOR + else: + if scale_factor is None: + scale_factor = DEFAULT_GRAY_SCALE_FACTOR[image_dtype.type] + float_array = image_array.astype(np.float32) + scaled_array = float_array / scale_factor + return scaled_array + + +def task_file_to_task_class(task_file, parent_folder = 'amsolver'): + import importlib + name = task_file.replace('.py', '') + class_name = ''.join([w[0].upper() + w[1:] for w in name.split('_')]) + mod = importlib.import_module(parent_folder+".tasks.%s" % name) + mod = importlib.reload(mod) + task_class = getattr(mod, class_name) + return task_class + + +def rgb_handles_to_mask(rgb_coded_handles): + # rgb_coded_handles should be (w, h, c) + # Handle encoded as : handle = R + G * 256 + B * 256 * 256 + rgb_coded_handles *= 255 # takes rgb range to 0 -> 255 + rgb_coded_handles = rgb_coded_handles.astype(int) + return (rgb_coded_handles[:, :, 0] + + rgb_coded_handles[:, :, 1] * 256 + + rgb_coded_handles[:, :, 2] * 256 * 256) + +''' +New functions +''' +def scale_object(obj, scale_factor: float, scale_position: bool = True) -> None: + objectHandle = ffi.new('int[1]', [obj._handle]) + current_scale = lib.simGetObjectSizeFactor(ffi.cast('int',obj._handle)) + if hasattr(obj, "scale_factor"): + current_scale /= obj.scale_factor + relative_factor = scale_factor/current_scale + if abs(relative_factor-1)>1e-2: + lib.simScaleObjects(objectHandle, ffi.cast('int',1), ffi.cast('float', scale_factor/current_scale), ffi.cast('bool', scale_position)) + return relative_factor + +def get_relative_position_xy(object1, object2, robot): + # get relative position of object2 relative to object1 in robot coordinate frame + # y+/-: right/left; z+/-: back/front + rel_pos_xyz = object2.get_position(robot) - object1.get_position(robot) + z, x, y = rel_pos_xyz[0], rel_pos_xyz[1], rel_pos_xyz[2] + if z>0.05: + direction = 'top' + else: + if y > x and y > -x: + direction = 'front' + elif y > x and y < -x: + direction = 'left' + elif y < x and y > -x: + direction = 'right' + else: + direction = 'rear' + return direction + +def exchange_objects(target: Shape, source: Shape): + visual_name = '{}_visual'.format(target.get_name()) + target_visual = Shape(visual_name) + target_bbox = np.array(target_visual.get_bounding_box()) + source_bbox = np.array(source.get_bounding_box()) + scaling_factor = (np.prod(target_bbox[1:6:2]-target_bbox[0:6:2])/np.prod(source_bbox[1:6:2]-source_bbox[0:6:2]))**(1/3) + scale_object(source, scaling_factor) + + source.set_pose(target.get_pose()) + + source.set_parent(target.get_parent()) + for obj in target.get_objects_in_tree(first_generation_only=True): + if 'visual' not in obj.get_name(): + obj.set_parent(source) + if obj.get_type()=='DUMMY': + obj.set_pose(obj.get_pose(relative_to=target_visual), relative_to=source) + + target.remove() + if Shape.exists(visual_name): + Shape(visual_name).remove() + + return source, Shape('{}_visual'.format(source.get_name())) + +def WriteCustomDataBlock(objectHandle, tagName, data): + # dataSize = ffi.cast('int', len(data)) + # objectHandle = ffi.cast('int', objectHandle) + # tagName = ffi.new('char[]', tagName.encode('ascii')) + # data = ffi.new('char[]', data.encode('ascii')) + # lib.simWriteCustomDataBlock(objectHandle, tagName, data, dataSize) + pyrep_utils.script_call('_WriteCustomDataBlock@PyRep', PYREP_SCRIPT_TYPE, + ints=[objectHandle], strings=[tagName, data]) + +def ReadCustomDataBlock(objectHandle, tagName): + # dataSize = ffi.new('int*') + # objectHandle = ffi.cast('int', objectHandle) + # tagName = ffi.new('char[]', tagName.encode('ascii')) + # data = lib.simReadCustomDataBlock(objectHandle, tagName, dataSize) + data_string = None + try: + # data_string = ffi.string(data).decode('utf-8') + data = pyrep_utils.script_call('_ReadCustomDataBlock@PyRep', PYREP_SCRIPT_TYPE, + ints=[objectHandle], strings=[tagName]) + data_string = data[2][0] + except: + pass + return data_string + +def ReadCustomDataBlockTags(objectHandle): + # tagCount = ffi.new('int*') + # objectHandle = ffi.cast('int', objectHandle) + # data = lib.simReadCustomDataBlockTags(objectHandle, tagCount) + data_string = None + try: + data = pyrep_utils.script_call('_ReadCustomDataBlockTags@PyRep', PYREP_SCRIPT_TYPE, + ints=[objectHandle]) + data_string = data[2] + except: + pass + return data_string + +def test_reachability(arm: Arm, pose, try_ik_sampling=False, linear=False, ignore_collisions=False): + new_target = Dummy.create() + new_target.set_matrix(pose) + pos, ori = new_target.get_position(), new_target.get_orientation() + res, path = False, None + success = False + try: + _ = arm.solve_ik_via_jacobian(pos, ori) + success = True + except: + if try_ik_sampling: + try: + _ = arm.solve_ik_via_sampling(pos, ori) # much slower than jacobian + success = True + except: + pass + else: + pass + if success: + try: + path = arm.get_linear_path(pos, ori, ignore_collisions=ignore_collisions) if linear else arm.get_path(pos, ori, ignore_collisions=ignore_collisions) + if sum(path._get_path_point_lengths()) == 0: + res = False + else: + res = True + except: + pass + new_target.remove() + return res, path + +# execute_path, grasp, release are copied from amsolver/backend/scene.py +def execute_path(path, pyrep): + # print('executing path') + if sum(path._get_path_point_lengths()) == 0: + return None + done = False + while not done: + done = path.step() + for _ in range(2): + pyrep.step() + # add additional steps to ensure finish of current path + # for _ in range(100): + # pyrep.step() + path._path_done = False + path._rml_handle = None + return path + +def execute_grasp(gripper: Gripper, obj: Object, pyrep: PyRep, release=False): + # print('executing grasp') + done = False + step = 0.2 + success_grasp_distance = 0.015 + action = 1 if release else 0 + while not done: + done = gripper.actuate(action, step) + pyrep.step() + done = False + if release: + gripper.release() + else: + if hasattr(obj, 'graspable'): # all True for graspable objects + if obj.graspable == True: + done = gripper._proximity_sensor.is_detected(obj) and sum(gripper.get_joint_positions()) > success_grasp_distance + if done: + gripper.grasp(obj) + else: #for real-grasp + done = sum(gripper.get_joint_positions()) > success_grasp_distance + else: + done = sum(gripper.get_joint_positions()) > success_grasp_distance + return done + +def exportMesh(objects, output_format, output_path): + output_format_list = ['obj','text_stl','binary_stl','dae','text_ply','binary_ply'] + assert output_format in output_format_list + + if 'obj' in output_format: + suffix = '.obj' + elif 'stl' in output_format: + suffix = '.stl' + elif 'ply' in output_format: + suffix = '.ply' + elif 'dae' in output_format: + suffix = '.dae' + else: + raise ValueError('output format should choose inside [obj,stl,ply,dae]') + output_path = output_path+suffix + object_handles = [] + if type(objects) is list: + for obj in objects: + object_handles.append(obj._handle) + else: + object_handles.append(objects._handle) + pyrep_utils.script_call('_exportMesh@PyRep', + PYREP_SCRIPT_TYPE, ints=object_handles, strings=[output_format,output_path]) + +def pose_differences(pose1, pose2): + q1 = R.from_matrix(pose1[:3, :3]).as_quat() + q2 = R.from_matrix(pose2[:3, :3]).as_quat() + quat_diff = 1-abs(q1.dot(q2)) + translate_diff = ((pose1[:3, 3]-pose2[:3, 3])**2).sum()**(1/2) + return translate_diff, quat_diff + +def get_sorted_grasp_pose(obj_pose, local_grasp_pose, sort_key="vertical"): + grasp_pose = np.einsum('ij,kjl->kil', obj_pose, local_grasp_pose) + angle_z_z_axis = grasp_pose[:,2, 2] + angle_z_x_axis = grasp_pose[:,0, 2] + grasp_pose = grasp_pose[np.logical_and(angle_z_z_axis<0.1, angle_z_x_axis>-0.1)] + np.random.shuffle(grasp_pose) + if sort_key=="vertical": + axis_angle = grasp_pose[:,2, 2] + elif sort_key=="horizontal": + axis_angle = abs(grasp_pose[:,2, 2])-grasp_pose[:,0, 2]**2 + # sort_select = np.argsort(np.abs(angle_z_z_axis)) + elif type(sort_key)==list: + # New axis(sort_key[0]) in the world axis(sort_key[1]) + axis = ["x", "y", "z"] + axis_angle = grasp_pose[:,axis.index(sort_key[0]), axis.index(sort_key[1])] + if "abs" in sort_key[2]: + axis_angle = abs(axis_angle) + elif "neg" in sort_key[2]: + axis_angle = -axis_angle + else: + raise ValueError('sort_key can only be vertical first or horizontal first') + sort_select = np.argsort(axis_angle) + grasp_pose = grasp_pose[sort_select] + return grasp_pose + +def get_local_grasp_pose(obj: Object, ply_file: str, grasp_pose_path = './vlm/grasp_poses/', need_rebuild=False, use_meshlab=True, crop_box:Object =None): + args = define_default_args() + args.input_file = ply_file + args.output_file = os.path.join(grasp_pose_path, ply_file.split('/')[-1][:-4] + '.pkl') + args.use_meshlab = use_meshlab + obj_origin_matrix = obj.get_matrix() + if crop_box is not None: + args.no_crop = False + crop_boundary = crop_box.get_bounding_box() + crop_origin_matrix = crop_box.get_matrix() + args.crop_box_transform = crop_origin_matrix + args.crop_x_min = crop_boundary[0] + args.crop_y_min = crop_boundary[2] + args.crop_z_min = crop_boundary[4] + args.crop_x_max = crop_boundary[1] + args.crop_y_max = crop_boundary[3] + args.crop_z_max = crop_boundary[5] + gl = Grasploc(args) + # scale_object(self.toy, 0.5) + + if not os.path.exists(args.output_file) or need_rebuild: + exportMesh(obj, 'binary_ply', ply_file[:-4]) + gl.run(obj_origin_matrix) + else: + gl.load_result() + return gl.se3_output + +def add_joint(jointType, jointMode=sim.sim_jointmode_force, length=0.2, diameter=0.02): # joint axis is along Z + jointMode = ffi.cast('int', jointMode) + if jointType == 'revolute': + j_t = JointType.REVOLUTE + elif jointType == 'prismatic': + j_t = JointType.PRISMATIC + elif jointType == 'spherical': + j_t = JointType.SPHERICAL + else: + raise ValueError('the wrong joint type') + j_t = ffi.cast('int', j_t.value) + sizes = ffi.new('float[]',[length, diameter]) + color_A = ffi.new('float[]',[1,0,0]) + color_B = ffi.new('float[]',[0,0,1]) + handle = lib.simCreateJoint(j_t, jointMode, ffi.cast('int',0), sizes, color_A, color_B) + return Joint(int(handle)) + +def create_rotation_joint(container_pour, container_recv): + joint = add_joint('revolute', length=0.002, diameter=0.002) + joint.set_joint_interval(False, [-np.pi, np.pi]) + joint.set_model_dynamic(True) + joint_mat = np.zeros((3, 4)) # Z to be tangent, Y to be pointing from container_pour to container_recv in horizontal plane, X is always (0, 0, -1) + joint_mat[:, 0] = [0, 0, -1] + joint_mat[:, 1] = container_pour.get_position() - container_recv.get_position() + joint_mat[2, 1] = 0 + joint_mat[:, 2] = np.cross(joint_mat[:, 0], joint_mat[:, 1]) + joint_mat[:, 3] = container_pour.get_position() + joint.set_matrix(joint_mat) + joint.set_parent(container_pour.get_parent()) + container_pour.set_parent(joint) + return joint + +def select_color(index, other_color_numbers, replace=True): + target_color_name, target_rgb = colors[index] + + color_names, rgbs = [target_color_name], [target_rgb] + if other_color_numbers!=0: + random_idx = np.random.choice(len(colors), other_color_numbers, replace=replace) + while index in random_idx: + random_idx = np.random.choice(len(colors), other_color_numbers, replace=replace) + for i in random_idx: + name, rgb = colors[i] + color_names.append(name) + rgbs.append(rgb) + return color_names, rgbs + +def import_distractors(pyrep: PyRep, path = './vlm/asset', select_number=5, scale=1e-4): + models_path = [] + for path in Path(path).rglob('*.ttm'): + models_path.append(path) + idx = np.random.choice(len(models_path), size=select_number) + models = [] + for i in idx: + model = pyrep.import_model(str(models_path[i])) + model.set_model_dynamic(True) + model.set_model_collidable(True) + bbox = np.array(model.get_bounding_box()) + scaling_factor = (scale/np.prod(bbox[1:6:2]-bbox[0:6:2]))**(1/3) + scale_object(model, scaling_factor) + models.append(model) + return models + diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/backend/waypoints.py b/easi/tasks/ebmanipulation/vendor/amsolver/backend/waypoints.py new file mode 100644 index 0000000..9eb81bb --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/backend/waypoints.py @@ -0,0 +1,121 @@ +from pyrep.objects.object import Object +from pyrep.robots.configuration_paths.arm_configuration_path import ( + ArmConfigurationPath) +from amsolver.backend.robot import Robot +from amsolver.backend.utils import ReadCustomDataBlock +from scipy.spatial.transform import Rotation as R +import numpy as np + + +class Waypoint(object): + + def __init__(self, waypoint: Object, robot: Robot, ignore_collisions=False, + start_of_path_func=None, end_of_path_func=None): + self.name = waypoint.get_name() + self._waypoint = waypoint + self._robot = robot + self._ext = waypoint.get_extension_string() + self._ignore_collisions = ignore_collisions + self._linear_only = False + self._start_of_path_func = start_of_path_func + self._end_of_path_func = end_of_path_func + self.gripper_control = None + if len(self._ext) > 0: + self._ignore_collisions = 'ignore_collision' in self._ext + self._linear_only = 'linear' in self._ext + + contains_param = False + start_of_bracket = -1 + if 'open_gripper(' in self._ext: + start_of_bracket = self._ext.index('open_gripper(') + 13 + contains_param = self._ext[start_of_bracket] != ')' + if not contains_param: + self.gripper_control = ['open', 1] + else: + rest = self._ext[start_of_bracket:] + num = float(rest[:rest.index(')')]) + self.gripper_control = ['open', num] + elif 'close_gripper(' in self._ext: + start_of_bracket = self._ext.index('close_gripper(') + 14 + contains_param = self._ext[start_of_bracket] != ')' + if not contains_param: + self.gripper_control = ['close', 0] + else: + rest = self._ext[start_of_bracket:] + num = float(rest[:rest.index(')')]) + self.gripper_control = ['close', num] + + if ReadCustomDataBlock(waypoint._handle, "ignore_collisions") != None: + self._ignore_collisions = eval(ReadCustomDataBlock(waypoint._handle, "ignore_collisions")) + if ReadCustomDataBlock(waypoint._handle, "linear") != None: + self._linear_only = eval(ReadCustomDataBlock(waypoint._handle, "linear")) + if ReadCustomDataBlock(waypoint._handle, "gripper")!=None: + self.gripper_control = eval(ReadCustomDataBlock(waypoint._handle, "gripper")) + assert self.gripper_control[0] in ["open", "close"], "gripper only can open or close" + assert self.gripper_control[1]<=1 and self.gripper_control[1]>=0, "gripper distance should between 0 and 1" + self.low_level_descriptions = None + if ReadCustomDataBlock(waypoint._handle, "low_level_descriptions")!=None: + self.low_level_descriptions = ReadCustomDataBlock(waypoint._handle, "low_level_descriptions") + self.focus_obj_id = None + if ReadCustomDataBlock(waypoint._handle, "focus_obj_id")!=None: + self.focus_obj_id = eval(ReadCustomDataBlock(waypoint._handle, "focus_obj_id")) + self.focus_obj_name = None + if ReadCustomDataBlock(waypoint._handle,"focus_obj_name")!=None: + self.focus_obj_name = ReadCustomDataBlock(waypoint._handle, "focus_obj_name") + self.waypoint_type = None + if ReadCustomDataBlock(waypoint._handle, "waypoint_type")!=None: + self.waypoint_type = ReadCustomDataBlock(waypoint._handle, "waypoint_type") + + def get_path(self, ignore_collisions=False) -> ArmConfigurationPath: + raise NotImplementedError() + + def get_ext(self) -> str: + return self._ext + + def get_waypoint_object(self) -> Object: + return self._waypoint + + def remove(self) -> None: + self._waypoint.remove() + + def start_of_path(self) -> None: + if self._start_of_path_func is not None: + self._start_of_path_func(self) + + def end_of_path(self) -> None: + if self._end_of_path_func is not None: + self._end_of_path_func(self) + + +class Point(Waypoint): + def __init__(self, waypoint: Object, robot: Robot, ignore_collisions=False, start_of_path_func=None, end_of_path_func=None): + super().__init__(waypoint, robot, ignore_collisions, start_of_path_func, end_of_path_func) + self.pose = waypoint.get_pose() + + def get_path(self, ignore_collisions=False) -> ArmConfigurationPath: + arm = self._robot.arm + if self._linear_only: + path = arm.get_linear_path(self._waypoint.get_position(), + euler=self._waypoint.get_orientation(), + ignore_collisions=(self._ignore_collisions or + ignore_collisions)) + else: + path = arm.get_path(self._waypoint.get_position(), + euler=self._waypoint.get_orientation(), + ignore_collisions=(self._ignore_collisions or + ignore_collisions)) + return path + + +class PredefinedPath(Waypoint): + def __init__(self, waypoint: Object, robot: Robot, ignore_collisions=False, start_of_path_func=None, end_of_path_func=None): + super().__init__(waypoint, robot, ignore_collisions, start_of_path_func, end_of_path_func) + start_pos, start_ori = waypoint.get_pose_on_path(0) + self.start_pose = np.array(start_pos + R.from_euler('zyx', start_ori[::-1]).as_quat().tolist()) + end_pos, end_ori = waypoint.get_pose_on_path(1) + self.end_pose = np.array(end_pos + R.from_euler('zyx', end_ori[::-1]).as_quat().tolist()) + + def get_path(self, ignore_collisions=False) -> ArmConfigurationPath: + arm = self._robot.arm + path = arm.get_path_from_cartesian_path(self._waypoint) + return path diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/const.py b/easi/tasks/ebmanipulation/vendor/amsolver/const.py new file mode 100644 index 0000000..31b5522 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/const.py @@ -0,0 +1,260 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench + +seen_colors = [ + ('red', (1.0, 0.0, 0.0)), + ('maroon', (0.5, 0.0, 0.0)), + ('lime', (0.0, 1.0, 0.0)), + ('green', (0.0, 0.5, 0.0)), + ('blue', (0.0, 0.0, 1.0)), + ('navy', (0.0, 0.0, 0.5)), + ('yellow', (1.0, 1.0, 0.0)), + ('cyan', (0.0, 1.0, 1.0)), + ('magenta', (1.0, 0.0, 1.0)), + ('silver', (0.75, 0.75, 0.75)), + ('gray', (0.5, 0.5, 0.5)), + ('orange', (1.0, 0.5, 0.0)), + ('olive', (0.5, 0.5, 0.0)), + ('purple', (0.5, 0.0, 0.5)), + ('teal', (0, 0.5, 0.5)), + ('azure', (0.0, 0.5, 1.0)), + ('violet', (0.5, 0.0, 1.0)), + ('rose', (1.0, 0.0, 0.5)), + ('black', (0.0, 0.0, 0.0)), + ('white', (1.0, 1.0, 1.0)), +] +#unseen +unseen_colors = [ + ('brown', (0.65, 0.16, 0.16)), + ('gold', (1.0, 0.65, 0.0)), + ('pink', (1.0, 0.75, 0.8)), + ('chocolate', (0.8, 0.4, 0.12)), + ('coral', (1.0, 0.5, 0.32)) +] + +#seen objects +seen_object_shapes = { + "star":{ + "path":"star/star_normal/star_normal.ttm" + }, + "triangular":{ + "path":"triangular/triangular_normal/triangular_normal.ttm" + }, + "cylinder":{ + "path":"cylinder/cylinder_normal/cylinder_normal.ttm" + }, + "cube":{ + "path":"cube/cube_basic/cube_basic.ttm" + }, + "moon":{ + "path":"moon/moon_normal/moon_normal.ttm" + }, + # "letter_r":{ + # "path":"letters/letter_r/letter_r.ttm" + # }, + # "letter_a":{ + # "path":"letters/letter_a/letter_a.ttm" + # }, + # "letter_v":{ + # "path":"letters/letter_v/letter_v.ttm" + # }, + # "pentagon":{ + # "path":"basic_shapes/pentagon/pentagon.ttm" + # } +} +#unseen objects +unseen_object_shapes = { + "cube":{ + "path":"cube/cube_basic/cube_basic.ttm" + }, + "letter_t":{ + "path":"letters/letter_t/letter_t.ttm" + }, + "cross":{ + "path":"basic_shapes/cross/cross.ttm" + }, + "flower":{ + "path":"basic_shapes/flower/flower.ttm" + } +} + +seen_planes ={ + "rectangle":{ + "path":"basic_shapes/plane_rectangle.ttm", + "directional": True + }, + "round":{ + "path":"basic_shapes/plane_round.ttm", + "directional": False + }, + "star":{ + "path":"basic_shapes/plane_star.ttm", + "directional": False + }, + "triangle":{ + "path":"basic_shapes/plane_triangle.ttm", + "directional": True + } +} + +unseen_planes ={ + "cross":{ + "path":"basic_shapes/plane_cross.ttm", + "directional": True + }, + "flower":{ + "path":"basic_shapes/plane_flower.ttm", + "directional": False + } +} + +seen_sorter_objects = { + "star":{ + "path":"star/star_normal/star_normal.ttm" + }, + "triangular":{ + "path":"triangular/triangular_normal/triangular_normal.ttm" + }, + "cylinder":{ + "path":"cylinder/cylinder_normal/cylinder_normal.ttm" + }, + "cube":{ + "path":"cube/cube_basic/cube_basic.ttm" + } +} + +unseen_sorter_objects = { + "moon":{ + "path":"moon/moon_normal/moon_normal.ttm" + }, + "star":{ + "path":"star/star_normal/star_normal.ttm" + }, + "triangular":{ + "path":"triangular/triangular_normal/triangular_normal.ttm" + }, + "cylinder":{ + "path":"cylinder/cylinder_normal/cylinder_normal.ttm" + }, + "cube":{ + "path":"cube/cube_basic/cube_basic.ttm" + } +} + +seen_drawer_list = [ + { + "path": "drawer/drawer1/drawer1.ttm", + "max_joint": 0.2 + }, + { + "path": "drawer/drawer2/drawer2.ttm", + "max_joint": 0.2 + } +] + +unseen_drawer_list = [ + { + "path": "drawer/drawer3/drawer3.ttm", + "max_joint": 0.3 + } +] + +seen_cabinet_list = [ + { + "path": "cabinet/cabinet6/cabinet6.ttm", + "max_joint": 0.19 + }, + { + "path": "cabinet/cabinet5/cabinet5.ttm", + "max_joint": 0.32 + } +] + +unseen_cabinet_list = [ + { + "path": "cabinet/cabinet3/cabinet3.ttm", + "max_joint": 0.19 + } +] + +seen_door_list = [ + { + "path": "fridge/fridge1/fridge1.ttm" + }, + { + "path": "fridge/fridge2/fridge2.ttm" + }, + { + "path": "microwave/microwave1/microwave1.ttm" + }, + { + "path": "microwave/microwave4/microwave4.ttm" + } +] + +unseen_door_list = [ + { + "path": "microwave/microwave6/microwave6.ttm" + }, + { + "path": "fridge/fridge5/fridge5.ttm" + }, +] + +seen_complex_door_list = [ + { + "path": "door/door1/door1.ttm" + } +] + +unseen_complex_door_list = [ + { + "path": "door/door2/door2.ttm" + } +] + +seen_mug_list = [ + { + "path": "mug/mug1/mug1.ttm" + }, + { + "path": "mug/mug2/mug2.ttm" + }, + { + "path": "mug/mug3/mug3.ttm" + }, + { + "path": "mug/mug4/mug4.ttm" + }, +] + +unseen_mug_list = [ + { + "path": "mug/mug5/mug5.ttm" + }, + { + "path": "mug/mug6/mug6.ttm" + } +] + +colors = seen_colors +object_shapes = seen_object_shapes +planes = seen_planes +sorter_objects = seen_sorter_objects +drawer_list = seen_drawer_list +cabinet_list = seen_cabinet_list +door_list = seen_door_list +mug_list = seen_mug_list +complex_door_list = seen_complex_door_list + +""" +if users want to collect unseen data, please comment the above lines and uncomment the below lines. +colors = unseen_colors +object_shapes = unseen_object_shapes +planes = unseen_planes +sorter_objects = unseen_sorter_objects +drawer_list = unseen_drawer_list +cabinet_list = unseen_cabinet_list +door_list = unseen_door_list +mug_list = unseen_mug_list +complex_door_list = unseen_complex_door_list +""" \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/demo.py b/easi/tasks/ebmanipulation/vendor/amsolver/demo.py new file mode 100644 index 0000000..fd9fd56 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/demo.py @@ -0,0 +1,18 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +import numpy as np + + +class Demo(object): + + def __init__(self, observations, random_seed=None): + self._observations = observations + self.random_seed = random_seed + + def __len__(self): + return len(self._observations) + + def __getitem__(self, i): + return self._observations[i] + + def restore_state(self): + np.random.set_state(self.random_seed) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/environment.py b/easi/tasks/ebmanipulation/vendor/amsolver/environment.py new file mode 100644 index 0000000..b2ea648 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/environment.py @@ -0,0 +1,252 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +import pickle + +from pyrep import PyRep +from pyrep.objects import VisionSensor +from pyrep.robots.arms.panda import Panda +from pyrep.robots.arms.jaco import Jaco +from pyrep.robots.arms.mico import Mico +from pyrep.robots.arms.sawyer import Sawyer +from pyrep.robots.arms.ur5 import UR5 +from pyrep.robots.end_effectors.panda_gripper import PandaGripper +from pyrep.robots.end_effectors.jaco_gripper import JacoGripper +from pyrep.robots.end_effectors.mico_gripper import MicoGripper +from pyrep.robots.end_effectors.baxter_gripper import BaxterGripper +from pyrep.robots.end_effectors.robotiq85_gripper import Robotiq85Gripper + +from amsolver import utils +from amsolver.demo import Demo + +from amsolver.sim2real.domain_randomization import RandomizeEvery, \ + VisualRandomizationConfig, DynamicsRandomizationConfig + +from amsolver.sim2real.domain_randomization_scene import DomainRandomizationScene + +from amsolver.backend.scene import Scene +from amsolver.backend.task import Task +from amsolver.backend.const import * +from amsolver.backend.robot import Robot +from os.path import exists, dirname, abspath, join +import importlib +from typing import Type, List +from amsolver.observation_config import ObservationConfig +from amsolver.task_environment import TaskEnvironment +from amsolver.action_modes import ActionMode, ArmActionMode + + +DIR_PATH = dirname(abspath(__file__)) + +# Arms from PyRep need to be modified to include a wrist camera. +# Currently, only the arms/grippers below are supported. +SUPPORTED_ROBOTS = { + 'panda': (Panda, PandaGripper, 7), + 'jaco': (Jaco, JacoGripper, 6), + 'mico': (Mico, MicoGripper, 6), + 'sawyer': (Sawyer, BaxterGripper, 7), + 'ur5': (UR5, Robotiq85Gripper, 6), +} + + +class Environment(object): + """Each environment has a scene.""" + + def __init__(self, action_mode: ActionMode, dataset_root: str='', + obs_config=ObservationConfig(), headless=False, + static_positions: bool=False, + robot_configuration='panda', + randomize_every: RandomizeEvery=None, + frequency: int=1, + visual_randomization_config: VisualRandomizationConfig=None, + dynamics_randomization_config: DynamicsRandomizationConfig=None, + attach_grasped_objects: bool = True + ): + + self._dataset_root = dataset_root + self._action_mode = action_mode + self._obs_config = obs_config + self._headless = headless + self._static_positions = static_positions + self._robot_configuration = robot_configuration.lower() + + self._randomize_every = randomize_every + self._frequency = frequency + self._visual_randomization_config = visual_randomization_config + self._dynamics_randomization_config = dynamics_randomization_config + self._attach_grasped_objects = attach_grasped_objects + + if robot_configuration not in SUPPORTED_ROBOTS.keys(): + raise ValueError('robot_configuration must be one of %s' % + str(SUPPORTED_ROBOTS.keys())) + + if (randomize_every is not None and + visual_randomization_config is None and + dynamics_randomization_config is None): + raise ValueError( + 'If domain randomization is enabled, must supply either ' + 'visual_randomization_config or dynamics_randomization_config') + + self._check_dataset_structure() + + self._pyrep = None + self._robot = None + self._scene = None + self._prev_task = None + + def _set_arm_control_action(self): + self._robot.arm.set_control_loop_enabled(True) + if (self._action_mode.arm == ArmActionMode.ABS_JOINT_VELOCITY or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_VELOCITY): + self._robot.arm.set_control_loop_enabled(False) + self._robot.arm.set_motor_locked_at_zero_velocity(True) + elif (self._action_mode.arm == ArmActionMode.ABS_JOINT_POSITION or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_POSITION or + self._action_mode.arm == ArmActionMode.ABS_EE_POSE_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK or + self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_PLAN_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.EE_POSE_PLAN_EE_FRAME or + self._action_mode.arm == ArmActionMode.EE_POSE_EE_FRAME): + self._robot.arm.set_control_loop_enabled(True) + elif (self._action_mode.arm == ArmActionMode.ABS_JOINT_TORQUE or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_TORQUE): + self._robot.arm.set_control_loop_enabled(False) + else: + raise RuntimeError('Unrecognised action mode.') + + def _check_dataset_structure(self): + if len(self._dataset_root) > 0 and not exists(self._dataset_root): + raise RuntimeError( + 'Data set root does not exists: %s' % self._dataset_root) + + def _string_to_task(self, task_name: str): + task_name = task_name.replace('.py', '') + try: + class_name = ''.join( + [w[0].upper() + w[1:] for w in task_name.split('_')]) + mod = importlib.import_module("amsolver.tasks.%s" % task_name) + except Exception as e: + raise RuntimeError( + 'Tried to interpret %s as a task, but failed. Only valid tasks ' + 'should belong in the tasks/ folder' % task_name) from e + return getattr(mod, class_name) + + def launch(self): + if self._pyrep is not None: + raise RuntimeError('Already called launch!') + self._pyrep = PyRep() + self._pyrep.launch(join(DIR_PATH, TTT_FILE), headless=self._headless) + + arm_class, gripper_class, _ = SUPPORTED_ROBOTS[ + self._robot_configuration] + + # We assume the panda is already loaded in the scene. + if self._robot_configuration != 'panda': + # Remove the panda from the scene + panda_arm = Panda() + panda_pos = panda_arm.get_position() + panda_arm.remove() + arm_path = join(DIR_PATH, + 'robot_ttms', self._robot_configuration + '.ttm') + self._pyrep.import_model(arm_path) + arm, gripper = arm_class(), gripper_class() + arm.set_position(panda_pos) + else: + arm, gripper = arm_class(), gripper_class() + + self._robot = Robot(arm, gripper) + if self._randomize_every is None: + self._scene = Scene(self._pyrep, self._robot, self._obs_config) + else: + self._scene = DomainRandomizationScene( + self._pyrep, self._robot, self._obs_config, + self._randomize_every, self._frequency, + self._visual_randomization_config, + self._dynamics_randomization_config) + + self._set_arm_control_action() + + def shutdown(self): + if self._pyrep is not None: + self._pyrep.shutdown() + self._pyrep = None + + def get_task(self, task_class: Type[Task]) -> TaskEnvironment: + + # If user hasn't called launch, implicitly call it. + if self._pyrep is None: + self.launch() + + self._scene.unload() + task = task_class(self._pyrep, self._robot) + self._prev_task = task + return TaskEnvironment( + self._pyrep, self._robot, self._scene, task, + self._action_mode, self._dataset_root, self._obs_config, + self._static_positions, self._attach_grasped_objects) + + @property + def action_size(self): + arm_action_size = 0 + gripper_action_size = 1 # Only one gripper style atm + if (self._action_mode.arm == ArmActionMode.ABS_JOINT_VELOCITY or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_VELOCITY or + self._action_mode.arm == ArmActionMode.ABS_JOINT_POSITION or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_POSITION or + self._action_mode.arm == ArmActionMode.ABS_JOINT_TORQUE or + self._action_mode.arm == ArmActionMode.DELTA_JOINT_TORQUE): + arm_action_size = SUPPORTED_ROBOTS[self._robot_configuration][2] + elif (self._action_mode.arm == ArmActionMode.ABS_EE_POSE_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK or + self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_PLAN_WORLD_FRAME or + self._action_mode.arm == ArmActionMode.EE_POSE_PLAN_EE_FRAME or + self._action_mode.arm == ArmActionMode.EE_POSE_EE_FRAME): + arm_action_size = 7 # pose is always 7 + return arm_action_size + gripper_action_size + + def get_demos(self, task_name: str, amount: int, + variation_number=0, + image_paths=False, + random_selection: bool = True, + from_episode_number: int = 0) -> List[Demo]: + if self._dataset_root is None or len(self._dataset_root) == 0: + raise RuntimeError( + "Can't ask for a stored demo when no dataset root provided.") + demos = utils.get_stored_demos( + amount, image_paths, self._dataset_root, variation_number, + task_name, self._obs_config, random_selection, from_episode_number) + return demos + + def get_scene_data(self) -> dict: + """Get the data of various scene/camera information. + + This temporarily starts the simulator in headless mode. + + :return: A dictionary containing scene data. + """ + def _get_cam_info(cam: VisionSensor): + if not cam.still_exists(): + return None + intrinsics = cam.get_intrinsic_matrix() + return dict( + intrinsics=intrinsics, + near_plane=cam.get_near_clipping_plane(), + far_plane=cam.get_far_clipping_plane(), + extrinsics=cam.get_matrix()) + headless = self._headless + self._headless = True + self.launch() + d = dict( + left_shoulder_camera=_get_cam_info( + self._scene._cam_over_shoulder_left), + right_shoulder_camera=_get_cam_info( + self._scene._cam_over_shoulder_right), + front_camera=_get_cam_info(self._scene._cam_front), + wrist_camera=_get_cam_info(self._scene._cam_wrist), + overhead_camera=_get_cam_info(self._scene._cam_overhead) + ) + self.shutdown() + self._headless = headless + return d diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/gym/__init__.py b/easi/tasks/ebmanipulation/vendor/amsolver/gym/__init__.py new file mode 100644 index 0000000..97866d7 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/gym/__init__.py @@ -0,0 +1,28 @@ +from gymnasium.envs.registration import register +import amsolver.backend.task as task +import os +from amsolver.utils import name_to_task_class +from amsolver.gym.vlmbench_env import VLMBenchEnv + +TASKS = [t for t in os.listdir(task.TASKS_PATH) + if t != '__init__.py' and t.endswith('.py')] + +for task_file in TASKS: + task_name = task_file.split('.py')[0] + task_class = name_to_task_class(task_name) + register( + id='%s-state-v0' % task_name, + entry_point='amsolver.gym:VLMBenchEnv', + kwargs={ + 'task_class': task_class, + 'observation_mode': 'state' + } + ) + register( + id='%s-vision-v0' % task_name, + entry_point='amsolver.gym:VLMBenchEnv', + kwargs={ + 'task_class': task_class, + 'observation_mode': 'vision' + } + ) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/gym/vlmbench_env.py b/easi/tasks/ebmanipulation/vendor/amsolver/gym/vlmbench_env.py new file mode 100644 index 0000000..ac508c0 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/gym/vlmbench_env.py @@ -0,0 +1,106 @@ +from typing import Union, Dict, Tuple + +import gymnasium as gym +from gymnasium import spaces +from pyrep.const import RenderMode +from pyrep.objects.dummy import Dummy +from pyrep.objects.vision_sensor import VisionSensor +from amsolver.environment import Environment +from amsolver.action_modes import ArmActionMode, ActionMode +from amsolver.observation_config import ObservationConfig +import numpy as np + + +class VLMBenchEnv(gym.Env): + """An gym wrapper for VLMbench. Copy from RLbenchEnv.""" + + metadata = {'render.modes': ['human', 'rgb_array']} + + def __init__(self, task_class, observation_mode='state', + render_mode: Union[None, str] = None): + self._observation_mode = observation_mode + self._render_mode = render_mode + obs_config = ObservationConfig() + if observation_mode == 'state': + obs_config.set_all_high_dim(False) + obs_config.set_all_low_dim(True) + elif observation_mode == 'vision': + obs_config.set_all(True) + else: + raise ValueError( + 'Unrecognised observation_mode: %s.' % observation_mode) + action_mode = ActionMode(ArmActionMode.ABS_JOINT_VELOCITY) + self.env = Environment( + action_mode, obs_config=obs_config, headless=True) + self.env.launch() + self.task = self.env.get_task(task_class) + + desc, obs = self.task.reset() + + self.action_space = spaces.Box( + low=-1.0, high=1.0, shape=(self.env.action_size,)) + + if observation_mode == 'state': + self.observation_space = spaces.Box( + low=-np.inf, high=np.inf, shape=obs.get_low_dim_data().shape) + elif observation_mode == 'vision': + self.observation_space = spaces.Dict({ + "state": spaces.Box( + low=-np.inf, high=np.inf, + shape=obs.get_low_dim_data().shape), + "left_shoulder_rgb": spaces.Box( + low=0, high=1, shape=obs.left_shoulder_rgb.shape), + "right_shoulder_rgb": spaces.Box( + low=0, high=1, shape=obs.right_shoulder_rgb.shape), + "wrist_rgb": spaces.Box( + low=0, high=1, shape=obs.wrist_rgb.shape), + "front_rgb": spaces.Box( + low=0, high=1, shape=obs.front_rgb.shape), + }) + + if render_mode is not None: + # Add the camera to the scene + cam_placeholder = Dummy('cam_cinematic_placeholder') + self._gym_cam = VisionSensor.create([640, 360]) + self._gym_cam.set_pose(cam_placeholder.get_pose()) + if render_mode == 'human': + self._gym_cam.set_render_mode(RenderMode.OPENGL3_WINDOWED) + else: + self._gym_cam.set_render_mode(RenderMode.OPENGL3) + + def _extract_obs(self, obs) -> Dict[str, np.ndarray]: + if self._observation_mode == 'state': + return obs.get_low_dim_data() + elif self._observation_mode == 'vision': + return { + "state": obs.get_low_dim_data(), + "left_shoulder_rgb": obs.left_shoulder_rgb, + "right_shoulder_rgb": obs.right_shoulder_rgb, + "wrist_rgb": obs.wrist_rgb, + "front_rgb": obs.front_rgb, + } + + def render(self, mode='human') -> Union[None, np.ndarray]: + if mode != self._render_mode: + raise ValueError( + 'The render mode must match the render mode selected in the ' + 'constructor. \nI.e. if you want "human" render mode, then ' + 'create the env by calling: ' + 'gym.make("reach_target-state-v0", render_mode="human").\n' + 'You passed in mode %s, but expected %s.' % ( + mode, self._render_mode)) + if mode == 'rgb_array': + return self._gym_cam.capture_rgb() + + def reset(self) -> Dict[str, np.ndarray]: + descriptions, obs = self.task.reset() + obs_info = self._extract_obs(obs) + obs_info['descriptions'] = descriptions + return obs_info + + def step(self, action) -> Tuple[Dict[str, np.ndarray], float, bool, dict]: + obs, reward, terminate = self.task.step(action) + return self._extract_obs(obs), reward, terminate, {} + + def close(self) -> None: + self.env.shutdown() diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/noise_model.py b/easi/tasks/ebmanipulation/vendor/amsolver/noise_model.py new file mode 100644 index 0000000..8af5a31 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/noise_model.py @@ -0,0 +1,29 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from typing import Tuple + +import numpy as np + + +class NoiseModel(object): + + def apply(self, val: np.ndarray) -> np.ndarray: + raise NotImplementedError() + + +class Identity(NoiseModel): + def apply(self, val: np.ndarray): + return val + + +class GaussianNoise(NoiseModel): + + def __init__(self, variance, min_max_clip: Tuple[float, float]=None): + self._variance = variance + self._min_max_clip = min_max_clip + + def apply(self, val: np.ndarray): + val += np.random.normal(0.0, scale=self._variance, size=val.shape) + if self._min_max_clip is not None: + val = np.clip(val, *self._min_max_clip) + return val + diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/observation_config.py b/easi/tasks/ebmanipulation/vendor/amsolver/observation_config.py new file mode 100644 index 0000000..10a5076 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/observation_config.py @@ -0,0 +1,140 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from pyrep.const import RenderMode +from amsolver.noise_model import NoiseModel, Identity + + +class CameraConfig(object): + def __init__(self, + rgb=True, + rgb_noise: NoiseModel=Identity(), + depth=True, + depth_noise: NoiseModel=Identity(), + point_cloud=True, + mask=True, + image_size=(128, 128), + render_mode=RenderMode.OPENGL3, + masks_as_one_channel=True, + depth_in_meters=False): + self.rgb = rgb + self.rgb_noise = rgb_noise + self.depth = depth + self.depth_noise = depth_noise + self.point_cloud = point_cloud + self.mask = mask + self.image_size = image_size + self.render_mode = render_mode + self.masks_as_one_channel = masks_as_one_channel + self.depth_in_meters = depth_in_meters + + def set_all(self, value: bool): + self.rgb = value + self.depth = value + self.point_cloud = value + self.mask = value + + def __eq__(self, o: object) -> bool: + is_equal = self.image_size == o.image_size + for attribute in self.__dict__: + if type(self.__dict__[attribute]) == bool: + if self.__dict__[attribute] != o.__dict__[attribute]: + is_equal = False + return is_equal + + +class ObservationConfig(object): + def __init__(self, + left_shoulder_camera: CameraConfig = None, + right_shoulder_camera: CameraConfig = None, + overhead_camera: CameraConfig = None, + wrist_camera: CameraConfig = None, + front_camera: CameraConfig = None, + joint_velocities=True, + joint_velocities_noise: NoiseModel=Identity(), + joint_positions=True, + joint_positions_noise: NoiseModel=Identity(), + joint_forces=True, + joint_forces_noise: NoiseModel=Identity(), + gripper_open=True, + gripper_pose=True, + gripper_matrix=False, + gripper_joint_positions=False, + gripper_touch_forces=False, + wrist_camera_matrix=False, + record_gripper_closing=False, + task_low_dim_state=False, + ): + self.left_shoulder_camera = ( + CameraConfig() if left_shoulder_camera is None + else left_shoulder_camera) + self.right_shoulder_camera = ( + CameraConfig() if right_shoulder_camera is None + else right_shoulder_camera) + self.overhead_camera = ( + CameraConfig() if overhead_camera is None + else overhead_camera) + self.wrist_camera = ( + CameraConfig() if wrist_camera is None + else wrist_camera) + self.front_camera = ( + CameraConfig() if front_camera is None + else front_camera) + self.joint_velocities = joint_velocities + self.joint_velocities_noise = joint_velocities_noise + self.joint_positions = joint_positions + self.joint_positions_noise = joint_positions_noise + self.joint_forces = joint_forces + self.joint_forces_noise = joint_forces_noise + self.gripper_open = gripper_open + self.gripper_pose = gripper_pose + self.gripper_matrix = gripper_matrix + self.gripper_joint_positions = gripper_joint_positions + self.gripper_touch_forces = gripper_touch_forces + self.wrist_camera_matrix = wrist_camera_matrix + self.record_gripper_closing = record_gripper_closing + self.task_low_dim_state = task_low_dim_state + + def set_all(self, value: bool): + self.set_all_high_dim(value) + self.set_all_low_dim(value) + + def set_all_high_dim(self, value: bool): + self.left_shoulder_camera.set_all(value) + self.right_shoulder_camera.set_all(value) + self.overhead_camera.set_all(value) + self.wrist_camera.set_all(value) + self.front_camera.set_all(value) + + def set_all_low_dim(self, value: bool): + self.joint_velocities = value + self.joint_positions = value + self.joint_forces = value + self.gripper_open = value + self.gripper_pose = value + self.gripper_matrix = value + self.gripper_joint_positions = value + self.gripper_touch_forces = value + self.wrist_camera_matrix = value + self.task_low_dim_state = value + + def set_image_size(self, image_size): + self.left_shoulder_camera.image_size = image_size + self.right_shoulder_camera.image_size = image_size + self.overhead_camera.image_size = image_size + self.wrist_camera.image_size = image_size + self.front_camera.image_size = image_size + + def set_render_mode(self, render_mode): + self.left_shoulder_camera.render_mode = render_mode + self.right_shoulder_camera.render_mode = render_mode + self.overhead_camera.render_mode = render_mode + self.wrist_camera.render_mode = render_mode + self.front_camera.render_mode = render_mode + + def __eq__(self, o: object) -> bool: + is_equal = True + for attribute in self.__dict__: + if 'noise' in attribute: + continue + if self.__dict__[attribute] != o.__dict__[attribute]: + is_equal = False + return is_equal diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/jaco.ttm b/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/jaco.ttm new file mode 100644 index 0000000000000000000000000000000000000000..20fbef572ba3f2b12fadc2169745ad1036aab4ca GIT binary patch literal 588730 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ΜfJf{umrOk#nCWqJrlrMi*2kyfR~?JEoMvv@mC8uEWQtcdQX z|C&B#_{4BD{f&v`UBr9;+=Yie+G*NpYL6FovyaT)G|e<0toT&ERX$kp`7K2`MaAcF_HFjv&u_I<*>|*5ty-lv{d8drB&lVU*Ye}mJr$_zj|g>ATc43*w*GY=u~DwClI@}Q!QfshcPv zC-dsutGah4A43Ome?!13cRjUoBxu%re}3=Y-o5?#PfUCFJ~189+mn5J`Km*6smOG8 zwJJ-j&!|68HdPcZvY;cGG=|H@vwjd@cbQ=xZ7_Mcap5Dw{O%nqDcHg;Rd8L{Ovg3P zi&6|mj@o#ZVx0-rFkx+2F^K{JPX~EhB&(rn3MGjeWuBslJ)Ou&@`FAFPEGxU!9e{h zhVdzEOBs8E0roAT7AqEX&k+?cagfALF+3AWkilSBvN$|bs6wRIZs?i9$faVe*Y4x{ zASH#8LossL+6R_G$)(l{7P7)LJ2)NGy1yCO_8&jPpzQtDC2a*xt0Z`D`ly#rRyG&d zb%YfxP|`DTDTakBV<6Y#7cSRxCnyJ`XBd>&EHCoHzSehHg(S3T-M#XP8ODPMpX`{k z>NtygRuFzPRbr)7&*v63Yh6E8CcMw9(wDf-eMo)xDYNzDy^hy=du^(g`6uT{s9h%S zO$xi9>fZSd=zTnv*=2eTW()T^>XzR5&V1fwp1bTa*?1eK3)2(S69lopC!rWT*RFpm1u(m@2J{TivLozjI z*C8QE=ji_BoICRt_?x>N=CZZbA-<;iP5%mAMc7APmE7i2%-Nl`1Zv9{*qxZmXl6R_ z`P>0N$b}EcmS|$2aqS*2I6orJgly?F#COplW`eV@r!mV-u`|Rl=%3UL{y1sBCe`;*wdk zncsrp(Qhyt20of=-?j3GkM}jB%m>6p>O?Bm>C<%sbpuT>xo)7rv@v3-(k0+?OMok* zE&ak35i;lpF`@DBW|RuR6$SmNw@W)qTPNlR^moIaeBT@N?{TK9XoxrM?hs!}+zR+= zd*AGirF0dtCGw3}X$AJ3Gb6}*LCR|Tha^}GMi|_B zf$Q?c0L-9wUyd2&1#uuB26GA%Gg|h zW}hE*-xQ9NwxhG7h`d;sZifw0Mrf#T{|l{oc6;f>IP+02u%ZcD&sp7Dg@J?tW^%s= z<(Q?T8w>x&^~%`)M-YW-M|CAw_rQzbaA8{*3`PV1nxb+@)!L;cei${WF55p?XD7F*s-5?V= z0T!AB!U)_>oYB*7IPgQeZoB+`mDG3v`s>UlVx?jgJZAbOqm66bV8eff{Aml<=MpzF z`36%~zODD|AMgK+{y}@#eI&GfYpM{TzWl4}XVgvFBXFoju$m9BoT8jXuYv<1i~hfY zAH5%a7DElG4C!=OIKXy?!XPe4oUxp-xR@MTB6ls}JM(`EKzuo6EP(hzl<=a6r~$!( zivR6Z89?DOVoVuigMb-CTaT1B7z};frU{Ir{EgN+TG;cs+6o z@)rE6Q<=%%(b+PzE4}iT&N&`h70^4%Z^rEG?<`ZtG!wU@;#Z#i%mJ*Z%+&jp{4l%+ zcD~>oQ>PxKpO+F+X!%q<>c&~j0&G0K+O$Sjnwv3odu+OdF=@IyPVFlD6XccN3%2n^ z@fGK)RVEo~Zk$bwRYe!r=nFrEjmJ1Ei?hTeD1(Y8$TPhcw76Cam3Z{jee|=be=np^ z=i6~ls~hT@K2`41@MSMWURQH3NYS5ms5jn8y<_)y+95nlCCtxwc_eWOIg-7fy?>f# z@23YR83>M@LKIhUOceJNGAly%kLO&yOc|4ALz7Gy6MG9ukYTE;V^&f`+9Xsrwcn0a zS|X=7E3ySbh_#5dG{6c=?Rfo}DQ#CSu(F_5nJuuIETVNIPvQ?sgnO5u5pivv6J8Ck z-bGG^$MCy!6a&o)3r5mJ*#rq4kE1;ad6#$(n#Pu-=j=-^;XTd=+R!}V<4-V85FtHz zPDkhu<`T;CZENNOEC+UApcNruwNe07}YFjAv zs%2|HYe1)Et12i}yAmwrl&2K=75SB?pc2ZJG%x$w0}o_|%VE1l&`*3C2ND*RWqlVV-mI-gO9P1A2K z!0AEeI;p5!<%M4hOQ3%XzcE6IOq=^Qr7QQX=ew`}tNue{1H#>UzDp?D8}^&Ok4ukB zk2BXL6j{M@7sz$~wL1{p#B@-Z`A-c9pUN{vFx+=h691`q;deIG%d-F4JzjVkp}tbR zk`{IIUq?^r7Gj9;+D}8T{IePt5%cOItbf@jg6*HxI24hioSiDFaf(w>|7=n{t2BjC zoKk_3^*=9#!+MnG$R`R+`A)^RwHQ$f2@rYDra!T};r2(*0P`Riym@P0^p#aQ_@e&N zc-$BL1lsA9wuI?pQvayN@fjdYkA^dQ4h$Io^J!Aicn%yKhB+`jwm_V!QD7uPghEo= zt)g*5lPH3JR^tI}0LS#1!>0AftbaayMIhVW^_TtV{c`A^jRaB)RE2+2vOV9w_C7z5 zFRj@psx@Tr&nv{`$#C~G8}pVJ>i^f?)$493K2g_g>5!U#-YS-|ZRxz4%JtE~^Z(ji z3CQ(RO^jnj`i1||9{g10^l3VJd+hAQf8DHVQLH{2I0+ER_TQKvLri`G#LdZSsTLfC zpE^=BQZ(@cPSPrJHeKS4sn}?J;A+NV78fHI+2A6IbGQC!qqdZ`6xMm)0bFt8+kItk zY8D-)X(0Kg+rVskgJ@cu#l`28jjyX7$eLz{H7fHk48n%q6va5$AKsV^Hh_6z#7PP;iCyns%8Z;*;#|B`u*H) zB5oqChSY{L_WEA#UT&<%`h5TxnPC)f6z|U$^{^CunxKnM5k8I08iyD>^-2$5e^~Zn zo>d|Zd^vBB*pN_ZEyj*%db3C;`ORkr$pp_Nq$i59+Tj6FP2_+!5JGZu>S78mVW@f_ zG8xp^YW8G(gyfSSy(tZ~t<^yU0X^wRUiOkxf#vU||IsRY2{KPTl9x-ELoo%qR!sIH z(uH!OXtBr-Bq;ae7}qdKpGvI~ur}$egEn%MX&9w8vpq`K?O7ySgfIFP_!R)h(V(PU zq%0I$WL{)0008BOC0HSB37~*}3APB5UxP2HjA?fHP=|Jh_QZx&u~h|j1$Hr}EJlQT zqMJr0V3Q;+*-V;Rp6D7XGvNx@M1yZOlY`3j=F<7`POwc_9F?&Y3${`iQ0USbVDdku z0fmtjRP!6Tpv={!16y--neDeT>$5qvrY~s*9ZK2~qRxpj_BK0`>HEO42?VM_sh46b zyQDC3*U|mj7xNcAgcvl+*LIrjxSM+jU1B%&I?Pk57j}!$j-<-zsu#XQq8&;BqNn{D zy{dAQ2rZ2K%>SWs6niD}vczrkPtBV(W4MLyG|9lW&EV0Gd08)f8Z{d=U-&f5HQD>u zJW6_$lvWevgr5}UM57qZdM!fl-~z>l@>}#e0iSvs|R`pmt{1Tu?BL)=_ZST`eOg%InmL`; zeXSv4DX!JGwdXU1DxhRU;M!+c%SRR8x7uR-ce9O3Cf{5sAkkfNxVE`M$5&%VP|sZZH);} z`43;}i737>rYY?a703K$qWMP??ORs9N=$ii+kz#QV%k-aR`ZPOD9PR*BTQqCuNh8>gaD#b29T#pSHVSzQ%>P~KGWcJLpfj4M@FS2tD% z_jZU*{pNBCxZwqYn2y~@-w2fYAlKK=^vv|s*H8A%^aP1dGAqB-bzs4%MkFbu2D(jJ z1zJP$8f_YbL-Hh`B+=Fwf^w)N;pvY8T{t%Y6^|5L4@x3>qEf=H8C^9P=w04uHLXqu1S^{n6W(%MslYlr-U2!V=QHD#+jNSQ6V+>=PNfH zcpS1J)y}}Ux@m7F7YSZhL*Fv$4`7h{aF)+O6o3anltpDYIMe^_$iO`_}V^!lb!>J`KegsU5?Yc*j`Z+fST zNwr9|?6bthAXqG#6l|a+j4N7>%%?i%?zVdwKiGL}s?wu4_UEifXur$5Fz2%VM+UGj>*v~7n zM#3wdXCQekt1#7oLmE8DK4Uxn>aZ~hV+E(gxo&TXbP1qd`LG;Pu%s->t7jZh(lf5^ zKLXl@)yJSX+By_qeLh>xT9Q|iSI!ERAeD{LX}Wn-zq1pr6HWz+dackLOyJ0p&Z7pa z*H5GRmd~qAKjj8fFagEtzlS2Qq{Aphfx^MowwX;c)*V2kpUt$a8q#Y7dYQW*LAOg| zH*H?%h4_nGJ}$nQVeSMC#`E?|*^`^an??S&8g3OmY0%RyDZaTgu4iaa$_;J;^@k`v zE8erdl_~h=0U4%LuAk)t8l&mLN{!k}GKua~P!S1q2*HaFG(U4V_BEEBgVF-hx&-%u zLL_xFdIh~M&>e23-Ppj)WWj{E)bbYb7RoK08$UdUqn3o246MpvP^;Z ztuO7(Qn{*FFvv=DPOs%ND099MI41y`VFok3*xco@uCg1C#qyjKYxfHqfhJXB;PmebQY+og1l&1pS@@)Ai6VoPN>m>^+%!-wbB>XxhU=iq6k#p94D*w>A$8e zP`F|R>mZBv%I+spcvIEkUY*8&z|Gjr%U=%lyH0*X}zlPY4Kf6~_vo zQ&%();G*3Htm`Ae<{Kj(BLX&13!L0NMy`SU8q}7Z9@9vzu3AU|5Q1*rySzu#0zIY) zdFo2U2p&r4!jdCe)U?|7P5cF99xVe+u{n?;J_OClxwCK#lj@S{l9iB-lU~QYF6W-( zTtZ(;P#XMDuARlX1g1#BN!euZWI=_`-i{H!u z=QunA&VqTUL&`WBG4XtcP?Y5)aW%;o1u>M}%- zcE^qrtf035RyryKCLtQiXc0#nM?UMd=kbs9M-Bju-UW!_=D>j@$r&PueDIpl%Q)sM zh!w=L`SLBAmCjc@cLC`k+*<%vN|)yYOIJ!U#D^g~KyUyy521#{QITu<3*!ZxIrIh} z7@+a)vd|NBT3_iZj@F@hEFkOTuJmWX1j8n$2&9exNId}463_}sW=Up_Va%0x;y&wm zhF->gi}hjeLojqkCS7qu((CKs5d=OAEX}b3HwPYp`<&3iikwiF(1I)nkbA(Tpfk{o z>R0GjXjRFK7dQt!0u$&e0NG=RXL;-|0`i!R6&U>CeIJkuWoD$-;E&&QN(*QnqWfE( zuU1VH-Dv?y3-mM)&2f1NwEKes0lJl1K=)J(YIBh4r9V-mFwz?IH@2uGI*)490Iqbv zoQ)^okbYY{q*xc)2<;9XP>Clt>R+aaP#9p;ipXSmEYx^|wd!7b^CN4%MlYTtrF4vv zAt>zU2Eo+g&y*kf5P+up(6k@Q4RX!r=jX?AZ!k1Bmq}XecAQ0JwA#tpX=>SXR?->$HnSJ#n${=KU!T9z-0WGgyVEiMwz+g} z*9Ux#+}QA&1!6|G7pRN@Ex*~PvE!W+Holj{U(R38o{gP-WDNb}i_dq*?@qhBJ8hpP zcG_BoA>CyW$T(pzZy;LYO?|U2QwhT==>cvX?%m*5fE7)XfUA3lt<$1=Kr>AjJ;iZj+eHh6&TgjKs& z8(iJ;!1`CWT_9A-b_1q)C#c;E1fP6k?GrK^nH!JF{HK5}ZKwF6OJ{}9M(}g!Tlw57 z;o)Ek_Hl4^&N*_z2nJqov;c^aE(-v->%=OsF?mm>~#NZl`Av5@wl-)}^(Ft&ItfFE^=ubZ|`2A5!$ zU_ZamgIxknegNI8AX&KwEa3F<01^1bq1}&)A3wY8mS5m^Vq?+h^>dhtwp|HHGNsTtX&N#i3Ztl9 z#)wrFz;Wuyq+pD!q5Zg7tHr z-Hqgjgirz-&IC}zo%3X4WK^;qWv#kA$Jh7;vAbm64lPnmJ?;c=&E<$P6;_P8I?y$D z=(_SIdiUNN3iCIOH$5xBp3U+8XLm2p-Dv_k3Ri@vL86T)Q?lN7qA;qBR?Vci3>qUL z$qaUJb^jkOM^-f+u_ZD_Zeto0rwABsRN&e@fsVQ6onY8QS#XUJ$`{Y!2m=lsoqyUn zL1vAXH1Pb**V^&h@xaYZJA-|WenGtDOaS?Q`Jw_ONycH;Se`hzMbl!j`*PmOvwaD? zM;*kmv!Q|cf#tKIoB4tHoB4FpG27oA(S9~E!r4Pn26>4wyR)9z)a4Clrqw0%)f=@z z9rAj+52!0v!3BHo`gqn44LJBsPq&P;ysh{15QEUZ^r)?6j5v&zM35Oe8>0CIWr1Iz zt!K3q(^I^s#*8?IW#R4>RN53#dQk@2*dO$wTRCs_qQf_AbEF)kvhR!E z7vF;(=t`sTi%f7_*t}bVLEtmDiCLNYp`C{7P4o4B4Kk)r1;$f15K$Vw++AD;N#E3k z)vt{I(vPnrY$R+1at3GlT?X-sq0Q6CfsZC1P5MQvnHK7%$v&EUn7fAisSr<^vIPM? zkRNCwwt%zySqH0K21%^XET0830juhE;!NtGhCN^gQ5M$d6Y0ZbU@}Dd)l4x=(`37L z?sl%>cIlumF$Aw=6^13j4m51GAQsfZi%33Tj4{DpzUyBOY%?IeIF2=d#(%>-KYiiw;a?8bsagZh*DHCd{&1gT!n)4alPer`_X1&2r z@6{UD&ZnLlmd)EiW;eFRnck4)lDqv}PmRR-?=d9N-VOB1-~j2@6Ybv`gCk~M2Mpdp zFcdhKmsWpHF|~k{?LViLmG)17Ef%24_%;}O{ItGkO-tIo^LcMLpOkA*WGRv(QhcrW zT8>DL?9d~*z-&>;dCA60=P#WHxp?;3Y20vMmRP{R5Jc#tB4e z7{k2@y9v8VsqJ}tn;OyqNvZ9FLsDq35l;DaW$1A0@@s+h+N>mNo^MS>g&O5_KpvrZuQ0;SiHVoY^qdl4t#1Hzx3h*FuJzyUAs z<}Z8xRy$4OpuP^#u=D+Igruy@s+$7WQozN_R#!BI0mHbm{<8iGOUk$!7Rn$h7Ah9X z)TUOVOtVGV9NEGOPew~-T}Df5PiwHm!D8*n!3r9XMWkBIZnnW6Nh2REohhBkUzn;t zWIv?e559Ae;IrGfkB8m1m>S86=0sB?1wko@JPTMKf=CunvLGR*ScqztD)^L7;MCPD zSiY7am#!ohJ)Jq7A{Nc6v^|)}QhiEsfY3y*3^t`7DP<~UI!ylv8GP*xy5z>2-n-{P z2M)UBm3gRJCR6m{YL1P_E?I|tO#GNQ07N3MR9E)PpXm@XChl07_hdI8V{r< z?x0ULXM7=j*I++Q`ANhz_(P|!sO2-tHeeKrV=Dk+5@7iU2Bl~)AQ2MchC*W%eibxq zNt}*emm^kzjR$6=;i@_xQD(6Hm5Fs!2;%B2 zmgF~9&>LslE#i}Y$=(JeTqq3?ir}VWuUn^M51@)}9mM}P>fSr9sby;)S3oHON-u(n z2+~Vv0v41a(v%|74=q82AQFn$4nQo^5(F$%X(1|NAQS}^5Gl5E?0Uaz zcF=pyeee5ze*gYl?wOsPkiE0_%$k|Cp7pHH#=^ac_LtdEU_gF z+&#Db!W!lS7!wQz_oZTP=ST!av*@R1yf5mUQ)3rjnQW6Wqa7vQma^#y*AuRLX-7Gb zwCTk7-x7Tlz%em2T-{Q;-+q75g`$gPOJ#rT4uZ`!-h}$5 z+k~y$%D!>%LGd3HsF}@|bswmDZGDlVf4bn#eakx({gZd1p9_4E!!Lbt|I?yBKH2?G zKJm36eB$|8Yhi1kjn3H0vEO6ACm_d$@3_Z?{}A$3KbTBvI$Z$9@+Y~vbu<*3sY0s@ znI-!^+j4o!CEw|E89}?AG$A!1bzk#3%d`DVxuNOB$k-Wv20vqMzO0j>3tR|e=GFOO zU&E$mCjSt9h`w-+6=Z^38RdluVPF>rYxggc^~r7WgbyKqR?oRI+i9;YatKbZoL)H> z4pd!d%nXy@r;m?5l!V)r0yl5*aEj+N+`zt3kl1Ya4Sl0CM)F4TM3RTC895GUnPw$v6xU20no5`>lO+gyD_ zN7`?tP>*kkA+OFlvyDoF(!T5CPx1ksby zJch~WUxkd}s*2Id0LDSW>yk6bhq1BvtNHhhqjLDcy4Q=6rv>X4cV?E{np1l;r({Xb zcvsStvguyBlI7VI;)84}_$E^(V^*v!N}0S+)My_84IY&d_8!#R#0l#Y`F}OMf>D)v z+xj5f7FX2$(Xf7yLeibVhIJUB$1aai(cnBG>gyVc+%@6W%#|~tNIQjYM+1wrIvr@wJp>g4HVbmRiM2%Z0)dP&4@bl2aOae@l z&L0%0+NkN)$CKEc*qkLo2@?sUgf$yB8&bk3s5ER2Ylb~a0F(g=N(UT?HTJleI`TlD z1%aZdr>LhuQ9Pxor+7-EB%P!Ly%%(VGXiy2&mGii&}spVHbn1i04*jB_OP%5Ly@qU z;Fw?$I7dt{Iu9o3jA7u^aGV<|x>{}*Qz{rI7`KWr%_Ap2t%ipGX*3BC&JdLY6$0g( z&ZKu9pS(YLgLf+Tj(A_Low=Pkl&H>i0%^`|HV4U#filJ%8U16-MG6$ak%n9+j=@$v z<)DaI-n^&zzvZvFA?AO^|BPkQjk|JF)iTxUy{9xcOFrT?&&E&l^oe8zfGB4`*$eHc ztocR$J8S=%Ciy066ZKZ6i@!7V#$X+UFXlVa3HFBiSxghArG7e;yP1|#NmJ2GD_qDY zAKrovL5K5#G5DXA>cDJouRwvLfeb+ee; z@i%Bja?YpVk<(V(+!tKXx;n=4YzoIhLV0rInCo2ipNy|TJ^4?qnL>7H`^;6-wGYcF za%c;sarbbfaNJ$t%l2E8D9FYrIfu9+?t?Oc8dlsIC@S2Fhw#crky8BuIsBLHrSb}w z;Xg1W0GP$r)c^b~(`Pq2JvP4;OHdU3E@XisqXD>r!mO8M)dh}cKzOOTpxqWQ%3d<% z*;2x?V?G62=1;*sjl#;SeVS6A?V#<3D0jfPtTXY45;8bY&%=#U(5EM~<0>crIn2oGK~TfFC$;FQ>UJ7K}p(*sr9J*g%i zR$XTck?-V(i5A;PbX)7>WN`3Sn1FdsT0xy0EW_01?aPGYD3@tGH-W9vion^T%onxrODgNlQ?k6iuBfjF}0Xn1gMMYos0l)$U&BjyX6 zw{JOCr{#Ox{JAfoXCNII13*kh?{s*kWcyi1WZSp=Z-OBCIvn2wbvU#I zwFPxn)ybn?*RnaNhf*isI0onb8h|e6DG}7~XkM?Tkf6_&R&ZtaJd(A#ivxdl&m;fv z!Np?hsA zdahqvsjKvmNxv_9FG`bxggeRp9w_+iocwgxx z)nxF^0lxC&OhF&n8Zk-~pmj_kyu>?E(4Eh?sH7gcB>jzGL zD@?QLfeYlb_7#dRqgtk9OdbKpAm-lV8^PRr;q2k;VL(cf#|O9Nbj}Y@S;>tbT^Gu5 z%Pj=4!ocVUN0~>da1@>fw8lVoVoNy8?O@3Rv%7~N%MKjbf^^(m3_MRXmOJH$DWT5$6f@D%m#*kUf-~u zsy~{{*v5bo3wYDM72>h&G3YxFeKpVqvj${D@A(Fk~>UaO5SNU;dvdVTD`}*aL$0tC_c&0S^l6Pp!JSF-#%LHa-}%a%1RR zhqrFqI>|Z7JDJn5wsnnH!a&-CSS)8~!(13}p{LLYhN&A*BU6L}7XZ z#$KcP!CnsN^b9_+%PJzBd^B{yjaJO0t?uz`ZxMASg!JUn)sXRx260l!ZC zfU1Hhs6)}LH5RK%*>0rxueVs`FFB}Ff|O`AONp{{Dn{A@_tH>`E14<2aI6m9>ut;p zf`;7EXHy^hG&n7639po{=st42+v#~#cqM3WgKj+^O8P+0%mOJyAA5kH>nZ8I$6uf) zi=MQ)Q~)N6so~v{-7r90r;jZD8U96oO!`hL)<$f*t}gzGC`Y7RQa9{fE1P87(KGcT z_?`ZDsUL7)S22u3FJDxJIKqMTQrW3|&?@_vOK6`U{iy+ak4Z651J=Fa#Wnp9Mme)} z$ubhD9IzqNL$oF~B5vD;Is!IC1{zTTV0$|{&HH4*x(ocIH9e8-a?9d33!`D(>wH~d9z~GSIrahsJ z*6|bC-3muJe6m(1ueiq>5~Xh>-pay_tq931dGS)yz-D#w>SUYDq)4NOakolBOF}O{ zu~#D)pp9VQr{)JWl6Ht4aw564d=jo%ib`c zbMB_KPN|z*cR(E|eUYNlgh< z6L*uA99R-}TR$EIiz>?adQ>g}nTY(?vV~gTiOleb`+5M_NHGpZU;dvvX z&LMS-bNi$>wMbkKJE$lK93!$ODRfv$<2tVdiH zU$Ctdf;r_;IM{lKV4sC2feHX`vdpaiHu56d*=ATNvmAeorj4fLKYU%oPyfLVAkVkQ zHwrij*6!SVT_hU(9?%TD^@T=+(sehvuG_jf&}1Y!&=k|0o7=je?u3@LfqzpnOs0I$ zRLTtZ3H0Z^Dd~3oQ$dfh=lo#ow;~ zDljA4=>tYMm{R3|Xd8JMT0Kh2|f2PTiL-($E(E08EYDln?)Vs<0-AxwzP8P}1TMDt@%nx=P+UO!O9 zpaarhwqWW7F$=9y6hN2-G_6(#>M{Y0j1076qQWm7iFOiT>a*`WXiE7l2#t#h7~}d+ zXTc8mZxKTmn!v*Vm;+OVFc|JszXMKpeeL>cSPVu@089jC4;WlzBFgv9-02Zmf?6&u zB|!)_NsI6wtZ_FFKmxAK5#{tUngyt&UKQ~|4^ph|w^XVEt@bbAz=dkb{L`epWL|Bysy~O<{qJe`sf9h9>cox|Vw3E&Tqy!TJ1ZE7? zWNE*R04kYfwe9+z+Mo1w-MI0w-@UUt^@MAH!RUGJ`5>8_)6b8c57HBFcs87JPxUxd z;8sJgl00yqfUgYU-4SgW99*snH*n^W07+N4-bHXPkMw zO~qLO{aL(7Ji(hTkr(9E1h!kS?IXVh-B4q^gOoZjtT8@80=p-&g04UWL~S#>5lI(q zqXzF{Bp4!aAe0)<_uz{796OVsMIv+3XK{$-O`lTG3uQ)cMlXfAht{tJ95X=TH4e~4 z`bSNz%}ohp5fE6J(+=Sh_9Udc^~vM4vS^nHK?HmKCh|T^tfsZH$RKn(!hOT-)AIHN zdqUt$;QM+yI1S(sav|uak1xEhr$qo({=F^@LG1$DoB>`(;Gu~Wo&)O&Am&F%tNgqM zMDmfDNa~^U2+5T2tsg*I)tj%;F4y~um=XX|s+2e&LV2$O5H2YC)oFETN)He#1iG?H z!MUfGnUU3c!=XTy;9N90MyyrP<9=0H_uv(PFTA6C^I$;@-TE^8M;uyUq7Oaq49*A$ zXaEgz0N%LtH~#Ku(}3K zlhrkVmPxK^Z(hG9T07U^Xaw>6=V;hzl!yl|lAk>>xnB4V4#9HX=J=>|&L>3()ogWx zg*Yt3AvC3{CAE?zDW6j-Q$8n94fB>z-!}xkiI)0^H7(_H5|EEsI#qiQCXoO=r3pGj zniipHVUm?}Cg}`7t1MJuHHtt{h@ouRzyJzU&~Ecv;LH+Z=`0Aqfz_darXDkKvp4)l zW((DHWNq`5U?LzL3pj_=C9oC(sIK2oR*uP(fX9ZGP>#&%`ZL5cL{~z;`T)Y}p$Dxi z)#i-Wt(&SC%*$ZbL;K2s3})&KSQ<}2#d9Co=m57F192Dm2lWiMFTA&=MHp`HCe_pL zYXTrpLCLn@lJlNYiLzORgL?XV>f-E4)=J=L^=?X>JxMn6MzJ6mRia2!wh65sM|-G+ z^@e_)9Fg0!eXhVY+4i23KAbP_`S~*8{K0h<@)5Y}%x=`Mjxk5yBbNjGM8uE>)Q=b4 z=x#JEa3Rk4)FaQ_!t?r-Gwif39Jpm>d1+l*u)%)3A1@7jvW4@aGQ9m)3;5{`f=gtzBy=4j=-&OjhX1_Y|2WUzTG+22)kRW3Hx%8Y|EO>= zrK|q-Jm^6LJKsZw`u!>;;|Q?(N&yfOBq0jyR6=CJ<;2VNXYeo>s1IB%&z%{b8FJ`T z!hde~+#mvWBhVmt5!|;vWo^f!5X6u;04@N>4#5gDam{#Mi*iwk?iXWhw#04Jf?7Eh ztt9_`-e)6Tftp?g*>)OWa{diMF0k@vozGvwUjnA+(r&v|gCBwFF%1GOET8zZ%^g4D zfnqFPYbOnCmdvdcRM$>gDa$L~v08;A;UMflv{T30-fBflHoMj=e~Vr6BZ3!tua;*y z^uG)8zgk}K=r@X^979m8bg2}|45%}B@RQ(5-xLqRs=>aFoa^X4wbDNHE_x4Sl^@#v zDI8e93u+ByRRL9jyuDVkg}}x5tLeG2VA+2ZU|o$vI}nhfY^r#wTD|l&1f;b4pH@Hni2D+i z!0hwW1Gqh!DAe`w_gPq__F4ET<}F;hK`SFX!jUP6krt5*Di@R?O>CQ2v-}EGL^3sm zOtFGSUocJ^@2Me$WRkQ(a!5I(OhAFRL1Ut1QDBzhNC-OM=zICVWhhbo&wa-O(BNRQ zg4*4*mI&Qm-wMri?BSI>UfvXTp}lFky|d2@Ni^m$77B?IOf+64m=P-&y9#_B8Bk{W z2>GlMjH%1?VXMnE7Bgn6i-8)-`k1;Hf+>m!g1Zk9K{#avWh@}A3htxxZqNi+Jlb*r zz3%V5^?!ST;+NnAG0QPbtQaTkslmg8FG!@p9f9*GBh^rZZBQ0;;W?mFqbK|i-2yLu z#8EX%UWNNrw9hqqXeAtCq z)mc?f!tLte&zTm?Y>G0$F|djWK1Fl@Ug|p1swr+vSKTH!SK#P7YZ5-h8o$bd=SBXs zv;|L}0bG-^!o2P)aDoj%*o||e>lItOMjMC#v6wIb|5>(3n4rTxTNM8zXX?_KE$DC% zV38S@U65u6jhBejJ~l!u4-;qr_@8(1@4spJ(?}sAr48B~eFrvvptms1yw4T^ydW46 zi%9(E_hEiE@Ufx#XNkOeEZ-igoxm3-ILr~j5iVDCkioS88#obB`MJ$}>2o_OX;9Oa zz6IZ!2;6$yYhq?TUOKfowR!5CXK}6V#7wxsD}(vS!Y4uOHI0-w@&tKeX3}7a5N1*KliVewQxJwyDbeHHe3b< zG*XKTvl^ngAjpfp2rm??h3Da&!lSw^1F-8Ac58G&t&vha1G}}&PlBjouH0iE=FKY< zDikWsD@LFmsXkkMwqm5xy!tFUauq|vvDDH(@6IZSCRF6(BJ)+M}tlXL*9Q0A#`rj+Kf6o>hh>w-cJK102>@j zGZx#&R-e014Ag_zzBSxp#%s8RKy9qy=COP4!(;aj)CrH>$H8~8VuP*?FXu64 zFPDI5mdRJZA)HZgYfxoYWma7~S;L!7;uS}sEgEe}ywf>$9oq~Q3>Cd#(Bj0aa2rFs z5{1oH1iapfWL?^rHjIG2Q1(Lqf*GvH8**V-Ctdr~?-c4jp6!F1>`-3R~5|8YqXL9zw{0Ll9Q^D}?so5H?rJu@JR@ zq373JtkHvBcB^^J$PuQ*>hbcm~)`-)RH zS4Trjm1d1T2#Wemg`XDR5Z}-tIhBIlDTqx(amPQqg`COEKifEZg|r$gBpE)5ZZ8Jv zvAmjV3m5g71R*=YDD2?$LgpWP@ab91#^IjaN>N zGxMY{73C99pK!Q7be#d{CA)6d!NzKU(n37%?SCL{5!x07dH$+?-db#^{>O{|kE8Yf zwLHM?EGrQGSNJ)M7_8Hvi-0{$5&cqaG&BLzioxa+Lfho=R^G#un&oT8I z09qvwNow`FO%ykPc~%Y7;2DHr1wd}uT6zBb_J0h*XbOS-9E7jXI;nUPo1>5^0BD8i zWzy{|A+ql!-y%?cIjA$Du<2fO06vk?YssV(l+x`!5I!0f0PGd4M~FWjxB^Llc72bY z|9!)8gigB+ll|?>3ytxaAd((Xvy;fT>9b&aLgf7D@3t>RqBa44fko_twq5S~^bd9) zP-s6~OCFhW(epDbsAtv!ROeQ!R@kq5_8-6Me?GLIw|03k^Y=v#T9aYxnO|Yz|M+us zYj9h2G?TV8=kI~gbJ##y;b|!Ou(76Mn35W>ma&$x^0M+`)z+J=CdpmeahlOui9T$2 z;d|;>bolK8czOrmEtmuToM*$WMwA6)h#Nlux^FiwhBco`jCpw_b~v%$LQN1#F9Q?0A_BGKow|>opdhahpnnp9;f` zGOsc(3_9#kvMc>-;9q&XSFu~y8oBT%^JRn@JhKO{jhjffRWd&8Bi-hoUdWgYnHzi+ z@?l??cGAW0Tc{7AGz+tk#sulb$k7?ljHn~&Q``n>2#EX_0nCY@11t*$YJd%xL~iJF znN@=W{iu%)Z(FNR%Hk|g$x?w*TwEm!ZK&jinp+&viF1qB@p|+*uU5ya<5gmL{Ke`L z{ds&q{6+VjgkISMX+gkXfch!Q4}!Y-dn~oa&$lr4_t=@Wh4(esiarD87EG>e*Sn0g zQk4MOeyq!w6b9gWFiQg*UC*t96h;ms^U-wi3}4t#>8ooCrQNV%0Nl_1f`&dkMs!Rj zMHh=UwLXlBY>jMvc)l|#vZpf|{+;hkD2a|vD2YmsN>3`ZSe&%Za z>7ha4L3B4?!7m8Y57R%nr8%_4ae^_paTX!33pWp{Zf24B{NJVZfS&d^f^{JL&*=qlOY34zWibGWkLd~k|Am(SsKBfe+rhJh0eNuRsxG1 zHYW=HG7Jv@IkJ2t|D^VZ!=N%WHW1#Mf!JNnx>~BF=n4Tx6VwP|^H>mdtma=ncSl}- z*rZmp<|^AOGerAbxt@A&@p?<3AMOgsx#o@uuci8WXJ*v`!{QbuD1im=#{qlX9>#%& zELD7y^hen{FCs2HT?^tnFJW-c<~o*%g%wB3N*w`g7CnzxDLgQrL&0LUA>M|$*R8n5 zc3462rTv2|m-g?u7`Fof>=amBQe`Lvxe5GltpCyl;m4TMv$+>Nf@xD^zj8kQxUv#8trRfndHpZwL#Xs{eaq6D5%I3I5=I zVOh++VOfPx*gimjaL&9r#&TGy9!gzMFXpxiqOk~|{+E(lDjFm%RkVAJPh3GTl4eZo zf{}!@H+i|$);M#j#O4@F<7C4z}h6IsJSKtt3cKl*K5kwD51*DepOH!Sa>m>-7>k;kXXqJHJQa^_E>RjIz zIp)!Ey`}XZ*NOe7@DBz35)ua{yaaKYW}Yk(Ec+4ov=LtLCj}79w;wl#MPB-jn*w?E zj{8>3(M^;dws$LTMX4j>E1KoprtRSXS#>i7B-IH?vhHz^lic;~fo~|-XMS>2VWein zSXWQRhz^wx+rhqO)Yw|4EbVchbjUfkOT!9bXvgm`{bAvy674}re?CbUYgPFi#1(k^ zR0}%k^0|Li`d<@3Qrrv=@jvc3yU7HEfXPwxS$%ILIEbjh4QltF1xfmEUxHiB!OJDS zXT{l-Tq_}@8Ho-O#n7x~3wQb5NIYP6w-kP^>(bl9r<_d#FH>y~-1KzQP?N}3?#rIG z`1hsJB2Z?SyX(|D*StkB+izaIZH}6Nz(0xp+k^S15V*D48(~oajd~o( zgc&AX(CCF*I+1|;+3wSY$-Qr6Kdp0Vh3rq)Pvh^@J#}`eRdo`r;>JkUUB_lV0M+vt zCPR0Sv_ADbTC4ZSjF3Da@wlTQc+pKi+LA42)mBFA{O-SsUUG$U7_dpNPL18WyEIo3 z-{%}sD0OA8;={gBY)4svZd*{S>pZXWSI$Yt*vCbG9oCk30kVia2r8YgJ~nXj-#?l4 zGy*5bw&~LO+lFhy7Nk#ddZ3-zrL7?9*t7VP3GzU<7KD0_`+7{EXO_5v#sSYSpH2fK zGseKaSL2>na)+Q~8=q(Vbwg*r0F_0&lQxoIJ|wJsMOma1`nRQ?G`~h{qL1p0LH0QX zR_Qvf58y-O)xhBi@)TgQ0F=de={=bvy5W3z_$*wX1pfTaO`l@>i*k3X#q!%DDJ(WL z3qNaXp-?JpM^$tcu1+-fe4!B{Zg_0vP2fPV1WEzRTh5EhJ4*d-{PBAK$17ilja47? zhvEimAb2F8WgrP8b;bk4eQZbgefN5X9+ECh287?6ZhyERFVUx!ML0N|9X9PAdB_9p z{B?MT%UZ|S|IwydJ%`oF=pS`h4=CQHL)9y%w%-X~g=0M3j${K0jE10S2#LNzfhcau zZ02J9FKLd>2g!|ee{v`yyM+bqdba~aKL&{=TWhqZQSBzDbt+t<8jq88eE6I?9MO(9 zJOYV$7RI6BImje$$!a@xMWB5K@f>O^k99n6u<2!tBf@1ZgBP*jYbCZr!oZ;#jRclSM?1`iGDKgbbeY%f!uHZ*Zf8if4-61_kQ)p|^Rkpc1m8})H0B>Xty z=&$TRg#7oM-u+uJJ&1Dd^=krSqD=G;=IOvY)ZeVI%rOBd8{2}8S)FC75j zdsXiJ`n&PbC1Qkbiz`f~8N(-zf&@_qAivc%MA~r-;cSmmFYN6ue*W-#Cm+a~x6_~A zeFJ)ie~Zc}$k>jwi#_{&xggWc`Oz3RHjtGQyFpBWsYpa=$Hom8F6^BZz5)`59Xa4o zRKDBZyR6GPv8(|J>#@uR4UE-?FAR!ifaKV9WnIUs0AvcpMi0r56cVsa6AQx09Hl%qK>y@dC@OHWcC@sBdy(cG_5Kt}#W(Pd)(y${fHy7=_~HNqhoXED6wVpYEP!mOYb#_#Aa^x} zR$Hp8)SV&HAifC2Frm58a=4=(vr%g&J>4Gy>s2?uJ$}o@w8R?FQHlsKMNpu8t>p!v zaQzB8hNy;&hZwRMprmp@7d~S~mc)MsgegEgsvlMlLOw)bQUpkMKcq=KO1n`H=@bV_ z5q9J-1|?a}uBhP{4#)ur49Zj1a3nBe>UGi79-t@#dKeT1LWgp-AR!wz<9|c~+DGm2 zX)Q>Qr4OhU1-d;hxlaoyA#usbU0JN@1~(jeUor3O!bBi_TKZ^#dKNG?opjuvHrgOR z>sLqyb0NgNug>a!PmK2s5BX-^yG0Zr1-I!aE6U=~VO7U9XJ3XFX8ZOv=`^^hRmP3> z5PfyrRP^FhP*_zDol2zJbk(X@n1*N`+JZ{CW*I zi6@G&8*OWtH>^ez>8i;@W&SYnYc;ves$VLPd!zNW9uq3u{IPIW3~!kGL*nBI;uv)iv86NyRW{cweBDLrg0;ce z&ar22P%bHWM1H`p58zEQ`n!7F#mCOTO@fA^yCDEUVtydfCTqTY3{E+3*6p!$!CL@W zn)Pn19~D^e3>;Wor|anw)nLS|J;FBBR(bBt2R@fgZ@#aCFZ~$08!qb3YWR**YZFiZ zA^bJ)>(Qj8{nYQh@TE_ifCvR>P`>^_S~@Ph>6C}+rcl7P{YF~y7p43`vIfde?eRzO zs_EkjcNjSDEBIyM7#$(C4A5r0y+Qm)pxNY+cgwjh+_@goZNXmjw52R9fsg}by> zbzp-i&s{pZP}vMzFmO8;AQ-#{a&!iM)mlW%1(z}Y0#vg`Y4rMk5yU4m7KHH`V9}C9 zR4zXBzvN#TzSunJa%3VHQ760B@Nd->N<|dPBQl-SyjfJPOBv|e9dKqBe%o4h!O#5j z;P!{Fcu&o3h~4l*<9G2*-OX)xlchc1j92L?GS(8j;->>?t0PV0MXf5yakTc{tio)P zhE1Q$ZbX^Dk}(KoN8AgS2dFb+q{H=ywgG8FB1H%tbq>V=f-dRO*F{NR6On#z4>1SQBrRr#AFL-Xm(j ze(L>y2)gL|)c5 z$}8(fS2P@%YjwFYb7dx~A^7v>nvJ_!cC~cOLeIgvBqY3G1?dz2AcDDw`d_6H^(W{n zJ7>pN(#5Cw9$7!K3OTngGxSkO|7r%`6^O}q(xue3#G$6|<^Mtx{k{1jRW5?w$x>U-WjFfe_7v0E%Ij zq2RDWxDrEYSRo=KOeCP!047b!8DYITiP^n6$p4)YV6AlEpmzCg*Wv~_4|{Fx8N+pyHYrtrme1TTbaXKUIor)KmaAhfTHsPIOrci z$hTY-fZ))%VO(+s>^;PY!tTKuWNj1)5K)Fw87zZ&5EI(Cy^jZF4&Dvnq2w$Pp+d|P z0e%YST<5e?69ii=PB8wh$ZDEdsfhlBqZEvmg+C3K?0s&)tg!|%$ZoI|JW#K_4`ERu zBN16;K+v~d&)IwqGkY2!?*?ujB#|b9l8pojxj1789Nr01Y6LFhR83G+wb2 z$AF@x0ppQCz+@~+fIZ8t{#f|l`MvYUOX|Y+R_e=! z)`nI@M&a^oq9q7MFicCqI0oV2HS-w!5Ke@RxG?-OeqIv<-lK4K6wp4_%nF^)527@q zz!5Z3`w!w{(WW9{U{xsZ1auWZ1T%rr4^IH#5$*vXpG6FG@)D65?*M9o;3YXkk< z;alE4U*o5O$CY}%s`_e-t2Crtu)AQFQ^$Q!;jb+fSr5k_jvh4EUOK#>z2sjlmfR6s ztoM+zv_5XAJ^5*vM)mysiLd2x7uy@J)sHwQEp&Z2xu!7=GHy;0)a$>38V+BCP?+YL z#TGQdIXH1BY+h;UHqvT{(*}wfP;G#N_tmw4w$1Gp za&*UMyEaV2+)O4Tt=9;cI0zC7?C{wRc_Sdh&hzbo1K@xFrjGaM3$QmLk@E$;NyGVa z;=I8#kynbF#(`!*nP1F((VXf9j-(c>OHw<=2!=jpH>@8}V1g0mu=g3z4e0EBF4NL} zsv*(!(e*h^M%+fsR&J{%E7;rXT+p=F8GSdh*~693!|CI#nrY3n4taM1^7`aD=gq+f zLTQlSN=q6yugFUd%Zj%!mXpTIm&#;h+L1%ZA(_Agp&t?@BvUU_zez~9DUAs}OF*UT z>E}A{bw-ojTxZJy+EB?*DX{2h=_r!OD?pH&!$>{|{2HJF=!D_I8Upx1BXFg0K|zgr zcI~C9P<9{4-juz$8#tLPveVltH$6_P+oo8q<10LL{snk92uH!3@__*EU|ZFQnk(Uz zx35Ctvi8?U)&`4%a~`>q)&_Gz$r;uJZfDLg69_Ik?+EsUhden}PiCBPKt_vm#wkOo zjH7^{Jqi%iLNax{kerZiWR?|^#-wFgp*qW|j8=y2qjLGUpC8V)@FLNfz2$&Knnn5q zT!EaqS37c9i^CN(H76S&H#w{Pcr~A`sT!eK*tUo4{a18ZVeTPz-J580l;Oetgok_ybXCytELx_3)m9b0<$pl z3kCw9{|R`2K?IC|RJF)!=k74hLFX>Oh<`%3ytzEV@7W_0tp%_-pfm!CBOo|hXAHG5 z528FW7V?qUl5jmqzk9~TURQ#`+iyXL$f~71A;s3^0K6~LM=%qRb^xk@5@GA;9(^8t z==;HMZTG>S|7J7>*j<@E$H8$z$NBVdt4KwtxfDuj(wdG!R-5~81e)!Z1KcE_ujUkUx5QkcuwfV4}j`!kF zIQU8|d8M1<;)S?+&w6>mEYwSaq+$A8;CMednukv;S!Q?Dh1$mzl6H5c)VsO-En0)` zN~v(N``P=su551&(+#VYwuV7|f%AYPVZgKMkwsbdDnGw`e^(gBvqb7)!5dR5kwe%D z%U^ku8CwhnVA5;S>x*ruG#Q}#UWR^3A}fG2K|@E5emSAd^?Lg0&VUS{0|2v*FpG26 zf=CoxZ`K~_t%p1VIs-bFML5Iq17I`EH{^tlmv6W>80qx2!7Zc3Lp2|&^wz{r1wj%R z$MtcB4M)7fG_Hh~RmGQyRLblCP2S+k^&7 z3gT7*x)fMoeE>@Z8g}%SBXAHA3Sw8uMKN`VQ|V{04hqD<92>~O(T(}7wm(&AjlAOw zo*u$y0y~7?tkn`Fs9>%iKOhg=Mu?1zp9PzVS5y2fSWvv0{%%(Bl(_6if)JcjOTfdk zHg6|FZp6;4EWEaCh@r8A(GuoZh>qhTo;;3>HHH@tlTl-s1I$WO0v(_=f5T(~1QKB~ zACc;nC@4w+VKQwC%1C$!$Wc~s1S~6XVGt+~;$Vg#l6c9P(V4!11~f&~WgviOIeaUC zA)jOeu*z{3fER;}xW?^E_}viGFykO~b*JaFkrph;dtn_Pu-Yb5e(?%SREziz%)yYd z5~cSA^MSE&3GP6bB5#%}T@~N~>4Qm;J#$9PezJoVvM-s?hqVHLlMURz;Z3>D2%i%2 zzJGv$B0je_WeN|FC*Gfh`RBxYpk%)^nt67tYOEsjEOUIUiaAp0ROtpKaIjZa&%4h% zRbI_#1fq7N788^J-Q!SOAs-GSQqP?EoDp}obI;sf=T>Gbvl}a0nO(QQRH6&E0#`aR z8}#_TnA0cHjkl^cbqG%-ViRo0H-lnUr7oo&n7F~I5Cj$vkg?`ouwkf3c!B{d!k$zQ zxAQ zMPzuR)cMdb!y9n8PUu0ig(=CQF!$jq*8D6fC<$h2ejiO?3ymIJ{dgSUo|t1Gs`7v5&EuVAjk@#))fK0 zHR8)!9R!qe>nSy?h7W1)BO~v=k0<=XhO|bad=jwYLDw6EqE{&OKqN#5R-p+;HS^aEmivr6XgvSDRNyz^2-g+R54y zrB_O?YD+moqgee`MZwi`>n3;e_LDMbVdfa>g4nK?{0)Y(iqDT0x4vXgOhFNWfq@#az5Th|5 zKLGNKG{hIu&yg;T_>Ug62sN}QhlNWFWaG-I<6BkX0*i3Fu{El`qI(C&c^sM zb)iH-Q~aIq23iNfb5E>IA2V+&p7&jR4#u=2#1HX zRA4XV1CIE^my4<(cr39Ic)|i<%uGB@CwKs;I)+=K(qO1z6j{TDu`>XUB23?WgqOLW?&x+L{9Yds)svID6%vkE7=E!o3*a_nyiN zi<-L0eUlrJ_q#@=4QA;aQ4a=g`D+8$ATSQ1D`GCsnr zM$#FD#(d6lJY4mZY)U}MB(S;6D`jn4H=s^3?+{e)Jx=`G`_=zb|GTW_tft(_MTlD& z*o5+j+!_QPBu!af_|!(qZxmq_???jkC~Y$Ifj2Hg!o1?QZ_I*EH`;_{PWk|Ju9g@MHa%cwlw%wCpQi zH)tBA0qI5hA#C<84k?YL6gNnQ(G0{VAi%i)@^LF;?lflf_YDYbQCYehgg&t=s2)B; z$8uvB7P}%TWsaCE$Uc84`_Pc0f8^~7l>M-EW-Vju*P~-cq4a~=@2lTZ zbbK`@-`)<}FE=)zomUS+YFdgs=fn-n_@iS>JYR|%tcIPUzwaD*5b-j^RzG;(K9AP( zpPHU_xeKVJrJF|{vT9u=ZqaPf?8ot)qd%~x`p!(0GF~Jr`)SvKRr{X`sVC&NeVw$8 zdSDZ5ysvm)QyXqnJHP+%BRQrTqSr|%#i(2Ke2Hg;xVHKd@9y#9czQ{>R&8abMvrHm zxC%Mu{K1@=KxO1Rr|?Y4McUokQuRta%jT|e5irvneK7N5VKw5WAu`vyey#p<0th!K zXU^8Ne_vs`%E{Dr_kjmh^U9{B0UBPse6`%X+)#4;$#s_NPkx7MN{&0&N|o<474a~G z!d>%MRP{fXiID`>9=9!rxA^OhaC))rVB5i78$HIm0k+NJCR%}7fg0xtBVOxz54rnY zV7X}B5dy*G#(2{fN21E8HBp|LLsYp(mYh(B<^j)5ZfQ+@9S&u{Lhm^frb-wC9q&l* zNO}?+vo97P83mS(LMFq7zsENxS~MCbvGw@o2eP+>jx9YOKE63=qPs$!2xP;5i8U5L z62SKtq+_LHZ#{qAv2w)lO$V3PS&h5AGWEPNXLVt>UEG+kjv2qMeZ5AZ)mD41!1gd~ zXJx2(Ge7Klc0C|fZIIX)zn5Nn-1iLH8SxnLm`eX3eR9nhfAeHgj8oXKq?^F8%0KlX z{{@B{5nC^-`h93%WX<_CX9tFQudX@UTltqk>+sWP(GE+mQtIvKYn}ns4UFSo+2OXd zY+7>5?vp~W47W>TZ)D8_&Tybxb^4QFD|oXP_>LdhDS4q*XX@%Fv=hoJ&CYdXmqTnQ zua3E%QQHHJ$D95#<}~VX&KJo4!H;{)yVZV8 z9sfdXq1CDf5x(#%TZe0P;8(Vcv3o?Eyvug9HM3JGgM z`%;+cn~^a5D#X@+?HSvYLV?FKw#nP~dgwj9CsWe1dMmRHzT4cjuW^{qf}JMgYv>D_ zjPs3hm-dx#qwh}HWR@oXjcbs@l@HhRNM&3rSiARRe9)S4Um?gYvLu+m%VCnQVq_I8Rft3iS}reG{*em=lY$8zZ~vuT39B6dZ5n{|1kB z)dNy_+$S%CJoHe{zVb|hr^|I69yDLx=6h%dj@Xn5mB*-fRlttqrL*qn6B}=5{ zIV*Ngr92HQkpY!Or#`?1n{ReYyE2^_2bB>0_QS{Y9pgSB)M zGaHBnX`$6*+d(Q!|9ndKy6?4Fn1Iqfa3TnaGcMQq9rqu(V+SAZJ49diMC@RDvu$b?p)&4qa1E+V zYp+t_;ET^3u4^)1;7%R@x2EUiA}oo?Zc|&+-8My#D#>-_kT77Qrp`gs4}he$d7TSq zj~Abc-{!rBv>oQ(5;|sa)mrn!2I-7dnAz)p5@6gbcn=Mg2Vfwej~0G^ZcPY0gt#ez4(V;RE8orG+~gzT+L;KDzT;?5)Xx;@8`D z5Kj|N(s@NTR@d-cxWVVLI@yJK`!N8?IWcGsx<(J!N4qf)MgHH>*s_EPpzZj`(Hq2d_1xq6K%hwInd3S)R@1W(s)$9oku;OwYPN;Z4~i zzBDnn_DE|6ecu*P}cNl&s|g9jfTW^2vOw%b_rM-iEbhY;LChO6_0q_2Mt%tls|C2t~1hMF}?xj=aW zylapRr_LRbL;+73utqJUlrn)DWkQYK+p-c`N2yRo!kGMA=!?t8LZ{orIMfPuXSl74 zmGe63bz*l$;gb;$`s?7HZ@8TiCwMM&$hO%&d#M>JuC()gtk~`+!KCuDue>7Lo~D7u z_{@n0g5T02?ui?(dCn^X!@;NaFKfBHPOmmxZ3xXA4j3U`s{G4XGQ_O65-cYj!i(V`1Ea*_o%o-K|di)$-I# z_o!EiN|3hxn0V2=Iwt!D}ZZZ zI+2~o9?T!h@;%{u!jJY{)ZeMU*IrnVg}Dyb_gd>(oAzC`2~_S8lQE9PKNkN;KePEe z^~@DD)6X_;sfkDQDm1I{I^v9mde@^0sSe#PK2>{_n3%876*9On1`ac*Pr$Dzby?pc z(jw9%BaS9A>N)A58;iHbYW3D_`Pduae>B_U=0IF&l*@YICQDFm)(t>v1L;DfKNv1pIsxU4 z&mG`FTBf|AX@)<)(=~=zaZo5$0OG~5209%e_dwu9#D|3PHvy8-6^L|#yvKpf13pzjF18*pHWT3;R)Gvq&wjaNEy@_Ar$ENP#dz`28d?4 z<^kDf3gmS%%p28oHK8Vy0(0mMMCZ}?5;2BCrX#kjL}4D_4K;lRv>%8L$-=|~FwvXe zx_ATgs7YrY%~l8~A8myMFLIm@I1o_eRk{0*`zmkeiN~xOY9E;k8Jg4!H*4S7>Ocf0 z(4YhJ+4?zUzzce!Mz3OvLtvuT`g!~tmoM6ckAd|^%>@C|K1={kHEF89X2kuY#2i=e zR%h?2N#ovA;fHd$Bo41C;Y}od*UNg{_&UV(fz!6L;%a{oE)q=R%F_rB!XIxlS2Pj6 z%s=uxx+&_}LyZsAz_br0JzF}*b3Q!1-4Wj`aiVl$u%#K)Tf7u~oDu>wcfE~Ux^{a1 zp}9Zr3eA2-@x6pR+HkHb7o!-h0pH#idHt^SI}XkM#onu-g@8!Ju8Vi?|2BJJ_S*a5 z&-35@`Zn-w;Kzv{1Q0)dKYqdw{Gdh$8BNkS=l47=u~)HIJ@QCtJ`vy7Jas6z@>XR{ zeRrHY*C|0*YI772+nx-{*ebk(XpiwkJa9c|Eag5!u@sc%b*kA zF5UsTyY-ykwJYcRs%T8I^u;=Iy%t{UD2_X#VgLI51`-hjk8=34j|BHwR24q?27hqP zu<6EMpSKgY8-fsb9Jwfcv0=ZnRhgUHC0YaSamcw{E*q=G6vFy5&fIWolB=}9cc_{G zk7vIF#>6LbNBPtN%^=gGNyh*NXnt~w7XZG>1^fzwvnSJt~w}jRW$lWM*UE6dH(#^c8E6#CzNA^pjQj!-k1Y z936Y|2pb(b=%wqJ-YN$k=Gc^ST{mjs_tX!R%1agJx7w@Qy?I=+88}(fj?8ao*R^`H zw!7bC=5!PMw(*WQ;oth#Tc`{M&*}Q(Vl#bm{N-dbed1&@h5l*d6!qu0GDj%MJk<|BtNq0Hm`0|Hp00$VzrfR@vhm9Q9B_Mp?`_uU!yxyN;1<2_!leS)l} z-=<90Wc|$jEMi^XT1E|a`c=pr>lzF?mrCE8v#&8Q572nFaU$<*<7DI1K>Gc%PJ2~> zD`N4?cMiYQ^Hd*JAJ+49)bV~;d$E9Jh`~{(p0j|dp7TM_P^~jly-iN@#;ysbv0}eA z0htK1C@<%}2pq%9YjVzg{Fb%nXWre*`Fb$$*VjY*T(g+8?IZpC9J2g*#yFv=K|N2s zGq~|n6%rNBy|v+ipI2Uk5KV1(81IJzSDS%YB)u$zM_$-Wz|KJujH1?CsFcl@&kPxE(%gT+4j>2XF>W0BJ2G zwp^*(&cc5T9#jsXEtBE~Zc5nR4y-{8Zk0)hrz~at+cZJuIh2Q*M%;hvaV~KqD5Ot3hRPsw>iAtcq zL`;!fz>HQ0>Tm%R($>6e&1$E`VK^oShZ&?=2YYpJ__EpuM7y#^$~TDb?&>z{!CAu& zo1iIkNl7FJ*f3X*{hb8mDm7(UPP5xhX3`;+PgkXgP-+X_Cs z7c&D(0cJ4DJ{;-tRc;XKp6gdrlZx7^7w4yb)yiS2FyjyEus$pVD*`KlwM&6uR9bar zZ}Xtf@EgjNU#9+S1XF^k|JIj3k4+B}Klc5SwoQGWZo*6altbGLSW;~zxy;S}oxrax z#T9?Vz&3&3xR%Y!;>;nt7geS@>T=Khl|tBqFV#Hpb?(|OYx4;Rs52lZKx(hCLr<&o zzWjlRdmFo+B8jwTFJBE@YRl80C-;&yWG35gTTPV1YUe6PRF zGs?0AY`)%vaxoBqN~Z%2q8ca){liT4ujRWL0aLlSmttGL)~ue>5J{2GbKG!Sh1gi~$_J9#BlV)m)`_P~Pnlas4>LWbJ4`=x z_5kK@QY}f3)LAe+MC1!tsuU_6s}!pFMEOo&A^d_j|1`S}k>@*>>aY2Qfjk%z9`mrm z=W%ZKZFcx;9&E|4?+8$#^rwH4Wx<{2-xgjMUMahaFKCm<=cRTAs~my!w2<6YK+~Gw z>I@q_8+=TtG=@nnOs+z#!8w2#tAuf{xl1|%<(t*7xbWnu(TOGsMFiC;^*yL6`TjcCd%1tTm{`B|rl`~g`V_KilO561 zQKKxj8tdtBH-pp9iQ}35&|`Zij!M=`#ooHa-Z4+Vhg?5%+&p_yi(D~bW_OMstrLqG ztC388*k9JyIfqDZt-UXpoM5+IsZGD*_XGpM?j4)GHKYT*H5ofZ5LaM5Qb-$f7NEWx zZ%y|)V+ZCGh+}b!CGd74?p19&(bYC3SRjpbm%n5yD=hSLO><4NbUt(&Z+uuBdO;A5 zcOB)zfpXSIr7$+I{h8OsFuLtS9*{P2nnF!PB1am%UL zhrF%8@@ZFLS5?WiNNsN5gO$0!n-*5N8O&{%aDrakzF^hL<+@T=*;xI)spC6Rqi3Z1 zAGwqUKgx^|Jj@Yd#T^}|7bCIN=c}*8xX$&2>xsy9PG>P^;d*TVI<)s6UZMDQ$N)H%)DioH_uaO0jHl3= z<%v`r94c%}#j!l$boQtrAOHE_lGStXsSw+4Vvdb!NMer5`_hSI<`keSmP8b|Z~YZu zk*a0%KYHQess)TQ|Cl^{eHhZq3q(euYjPP{OEo`JW9L=1C?`wns#k>K$KUXF6xC2;7)!=Jl5Br>PF!V+**YKT6h3u~E`b;+(wJ$1t zfY$jH&^uE^eUiqLD59%|%E_6AI192xuVl_c;DCPj)(7j4d-oQW)lb2|#D{yg6bt;P zt--Lb>pZ_Fgx za|NYVD$tcs>d1gPh@ERR%vhATj^$aCWP+M?R(Pl#@gI9H{@NMk#cz9*|K7Eu0s_@u z_ih#6`MLW!Yq8(BIqpM*F$?tgs1M|a%P(uL4E)K^!$tky9*)*+0>$z_ogVSs&dTi; z%mm<*o-nM7lRn^uW)m=}5S7LODX18lX2_h1uFY{iojIME1IKzAN_6kUoU!6Q=*~Ul z1ohC?r;H)=ijf&4lfL|yQgP6vxiOXd+hOH(HFVR>vU7#|AOHa|=F&>EMSH{$S?-6| zVhORgc;B&_wd6NA(JcjJ=w|3@JM@NrJI5&2FtgCoB38d=p#^2p zN~QEqI8mo(_PU|7AmIp^L+nP|?8;^tZ2UCnH0Ut?PIMZmhQkk?V=R~_w-n3_f=ZNG zI}nVLc+k%!fmr8Nv-b9xp}?iu(Fs3)F|3HlRg>^RXqx>T`qQ`CsEs~FfV$!5&Zww*C|*$sR)`s97pg6!{vI`%00& zi%&?I60j8-GYB;=Z;XuV@0O5E84JS6MqaZ`HpH9obf&9H#gy?5h{n5A8mPFbxKtYM z9c!2Oa8T!!-4~>gZKK6>%|_c<+Zm^*xkr2lbQp*#6)O%jsYuKa&7Xl7_25JV5+6l^ zijy5w0n#r>p$j&t!ioPVE>d+AMJKeVvWk7p=4GIl zlFM<4H!qJ%WVZCWzU9VO-xs`4J$%J=du#QuyWHVYcezHpKmjWuBlqX@cn;!I@}$#D z@|V!hucp?fCco5NTqd8V^CnJ33i|}0G*AteDwfsk69M+oXKD(Y3Y#h@lV05${0R%7My3X_=WlYo|gI8k`I%l`3FK5dFB0#LN zEWpoUY7L{XP85f7HK~J~1j}`z2=wA;y9Jab%W6mC=0OG)M92K}&rP7EY0c#eRBkqb zwrHnJI~Vy<-wKUnc6s3rHnupnY#=F*VR9<#a+7mY99@bDvQ2E(tkkbGa0SA01)ga` z4+ouuGl;v~!{Okk;O|<$;B|3H;)o@MtQ|nE044{ zRvzEV^mWIL>)E*!)lCiFFJs0(TnT{zONdy~eI@&KuO24yWv5jkLQS9vnK1PVCcOk0 z586MtAyZV~S70u4gJaAzSEwedCQDcCs#+c>gt8*rLqg-Nr~?d;md8E{5+vw8Mey{& zWu{$Is&Hv08k{Y`xQj_bOkswN&73=zNy4SzWv)xXn)C-NS3XZP*y6!P*JQ%DD}t(d zT2l>AI@~YPRajql)1v0?gTRSf1PF;n4Kfwk>n<_o?TA7LQA$nZftU@H8z?5>+&23o z+dr&w0;mcGS*dZl6s7wHhhI1Oz8kpNS6a2{Smp z_E-%LZ?H3zPc9TLq_2zM+sAwrCM!nU#|U@Y{^R}UxWmDu8dwp?$J<}HpCOE&K5#IJ zv~cF>tEa=?>~8x^`e+WHWO}r%{lP;ibLU(*LiS;Fc(QiPh$BEpsZ4gDRbHxlsRlLHW)W2bsrlnbzdcQ zAhqqj>hLFzPgMt>5MPsftOlx`pG{$U3?V-zseF1XEn?TN0+xQ3zW;cSLR`>_->8PN z&*<1%l`@>$0IR;($i0W!61Vh#5&sd_jX%(lLli%p!Hc?rw}|E$F8Mwoa(sPVeI1ni zQ;t*HVPt)o)MR#-y0DShs3YtcGjy*naZSNs`-^hu&wr$DwV;`&-fYo{2&xVstztnP zW6a~aA?0#m8*~x2nxJDd>vuHIS*FYz+SN8t5=6YzW^u{-@N9#GAW!EVWUSl?+R!dm zSS#$YsCZ_z(0%+}FmuvFLgP<4j4+w^^gtUZo+%T=9pavDJIA{rwO8?STKu`4FD*eK z#)*Z0`#3WJ&A#Iaj4%(pHjq540fgWa2GvpaZ3KpDAPR>M2=IxW6oc-g%+k&h3QYnoI*8D0qZf@|DKWSu)WnPmT!j~DNp z5KCQI?_Bn(V=kXaI*j&{oIN&VA`tB_D59?dF2YbqvR{J<;Y?oKKX47Zl zc56Jt$AQ1Zl5DvkHJ(tVXsPGv^zd?DdVzhM{ALCIF%Fley};Gqm$xnGfwY=zfZ5ytxXocOx1|Q7yY;eA8vQbj>bwWu_e}&{PBdK5piNK|Ck!*Ms~`@paFC}Q zq4As}8!)~DPop%4tlzIaG`8{yH=r=b3O+A0M${G{Z4Ctbzb(xZ?qG1n3Q`TqNQb%u z4?FBZ2LePQ^ARh=&Pn*uX-SYPnq5T+y9rgIWug^AZt73fpK4J{^`~$;kDx3%`$}j8 zbc+7q|B2toK&;gG4PZn^R`25=Y^kk(E&*ASA6*C4qS;BqNB5DG5y)YnS={JcQ83YS zax4e#IcBYoT+y`^4k8j2U7hnkbZ*D3^%Bpd!akrqm-LbJ*{f|ZTn1}fen6Exv)xev zhN8!Ax5|u8rZ-k9T=Qc;yl^0GRN(6Imvtr&yd=O3b#9dlbD140Vh|cWRy(d%dFBl8 z8GtXj|K%W)|4NfbP>_}ux1DH?yNqON5m$;BD#t*PbBtgjkRL^n?`aq=Q(fO)e#Oqy zY58E@{_cu#KX&Ln>{c-%U>PeNcfuWc0IM?>6CQZwY$;-{is-MGRr)y+1d@_N6ITV2 z;tHHYqriYYIO=7kKqz6i9Vaf>1r@waJA6xKusUqoD0f1Z81PkAx< z*3{o#OHOOOGSf^_$@W6SazRZ~3&)reW-u`@S- z?)fFhUoUpQkPv#F1$N~un?vU4ReO%*3hkA_AL8-Wh@o1m^Sjo<@8B$YB=b`SJKwtQ zauxCjE=>R=u9V^Aacun~j`55NFx(Ec)lLcJ3FXmFF7Cdvoylv0OP3?%wA5g+RPgX@iKl7z>_*}VC>3~M0~nmWhBhtbf$jaIO5sS?Y~v zg*VYdt+CjR*5M$SVOU-dtnUW)ZR1JfiB$NooL2b{+9Q} ztk<3)uyMu`cl@)$nn}dXslos&GgXJ-Aycga(E;^=!Jd|EZ9D&4$OmHQRRybiufs>q zhuk?@^7Yu#NW?beBsdszr$H5W@PcR0LHwNtHBVT3;_15SNop7{pb@}$7O+V8$A~7$ zYSh97{*DcA2I!-pU|yk}b_4?`D$q_F=0B)Gxpo@edy_dBJYoeW+?7yUHsJ=1Tv9u# zEBR-~0LF9W_hD^;WPMj2g1{00an;aDsC{t@ai|Uswgz?1qh`$`2+1ociH3k&4@?co z(6YUTwy7rcj1ycAXrw}2$|cHWoU(@F@Fd~CbdT?o|A=EYp9_w%8 z-TBX+QLGx%3F(BwH}=scnDJ-}%m9>DupWvwvgH+E)>Ic&zY@jDY3IMJFd?c=H-INc z3S%M!UbxYDtxZ)&>Bm~=;Zdr_Pr@+@%*^>De8j~DDr^@ml7Os zHB2{bm|*6S3=^5AHPHmtI<#g2vrqJd3Z+?GaCOy-(~AXnp`K#TR6k|U0_8ZzlsyB- zsNbj`Y&nklO*w)=^cOY*BLXH-DSz3VOW$G)uq1ZnR^mY?j`eE-b1cyaCK3 zG|~>L7M~7ua3B?E2hCFG-0!9-#wiA$(%*K~b(dS~Dn6&Eq%G;eg;o4Gu`s|IS-8?a zqX(iOTRPjLrZx~B2~FSp^djM{I+^ z=mpQOeV;yOk>)U-e&BekPz!*kVu}Xv_e~+M-+uv5!?{G|MJISPATsM5hsck@jBOx= z29huZ(?HS_{Ab8>a?n+2$J2KeK2bg~{Mz4V;+=o#e}q-l?f@q@!H_KF{C^SGGb&PR@u z$ien1cO>lFDG;gLzg%n|@N)Gl?*dm6y#@ps>|q#)b;|XWLpDaWsD{x+D&|{*{es-U z30931X@al+ zvBXsHgs8XuLGW>xDit2(RJn=Ppm};|>$9m}+~n#K&$FuHs(X?i0Y7~81LgsnJr2GO zzE(XBL4;yLSIr)dAlp=QB*@V~a#{R4H3I&g=k@Rg1mNRw-;dK?fY;6!U||6#hi`n* zS)?ihB3#0=V6m&965Y79mAQ@KHO43coS~j%HK(kS-VyCFeC9g1mGSBB&oarY>2?Xv z{RZ9EDe5%r6{+^p*Eqp|mIqN*jfHOlLWe(K$({wCSPF5ZXBodWxlu^MZxm(@WDcZS zVadTFv-@#G3bEDN=;7)#kA;=R-uvh872Nk@sb-|m7lRKu!sQ@b2rgf&AFBrGH*{gG ztASLHz+~)bX3lvQs8|MeEI{^{6rUWa5I|!SD3%RP!x@XdMlk{C^Ns}f^s*k?S>`^5 z#i-yG=D;RLWoyXG?NLMgd~b75GPHvM%fC81bC2h%E~G!X`9GXOD`FQFYKF7#~M)r79oJ$SwokXO940d;Sj&0WHFzah6Vm(JqXt zSz@Y-R;lPHmvK|R%V4QL4XeaZGWqo0P7gbdggyJ0yPtk6dDe5YF6fk^(Gu6WtJ+7B z1-JmVN(syxE)ATt3-|l_nVsD&iV#YVpdBlAgzIiHEyf9|&TnlZ+G=_-U=0)ue-!^3 z`TLzL#B<3$9P$GA8?Emn-oyoUYI%s3Q^Wf%$#E4TP)V++lzCZ4>;S-R48#8Z8*hz* z^A0_^{OW^!!}g6GVOQ&qOzm0c{t_1)ejfmo1W196N*I?atOsh*H{6X>@&pGN#bXb0 zoX=%LaC@!dn_1Oszo-x_PMqa2 z3tf(N2Qv0$1tLt>B9b#nD)FD?8w7B$dx=zTL-+mvbN0STw7SF~*u>!ytGYTu4k?-R zt+7WNIkdJ7vGb01voA1zy!=gXksh#1hbBi3H4;&zoKlS~2b56>RjCZm9Kr}0ObEt> zQr0&g=}}>zRv|Q&xJC)Ao=~XShUD3DME6{A1vpVpZA1Zv_6b(8dMy$&Hv&5~Jw#O@ zQV6i?I2DFOKp+*aNAv)eCH0S=>|aKq9uU%YNpJcFab66Cdb++YT^TjcVgPIgOp**dF<6zj&MRwia2U~DN;H~pUEc;ak{+mUHbF)f*TDZuhYx3vP14(;HBdT4r0a0 zBOL?>;;HQ2?GQX^P(ygw1|YH?~?A#?2Q|O-n8gepPb5>V-|+`_~8U-=0eW+@KOnQqv#ZsC2zRlz;4$ zWl6r1@xrYhAZ4W{Y0y$NLV(d|Kuvx>EkhC#M@%4(r-DjjN&POZ@&Q|qY%fqoSzbm$ z0)4j-SGdZ~>i*RVvfm1eHNx~cga?Onwx28e1A#jpA&3LPD_U5hJx=8wb)&89B)|rg zT^&|3CY7F^4pI9bxF1atP&cb9m>BYR`VTq*%sr+TU&kPWzuXX@UDw6kcU z09t9r`~atY2#&y)Or=*{4~Fwl?S+gmfbMo+oH_s*bU9Dd4?nzOvHjjoPyx55(vZGt z4hhV0-1py(!I)~i{BH}UkkeODS4~vQ(;5_A;HR5f=n*$a95!VWg{`LACH9wuLNaQzW`1TX=Id zpJGz|T<;Hn!UKV!1n=gq!vNh2RCOevtaWzbjRZiR93TsiD0Y+kahfZQcwK-K8B3$@ znuLuPwC9x1b`G%EzX+LtxZCL13}%wvxQ7W&u^cjAPs1%x8~L0)pWzC~oZ3da6f!77 z1yWURv>UnaQ<2j`I3tHZl@b9}2`abgTWq%9JwX0#DqbK)-2o{c03w{IP^BIGSRjCy zyF*tzQl|8T%bg|>CO@9ikTiszEQB0h8U6Tyz2}V3MpQ_zQ}8awx5U=9uQ}5KKXMx0 z2GpU-zA8)9M2JX}racZMw9!fDL8nT$Lr}+M<4Q>oO1{q)L;#KpKxck9|C7D9)>E*Z zqPdYA)(udb2c?`ahM5dQK(vq{VSmx0H~(3or~$d9)w(rF^AkjxmtBIRb8ECR(8fKQO(`1c;)hJdx8Qc zodoijfN3gfk!9e2bm9J`-RlA0JA^z??R_gm@F7pTKdOJ_>;oQh1dXzh4hM7z;S!(~ znka#6`R~1=b^8Ag8i+R)*%bZ-C@DQxD@RbJ4Sy^UeH<y(Yd1}=B78!dRqLmNldXdWQX3R6Rt*Z*{114M|OI_hr_&oQ)df`&#Z@0OYXebfyJ> zKmU7D)j7_)1sUmhXN?Sx_`wtu-T;Lx_ zUH>mMPGvvtJGuC1^JF+&Iiwu} zIS>A)j{$js;j-5<%3Zyx!P}OX0E=Jjo{a>AJQMWU)-b-`O?a<-zVP( zt}WnN18qD`n@L;+@7h&W_w#^=$5(x3#%n{L+d#N_0aE(CwVoGD_19CK8l2M)+74hDAAb5yZ3i=m#xwA z@Z<^+c&ZS%=h)81XtpQF-Rt%$|2T zOFmop)*H?LJPX{d+97~MxW1a_A7~_3^FY{17{rZGV@4ouB=O%UA%QlvQ|WCu7mYI0 zSWYxc^ppF+k={s%J&gVJv-H(Ivv;H+>zmjOY+k_3>mNJsVSmLQb2DuXe6{bDw40WS zsK&9(WCFm{kd3sOd|aeG5(Uh*NA@~ximi4%%LsFyPyrXPh)CwaHmjqlM@i1We1zzD zPGYEJNa}Xg6TrUt*ryorkvXp+n~-;HFmiu!fq`f!aB(sHm%>}D_?mY>MBVD&Q(uD3 zy0#{U@71)v%ky+r&l+Z8m7_YZS}kViRz^~;1<&M z2WCg@qd@7Vk>_xCbJOAO_Xd+wT$4K{<+M2^EARGj{-cb!XTD(%1U7)N^=eWQa)y$4 zgHld`X+)G@<`)hKmdL?!M4+$>aI(|FE--Lr2azo-z6@+ue)`-WB>D1A5hKp8gTG%g zI@D|5Vd#^no)Gg6WVm$KJ8a;r?HHfL;&^Rmf~{A0e$n8Fh_CvsSco1#m%I*JA+|P_ z*AY?e^+x!ONVPYtksU!@QY3C(WpLv)Pv<`T+zq3ilpX41^4gD=noRum>Wx0GoAtYQ> zgErc}YLw^&(S~_kT+G`W4f?h>B_4z&A5R`{!Mi?In6eS6cUsM8FK{Y={-_lg<$LSl z!tUURKw*S4*Uv)q0bEEF1u_cD7j&PR;g)fMJ#zj87z=MhxWg7J%W&>1g|x_S-O!*h zBd*@T!CQBx6xWyD0&(0ctCMCm7)mOX(h1U(tca&jEy+dC2%#MgY}qTT34FW4?7IcZ zQQdxL-xCyI5NeT=K2MySoWsfEGxkcR$V;Sfj!~yHYMVC8@moMD>gbU5m*+$;upJVB z_+xBqz!MQC4|ooEKnV*fDM5bU33V7m={7;~2ZFa6pu9t*cZ9wIk5P|3(LC5pDkrz8 zp|m84Bi5tL9#pE6HIUBxeGS8y4z}xOK^uErQ6(cBTpUQj6(n2T>IoL@K8y5};#_-kOiXADK~}8QC9a8QI&K|2 ztRLbi4`GR0lf10b)5fB8KvblHb1dJz+9}h%Tdh35+MAHs-xFITRUOVFmT{(h^{stOen1Jtd zJlQpFQwa6v4_9Lj_i#;;YCHwt82u-+9Xz4o6L#=~kUI#RQ{1TC7*B%mkD1q^d+95B zC0qRT#2MTMC*ZQK^jT!zr}w(qIF7+LuB`78H}Vp~ z;q-ltU~M#`n=j#d6vVpuWfR)?ZE|`{Z8D2-@n$`y$IMzG>iH%qNuf2*OaaB0OQ+9{ zNW&5Lh?|HD-#4jGhxnLKvl`FAb&-ccI#WD!A*MX0p@iyyv!)h|m!3|Sq>p?mSp0P^ zZ9*wPDZtp@p2$vF#ijTkt@EC^wlB{H!ldEHlvQ-c-LA3x&fS4@oohq9mIu%~D%4~h zq+H<7SLa>R21^EDoUmlFC*r(i*K?ppX->zwAC&L;Jo?Q_UGeO;x8>WA)uS^zeR+dQOojYjP|WC|cDs?U~gMRc=2%n_8QnYZ)S& z(lq>Fv@ss$I8@MalyR=Szc;~p1 zpKjT4cri~4FK;R8pI2jPeU7clkgmchu_^!vvb931Y@$sIab)%##fZ#`QWsA3eNY{3*5>k($G`#ZQhz0($imRHHEWEglSZB2e^|2}rX7i@5j!)75RJ~%MV`}^zxBYo3;xo(V> z)tG)z+`J|AGNsMIrni@{*PFtAR{XlAXVR+#!FMm7#!f?Bi zr*%7(IL;Gpt!DrN5GTp|B2BuolFubuo}Wu#FuV4-`1gR;`2065L(A`o19J4Vsa@=% zTW=ehAw@0*Z32Pz3nk@=UU*d`3wS?a0YboDR^R|cd@s7e%Do>q>3cz1Bx?vry@8K8 zSEn&pdNo%IxB>?eqhBvjFv0#JVum7H0OxOp>be5W9dDlaoA*TZH^M|gV)}bwV)`-% zE=MeA(lyBiQ^8{ev$Ec!rgk}MDxQqJQpX-k6yz1;8A=!o7v!O(2^&(0IJ_M|SGwz2 zQ&JJjd-o6(vCQPv8g@eS`VDc{zzIc>E8?z(*U9WF6_#T{=x$WOBPjwy{{uEh0=63r ze}-cSE+T;PRTd(A50nt!=yW;%DQAO?`HKoay_;9wZL-H z*aLF)@>O#6qPxvrQzZaXCQtV>Wl3PFrB;$#$|EMeJ5;Y`9V57Ga>O<2G>veMaOgBL zK*_*ipktuJz===fxo+n!U`X+-?6AFBB<>pIdjijjC~5>X@q`821x>syRJtS|;rAvQ zQrWRjW1rsaI|3=H9zN|F5BD`5gZgRru)KZ8ZX3f_DWAf=>okwLV2YXgm7B8dd)mB z6+%`(s;=#M4oIE~{P=98a}X6*Hc(T+5Braw%bFx;n<9$tb6IHp&o+H;DR2gns!7$6 zi>7v@>dXqXi?*zUgCm4K#1u-SKz%j|L}&hpWE=R1XhfYZKouJ8Q~0O=?eq~M7k%OY zTtqNyz!KohQ$vReyu0`8m)tJ#rD;D_gF9k5JK-(xLDxO31VeXa3sqGi(^sl0!AmEu zu{zqj>gISer%O`O8($WUXvk8N^>`wm-XR6E0rf!b$-n~Q`4QXqZoRB(8NhEgmZB!1 z(`&b|xLvTcU&NTsQ{;9i$X?+s)DnVZI30-3u;!)w-3ERgYRL)Hry#~dxxXe@`$n#7Uk_q}ko6p0O2h3{|XkrgqR5)kX zx`jm$md8orB$awA$mOd2D=fgD0xUA6BEMPadl?nBT!aG3r#}7!kY_uzhD~XL@Ndbi!oTM^mDMurwhT^bV%31tr1a<*l zT@{T6=(olh9t7Uw*qJLE&9n*7yWGiC-{iq?Iybh)AZtu$Oi0*+%6gAB6}v(wQ*OdO zN;!ceMt_uLGDV{ydm4BIT$yTyT$v{BVr5Mw(o^Xt7Q2&giGfb8`NJjaL8@W`7=Qh2 zdXXCo*vwRcJ_7G21?s%Fki4(;!<*$-jv6Btx&79;kGw4}SL0o?Iy`~o3$*OJL30n7 zFy#;U0`VGwnBxo&V9ckW3K6X;VDc4%FXvVaDVt!)AwBguZ|DbPs z`_0EK`vdt^!V~SfPw!)hRl3PMe*7tHO+SIw6v^H_OQQ-TYXY;SDsW6{9#F$-0>h>n zR_kV(Y*qzTB)TF^EUh97lg4ZcJc`D)ypaoF9|xxe+3u80T|w<^9RZ(wpX)x?u3~%= zJ~=-*KM5EV#Z3N>9wgFm0FQyq$ZMeUJf-kNVFbO>6B2@}s(P9e4f=6?VpnT9v|-T{ z(17+Go$SM`o6Yw;kr5J6G}>C*c$5~exm8HP2W47a_o9YesZ$`Bwsh!JLFNr(-?ckRcpu{#!Ai$OAUGI;fIW zx2hJwuTlI&75O!QfKe9Q98@m`+_7%pV+2iBP-q2YIdBonL0u3SF|WDv#WPf--UL!G z)iq(wKlpoU|Iqrw>>v8T@y%y6KY}vHN6?akBXqCpdy4^Iz!WjxvwI5UHsV2$^NBi@ zw-0n7?l`*$EkFkqdK#)=DI_v2IdHk>TL9aLp)qOaQE>271N^M{Pom{V$d7aUHq9r0 zgu)U6rA-TIYxOF|4o~7DP+6&xFiDuo0;toZ)42%+8D^KDmS>oCGUYQ^MrqOAy?ou)&9Z|HVc*a8kPwBh3}mz1~0SDQI*_RQ=U*sYF1 zxl;DZ%&2Tw%18=I*G5)VpzqbGZwzly0|q~wvp+N~bT+Ru>4BT}iY`ya#=PE%tPVvaP$m-~bCl z3-6l%e8l&CWxQLbj|??mqU5Jxk(0^mhqJ9`=v<5UFO;QHHGa)?XO(f{bF=BFZm-6Tyk9R$)TxG_VvMwFj!j>KV}7)fp27)drm z;CfK~8apcz-+8C;&70##qoYu$EGr{qbHp7Bu>i|B}fk>9^w4E8et3$iJMg!ybKMd*W0t*GQkd0jPuI62_O27buKR7kus6i>w4HvhD zgXFj5xl3*#t;MBbKiWwvtsFUPZ{T-5cxPTjX7e?E2XqS(E+Jlx z>3fx}&Ie47K?CF+uaX91mobr0gJJ3#BF8F_HbLID1m%gDtRG~T}UCsAKa;#|}K%7TDQk4BLE0Z)0Xr#q4??PWQInlrp9jLzJ8vH#3l z64V4->oO~nd$Bt8hyu5#U+6ZK02ECxkh4<0*N#-~){C6$ZJ8W}4evM}bB>7Qsurjg zVNLP2{^)baTa=*bdB$`m3&{)tiLRPJczB2B7vNw=i$dU+khOPJZBJ*`R-euR6@MtG zNdn(#jsF__Ar?n6xq5XHhy`iL*enP9JNW0r91H9r6ILY zBGGJ&N|)*}O(dS14q02C9J)9n@&qO;&n6?DwuHp4{D2E1kmAh{qyYA`&Ic4iUj=xu zK=nfH5NJ960%4b63{~FcH*Mr3+!X)GziR)gg(E1DSyOn;_XXs4mZN;*>r%!@^1V|) z+5Hxqxfbe(2AkknLIcn>*nHOa8Vx|lf=M*T(6e6j*hLZ?Oi@pHufR{MyhnaC_!2(- zbe3ZGxW_ntClYlB95p4Gjt1*zRV~sZ8t~2{L|EF%;*}~P1iOX3)!ne}OZV)dvXV;! z?Xqd#O5aMCN8c0GE)x7Y5M-mDT&MkVN3d9b08Y`pZY&sSB=x|digv&zRt=lE(s#Re z3aWW;GQ87*-dWK?hxCoa6)HNNRl4}I?+Li^K@kuL)-Z|tezmi0j z^p(#5o?p;urb83nMm0|4QB$6139drpZ#3-gIOE%o!#cK;?5z%X->O7>-&qc(mkZ3O z@T-s>!q}0tV1#8y8q2C9jgb(&cUBdQYCsA1w-hwmle>h1vPf2KCui@3%haMjuRoV2 zmnJW)l>08(^L5Y-b*F8mZo{{~j&!Rb7!l_h>)3tf*w_xr;^7IpY?(!Tba?#Hk- zWqBmZ0Jf&)5%FGt{#4;qKWF^2+aiI_Yfryr>74G@y&Z)bd);SIkUGg*it|0Sj|3r) z4jjq5epNkS|0eQHQ@+m@#VFtf|)m;C3z^P+qK^3Rh0_&y&W zDfYD?e?9-I*z2Iry3~~J=Yr3N)+NvX6&vlcx(G47@}dU77r-HEXjB@Afxts`#BAfo zQnwGdZGh=U<>q`U!As+WB7yn%D2D{R9$?itT*5n27@wzo zT>N0=wcl%h&^tEIm)2km0W?eZ5-s0*>Aj4;%c?R-w-Tq<7)oZPcX>k>TIc`T<&6~C zVgACm-6o;WlIcGl8hyiaGci+?zV4%{Sr`2kmp6xbdhTm6jOuAI1TmLJM@MNfLhlK^ zYha-2yZ#%h?-n+CNIfK!g$rfa6$Yn8E>>1X#SfCAqHG3x*xtUWA)I&kRI@?|noKnb z?|A^O1}U;M*U}pJb|6J!)xwxVo|D#LH-jMa2+yh#Bt6z$mm8Tj_SBhejVK#dg}U0(1wB;8M4;djkv&B9o@Pu zx^J@!bXJjzz#lAwkT@jSY>2g(k-X}jbXFr7MInH56xJHaCXj2QW;-jy-_RSYuY?ce zlv6L88eO;HWY}^LTSn2l)pkw^Osd!(KE)4*C1O0CJ{FpI3t8v;Xgdj0-7Lnlf45@A zGPox^cR+_OzC+v(5(&h0;N=b_{u0%9A2%`#xRc<@gDU~N57e@DlWmi2gIdDY*+odG z&jdu$!YF_(A*ti)sdyq{O`s*>vtAc_!g?JI7{qmut(!{sl@WJX2VFCF?|3<$u!L41 z$^w=gUSz%AE}aHeZ16I$R_5B=uX*$9>p>swlXBD13ziu;EKbY1K)AAQti>j4+ATvh zL``1R$Fu$G)eAm&#WR22p)^=o1Oluql6*B~+p9_@&(OW58%#Z%YDh;Z+TN5q#mXge zm2-DvjpOR|&q0%zIJDmJ%kIYtlGwPLP#) zW0E^=Zjzg%!KtxJ&lpN6;W+srA+X3GqYV1zaxChaY%UZ`X}socQI)wjqrLU;h3Sut z*@mnXj+og&78j=mx7}OF@2d23AmbJi_l5Fme{&lKCKaZ=1W~ARhC!OVT0WXU0bz4L z+nh$7G0~RKxLu*w_2_f|0LqPf#;^wJ7&Jahv3CPUh#TllcDu`=DO?v=f=rJ=;B;QA z>2}X0Wx0%P8BC2gFJ}cBb9UzhJ>b3EbF%w(kChQm9$Sx1XzUH?(0HUH+CShm8so0G zsU%vDpJK_y&)(8Skr})XsZT}+iob~NK#>@+wMbGq1Jq@M#ZHMz_Dc3_iuDFw$Er+( z*KP)j{Rlq0_^S>bCus|$q8oZHqCp%y*Xa0Cc~qp;1ZGr@A^~YMnuH4tzM`E4h)7L| z2dI{$W{q_-zzqems+ZHEra@qJy=loH@4n4X@wc97KEV|zF)p|wXKSB8a6|h*8EP;t zW*p`^`MT22i4AAaju7H4a8GPik3>jPhmF6v*wLYZ^lNAaXJYEfbipcv3;>qJ5ZIi~4j%bH( zYvtJE*2>W+Q{4i4QfE`^_HaSXNI?|Bekvs|)tZJIrE?Z_d=WQ-=0*4V`=kbOIj~Ag zrt-8{-zc5oDaU?ms%xsk4N7_#46g?S7$r?jW#?t*O-;4mG_!O+rjnPHNb&`%ohl>( z6q{OYjl?CTh){t1XfMX#Z-c*mA_Y(jr^_x!q3<(Sh}>%QzIL%x{5N@ne4c&oN$yD& zka{pDJd)%q_Yi3(PI|OkgV|M$$6Uzj;!7bbfis5-&qfYdN&rC{t|!p7P^2!B=m!2_(>!#@p=<;AteHN`buscrOIM4zD&I-l?jBs6eIe62X7XwBiv1KZWKWkW5HMs%Y?I6YFpo_ zaNKrCJR-w*MxsSgcQ4&uI;;eDDR-$*B=1XCFI5-jO^z{q=x~Yk&XBqe$JV2Vl?@Vi zL^3EFHqz6v%qZ_s0#i1qQJo3ND1L-QE0-r@w%jT`QOj z6#OW{g70FDw3e-`?()~=D7w)|(aV#UwU|I&%e(VHu#y7-1Pe-5>qw#RVe;{s{6Eu& z<;f8da?x5j%p}&9<*}gIl@2=u5vU&^11Ea7Vd-UIviUn}Ry9Jm*!Ikd>IDwF%zT+O z<`S7NAk~1hJ3)hL423YjbOwbm{N(?+vo7_9)dxd~stW=obU|!y=m*6&b`ToqT#Y$6 z1=Sn%>GbIgqf%aL725WynX7WBazGiT`dTfxw;aUL><~2VGz)GV$o3DW$r8cfc_n|P zZ@CyGH6C9Ad2-%!`{sKRZfWy|blJWyNh? zz_yBbSGQ^No@F^Eo3l+z_BKi=km9R0iT%~y6^H@`S2DOoihqrAj{Lx}FPAGH5t1L? zHOFkKu;VC8oT|Ri9=!)ydpS~jZ(6{YH}|REPCG7qd`uBz5|uamMMSD8B93$N$`{v* zp$0ff%&wOW{HGIhN}m?&vIh2J`jE#SXFNRVGg(G{D05IP>l8W)L@HvMr1mnWAea9rRxtz^pMfLEFF{03QMFy4H}c9maA&8WauNTs5+)bH(RzKjY3 zP3v6Vxm={oim?>Z%254JRxHS?sxF#Z#>zKYVSb|*kxd#Mp_DF-t9av%= z+k)k@>J|^=yikQuUecY=`W|UQcr+aR_-1mixF-(H&gUwU`&XeQchJZOs$18!(l4ND zVJI5`i*=)QWAe$R$igd2vHyAaPOs8VxBkIlj$OA<*t$!7-YD)PCx(;Z;Jt2g$knHP z0_Iq`L}k*l9(`!Xl@#dr$nR;TF%Y3aWkC?>~NjyZupp z$?&i?0XT{!@9vt_cJ7`t$|xs~IeK%yf=C@%mDnp1wb5qE8Q&JSvt)~QQaL>Rm!Ehf=ro9*=DKVPu#1#$6mVgu8$;me^gN=9Y`KeaW5)oe(B--#0{X_T zb*C;oZa6tD+k&wFzsFBK4K3)V{}F|CU`lTSZDWDD1jn`~)O%5>m&EO^FGSsbj}n|7 zJC4&biPA(7$hwocw9GrsaprvlKmbEklzn5di$`NuRLZ9Og`VB2%{!O2f4UM83znI$ zUWb6vFe`uoIKkM$gd-7x-YpFD6#925j7gFA#?l|5yBq0B1@;hvfo!6M;N7@X9_hV= zas=!2G{BS8b-=`n+kkvWrpJ-D0)-1bA3;H49MMR{1?=knbaceqM$60$!^MA0Aps2V+ibA%vTv& z5Zmr%EF$vz2aARr|BtTsfTyzkx+%j8l382_a_y0G_<{2BMiiSxgTevkac)OhD|>+?l= zEdY9!K_1hff<9O>1{lBOaa=wn18IYit)m^66a&{ah7;8MVJc)(!5dA!NDvH9R7e}4 zFTBX+yZ6N=^>>OJ!9b)06GJl`&;~!|R)gi>++eedO+~5ISaOvkK7*uaL7p?J8q0 zw}!U+jfdqB$W%da!43BR`*$3Wv%#)pLOuyW^N-Ff$*lV*4o#6VdBfOmPd9D_up9u% z0dYZ1fSy8xwy|BD89Os(K;m(7p?4>TXCO^bkk(6J1Ze}cav0I|k*a;9*$~LRML@s% z&pRIII_m)Wc2InG7{`J5O+_N$B1D1sQsL-&A@@-Qs^HBZ$N=I{(69U;CyJ1QAVMaM zfJDx#yWbIoNWd#&9Zt{%5>f!6B-~CwKqFF!swClm?m)X@kTsKUV2S!(@|A5&>z~i^ z&-;4=o1Q>~Xxc24UFgs*ZI=f5R|NEEN0Q-O+1)j}ABb-8Sn4yo+9)*oL7F$D(}kfB z;#^1@iy&m|0wtQtkR)@!b?RR|f+A{xqK0%myDx|(QE3rbIaKhUU5kzZOVWX){0!m9 zMMIdOBu!Sv{CktO&*(L!gt!3v*2+j6*hk;A7Z6(`wpzYE!@BPoY0vP$BLR;g>3kd4 z=K-+LBVgz=9{U0tGr=F-V;t)i02_Ut04vh2BpM?iGK^O~qQSt8ka89w&am@{16zWG z3#V*!#^)~xI$?ltBwgQEJa_&EVrhONZM=MY5-gi!f}O~i9qyECjL|>kG?d7cMaU|) z{oDN{{?26UhV8cGR!+3BW&oa&EYqCcU5UewE*=1QP9kXQcK{l{{I&R>*AkF; zDB%FJXRW>@>Eoh$J^*M*j#5ca22ET<8KG(6K#cC48k+^%J0*eJmQ_z zg6eEyFA%sn7^0~)6FG0RPfG=YsWR~e{<_sx<+}X^4S+FruDadJ<;>vSJQlEF0!zK} zFiZ84Y~pwEP3(Mk;!*uViT5d2dTM4mOC2nv#kd+{F26dy*;NakxSkdvVrt0()`Yk2 ze@~nMgED2cjXMZ1tq9-(OU6aXuPU+t)hLxiv7NwNMR@e)_0os0-d}L4WB29lJ7?#; zH&saG<9i-nSS*qF_tWTe91q1yqTLRSceToR^F9|>^82i|=4vY6CSBQ$MeDpL_VWG`aiJo26 z4kTOM`I*^KmNnV{>fMn|HOa(wl|+2!4)<$Ow&hy~D!+<-R$2e(2Y0__J^;@pFceLR z1>2+d37`9b=Gp<5mNz;8ABGu5w)%X zlIQ8l9#_d>+k#KthyXx)#v8#kl?3$tO_4RU8UNBgmHX(;5T!4`rxUp?DI;5xWNomr z00@!Ph`X9ZlFUIG=6&=UYSa)?G7wS)5&r1ApyMWq8I?%w?hONqQwX^vxgWZVT;27L z21Q5Ho%9;&XJo~})G-L+3mlu#LE4rbfIh^4{{!jaE3S%_e5$eh+RTD?;#*-i2mDaE z3FeT~+Fo!wY6Y*`e-N~f`bNF+Q1uUa3@j$yYX;fG;;fUaCzCaDdAT z)e~ySG5_uRg&(Kd6jTv~?g?r2dr;LBUFYp38Q@+6&->EWq{ov)KM2qPj!%5PUb$=! z+>-3|%b~M$*$=mpU16qk$v7n5K@dDjLY9OGo@Ps6je&{SLz|L5f;{M$AA+%%FQNan zis}Lg5-%WS-v0jAN)2mYK(4p@O(1Bs15eA)4x(2f9#u-|9TI5&&uHVd-*y89wjtylrTT}yFmO1}+xF2wADC#3srZ?~-R%)hGL+$ngKcY$ii2)*o1<==# z!YZku_O;Qv;=NYJvN@!S7n`ndl7UD92sFTC|Bx z<|h44LLyR%$3%op{T2LWr{w2vroQaGY{eJK_n_*@`mo&aJy+U}8Mz5nu@0yJ2oQJa z$TSZEyO|{)c|0=U@Zdl#0BPV*3yTAmWKeK3ZTIdur!con`hZV(c$K+ z2I&)juda?dT>rJY`gUh3Qn-!v_ZF6NG*r*#4n-`Dp3S|O_@>2IXXoE^<-gJ?&Gd08 z&GH0}Mitv_U})q_R4sb+LLRM*r-NlY4pdk;&5T`~v2X1a%zmHU+AHzhcp&h`lM=oi zXM#KEwwwv5M~lo_w0yM8$xgx{c%>ZlI)HaNZxg($R&A9x4c(7iQhyugYpYb2&=8iv zEe0EqwJagIS<)t9R0utS_SoFtu6kGhYpw9WQSHWet*~9bIRtsyU{f^&2TL7mL(LhG zBZqGD)aISE3pXB9mxft=d_a>VKn&|nU6sFjk-Elaz=lY1$$H6VxPJK4nNK=_1tra$=OG1_LU65`#o}j@m?Rx4Z@G%5kmzy@%2zxhLK$gjqBtd5`mQzg+9b%f%!#Z`Y4UT)h}gC)1MrNbg*(s)&_j#Se~{fE5*g@;Awy9iB)z zVKfED_B+~l^ynCeR(4r&6-M^V&@wCX0+>lXvr>wZ6J);cmp&$%ki-V(gb?aU>r#rs zM*QCV-e6^+7St>q{3ZBHs3W})*#}q_SS>^IjnUN>SR2OwTPJAZ==xAbI%JM+exPs? zuhsK3lJ{;G^?>APri42>8tjjw9F|4wfWMw4tZyoy+Mfu^ZNuAYL8ZK|boN!kS&`XPGZ^UEQ8#g}XrtRYI5=9rtCKU(0w%F6Nn zDQgcWUqd!S4#JD{q@jpD-H)($s$8wo=wB3@3dpp?e5y;MkN@g)yY|58HzCeF@mqGV zkC48F9s_w+{lonqN$qg|@T6eA2UM3+AO_l`HmL4F1bmz+-MTtxt<68U`Bq=Bd`eY2 zITU(c=V+en%6h2Z$xnbVKvfVn;iFl%JfpFd16u{9$$T#@`1{oE}=O zHvR$`@fUj~a7kX~Dj z_`9R%cU72N2!gfwz1>c>Nv+gk9}ZNz@6}`IgeN&sCq)lYCnW_@1!(=D_g54Ks?zYn zT4!3uSOTzRk;*1{|BIs*EBR8_l_=vW4^dK22arA zticnyerrRz{!37fj)Isl==(2qp8}rnsBh`wuR1zlEYYPI0OXT0k_^%^lGvn$ah~Y& z#>)r+)B0{2$xsI0M_gR7Fe^jt%D$O>Gw=oi_RZu6Ai)f@GtkaxjX>#A<`1&g`Zfad zKoj)gn)z4!vPp+Y2c)ax9b+Nrn^Yupbqah|1QxH*<-e+_*p0l? z`2$ieIeKTA@_Ps2$H9#ZKB>#3^U!Zu$d2oeN=FG@bK z1SKDoa-V+@BI4Uc?2~NLn`Jvh>oSmMnFwIF6(JrqGb_opR5v!sqw?~7(VGpmLEpp1+8fV^jDen^xdQ>vS5;b7t&omRfbgTCm>ysT80o^IY-@-Ej4SwcYw-zG${Y!X_twEHr9V_gyde+QmGZ6f$$K*QFo#{%)#_MGY0hGWlM6cK=6@A zWvbh^Xk_lCG6rP3hL0qjn}<(wt=?E#Vb8@U!}HQU+)8pv44Dyz8b_Gm-FG_7MtLto z;JHGmLa3DCo)3&O!M+istnyaBA;8q|)bNlWk+Ht8gcoI>L*Ti`l!wg(jBFw5+%sCb zSZ0T?12OPxzgOyWCW;7k-7qn`QQrI@&_dd)4iCn3P?Lch>Eto*XRC}Oo?M=#Q&Nk5 zN9}t%VBY%W@_m_`L-|hnecKiwyx`81ECCLxcS~tYY42utD;>!->VjBt;l*-fB31Xm z|LC6c!v$nmOUSV&&jtyJdN*=ZVlrQZqr4X#S|HCzd-p&L=88N<0?$uf@V6eiITC2F zZ2^B+VM=+wZ5^60hJnl&&~A~mTr&*@cMg_mTOPe=&i1c>$zGHvj)HL3*eP*ff4polf#OIPIcafV@J9{gD)InSvJe@yY} z119@wGkoP2(PxauP53$!NN-8I)0muRQh0g z;;7dLHyTI166nSBnh&cV7SpS7p^Tf&No`4OjfmwrAp8hW_(aiJTTdy@tY6nuNCbIg z&F7JsDv9bRWgo@C>%E)u~N@HeTisoa&A;Y%-#$a5s`p z>&6M=OrI>XT~$?&weBrw#p6qCiNruR6)yO* zm02;Ewc#pP4H}njtlZ%Ras7yVbtRqRgN1Rfofq#{3$B7Zl-}ngO8U%KFz0=G`sr!l zS;%M6A?;$8FuE>~bd0(fAujoh{462HArCZSoRXzc^61|4K^m~fH$t?xwv`>d_t_{P zZbe?W6!`-p3=IsG`_b$_%>Nr+>Sln24sfYkS3e4tvEH%XZv6}=Cut8<4#16#>V^_Z zA86w2;SrpnfT1v2(bkCD0v6O>EYFs%b<_v=bf-q8!h+Z!sZqgSfIzd@oXh|#j$y)U zAO)?;C z(oZ+?VNgE-zcKzdoVcsUEvGy{mkBAz=)ZD!j`fdNZg|r$#5lxT*zo4w@T&lO6{))Z zSZbNtH!Tw;Rl`rUX~#!A3bly&cLWCJ1>KCjZae!>z1&Y|sk&-1P4A&4e--O02@=_p z<1q)-BRk^YQH!FN)+j(f`wP9W8NV6-`9#QfL2v-+h3G>m6@H`XXVZUd4@?}8JT-Bk>=bS`BZBmg?#vUDdN$qVjx*{t3b$Hm zn0z9p7k&c;>(cPR@W5_QLiR>W5Sb#BJo`u>Vln0W#cX7NWvsN{f>^g^p#&|+`99-$a z*+(n8oJ(xThf64%tUeX;sh|5`_L%(?`6;@`%yaP;yMnKCc*SY04ZHHH$g?HS|2jh- z;V$5=K|Y%@SWEn1$2G%McFf{I4K)q5m~Lwr^@e?*@48G5NS>#rrF=Ki())iSo0 zlSg4?_H1@Z1icT&nar8OhwrDT^PZnac?Nj~eu|Yy@QXL9K z>D`n@W&-qJ>bxhMY|psCOA%hkGxQMwgAQ;6(S+HLaXVdsl#t`#+)=T?2}z?B8;sU$ zUc&F>{Q62VuFKb_P%i5do3W{Zx)%aMJjv3;{ z)-oxQVpGv~`gvhK`QFBWXztzI6lYFd^K`{!-9_-E!-!s5Mav#b*3HEZzxW zVYZ%}A-BmdQHk&;F&`&|V&+i{hAgXn&AxG%9TqP1I|BIXgKGF{g;o5IWse&6M~&80 zM@l~QC>_*UXFW4BIWy`#>OG12Uq21j#}ks6!w>AG-p3&Dch&si{Z&ZCRZ}%dM~(HQ zqM$l*`^asIlgDRuK1T1HF?z$!JiRfT9GSBYNtD{)(-Er?tAUv0sEwsw_DkTJ9XY&` zpuu-AmZgIx_l{X&(b=z8I=xpC<`pF%?v+U+r9E^_aoG`ORTSFON3ZYQj6EP+IZu4y zu5$N~!S*Kwu)$^eO>IHFP9a7O@?Wf@@zo@0a} zvJtWgdH6>5x%}7pJAZ-o7IZg$cvVB=4jp`TOA`#-Q98|}L6$_RsgqtVN-9#emKXn^ zcinC}43Z$>4fH@xjSobQg&&|jArhLT9)6%vpfP`8;6NwyJWPp;Fwawpa6gu^;MafmzBftvK*iwu13nt0oRQDDqqsC>>_GNGXg>vf72#3|y6@dl8wO!V$RDcp z34_3|AJi;2pamv8?FnGR3w-Pp2b-hon@n>jdLcwk`xc~6e~(3We4v~IwVrZ=UIW`T z;jJalC3l0>x&Qdde`}nWukP}S6XBT_Fp}+5?Nl_9p73$Nc+`yNkLOoSx_HVLR#elN zb(oD~Ga@O9u1A7@&N+peVE0XXp{O_E5&JBFNzA2FRl!%OsNg5hC(ozgr{EQ*=s7K{ ztDltoU08k7L_cid$ik7{u&Tm^BUOc=&CNFJMfQ-&cx6PUC~ZXF|J;!b<-++dE;M2I|qU)24H*z{$p{Jr5%CtlHQ(l4yk?W`;G?P9=6uYSOFM3nZM% z4UJMLmk}WuKB`zdm>X?EJ`0ca`$}FkcRzfclpeSoeg&M&`$x4#&%AX)W_49!SlSgY zPwlJy;QKTgyJOeX-{WqENn*?KGx z@>oDk@M)v4ETc=ktxt51$UkTbBeUkI0&aFV&L-f{ye~XOuM{6V=02hH<Z<)hHy4&!-dr% zs{M(kjc%Jc67fJz0a(PnU{>V!KCyJ8%EbF5R+OxA&v;&W26f-abl|)B0Q2lY4oZSM z!Tol~jStcC(@Hb!{k?Jp^7HQ|GlYqfO&HTjJNbc-3FzJ-736 zN$E-HQK(3L*RzoNZd7?YTC45J;DC$sXi_ObwnCB+QlU1^Wf>wGQb8uFP?0gNmbCI+ z@Vepi1Z75juY3BD$HO^a<*S(!`~;wL{PM8=qk45Vbue}C1QBIWjIEu~IHQ3* z5v`tlh-bhN`NC}sIJQb}M>ohwSUpUB`Zz6+GsyMY+y<{I?};mc4D}JOsjZu1BCOXi z0sTxLZ!n|itsBfY_T_K~y3aJngmJsi^w{sQ7b*+wc_8&Nb^07+a_M`8a}K?2p&vr&m)Yc;>D@4>dAH$ja#ttAA5$L2uE1G&V|EXdNud) zN}$_l&%&hj!e*<)Y)a6LdYX&UA8l4gl^6590-8((L^G!9r%KuTHpXycxT%fthm-`5 zbL7K3!#qzz4nccH!F}+rfLrgIzH#r|{r;Tdlq^*Nz1dIVGd`-~3ryrDlus`(jkE?Q zt;~+U)HA*A182|8&W~Wy#|a&H{zr4P-;I7bS_Y>VoLr;}>Hn^$lRJsagms7#ENfqkECS_Te;1?(Gl)^r0kzA_J- z@;h}FLjh?SCuz=N4t-MAocrv;k?~M`H(PAu=4&`XPEKqiH$?<&%}T+i)LE$!Tf#K47MO*`z-%`!q?F1~`ZDO9 zUE~6nda$1rw^MDahzW}AjtK(aI`CY*2Q!422fRD%Mbd*5m1M||Z9I5VO|QXIz_n(j zrkVvzXTjNv40s?ds+4W4T*AkUUqdV)N(yW&V{AVfqreO5{7HN7*jWq;dl9T@$D@_X zTsLiy=8HQoe5Tc6iM`Ac13D@@zmVoO`$$3fLJFw@PfJO)`GrWeje-s@brymvxs zdKyx$f{>r&5%}sddIT!H!Zp|21nHeo5EI(Vr*)z$FychdofI%sOjzP%7J~4^1FwY! zD2xugrZ7@?tpF|kS>6w~pX|j+_v)S98<@~*0uFH#1%n^uE@BJ*zNl>+n>%uaQcD?> zdh-GE-iPE0);kvp7D{h1QLUlBcOr6e5o`}4PPFnv&?Ke--Jg51^|EasG87)}> zfRYmAqA28uRv0034%K7vTs}8G81D8C5EcfxXai}3%LX`sw#G}^k z5>@+(ov`#pV(uoz-)w-rm-b3F8+`w&K7U2Zmpgz20Ima#D@pM zAr)b;H0r7^zv!OAE4)UbBGg79{)?FGHGw~bKlFU!`H;b(=Rd~krAY*M;JrnQo&+%2F}HJV1>QIpw&1h4g=a1j4BN^PoO zryg}oUvmJtGO`vv#t#E8${ASbHM$1wDU48nAd&UXIc>(c7?(c#vNFF$T? zeLk@IRk6k&=*f337xq?4kKB5y0WH(8EWhjlrjdQL12<4OV0K#=WF<1@AAUk-BK`xl z5QYfDQpA>mu^WkaKt6cag%`*NdS{986*-gbF8qt~;n#tm;H>Se1ylw3aGTT&L3ypc zcdLXu`^p-nbZP#P=^aP}S!6jbU)LmL`7Gw!sawptKywS6*-D}#_POC;aHv&Du+pw2 zOpf6ND+DLU##uA8d9|%r;q_vXi5_Gu3N}hX5+U3Ux}q+)YRVl-Pl0sAL+QzVr^7XA z@#)pHQLK}PCI}v58?2OLRgjd5n~?EH1ywfA1M=wSKaZ(;Z@fMq+x5PZ#EeooAM2@& zvClwhS#2Jj%e%y&P^C~H2cb3;`D`nNN)JlSNe?Oj^F#0KmYLUDfLW09=9{&GR^x?S zMlIq!JeR9VxQFuw=!0p2(rL|gTFDQm$Og8tln1#^tMcuQr98+TONHmPlHp^hldteu z+F+d&Oo3mW#k9y4$rh=E+ZGJM%dHh`nc2dEyt}zwxLx?WV=540ZDMV9Tj+u2irygH zx=0i(^v2<)Ht!2@jC_-^Bla1H0k%&CZhIX}YoFp<>t&qZJI_wRRv1@gb3&Up)P0*4 zF6p#*cVgA`a0r&f$`Q;-N!YMGr^DX5cBPl&^2W>UGSiBMMIG`IGE?&s;*3r0syOQD zEz3-C&=M?GEmo};SLpny;25qV8x2Re(?pXvZI> zyA{^ot`D1gO%#;8u|z+_>=tz-?HRbR`mn)NUd?xodEM@W9QVF7 z^8yr9^r71zt){=pUd`tnm&B9ydVUNf4=lAF0ZJwGs8JUuFL7`d3+E?w1L^hgK zN}1kh2R*f*33`glN)K>pA0hzfQBGD))>?U=_wexHrM(4v3v~Lv7wpadIdp3l)amK^ zApH`)xQl&AWlN9r>$-cT6t=;CO}1gF!MT8CB(@;m%jH?4de(c$>z~zCm4tbH1Cxz&q zxtJG_hr&taB!=rvAXk*X-emL?QvH}WuNqHm(hd6z$~|#2Zc4=qQld$6bqKKcw7;b) zf7N~S=T(0-d04szr2Qz0D6RlQ5U%U|0Jyd@cEk=Nwl}7L_gE_=m$wjwP(b0;D?=+oEM_sY0`{kxiU20v$4EthFNsN)Mu;LI?{-IBh6JN$1?hVAv zm==|re5!(w9<9v*M8N)G$AS;8C$?19tP2)WKb9rixqcd%CxDI5g*zASAXYH)_JP!R z&`&o{s!O4PBcg=ro0rL7twg3oc>6|8u-0MIMFM(FI%w&rAjQ@el+o6(M~qI0@LN;5 z6pHZ64$F@C%p|huR401r8-UDVz8x%M54Y(;18;rbUJ=n0R)PGB`}ogZb8Nlk9Jlpz z1W8yF79StETsV-J5YnZ#q|-i>5Yj$WPByk@Zh7pf0|f!Lo0Vao5_>>JW)z$kYZMj6 zq?4aYIW)c5z~-qjvD6eU4N3T<0+?RKikb};=DG7Ku1f5+r-Uci7>i~xEiuRV9zm{B zRl(#lS2ceT{&MdK*E4>-p603q`!uE!^RoTt{hN2)P!_DgC5|$1iboP_K3 z<_a=mXi-In41-{+Q<^dv*cwH=W_;*r=MGwPR6PM@Jdoz7TzCfMljxR?oqbD+ID)v} zkeyA~N^ra;guFMJ`Tp$2RI!(3_%* z2PuY1K!O)8R4i;pY(|_^8v?@7lZ;Si=B&8|7ei38!L{~seu=mn3|%ZlhuK$c-7s!c z$|!2+o}5M!@*>bkDmRfG?$Yr|SP)B^Zx`zJAteZRMH$1#Mt4m;+!Iry$NLFJk5S}s zuTiw;YhT<1q0)UFD?gQ1)jvXzADa~{jej)($-jFsi5(ai<kzll!`jRGu`E>(rBtR0g0J=!enIg0Vx3diI#|DyHN- z{-$S+7}LQTD_mhq+k1slaMye!b;jFUSP>0@^??`67KfH2;D7=SBQOp{>xOaSk!-NQ z+zFV69k)A14g+V3X@<&Bv(si;K-;rq7;j`lq7}psJGg-+QL8oG+Ryob7pb}N{#3V`Q`NXiAKF! z$^Y@%`X&B*I{!cCX9u#KuZtd#07UNwYs8SRC&jbcbkg?7b zr}B6Koc!P2c|r2=zs8?!DxTEic$7*&MalgMjg!sTsJxAeRL9LQoZ`pW@(xRF%*L~C ztH+8PQPJqagB?AE5;hkstl^lmVw&Pdlj zPPhZ0tDpZ53=9?@4=gAw`6=nEn5md4ogFe$F&Z*c|4efaTrMJ2>lpK>2SXt^8+!J= z;LsomCe=bSXwhpzqByh;*TEb*6DZ#r!vdEksAscWGdc-n&u{9V!UiKHVG$R9l{{xm zb4%UD)2s8CbMhOnPPoeDOrq;vU$6g#h}Uu#(oog12+E&bi-RBcA#GB9ho`6?jVJiH z8N;)?HcxJ1#6OQ`>bJQwHnP z*Y>y+zStu>7O~c<#z?6VV4HLBiP&Cx@|JX+fYZ_<|q(YhBU{L zMcKxZC9=r3o#x642j4!4yY6SI4hg+c_^M|o{5vwAE1$bDhpv0Ll?wi4z>%#ZJ5D=J z(AooNe~$rLPD!y<{UybQ{vCLIQ%PRZxYM|RBN z?OS#`)p1o?`jg*-6l??>0ry-yc##m$efP<-gmq`zQxC zI^f{pKHU9~dfVe1#r5jzRVc$VJuP*bCrwTU)h~Hq-D6tcD-yCgJxFPt$ZiLzn39I= zL89hNtRz?#d#-%Z_(AgLcsYs#ICfIcQ}~c^M=-Qf+lFup#KdXoBHK+n%9qPG2X~4c zg~}7gbleVCCRlZeJ0zFuS&A(Z()-<%N}!YXM}Xk9^RoEG*`S(Bo)nWJ+jJ*d){fWH zZ?x?AoSX!P#QHSJ3z}C1*UeoXfr&*BB?W3$hmfMr@GaGJlh|zhfccWpE;9)clsFKn zS~Cs0%<7AP^Wa8YDfQwf({Gx;DEwfm!%rTL^6}IOT5=Xj0cuis9a8hJ#jGT}Fu72q zyGGL<{H^o=B}X~EB^BO@-LjqIina|W029vCLSsu#nCG|=`Z|v88v9pKB)R(sq|J^t zJs@Xv-5rLUXs}ej=Ocr6E1zV?-t#Tzy&qhZY!{Q#V=&3&LJ&zp=r%#Xkl^_e_EAs-?%`V)Vgy2Whd}!3F?B zgW#@GZg~p#q5opQl@w2)>A!#Y!kLLK7?KLVGib=TxtqeN&e4)HYKEngs06Y6s``pa<{{gBzLg3_~#s|Rc3g;pc5vm~g=pWEhL;|wj8-9Lzb*RDRo$N;*$xbc@ z25Gh^Q-B(9GRZQpCH)u4aESbar)b~dCpk9g1OKFa3bN+{@-#(_bEgNH-x|@%?~!8H zkxEz5PWE{^A39z1pB^28Ix&0I$iGlUAPYVsVn;Drk}HuQp98>?hK_j-Cgq}*?1^|C z;*-_$@rO{D8|f&{+}-G8kM_I{cACIt{0}VaaO5d*9YWb4uj20s^6dU57cauUcU9%R z@mK5iKFHPYSmQeB{qKGX&oKq}j4DlftK0a~#K&N(En-8%aR;!w{dx9T0e1D=0sq|} z@_ph%=F7!?BXzD*a-Qi>)BZ0Y`>J8!KRhxBq*ON zz%1QsPYRdaZ4oE3S{ih|FC0k$Wm4G)C`SAR6!ojXSWgj()HZX2;)e!B2DttU&axAK z1WmdBdbNMQG8U#vJVA8?5+mfbYFL9(u>RkuQwY@BSep9O7t3ANDu0+GlwO@G8=T5? z)Zcbo#@xVF6R>0W4KNC{_~Ql)a}cy`{=)zwN%(6Io+|cF114@)&3e>uktDXr--*L^ zZ!_RE(rEnq?frY*KwLOEQBQC9L*Z-F=-oizw#vJ1>@&lFu?QIk9M>3oNtC&!SmGs} z=ZD{tq_-sdg8+^CgHv%EO9&sqNOSXxf8Se$i|1fBppeA#|2|Ni=)Yn4&NV;18! z9+L8@sBVGsQ;@fq2rAm_ebN&S2t^W7QdXgjgaCkdn{g-NSL+VadzpY`p6+fs;s1LR z{_iKCr2}zCvZdqh|4{al1(nAeBm#kizh(nmAHuHcj`XCuI4KOEz@yX7bmC4mvnLaf zJ(Xlh7w+uv8NmDHTtGf2g9O(_Em0D>jmwkV^OQvmqfB!ips-r&b>ppq9kZK-%EMW% zhL!G<@}9g3dmab?4!VT^?sG=BiGft8_bY$cz%^#|B?Sd+2EK0?0$1Dr_^eLh0G?S0 z8W$-5(&L)|pw{=jRU{pMEH@yxbTf**8oS72O}fKKdKS-k5kUr+%qqF2 z8h{J^oB%pQ1kQz`pOu%Bb4b^eJ#eWhP#$)5814e!G2wgz{q!^#syN2X7ll1okRHLy`I+LfkK_>?=|Jn#ws@ z#)bt?t&7d!@;O}QYEda>^}Of&ch^R7t$*J9KcB^YH-s3gD4xmD&t;d)l@}pud*`a{ zJFY+*bAm#`DvSKL?V+;)dlsKt;5R~UbS ziaab`nEBYX{sX=ny82e} zi-MEG2S5ar3ttrMz+LQs>t9w0RZsARzep=j|Av)&c#}N1&uI}0O@<#Jc@n6b`9Gpp21E;JdjDb!6araCKlm^A^#s0hS72z|nuaIWjfe5kZK_u-%MTkx}+35ZC2 zzuZVkJkpOzXUTWq!{Z6K7x@mn51C+jAA+=lnchmJAe)zG%h=l&zHSZDxrW3_Khny` zP|aV=BSXQJ-k-$Ptb!|@543)}6|!J-HOOpVfsj$4MmIP~PcdH$Jx{elqG9|^33Lp! zP?b@HMbog^(a^9C3fw`-a+Io&mlxT=3ZheW=3TcEmQCv!jjq5H+I=4-SpE$bBNihH z+y;D)0@n&X1@1ljd-hgXNA2`b(7uN}Pvb@Bb+5W++C4n;l#BGml_;;}hP&q&O zrr$C_J!+wUaIz23{V@0u4i@Q0(x_#Go>7`Xgz@MMc}Qpo*sOG4HInVV?kwXh+kK-` zGFukeuIzh8e!l5Y>Aq)V`$?lo=rq9ufc)5=mlTMY){sF4rT}o>xWQOcuEdon=hlU{ zH!mx;7{O;?<)NYv>(IN0nOC`|i0H|my)J~je_F>Rj7TZNwWncfkT!*rqM z{`=@^ykZGOqwi{Oby!Tcb+}an_9@k4kabW-pc7OLm=nX$rj#k=<9MV38}qy3iBBhu zNZb1$?4sn5Hahz@@_#~#42@mq zEK&{c`^Ng>PEP^-7cA|XJQ3D1>V?;+ zmv2rb`n`mSQR4E=H+Tdh%;NBXw_rv@;N@oro^b;$_*TuWDNVUq;lBJ1TnDZ%zb|Ps z@nc9y;g;FXjGG7?1f7c6D$pW6n<})ZmrLU5hGQo9kt4O*x$>turSxuA$M!@uiQ}D% z(Msj>;LFg?6DvP)%RLva%s~f^ha1*v;o_cb>2ab6g9sCVfgO5whH=L5j7Ap5{J#8; zZ4?d^E(C`?I;A?$Y6mCU+*c6Z7H;PERGrM2yjl@l5mNKnWp0ps=+%Q4d0ti!ujhgt z$3{=Qt*)p(=y}}hc1==sp7=$Qa4p_iSY2a`P2d?E>q63W3wtFp z_M}@^CcnuiS~^y^$U=+(YEdtX(mhZP56L;Bl9t4-1=i4Q`1A=pVa5WeIIL2=e6Ehy_JcCiFYNGW6=pU3!$hfcJ zVT?7FA&16d?nKB|#?iTfe|s-G+(Myu)5Jyfw-BRH?}mI4*onXD24Rj8hHN`9lW6JW z2L=k3h@|b{=2s7lYzVZsPS}BcC4D)70y)tUp;lm{044k_><&2U8vGixfg~la9Ps+J zLtejnZI_^FN{MWsGdcW36V*aNkuRA84#?DS#@$8|exqGA|2{Y|D{`#b-S(HDc?&nv zps)>megmZ_QHLU{+1T9O;Wm$EUV%BFyow8WGMfN5^s%geBepKKZY&G6;AyB_q9_Ko zhth`hOmv3aN2rd_%hbzMlG=KivZ1meXx|zSmA%FG5x>Alp<&8P0o(VM!M_y)EA*GR zU`nAB<4%J`V~-~PQZQsA_62ZMmYpY9jUpn%%4jhnM4T-KDttv$d5=m7qOXgU!&R|! z$g>l9Bf9)6j>!h5JZ#vo>-eovO5zX5hI*L}6@cqE<)mpdt~s!qf5R`w8Cz?5MXd~Z zRZPs)@swM6yf;4so>fb(op78<&O zt-P&yT9aQ@8AY)n8buK*8VYT1Sg2@kScYf@v}5Y`vJA4&haDapW`7%07n=Uh5Q;R$ zDy(5mD=>P>eaj_ z)DIeO)wy8b)?Hf8^Sboz#o*RgpmlsX4v|__WGH_GWn`h!6j*zDLZ6YV52lk4^>a^Jjx^53 zmXI8Y5Jg4h`CI0R=Wpp@A{_g73!3ePnO@kJ=V4x)2>Y^bHWqj%w_(~SLOFDIQ?RcF z)ge(!!Sd+x6dYm!fIwUzZnuTC1n(|I%dA4od?tG=k&lCqJ$7-DgHL!;B2yxBx0T2| z0uF%BGLP^<&&NKTGz=}I5GGBMo1rC?gxKLwv)JL-;b&XfJ7!P>iMv^h%j3@@m@osz z&~^t83RGhNtvF02gKkP2fR#f-%0H+#(v8!NpDOBnvJc7-Xe3$=IxYl5QA5%iY7Irz z71b530qTkdHP*0*!5LvtgZh8gMKL9cqL@NOQE0oN*F{5Q(usx!+(b0Q*4&Q;pn*4P zfeM6L+~Cnc^o*C6@x@K7QNDb96taAM1ml4(C6F08M?dC#Y}DSf=engJ{ob1F92?9z*9Wul3bA&kqp|4Lk{TU0vXHKn%pC zN;hYX!IK}uBLfUrpWKx7lJ)C-=S&0MC_%a0qs%hgWAK;_Wjj{rStmi?i4&}`h2HiZ z)G=C_Hv7R>MFmWiR0%b$HEZvgnq)lZrXYCbEyu>L2^E-=w5=kq63FLC?UB-ZPa^Ok zCle?qUxD!SU1Jl(g~ZWrkD@8QX~Ajxms*fA6Z@U(GuIc^IS7JHf%XAJ<96RW7Igtw zk>7bPaBivs7y2*39_^G^D-{$+1eBNeyx~6Idfo#~2C{yZTBK-S0bfQE2##40CCw7E zOi}bc{OVLtcu>*%TlTl?i{7LD|6b?H;|h3SqFbniS;)#WEAM~rC^Duew!sz1E2_b? zfJ$Xt0d^`6*kiO&74wOmid5FzZDeV};o+doZx;xN-kRtZnQL*e z_)-G)MxA81EqocSO({qlOCp#G#yG>2D-RPR)i2i=lfSGU5ewQ67bX4}egI!ULDFP| z7dnyg5nfTPZc<$mb%jTtJb*f-!3kIy8h=E5@)Mq9ci->4 z$ekneiJLm#52N1_Jp2f%(H2L|>0kn(*#te&k*c15R+>#7h+hCR6UCV;O^Yp8n%;+W zP&~Zjy4(bNgUoeg2tBXCPTE~jCfURIEw=d2^NoTJiYI9r6(*VI+|_1gAhLqRPyqIa zS|-G8d_A!g)X7-@g!pV^=!KrVIW?^+X}99T^_Fs zc$O7Jb4h)?&VL@9Yc8pSwD(WT$Aq3!V`)x6e}d^6299#rlyH=b3YjGo>6{lC)0IbG z?pA(|it0u|38)|st(c=?{ZUc0>EL*O1l!u;s5)8KcY)v~*xF|W6u&9c9KL}mgI7NA z=k*o&yp@)AH{x@F)lS73y_T@-!Wq3%lx@x7yugb3~j=VGP(?s$fYl_kLK1kcbnmVKJe2}&mmW4Ny_CS&V zM!0IqtJ(RN3bdTGNON>i0G!Q&BsMQ|-*9|KshWZ!=bPYiig<_c`|uAxLk>Cjjnn)W z1$#Qg7qPt!CeNkc30<23k;jPAC}uQ&$}~U}Ifr_-%hr*(%(u8#1Y4=48bq@9oF%6MuWA<*l|Umd znjF%jw(IrD7lE>-DOj3OZi{4jRwJM6$Qh+1hxQDngJ86fCkr?qv5j1==Wn zg>dRM8kR7KYCdYm667#?+t5-0+4SiN14SDO7K|zs{Y_usDVsllCV--zeJaYc=?Yy& znf~eg6g9nUTC;^nN>t_u=R+yi2g4%OJ8h8P-xvdCLO~2ZB;p%0jn#%yZDxHsX$TMP z5c)myT@hB%E5nMB>>6_t1N}LwrwbI0M`nwlEYqV<-Uk^pXa(vsq~iqDW=wyR41fWukdV|@=6&jkN&TSlcLim(s};)^^u8!G@6 zcf|LnZ37y1h*T4#0yzsS@}V>972IFYsfLaoIEn^N3x=|WYwP8vXpzn|K6Lb=Lkjtg z-iH(qPjrrTi1R{iTgiEP6wJ=-%NxcnodSwJ1bfu%hQy#K7s#T!YIRk$`b(RRJ?kx z#&r`mpEP*ng&jYtH!8iw@FMKEO;5N@3Ac9)ix#aQC2OcgC~fn><|8xD1rmc9gQ=Uy zniwM~Y$)u=%HRdv;pGhAn^f~`L6lW{jtgXT3UBTmY4P`lm0R=|_C5;THvOdL{&01Q ztlY(aqoQsKFt~(o3|PXySZ}~LKuhWupj{ww@%yn8y!WE7+xybgj83|H+H6aL2(XvW z;zTc>wn1w?s1Q)kr_Pl+C)LIpsU@rkJJAl+dEmb6^LcP-;r%n#o({bZWE*=Na|Poa zJEtO{BB4B|sNj^s$4k)d0Qq=;i^Y72w(ZBCbJl;2*<*&qDk!D#841^w9REhB3POraW654f0R z56LO<0jvRHm&F`bIeR#JxRqZSmi-^<-a9PHqZG-Lz=NKQ&{kt{hU z0YL;@f&vPthgUt$n)NnPKJ$ z-Cf;PchwzUomzI*(yy#hrCn-Z)gqXcrHs~`@3N+lrZ@$gVo!o&`{l$M2=2@9?t~L? z$yM?lB0+i#Sc6xWdE~3PVuxxqYqcF}08$yBQ5csivpj_5Ui5yFJcX|Lh9E(76|PxF z*eRuYiap>DZu7&3Zou7wQj*^$*b0q^O_*e1Im(5UkW6MTEJsmdKJ_tozOg4p~dL?)z`2E_%S}N52>#Y-O z$yZWm@dVFTDvt~pL@IVay!_#n(oLg9Xw0eYg$9{F*#h+<*(8}V9FvjMt2K4lJ_g%IC0zEAjq-E4D%l|Lk| z)Tk7q2A+d>aJbTkwBz(5CMGezcgJL%PcIhQvXn@BMkq*4cRD>N>~x$3 zSL*Mqh)D4^poF+R%_MqAls8d@9DJqRHMmGCcsNS;le)P0|xaHuDJ{!rT8vQaJ3yJ>&q=H-YMj|>Ooink4X zgy4G%Li4hBjreXw6Rjw%tGS}ZX(sljgNM=viUl%^A4)th-Q%KVIc3fie?2)6NR4cY z12R>QWEBV8$|`C$2`Mvc^ z2Hbb#qbVtdb-;y7;VKx`lWdrfy#V>)Kli< z@H(N)u#AE=+XA$owu`-qlYji(PGnRNtv-}io>Od^hXPU3^-Z)?H!g}6`+w;g)e=vu z;BV9iup&R)<)Zx1;D`E5#Z=A4<9`%Wc{~8{*1?IaWG|(t9jt8+4`4Mh6HJL7DL=rtYnbGV?%>4AmPGwyS-7u* zTZm$$a;UuKl8?3PHDItTuOX%NR^&1m@elS7vJbKk4jAzdavTX5azI3vRRb0-tY+{w zV{xqU9%cGlRRa`|N+U=WcA!y)^!|m62ceVEJ{w{ zOye}wP2(PR;2P zohMR2I<@r<=m`oXyUMuAr0CXgB0DIvFiWb|~15Wi-Kg!f3KL zN*bkufD8hV4kAi_fARh^>b8jcjyj0bSW<{1g;A6vjX{sPn4*riju(r5;;p?A2mv}) zkk~oU?NQ=xSGt-RZ8}~cfV-{;UAjXsDH%F;@_h2k#d8GJPkcLxQ+(f&cCP+`_W0Pc%_=OJ@LZ>E4?D>G2Q%cgCj!050aXBXRp670g%fRC5*?}7lI~0 z1zxk|w&i*WwyYqJaF_U{_%Wn51i^-)y{3bd2P6~Vg19avUx1a+E_0&X%R@3?%+hH? zl*xSCh(8(89s_tCEs9}5d>mUIgYt016vmrxu&V;538eJ~L1lmvL|RXZ-=GDQAW|0; zwhJf7K*+DpIW=6~&nLO88ajq$mw0P%iTQV$iIScPEX_m{#9sz&zk_vR>)JT+609Gf z%=kqtmt63U^v<#V)xwlY{NkTybCCFUq0T>hM;t9h??gAK+o>zQ6O5!GlYFML|2i3O z^hL7IWQ!cDyPq*l3NBDCK=}^pcl#sBA}QYqUI0e13*tDtj!eizmuMloEOXV=?sTS1 zB4@0yULZ@ik2H@#R_uWo*4h@lgSb?BW-OyiqOi+mub}W7VJLA>;{=!9EWN>r#0oAg z$5JkJK`H4(zPVi;(-_zoX3^f>G4rUs-SCkil)6yscIKSOQPb^kex0N4y!cx4wYu{{ zc7J!2T&CV$JqkB!H>nhAH<2-sF(}_c{gyqJJyztc@Im%i;e!&r61~C)Wlb}jxWv>) zqec_ciZhIZ90$chN9+PKEHyk}Vw}ciKE*Vc?n=o`Gq?sB7Y>kj{{JNLl2UL8H647y#ty0TH)P>KvSE&~4CN{Gqr$+@#f911nrs z-_?<3C5PP=Lnky(Xs*;4JfYPsep8%#*mYPMWh?hyN*;kc6mAkIt9r2S!CG$9^Bfr4PngJ^Rl*tczt zKCXsM9KRhH37j&Mx&{+{`5_fa66%dRgDtcdFjzr5fDRbLVvn}R#bW74uz=ewJ_xr( zk+<7D9K7nZPiD9NED#}>1?JpWzH zQZJIjVpd)0CiNoQB$+pvo%%sC9x@s-#r-@il##pC6!-6fos_Zi!F-x_7G=Q&GPL{J zA=^(TNX0^KKR7A-ij0G_HyeQc8f?-I8K6cB>Wl*^pK7s2aghFd9)n_+u_j@cH}Z+2 z;?i8wTt&_;;UJ_k{1HeCRz3=EoN1gPl~6-pB$ba05uG5EIVWy4epIG zQDG%gRVO-;+CnNz8!0Nqn?<0gOff}8D*rcy)hjI%HJSh_7jzfCe@GVTUQkz{xhMkK zp=seJK{v?wdfLPXdZo2K>Xk_2JoM06d(@|BDTy=!YKaYHMsSo z^tI@5?DVEE%}0UH5k-rk9N`>kqzGQC9uMvbl#T`P0oNhxjJjZyU;}s^*_3zhc6ROS zfH=h|F4&I$-jJj1c;e{H#q_fEi4guG{$elHU8X3l-Y!#Bs8vnrROwKOYEy~x66fhm z&HN?KoB6YS5Po3BDH<1tTJuG{3Wjyj>`S@jG84;DJzFb&VSVoLao+*5gJO@C( zi6Z24@~TlK)J<8fjyyTJTJBVekaJF@A-VT!Q0%D}wZfcleyOpUh1diFM^URlIJac* z-qU7Q5byV)-b+iNJZBzI2OPtG;5|qFb2X8hB2s|E6@2%a?Wq6=WyN5jKx^B>uJx6n`|LSPX z!E}?UT2T#*A<&ZUX85$U6P23p{0?l0C$R?8bKD2i9Bwd{4Xyu>i<0m3FB2bx9+^8? znhIHXoN7W4``~yq~c;bR{JM-jglXv?1(5+kCDzva<#_`P|AlL28f0A4y^>B)Zq+4PZE?bXb<4Z5 z+S`vg2$BnueVf^$<7`|8V#ULOLp8GfokQItbhjjcE5MCvSzK9M`5*ue-KYa|Z{^-X z32+-b6PFGOAEcK{8!-(qJCX(=;%4$Qo2FMAr(7fmPzDkPECUhQ4Pn_QySAX-{=V92 zD9bubBg z5$2_K9~UMX)F;W>rmPiDMFO$B6v@BZK(t<~Vg%~9`i3cB7U_kx9iTR}8WA@wyLGbW zS%m1o7Dg!ZzBC*7_Vsiz)Fb%x5uOGfI4L`SMm6L-Lau!@v;cvF0dWAG?2ln} zz~Y6hU1)gC0|fvg0YEeWs6=LH-!~6l&jO)t2m-0LfQW{0Z%dF<+4^q%mne zhxv+NgA6-j@D(9839ycbZz3nii#$%iu-wM2B7>|@ryc=Zv{}&31D=;O`Pk2c(<_0+6043$q=9Les2Qtr`d+t zhTQ>Iw}mU&4eHkUP|Ep6H^>IiF79c}EV~tbaby+NGl;q;de-?n?RSRr8H{(-@y?K~ zoi65};qb!s?5ti!CmO@{(5zmv(5zTS4YDIcmQY)Efh89w@hThY?4?APL=CyYrxH%m z%0LgB2nnDQIj@hnJGwin;u*K|zMcG`6p{N_Y+hA$GjFRdBRFJaU_6Gu-|LxwcH=Be+eeDW?s(( z`<^tPR1%GwG;a(9H9xwp4pC}DfCHE5c1oaOZ<6CReb))e2H=CdlQW0?AWMf5v-QR~ zMI}6Z2pNo@uv%Zr)bd&K`EJYGklt|Xx6~`q6F)bNtr(O`MNY{#Q98Fo`|ZD}sE1aS zm*_X?TB5DVkZJ0-HkXW~$!FP5wN5om)o08^dJ!yEQDmpUeww-gc2{Mg zpKQFlH3~KE^0H{t6+9E9M#}wDeG+pLb8>xhZL>xZsB{k=gWB)f)7sPW-;dY+=|2AM zuhCzHKMdM3Blb<(ex7<4Qu5U3cHBj1z7HAuSe#;e65CpuWvY(#ONA87#a-lkUo%E; z_g;Vw^OCiUfy6`CJudWwfqM6chjS&<=Vd=; z!?Je!O!y$!onVFAyjp=ed)x4Q?MG7RgR?F{$dZkDX#`~9)_xF?;$@JrPE!!q{YZR( zNIJ}38L|eu6MQT39+rB(e|Z!0UV6ToeiU56iy|1Dt=#_+>!ANiNZiI>`%uQ3-_qpg zu2jo2O`&*zhb8H1qI<8r6L&|nJup&S^PmUW9fO1dWB&r$XArd8^opo`qU>}_X5{46 z-FG$LC5KX>b*CeD3Saog+tVE`0OSSWMBgm8?uBoe6_|x3VKK^kuMLON2Ked zGeN)h+kr|X?{HNIA>H$Ty}TB={wv|J0*v?bH&Cw6lAlwYH}sxNIx2JM*NR~7Xdj(N^Xc14y3gq2|s&G`p({w zsF-~Fcbw{CNLc%j@C96N)UhdGu8OnJD9fBMSP}k`^1VO8xs71?MdEu#gryUQMNfu| z(E$*F?!Q2OqU06~u~Hqu3{}+h(O1+@G~|tJHO_^oeir#f_xObM`|{5S1*XsjjAW11 zq@OW-CZDekS+)JaySfF`Lzk%Lqm&lZ*EY6y!Xiiy=B<-lb@t@&=PyY9xnci#Ucc|) zl`e``QT{`>sjA;?rC|yX;m1l1p6P{?^(y=~oY==sR_3Rs)hQ(#$O?8{2z(u6%L`{~sRZ|8izF zto~XZN()9iyDw2S2Aq-7U+O<@wXb~F#FhFcqODIwUA5I@xwm<}xb>d$q<>%C>jwfL za##=S-HW7?$pP`OIF-vxWUUyUFHsribFxKZpUwipn>eEFCMY{MuhcNS_SuJqN4@u1 zm{{z910iddY+Sa+P|2;1QoP3yKATZQgN_us_^yf37AF-GyrOzOuW6jgBeu57qFNJ) zFeZYItktxWBgtDu;qUn!U&?r8)y*HQOnuqE7E_6G(`^=oBL9T)>+l@&sHk(EP5noP ztwYY_>>Eb895!O?Xz{BTmg8SWRQT^BHJ>u5~kt8jA--x(yY;r+Sndv%Nw;r&I zszN;Xe`FaVc6+Nwk~NBq-?KYJXW5r^Y7*P&6V#9#Ur_O1LL*3k=p0)+Cw@cm#U;stNzc%m4RH ziF|~_5F7^}vq&Hp3TM9FE=ZKJS&!svy$*=cbxNnm$pubJB=Ttak&neuFkoaw%@9L+ zeb(r2vp=8De^Gq84Kgj-drjtUqQM8@FKpkjIL|3hl#~VVL-_%KAL6V36XeoIs*q^a z4!(u!8#)(6u;+^f%>Spwe|*=zxEl=}#D%pDw~wdh?m#y2=`VHbB<@=C8V1WNWnC@< zQvvlh<(cBBk>rG=gd6Mr^>mWJ;1ns7&-skellZd!%UWxo#hd?4-n(~N;WH8sByaTX zIESg@o~hTe1dv9;+8rdToAsgAN6K!93l8*c)?-(Pu5kP5s?elfRf>-y61#V;qhXbe zUym)+zXSQG{_ZHi1rxCUuYK+W>3ArHq~y6r9k-9pQy{EC+%;H(29HGIU-El$Ia`3G zaiCRU3EICTNDV?)gM^{%AxM$&n5YN4{ErF{L_e_FJaz6ql0rHVs(5)2=22LrHi^;&BpiS$KVZ?g%s#Cn3i>vg!*{mTij~%X( zQUePRsSv+cakuH(2dMu2P&~}`ar5?vo5%saco?+eo$)$S3lx5pI9Ob7natG)g=+vQr!=Yz!R6ZBS-G=cxF1! z?W3J*LK@n?8-fwKb24a*3ts5Wg~9GohqH>2#NJH$!eOgBCyP=6%&(r_tTd#`Lb34q zQ?VUz0_>c0_*VSB z&SMv2Bu^Z+4mGkgva}90n=-OAo6-r@ftJRR!j^*D<}~7zX>u@CCRl2f71a~0E$Y(H z=?KI5bztXb!P|b>UM5W@?F9TP=YS@j;9@D8%*enfk!@tD!KJ}vWT_LX!KD+bwoJB6 z6KcU*>RJQ2>VSwl*o(A?El2BKl_iNOs|wTMbS7BGGbox$I51@i^zH_pZd?MV=gq(} z{`;^R+N=KIW{5Lq6Z2|JY~ibWKM2fdj6;LcuKi_fAvO`Uztmz9h%I9}Uj-AYx58rz zzxD)&lA9twX~(D@2b@{gE20Zntei<7Ou>?gWeNvC62_OJ0nTI2F9vvZFFKDNcn|(l zs<;%CBaR+eJyW6$Pw@G~SxBc>tekqD> zq$MH4yRgFiVOougXQOU)w1mThB@I{F>dT4_58#IRPhDQ2d7wU072?b{MWfO&3%3v& zXc_p`nO6Z@4{qaHqbiwnCb?0gqMqBD$%6Y`=|hJivx%F6x~%M9is0^fP}nqzX9|t| zXSHlo@KW^rU`m`=qej61tTK-A7Tw$g#Dg$Z8kG$>DI< z_YU&0J<+TJCt3m@TTfOs2i!gm$8HO_*>KklkKK>MZob*B2kf@!c0XWesQT*4Ya3T} z%|eTMG8}K(DHcnAIAs}brE1Eu;kp4j$CH>M+A4`aVP@7Ppn>|!ojEDCPi&vS`uKq` z3!rTn#mZ+dUX;vxG$h%Q)*JI+wfAV~X=FF?1y4Prb+Q^nHqwa-0RlxIRVna6VY*TT?-=k9Ij(0pN( zXBlsF39d3-@PtJ|Y+=vn>vubz$5vzZ>cCJ~Ods32LFh;x z@E;IN(-G?uRTaH%9Be*kK4%>K2c%9y$LWt1g_RCr4i^h6-nUk@2F*1liP-GMZd5zm zFO)zqW#6SZ5hD>JND`KsDpGI|Weq%W@^T)X3R@5rN{ERPVR}*^OiYg7jM6%tx?v6s zQNYUl92J%PhO#ci!Y5uYF{4>h|5yLnM&SBYCtcV%)!|@Y0^u~uVqY@KI_z@T#VE^#^W^vC(GMyg zRF+4#pxjc~j;oKWQCX|>*<}q>qv1Mjf@>SWJ4)S`_>axg#NAK>>3TB%<(c5e?_2Qk zufM|nY8h$$+s@6F@Z7x)H-sDFmelFyoQiq9OUNMwAFe*tv6v{a@G(&u$|v?jN$o-7 z{Pz3~!gC(HD4qwO3j#d?&dNDa7K!%WUgkun*GE6$c4ESHhzs*9!8@wTAmMx&%p=T$ zI8~e~jY~|+o9CNpo29a)vT2)_vrf9u!MBOx*&H5Erg8dhtD-f@Qn1K3H}miqnLb2mVfF3T^2VikzJ)tjtgzPEnw zy@H3#tyk9K>_T4VeOXo6aSs1j8LKmQ?(3~fT>MfuTHf@GzNvDma(wq=lQEe2XG|Nu z4gYxmM(o~RP7TIFkOQ%&($gGLm(cTe{$^HhmT`J5%}sO!%Dn?}aNt20mb_JZxvZIM zpMa&MYQpdA%nXKoz4!3CcBVA&I@fK_DDKixz9a0j?$Cy4X;4ANcsw zLt&zl%=A&ywN!`c3pm>o>~+5@q37;u@$PV1}RNOEUxEOM3<7t90sgYG~;k zVi3JWn$QozozL(pzUnMIEQ>sjKHu| zEy+{R`WSo$cif0?r+(zvdYmtw$h5Nc1@8es1nOGr)~A$w{CvXdTZwjSl}?diUSVEf z{y6y5Cv5jh$Crg4j^X)W5ivg2!sf`HN6o02bv2J#nxpe3K zg15ODkGvCo<}et3*e}i}Kwq}M&eWm(Jh4#`jyQhE!S$M9HTbnkKm2(UwJOWB&US?(9 z&nW0-(f)=;au$AR z9Xu;9*?es12V}ZleOhzu>5N1xc7ZW)qox^E)#D^LmfCocg%TMz?oOEYrxTVWvQ0-X z*V+?Y{BUfeu^aZ|9km-_9Z`O`@s5lQA1WSooOMSn3u@3D(iuozqvA#Oyn*EHxz>it zLpsEZs8K)6mp|t97)?*fLSlFYBO+isgGu+_8StzcGyy@P!K;mAF(M=;(H7Z|vK?;{j43Np${lzzJG5VO;+ z$f(Hl(>^_hDMr7e{LREC;O3q_>bH+a=kb^M@1JVHX!-ZcJi(z;hNs+gw>TQFzE7~- z01Q zUj3rU-}npC=rG?@QTxodKM0r;bd#gGDbPbr&KHQ)w_UNG3L$*7nrmy#y!ibK=a@|C z%aX|W-Xz2aK_w4HigU^f5X@$^VC8vf!Rj?URC!5APt{<=08bpHAwkv+L>8W-d<#BG z3e_U@l!6rFeqQE_yag#2`KtR3;0GqYl%sAp(eUWtJ(YJVI|mDM-l@FFSr}ayeUpP~ zRKC;aSmNFZ66W6Vk5Y>=3RiuXuU7ajU;O}8+cj=B7QF(Ix4mzBFSjo+Jf=nMPl9_|VAVhAHr*y;&i0;-8 zt{<_*U3!!MbokV85dXg83SA$CR{B-rK9JbiL!B!nGAj5UE<#nA(gDsNh4AEOyK&Hw z$dkx=uSdp$)onBpv$_pAnWGNqvoespSrmbKB5H&qqc+w_eUQy;EoHs|z23XgK*R)1i3Ar80?cgl&F7o3xr%*PqUIc33tN6TCK1&z zSxw&Y_UGZnb^kziOR(h<**?Q*D&qv!0_f)=}d#Cd0*|}%#Dhs2Zp4pGC zSNT@ikG^N|t@29$x`WP>Uff+&8gDS z%c-OOM7@_2*YQL>wqxnZ(vw&ishcoXKQ?`ATDkD`ujcjUzwI`*H@^H`;TU$|A{^W; zOq{pdG|oho_IaX<-glskQ>dOUhN^{dCc^+nhk8;vjMf;4U>p>F7zbgMkAi+a2d*2w zuD8pN{#1W=1kE}z3*l(iX@5_NZoS%jj@%qgSn$plAs6|Q&yNP{1}&_#ZaC$A!#lU( zl#d@=uO~+xgEbKzY60jpX_}WYYu72zgKyb)OtTGi*PX>S&By&R^qg1rEsjLT9?*Mc zk`D?i^qHw5R2PUa9S?>d@reVgefVLduKcK}8?`sE25Y11hB1Ky=`F`T%l{}aF#F5* zB$4d@jG(hRl3l+Y3{R1j&>H-g0>f#=2y`Sn`@)|wChU{#n*q;2(x6~K-wZ(sYxJbu zRg$pOSBg$rC~y&-qel%;n;AP13*fMj+}IvfCn;DybiTncyHx1q;k2QTV@mo&>;Vmy z0@USEcgGGP%$XsAR5l&L4@iEu{@jG+HvW3-ZNsmpjbD%0NjDyQdMzUR$JHNKw}D({ zow`A*LQpHYC~MT&ogkn3I72%@X>*V``x6`ut*uEyy(uB!YeDZ6EqbUfrrFd8>S+zi z3f;OYyjQ}KK~^aJX7x{tzo4lU9rp=tSGt6L2D*hOPFFRETBjjrNIa3bK{ToA`%VP9 z(RtJg8(aB>?+V`)y%YUg__N7hFr{67+~2Z~d-sK7QSEB*6p6f4%;1lhg+9HlOato{ zYoaxSAcG*RUx3PfZ2|~een4;dZaqN!JTvZJ{#dtmW=s;z?^r>T50gF0op$7S9H_Id zoeOL?g^wHuUL`Y3OPqyXh;*Uw!^P{7aR37ljsfjx-$CZ5=I4*x2|Uj@U!eIcvNzFc zd#*9T?(~gx!67T~tKHwHqJuOr?|V>NwJhgq!%l&6?j3z^p?I4~oJNw$nOrn0*e=342=OJw(Din7LZ=~KC3Kyo|wjTyREmq;XWaM(d+@0#QO zlFe{{k^$ZpRLY~c=u^XXdZ23h4GfteZ8YW- zb`7xl7=+U{(B_dcM-60Zw3agQ61O=c^)^G?S&4y}ktdPoN*r5P4DP){`?>aW-Brul zDa?nHiz1oHn4LWiv+0s8Yo^>xxtW?Q^f-Zy?QBmZ$c@+C_w8jIPuGx{M2hNXNDkns z83HZ~(mR>ykXbOM-p4MEUqsh5K$0+uZ4d3*9xhs;p?(x3k`5VD_SdhSCritQn!ee$I**Ublu6=m*M3wd~Met z(=`?b76ztk(w*HDgBygoR6o7P4EQS%u;hu&xp5w%=L-L6WO5bDG~30 zV7(@#CZ)U-+n7x4^^X3o(5?{sSBwGvGqK9Z5Uv4vX*X>@AbZ(isd(*E{;Bgw9IjrI%t zvcwB|g%gPfTy`uUu%EpGJde%0E^+XH$z{2R6TFb3-X`U7{*26wvYgI%Wqc97&q3F* z-Jx!1^7QnwPoUx+zQ$aeC%z#sRadgsM!uVya+-2hftYd@i(4?7rZ4Gl7JHhu+_yVj zdFV`pcpG}bwE4ZA{+Wotyw1{)?)9C#`Q6P6ljb4eJoGCdx%9aplVpiMRp01h zwlQ77(o8}oSc=!=SvY$x_?1TxE`^c)K&lr>K==Y{@Rlu=b?{7IU3*g z`{-+a>$nzby8|D|Pi>U${IMYR*Uq0;j?eG<+VyMW?{HG%Q-yejcxE6|<7yXkmja~% zB{NntckPamT@MYx6SI7tO1jwmGGV&9*oF1aKAS%k&tJ9IvMva`Z-`GhKXi+;v z=a=?!iicjCb9`ifujy^*wS)?%1{q>j6VSFk@eM2=`3|Ev&)0vZ;`lune=&Zt|H=O0)A$dZi=5}N>EZ+DDuuJmBo6p&WG1O%aozY>8gDsod@OE~##?q0 zcR}`o>?D;0?gCzd##qi6FF_5pj06n@R}`ZGxg^eBgF!uc^U*g;cR3fv8|kYB$tjQe z?FP6c_1_2wJTFsR<_XLw_BlGFxI8{H@%rI8^V@HEY$je;*Nt%Q#2yp$x^+*SFtxA(S!z z_2>;)GR1e|L3H|*+g+0}iD}vNh(32}t z(7|*-7a5IB4%o9fL8nh9Oh%d*I)uq&UC|6-|Gulq|C=1mNxpG-Ix{D3oyb!Toe}Fk z6hdzTv%*3De6v?t8}u+q=F&&s*_(C0s(ks7Y9L?ZoMRz+Krs2jli_Qe*Z)`?GKMBx zctYvo12ExEP;yYp7W=9vkY87i)nJT0jN?Mj2kX0iF7Zy0F7Xa5oseKZ*Wt2;A`Hge zF^XLWp*$Fa1}Ujjpj33o#Sg0u(Yg-FQE;I#xu7AqbPk@6jWae#6VrR)!8kPFiMO1w zhr`skbZzNcEIgY=$A{<6yo9mo3s2-&+kqP~YK3a|oM5QB!(eUEm^(24>P$SEMPPUq zM7L<%!y9*q;+4t#$92MIxBH18IW@-N#ZzSa7-Of7}O)*7j%>-Ig#bt8(6F&y^vf?l`D?w;P0PVG-kt1qm6T9^!<&uPjQ8KuT)td`Hr zOT)|}%A(86yZ;ssBM(`$(bFn#rl*w>dzPY=j!{OoRH^x6uv;23Tz@E46oCQeCvw86 z4hD5NL=r@vcASEV942#Fi6Pi=3k*FaNH)#S0>czx-bMD6OvVqfLdNkkT^C4$YgjZ!w=X z5Ap3`{uy4Ye~8aL&Dc~_%sst8)7bP`38#20eK|cf;FSurC|0tXmf4LjSx7bB$vD|? zcw+gIMWm(5%rk}qjW$Z+Y7z}aT>;G(Pd?y!5NkbVrlVloJ=%58;kk@_fVck#E=A>4 zid9O*!$H2QltI24z#JXqr|hdisq6>b=#>GNC4dZ59hCU!Ja=|QA5@=<>Qf0Iws>ZZ~WkrNUo<^6++UPmx zIq1SUjCL_lqlE=pVKBF-mawA(mK-1B48_Lj(bD7xQP6RRbsXC^n*% z3X+kJFRmMRy#AY_vLmev`jx^_%kH~`hJm2_aVE$u5yBX5Fb`*r3vmXJ6JuuF0Q)P8<0Xm@gVF+b3g85=0! z1yb}IC!U??zxxa;QQZ%#2{?WWtSxGOw9@21U4Od%nd{da00#ZO6LD1!;?vo#un)s( zN+ea}s(PHKVNRUqzs0$P?|w>Fm~xn+eqc>p&B*Zg(Y)KieiLyk+QFgI`^ved`K|1% z0&7*br6r|)B@AOw*Otka$>wdv#D-iRZEK&|`j75|6M)D3QnCFILux`6;fn7s13gy$ zn3=vfc+};#;_bHEgr{duS!TCEt47Y%^?R7;aQ3ajLuUrgOlhmTp012?wW+)XrJL8Q zwJ%AZa^EOTD0K`d>C1(ToasKTkrw>1{$osRg=)!8be)nEcPL%a_)_34KSp(_RzB*$>Z{dhwM;2}{*k4AjXI4w zaE7D-`PdROg4i``9uM5wvinoOEZ<-Mz=sh>nFGrntF7`)=m-9xX6tD4=I-R>xxa$%ZRv^51?33tIv*uHll}v|r&tC4K8#;zv494ghcUTZ zM&ItKKidr@-95ArLghqtMQx3hWtkU%9x}i|k(bkb6dV*a;Q7>;K!}9AoF_Jg6=o!8 zhsu&?qg92;OAOFlXLHXR+^H`D3TkLkBhUV=g|c_&`54rY2?8|7c>s1K$Kl#&3ji(T0z(fFTw+`ZF>1YrrfK+N}>GmisxAc(T0YO zucOPhhE3Twa?7;rWN?)gU=pyH)9O=`u>Db|;78#WRyt zlU1`dvF$YQ<(!Bp`u+?-_xD-tDjQy-nXvb6pSojt$11v1_sQ@CYQB#&^bdCYW9?-sptm z=*H3Q;_ZBy1#o+xEfoxAHkYm%FO{wu!qpZ1x)xE?D}TpBg@TWK_nOFdO#Xq^ z!ZZDz-vqS@}sY{^pXu%+TNLSEM8v zIl&r(`6iIT9B&^hQ^+~N$by4=NSz}LQVgB#=ZYT}@RqX0A%h|&^gCC= z2``wVAr-9nRV>h>s#w(rBJpup#TyL?$IQ`Dxpyd zEUqN163dt9=}snR1mjZ2P-Vh(BwSZDGQ|JKJB1m6yc>~s$^n^$*pQnFd8Y!vVg#n6 z+6}NO`5;ReGB5eisOXF&f2su|8EPyaEIC+H6q;bu{kf+CnW?lTL;5_BX9uA^SvR>e zI)qV!gag$k0YZ^)Ww}?c>K3wpF@U>8ad-Lni3f)~l^!TTsi?*Cf=3|f14y!Fwe}Y{ z6w0|LBrqDJLM!55^?$=ZGrau1j}808SldHWRiT~AQrBTx z0+88*C4pYr>ez>XHWTP&nTov+_^2+|-2gKCjgJD@nH0cCd!G3}4_CmZq*wP~N@{;u zrLfWWgBie54kVbF%DR(oK`FT3VO9;~wt>=yjRc)I;9NPACXoiPP2@;>Aj3rTnCk?oOPviNq!#!TuDOs5pv0=jO}1L;W*3dz`p1#Q6B0j#dVCgUgF zB?Qg+kEcgo3jh+gl+7@_ z?+$o#OIfhoJ{8*n-)w^AsoUU_aw(IYkaPjOfK|Vbn{Q16Krr{ifTC5vpno{zrZ3|F z=pVunj|{s3^bf=TknoHrhn+z2iLO8&^8}C{25uy&K0p%14jn)`5UIXbHFOi8`10&~ zo;kidJb?v!>{Ul08W)-X)z~Ens73}N!=xwbbgfkiGXV2Is(d^PV2u#C!m44tA+V6U zAtaF|f!*{1)Zak;y#(wIAZ{*|BK>#vet)X*Zdj#2-1GWp!7CgJ`?m4{g8F%2Gn0(s(Zf<@ElRX;|g0 zc{N?Px^4$SAM1sgs{tH|t5aelPgNE5QFD_cagA$Q zmLu*`FWYX%a4qgnfz`7a$HBbjwW+4-A=rX4pa`_=9*{xST(Nfk({@!39&56 zTzwx2s;lusp~-n$Vc~M1^HK25#t1|lWdR>sE{xI7z2BW+;F|gWzbz1Vc!=ve;9N^& zOO(PcdZxmW;+cYl1LPFt6b&^%@NKzOxcQs@OM>2Eaa z>9TGRsn+fc>5Ow3y2xb5Lv#?I;?ur&I-2k!hR)Y72bt*#-pzs>CZtoniP8AUgvo`8 zVy8McU^fIjf7w6*c!=}@umPH>!r^bG3g4L4dwS&g4DECp9P!hs=toizcUFrS&*`48 ze)QPiti5uTuJ7wlcwbRWkd4URcAL863YAZCW(lqdkrm>aQW3;s=!YCs7wvTpeQrk( zz4w=~7qHif3YDjg&R3p3{oLq$De3RwYn-qDQDg0QXsXN$s1kqwJyc4~&KjpTgfxPO z**DNvlHP&fNuUKBUZ1{A^_=um*z0pZ0w@NDphch zl>GR9(%f9~v1eW;gvcQx_3eN9 zbjpF6y_cqn&}Y_iL{P6l9q|9J0z#tU^{M;mN0`>9(TC*_TcQAWX%tajfE)Y6WG13K zFfI=;-h$p1SSRpF;K2AAfv407>jbG5Z%(^bGMVJ$bGKlh zFtX#$w`LzUmWDp+*+Z26RqzihMjD^ zUhKAYQGhkli#-Z_%}WYgN!zpAv!8o+o)5v%fB(PT_;+vqzp4~8(Rduv*?zhf{jWdR zHut<5CawU(wKe@;z3QLd|Idpfa~xA#G7iNe}(#wO=$`$!bfk`={p) zzyCw7d7@6PPKjZH0OPV)i5k+^6)VyG(|KCOFTRA~j?sGlGdBPEW)~xYZ4*PsZPRTR zLkFV+hW4a6qv(G+xuNdx>$z@=L4qYyKg?%eEXRFOqDFE@3kj)>l??qD^-x;xa}Z*O zCZzMJd4c5L=a#Orbh6PbCw3a7 zQyWRglKo~?sO97Rt-awrb307oxHd{7EY6S=ZFtRZNoh0pMwhrU@3q(iHbM zI1>pzcL&@FIT9sr6{|@AppaaN-J!SM0)E-n^Ae@i^jdfXik!F+f8>LI` zlHoSjl>SJ_NZEA1)U9|;AhOjn!C-!W1pX~qa6>ABq28ylw(nJP zmtbm4AczZG=r^OE^?1od1}CidD=`udI|uZ|mf=9urrJRo1ap&z`&MsVhb&uym(@D= zJFqArCO;M(NRq>EiS6ZC_F7O+ke|=-am}?XnIMxTb0!-YOaq8xqeRV=I}3M>JXaRwG_eQl!0%dxIn%G9Q)5u>_RHGXyh zBuvt8qtyCj%)-4ta+?~(8C#U)G=2&q8Hk$&e7s+I8QLHLT2uG^?3X3 z_H(of)h8!Q4nPWUYxcFsi5?j;yaoRxBL|k4p*(V;Jq*?i+@K)M;3vm>?Yr;}IbjzW z<#2xL=v~*(oN7$TG4^J?9&hA-(qFDr9CAk&!y~=r|-ZDkCd3C_6vhD{PauZQZ=^?jUyFoz+}uv^lR zeLebpbk#PN0C3^h;3WW8?`EZ<#}g|lvJoEpB8{(Mlh{OXyP2W`ambK}Smg)wQOE=n5OG zOw$ab&JWDfd6Uy;Rk=$CFJ|cjjXb*2z&G9$S8u9D$|`pm%$3-GC;|X#_?u`(ejoch zd$(f(Z5VE7rcZ@Im^9d|pf_VQwwt+20p zU2a8EMN*T%L?TXPH{m}AUVBc*UBxv14HxFCj();-V2&tK{gaL>9>?%tCL!@CQejML zOmBIX%rpcyhNHs(s{?u zj-5r9buU5}#?Qc$e$IQ4JY&p2X{^gZ^T6tX6$2%8>bt+byk9HbGTTx9bH8TjmXXzi zBm=l1O7tE3gfGTt3!$IC4Z~Jfe(_eYnN{SOc^lN^E%Xo z-pOC699IC%@4+$5QWgWHic`xQTSrCQSnVX-@%PacNfvui_y|n)f{a{H8vIYwq^YJE zCK5WZ1D#D+C7@k|(#=4*D86>oqO+oKq}-y@t_E8(1#hI6sh6qY@@E>9#v$$IXpN-F zh|jQ0M)X|L=VKl0aPw+UZojR7x~Ep^LWZ5#w4=u_kISq<-hq83>&&ppWB@=}P%FB` zNIQ2vCG}*`n>ma_0S6p^xV?WHo;LUoQPCXjc8r3y3KeritN}He)beWsHxSQ~KOkbj zLz9p(FiWrD`;ZOI0)Pp#+e!pzGJ?fRIaSNd@HFlQBR+n1~r>VxNc3>O;_lX= zs9IZBt6GbYV%|zor!ECgIUYMtd7i8)v-Gtb6eT;u-n9-zSv~59y{$hgx4-TvzdY^n z-pzn@q=?99SfN)UR&sKJAD=*k%k`Mx)xT$Kblwjv3O zQGW}aN_$xGZaeC4rc)gWZT8c0+p*hDr;;8{6>hlx(Y}?$KUKKN_DA!U7t46qy1-7y zDKD1#$Lj)H*H0efKbTPecv^1L70%WQ=ihYQVmgHcbj@2#r}$W6+uOsY<>23ypc>Hw z>@m?n{rvKp7xm|&HXogINw_EM58hlc(OR$SL;YILT~(Pn+>jXs*O24SNI;j{esyz( z|0(UV`c`6)6I?mA9pO1?+t22T+luC@%owf;x}1?d6ciN`eNc!oiS4S)J%LWPADWtX zU%=S~>CH7jxGjE>)BZZ`*`ru02kPe(A3_e2AB-?CMOx{O8X*JQ?39CT#;TSd9~b$6 zP5uy1l|_g*V8^yow5Gri{%RsyA~y`<#~oMhD&JPeFUSWs(t0`a5J$qj5MtI4&oNgw)C(!?cKzD zq<4@;QY8uXI={|+57O5@RgzGr8@iDcr29hTGP_Llfmbn~tmM|B*&eeKg)q8toN2N8 z4pIHE{p;hU{_n7xXyeIo*bz^MOX3#Mp3DwmtI`}{qnUMQ7j}q3NX7`!iyg4m4YwJk}lD*7$p!E>8xdD6es4t@h=pm9c2*Fm82CXG&4BvFeb28I% zM{;K{?}I#*yPm9`Y&WkbiS@0R@ITSOY+d(7C|-Qkv7`p!Y#(|o_Ql`@AW){-6F*|uYtRPd!ksdZJB1OZEJ&fd(YJ-Pv$?=4YanD6(M+Xh6tR1 z##B6cJb8#`S57-wR}R6_qU_1M>?3mtiNkj%iqhQ#HUGkDHl4#zX*LSk?8R#0>GU5d zQZ+%Ur>fVPjXoCU=VmyX0*$kxZ(c7Gf$2`%oevYmif+2)^WkDkdaQYo@HkN>2Jxqz ze;03Kc9>qe6|Ri^M1s*@qp;=Hf3}n)d@Wq+-#P!c*(p5wPNqBOcN$NXJp5YtyZBGZ zEhZ3Fh;V=k3#nEvf)M`pv;E4`jf=Nz`A2lxA5Zu1+zygHd4iuIA-uh1dg|)R(;d|O z%j#u_5NRfgk5Q$&ow?e0wW(ILXyW)p(YOPY)}nE0ilY=1AqOKETglE!&9i0LU#G&# zV&$Gw+~<@9milNYUxhRmXI+w;?w2_Le8kf?qYmoH!UoYVG(QT-ccf4mu8I)YBt<2~ zuu&ZBY3v+(QAM7zJ;t_`c+-wl(ZE>2wi)%OF)vS}|<$lHSt~ zM(MZz|F88V{Qt+ptj3(hPfY7O8S>B;!~?uR$yl+<8Ds)>nzI^80y1(GZ~CO}|#G1LFqIq@ag}!3ugp_(8lT zd@qU+ArCIdT~SXoCK`xE$u;U3Q$98FT=7bu z7p-XNJ3|y|PQPoS03{hd<&e&>t%U4WwbLSKuI2iBF_u|U5Rpupg!1{#d$Z8#-VXJ> zD?j%_VkZjX66j+<@l& zNC1Sad#wS25Wop>>D;@*feAE6xSL*@=7{|@2=h6IN%svH72u=+(>j1-n3B7=e0CvK zd6pR_*)HCNXx*77XBW}*3Lv#Py;V_NB%&1tH$~b8+ruBLsD?ilbm_1<$`Q(-t-IrcDYs~ zRL<-hL(z}5Vl%&O_NckWf`hbD8l@=9H8*?ER}Df{d4}2Dx;JBv?p1X}CtP`*WtL=5 znp4*?$IPnHG+N#GGUhVoq!&WUl|h<5SRcEMxbHl`-;vbWfiS&~YbYu42y%Z?eC2uD z^R`FS)Si!k=Kaei%g_Db zL?}X!g8CGcr$SG|FcsI=IRYILKEfgYT7}aYb8yr@n0&VkdL`K4_4MhbGv*s$?D}{> z?x{7hi_J%SYu4CViRftRYesE6eIf16E-=ya9Xh|bH^0uU#olmYucmWpfBjuT7WJ%$ z%wUjI*190O<$cSH-!k&oxt;U3%%FLjs@}jsGe4v=RSjFtpUS?R3tRs9+>Chp`NF*W zZ|R1<$KSS|l7!fv&vH-~<6pCTQIgIX5x z_Lu3V`6V-`JBxGyX8%+c|0}vz^eHZJ4WP6*V3ux0I8)4CqA^V8LSd$BMP@A`mCO;$ z5o+Gapf2GMUZv4@X2ce1Ag48>R0KyWgKdPhb|#m*72y<_6r@vRr>M%&0_i2yXR4aL z_ff6o@U$#=sSeecYPTYb%Farrwh|$wLL!bA_suFEA)9;5tGomDRhY+yx@Htv4LB#@5wCj#fxq}!L4C}Lt&o!qM>njiiM zSar(-^TSK!e}$ub3)YY;NzPOoyVF)D)$knV8Y~QAR4!013}Q-UR4z$Bq8d5=wIl@#usD;28-<6)s#wE(Quo#ajAP1KzetGUEGEUQd9 zjWpg0x;PZVlAnAZ8pd4*NN|Dd<@>)0c13L_G@u|@&PW|(P~<)x_gD}RL7@q)_FiJn z&Ix@h2Esvwtn938fP;OipM7ukaH+i6y;+qXCP&`h1eP3J7ND0OU_HRfUA_f{5v={L zFXca?_t7I}cp3_Bfg$)8BE(sfP6HKFDTCCiL3G<)XWyOe*L`=+D;bdswRWYZvz$>7 z<%)^SXElk_)7;Wqt`z8uUt{Ds@(burdEt{D4#U|mliSeTy=?|7WC zUS9~3>afoG1;p+E(_a6r-=kl?e8E_8KJ9^gj@4NSV~$E!HDF8uCxhDfPYOj#uk5nq z3?F=w)wIi!)pT#dOk@ZhbD5jStnn#|D~hi1T=Xf5TJ-$FHXvL%qB}KkTz3KWD@mhI zdN<-rt5JvJ104(WJ^01d8~0g>hTG_ciNDOy<-H|KdU>*mEouv!w?m*(Z$h_#-WKT< zLLT2UGdZI7Oyq+RBLhu~VJM+0;MoHl2T&Z&{J2(evLvJ=#|TV!AgEB*pXCPrLzN2N z#^6O-{#n?VO=kIj(cH#Smcc8)km^8+c~S{J361vzOP5(ySel8a~IZ0bT`yQipfI-H?5j zxu_Qs(<{mn%qPmL+>j_Ng2#1$GZGA@Kw%gF`Ko1%mlClWFN_!V#q~B}J{^0~{WTUb ztPS}(pT7-rGlejrEcIHDZrWONb zarjs9^WPups-()GdnwvvS(=v{(A~t!>tkoj>#VdECuE z2#qv8f{#m#OSG@`<8Z#r`mfxrjh#P#YUXX*zb!}b4jlHr!^?P*^Dx@;j!-5-j8X>> zDu4xa?(3I!9zj8ba{$l;=gC}+dKC4z;6`He;X4kpEbT2DX|ZRzMV(**&Resr#fD8f zcq`}Re00#o3G(&Vy?-`dzTiKgn)>9=M(3HuM|I~erj|Dzbli`RAO#pqF!J+c%(ZmEsjex3b=lC|SkVl#(>J{K)gkA#DC8kH^r?m^ zH~wrgKDzO#hV7EW#OcwtvM|HPdin443*yA$sL~C&=%nx2$h(NRh%~zN8Fge;!Pa~- zjOJht71cf}_Olcm^b`;qF-r$0z&=cPayET>KJem+@{KLQ;KF}()6a=G^? z%J&zHzXRr{din9mO!r0VLy4P6o}m+qk+wYkSo6Y;U|!W3*d zbm7a;hE3kr9VS;MSLK&B34O!q_N%?y)gX>m{_fo=<-a4l&$g65{PZ1J`bdAmG+EJ& z=E7J-itI(+MMa9#%gk%^GLa}S>s*j+=#%>=Igi|-N3n86)KNKk6wMmJ8n-EW&R4KL zHj}i3PZv5Q$v!m>ao z0y*P09+7Tk<(7(AhnZ`vYb{5V-R7uT z*W`G1?|q6@hZG*1W6HZX_XlfXdEVweI%l!R5-?p$H6jkJ1Me&+JZ zf=T*j)Aqz4lfS7*!@*GQ{m=JvhjOD11=)-zBU=Aj0d3b0ngo>lopz-31lf@it#@b0<&K%Du;SIe^jWF1n5bRRl(%gA}|_f18Z==$iWfl_l%km z@v!P5%vxrL3~baRvfB@ed_Z_RPZvO%vX_C0D>T2*pWdrizeTguIht5 zXdnoY8oM8wJ=EJw)Y~L=*AG)4ri3{jA`ugt+_-nsh{fq)5c7ogcsyd%M9Qi1C#0ad z74=s347v|GTYPrvX^ev|PRA0|gO8LSk(!|XSIA;cYtD4e+Sx0IW#><%a=l?mX;<{U zUUI^Wo1_gFjWr!B^GW3zWOAgf3L6b6P%q2*AuyZ|lx)V;ozqqRiw{9*p84K00fU^Q zOh=jAOl!rv!!Ti1sblIP`w08S)U(u4K6W0GdP~UI`IeCNeLZ!4uXOAq?f(Mh8#>WF zi15vqHJ&vNNZ*7J?VIhMnHkR{q7u(Tr+v(aSsDr(3J$Xz8C~BuYi*G?k~dy@#oFq% z*zj;|afJpZKgPUwsJd2?xy-80zLaL{n0v<8=C6dhZqWQ=TwydQ$f|J+V{Otbh(?9B z?rvKS(l`P$v*fnqxz`z+|I?y&6> z+7HHtJ8WQZNOBh%13N=qQf5^*@j{i1!$&ykd7y|y`R|YPUpZ!^Ixgtx7g>#QdVl0SbF$T^P^_7)FW>WS0LJkM|W@x8i(`unPRO(tu+o8n1O=gs-KrX z2xHV}{YUF(>lr3Q71^`Gmt$bfFma$hy?)evcAa4t@$p8N;j?E(zL6^02Bs(wO*!x!&7WcCAG;+=Pp zbIcYTu9pHAmKZOoE(5?ze9AFnodn3uAfb%nvrFe4FS~TOkO{Koz)B5-J@j5zz?vf< zE+F1nPDL#OmLGL;BaQCR{={m58YYr9qZ`%3y4Txyj`&jVjv>Sre) z(oiDKNHM0)NKu;Gn+G7flY%o`Oo|FlvI|g0$^okGG&;wBl=y$;@!Y;OKLkgInv-WAAqet)P*xLIGGW8SCo z>jlTBQ5uf9?XZ^uE#u)&QT`DyDmksA4SP1J#Ty#w=fw?MwqkP9$AQ6;Re$+F^x@D; zB01O3sy;K%NDf)chynWCn%AyT4L1sefD3U6fd4!<9&xd7vD`VFqYaulNuf|MAc^l@=ULfh8C6y<(7yA=f1(cTs)K0#MEy&l`{N zrvv3qOboRsVwhONI^S4#YZdd}{`fge`GYxu+vp)mwfDYrXXb%07;zG@?CkA zBY;6JXCrKt<0@^OWt`@MOe0pSPRE2&o=Vt5)dD9 zMBQ7QXu_<$St2(1x-S8xQk|u<>`|bpzB(9l6=OAFUSS$lwCG@^}&{fKB=WT(lZ0oRmhe8o_jnMBg z?qeSPH!*@l+D6JrQeEwvx~JyvkBmb1m7_cg0(4!qPt0n|%VMrrjdt9DZsbzO^YTEe zHN)Q>sg2>@&y&O*WV}-wVW~RspB#t-pyB3fL@3VROG}Mrp#>kW8T&L24L5>u{%@;C zFAlSMAF*y9sBnAe$|D;_D5^yU1SF^XgK9B(v|6tWZ_^>L?5q{h|3rprov2Xg zH$G>K1B8E@eQV9{uLUC5=rx*W3j6@Di;(}BAr=aI1#ot0o_)0~;XLicG+usz6l;az zJ_(QC;Aa)Rl7IL1*dio<6e$|MjgYIs6COp9>XRUIT~Q2;4Di?p0>F0i?-pKLW(Zod zEXP5VjlM#5<8Y5NzQP*dGM50ppSreyi{S1Wfuh&|&z}`Gq!|FHqD*QG3A;#N4Dc17 zaeB}&>@$-cK+9lwNw4Ld z#(z)mDc)1OGhL^6zjytgv;}Z7>w9-|wElPdKWjc2N<`2!8DzTkLVRaJQGR^u9{$E# zHtPWEn_2hp2)^!1gZamT>9GKtb|CgxZA$Rt8~d<)qLDxpZ4#+>NLx&vNSsZ!uHvcU zX;cF8c}VlKiL(Q&*Lcg?z3m(2Mw@+4^Y$@!O2GjF%$;FX`o0FdDYOn6EZEV$uw2>- zcPAAq(%x6%X`3kpigSu5$t%=4j`$1USmpiYy@EVdJyju>hc$+b>%@tnld4>*2Zzx5 z;Lu5>lgkhNj1y=QXqpNq-c1vpeEI(6^A)RPH@#x9yo`N2da~l{-dl|~sZTCH_z=bj zzJP;?P7jV5L;kR+wy5TqadTmPP7C;O%7SkhGlwZFxD2&4PhmZ)vQfL^7J@Ua69>Qj zU3Y!(Li6HOV&v%#uD~|PB1_o;8ip_maBL)aVjJX;FYf^wU&=(nMDUEPpDv-F1e{)| z17u5~dB!IIviD$?NAk)3h&dRO@ z0+=q{OH%C<*4=xP%auYt;@)XP0iA`@x~{+bYF)KXd<qWU4{V2Ca6U3@s&?1pVW>)Xr#h$+!Ym{0#Pt_6LFCCzT^ zov^nd#lww3wflHQXjAtEsnRKC!r20#f&t|J9I2*BW?B<&@3fQPdFD@w?|eKE^ZL_P zSjT6acZ)JM*8lrx+-R)-NfQQ1>BB~YrIYdQy{ ziNF=@7H=C}q7>E{)_NX4c#SrG5dS{@ef*$P(cGSiqV@#Z1m2=K&ICRKIX=S#u{q9e zJ{GY#76xz_RSIjr(lU@$`w2Ypn87j1KaJM+87pNJ`2=`tQjyISkvqy(WtLD^8c2c* zYaRSB*5|HAMfN*cG-ROpce2g9f#!AZ)qzY`qveNu;E9?*gDx>mcpTE60sx@E;F#1r zf5g5$>WDosRp%6s3jkkl15~tk6K!o%T?K73s3yk6weo==x6HX5>!*F9E7rj80_V8E zMS+WUsyd#*s@kf+cKw|j-o^nprO*?sXO>-`7ED3C-cjTmdo$Jp#7W@a^-MwAEe^c7 zxNE0tr+_C3|30Fq=Pc7%h+X;Q7JMbTguI0O3B z`j==@4@viSf93w_dMRNDvpD99^D)}sZBh(k_Q_K2`A9i?DBEc@W#SJ0wQAnF$huut zvj0U+X~vlcPHGKunT#Dyr;i@AIwpAcF?G=eed2+CyJVrYT4cMv^!}wK$1wEHcd9U9 z%K}nQ(%xG~aVK!Rw@%;~i*ZNfu3f@el|68M_mL$t?yGzyFiqT$V5U>@Xlq%>PtCZZ7^_iiV0-IKcB}weU*pEpdRj%^P zNWRzID*BOpTqrQZ^VF%2zhYOp#)>q7_N$X(D&Qnfp*kMW5DaE!G9np~@+x@^4-pn0 z10Ta0J_k-8BL^UY-QaWJLS(RxG*w|9!)s}CJ5OKY%~yF)lU;dG3u)uE zY@v+s{sw32g3Vt=Iw}yyB##P;0?D2JVjKuehktn+(vlLx3yO~lb z9h!Tw?rGLyG(^Xzyz9a*h;Z0={12PVCvSyc_-1N-P73(!nk7bk;6W8un^Kz+m%*L% zL6+M~Wo%3$5Du9`W8o{+3dDTrP0NgY-i6@v%z83^qAUM6z ziscoi{Rdb@m{x;@*_qj~FYMHV*3456>H$UO)C2dXm>d$t%zxvWv78?EhyLE|z2)?* zjb~|t*$33)w>(*W(okSgaIy4Bt?RxntD4U)z0h~xtZ{a^Sp$X*;!7(owZt`d0euwX za!(CL*oe6TnM_qkSS)=@8|-LoUO%Z10rQ0<*U-k*~eSNK;>DZTUFR(F0e$boY4`QXB6=EnFlNW*g+Z6?m(h*%6!b)@i+E|gX_x-!tAD+FfH&ia;6np8V=~bA1n8bv}n8YP%cRU(= z#B#&o9PNvzMdO3&-;zD@lLk7bi}w~E1a&zY5;T)NAAE$9<*WT>;&>VBPs@n7R2wTF zydsYR>)`@M?}B@~h;;KmRR6Zau_nySO&gPL%DH5*r_Udw6* z;5xQ+>J9|1W1Tw73Sve7QrbKQhnZJsaBOgz$5=pa;cN>enE4TS{iTTCGcVlExt)6| zQ|H%nMnz>Za58WydxbnPaFSA7u~V^`M$;hgu`4T?UEbp~kg&-hlb)__PKNQgkfHyV!qa0KKnnQ7i13R)EedFhM6 z5VC4kds7cC(T@g}DM6dF7YFffG7rvnS8#@IBX zJe3|udx`L#u_?F91v_?JwyVK$qB@M{0b^6Vv0&HfG^G4~g5r4U{AltA_8Idn!(csyK&T1nWz7Xj6qms~~?Ax{95^)C3l z0Mk6vG9$vDxDG^(&rjB5jcNc_?%qJXJ{Ms-Z!Wp#a?h2S$UbCz2>vj3eR*VRuDeFF zMl+yVUC2r(R9m@=*HK-_-Yvc=W3-H0E6hc%R^JiB^vGJAbnDjQ*G)F9_)^;{A&&@* zeHQ4s>b9(J0Io~M6%SC6cR52X(OBJgfvmAvx*Cv<$|x4JYi~n2i@Rde*m52}VcRs- zv``N!1NVy&g)E3`l)w(-uV5?PW`l5pSZ z{D{0iinFtS6em&&(AXG+8Iv8PdBAp5$brk>%U`o&<~tNcPG)0_r(1{(+z$yFRIy1Mi{%z7_gf031Sj-5Y3(d1=sxJ)P74Ja2xF zhbtmFW?DKl44?j2euzFr%7W1seTwXXroEkx0OWREgs{EExNasTt27&a&}*ItIeom57O%2LT8H z=F*pzcUFzwJFj-y5KFW1xZ9U^px$#edU6zR1xwk`=7hNQ)8@>FefsVaR`5B-5awvd z-(A~XdD-%SUH~U$VH>wojc;iCr2I*FdN1GXtE&l~qin+qD0Sns{>+2p(d-80f0&Y6NCwM=>;Qz$1dDui$?s> zQ=^SOh-AU45z$CH{3Wo+DaObSfcJoL1UOLv4&epiPY%sx0J;>VGo?#Njcj#DjoPRH z4p8&&X#t3PxZN`=CMj-iU{L{6L?(poF(nm}V)XJ=Py{u{J&t>bAacsJwDUMX>BENI zf6Hy)*P(X^Wl80N5!g}$mLSR(z?Nz~0e5K?7#@&7+EPFAEeZ5N`xiPdbY$Cu;<53z zyt45S`tmqK$AArVMYe9Xv_uA7?ir?4a#zZr@1wy>5EKY;g#Rsc5Ml}Q3sz+vDwH5j z%NT+W<+tNbkwOyXw^3~3pjC6>q(gIOi1DD+t_*pHZ;fwlNQ%kn+HySwk--!bgSb;@ zp?DYqF^sDyvQhhCQkVml$aNDQ9E46ROuzr!SaDf#`MK2??y|?Lu2s{Ly)`Jnpr~>D|M5xR!L3rYcpT56Uf)Z}kN z(H+2>gj+qlct=HuIHT!xcrhww%Q+NuZEWhw8D!SM&>2%PhBAk;gwlY;Cv1{DQN2%n z1<;2bScAyqJu#X(LPCFtFY5x>4tzhb*0Zg(Q+*5f@s&LX|Jd=@!4nzyUO78CtfDh# z1(&9v5urBMRHKk&O)}MBf$NCp(h?}OB_X^xiAjj7lBa@8TgjH{4jt!g)WQ)u&IM^Y zESRQhZ;Rg+&scI&vCznje~%rVE^AMipsNk@1tT3s$s05V)ceK6{{z)f>^`qKj}$qnDqNO_8WhkPxj!BA}8aYtXqa{ zpr)KEm?p0hRgE^1!*>Cev2+7%1GT@=$W6#AmRtAtLr9M9iW9 zSt#}%_;?$h`up|w8lzxa0bNYwef}9(i37;g`L8&u-MW!YxgjE?Y}KIA{xuy!uiF2k^R*(UsTX!c(3w? zS~SF~Ll6E*d5VjU`?hV~Y29(*E^RIyDNcO1qH|h;4C};$OEODYTh8fsEp=f=0R5qYzVY&Y8m#jZ4i>H2G%dNk9OCtEhQW@;+D(a4s`jwLVFi76HEeCd&9Rt36kT$Dmd({z@NquI+K$8KyHF&RnUIgQWD0Bb-6y^`q}D15%3g zuk*C*P}f(cb@ogSbm)V>ib@!U3(JkI>M()aisffG0=X4-cRySG%u4n0HCQXT4dDgf$K|4w_Lfn8Q7l$31B4Suk&VYwuiHJu-^H#KmRiKemTX5QkgC zcw(ZsPsH74dI0;LXUd`}A1+{m^Y9T$)pjUwl2>@5swoWbGzq^0;gx_Z(L0pAYLqc6H{6Z)W zGiAU~OLArGo9E97qU7=7&v?x1(6q!CciYF@d0`%0YIS)5vO#b>1N8{mPKbG0?819pxh;c+1;7M#{sk) zf`G=pn~FDcU5hu%5x~d8dqeMP;m%0(P9W^^Jk@%V1WM=9Nb+jLYNZPokc-)Py{+Xk zso$4%&4uyEWR7RWZN;iI$#CZP@x*#JvJj&gV^+$V*YSgC8P!glED|htn@0uQX@^7R zpeL2Wt@n@3e+fPD(;M}|D1mjFG^n_RTa`lHCUM4EZmv6^nh)1yEjtwTI&!sj(++w# zJ2~5Jt?i0G7Pr_sqF$yQ6;fj3oDCk@O_8h3ZmpZPq@J>J=zsq)eb$Oj-`EBZYkTa#e$>{{EjN}qp_MX-z-$WrJ4-uU7(R>f=w2n z-1K8dDS6kS7WHjf@k{)(Iz8)Bx5Uj2Rm;By=YAkY1Ii7Q&)uS$GtggI!(}DI5yh?k zE9W=*EEo>-SzsjRMAH+F{>4dt6IntGDSwex@L?o6NpBzi|M%@Lc)tVEBOv(({v*;X z*CDs5H_P|$1vajG&kWSF_?b0af74Vl&T~&mzMRncI7LUS{G9=}pS7RmgtJe*Pl~_r z%sYQ!$oqm*`~`wjJYkFXyBSEk`OL(ypXEuzlZF!xn+jp>;K!54Il$=3F{&OX(3WVg zyN7NMom?Jg8wG`dJ~Xa&!-&N_%&8TN?HX+SWotK!jp z%I1{7%mxb*Y&r@^6lh0$L|EMs-7y0Tb__cPaTSFKyUYE% zNzv=jTfGw^5Eg$(%2@Y)P4+FLmxWS?E~BXXp9>qod^5%nIIo{{60K2){v2EHxYHh( zQ-R2G7*IoWIX<;Q9JM}J6PjMA(wR_#`k>Hc{>p{rAq$|=4pNuggyB5JPyiH&(FU0R zERDny@CDBeuV*!8HI6lQ!DpRtTsSh0uPSe8Dp@WCNE!g9@s#qsK^4T#3Mq&^hzxQv zdtJFaeljX-tSdRE1kEKv`W}LXvc=Ig=H!CN&cZ%*azXM#q+F0(Og@ZDO-*mNWZV^< z)w{-}6$T%Aq`ky;h?4PV4b&6o6Mh@otpHt=3rmh;$X=& z&b8(^5arib`bsJKd*j|Fs#3S|rV3+IGxzKFN{>|iQuL`c_p`oKU6sZf(H<@QDw%bp zqrxBfsrW=xfHdjm=SS;x=Fsqnow5C(D zg@-{(3Qvj_hDCZN-OIqv;JW@(u@fR%B3h8EdTNQNdYLOp@UZX@apx`!GeLNquZ?*T7E533^EEq{!Okr+Yy zW~Hxr^OBZ?%jLuhMtVkijh0J1vPUlQQ|%9>PmjDoPoO>-e&vP2N0waeLv2lyuQuYI zxKsYn*d{)#b6#Rt!J0bVgiKIAPrZ@|pp zEk;WfL>5F&8LH8|LC!!W$y%X7$i0acm&^AK%!O~}Ac1x+1PT24kJmzeTb)Wvn0>tI z^0y-hDA@RKp}Uc95M+JDrj=o@n|TTXDD#ugx{r^Rc-l4}bNFtm0UjU*EHxi}GFOLY z>i{%cmb7C834z}oCqK}6P%Rez)9iKWY!RUSd&XZDwjcnHZJkgSHroJuRk5T^&sKn7 z%~JNr{G4dTR)d)%`|^HtB}LEDazI7%dD?SkE+1d7`16UI`JcNpCeKs<089hAS62kw zkTB{;dJNZ(`G#DyUre>bH*;^^m9Ox2xm?Bz&)q`k6Q&9e*50#0wm~M0UJJaK#=VWu zL=-ngQRbdlN(;v1s*wZmwO8a0EwN=&l1aL)Ny6sWapavk+BJNtU8W{AGCa8;; ziIrq3bvU(xG}^%wVcHG?TnE;JDaepeD?%){%^6cD0tewc z&FJ|3jK*BiV^=QB{@5n-g=!(!pETN}k2u8L4CswlVCEvHbhF?7Xu#oxjW zG|aY(UTp~Q{4NpYmfhMsq{@2oqAvsNK^4yc`W)4r{a_m)chsoFj>>Xa)AVtEL)va| z`^~vakS@LuWE=QC@SVUmf+_Z2m>sa%ND(vzDA~T+6JkVj_!?kPrfg=Yhl&!aou|Y_I+bCQ= z1LPK<>ID7y#?p5xayfN5b!A1$Iv-&JSBO&#l}5^n548rvcovxoCo$I>JVEie-r)OJ zGAIi(!Nl>NIWj!-DFMMeu}9~CVn%~UkXbZ%D)+Wvx4fLlRgr5b6%8=dk zj~uh1JMwzl?vLCpP7(-I?B(8XQ^L-EE3j*I({E_@poK#HJ8GX=w0FmVzkRj=p2>ap zCnGqn5SlauMCghJh`OWy^JjG2|6gjOK?&`(yGHp$lOn!*h`Zj&EpDtj4L6&03>;Br z(G0>6Pqnio_*Uo($05HI(i*%hU|wzJ*;VjxarH-Q`Dfl$$A=DrYs*AsThScbyFJtA z@gtvc*Xm$vi6ZXW?wNhTmla(IHX+Xd1??pwaujfCLYMnz-30y{;6va9UNHxs!2BBc z$bc`07xH+8%fZ?X5aH^Sz&$B$j0XW=0!SJ{4bUdJ(eP9r1YeomM0$oOGt>v!e-aRXvIUf7JcK;v$>X4|NnMrC(Z}R6U^W5{~rbtKf z9-|f-)2*BR__pU{+{sL~KU}wx5_%gUu!{KSU+o$h?`gpe5vCyiBV_;Un20(bJH|_eyFCMyCl;-wwas#l~9{Vk2feSW|@J?`PX z8=^4k*(vPb-jU*e`7ko=iB2B3`SUk7NV@Y^K7CESj(e$8+B-$uzl@|ukEzDU3O z@*fDOh=(&eBrGVYQ)iOD*QMk=`$EzgmG#?3<>46ZQEgbm@~uY&>5B93zDS*N&{=}F zzO}izy_3X0WB={*Vr&osaOr4YZ}Ac);ZC(0uL^I+0t`&Y+cx{I}cMNc7f+7yt^7BRWk?>Kz z&u1fG8o5|*0(U`18|cIITA`o~*9}PSi-AZNUBytvP`OynHm1qA7Q+@$jpf2P39)tr zUAb5bakO(1HqY8?jb5u>#=UFIYi;~laekxAOg~9OzuN%Hdh5jdvgN9EpXKER8NW-* z&nGVU*t`c#{)DqnHqzaY_MSaF%v1)-yalGh9XpD@hrdUt*_5A<-<01}L|onfi~hGt zO)&>Cs{*&`Fry32I_$zlh{GZ}Z(te`V`QC>|3DXZh31{V7@XDuvs~TSMT7MJ3CHDy ziHTu!7lDmlE;H{YhVaaW5}t?{LIU^#aEJaSl4;`7T z6QGHO&&3=`P$^q3DCu30-0NrRXKEpq1=?{IfuHIjRThB?^4nAy15$k&JtbA8LOqYV zO8~0%ORkgivJ^D-#anSU$`cBug>ZMtU~@wP$>N3u2821q0@9r4m$-SRFMX`@dnf~U zxouJJp#n45v~FN}LmtWhaZQHTSL;0~Wd$TBJk&*K@|y}KM!l&hOm4U+Q}A0cdKh>Z z|3CKL1Q5%nYaF-lyND!NBTFb$6tWf)N|w}Z&AyZnDob{X2&F|r$&#IjY)O`~CHtC^ z5E6>=KXct$pXYhs-~0RC@B4q>_j?@I%-nO$HP>7-XU@!-nR8Ai<$N?p`;r#YrF*B_ zXm*0r?cqbx0YZ1XhT?__lPSsO<6xH-v+f3?l0Fzp&#cP0SC7_!ECGpR%x4z$@1DEI zbu(Zi)p*btQC4L9#!AW3G?VrW&CFb71(w{0r3RWgc%o-3L1_fcC8s6n3ki6)$60??OElby?I?i?;04cy?*Nx2!N~ zr$&zrGon=J<_G+m*Pz&FJ|}7>*d!<6^v`Mr8|<^mUW(*+tL)ed>!aRB_c)m##7C$f zTMIhIb5JK_GF}%u3kHRqpvN3lZ0$$m0iyqy!t2!lT@l^_4%XPv%tfqkQyf`}^@pIF zzHr=tx@jr!TU*>QIuT2m!R&5`>#mgYw|U6;kQw?nEcn4DY>>prqyPm83ZOCvyMcoGk$J4`|5u0r9r>39qn*F{E=S5hr>wdh8msRN^8zV zKR`_r5>Y!meiDgdfKY7vyN`J33w+?49T-Z8^tt-uz7ix{71Q|biAQ=V?oF@tr{Uy{ z%oSrX2q4ouv?Op20vV}3ne3$v2Y2$PEguAe=4DG{wZ{)hL4Z}~N?%7@EN0N;QupJG zq>ck1NP$UKkQN~Q@pe`Pc_3NA+CdG16v#dht}xplOrFGoWCgMhr1e_A0S<`6k!~;# zjUDnf7Q+sC^J8)txWfEu!yb4XSsco|iq44JS>L$nvH+UcFD>2HjI*$bN;TB7MCULJwa)rANqwgL41)3?Zf_|C zlJ^~YNT?iX_5z3kL418beNbE!kX^N^$%qfrWCY5MRD8G4YEs>ClvUcGq0Ts(^11no^|KbtAdg${iG(&IQC_a(fE8hWi9M(z;485`0ICF1`&Jbo;5a}9f^>zV0n_X~h1-Ox zO!riAMB!TrHdZp=@(A{k)TdD^?(nf9$Y=UO8c#gO=-T@BezRt3oEB&($oD51p%bjo z@ekjXD5w*VD7Y-Ryt#P|#iBeFiMLUJYJx^y?$%sMlk3s$7RN36kla$CRwrfZay!Wj zB;|&T*nphd=j-TeE<@KsqHJ?Jk||nA9x2`LjaCPHOHS4MQ!U-=w$=y_E{&89v&{6( zm<9LEUPi}5>o0%25?wkbJN%gGF`Ml0X8uq@UbVu)LRC?)O!@%QSX#9 zJHcu?vXM^C0i!(x6yX>g>uXvPEU=BiGN0WMjA7x;r^77`RniB6s8_PSCe24jh{M}o+FCV9}-bj7|%=XS6MG=bTovd#(UA`4?PZ5(P$s->3JUtix8g9@K# zx$U%)d((zPJsGHPZ95I8UfrQzwT#M2Wx8X^fk3+?pOzHBF(LU}DhIg`3 z=XbU?*;qlRd5M|!Ge|N>vI7|_5goU84EKW%KkKsz%%S>hnh`e2^GOdG4%-rgC<$vW zq9o}eA7j0cILt&|Q_&eC+QRpn-_@5)7M*E)aQN6s(a~g+l&(ZjC>CcG*?}}faHpNd zYlPVOh&q2Q=!BrozwUb7b*&Ap#8iHL|Ide4tfm5{aU%B|&zz zz`7P=qs^L+Yd+##B#wrp(~k6auA6eQr#(5Hp0lXqbDKKn^TgRTrf%{EO!FjVonL4* zI+>ss-iz9ttfc$SBIFQsy?my8CeZaqBTAAP$d!0AF}9k%SsOqzH5c@X)!PYWq(*>7 zzuc?a>e{T^_`C30Byx|rTl96wXiQDSaexl7RXu)qGlPJm%d_JF^V+aiu+Ah2jCrIJzGeJEM43z=_3Qg@>!Uc|?+ z%BA(NmDl$VyggMXn+t}aP+&U}Ig%}}d!Go9EBiKLrf>Spyc(RZBL}bmbZUvNTzHmh zzUlTRbSzg@d*gGv(ZuIREZ>d38|}3$0JmWDc7DO=oo*cfJvb6~-Yxo_5?Ly(T89t6 z$U2`GUt3sOxg&0i0~gE@t}Aez@<&J5TsQd3JBvJ5WVJBdW*BAFVgX>)BO_+cS1d>?ap;K=)|6PNOPu77Njeq#v}%|t2`WldCg%lO^(yN3;DY*|RW z?RHDuB)Ax+pr1F~yyk6nH_tin5pLrx0tH2x zHn9860T%4%I>|bgMCUq|_!6tX$?EPE6rWU1Oa;MnCcgoz^><{I_(fvgz}as}-7nVe z-Nue!`k=9_vCOWtyzN2k`}~IhrITAa0(;70y^P*xx+9aN1zGck6MP?IJsY1fc~S1N zvfQ^sDVG8Vk%hpb=zerA`SMJ_+@!ZDX1MFBhF&mC-za(EYqHm3pJp3@yH2^zRqY8uvNU-kq?xd9RU4G$pGFi zNi;(1t^LWKFzZ^96OH(~)U;nwtSEk!_-g3k(8I(b^;bg=)CZ$o1V(xNv>t2Kt5MO` z)7GnzJ)xqlg{vN1j*V6RZgmn#G}itocmjTaVqrm-AiCVv<2tvFCH zOg-dVI|ZMjk;C5^oy{uCf2cc!5l}zo^!H>e2zryOKFC_?>*4bl==NGC&;f zdR_O8+mWe;tD?e&{_8f@28(;UuwG7T&6#`d-*3^Zk*y_gn_>imxhmY+rU**o zEZDlp&@HP9avV_{Q5H!@dd}ZKr)$wz^xd zwPxAs!Rv0##(TQ@#N#z899JWnRA0jc(ctz;9T5zelK8qn5p8V|nAxS8i34_H_Z zy&EGKq9droQO*Ux0f2W=2!WtZ^_53gssSEd;VQ3&%lp{wEkW;t-p6`;ya6+v7l|Dn zOP{VA(S5bT00gs+UqpgeA8+hBe)00D4iC)6wK46sz}V;d&yAFHvr4)q(z6O*8r#*E z%x0A}TzYUqYolr;2wBY*`{t|F9jULfp#tn_jV37a6k>W z2mG8;iv|;>wZPOp%V(wmzejtVnyKfAzED0=*wReBKzi2aSmN3#sxOtuqdseTcChF* z#|PR^fy>org9hTAn#b;*`OI}TNJS~>*20+U0o~1cz7L4HWw@LaD}%4eHh^kEmdFKc5D50ETv+eDbLoiyb$wDzJKt+_@y%4!w5T# zM1^1QTjyt50bVlN7&Wrxk!>>#6UXBo1OWGXiCREu@z0o*Qh~4yxeco>@*4~(W!=a#_phiFHWG(ncDLF7l2 z&cL$w1PH_cobHp`0p_;d*)PKq)OpR|E0+gk!-KE5v#)~oJ|v6g-dg%9;Z?$0lUc1< zo=~1pyvqZf7VP2u4S(0bf0G(8n0{%6M69n)yeUd8-7z`tZ0l@4zu;}TUB=tuI2hW6 z@!O6DM(n2!7KPaj2DnPm3~`)fJG(6no8l`nqsY@FqkN-+a=zw9C!)+vrraOINK`~!t#4f3 zDBayqm^*J;n5SU}V)S;~xN(ZpLfh9|qu5P?liEZizK-5kxknjKA{-(M>x``vtP?Cm z^R@CdsrHiu_;Lf?U}7Z+DBM#KS=b^j7|+DoEkLpfs6wnmtV8cKe}W~D5!&ZOhD9eU zz?P}U8co{gj&BMPk?Ea>2OvA^ctkn6fwB;L6*BvZ^oaBzf}r4W>ZS=wI=qSyVcRENzY1@}`8gcf7)^3aifE`0SZDPd zuwm#jP_ySA$(Y_&Es{Z14~ZMrO#=BP1bOQkfmn`166mDobTU z<=U~R5}tbg56Tfgj98JWUl=;kUEz;j$%F8;zeOGQ%>5VQcJoHUpRyuN>${>p6`@#SDhMr&hrwyFgWa6BI>S^HCE8aS~?!* zY6MXqHOkXs!P9)Wb<4qqwU$FyJgf{#x6pK=K&^Y{v!(T0%>(V7o5J7cT%X@s4pAj; zR|d@9cB_k$umCAO zLV6-3o3@n45$Ot_2uV{Hjgk@~Il?bQa+Ctuk)Bq;Y)#jJsa@*xaRhY)YvHmWkYp3_ zAyXjc_B-uYM<7=zhZCX`qA#v?@ky4g&3;7psxK)GXy{(yt;-me-hp%4V>8!3yxFQNZ$RH9u9C2&If}X=Om^U zO6!`iu?U8!GmL27w6+DCH4XFSFetKZ#9Jh0^rNUG!TE{*9r1U4Q1Fuck3feUBcz)h zpiF!{3y1jn5}6Vi@%7Y!CL96PR7zAzL_-mk{M-?hye%_hOU~-9#dF>}k2;$<<8~gM z%NTt8*7zkrYo>nsOa1hN^Q>M}FKlfJHf3i@C%Ngm>1m~vckHhRC3=EMg6|71)#|L# ztyR^l7J8KvGolzX>vG%ky_3n?+6#RNp6}scYjLTI+r(t3W3L04a4=&7qs))318L3j zH_IUNcur9=bqQcYa^uH=?9w_nlRVW7iUrSI?ibx}_iV0As!W6*x#)-BeEqKejCJ(( z>11JKaf*4Ssbqm<=ar6&%NTGZc8bujl8tSvXr(5?+3fJWRuR8$Kh7wd&zZMxY{65F zNO_xA8PB?G>uhV~Z51uJ=8Dz>(gz^9z4SX`QeVG{N*peGYdo6>&1;hVK(&uRZq!7= zzAQa{6`_-%lQB3)FvrR!Lfb)x(w9{9;m{;tFq@~CDWVwOO>*1*wj(u>P9X+ZhWo_P z6L9M=WQ1iisN(k6t%H`rO=l8QJECr(R;bI)j&$X4M}a0X`%$FU9n5`6Da4wAQaoup zX;2eME|pM7+zWPm&tz{nZ42UVMz)U%j=hQXQ|*T1&hD~sB6|_Plr#PH|F7WuGV@u= zM&yLw^1jnRz_g_poU-?Mp_O#Q}?oBpi%S@5i z6Zfe^n$<~Iu)!V%nTS83(Ar&v8EC5Cqfhn}o7J&vvpV!oKEoXs-x|-ac zDVMuw7tG@rTDNoD=vq&$PqM%FHQ9pWg5yc(+MpW&d-I`fp8{Q-VV^@L%vci0~F za+V&Jo|1|foa!{M2U9pjKZz5Oj;~-3M@5Xo9|5B)5D(PFA#_k}TE>9!Aw@sXms7qR zKwliQ#bS*rZ{K!zb$my5$u}#a|A5qtuQ$$;*sA&%8+&%kGR0RiP^Pu*9I-3MDPLE~ zK2X{v+T7qOIY5{dc;wdYl-ReH_3K2|?KHFlf*D*K-@8vNI4ntZ*u5^cIl=mjB~xxl zVbF++uwZOTT9kwySWO38cdh0y$iYQpH~z4bHfF0&(`UR)W&6J zL1&>ndC{P@&P~~Irec-5d@STj3F=(M$4sjsWpwAJLAbKDD;2<37)(^yaK4PvlW7iw z1u2M|;~6OMu%0Qc@YM^wLs~@wWt4}c#x&3~dybwDlN4!skZ_Wxu_xLAT}_3rdrsJ< zB{haQ!mYZ(i7yp-TS1tg09LY{zit2--jSf^z1mFxz1qEwT~l4zLO8urE7CMyb=Fi` z&2_NgZQBQezkuod&2_Qy2~{Y8pOYr9+u4V~PtOODt-XcKd7xGwod^Ff)SH(p@DBi`jz*qD=nHG!aYbhtl6Ru zSkp&SW-K<*S;FpaRl6>~FM-X@oYu%RT~jJ2TU7i-YDIph11pD$uT8e7G-=AS7SntK z2Rbkhp%Mt1E}v%ff(f}BTF0XeUv-?8*bjjNH&JV!W8Stp8Q`9E-g7HuZ>0 zyvo5Xa2ouguYL&Q^yaaooq`vA4_Bls2ct9MaN8mz8v+SLV9VAv*fvB&IhJQ#lF8jm zH5vtsz?)!Jl$8#uVfJo$3m8$VNo<0|c^6HP1U@mYRc5HAFej1lW2>aW1&S-NafkmM z@ppavh7RO82{gF*e+fJMJ1ZwJgxd9=iBQoEhh=->`x+hJc#-Wm$>G1AO@>Xze?8dM z<_NE*10XX^7}^Av=-85{d^yu~vHpv9G`e6wr)*tFvG-q_;$#A_uh{6m$q`Zg?Z)ec z1MW?>=T!BT_;x9F9d^8Z(m+<|LB@fk14+FdZtQ|OZtQ5?<&A0Nh?bwn_GZub8%nDq z_!A`Fl^fB^)+w6-*hjhocC5)f6mQ%m#fki0<7&FBo zx!uCKZb%)$aK#T8to!lz)I9AwWJXTaxm(D-s5<3*9oxVC5jZ}0=R1UPYJ7)%YE-|$ zrnch%KT`Y}`Z=E;IsRGb>PfO|m3PG1u|G#U8L5P;9ZIF#efTowa(2;81i5{S2vi%2 zTD0)&8V8uf%yp!#n&O}d|L1?#$u9V-DW=VLAwY|Ti#)v*MdG53GTrDXOTGh~Pp)mo zzibj6id{2beIHCRyvs+Yf7LGUtbCSzGGjyf<$G}O-Y82S1q`v`6@E7f0Y_F(;EVSe z1QzfHromLUfYzVG_k$5X1*&;}{B1=Ff<7S8B9NxSD+an|?g`+9mqt15h(kxINgseb zf^od|)bsCvua4)17^FT&fDiv1gOA7DpR2DyD&=ZxlfyjHeF?{$zgd(p+ki!scW8hR z!=>(LO~+dj3&kLHh@cbHLKZbLvWS6K$q&bp z2Yh8fH$M|X(p=5~s8Tqoj!(9V3rm+Coj5$T?+YEAR&Rc{YP1_~y&Kg1!=e2MIIDuR z|F33+1=fK%0#LPy$F!f_pOI{$b`D@wxX#!UlPki@*=3e_IUNN{79i#Z0d#sCP7f0w zMF*xoD$yROJ}8da?!d=P(7GC6h7K6bNl*akWqb!p8m$5B4uft+yfP*T+yV7c-$144 z2N)GjrTE?K*^(L8(eTdlWA5j!Gxp_$$Bh4j5fbI`1K;wPtNm>LZ^;y2uvD49EUCAx z6~6eIPCve9H8OqxANe-oWA0*T2nz>%>|$udFJUOB1orXY-m%!;1U2GqYXSaWho7b; zSk9zH>q$3^=n151X$Oru&~kiqpP+EZKr=Yte)LH(u9a4<30FO%qL1?s+n~ao+%i^JMVw zpuhg;pTRSTefBHJY~VZ~eo_1)-CZ_i8XnTc4-_9LW|uweKTu3}4f0l~CE#`HgZ){? zA+S8_bCLE2ksKJya@>PVW;r_bL>9?RHZ7ez3mVp0Z-~m_U8B>*A6$mpz!1Pi8Boce z4_4OpkKS>9s4^VzfZ9a}UByRvX82`9Wdnxur;OYw@z!}l1v4d#+<8LV*64sXbrnW1 zs3pPt?O#Arb8mR6WPH835Z>c+di4v8n_D=Io7;l>Yy5xLUvCrA!c(`Nm8;rl%E0uV z|03OenGK?5l%d%7fi`%6_}bX=p;{TR1m+_K z3~K%v0JHMffbxi`#j^Sn&jB>bLxM|Y0(`Z5LnIP3_2Z$X%<>F(1J($}_CzLC$vxU&3UCY%$#er)cB^4#KAv!q1EJu3 zy89R^g3E!$aNGy~KL162aGBoI-KBITDIu#qlRaQB^VB`)aKw`kceo&u*k$MiSTgQY z&`9KO=74lGJcKWZkwv+ki85ehj<$xR1mU(17?69-NWe(YHONDl_xMhjI>-F$FU9%3 z)PTSUHN|}5z-%(g19b=DQ&=8V8;Jl+83-|8jbx1^WI!%!BsX*eBL#Ty1ncOX6K&wP zfzo&|1yGz1_}>beGe;_v36yD{_*{gC;d6hk#!xU*MF}eVdqaiyzseyLgW{uC)7_l29qe zI*g_kUrDQ$p7Se$K zE&OwtR|rbBrF_AsZk@HO$DX zlB<#gswS|6u{IWY)}-3?#V|7A^5Rv_u({~`-r)FziD)2BEMUxC z8D+|nDyXw3w2etuP=}uf3biI#18k@pf#Ey>VQnx?Vg|Go=qlrD42E6|y+FC6oKe1* z3l;t|yn_Z40xE&(16mK&t5YtX06L=Mve-e{)mA}m1XYN&5QKkAAI%J1WatIKxX&q% zK95rhjt>!Pai9(t%%6&7ipuR%0dma(=v@r`8u{2a z!&(QA8NAN|Y5_aBi+`c<1R_G^h(>>J#2*;(Gi9+DpAmzRrq|;XG}U=<&&ut5_y`EY zmM3u|)yL5l_?#AuKlXaG_69KZxTF*p_JVPj8HWcjxV#?04=x;XHfSh<_QX8Vn&iFe zw;b1o2r+sflmWY*JTr(+p*Gi1LGAyoG#2sE?C=S{{|hGZEUPSDIPc1{d`C=8Wyh(X zK_WmRV24-NV~Mb?hOU~wq?X@%z|Y_NpB(9Qvh3Nsi>BFvY*zwqh}o;ntL=oqe1%Nv ze8pCVtqjr?n@yt`Hk-!fmUbD%o8IG}$aukICNIGyrQCBi{^H~##^wtNPW9#_u6k@` z*UGMedj}Fv>VS$9U9!HOn9*5Lk9!KT=x&F@W z%Do{E7^)BODNzI-t#8ty)!|i7aH_ovML98kV#(=cUg(L1ytuqjM=D1Whkf8uIkMI@ zJq*Z|>|$Tnu2-*DUnVZq5&ur}6qJbrr1PLeX#VQ0EG;F6&iVDv!zmv_E3pp;-H=I} z7o*whv5Tma-kuzdhY_qo5w&5W{;`#HEvC#~PkzSW#HlP~-t!PRqC zFHSG6=PcAs9MlV%6mCu(^6W?*DvB&rHRk0tO7JkYu*{V-&-65v==g?a|H;k%R|EF< z*It$qwy=0SZ}vGg8G{thcb?;^DV{IEf9WOUB?PXZ%3|2;)jd}g*N*NuwGCmo%C@jB zjV_HJ{KdK}Qj##M{x);Q&zhySq8UEi0v~R#&gH+c5iniH(gTlTwqzfU+Nw}hXcU35 zRLtymd3ZFpx5}^mj4-#gDC;*s)8ec@nI5OW)VN@Eax6X4^r8A5jQHLkykXEB*eJum z5sWm`6T1+5!-yU)=O{M-;0P3E0K1Tj;vD6WtuIF~(&hFLUC7k{SL0#4Ts(wg!TmMf zEm8IW(|gYQoG>FnK3sRvtB6bp#eB=*-Tcimb=XAZ6Ja;J+YN?vrZKv9N;4uL@(?wN zO;R{vl0t4vTmTP=KpG7O&bufLF({>*5&Hn&F(WoT{=s{Cd=@v0n;xGjp8b{2n*kOE zU%{6)^BqK5>C84uWBLUQwKtnBNt{8|9bcZdTHUEz^47kP;+GN%8&B}NdMP2`oyj{R z%r$vuGI5KO;*n58T0_)XJ#|2G^|F|<7`zK1JB%E}@hoG+@Wf7(Fs-5g8!z!YpYiNy zV}B#Yf8gDp@1r{i-gs^O&dIDYG*j-VLEqpRqShkx17mzXW_`?>%Y@SYpF-w4lp48z z4H-*YC!Xi+Zv5N(xe9V^tq?oCN=rFyE)=}Q$ZSzSgsm~JXjG^p$7$-00vS>O>aK>? zdq9~(fkyWLt^UCHrRZ(&a*cPeDMJH}i95DJAkj%{(nmcZN`}YL_EM@esLv@_C(>io za|sOv_T+`caK;(w^O^3g@j!2ZdrKvBGkB+8|>qGbt;v_o<7pBT+m zb+Oxr_f*vuh(^WMJ(i(;=$C*X;H@zX$d7?=C4m1l_!Fl9?+3;Y2Q|7(CbG5#D@)Gn z11UE}lwGSXp@*DTB`T@<;PryLEoSlE@qO7`j!FlqaXY}MAJQyF23pMA8pQe+oV+C5 z`zI&gJGnKXwSk`afuqj={lmdUS3^`w+Nb>{X`j+nGuMo^{|vQjM!RnYkA0s%c&!#s z1AL8+(vDJaAB0WyvuIUnRXb4uWgY~Y3}Xq<<(EYP@#X#TN8>e*9h|+dxdt0;E#=a! zpaQxwv4t9`;JZE8g3k!7VZ4L23`7imSqZ`~Y@kH7sSa>yY4*SZ$G6`d*un=s9x5A1 zH|~Sw>2iSFhv$GSo|6-mD?TkY{iN8)fG!tWh5MVe0T7 ziXsB8uv(po1L{eTkC9yY8``Kh@5a*KJpTBvdba%%0_gjNf71K$H-C1qgeYkb9*~XL zp8>rF*_54t)zv)t(%p?;C;k9ap9q)nWsH=mBTc6L@C1sD%%#k91C>7${&5aLB^a5s z8L}AxW0OGtVT^$KF846<7`2Pa~gD^IUv$#fj@V2P3paO=lQ6gDN-M;4p;;W3bXw_lV#G#`VFkw1RKcoY<7J z3#zjQYm5wSGhyaVe1#_;73FD#e`pG5lE>u==j6_9l#k?k&UBxvj`DCE1>3IL+Cim? zpooZy^8`V@6fh3nhf;urP0NQ+EMKu{ZUSy1Fi-IWjN?#E$sXXmO9~oS(Px7~%K?;E z9mgy3Sz@RfA3uPvV7NmOE(!p=OQB%zC@n+8z`+p_QCm9%1{NYBP;MKhY>F40v%n6H zBTFwBAlL@@(Yl3oiSt8MTUA@rhbqwPI%Gq*JhMEV580xU1EzX>h3p$V{Cq(D=`a-m z6y28|)enUS!pqKHK)nPGC~D2&laGgm9{_^g>H3C6u!E0iK*U8 zX<>L}9=zj^htV~|5}a`q8P&+pg34z>RU%NMNKdo@wFCDc)Q4n0iMh)KBYUk{%z_|n@i3E|K6RBxCNpOK!AY=Bi*wmBb^tZ zUvY2*!FAD0xEOW*UhsGTnKuCSErnk2IN3;9A0q)X(Doh=ja2X?c$F4o)qT?n#2gRg z>dv14a0VYALM}cY-LuF=F8=qbKpa}_#!v2Grney5`yQCq-@UGc-uG4-0vZBNRvP?U z&;}|VjNY3#p$obAF!KKl(A3fH+u}Mp8TzjR8lYdoviuJ~g*JlH3d6kB!PtGD@7J?b z02FA4_DR;lbDu5^0oX?Op1mn|2mkC%x#Xt^(y@2u zW8vhZ5^KX%M(AcQ0A%klSf4?sqw*GD?24kKpXC+|n8BuKv;aO^u=!^SCg|Ghe}LxI zAAsN5xao(07v}t9sgVdkmhZy4{d@?H^f`hmapMG&rmWW;20!2>CPgF8nFyjaq))0w zhFs?GCB)oJpFEsMC$%∨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 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/mico.ttm b/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/mico.ttm new file mode 100644 index 0000000000000000000000000000000000000000..0ce19ea031664db8d230f7893f683657d72223cb GIT binary patch literal 589908 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∧r3{6cAMm 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ɯ%5xL_%Rgt){+yUv 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

      7&+yh+ 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

      UAzRIB|s)7~IQF_8lxss;2KQ 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

      |ybiv-o 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�Bob<9+S<7dV*zqqHBO=biF22^Cl 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[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

      bW3_H-a=nm&-k29xJ-_G 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⪼uF~ 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

      H@A8z$0p7pat(D30F;U8b}Qql;1 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≫RE)>KDtNgh)wEI%y_pvw>t`}s|~6X`imBu~?* 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⪳0{Ill+` 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

      Cxp2)TskrMRpHFXRBOE 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⏞g? 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 eXHkMZ#Pr91KQ2yz;p@ahzv+L^LkSs0 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 It5;UKxb9T@v;Y7A literal 0 HcmV?d00001 diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization.py b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization.py new file mode 100644 index 0000000..8a16481 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization.py @@ -0,0 +1,82 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from enum import Enum +from typing import List +import numpy as np +import os +import glob + + +class RandomizeEvery(Enum): + EPISODE = 0 + VARIATION = 1 + TRANSITION = 1 + + +class Distributions(object): + + def apply(self, val: np.ndarray) -> np.ndarray: + pass + + +class Gaussian(Distributions): + + def __init__(self, variance): + self._variance = variance + + def apply(self, val: np.ndarray): + return np.random.normal(val, self._variance) + + +class Uniform(Distributions): + + def __init__(self, min, max): + self._min = min + self._max = max + + def apply(self, val: np.ndarray): + return np.random.uniform(self._min, self._max, val.shape) + + +EXTENSIONS = ['*.jpg', '*.png'] + + +class RandomizationConfig(object): + + def __init__(self, + whitelist: List[str]=None, + blacklist: List[str]=None): + self.whitelist = whitelist + self.blacklist = [] if blacklist is None else blacklist + + def should_randomize(self, obj_name: str): + return ((self.whitelist is None and len(self.blacklist) == 0) or + (self.whitelist is not None and obj_name in self.whitelist) or + (obj_name not in self.blacklist)) + + +class DynamicsRandomizationConfig(RandomizationConfig): + pass + + +class VisualRandomizationConfig(RandomizationConfig): + + def __init__(self, + image_directory: str, + whitelist: List[str]=None, + blacklist: List[str]=None): + super().__init__(whitelist, blacklist) + self._image_directory = image_directory + if not os.path.exists(image_directory): + raise NotADirectoryError( + 'The supplied image directory (%s) does not exist!' % + image_directory) + self._imgs = np.array([glob.glob( + os.path.join(image_directory, e)) for e in EXTENSIONS]) + self._imgs = np.concatenate(self._imgs) + if len(self._imgs) == 0: + raise RuntimeError( + 'The supplied image directory (%s) does not have any images!' % + image_directory) + + def sample(self, samples: int) -> np.ndarray: + return np.random.choice(self._imgs, samples) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_environment.py b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_environment.py new file mode 100644 index 0000000..15f4f71 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_environment.py @@ -0,0 +1,51 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from os.path import join +from pyrep import PyRep +from pyrep.objects.dummy import Dummy +from pyrep.objects.shape import Shape +from pyrep.robots.arms.panda import Panda +from pyrep.robots.end_effectors.panda_gripper import PandaGripper + +from amsolver.action_modes import ActionMode +from amsolver.backend.const import * +from amsolver.environment import Environment +from amsolver.environment import DIR_PATH +from amsolver.observation_config import ObservationConfig +from amsolver.backend.robot import Robot +from amsolver.sim2real.domain_randomization import RandomizeEvery +from amsolver.sim2real.domain_randomization_scene import DomainRandomizationScene + + +class DomainRandomizationEnvironment(Environment): + """Each environment has a scene.""" + + def __init__(self, + action_mode: ActionMode, dataset_root='', + obs_config=ObservationConfig(), headless=False, + static_positions: bool=False, + randomize_every: RandomizeEvery=RandomizeEvery.EPISODE, + frequency: int=1, + visual_randomization_config=None, + dynamics_randomization_config=None): + super().__init__( + action_mode, dataset_root, obs_config, headless, static_positions) + self._randomize_every = randomize_every + self._frequency = frequency + self._visual_rand_config = visual_randomization_config + self._dynamics_rand_config = dynamics_randomization_config + + def launch(self): + if self._pyrep is not None: + raise RuntimeError('Already called launch!') + self._pyrep = PyRep() + self._pyrep.launch(join(DIR_PATH, TTT_FILE), headless=self._headless) + self._pyrep.set_simulation_timestep(0.005) + + self._robot = Robot(Panda(), PandaGripper()) + self._scene = DomainRandomizationScene( + self._pyrep, self._robot, self._obs_config, self._randomize_every, + self._frequency,self._visual_rand_config, self._dynamics_rand_config + ) + self._set_arm_control_action() + # Raise the domain randomized floor. + Shape('Floor').set_position(Dummy('FloorAnchor').get_position()) diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_scene.py b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_scene.py new file mode 100644 index 0000000..ed670c7 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/sim2real/domain_randomization_scene.py @@ -0,0 +1,97 @@ +#Copy From the rlbench: https://github.com/stepjam/RLBench +from typing import List +from pyrep import PyRep +from pyrep.const import ObjectType, TextureMappingMode +from pyrep.objects.shape import Shape + +from amsolver.backend.scene import Scene +from amsolver.observation_config import ObservationConfig +from amsolver.backend.robot import Robot +from amsolver.sim2real.domain_randomization import RandomizeEvery + +SCENE_OBJECTS = ['Floor', 'Roof', 'Wall1', 'Wall2', 'Wall3', 'Wall4', + 'diningTable_visible'] + +TEX_KWARGS = { + 'mapping_mode': TextureMappingMode.PLANE, + 'repeat_along_u': True, + 'repeat_along_v': True, +} + + +class DomainRandomizationScene(Scene): + + def __init__(self, pyrep: PyRep, robot: Robot, + obs_config: ObservationConfig=ObservationConfig(), + randomize_every: RandomizeEvery=RandomizeEvery.EPISODE, + frequency: int=1, + visual_randomization_config=None, + dynamics_randomization_config=None): + super().__init__(pyrep, robot, obs_config) + self._randomize_every = randomize_every + self._frequency = frequency + self._visual_rand_config = visual_randomization_config + self._dynamics_rand_config = dynamics_randomization_config + self._previous_index = -1 + self._count = 0 + + if self._dynamics_rand_config is not None: + raise NotImplementedError( + 'Dynamics randomization coming soon! ' + 'Only visual randomization available.') + + self._scene_objects = [Shape(name) for name in SCENE_OBJECTS] + self._scene_objects += self._robot.arm.get_visuals() + self._scene_objects += self._robot.gripper.get_visuals() + if self._visual_rand_config is not None: + # Make the floor plane renderable (to cover old floor) + self._scene_objects[0].set_renderable(True) + + def _should_randomize_episode(self, index: int): + rand = self._count % self._frequency == 0 or self._count == 0 + if self._randomize_every == RandomizeEvery.VARIATION: + if self._previous_index != index: + self._previous_index = index + self._count += 1 + elif self._randomize_every == RandomizeEvery.EPISODE: + self._count += 1 + return rand + + def _randomize(self): + tree = self._active_task.get_base().get_objects_in_tree( + ObjectType.SHAPE) + tree = [Shape(obj.get_handle()) for obj in tree + self._scene_objects] + if self._visual_rand_config is not None: + files = self._visual_rand_config.sample(len(tree)) + for file, obj in zip(files, tree): + if self._visual_rand_config.should_randomize(obj.get_name()): + text_ob, texture = self._pyrep.create_texture(file) + try: + obj.set_texture(texture, **TEX_KWARGS) + except RuntimeError: + ungrouped = obj.ungroup() + for o in ungrouped: + o.set_texture(texture, **TEX_KWARGS) + self._pyrep.group_objects(ungrouped) + text_ob.remove() + + def init_task(self) -> None: + super().init_task() + + def init_episode(self, index: int, *args, **kwargs) -> List[str]: + ret = super().init_episode(index, *args, **kwargs) + if (self._randomize_every != RandomizeEvery.TRANSITION and + self._should_randomize_episode(index)): + self._randomize() + self._pyrep.step() # Need to step to apply textures + return ret + + def step(self): + if self._randomize_every == RandomizeEvery.TRANSITION: + if self._count % self._frequency == 0 or self._count == 0 : + self._randomize() + self._count += 1 + super().step() + + def reset(self) -> None: + return super().reset() diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/task_design.ttt b/easi/tasks/ebmanipulation/vendor/amsolver/task_design.ttt new file mode 100644 index 0000000000000000000000000000000000000000..bf691115522c5fb7ba0bbcdd374548d624a8a971 GIT binary patch literal 6967399 zcmeF43tW_C+W$w_C{5N@T@RRMY38P)siUpOa4Rh|&D=~8(L9hM3>gQFgC?2VqLph( zVxHFZlmZ#aAR~k13z>vcDkF_Bc)&D-QA~z|!2f$a�(?*4DoJf8+D9U6{jjxbOSA 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

      x%YEqFmD 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ⅇ*4Pjy@V$|?YB*oBl?YfBz!MtVotjf{2OtugxOc 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%0Dc*V<(^~Z9FrLIB;^`N4 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

      YZcU9(ae`itw* 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

      gfytHUo$(pN8T^Y}pLpSyDt)?mt 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%0AwD9bwJ}%lAhv@4BbWBKKFmO>CD>&pU!M;+s&- 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 )L{)XlQ4)}KU@T0O%Ep5s*bu5+# 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≪C2;fh_k1bhioIzewgyy~F@{af2X<%&c39b2F~uJJ-zN2LngqdcvVmhsG^U z>E7H4yVys;QfGw!dErx8Gp}`ve-SU!A}+wl*XlWA4K857^0Q6{SR|ymGI1B8gs}$FA}*4JDuCm2dVM5h_i? zRY|Pp2Tz}-MRQ34YriTWl5_Yc3ToZ@P=q1gJfx0z&_VzC`9EmEsGnsPbXsE*Ez@XD zO}ojXq=AQ^k#B#NmUU;nCD?)NBu_jyHCi8zouSLUq{H)k|9ZWBn;)D>vV+PSDTG|f zTU+r$UzXwW8}=u+t(8Cfo5wMRq#CXY6LNrV5=N2oN{1*e?)FoDm6q`o`k$IYsWG|C zJk}~)dUR|Ijyb&w%zlrWM8jg}j<%m7lfmQN74POb*b}Wyt{mT!PG>>0Fi(FJA)tzw zZHx3UToqW&Gw&QefiX)~u6MWJej2qL!9oNrcm1TzANm2-QW(sQ4(8`+<;MTfquH1i zAaC#6QMBqMMWzusM0r;u)>o=G&QF2hif26f>mM5M=&fJWX7G+S^~E1R8>3hQqDkm~ z+7}5!^z%x1-SpIT^^YUN4e}p4hb?bS2^U2ZgYaVSS?ocVz@e@*+VZTghLb=s&zdRq z=o6*wpMX_Lm%YR}i;m3UclzzQC-88sO1pWeGaW8_+-aeVr zQL>$-f`R(tW7Sa4GqI6X8UtR@<$uFSd!HJrU?=h2)G5`lvx)-6YMQ-gjxYg3%hJZX zKs|Bf2Mp(}V*JT}kg&&U9B?ST6JDEt_>peQH7j36XL@_Af%^hjkuR-s5;A3F?m6XS z2*_p_W#edWu2n;W^V_NQ)&cgP@e{WCUYqR{pAvH)h($XKX3!fPuueX(4&wX1^y9m& z6CK4lU-V2~FQHhxX-l}F#qqe7E9a+B7|ZU2q|h%uP03DRg1~WdEL_@hdDlY~2S8$O zai3kJkco)yi|eP6^zcZWDw9ZB+_i(XilkaM_Xd5P(SaWYxhID??8E`zxo9Z0B)NAr z$w112JhM-h2Y|DO(T9Wz*{-tmU8N+m7xSqDu5_hB3HG=;4?ew2m(1htAclH@lvBcy zv>Qhk%%TxJ3*o~Ol>o;u&RpB(^Gz+CzPNwbOVBJX3rIT#pYj_jCST~=HHO*`UuUsY_;8x@yG?OQ{Gn>Oa-&${y zjF5^G0}<s>%w2x2C)zZj{{!N=5{jCJm_9p zo!QtEOURQFNW75FFtwGJSt)@dxsZz_SIs3@@xTh~@md(ghKEx~@~J|d;R5{gl8 z%6j9gv?B*F@A#q%ZJR&}CRhcXF1lg*V)=OS(S=++nlmf2I<(DMza%Fi8?YIiI3e9K zuH1c-+>@LRqPhFcQ3=Tq^wN=HM(vOnkae>WL-Ky6KbjJY5_Zq&Fy$MMlkP${CW&;YSoBGoBb$OB;-v|LKeEqs3>CbvW{Bz9~cxaE8 zmmypBk`#E@|gE`(!kwB(#c)$#^CyO3Tj=yqYRG$Qf7j@UEIQ;>*%`96RyRO@Z4Mj4eX zijt3Ir6i=b{pz!=Pm}Fh8PhTLjQ788o_NOo-WU8sSZ;O=2Mx%s0Qzg1z5yvu7ihkF z7thdD=>*MD-?w{SL$XTpJ$$lwHFOP)iuXrWMI2m&XBDeZ^eCKJ8l4T%A(iYfKI#X= zI84SJ)iqi3AS5v&hFxh{{@&8QPPm;`H%UHpnS8$GQrgEKH)2$cS&@rUS2xbN50YZH z!&JY=Z$zk~dlYO&qUjBH+Lw5&zL+DgOb{D&!KE}vbA&F2z8n5ZS=JoFhvc;XE4gAH z0Z+|7R@17QcV_j|Gr2~NiwCj#JNOIgs4)OYM+R^MN*47M>_{)*0FPODV}WL+>D#vc zq2sf0xLqmf%CRV9uYp<-nU&@nQg=1%*#LT%iE7mUY%PBLfVT)JY=F=x((S$YRR3jW zDivlg&qz9U`B<=X%vq+W{%isBhCV9%`L$#ro+Pf_Kcol0YKrpiP`+L&+R?qm&~WvI z*gcMcQU>d1yfdE#z2O)NPU0+YPlG-EwX(uD6L4t!?mb}F%N^2kO3M3Q&)qn1dzX4$ zhe56i;fv2OYwkM_T&KM*(=8^5wtAs-Iw}y|Uha6&fflV1(II;qC3ax=)G24GMWE#R zLr;Us*+)<7!EJnZ#|ixy`fEgjLd1RmG@ZSd8k_1K=JlLv`H$>!dMtd?I_qy*6;3S} zm%_AKsOrtNNskEbENcm<#|}v@3#)k865tGPY~fxbDx*5~_8W5F2F$ z2pTg(#CXBDt|;Fz?4enF#x$SwOLKcW-kDKUX$;*roqdMoEEP5C;+3TCaDNZc?IGP8 zd@S^H?YF36IB)mqZ>e)K>fJ^p-F$;XJD}N~&M+J#(z~2(&?GM+-4;83bQ{+dOm*sL z{;fKb3KbJJe7e=RPDHFi)s~<1&M?m5gL#_KoXlXyGj-BGH@Pk;W19KEPuv}|fBSG$ zuO7f5%V#4=LFplVAsB;US_Mw2e4z3|_X?5`G)Q5{g?0sXp&Om`5DW!r4Chwlb3}Al z1+xcR({l_Jhg33sp#cV8ywlel`H0y9>m=`~dcgH{V>k((6N`DUBA+#3pm;3q!Bsa& zka@zGO8<a4Wa7Hv}q1U5!?^>pL z#ie+mZokZUxx_V)XRfP2ISX;1as_hChkZg><^pVcwS*lfqj9d%uIcNMu0qCDuPya+ z!?2|>7HsYI@YCi%FodVaLdDwjc%>9@71ibdZ{H%_GX>^c&dNn;Ny|=?FT;7UYH|B` zH=b%k(lh*mZAb*v((XeIHxC`QGgTfouQkNK2N=9j%OR^O`t$VpUq9d7?mu5+$60E% z9$KbCRm7SGZjD#*V33vJN^c8yJVZ!acI&jZQEmmXE!dj&(Bpj#4t>j!IKkV;Hzn#c z7Tmfqir`UoG`Q(|i+`E{xiq1TWNG1Ss)`j-CYO4%Dj=F7yD3+{l$PWouv!RgGWvWa z2-}Ub{(2{w-jOit3e`o6L)N(=-Br6Ut9I4&`JVgDZEN9)8~TT}?%puDmCBrGE>oN& zpO=iLZ_R;kV-c3&|Bi{-p|&IBd0btdo|!?fzhrHIRGe6;io2Xy!YHmJL@RvAl-aTwdH}F+lFG-D%v{ks zpuQZ(ODiwVn-25HP(~dSGd1(c zaQ{^|I$2hRaKS_x-KO6SUopyWC1V@{GTeuV!Mec7;=Jh)3`UJqidiZ@tF8LlxH2}M zz!BQzmNsAlQRCCHpp_p_VV}n(u&VyDRiuNZxc=PVeEO#zj^kO>?kU>+G~-NvS1Lwcc26U|@n17l^X<Lz-0Rkrqvw zR2gH>uIZ;%N?vGrpBkibATf^)W1dR^i&wHy$qqgw)b6GP-%_&2Bi->?>W}`H z58IMsYc(t3l;DzSL+V6z2X7-2%d{^KpxLkC1fNMRvx=}J=?#fN%Zrs^VnCVuRnM6u zzIL^mr0V)wF_U{C+)>1M+K%Mslk4tvGKu%u!ch_;tU`%vD?s^64VkI}%%wG0V#(09 z)_pMhW$q7(ch!c3g?i;#^eZRSwtIwY*{m(#&*qI`slFKp<4yBMeLP6E)I~-J7|_6O zfd2-+50fX=X21FiHloK7Fc5&0>p1&K>U)AzzP(HJF9;t0ewp*`8mz>Gm?_kx_)cBb zAQX=SdR&(q#}7DWa+sGvUlgEgo+7!*WRIe)LapKZ$9szxaEKon3{(T&LkheNiBg9y z|N70ZTaiU*v9q{fG~^4CZK7LeLgTS$4tOsIpfzoR)CIxElO6(xEG_jPhTCq6qB5z4 z#Ee=%v{a$qbH06|R}1-C_?aiVu&1+dD82W4+@E?xwB{a>y0&G~LA%$-0kQT-&b4hV z-!xjOy&L!evFQ6#Wmpx-LT>)2cWy5Y-nasH=7;!Ak^#&38;bw>&se)w4xkpmgqKDh zl}A5x3H_(D6~vV>w?&J;HY&i2FJ*FNQBB&(K86Zr6-SHS}ylQbc4>tX#1XjYe!o14;-2E(S>0ALL_rh-~k6$MZ%bpgr7#3ojdc20TV^k^tFn zGj7?&Rqbf}5tz~Sp?*NUF64~pK%rsQQ+dB0s4NlfK1qI-*SdmG$(v53E8e0UkRY8uRYflZ*b1*po=MsiX+O}smZV6hYZzc z)9sH#42~$JWQD0V(&?jz0VOfRpL2#!N1sMY@wX>hyj5B^;z`#4CECT*-Sc_8X{9DJ zt4aJpQ9ks$NW=|3cBlG-R@0_KFu)b{lo&)GEGDlnJ^LfpDns|SCitxj*;z>a!?~ya zwqK+;OGr0-gVT%V;$l!LRO^FJfv)ywv9hyUFJtS-F*G=oFojX0^bhIsAI{cnnic$% zv!}p+z1ZlMRA7a(-tuC6E727m_s1`@2#pwgUE0dC8JJY#hIl#$x;Q_p{!r?}Gc0*p-G-fWzc9m8^;!i3feaqQbp6v&)=9ylU8oK9@2NO{6biT@ZgCicxfPE52@L6P97Hhjei1P4X+B z96OHDBr_{tHzJ~Z3>7o+z^jFxYCD=XZUvnQ-VQA#2Srh$%!@{3T&pS=q?qL4;4^6- z#1nrMsDw#FgM6JeJ|ZR77no#t!14i(&6kEx7e7G|h3iu4{E{0S$)JpQ{n=JRS&OMr zds}B{P$Sxl&*+vUvf??_qSL3@4ZVy4limxH%P#g|LM+rvN?Z_7D0@F9uJ_s@FGMxy zeRAHW7*}6Ly6r%#Dcge0zO%;L;A!t6?`I?ycATC6LzHTsDNn0#mKJly^iMIdmirR%ipqI3mUFO`CJR! zm(9LBOW%;g;rontib-&jYQtw4QXgUx_;TCnL81{zj$Jl<=w_QJJzYqDAKzZzaNpK6 zcNEgxU{U90$scVs5^m4vOeqBSvbxm~jGePI>=S0{xo&;d+k6<`+RhanVlGE1E3uMs zTcFA_>(6((u5RP1*Lo^7%kSMRRpdxx=qjKn`?h9FZTUNGCnSsi2#Q&1N(ql2M2Lwn zyDahkkb&93*0czLrQp$B7;W@@)Rv(~P-*G-Q+ z-1#_6A+D+M!RyWSJd#@H3A%=Q=I)E&w2?aI>5la+H#b<%*JAm470x1o5k7 z3e(48+iQsOFwOiQ@8vo~5cs?c5c1L@5VzqB-7l)Kqp1~}LF_sYN=r;k>RpKBa#*pe zfxW}25t-2PSvx@Xa-P=}z#TVB zuQzZOH_ZLN%G_dN4Ma^B6%jlZ#jvvh6lpHEm}nu9|3FIKg{TLn;<9z?SL4KwS}@1*Dxz5lKj_+q2*~HWe#VZ~PSZc0!hw)E%MtGU-<} z9Bhs_dUB_CzM}u2s#cg0p(h7$$dvp9-}sSS9d?5`puPr{Y>Oc5{!V_^&;o0F!lf{mRE?HITCr zy|R~Jh4mm)DU|O@_0NYza&>!ukm6Wfddx1OP(1j7c8Z=y2EN?V6ElA)EK3Nk3!%t5 zx^sW;_mtLK@Xzz%|2KYn3GCX7YFH;x|Nhl0Ck7JYc#u2rp{}|JXHyTsGFRH^(XPi) zrWX1vPSzpm=h-=LeuE4jJD=l`Iau@RC`8liue9d$l7X)T{X5LOu`tZ>R+)FuEpGJCvhN)!wBK|#5 zHs@3FfZOutq>h}^y@ zm!7}Fj~n_SkC&%F7*VH$#D8FzqV`_BBwf_yo;B)Ax?g7P@;)5UgRKR=e6vrxf=_&# zGt}Z>2*#Nu4m})-$EcjZNftJ`Px)CcGHo}u=;orW))O08`B8Tj_x~Gr3FNF6%3T7G zA&?HbeuK)_k*(MoAAbc&vZDw&MT~WU3kIts$JYDrvH6P%Pg`@H-OTI-!z@w<6snre9l3SY}+M6d!lWNwNl~C3&bkyS|+96Jq3@ z_2E}rAZok0-j>lwNRmp9`qv$)!#1!RRUtyMzmcgGK;mFmIdm^*xu zEvPLLB8jxA9F}>9mQ zj3}(O_IrRvXQW8U`<%KV-ikc#_T%41Rr@7vsZRlaW+}^zmN`w}fn9?%>`PKZ;bU?= zz+l>fe>gEcq{}6+TgZG|xwjgedkTd&@%l$6uBcs7z)Qew!dMp-9|5#MDD!nwN4K`Y z@$(*kMcE{PVtsMpKdrMt7{s5L*nqYkscO|IS*e%Qf3iy`p!FL-`(5`*S4Sj`|O$0?w2yk zmaB3N9ZD%6K9U&ku+q2lAwSnVH;r1d_0M!M45rry3vmTn&lSu2nkHI*E%@>T8GYyM zz9j!vk%aMw^_@hO2Tk-@9&6vb$w_%^#1sR|7^#8AU&+%3-Bfs+>Ie9VG2IkgK@*{+ zK3=hQij0c;I}78@Fx+zm4c6MgKc~!aJ_R6y?P^-l&nH(xzmW4!R-JL?dQ}B(a~Q)y zSlV(C7$H9xj#za}w~H4p8o`;3zl!?4V{rPr*(YA?vxIGO?70ap_K_UddKNAogqLz$ zF^iu(BNYQ#0*l~^ME#?z-`9OyciM7T2^qnsyH~m*U!C~!Sb5yx`1ea|SQixJ->)xz z{6~RWAwY=ntyO+&yR&bip3*k#iR+xzta;+LSyn~{!_ouzojL9-dA;`#WqemOB)O4D z@50!zUlm~k>?VOLD!5x?j zMa@H=-UMyL9z&ZRGQIdw@wF~<{G*pR%xhz*b54g&r+??V(4T8{vG)?vJM2J})o@k8 zgm{a#+k@SI3p#C)amVB^9v?8?Vvu%PWNgdN1x{z_bj+jgn66cMIF_}KWYqF+BKjLw z>dz?M&Q;7T=)G;7A`R3Gg~HS7MZ>ctmuv*Gz=%ws4fous%~JS%-_wTn7{}0j$zS@H z6m?q5J=q%#@r}8EGQHx}@lTy92fCj^Ji;?fz|lGNpUb0hel1WL+ohO6v8{IN0l1*in zaWK!=t)(Q@JP|tjzXS!+29$U+%F@l?iA#X%%;(ojJ)oYmOmkSCoD3A^8zuWWc(=tg?z+Q! zA8Lj3LNa8Aw2$F|0H)VTS_B(yw%C*<5g94lC{3VFu2(At(;&U^tCFV-LC5wv4{L z>Q4NaUBdJa)lXQW|9rP$`%4P*-re#b>oeGY?Q|p-nad;VN6tG z^(ES?sdbi(9(wFClIiW^J{P6*M+m^9;I!39*5;kmBYW2kh3^jdf1M23r_$uC1 zua4w!u)R8B+a4ok>zqf3Ex|w zV+N6Z07%DaQg_J`DrkmvVDP#cQ-{wzP({-tm-0@-%oaQHIW#>?2nIU_oa}emIWy80 zP_-Yg*mea>mh~8sF1qwrIS>}TYN!*Xnr3iIirtQ2zoR+BlQb0M@8hO6Nd;8g`AM){ zQ96@zR3usC3t4jzJUn#aZ00Ta?t?R$Nq<_auNz9q3$ZjZv*5*W{1}EGGgB`)pCKOc z(0@n|#{~lz{KhX?ubSLS!m4<1_)a2hzE1Zn1Vkgd^6B3O2zkJO3o~~<@%Ptc!%e2G z+t~K9>@ZBVb*}oUg27__oVb!b2s)Rkz*wA$=Z$qbT!u3Aesi-Vt>$n_`uudTDrc@a z%L>%-p$AbfQeNomb{=^7Q>V&)$K$X+)V~NO5_V-2zj0)Xa(ajDs(Js!AQRnl$U<7A z0XlTQD_RFJ^bNRcx)jkKp(e zL$MqrAV+rJJ~oA90se9nm}Hn!dB5h9O#G}Gs2W70m&2aTvSx|N?aD6)Qz;D(P{YWn zM{r!&koKL9lyV(O%JiG{E=d6TB7u=}o76|TqG~h1kO3NfPq{DXF-9hnE8icqh!hN?L0^lCgbKDqOho_(%BZaOROxfV5we zEwIF3;)+oe5&+zc79t~Etj$Bjv*r77egjYZE*-$fs+0Mj@lB0K|C+sfgW9uhtANy8eQ06JTB>gH?E;;Ujy=aLwU_a=q+~H)G`FbA{LqIXJTt4cA z3T@ywBzY(B|MN!QuF`2MSTez%gxsl=y)R#cRPxu`rdx7erT44F_maGJvhT7jU@weY z?s3kY@A~}>vc|wmQvE@=)mjydKUD}k1|y}KC{)*?>7P_&Ybi(-w!}I4b4R?}!HI32 zSPk=xD?fJ4hSJXPE6&nTzer_amb8p>Pk>!{_$d+>J^|~MP~Y;<)8ntI7zJs5{pZ)d zS?L27CWgKzA5=i*`~S5X;Bq@es(~35&yvN$$=;jc%v(KqJVUl z9`|w;te(W_eI;!gZ_C52M95G#3#lVdQmq&lY$>!=TXa~PqUKfc|El|y&PaxQAG=xO&0Q!+yKZ=6~ zU?l9y33EwK^D!rfpPCv1a}%z>t29k;Zaist@g4~MR4J8p0hZ2Z~be6;Fk6WurG-g`TV5vD8;ZLo5B!TcLC?r#91-y-Fs8*v<8}-1RzSEBy zTGzr%Hz#)BdejXGBWh&G{VP7AIQS;I>2mFUNrk4zn{{HSu@_qIvtTl5QbXn@ZA?%R zny#;~HoCT?sk;O(&Sv^7+9=kcbDrf1ji?9i;l7!Rm+y{hpc_VB{hXUDwX+PMN0 zw2dht(1JnA`dE1R24_fx9zW_cfce~ahPv%|XZNZ4zs{64@3pUv(~*8jeku%WJLU_W}ir)tPOCi?R?R9>F6$bWP3I zR-5UXQnOt&Ev}|E?^)RM8C098i+?s8`vovHLGKV#l?6>7v=?ujv^k}$XR=46kA496 ze{*pxC<@mOg4{RXZKu@zO871*xhE%!-*Wvu@R@YsdT3`+PcNl|A?xI)XR=!OhkUx4 zCetOsAWw*Q!3f>J}M$4UEdHzKro1a#ZAhl)o|wZlL?8J7?+vaE5r|)Hn`U z3wS9EUha`5r;OY($^Enbzk_|2pl?C`lQ02bp=B4|IEei}lFkAu3bbv*D+r2o2?$8d z(2W8Ef=UnF9g-tT35e1v9U>jl9g0#4N=hglgD4@TzyN|Ejnx0l_n+h0^e}1Q)-@Xv!PJX=JBJ<`RJSxzz z{OLR>Lj~|^ex;|=B4$*LK**FAC!y4Z(x|sB9DQ>l0sV#JyrO`)v0t!pXaPVX!v}Q{ z6b|sWu22sTt7(q!IGzlkaL^5oH{R-s*fszx>EC!C-}j6!!rz#Oxt~7Hb-fx+Z&}Ab zA5h_OZAWzU2V(+bZ-Z?LfJfJfJkClv>5*6xie#N9EuI_(dRWv0R!)RQ2@ z@O+I>s*6xC!s@C;kLdzbUYKRxZRpx+WE!NceJpgwScQa@U@!nv2=GGa(fy(u>e%Ya znh)-@Dxj1c69cK-y9coXslu|tyq_)BbL=3p(M&;QMM0(at*o#RfLRJhi|C20&6}Ak z3kEq#OWpvt0N%xqNO-5rM-CTjYT`RxD4rS1Pmu?Kf{e4T85A$SDJt;%bMB!oh^8#| zx&j^%1lI_-18?Ywp5X=IIdQkW(8zYht*!*djyjbKH@=xj8= zMi8A61`2rN8#U52Q3Y)%kz?d){H!d%|kMleYQ9kyL3J=3W#rU3kJ1cm0{*I-2W8* z3cJ?YvF8wQEKaT6O-($e8UJ&BH8BeGZtBzf7$C;hcjloO2Lr@X|DB}(#VtFFJS4#a zj$IoA^?>?MB^8TPVK^o^?f#Ipt58Y|Tq%mK03UCguK~hClCx!p(S^F$^Yv1oWr(wx zC4}js-nTb}h4T?}W}q~~k)k8ECzf)~ggNUA0L|^k-SOz(C^i~jyibEgwQ;Jq^&l~u zb6Tup6=OjJP`0t3l!xKl)w*aWPm_lRlSktD(v7FJb$vkxbSKZW(NWKIS>TnfA#){4 zN=<>koOfDSg^BaBe5=Xbep&V`|j3vn|(KF#>t*zH##BW~?GL?yl zxd4r)o1Z;ZUCdNrHRJJtmn@{j94KoZm(c2qux?7COAxFm;a;fKOQKdTR3tvq}6 z=}m9GAAkC3Gpr$Jtn{^btm{@w=RVHMsU zLP*&{Ok~>LuB7nI|HXVgBt@R2^5U}nN+nLf4i_9z(NDi-#2qY z69&zOUBLhg5jH+|JnmgMkMEjk*4I8&^X`M!K(?SLZfbNf8+j$9PNDHeUxXdMmuP1e zxts)m7Pd3OvUV&Qdg*UT{vp7slIp1QYz)+tk%9@tu(NYtjps8xYWd9|5r5KUiU&_T zH0Y@finBIR?OV=736x9zMK>LcS3CtFkG_|Ya?+$dNR%5u`F3jwfQU$FqL#RC7xXv@ zdyUcN(510+uYGzGli`1i0}qJEN-;kSqG{j|T%qnDjaYap z3OXc_>mhW*;k=7*E?!#MLEO{Sw{54cQSrVHn5G^@R`Iea4TzZbS@ut8BL;`781 z;b>ib>EL5AAMI?#FAZ4ex|$_bRqTnKG@#iimumd!xA^D{llvd8^_@Z%$W_AIZcgQ*9lX?10MbiXImJ%-TW>wjda;#s3OIVHl8>={Bf3&AY$9_xGl$ z*!uwMNBcG5ycvn-+fX#od6(lBY>Q!1fAwtRsa@f72|3bw}oKJsAhNCzWBue&_I2yFH+fH?RK#uPSU5d z=phg(aI+X@n;9%)eX`oG|Bl~YtDKD(OhF1DT{6Isv_(q zavZbY?G#Sv=+)m1kI&fhJ%fbg1plK*^+R_dN>42;wXBY!?i-UKT1pynsfWg6OFT0N zF++(K{8TH`vNxN;u;krU3C$QkH zjfLce(mL_z9Tuy+`_~T=U6&-gjnC@51^^_X7RzV(CO9ky6~+&xGl#TSJwgVN`fsUI zj7gJLz3eBW{(h>P{u5K(S!)v&5m(5csmFOG#swy+9`C=5IU1DZl2Rw^QjJ`4Ab%X= zSp^^to}of9qxM|3F!{jpkFRMm=ze>9#sBjh{)ZyiKcv{*)O`14cxN$Y)1qusHIJ!2 zkE3kL1vHgZ$#95mBY`_O7pKCjP}p|E1e7uc@ieqkh)( z?`zv0DgPUuDNKpaTxHFH^VE;+?;mj8DElC$=LgBmdfcG(tnx0SD!#SFt(XH`(Yv^k zquhM<<#C+KQGQ;J?{<4qY$$teo_O{W7Wx1NqHZZJXHuhaFv`Vv*SgM0-snOTJ1rnB zke?nt$Uxg!hLlQtLKx3AtT@3Z(M;8Mw|w8y|~*ROd+$LAFmUSV%c>`#EgclXG0;uhW=r6GHKCLw=zb?oVAm zY`t>A5Ge#7GONG+h13Il*0E~@b-zXaH$h_4w#W){vgLNwn`GoT6j#)N-Jgml3u!M? zZY2S^NF#yETSfkON;Z~Xi@h|TC?_Q~Wo>}}t|FaxDP+BtrZ#|{$c1wwbM_RaAbFog zNHTm0#Xj z8U5gIww<_a<2!eZJVjVw70$H!|B8vqy)0vNuNYGpsQ>AC9a24Gv9Mv`61Y z!kmXD;kdN5O5lCLhh*WhHX(vEK)7X&G9= z#%!;Qg9FGASl#vE_glSqv=LtWhJ_Z7kFs{MzkJH8ya$B*PxL*x&K)qS!ED1WddUw0 zu`CZ#6OGPioCVc<3rz6*Lx}(JKLLzCfRRP2lwo}G(Qrg$3kw{7$P~a32-_S3iZxch z?P677nT$ikpyDPUa;amtBKao5=374FZIpA~L`K?eOiLPJpv=FD_&>-t*_hXBtHYx{|xDvX1s zXx{N(vEZeGb1#Uog0n`Yl+GM=L@;npndd zcZw3AE3&q)E4R#4~Jm ztI8)*??PscBk;Xnm;EAHGd@PxOXV_8Q{q#Ah-@FV}uMH#Bg+3fJ1A*AW=x} zE@;L>41z9B^O!RjaSB0OG1_K2o*3V{Y@4bTf_ToP*$|1C7Yu+ub9*=S&Ef=444UB% zcT`_6ag1>~cnpeJmv?%qdKxG98Vr?hK%M`{*NPu=!p|EVK*9y;JWoLY&%smZF$GM} zQLEt_Cqbj)KFMwg48k*EK0B3%Utk>pO}H~*UJvwCpCYGNn3BQlsK(kL3@v$YX8wm` zR<)?>SZIT=Q_Ha@wBnXM4rBE+;+lb;+kQIZ@R0e(jKjHD2DVBQLORV22-;6-wl-hn~_kF)umZy%4Il!%tMjp>y+vzVjXz>CArIVtme10%4g%Iu6$ess?L z4(BL91Xj*1zr;G0!Dtbl;&QjgJ(|)A8gG0BR&+pX23>1u@f9&Gz@qKX60|F6B%Yu2 ziVzPoOU(0XnPGZ94_2NShaGxLj~pJ5~|^gxTy6JgO_>&hQh2eDda@{r@CDJJ&|@e;*T#4+3g&>0!8J)?r z((EhaM~6djOWY|R@rGYz6DyEf<|gJh|c7OaY;ro`p`mkMJY z{2<{SN5D%3j{SZH4s0nsW>pF%JL$GoeXxn!Tz)zE{M`bupa7i~CaZ+k5Hpp@Nmz)s zsCJNT-WR95Hp4RNro|2&$*g4q-@6vIc{B0vG%XV~dzGraM##Z8`chd{`P-ksq0ZXJ z%v#}_A%y6r8J@dRS*weFFeE0f?YyGZtT28??XRjtE|Yi_H-#r0T(Sq1+*gs@^r=p7 zonJ%k_2DMS_YEsHldtYICNJD$=;n}EU>=;I%d#&Bz8WgHi;x?F38O#~z9qMDX&_c% z!fL2K=(20TwO=L|*Pz2ABR-v;y4D#INpHo)KCgRY=SOle^G8p=_#D1x3!FBn_KAzn z2V?C#xg@Y}vvx@z-v;RcM>c^jOSiYcMnch&FvKV1#62yOSfAZp`$gmyE4v-T!9N?> zbTaa=<;wkl8#t4TrczT%$bfzMaSnlZOedj2ur6Pe@J?T7mXFIUR^c*6_zF6~T4QT1B~ zyP15daPb%G*;AhqOw3>sKy5QVn5=1k=NP8a(q|+;!| z#Os~flg}{xSpOyRCrHry+6_qVnwdG24wX7OCU)G^3*W2AUe`Z7K-O;4t%ISu$MxMa zgPUUeuhYp>nne|K0psCNclak``!DVHk0SCKt^p~sDuxpG7?jQ3I-*HI;cX0#*q?n@@{iYktEa4?o3Df z_9P!G(#XW8E~nOe=qo<^l^>OG?kTPW!4h3bZAWQY?_ud(OgqZJ-rrjo#Y3$I!6V>D zKgs^6zd9}M&N%tO&Zw2Vz2p8*j&D2oA9#G^#Ht!b0;J8o^*A+6848}EPQ@ZVT@KOT z^<|0Z=+?-ffu;j z&RoG*p9XZr&OF4J&-9zyWYyNuf6(9Qw-X>7-sERH(z5^>hH_ z-1J#-LO}9q*USZpI_AyF5fPuc!B^z1;h7%x8|9J4qb8R|gCB0@$z^=lyZQ-A~j z07p!kb83$_pFW18y9V(YId&L@Da(`(T9I9qaga{ugU`ia3!`~e=D1w+8 zN7ScDz@^6(meMBxhvo&#lV=viZlmhcIL9Uv3@OcG3<}^(q!gjT3P$TQ!&zO)srN{@ zz4m+Cq&cDRleI#^%{>Kw6#L(r8I6Z)lXwxRfX{)flrRB=pS86KJmZKnpN)kEi~XL< zr+X%jO_c)Qx8o$U|EsOi(~%Q@V_ND)UXQumC_{5~IDYs1j)H@PE?R}p$#C&f@*0XmCRTY9Ne3=F@Vlyw}NZN6nORI*k*4 zCRK$X&$w3-_eo>IpG@An3mr2Qi`2JE)PH+{*P@=-p_vZKbQ;8>K`J4P!bQ}=c-Ahs zrIwQt-^TBrTMhhoL- zffh`}<1P=3Vi6wiQ$4leNg3q$-c)?gFUrp}D%dPG*fbtK-)v@j0bm4xg=9juJ4q*7 z*Nzr^gVU(e2!>j(N2k{qc21x1$1kXpSu`=0MByLb%lg*CKAolTS;Il>15L{k*>qPh z^(0B$@znamIi~OARsl>jS{j>wJ*lBUtsRqgOt+alv0rLzd#xpW=%*0rC(_+cgqTpxle9TT6xfbWSX@}r?{$YHt9 z{Nt|1ftwL(RxM7Z%E&xZTcumk(L_25U#P|Q z(!bc*dvbVHcu2~ogw(6?$k5B1T5-h|f*KHa1A1B0=_NbK9xcBNGt$&E7GMu^+}Hi^ zb~8KnYJP$muhb0xPuHB7<{wi^R|Y)MDnqG4mILnZxtTjo5s+=a&M`^{qjTGK;L!oh z%E#NpS?jdYS=F(nbue(a{{h@z*Cp83wDwrw7Bak`;q3b!R4^Wz*J^VD6C5fCPK1rm zM}mpWnU@U4hI^hZC#t=13ug8v41YI&fzS6&10ZoXzyaPg)ME1K zlO!U&puV7#Q&KJ3mp3cE=$W^@SAvN9MZxsjDbk?l!)u=Hnou;IfI2x}qxh9JXE<^2 z>GExzn*#8*i+mrDZg-UEqV4@mQ@nN}KW9K`M+Giiewd06Hlz7vN1zND&^qJK84~YJ zxU^#3IWVHgSRXaq!Y(^wnOF}gU98bNigq5?O zB(3cA&l2!~t<}5s zK%tPxf%z$fOIZIuz#_5l9CP9PIF!H!dDusNG$o1>hXIPZF81MX={Mw7y#db-Ar6+~RhZ|?fTU>r=F5yfXonXnKtZ01KjI(#6Dvbk{n)6`|9 zJfXD(=RFcg`Nrc&Y0hWs+fAC(6qe^hu{M5w$Z?JLe?)b#?D%-LAea8hzzy}95dU3s zv*A&$%YS5!p5O-bO@!QeNtStV{!M<#(*|FzA4w>&65U* z<){+3>_2WfR;OOK@w!BBMLNwMYVERLl;2)OEojV+D#jH;LwP5HEM%();Zc&t+5LOM zicE#$&<6T96Epw?1Je~R>2$G}+;FKI2)j+w&YNHuFU;L#q4C|gE8q)5MrV8;-LJdI z*h|de%Hw0iUt%DpzJ=%x6cd!HYV(ilqdrcbIbX=UP~tTNgZ!@&qnFnPqkyO4(betE z?`bsmGoYu)Fyw5}<5@^xl?=~oTtSgUUO8XFfaC@FDLLA#ox&ncFTD1Q&vCPq4JjW? zqZOMvHY;;5e08>8jtWP(e5q4-e-QiA3$KT+FVR4gVAK znY@&ZMr$KH>+t!zFG}mI`202bd|1|Uf4DagGf~4y!^u=ZB0o8FJ;N4S)(@Nq-%y#2 z#Hz)*PKB#aJZB~U4|Ur=2V}BvbSZ5xe{%(#S&^FLsNszM;clleOVL(Zd52~N3VOo+ zVJWAl6EwJ-%-sL#BFHj7i{Bopp&E|Q*oFq*PvJJntN`F4q+{ZPn5M?S42q|x&?M?H z=47DQwK6~Ar_mcq-5%XLAJ20TnOw9?D=2Edb^CCl-#9)zbVn2zXqkNspfrGlF{Cfe zn(@r4(wnr}K3mIIgO6o&?T5}aCC#DCJx)m(#EJmPkHkT{g9$z4R)y zkXrs*Mc}Gu2BcAbIv@K{S<*}p789`wx|8KUM(*yaJKT9&(aBc`XJ_C$$V@XE8+ot2 zZb)=ncs>0m>ZF6AK5DO?RIy2Ccwdo5!Srp^?P^-wm$$Ee27Xq+4ABg{q0bDal)Kw& zKk~M>S;9cufK)8}bAgt9|L4uRLss<&+VvmphfHCc@0jmzwtV|)_C-7Q3z7B)oz5EF zspKn9_+rOOyI(=gN2NE^A>|hm#=R_^`$Ozu!%Lt28|(8Rr>lMO)Aq;ZDNOz_>qS0X ziBSXZZGNx8v^c*zUSo3;nVom(Ld0&ZTw>q#T^@9(c11}LIjajOEqOX&E$QSaLeoEw zwUQ!f4lib0^<}?<`6q3(0at38Z)~qhp(PY9$Jp*A^cuTp_{3 zww5%+By!T-DI%aP$lJ<32^Q~bEJKMjaXCfL6nJ2p<}PR$QE1gBG?7h}YAJ4+Sai!^ zLi4x!^GH8T{vlG^aqD4svK11miuquwl+_t?5FyHX zT!-7()d$_-u+_m7`^9HW-Y%K^U_KF6ks>Dg#vBN0SDpAZ!itc?EXQUmStmp9BQ$q^ zqU$K|jZBNaJZNotHo^t%uiz9rXdyrIG)R_+4A!js)Sm#9&>Hx63%g2>e86z#BeDX(C7$K1*=W90J%#$^ECUHEs%|a4g%;C-sW5 z$d9&p%lU~kHML`(z;r%=DSp1MhOdW37(UEbp2Ia11~ib{i-ewV0BiK-T+Hm3R$xDB z46p~RBz!9i=UN0FuHgf)jJp`T@OT@BXd9gDMpBC-vuNHZ`^lC>kaudtv&9^7V8 z%qD90QnxdpY}NVpp)q7au#5WZpPE7AmP7{wpjiPOe9CXM!p_z30)L$3(Hwd|YxriS zGmh=TT!5cBMc-qq)Xln@pEh5bj|PMHQ%}8UPO>PA^kIN#r>Qce#O*&uo6QSgl+cpt z1noEG1lITI3H1L!(VKQqeX*$uc(Jm641WkVS5m(?)}5%fLJ|~4pP(&#xYqNB0rJj_ zg{fjto=)WTiaJ8s?Rj>^Et)~SyQ!8xvI?QplEw*~-M|EE*2s||>FGY%@p&ar+loTn zY(c9t@OeLeI>vERL2{4CNgyDdm9x6-g# z$e4@HWn;rh)j(lwTfdxlwuK1#d=w9)gC$w{dH$I_2>Qf;ShmC|WH(5v{q!ZV>;cq> z){A;V)f?k1NB5)T4G%HU2Ck2)&m0tFZA*9|`F$le)-&yhv-<`SaLd-DbBk5>PUS(U z*DQz&q22^~{@bk?;QE8pTGc=kux-#BDs~qr))H8ox6?F%ZqXX&d)XANGl4ssOfF^f zFxC2hK57-*Q0txo527Fp`yvS9m6&!?#||7T8-*;$hJOzZs=*cog4u8~Yb^<8Ri>;R zPz$>7>CilI3l6MN*mvH4L{rcziP8`^09d~QS|!%wGR2%*Jm=^y66|?Xd(7cym?_FA+ zU)t4!dH%p;E10IiZVWPyhfT1_ofdqT9ZyE%!DldBx#U(6n{ROjF++Y$aI_W{)5imI zu>>b`MM2kDL@6$6QpRKlfK6Bij+YE~!@HH-{437Gt3Kkmye$LR%IbjjVyk%kedp`j zm3%UoxAxstKd1KladwW2j3KrTq7+Z+P&Bg@Jlh#DKnlP&{!yhfUdq-FRCp%-kxfiXKm&yYKN>j9En}|L=Gshw5<8~Y?bz;lW&;`I zMr{^54IkWisqD~km>>u_pSTg|Fqoh2>2XDSH;oR)J_9lQ2+*ec0b$-wids$@4$DdT z&1tIZ{%%YqU&d@EjgZHs9TdT9G^smfSEIJxU|u~st+6?dL;pgZ)GSe!Ks`TZc{r-ybc zo?Qb!#TW}PtXh;CPn~+RH|}u$Vu_VKcbTy-00QJPPBso^&IGU&!RnG-;OtH&I>~w) z4|{DLh(wa~M68cPeLWX8PCqQi}aaYhI@P7K`kn7fyNg_FIKb zD`@W@$PY@k4m$rUbW)4CgJX87W`S7%u)B8(XICtG*9Lw6eR>XV^9>=~ECI;gzd(|C z5yW;?c&)}a8%43shjg;X4bA-gigfPqq>DB9*s@u&VxW#)aAnPA*sX|!8lj>-v0I#V zAFSOD*FZ6Pry&Jy3@$)=?R-8Wubi1 z3(ANfC4aOSIN^UWo_lmoh_W}qgisX&@2zg0T<1CHjd#>gHnZeXFt(TL;JX;h{{+B7 z5&1DUj>T4N_zOvr$kz7NC~qDDuHXYE5|>FklafTX?1?OG@RDl>@tLgB^(K)Fnl2dE zu0^3C$z}H*ztfF^#>qj4&Q00PZBuV6ARf%k_zXIQ2iQs^FeWfPM&-^@qCge*m#=$X zrvNy(xGaE0NcmRD2v1yW{BPE^CzKf}kGhbZ_w(;u%`288_b_?YO9O@2kb9CdKhcAJ zR|vm`NyRQC6GYGFVHYCb#1{^Cr#IS`x%${=5|A+sJCk@GM3O_6c3x&2;=y?2oq zAPczpr%eDE!y&bSK>Q*+yReu@j{NqDU8%JB^hgv%tUzeQPZ6dIix|+OCYTM~708(4 zG&8`qmP+W(B$y4738VrfdNe1`UHIwBT^@W62@(2gi~v3nLx#h^(c;}UI!(edY8s*y z=F!`Yxougkgv|RB>Fv$oIsu})Tgy2W^C^kTP?PqeJ2<{J1xn``^Dxh^59G&TVBUW8 z;sZ{;AZyc04gk(SorgF@GeDJ#QShR#u@pC99P%2n#$^|A5W_#}V1SK2{+W+-@pqe@$!P(%LP}SM_LFNJ>F%^i}u3&T_)h`XVW85 zsTY`Q)?0=dZg&O?_ZC@@e(u2TP*gex}oTi$ToYM2KWr;R~cx zMiPd@;zLd5ac|+lV*EHEC|OIlzFBvALCu6Nua&avrzG%?n=5j;faFHv62$#-dI)t; z@E1=kh>yd`XjvwQ_jnNTz*Ln)P$8IHI$lz9{RWGlj0C=%A9!`^u8^L zDei!)m@BAPYSGBAP2zE9>U-R$Bj)exu2G)?d}L`m zQ>Xe8X7p`&Kc7i^$4zQiYYlg*O)|CE>r+tuKp~QQO97+a=j@5_>6{Re9L?r+r~DUi z5AY0z9))#%Rwa(yX8OA16`JP$5fWMA&~JI9V8ksbLlfb_5}(TLXF!{n5kH_h&UyHe zSMS?8VTo5!22_(9DK4+vD@JyYOmxm4f9;9oo1*o~)^!)Oe8?>2oO-fVo*3zt(g+1> zBWgjI_O%$FZ@3KG$D={t{j9CijDxP%4Xbz4{%-EPwTU(OOxasotRo`ziW!bO(5u*m zp8M{ZqlCDbM^T&0H2=3h&j&FI{zbwgmk=J{ndXre1w;WiH>H9M`csOgWw-zB#_NQ| zeuJ^$GP?^)+#Q>s8-aPjKfMiHwRPFgKtW)kxdRmFSLG5|dfkN-iUw8H4`C!vlC^a; z-)%1fDDCXZA_t@^o>d_FEp983nV#n*lD#qR;~@zMk#Ww^Jciu=YKnSx8fd_9;>RJ3 zeNK`7#g+ypA%+?EN(810XeVG66>Xi;c<}o%xK@ezVEtH&9egb2Ppi@Y0ih65E%C3^ zNlaNpLzo9|ZfzV8R?Gh+$%>}LWMVL+OMh9M0h~M-x!%FO`SrpRYuSV%Tp97j4{?iV z@Y%*ARueP9L%fXbwuJXIGx(%QYQa<=iwRIM=2 zj2Cb;nki_Z%3`uJd}bCe@i^AUQr@0XRFmh*&vH@ z@bSz}c`fBe1_%M~vc;Y2dO&uC@CD$=f_ulIeYm=dv%PGB4|VH16KJ!3dV)vC8lvd) zp|rYksljIYNen*q(&roOc6>9-3_k1p9AxZP^XMq?v$v@ms+Rzh()nYjL~*Oga1P#| z?9egV-cq%Rd?ME~g%nUt3^oB|*FG3lXc`nNU&5oi_DpQszaPg)J{CMP)IBqXn9NUj zNvv^pCnAKWISiBa5QS*zD_74o3mb{E>Qazsr@@r)68`%yFQL(VH$^}Hi6<+$ADF`j zK%Tup*%lAfw>*)YAw)sTuzhLfIiR*zq}#^itB+$jQ^+jCXCs|pJ? zv{MCT^lCH8a#lg}+fhu5-S*;Ubkt4`Eb-!4hdBkX5q#$QBP!%S0Tu$izcdL)?ktoX z+3Rp`7<@W=z6SKk?8|s4+xnKT7~DXf>k*MW_lW`D3t&^1c@BlJHXJEfk15*{fexI6 zO56+au`87W$b1duU|jMQ#eA-k09XVyo+S-PB66fVP4hFerq z!m*FKf56142e7+J?y4K*q)c(M^&sj98|b0AHbGxw8_ch67hnrf3JQW*zTH!5nHrI8+&MoJyOLVTnnKQQCdxUdbByCitum#RoT-GkT!A)QOdCitf{ z;2Kkm_o6)IB}*YNgT+40uud#;(!e2$F_#f~Zcq*87>0zaKq%7>+uNgbfbb@<5w{Ib zAS(xM0iONv&HLSdq<8uc3H=f>3dT6sPEfcyE0W%$n{&s2Dn3xe_^f z@q?lJYRv6qZy1d?+vA)YIob9}T|8W`!%6ZD6TJH3(tRFs!i;J#HNS}+taLYy1yk?J zU-bjPTFB;jSWRQD>#LMwKN=cZ`3ING%rh)MNd|Jf{LfX^KhedG=dT<&LBm~oEDdBF zcH-4MZ1l9pm$N}~S0BpM#8tyb1ZPm@K@azLk>H|0zo!sk#7*6qeGs3_2-eu4c0eh5 zaTyN2WXtHHywJkJ zTo^7xr)s*|5&4opm06Z^(krZTn(4+)f0}}tqM}?h*r;>Dg|)cye*Wop3Jv8fEN1=V zTt$w%u~QOs$S#dNqZ~f+{Me3l-uL7$?ZGZT`Aihcv6Q#f9d`&mpB{jKI+vYA+jq#2Fy`G4 zI0=Ub(~=!C@BrpnDos)Ey}Yf4fYEM%ro=(=0%2hDj}9BX_p-j$ANaP;)lCs6-9)^z z&c82Y!ZX3Q`Sz|KZ-1d3-AKvp<$Ar@lKi=Py*W4_N51dVlfQ`vw`Kkis@^h~_jo*i^^-sJGqdRVZZo%@aC~OK z|2$B;Tm42&D)uRK_&nu3b~zzG)fL8m2rZJ@9K3_ah670ba` zK8v%AYa#p|fB+QdVuA*V?>!h0l}CLTGIYj3Uw0fugS{G!cyJ?G<49-;t?uSE;%E7y zRD~J%qqRayZrNXPq-TaYrw5l^cCDaQ&G;_1jMf>jU*{*4h-w&GRNRIJZXI}hm^R{89&l-Iqr zy)cI!?o|FaW?$1ol-X%ttff(#P~;uZG^2Bl9gUC?9(J+akC#eenA ztZkFBPvsLG|7jBi7VGWJ89w6A{TeWs(zq^6+?$v_Faru|Q#gvwF@w%7^OG_b^c7l{ zWaLxb#a{d-q6)fL{Ub&Mg3Wr0j4z-^2y?sLGyX1gM&OoG?thK%1s1RjsBDtI@icRR z|2nmb*#zytWqnOtm2_!k=44CxXfC?^Q)}H|u->-FAs}G8;lw|iO+0E5_P#0IhNr{@ z_O^;*;>h8wy=P_JB+?StdbRSlY~l0&%tqWd9G$k=U1}M>Sogys8pfX!z1RR-o1lBa zh8ym`CMp&(fptD{+L<R z#iC2|;fQ1xz_c_tRGd@LH0cR{Xz;XhF$T_KWl?swl3>GPKTg@6 z5c75CmwEp3?e(}pJ_?fB1|sI>D`n9snr1pm4&K_29)OL;q-q|V6A~j#*z=a5g|)vJ zK}HMw2_P`hK5u59eO;G!O!V(^6~s6g7tHoNp!?unBiJ$sDl0T%5RwC&ruA;Xb6|kG z<}AOKup0D0j~31LNMN%Y1#xkA(VGIQcXD+&OKXLlQW|%a3@YZFIRyCdqdF_hA>^j&E83Bd{SpGw2wiUu1bCQ zC~cKR{&qW6)wfa{~7_D9oFu|GuT}4`ybbb&}sfE%K=j& z5F>-T6AbXAoNPvedeQ|AewKOP?(jytg+wO<0IGC;nV^U8|7W2|@3-bq&0v*Ch^?Q+ zT!L74?zsd`r0h8cVDiG&r{D@pG*(F?;(w@5xJ#0#c?$STLw``xj|&jn(5qPS;9=}T z?|BqGY#bV^gdDIv^~Mf}@GR;;dpx0a$+vR>g8H5As~I>9pgv`LCFFpT$U}tL{dAmXT+eg+Mmxp67c*rNSCy3X2Qd)4i0nN&u*2Riizw z9WBO8bpM?+k@z8GsMNHhklCkO_RGD+WYT!6v_u5een=f!p=p|Emz_mM5A`VfN3 zCNBcyXa1P|^keAXQMstO+vEB+aZ3Indtt%BVCofRc2J)~R6at{qK|=NjL7rr1y0@V z?b-x#!{mEq?V0UBSg?$`$J~DCPIm33Lbtk%0;cb=ZE39@XM&MOh(Pdho&$5Yb zp#QqS`+5n9K!SY@;@be6okutSNb--uyy&!wL*}qg-oKM+*)LSsZr&Fa-s+hZ#QBeZ z67)q?w@ckU@o2Jtu~JqI7VWj}^ZOuSVKkpt(2w!NY_8- z(88gO9{Qd}6_KTY$y&~a`Vfb}0ZT{4VqWflMG-_i4W84>85h$+l7Y5-DY6`I?hAvq zEHaxw$>3y52|j()08FfOvMG;HY61-|w=0r=yT5bj2{^IDY2GI87)E|JV$p|_PdH2? z>y7#p|I&WlMY2)L!fzv|zI^1_TviyX&F?(2*9#v%iU+m-@0tNy}dJ}lw| zcr}y`e-#IVun(wc+6!QUF_i?avYZh%zijHpwpI(>AsdNgH3Ng=kA*v> zlV8m$BW?VVPCtB;j@u6mmrO1y|LPGc{2%?{vb}4w^2-U4=Eug6c=+|sB94Mb-YzhR z=f|)7vIFPJvfP_SDb`%BP0266YI_!bU%Znx*>78&p8Gi}$e1%QK;cySdHp*L4E&Ve zNy=$nzjC8X(>Lj0`?}cDYI(22o#c@}j~|I?Z;;t!D`oleNw4(Tk0y72()o4u&gqSw zQ_k!+xSUpMd5j7(w>iD{Gq_N(3}sM&Sje{VStu*x|G>X4$yotbU1=?6z7peu13$Quaq~ z)4gJeZ5l6_E(7|E0<-f{9nnXRis7V-AN1x4+XLMJ^Jhul^zxDC`|{InXN&rJwT0xy z$B@RD9(lX~93EgRbf~2YS)48XmBKVgPN!$AXbnBdwiK^i96pFTNt|-Eyv|0oOqD9B zX)iRB$wB_#s+x|(6&WhPSMNEtx^>Cc#_$l_^~E0YsiR|?O)^)=0GT$aj%+2D2e-IS zWM{@*AQ!_lBix(5_wc|V&X4;&=ahf}CzG(=i)-K6w@pI^-fz7t)sR7zEaNiaKkKem zj>B1Wkg-JF#5rG8(OzF{Bz;BwT*i>{9)Sfi9SZH!S(g-_xd1NbCO?`w_5yHPVVL9fQ%OA# zca3uC(#k&@*r5M?}-JL61<#$*bZ1q#wte;o!X0gYx|GT{|#$Cgp%#KDk9itZb>fF_~@ z#2c#kWKHA9H*LR`wZwcq2CB^8522Rdw*s!{f?`%>br~34({nsGMzsj*MSHhaJf01x zyr@CT5#>CW2$%^9l6oia+c73qLdG(N+S!LK2okigXJK{{QcA&t#(qPMWJ$e%Xl zx~G8PoIDdMb@EcUl?;PWAT9$j3)IF(gU-SJaLlq!xgv-n4VbxP9d6Gu{p!ceD@F*# zWyQ!Cx||um375$A;g-C5uKsRph24_oM>aBv?rYOGl2~M~Tv26!F*f!^1oj=KICc0Y zp2Ifeu{ddf$PTng_nFgcc)F;Ra>16n0%F@SWej$s#y=0~{#E-vW~M4(ChD@}nE0 zjZTcR)N)a=jj^Gy1hG9%bn*$PdNWPB<`D{kV`N!8G?l)xe#}ElAibognr0q}jQwzc zfB&SKz9=JT$msiOG!vrh?fUGXof%~1@`QZm`}Y;#|M3V8VMR1fu8n@i-Xf6iZRt*? zJeOG3&H6Ea;=ggc71}|}UqU0ruBbq1VTL<`QI=l$dp#+ieVyns zEIpZG;7%1}4EGz^bCO4#=4UC=LByBhBoq4$>Pmt}QGk2Fl|iu(kqoG% zA#9&P&AW(y&5xlAcqYDo9PNH+LBrWso1&fSdF%L+5rHXNLXpoU(^Y;e3SrWJ(vv1t z5F?LO?VWhw;Vs=D@@w&AsvX*w_^?9nkw(H!>Rl*jQtaBeNEc163)SdpaIBjXe z?ciuGu(&rt-(h<^^&m9NV)KXk!%r>K34)d@wkf^qKqadn)GvsrE;)>3Fz#!E=Ox<=DdKF3By&{d4~H@SwmJ;|cDP z4Gv-WAaqaQcJFCUS3tO}RRJBSG{w7yVE=AF{k@u4#PI^qRcwWSkx=6Qod3lSIjf;S zD3rMk5FgP~jD!FOP!Hn;!XIh$*AyA@$lcx}0er^qQ?)mvJn@}1A0T%D(UsBKL=g-@ z&vJMKXY&-TCo4yS+WMJ*osx!*dJ{_<)+~?WK`k^iZ`q*6hyau#t(!!9K2O|;5zQ@( z7W0BTX0ev29mqPHEPn*N#zPKqc$xzq;*kG8et7$dLG8(%j}x0&KyCwL1-2j!FOF6w zvwNQ2>A!U=CSqG>zbzMp?IM!j_x?iSm&`yDay>0SWhfqKr+VKyb#FCvSK*pCt)_MQ zOY2=_8T9VPXWnV=>We2c9c#^D6KP^51j^RVJlrlQYB#3n3mUYb&?D1O^LFy5Zw(-o zl_mx{}1R30o2otcBL=f<@E9EfExTlyEp4?12^$ zhrdvY6kk1-<{p`F2MY0YmMaoVpvwS~IDfp_%uuNn!;kKct$5Pwf7t+=?soQ183wXM z6v>+D7@(y2B!A*W7B%O=U_>uWEj3@CLw%k&mr=tHSnZzcG4Tr;^?ujkTD-#RHlVa8 zF!g^Nop(Id{};!{O4?^YWjhjSxaO?#-N=m}a- zkI<1qTGgs|fM8E8+*iM>%)2g<7WDIoR zGZ}UqSwu8#1u^HXLlDV=#^p0X;#Hu#GM~Znk%+1Wd1C;Z zD|ZYqr)EBh*UBUmg1v}LPbzt*d|`jHK8f^!Wm5F;IowR7wrtn-p`|!c5p@4Rxgaok z_0CS8v{GRUjr1D97ukTsxy_Q%1FgAV36I0V>*up?k=_Kl^I!H!fU|9GP=-(8J8E1xgrVih`^5q|!kBQ^u>ag`Ex;bAe zeta|T?bsBSj(D2v0mqoGCvz|A_zWH2uc$n=d2IiF8~|s(zSL}QwOy8mb{r7TN-Ps8 zxb{0SHW673e3HPrHEewL?cXVw zF59}&&H#>xNU7{XPM^*9KcGD(W8gx4a1iC&gns%4gmiQdP@GGP8H%$TzWkUO^PE!a z%7$>o#f*aDV2i50PnJ2l>}N@rcIk_oyG})BEsoG`z6y|+T_&1oMLd}=`*G)ZgKF)Y z+o^^eZq_(Xi#U{c1cb+Xzab9j`Wfu33`zsUnuI5Lqo;Ia_I<<%U19; zZwg!NNDQyt$8o!@d-T9fJGeMeEyl5w4Z}U+MRqtpBM13dMO?R(lwC%n^}8g()t)B1 z=9glkh^n~Xc}to>2v-R3>()R?By(8hDF|(L<2B2O(tC6EVznw|uD{1+AguFTcMO7n z8E=q1WVozmufi*hd%It1IjF>H@qClETopvG^3S7ttp`kq!PaY!2YEV^8TTPM?r{Ls zF1s6D5B@rXcTS84L3uyZDAEFf0tSa(O{;xEoI0Yc9XlGQ54e>N4~qO_Q6Hr7&Sh9d z`5PL39jhtJY0|Z_i?x7S9VfRY%8wfij4g(U0gzq%?wVI|%12D5ztGinc4&oEp8S;` z9-$}2)>F*;SUO&89y_sIVllxB0if!QsG^x}EL+wr-LG!_%SiuC2YY=)*5tLrTjyRx zpuEMKr1{X{l1!H=i|a`YyIRp?)?EP7!cT5fKo`#O*+hAEuY&Fk@B!Z?wX-FX#H9OP zVYJ;=XCNtAK)X>1bHa0+j&$MtyP!kXh=phtl&4k{FK}$1w`s@Ht)R|SMCkrda>GPo z?!~Td^J`ONS$V$W)c4$=5Aw2(O3^@^bVs^XMe8T(*undnQJ;^Ag_hFdV$6S?kD7V~ zie_K+d+`um@msyUQ&#+JO94W2OzQhi9hdB0W$ib;lNY`IpRGBh{qC7O0&-s@SiZ>5x zI26W0?2-BM?jsD;-lx2Vli8w=eB-}jde~-orN++$K{M2nHVUZ0RYc#?zk8WwP=`@C zr>qr?UyiqgYR+9m#$89PR1|O3Wk69bB1Ta4)-vWHP|)JxWl?(2VCh5Y6?Cc4m(R6B zFaYtH0!7S4V9Ls{M|^8K*TE|dXn&Qj0k*aHeH1grx z2@wD$6IAYz)h#iq5v&WKjSYGNT~i-VxuXR?`A(sF(tdR+g}e9HFA}*+u89e@t3hRL z`MltD0uGaxy#4~s!w#MeN2w3`lSbY-)pwkJ=&u>6_&! zR^hIl9vR$*uO;Z%Y>_{|5rh+n}GMN1Q80)C8pS8^VUO2k{C1h^^0}wTp_&F0 zfYikIOlA^;&C%cN;Zq98I4}E^je%xvVEk<8<5^lzAE7A+!yXvv3$zr4q3wzh$BQy{ zZ0@seXMa9oHIPP(VjttNGf>^I9)LIjoGY37J{eQ_TV0$VFR+_#c&G{vR5drU3Ie!Qa(*XIoZa0Ydt1br0bXSRE2} z>IIwkmvk^hFYHv9?-VQ`%W@#nLP4wx$A@IL>q%4!Neu6jNv|i#xxsrY<#M(gW$d6S zEynQGeq=0$LvrQY#>%%G70Ot!fJZsa(XIi%SXSByDRu+m?69>4*r<%l7k!6D;R(=pRBj^7KSLxj9Ldz9SO$BHn+ao8Ks-YX zZ$wNOrR^{ELeJ}9~4KYk8Q>Tp|1ykYPrZG!VEb|masCcnQE z2ypF{PqX))FK3k$`PUUGG8SE64o}d0#}fEDJiDb|Vw-B74<7}9nOTJN!J9;6XhFqH zX@V9>-3%y!S;W5X+$4ean|U36jN51K)bkjH`R`9%TJK-F*AU(%&VlSgzisn7e3fc_ zF}olqnnmn@@m?&A%zUO0-QIbr9~?8Wt$|0C-G!7<0@% znZ5Mb4@pzaz{1D5p&GHRC697)C+$N@=oA2OIWzGWY;p4?)_593yX#^W3^+m#5SoA@ z88u?M>eG!by;!I&B2C$_sv|2^9C&`DuhxV(6lcONW+>emck0aEa&77!@yJyzq@y;+ zdS8l}!1+cKU@!ya*RZw~I0(vEtJ_tgIu3RMZ@%&*l85h;=z%H{qx&6hv{0Pwl3BS^ zKKp8OuEXb+HIxQ;Wt=vbwJ)nE{S_AS!pw}t99l zPiF*;F@h7=N|x?b<9|4*5v$;wU`9 zLad&jHK{&f5hEd$?(&h&B0eXMnWVcLdLws%iHV#nMFkKW9_$l9a^`TH z?!?5o4874djxuPAj0ngM_K-V;UfkxFx^Thw(m6L~z2YG6a+4tE%tP*QJ-P{<@Zd_V z27vt#El-V}xWAo(HTJJ+tI%Pv%3!o@TX-1-s!!=3ze!rDSX@OpIH}0^o4JH4M`+8) zaFsV?&ZDE;1QeGtw~NAkB6U%=pg)ii$-=kp=`OdIRLihdN|4VH`z{uHP@nk?vwz^8 zXt7&K_L9ypypVyYgAnA5@3u`YO;nj~eXyZjt|`%FZlS&kGb>Y8;pj zlfU#f*)C-0)aN&rX!i74;LE4i0-0f32?QL`IYXI5Adc&^u;*BO)XTg-An8Vf*~LQ z2+qNWB5M40S(Jk6ITfm1)%ngEgGY72u%6J~LlkpxwJ5%GDzD7|=Xt%3=?ZQ6CkGR0 z96Y6NkxRj&m%R8BE`9oPZR^$E5l4^Xv>4QCShxJKQn znwH#gyQUb~a0f0>@vOCxXt`gl=v z^_>2E#U2&H4*UrQlSCbVrL1}}a662%+;Y8uR#Wz8Cy6Hk;sPEAjDv`)7;^KUiBY)d zPanS&04J1PiI2fe@;c2?Zp~Gv^9Cp;jJ;b9#3cKEi2OMh8*r&|*|K%`i<~L_-A~>7 zI9h-PwEnJcyI}Jk5nRPV$Xx_%FgPFlEAc)$_S-4V!Dp_45eIA4kWgRNkq$n8=+IXH zlR;(pOUv*|547e)n28O$Zw0ouipkBta@?h4o+s0I(lD&kr4o5&T(MstjK)of6O^~n~$2{Fu;P^lvtNx~+d zo<>;@vg7^;#~=f5eWMnD_1`hstvgj`kdQgN1|UFqw+1iTyr&GV={X(y?0XG_f`uK2 zH@1BOZc>esvv>P(aym6C`z^xD3Nv!>K&IW4koM%BtNdaLp5055S_v56l_-NA%k?lh zh!O*x1ExLriy_MV^HKwQH!&r@mWcB@9r}5{@k^@g=Z6p7m>f-0U-?}C-C?qin4lQM65`%NHSECc!|Bz_`T-UDph>Sv_ z_nXqCLjW%z0WDWe<#N>E*2b8XIJQ%o1rVuV|FaEXp%E;PT-DQ_554){0!SMAxhe2t zu4+O3SN0A#qe-OjombUH*ty6!T3C?)WZEQB3nr$#iyY_B#r%abc?zQcZIU;+Ub8S55K3!d|bdVl{MOHr;ixAl(7ugeFV?RBeVQ1}z&kXn3`dZU)(pr2`degSoOvvim(y{lhwP zF58Jm zfc}TqIfi@PBw6OBfCo}qaO*|E-_-0LT5K`!dxv;#q-qPPUjUp%A+e7*)k}$peva;=<|rF zNOX!4JG7+b$kQYurz7!Nbq z7oM-i;#BO9er{-FzvWEgv!qW-UVu4!4eQa)095!7D)K5SS<4QRsjJ3gv2m!0)CsxJ z+=BdI0_Td31ZYmxOHKf5;nR@Jl*M^Ud8cY+B^)5M7zP1byp!sn0nSBYCE|#umax5> zB-}pO`A|hA;kwgNHvX10a!7=V@?>iEa!68(SVxJaVZ=izyCiVSU8%1+=S78zFJwvX$xQ!tU&t55}WlqhI)ZX5Po`xc;U!9cW3+$N}eyvs>1H_8H!SX z~cZ`yPCnR1dj$7%%okFP>W z>h>xk&b!hdKMhOaG(6^u!9T!BfS@w6j*l|Q#uGyc`(qeAsXMxaaw3gMQFRdB zKTgK({K3riyf#j~H6&2^$aRo1qM}SUij4sKNdD?WWnpvE(X{LRAiS8cRw)p`=E_49 z#;#9wjYwFuQS)i?6Z^6$#?2+%?5D2N+2}uA+Xsw5i2h0uB-Btcl0V#>l)=b{4+gLB z|LhWaU2fAW62a_+vFet+KXZd|sG~+VQl25T`T=G5G}U@wQs%Q^1*HKp3a5Q!`{XEr zhukiU0P*5Og=;Wye_w|#-3Oxw^arU7hK}onHbz&XVD|h3f9pgqhvQzM^)xCXh=U2p z67S-TuDraG1osWyEo|_P3Td8Of7T*B7NgGaG)7{gN3>!ID-!yq&?J-%4te0MfMb_o z?Ndmo=lhI!D|(HHjNS|x+I7?1K_u^KX~B~r_L8y1v<6{YEUb7`>$ zqiG(>%6^}}xpZZR=Z1>Qk9tRH?=sQ(&NxMt5VBV*?RmH?bvnW0P`GTvV3zAI93%_K zi#%IR+elgOHXy$0BcCVG%tuzZk(uMt$84Dr_}`))T~-@sthV;bvjM(YGDtEZ=ASuC zS}W*Otmk(C0VS}z-#U*0rgq-NxFrJ|=-s^Pf{&FJYj#vj8%3m|oi|C*3(<0jeu}I5 zx>*LCRDERtzSwy)(ZT>pVD6Nr=SJG5#{%;DDzvM3QKcS|r)iX(Im~sKY>V${w*Q-$ zC(RFBe^Y1uSGaVM9hk6(W8h`zlWse+Ih z*X93y;YuMBx~KLCJ}uP^3st*zlwW2-lcVq!-*P`hkR?&Y@1>Ny5RWDO!Hg$1N>2}w zhT$6TRsB}Am(&K|&f79wKhsW6I%(=#aW-$!B%uBqE?_+!B=_&GAi+Y%SU~_&d9R~? zOtR(CKgoNEW4ITAZ$b(@c`maGDx2fE8NnwUskNJJB|2nGsGKVPf-3yd1gdlq<%TrQVf9@y$zAv?`-S;Y#VJirGjIXqIf)hR5hLB${eOhAs}+6UG@~GP=lLC^$qoY$FPaQTh1xd zV9A}=`u92s9A8BNG$uqc0Q;=8MV8IUvQ88+3+c!>obl?7KvO1z%%LW8Sg{N5bQqbu zVKP*@nDK6o1RNs!rKajCP`dhg={<4~KYjfc0<~;j8NTo)Ssv{)xd^>HXrCN)x!dir z`?67BBs#D5g9jTae9z_m0~?$|Y@HuCD43W@9nc!p05{^j&G$5AYC~%2!1e%NY#jS- zD~|%hB@DyTpTD_x1NLGJx{ixK6R2!|T{Zdb=9J;~UfW45ukccBN?O1=soZ4KS~l7H zRb3xOL6PJw*^oNzJx*XIjhIcyB~AjqbUXi9reJCGLueD0bKA#qwQgo|EVjpScG6W7 z3XH>AW-U5CW+5wrMAI=p&>qg0Fuxw@_9f7)%@7_vx04-)rR+L3oPNZ3|G%j?)^Tg+ z9oXD0M1eP=TWsGQjumQg!%r;GI!O^cn7zm)J4Z(h5}!m z>ib3w+C7-pM6pXT7;i;cDuS#13ZHmD!WWE>m-P2XW1bIqh0W(O_$*(DbaFD{UHb+| zPKVEcM#V=L6?snftD^3}Y<*7)Jr)q6_gX^b2}$ zKe5S(wsVoDDMzCcF0C|bGi4fY9*g-Q&o$$Sg#Xl&+OvuTw|_FGwJDb|#Cn)2dj0!| z6jA?ERNhR4ezk#QJi(l>=Q$4>0XK~_^E^$V~^KpqjI^tCER{;Q5I_n2c=dcq_3xrmb z&DPr-dgB^R_O`V#R@Z!AYZpDj&G1PPHl2i~O|P3F*=xlCkB$BRyb zHS_8S^vEb=(rJ?bedDYh!UF}+y);+XZyVZ^i)e?F7~MTi8|=B@Ul(V7R%H&W?yJ~~ z(QsZhbB)9J7pxPY^~f|lg-sG&d@R@4qM^CDHb&$Trx|e~y>?zz2T$n$jUGYVa`H$F zyNnZWfq_Y+8MeFaK49F8tCOJgn{hlJkL?$)rw9DS5!mpeP6SP&QlU-v4BJnueFy$Q zCaM1?`H2F)?LI4z{D4G=ZO=ZPEScuF`A&MPm5?cdgxB2(M3B{CP`iUC!Lr5xcs7Es z|Jgu;FH~U=Yu~_0w1C=o(=uc4xD+iZ4cll*2Wr=35+m!!vH~+c8r5ST)ruY^J}`;# zDR)g~L0DB13OsPOY-@X6gmvRi;a9V&r17k|oWfT%#pq2XeCh&Bd@X+-W14?fC}K(h z`RJVYw+kDut)kq2XFS{FhoC#QpBiNAUnDY70X4%-(ndC0YLFt1P_b{Jkr7VAJmgiq zIZ;l&;PWQgqh7H>f67bMw(qjJCtXOZx-?lhne4 ziv%xR{0_f^@UT-x#;I>ULnVJrKiRaItzwxpGqNl3%{;77ucQeX=xMv^*1%1Db`b4Z z{9Mi3!Z9WEgw>AT_nolVAcmP@aD`8CfNenH+rXh49}cD0u$&`$^)vhLUavJfO6fke zxf%Uf@_lA1^5%{-?S(+7nIZM9X)^ws3Ov>&g@VvJEMjk3j^-{9;uDwE_o3znpU}a_ z%7VQex8Ei+K;+_SJ~z+_%5+~xHV0}+dQkm|MIFCGQ(~Zt_e3lC1^oM%v&=4u)u;qr zhe2TluY4PL6QQg#DzHo=e~E`Ur?<=ijfd4bwF@Ym|As6D>11eLFqzbrrR%<&tn?=h z=L|`I*8s#AqB1*jXphe+Uu=)~Wi1C2B^sK=3r@!#LRq= ze|qN$o~*0&VRIWoqiy6;6JrK4fHwGWHs3 zOE$+N)^A*Tu@`ZBO-=S^SdACe+zQ=5m*+F}oA163NRVu=cscDj8h)gjx2P#-Uzp<7r4aIVz2V- zcx&5Igyz2d8%#wJn|9Js(tDwpwhVlDSb9EBFs;nkHg#3|nzTNZ#7BI+Xkl^ub0&J? zFBQNfoQY-v^8dl&7+7$6gWL?83~b1@T-xC=_R6k$K&uVU(-PM6nbBsc7(2 zqrjn|6f%fVN=<+{Q-x;oiUdjUb)FEfYk|iqipqE2(KiPgDrm}Iqqr6&nsyg;GvbyE z#g!_=k}o70oH41L0T)_n3tY}3o2>NfLWXeiqz6d0HtM()_PGLqFujRKS+`yzJIg1D z6X@Nj)3a^T_GKc^UG5WycaEtf-8rs*uOjm z9`a+hKIN*<8HSz7x?yUS5$yEEskD2^m|Jr3X4{SDuAc8GFw);CNDmLg!fZ0TnuRn-f(s5m0cP;ua9lFf^tT7v^?LprZaPlK_L4$5Go4u?bT^mu7KyvUWau5 zzkc?itake{5xo&Lz&0>#s%598I5c6t7oLmJxMo%@W3sxjW)x%5(^e1={3yCA-Qt~Q zx`|6a)Tm-z4!u4O4Y&$WsuraxYu{Dg2^j8l-e$eKIm@aosG$2 z{?#ZyGHprZ&8C|da_O0{+&% zexmiD5kptXoy{}qO)W?tYkL8z<>j;4cbq?n{nIWVcD7UPw@+-u7x?DG4u~F};wd5q z>{5D>WgRntn9dE}|DL8QF8xMOyUePZ8?;X}XEGc#*Ezo*#If zbKcK9T)#s=SIt&d=ELZs^*L?xR3)EQBon$QR39SWY;kUEje|q37l5+G5lm`2Ko|?w z9XZ`Sfm`&br_*n#E&0q~_5z@b(QMR9l@Kp| zVT@fYw3{sXW6B>vVXA1cCi-(-O+M6W`h^7(BEsbq86u6fXk&M;50-!_>hgb+XRK%g zMm!VF@D_ajkIjSmD+5YBl$+rKQ$FY6v-N{9&Gyf#qYEXwkM^Kzmh7dt$$0WX3>?VC zoS@u-`QiVFec;>O2)>!YPiLH+OYvJDrt5EiMmoa^8W0dP0BS?%y$IJh&2S$t;i{{7 zCchsy1b1F_7CJN;LB0gEHCVg;h7q|t=?ve}-gC0;Ist#PyFHraUK| zxS74N5={+$j4%I6p>jzJRPV4?PLvAAAWQHb5wNLNlS@z0_3O~K=~70# z&iu~Em|iJDo8#B};l(FtB!2>xjAAr^1;)08V80z4z$+_&yU)HpN&^4S4h(gMg_la4 zGRTE)vgb;VNg06S@AwUkJW0858cf?Dm25=V2JW+uLqd38lSpokJyG`{s3ksXk0bAA za(Fy!JvHxWt5XH(ml>RQ1_ z>(5dRO5Dhv6asQVjgal4XRzrTOe;#>mMl*pQ{I#LMzi0PvM~$^Sao2V;h?H#{*zcC zB|YO5auXNZ%qk>IjAhIRg70jEOB+vb(!$7dbRh@8!Zkf0TRQ@Snun~PEnH7A&L}HF zAGHiUtcdJpmuG-W`VATOMGll-;aG8DnTX$|lx2XP%=`T$wksBN0z4Jv2aLRZ2RSD* zbP1m&F`RZrt4q_{Z1Kkel?6uS_&wKene%W(Ey5XZuuh1H;km~_g|6~RoOZ$^xWO(4 zYjXL$sP2B}V-rP)S5 zZL}h<1eDKt9JJB-*K+) z7pb&MXrJHJN}gT-)ngztnziy~j-M9+9;qE2oJ9xA21v@W((Jb%nq^uKjw>Brhqj1x z&!4?FSoZp+BO8gX~wj-`Ya2g7@jT$yg^&n`00hbl*;H zawsOEb!!8{=0H@FDX58Za@K__darOJL!o&3@lsM#5s4`@I7pgj1g@S6V zRabL;W&(V1_j*LjxW9}_6=TpB>OE12xEf`G@-OWFCgQ*W@8N+aR%_5_ z<Fv`%ScjbNgD?ek?Z8vq z1WdUvqkFq1*c$X?{h-$F)fbNR8VQbUV#3rPq`HA8O`dxhZbeicU-5J2Va}kF0GQgmYfE26Z`W<}HY9lhb%M15R<8pr8N8 zh(CL1o~NNS6S0aPQiN)5UwkcrzM~!tYGf5z#3C_Q!gCop{+lUXcm9KSLI^Q;-3u9& z?z?r$BKAF?5W#lUP1Bq>s}Z%Oz`E-GzE|#eqhr|J!`D*>YhTiFV4h80yskYQwA9ox zh^HR7mtodz-@P+?xSS(aKr*Y+pi7N z9^<3K6Svq~@8szSE@Dpxybdg#HfwtU3XHb79`k5{{_B%F=H>!*^~q1ht42S1IjA=O z%SyUa{w%;u!sIcgYRT2jz@Iy`z)+~XAH>-(s)o1PKC1pAt10(=*1RQhqUYQ2J(&q! zF6n#2@<28C3$KjUCCQl}PCN-><{1VwbYYy+h}&fpq1lc+%@5#`iHYBt@WIm}nuDMM zQ_i|B8T!{P?v_ssD|$Z(<#Y=Rfm1mS+efmCrB=u#);`#TTR-^y5*WvVY z=}+vF-^`lNrRLn4DY@3DWIt%g8P_OAv@(-)0DNT1simezi;pD>@7%soWt(J1CbA4j zy=W$}AHuD)r0H=U(xncmv6X{m9f2Q;>jZ#4CXxV zH*ci>+(P%kg?fauWixQR09gOQQaTzK#&KyF7Rm@0tB7qQO_bMXcvN#V1EG%;EChh_ z(Up;*H1B)0=P+dA0XKF5QnZNeXV|{ax7cp;H-x6*Lq+>!B{J5^g70riZ%?vt;Ar8| z!zgeN{ehECnkeJK^(P~a{P7(txuV(lrOafHl60Cme|P!wg>l0w=fJ+At+ll2y7MKS zxXb?y)IZDXt7rp^d^^xv>!#0V@j?1@tVsY5wbyvmepD9`tU7Gk!gq4_+FhP%KRE`G z9}TU7`rqNI7l`U^4+<9gwQ=~yH^F)mb&H@zR|p;GXqlLyOh%hTHI@8^iErHS`(I*4 zW8lrNQrX6;Gstx{Dcn$@HtL7}mI-TMA?558CjtizQn1RN7!Jb4-14IjCw7W$1x{mK zAy_wlyC|!j;Sv!GEfKBtI7ugE-S;JVUcH_??5WerQC!O3PUC5{0reRbx?(fD@R%2w z?=_BKB4=04^$I(Zn{b97WNLFtDY9bW*`@;6_u@Oo&HKe8Q!mro*wX5alK7rWoPV3q zBLdMuoU%VPh~Hdxs%GJ{2N23-(HxqgC-IiSebqWij&76!`_V%WOnV&|U8eF~BYeD1 zR{8#MwfPM*#Xo_K_#W}|9!tHXroKPES(&fc8@;5{2{5&<6@IM7&?n?qW3zziIR<(* zRBU2kUbI<5iy2d9yxVe~KG?F-&K#`<|2eHprLntz;HJ=0v@RQCt|=wR=M`zUkR59K z$$Az@5_EVCK&vJm?}N-nM|YZ}?>yTSHa!=VY-K*Lqpu5`F>3EOZ;pPPq+ybzsG!M( zk2RDg%S_JIsHl7pE4&2F9vW6f@{+4dN~WDE`{x4F)dJ4ZWiOd{H|e*DZ;z7WufiAK zC(xV)k^(@&ad~RbT>@yRnkdLz0Ne~&Y3&2a$Jb#+ncF(Ua%qpaT4>8g&DR0B8uH75 zBv%OVTf6?-l9>~d$q9MPR1UgZ$1}H+s4KEb-;HR(NR@zM+1C&&)huHHy+pLTB)|Yc)zSlZ zKN+WHUC>Welk;Wm&{AFIl>Djo?ChLvOx>5cs}SS(Merz--ehK=(1ch7q+%0AZnUyV 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

    1. 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�WZBTW?% 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

      #Umai@Gv|DfB=qQ0W_(nC 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%0Ap*G^xJ{A6^rq**) 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

      v95_McVri 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�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

      fvEaPM@5Jl@0=nm9IW?Hy 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%0DcOw=|+xAx0g9qr_P1#7#Au|qhMc#sPF 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

        `GDT?G|&hRb#%i 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

        i|#jdeokq~!n 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 z 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

        V~%T!5KROZGz)g7yXrk${9k@#Rvul-Vdm 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 z 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

        ?&sFmtV^wV7Pnq(q=9HU8V22<^sgDlqRaj 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

        +2@k8U8vuB4cX;(kBm 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%0ACZ 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

        20zj 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

        plcQo-(ELqL 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%0At478qg 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 z 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

        hQ`dKm_o^887v$79YG2 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 z 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 AZ$ zgyKj;(cbtE5KIV65OTEpZ)lRxfh`9f*RnL@Qia)=_-5a%uN}dnX_EMTh!zE~RAWJY z@=f!ibLOV+%tI1P*BMrXG4GqeXU<3P(UVIbeW89E#FBzb-(D#4U0?#mk!`htWs!ol ze^L)fExh3Gyd#^Wi-1q2GT?|b>uLMhd3UGvkCumWDOuRXRy4fT&f zffu{WFsGh`90QpRNr+eM`F%1KM^03#$5wWZMR3OsVlo0p?=q_W5&})6N6)NdL_3K- zTFRrEFBm|QbsKJc`BBXi3m+Q=BnH|?UnQ;%*H@Puh{E5vHNB(?Jr8f@&SP&vn(gju zk4DGTgirYQapytchNwo=PSr%G7>hVG!1(&FCeT94*W%A zC^GTmCOQch22akYhZ1VJ>8|t569lK0y|sF;h@)4{OJ2GhIf+^iE0^V;$t{tyxR#urH9*CWN6dZ=VBhTz zPuZdT`Dt~~XZ$@f`YrKH{CZ}e4E%^>H$wM_@K<#4#=Ro{Wg>~`2WIuj?6XrI;&$8r zotky`a5sq=`)!ji_6=m00F>Pvj+;FdQ^i&Q2F}|74i(xj1>>7o{gB2i?NqD{X&gjw zFWA*jbkzsGh3z`j@3(+LB@zEkC~ui4LD5DoIIk8qhZ`k;wS59%wWs` z(UNb5`6Ik3CLYh!!GiZdU_6@Hov&~1^|gMF^vpU64lK6D{^jmj+#KOEUf|9w4W_j$uG$96q*^9ZHR zj9z26kpre;CstYS&Ac8JG0J!?jELk5H(t4B-HsA7*i%CJBr_)LU^Id~C_8L(v~m}L zL`5rj?e3@#1L*h{e8*^sG%bI#^1gFH1_P&mi%9qU>+g|aj2-pfI#MIsU;vHelo63O zgk2bGB<3JZnp#aog}z16CLZS`j}&6Wt5?Ow3X48%sWo8mOeZOb^O&p~`t1PD$i2px zV4p<2tLBZipF=#B_VSpRKTEMafBWO@gtFKaJ#Xn@Ck$bB!jt(6(5?710S)UM#6He+ z#&9R50_Rj&-xLp==@P;KXBZC>LCX4l=T41)v)o|#H*+mCg!SXrw zpIXr-s_nV249OMI*C4(|Y+$;*L*8~PhI}l!Q zkR?E1T7yL&&;_qW(@CGjc0#lvO{ z4Sc30Pg|o9w8m;`-G+++{Q`#3PCZn5BAfb?Vs1R*62x^QpQOvQd=&0H& zvt@64SVGPR97o)&nNdYy=A3Ndq)iOdD@HIV<`gZrKI%gQ*EEy6?Oo1+IUrTR3O@TU z^3207&WB+>rsKW>B@U;4$>&mnV<0%9 zoQ`VZ4*Gxb0`{PZDPRDVW=RLkm{n14VF0hh4O8(0{js~gW_~#D1pg5E7x{fp8nuE* z9RFL#0g`{QjN=i}agl3BeMl&%j-$6drba=?5ho@(7o#CTHa>=TVU{Ese!{GeFz_cS zeh|Krxp2XaDEgQQm2~1B$u%1)cgvsw^G*-{yd{1EMqcUEux4R(`Lc4S2YHEyFp<0T znS1W(m#6-`4vQ!q_qBfQT~ph;;!(){XAv6sz(v&Yj_vW0f>$tE!=AS2DKQwEWGkur zCt>~o3RLLm%85-rEPvU1;eny^!F5T)p;hACB8Tyq+zV4otTVizQbWcV;p_SGeB8S9 z$b51t-i*7otH;X!*$s(R@85=)vibtYKbVUacOl(hIYra_K%hNSu z7?7)W78O2=>g3_`oi7uxd~~kWXHc?Dzr{E8bsI13w3S(r(W4+@6|Bf~Ul6(}zE$`8 z_LfjUCmkw_Q3Czh3bJNd4C2y8RC8=ts3@{lwl*>7OZJ51w^}K`B_#EoU)y(n<8N&o zu6Qw-8QR(pugqadY>q)RNNi@3knd5!Sw)yl2WyVdThzi&Yt*=Aq_H|hWA*j)&kg+J zpJCts(ZSL17XBLZ8`z`iazAeg-oJHayZXKlHS&?p+n#lb#U;N`IYDF~o7#GeYD@$Ny!Ilb(Nl z|5668y2{4Ng(E-FYO;0lzhHx+?NOhlbITKu!%P$%5O>6fpaFq*0hQo$kkd!;Sd!@^ zia^Mpf-R9Qnz(Vvf^Y(Y^gQivo^&-|R3tc;1@%>J*UUhtlN4J&kCre&V&Afh! zzIv+)xY5d91}_}Phs5;fIngmB^^e>S1cP2(m0$dOYu5oX4GMV@4tEPX9K3VjfBpf{ z^aRqn#gzsLG;_&+Lgx-4D~ckarsTu>Y1afd~F3vQsS_~_Rpd6_|YkR5!egV^jXmZ^S?zr{BGM$jg*RB$Bqb*<$e{m@Nu^Q3ZkU|nqOJ3|*VUh2R0 zY2{D1)tS*QhQ5Z96?VOjYu~N}LmDyMpMM07Ox|@FL@*BjcEe{?;ebac`SZJ(BfN%- zsG+cbp8Va1tB3BEA)FEi+;H)6gtpJ#oOwO^ zjbhV67$GZSyzcvJgVZ$!H}I#o{7ZV^oij&~nO$=`dUTMV-9g@MS=G>J!eg_uO(-6O zwso?+IgxoBG4PtbnldlE%60vU6Gz}^7J(ilL6yLc^l(5AnmwK{&p+0Jx{h{Ua^&!Q zONuj)1r2cYA?5lVEEZTtYN>Ps)tg@ng$E<`pz?Mo+<6CH@5wuyzHTn$9ebR=hv$C} zFU0ZnEhHeb@u!a~drX1Q#KC8Z1O5pdTXl24?jzHLk%L=@+B;I$3FZzt%=OwQm(IrZ z@iDE>8N8?7gnu)(c`}z4f$8LlipbZ)>pk z#3YX#gvrN&H%bmb0)}N{t5G?#5Dmi047L4d!3Xo`hs~A*Uh|Ola&jtcF7ksc*Yt=x zGTz13(PjuGIcQ4$Jmg{(5?~eLcQ?^ zbSXuNjAl6QZrqi%nGRlZmUUu}jt*Y*U~c?cD!D@o14dk8*m7a99NGk8I^k?ff!0GS ztCnYv&GP_Wu)+s`10M#k1AU|9gAqPwu9zJRunKitJZjWCN#T7#lm%$H8Sw7QvP{Na z7k$CGq=n4TYuE&_EU+|-zztaVG7);u15z}pw(z@%1j@)SRz)B9->FJf*KB#M6b+nSiCZ`EHZ=Hf#m{#O907- zA4O#j%xE_=Sx6ZuV7*zqc?V`^!yaR8+*MATIa-I2*nTno$woq4)`ybz{`pgO_m~lwC+pci8 zm6}C7Nx!Z&pGFQKKFBP_hSCP*Xz7` zedZ(PF6VR3bDsC}exA~hw5nbyXhDPz$7K!Uy4>k z{6X*ZP({b|wigP4xl=MN_99Y`mQrQ6U5M_IQYxydgp))FC9();loxfqn=lhO&J`13 z*zLV)NMjahYDZtEoe=>Bc4Po2SOGBDwz%lif ze5<>k1ZW$-jjr<@J6xXS+6x)&nCddQ}jow zlV0hVzd{#=oj+PP*8e4oopB?Ks^rQpSmXtlfGCk_Ezu-8Q!LJ- z$DF+ZyC7g{sIRTP4xFzUZePAQC7;?q6R6E@N7SHSaj|9owudH_TfoZ`EuZrm2lreLkfqpNtY2+HyBUI%o_HitC5<(Hun7APE71V+?#tGKO zBdt4;VS%6D`(o6t_pRNaf-$$1?;I=9@B-ay>btfTNM&Trq;86Uw+KPnB5eX!mgYJs z6_wYIq)qT&0^K|J8#CO%e+Mg;yApVezt9g?TA=oB2 zo5r}Ve*EdIqwg3+*lQ7s2ok+WE{M|^y1lUKU zJK$&~={bYC3=ENu{RNg16&)~S&2cM%|l*81*f2DkhX0ehufs zxbGI0?}H=^Y9&2d@cNd8n6AmfZdTfJYy8JxeCI*rYZnjEjG*%ZHX=bF7^yEoxA1mD zCXf=?ZIaow(6T1?E;J#bOesQy)wpDFF=7*b=?unVvEL!`WZYky8)_v2Hx=n%n9Cfw zI!oAiMckiZVoA$Bs>TbBUqeBQQ)_Wsj^M$>r@~jf$Upl&h!tj`(lf2B- zGNvkKpqPsbGnEV{HH?d9D*Rx}B0w&!vZ?uOAR{8lVERAqzZneP1GTXzY^2%J%fs$K zfd*UhxBG`6$E3&8cXbOb-HI%#_>p0Oq%+1HH2Xc zZJ$`gX#qetfBV*D>n~h`{l|}KANq$p!-pkEW|7HpA79_s+YsH8mp|IgtkXT!ko=@E z|KIxZPd;nb@X-6h)4k6>-S|-R>a$m=r-8eE==Jz?+o{VwyVY)pM?{>w-f13(b2>&M z6W|bcA{CJ6i>wiU2C0M3*OLx(;xt8Btj@5gGoD>%Y*9Di0qnq$=)gi9(CXDbB0GDgMbNc=)+`|#TKF{Pc3q6d3D zF^~AtNm=%S!`-F3&}tKJ^a5htMo|irldrMR0xqMtrI>H{+W~iXdK9L0i*ecVakoix zfGrDm--6?cXa#{zwynFVh@xE2Ou*6#VV#Kr_iDA2;1cn(<8Q8A( zo!e<-gj00DKWjK_4X&GPB#@tR*|0dbn{VN84^wpzFK5YSPbe}wxj1V)+)#o=JEoOy z2KjhPyk>~TUuGl8fJOo^7heRb#xsamf-L^Hwpvr>ZR+*{@isEdS9m!ItL6zv1b(fj z=)1=t1nUu6v2sIpQ?R8kC3QJo7t}6@T+q23quY8?Lu)j!;=8gXA~0i%R^4Mr&57de zTs~@z!`qC$g!c0bcpD-U$VrH!O?6)+*plNVuctw+-0<*yw5y*z?1V@+jNbV~E`ra2 zus#nujl_VSg!>Aqo`f`pkwM5Ffu024oOs~xa!L~61^yN?bEln2fTRRt+FYDN5^9V~ zYC6dtm=G9q73{z*;Q>*tX-a)Tt@ET&^;d4@etPPg?ik`}cxl%W*uvld$WDS^{mB#I ze#7Q>g#9@oj{f6wC`5pL^nU*9onEG)$9TQ#K2P7Ui@q;>1@+M`6Jb z{@CM2w07+1AvoV~fL!>&bGkDxR;a+k3uj+yjD!UdcxzIXXrQnos_@V{&!lRO=&o)> zDm=~;9>Gxw`MPWp$fz{PE-y&m)giBY^qDk8qMIUvZ4lTa~i-5ON%NJ2$# zP{HtSJ$#B!udcw7qs|GiWOL+6iEUbI6g59e{x$&VG5wco3D5JQwu{|_A(Uz8GPhRV z_@ObY%S%cFkc+h!otz;`CF$cLrS~34x`nD)$#V>f32X(%ZIN1uP5^wZSR0|4zFeYl zd4wA-*w`^r1O6dwm`2;N;XXG3gD#;7vuxdJCc402ijyx&oIw;Q+SWa{$88=cebOhy zD^Ge1@VsbM1wqO^OPGa{HWlawcIz4DtHdi^@#&0l9Z@au7$qNV&sMdaS?G7_(~T!J zuin*{uJ-Y&Nid*l?ewsjPyG&lN`|(is?Do=q6&}f0@Xx!+75zj2jXUq|J9NF-;RJ#5w$B}w9F zFzVv(ZixDRVErQe!Zl+@*MKy{g=G!YJ>Sh`!QhXEn)^Y5gMEO;5N^qUZ0p0iNw+?- z(wx{(LEx<*xO_(bTAR#&5xEIk4SJDZXzQ+EV#;cVQ4+yp6|6tqzfkZgI{`j_nlW+ymKym1qxzEdTaCM};iPMx_S-bnk4ESxa)t<*Ev`)O$A+o8roz>oSad~P<8O3vH zyL%CbU82iEpWBV^#LJgIOD2o-kApLTVz~BgUnSLq?(SM &nQP=R)Oj0;0a8#^?>S=3Aw95`qFU!NZGg!-DVEx&@5m|bF-(|t7` zQki~E)Ovy^eY(x`i1=eB-c!gls2uRyJFC5qPiUW*ZbxoU@d_$`zLwwv^j*ZH zTbGIC+Vb@zTv!bpnbH+x1Ofy>hs8SUA3AKRkL+7!npnP{Uyuwn_xV^3u4gSy`~8x1 zU|o%N$kGmxIh(h)(@_Iqhlh@S0nkR!O-Miq;RB&GPqSVl_Px=Cq??I>zWSf_?H~j0 zSCB$9b%j*WR>f4$$QxStL#gJTm2OEl@y+k=jg+lzzVIfKOe{=xe0 z;n)kM-?!i+_{t?1w6~}XwgIcx2L~!(ldGRz0+94dB6RzuV(L*>kj@RcC8iOQJ@DTsPmx#tYya-U#rpI}sfH8+}NfrNum z8C)8Syhp98b!lCZ*AXls;pW(FdmoL6+lmYWdbfUW6Jq5cbR1!wlduzET6igO4yQ-w zhz|0_6G^h_l1!DoA9Yhc>L$Nb*;}Nugbe}~h`m0>R0NZgv>ynT0imu<^IL^=^ToV1 zzOUVmv~gNxRV4wfS;G(qt;w!PTJQx0SElvGr=V$$R&SCrZ+3ZR2M70Y1vTGg*R)*W z-imbiQKUo;Uq%6g{kr%Bk%0ve&dcjbzZZGwPik5>QH~pZqjKjxZ&D-@JjzvW_qIP( zd}J9$g^?-i@|#^x`-wK*7b_QCGfBn9z5vDs8);-{}ze&5o1Q^Vbp+G9^y7F-EEpX{sSRu7Av zr@q>A>*L(YD|5w{&lat0I(9O1{f9pHaWDXP^+V0l)b)RrOO!_i+Y44Vj=4tFOvWV^ zy71$OE>fbC;(g#s-mTHc=4WwOkW>!s6rDjvKOd>&Zk39bAAr2}XyNyDl>1~DI2e0_sZ}*m-r~i0u(YC`T+`JjyKfAl7O~^Dq zxPiG0_{{+|52n21$ZP?Ik=-Rpe}Py&l)}0OTN?IoWDvH~nS>cVuO6Nzu|+LU4wAd|^xuwf*x)WLQ)j*-Jq6k-bPd zeR429b7g~ddL`|WXAScXr!r@sWexL={hl1W-oH;nJ1w`Lq8eH*TQzF|d1ZK=ViJsA z;(=H|T~-;Crg2>|mNGXwGNNBZhYqlt;fJ;P!`ryTuWk@`} zp5gk*DEoffWy5e;wPkv5IuD|uvwNLIEfItNsRC;a?mEV}SFSm%CvVwXNQ#Nk6jn&M%qc8<8;y=G}pUcE+AHO|_|l{V16>1DUR zI-z};PiMhxau6PZO%8o=y?tV5a!^jN?lrrVI{ncO19rSa)4!=MfOIU$f&3F#n*M(i z37)-l%w*}kUHf~8rS`J(DwncSP-{@*$uywz!ds44AU2yqw$RzIac}dqd7k@{DTpxr! z2F~7n^*VymZ<1!nrJ`m?>Ezigae92u(!ypYrx!lI-$wLk_yq3k$#aYVjp6Ds7O&$y z4vL~n%4jfhBj2EJ_zr(^oWPf6R&3#w${l3!Heof*>%z!0`PGJT{Q8Vb$)z1)OEQSV z4Q!e!_LI?$^n*jS0g4{rfx-q--N7!wdV7qns}XaN1AY8{sQyj&Z<%^Yp&*Bbze*rz z{vn-vq-EvhzHJuW{5}i)r&+%Jw)HGtXc=>4YUT#r*VN1VmCz@AQJWrpQpJ0-*NPK^@Z`9oX~8KNAaZPJGk63$?1tpW|lDgeLmdmJbZwk zj7UD|6f`}1eU0Iba^G#$CrNVgv5pyjA~!#t66B8E;Z*J_hw>+fGDiH>F zZY!_bR_<*2==q4e^G-<%vICN1y9PNARL}X{?DF~GDtlrYnuL!@lMp~Z&)*k9VDzfF z6~i)3s%0SQUeA6LAZcP|#Y-25QIZy zZ@u`ZIOPBQqSbJ5Xv0M<$mbRZ*ISRsyJwyl9OkbXs~ixj)m3ly0DRk!1AV+{nY07E zuD|PaudvD4q?N(sK;PD%(bCAXPjV#Ll4rC@`{9L*He>T_t!K0DG0jIb?1Cptn2UUw zBRuZ8;via>Q1`DzS4Wb5`Tg9K(Yb^2eRbH@)I{hW!R5~KG~blLh3{ST35nt~appTn zUbkH!nm2ASlW{3nvvJ9FFta4-yaRsfZ&5?S6Wkl@gU#UjOY>@$BAcEtl_?Htdr}Rx zq;9tjnBS@!6K6be+0);|r^l}P;l?ooz*Q?h<}tN})0FV6-Q;%u6P08bZ&^um)iB3~ zO{bULG^0K3jJ7CW=r*Qg?FM3U_~qlsvHqCEa01VmzsbnE_k`&^pbJ5s@7Fj$&K!*~ zgB2Dpwc0L8>KmR&{;7u!BwM25cAa9ri`dN<#=d`R#@~vp`|;q1Da*LakN1AhbPkJO zht@~^?t2tK#=JEc^3d(ih>yYrQc&2FeF-bm-9;!pU7acK_N zjXZABQCp;)h1q^oE3G_5%ruX9D5+P?whAMKOLO8QHK)mXWrKZsoUQSjYeD{ae`dJJUsh>xqFiSj&t3J+fo;}a<2GMfoeuN z{R_D^@!dtRTek>3bVCM=x22tO)EMa}O+}Lcq&O}s?}p@ir@IFX|F;jX#km^eWF5%~lw4sjJ@8 z;E8g>s$p|Iy1X2MG`B;pbHe^z8E>85=xA7TsOjI8P5ZxoIVQ~|)4BTf$ ziPVZ&jDs6xIc_Ehx->cCwb~PA_@{V z7eTTlCa359{PBVJEj`PbE7T1$)FJoY@8aB-EPq)tm%lu=DlW#V*jp0~G-il1dDVFW zSbFrhy584rb~UM9_dS{-E#Rt>y;&o)OQ`$wHPnue=&dcUyiQ}GFJfgiZ__Qx$-JBC zizNB2i>AAUk0g<3kQ{D~gRi*g86XRR#HFA_==!74edpz#d8BCsnFy#7-Z6QxEr@MH zl0aJiXM%G%x}`}k5u8%0GHk1eBF@so6t*5BG1P(=0#_xHo5;8pQTKiAHCmQwT>E#W z+2s{KZA%X<3#}tIsnQ1-*}wvK;m+qy;$&`49<|`b*~4j&Ug=wS-A82RYZIC38RB*r z+GU$t`S7sh2bM{1iP_Mkq9Lcy;0JVxd9^C!8Fm91(|}XOfw#h%#mzwSo8)0VOxojqND(d0`1 zegZRd=smJ5kpTqh2Q@S2W`aR`9oxmHPGlm7kj`nC!$N{l*Uh- zuEhtFgSpS9MF(*3V3c!K_d#K7qAgAL;jW{<0MakifwiX+5m zv&$E4Tozu+dw?%3I}l&mk4#HJ-_+o|2lI0JB($ZSFkugu&49Ndsp!Hd-$g~Nq?TXc zh#o@@W;iU@&sIXi{H$AWoNDgMC(9s>Wb!hIz2#(7yd#xKDysCJffU_^l#1O<|$N|$FPZ2x#qs-zZ- z$JByFRm!k~GtI*h5F)aob$DhCp&5yYJWI=tQhhg~_IKPxCw!%*;jrT#7k<`5w4J)) zKLa3#H-M6x8Wu}(kj?7(LOS}#ur2)!p{72)&qZxS^80BiO?@LjXGFqI8GjA$T=HR| zix>T9KyV?ET>o%!7e92ap~Vt5C+R5;G)11d{IWIcx`;-Geglw*u4GLA&u8b2XFxiy zy3)jKEVV5K73h9(CK7s@&r?8e0P^lsH-KF@V60+rjZ;{sDi$8 z$=16E0K%7*t3Jwm9yYYF*Itd9E1^K>-HL} zcctMtW4ji@;9*$Kx639FBo{!?4e)ba+osrOUDUNaECdTL&cgrxKRF2rDum#69?}l# zj1k*4&6Szj?IO!*!W5!aH_@>SZ6UC}80(|mZhobup7NJT*ss}JJx=Q zUm&a}Xo!|*Ojw~_1?g1$I{e&6@eZ~ZSqfqodKcqw(fW`}m8RdZmTUZC42CkN8bkwCL8Tx~Oge zectJ4&i>=QwN8ZN!Kk`DX6gsLEg8~3ZtgLl&7LqS(nK&Yj@0Yw)!@QnbP(?wg<(oV zvxza)p#*>7X0XGn)?sym`$2q3M z#9NV#Er!7wsiACUjByNFzu9^(H~|RPR6>Q2-@pmBpmhRzZZ2(rhmE%~bgE+7LV%Nb zz)0v<2~>KKV`amSUpbR@Hb%iNrc;8?h9Nahz{wg(l{huaMb#kU$U@*A>G*I%!h=pF zF~&tAY0PqgC`^>G$W15ioJI@`*kJ9_G&baE{K&RB#19XRf+>(TOy@#6V)SM>iBAB6 zw=jEv=jnY55EBVUpZ6W(nmWeiY!1JNkn+U9_WlZ@E=3MRGjRvsyvSfE;hMOQ3P^qU zV$YrX7rU)1Ty?K-&36T1dtX0o?nU%>v%{JO1i>Fqyd-`hBcG-&Na{^8Uww2)>L?t_ z1=SZ^Qtx-&q*o;>e%EbbY_3bf_12HbL;A0$(;M$761QBpa8hN)OY|x{8IcEwwIG{O z(r^&uze~Eu^SzjmBI7(o)E(r2{|6*_;-nw3`5xDw*c?@7ZoqN2n^B-;-oCKZ7tDD0 z&jBPa`j((GQ3fl>Q-w2OP#H9&q09nm$LD63ee8GDIFt}4_!XcV`7K9ynMM;yqn|H6 za6bzIL%j0sTDP!S5Q0w1`C5Q4BxN3iZOH3RGFJQk9=4uex{`)B+b`tP)9Bqq#4szk zq0_KBp%agzIeMCh*Svd(il}BIkW!lmzJsuaD1qib)ihLcG`bhAFhl7}Rx9>KN6mFr zKdf=qAiX;Gd*}@6<$nCDc4z1Wion%j^!Dsd%?S&tkC&`s5P-CiUI_L`>7~tcQ-4Ed*!bAQ<=6Z}NOA8v^MG)`?; zNNr*mK=T<5pYtzR3;P)j-(evPN|OR+ghxt9wpMOnBHlVqA+{~7W|)+_;ulN+e9Kj`a;OjIbA(c(5>n(Tz z;}iUE*%QWMV??qXC^NuK(`}n1$dKMxQ4$uaDAmyI;1L{tFa~)5WbT{01&Vx-B;-91 zT!V}RN~f;_Wdo#Wz%A}CQ}l_JuqF{G?$OEVg)w8~gVrT<5H~6&B9!@4*p~>CYxiI6 zc8sudk9H~Z>4{#N-*nGQ)acpqklX&5+Xi@RL#-2;1NS23{8d-aI~~j`HPs##dZmPY z`qeGf$G(@oi8Re&mYMibqC$*v=uc(ec zQbrgljimAkDzC5xg2_BO`UaMEa!wOd&b;af;E=-v{5|$&C|iVLrPcArIh*5h0=DM_ z97X3k{@+~Zx)eLj-S$fwg5n%_LWIVniG?_kA@#^c19YCm350!e(nnJncgO777rJ(s z&CW~VZQhpA+--O}a{hdCkHFATQmcS7chc+cKl}UB5D^d4*+;c+JR^bfp)xE$q+{lX zADN86k*)P1j);~dFmfo~+s^s1vKEi;1e1e7{?5wec zRZ8IM6+fby@t@W}R-^V$+#Z+@UYfNV^1L+HfXCo7^t-|$y`Ynx?B8wf)SBKY81#`G zcB`0UlVCN&B@dp(2Ndq)iwb~ae9tX~t%w6i(#bbkbN$Oly&jplK|>aeOWQu(%16U| z#kb$q`Zonv+HGixJe41TX2r za{?s`-j}pp#~3F7P($b?C{6LlYLL;Aw@;Ykw2c*EDx^k`yTurP%s2HUJ&4E%fL*+( z%R(dw5}J&m@Il1UY*2|b`j95QQeE=YXws9$G#K4^CS1Qg6ZE(!wS#o?NVC!mQwM~8 zI5rwhKHGyzD>oE0ZOE>(vU$As^#ejb2a0V!+?5xv zu7`MZd1lgf2@Q0R@UX;2Ab@w|lAPr3c$xYlg7M&|!pwomh;-7MMihCXJ&4gd;_ZmB z(l52!x?k^gv2^33o2o9z&m%5;*T&~gAw|cRS;~0|%NIW`vmWvKo>L;;uH-jL87eCN zCg+1<^c zB>+85+#lAdkhuhnJ^14JRtTYM_LO{~N}84u*6^!uYOL>|C-yKpgtDwV95T#h zlSwibZP8j!3QHeoGV`33XeuMF>Feq{6HZ8`u!G+_p!X1zp8SXz$0Go0G)H*ZsSAl| z(dI{pY2oeP7_r2j0PKmRW?OKf4IDl89bYnX(zPL%9gp0+4KI~G@{J4e*&fyH)NK!{ zpIFI*hW)9owL-aNSpamWUlFECqEz>Y;aN%ul%xR#6Z^!6E&kKnA2R7!y3vG=EO!-Y zqXjZ)(dB*(*9E(8&(f!dAmCXLw;*7!y9nUtw_N^apx^RO7+S-6f3M1;!gy$-H=_P8 z&_>I=1iAv+g|8KfIqB>f_k-Ojl3nZjn;X@vLKyTFe+8-mal2mnnVR*g9bW2#^3^K8 z3)C!5dh0J|6>{2K$k}G})4qYwzIPpCYx}0a-<&&G^XFE<@*wQ75c0#+C;vtpEsuNJ zzIPX`|K8%$%@E3_Gyzi!d{{+E2nL7)Z@Q%LaTjH+qpv(9BNJoDk=ckBtme5rbw`BZ@IqyuSWZ{n!URJ&S~1eGTuH7T)@9`O1Mk8YucWb z$R{Yth$O+19pWJK;1X~_{1PZjDQYz1aVyFAyey{vpj+&&%dt9?UqY3lHzqM~iCjU4 z6q2UXWH4*Bx6YxbBSMa5jMyRxnW>;dCPTh2m6huq=$D#y6}okEVB8 znLkQBp?FLUtp~-_B*h1;GO5-t+8+20l_I81`42syXhXo-)O`rh)x@C=;1toG35EIl zaY53bWe@rRQewI%H0lXEPd85Vd<{p6moP^08#ZIHJ2{8~Ytl3$$GwtV#wV(@Zl&bF-S z`r=f3;@}}y=K*#2^x;RQE*UbZ_=s7>5z{S&ZNWNIcWF{Wq-Jo<*8r5T{?MbTD2QyX zofiA~2r2O`u|L&pLtvT?0i!FFdI)aM=&v&-uf!v-xc1%92m2R?sXPYcpm-Eo zOY1KD+Ouu<+xVQV(zsT)_qs}OJ#F?9xSKIp-k%^rDD+D3}mYVb+il}L@)XILb2NbdpUr$-;(1B3pKDAiZ zcmxl&2g-wIh&e;gNUHXbJTH+RN`WApoFQJjh@5hus6jI*msrkB^O}>=bRA{4El(G| zzo<{!V2pPh-=vfAI%Gh{9`24)6FDshPecoFv{=Y$@ih9u-Ym$b-I6A4A9@^u(OR2? zx6Vz+t~KtJtv=NIaHY^by=Jdr!J!8K@`=dqqcH-opP+Q-mndrCx*mb10#`VinHu!C z4>=mK)Bwj^f9Z&9!L*!XazC3xYGff-#!{D_vfv3P?hs;VNoZ{%(me`Fxu{w7AyEh2 zG*XuPSYPW2-n0l6O)ZJM@T&y5>zX_L>tglX~8tFo$mbe2h(L}mII`V2dW!zAlctl zo@x_VPx#3THkgRERyLOL>khsh7Z|_JAo-Fx8Vw(O)4Ryaa0?vQam(L&-$li*J8Pce z;EFEQG`ET?(kgpUfontxYPbV)I9pWraE8FZ*)*#f77D6I?@ZRkQ!CruitUbEydiyp z5E@fG^D+b0Sarcj)J(LqfLpY2JiwWlP$B8N z_SY)+lw^`jUS?_bR5X)g;_ zRX$6)Mp@$^C!LnmuHo-f9muaJ&FD-}atMfsbmaa9CsN|NPbtmKT89ZM5kVxXJ9hN4 zffGs3gz`X`k@$vpdQlKyG|h%sI_(SRR*da>}8JYMuC{A{75Z?C()(}T)&g>C`a@Rca`H~g0*Cj(DYXwC36F6H9s zf6;4t4UjC?NDZj$RcBKyL$ru(ln2)c!U5C1js4SYhH|Tlf09@U;zODN%^~?9!>Ox@ zY3f%XwVZbaqlO{`2M|bU3hMw#NG%u9+~RBT>uT{8Fxz4&wNL_?9m`cvl)YvuYM^Ofx&4;QZt2HAARLsFDg_LCcwX3 zxiG16*zZJj&(D;vatq_edT6$IqWO`?=L5Ev9FBvCo5#{LGXbg(h%i_&R6tu3OIH>6 z&LEtZm<`dQJz8m^;hWE;v`UbA%sfT%iDth*Q21&S(|`O3N3-yDQI&%UX#3e+@IkI_ zE|uBpDB`DKR!F5XZ+u6MO=9sv-O5Z;`%~Q!U^S zh(Mpa`!BYzeTIU4#@^Rrj=ClP+~A!^OMrRTH`SfQW9Y@IVc9z`0x|P44gq481EdAF zZ{ahD{ejmZIFoRu#L%v zop$-~$`8_DDj6V=*jAPC_ECDQ`99KURoB2$5kRYDk=ihQv){ zUl`6pPdNPeqRFO;K6g>w3aMxugToh#IBSe=3Om%wOWqLE;cAoTfyjdfT$~tPq-X>PTQU<8T$x8}U zV)_`pcmDeBqMmt|S*0Sp+Z6-q(O$_1i)9n95u| z^~SYUh;Kl>&AQCT0Nl=AimMkV09VWG>e2mm&2!j#q}Mq1D>!(e@^UDN3m9=U1r;}P z-W9HR5_(!+Y~CSM`BthlNl8iHz|B(7+Tu&WIo$0cQT%B`lG)I6q~e`k_OZ ze$}1-0;;!6TQkK79?5mamd+FJe7qTiCe?2T)q3xrdSo0#jnVD)1Aywsds7*xu1aiH z<;BF20ji&w>RxZTu-4uQ$**VvM$J-K>En7fu&na@gk-sh{&tRDVOu1)MunrVG0=5^ zpi0>Ud@U1H*HKUn2Ijd_mAy#?s`Q7$Yx~6Y);uL3!-P^l0lpEYF z(4>&&!=sqQoHmJ@&uB>$^3+USWKtG>;SE^T`taQPquSB_+C}TCiUw4XpQ3TFXq_Pp z4KW~TX+HQrA{n}FL6L5{r)U0pA{NW{hYfnOOuvO&>1*y9sL{4|hV)3H`@VNI^m%1^F~u^3YdL?z-O6?2QPU$EYx>#0PcxGif+h zUo>M;`5m7cKx{Rnbsx0G1%O?OEtB*mZVd;^hR;y|Sa}kVpAteuKzSo$f8{`h0lTt7 zTal`@&CVf3sedy)hpa`91K6l!3PX9f4<&wawSBgK4nT)2s)jsS+l|&wWT7h_chaS~ z{73X7#^4`;uf>v;o2BE@861?&RBy}ZJ>J|eza|tW-G0Mfw<-3T-y5r!KK}2ZPy#WB5@8!g$1geGrP@E{B$yTz14<)Ua16yC_h-vXLPP7pdvqIXr z7)3ojNm?N66(%1TbG~NG#_IL>BZQ>%r0Ct*Qs68|l)lwaZUjo@(t-V5Px0#pCURGwa+^>sc z0eKjk8zRs)Wq@pfPXcZKih(5=jL9pLvMV1udXvd0PTb%E7GabprJ`mMYW^p*)Mv+4 zK|=kp=2dyGf+hBwz|&G^N)l&hc6o77DRQO-Y&Gaxb}U$U=`~tZgO3NCK)6^Z;^;ri zc7=|Xje5^nd@G{#7cVBUsow`J-x5REgUhQjY$^l5R}@sYc?5f%JQxPQZZ?Aj`yRbq zqX^#R;~nc;D7-yyAb!+ucfY~|i3&J(z!WSaM22{S={^XsCT3D-OoRmF(@i|n`X{wL ziWVl^)!eK64uy#GPC>!h8kz)KL+Z)%W?ZwBcz*07p3XPtPmidxAll*xadO2t~7Ge83pr-D-a_# z{YLa1G7%EosG3B-fGrBU)smz>N)GUzd<-2r8b(+DRh9`w@7K$1aKE92oft%x6EFF# zXVTi0ncm>&A#U#gyq3dKGte1q3qXr%u_hLYYA{l_13rYrCOhB-RU9RN2w09$Ik`4svr z$|DL0KJJp7z&Uj*^;lrjs%(SJEdi9a0_fj`3A^@SiY5YqT zTjnwHlPE-{`3ynNfl|f(n9ql?5l5o2Cv(oH^KzYG1oG8GtD)3)ZnQr6U|!M{W@WBJ zzzBNnp$HdCC$Z1-8^4qwZ16|u#DWtyERS>~C+RZ@)o1&gEDeE+j@IQB2bT+u?!u;M zG476a4a9S)H+qVD>@WT5ZkBiiXralUQ-3sawA{lj zoj*`u%{~JO)dwL5NHedl?Jva;4doG8#@y0k_oG-6JqWNSw#iny8zJvtx&AzlLH?@3(h&OQ7NaE{uCKJAo+g_C@>s8>uzsfBtZvM-$4X_@)@ntOxY)1_wZQ+ETqyFC#z*^u}M+MdV>0Gf(Y6a;K z+g`DMI|NBu8ZnO9}div6XZm5|e%Lv6E zBp|SdNjA|e;9jAg##E#z`bOE(FqA-!p-j@zBSvqwCbAS<$RhGBN{DVIEOzNZRR&&z z1$e_&)EJK=7@4B_Ym7BD5JWZ-Ok|aibhw^0%SakrHGi;MrhCH;fd&cq!(f`$j?l99 z)bCtn|k8qp|K90sV;4vwWj9?hiN$|c;G~lRl z6OizhZIa6!WK6YGsuDtu&vH6hDj@$Zk9K}&{KWUZ8MT-M++d- zyICx&Zq8S;2q$C*t!cT!(_oE9e7yJkD|eD$s_+gy7tFwqHiI4fxqgI6^->9t&E6um zwpFtTN6oqw-*=6zXn*wlycaMO!!e#BXTJI;V7l^ zeGV|QE&YJ7Il3hY54mFfK6-SCI15(bZfg{3>b4bBPA!ktx&`xFeNp2*@x3`*?D|(_ z7U@h(LSvcV_1SQl!e#Nl>qmq_34(sbg4@<%1U*~krI?t*M z3!cc*gxf5*IfEPxC6bbh?rB(n&q%tmDK$pkA}Y260k&@1v$B4^QpLWb72S`X&^p=u z&?~r@eOdegMF_>#pH9EP_gdZB!r9o;TH`S-oXWHMkl9JUXXTZ*x=KS3FN;F5K~((I zF|dp!E!1DMNXx`YWifWc1|{1qXKxhx>kZd5{AzdDLzpw@792pI>v~wQ!?m&1ooMYFcV0MXOjZzu4ASoIqmCDaYo1I_5nIp-eCW!qGEG-Wm z2(JyxyW*V}8)x71Kyh0F#5w?o@z|QXl*HCc#lPUB`K-hrLXd{mmTpNlU=hgMa3t8e znMH*J7$87~u!@d15le72U>O)1ql0t1_?=g4dB>YE&&`+th&8DXwDgf@-OxI_vCkUr zX7z15dVl*Ckb}U&Yi`wT5=`VT{mX)Hm^3_=tlgw~9Ot8oZre|3?dJ|vRKvvkPvfr0 ze_H5u4k!cgh&L74)2^VqH^Nx*ViTsQ#FfoVn1Fgb8(okp&T_?GtQr|7Z{&~md2>Cq z^A+z`*gq}|o8`g)Cw75vfTyAs8&Z3SQVF`Qq8-1^a9fw{vsMTcom@N{DMP^8>sY_c z;O(=g8!R%f+1sz?(DvC=Z=23WdwJcoY&-}wQio*LHd}NIG&fJT99-kv-^4UgLR`(- zG!7?U1zqWse84{G>g8{shp1LGP@$JHi4i(!v!J@wBg`Z;%Rx}V0hh1hY4KJ7_9Y5p zkYgQv!+SW_c6^kVwGYjn-InJM0`e5uq%@m@B3gIqhxH-P71zQ7tz>g-Y5Pdf@2J4f zE&HBkwSEN|a+>?m<{xnHbc;OoP>!@2;uu)-%b6S_E|kRs+Ia8IG5sR=s-9eEx2rcQmKuH zpe8rn(0>1w&WLlLxFrGp=*mB)4Qh_0IrzcP(|L*OFZgRZqSFHkd2J%_-B%X03dNHj zXbK=L-w3NDlf+4M!rL>I0kBiS{nJlCt*Eo-wrVxK(Y?;)f4&)lOOqg>GI z#`+N%hRrrEAQr3(6i>1?CCv zuvB422*$A<#VydC!I9Nafgl6{?9P4kE4IB}scTjf{UhqS$%$;zy+d+6=(D z=P|u8gGQmvn{64*Py&04;m0qJy{}|M^uq8moT>aTavua*Y8I{73~bxIUD;@zR_v%} zuS^4S@KHNnp z4|yI?;{7`?upNjJyrJ#1?E6NulYN zWIXV91)z*vYWus#w*~6@@doBT%II-r7IhE0h7hd6y8;V3#srr*4ZbBxiTxCvS&?D2jq}fK=MYj*`YrKx$BR+;{C^!mybuUUQ|w&6mqN; zuAl<>9Df_-vk_*OVX3-$UE%5tFF#JaQ+6{byThcVnjkyDR13VIaJh6eN&0#iMoH@i z@h{-+lJQ}0RpG#3hSrKL@nL-(NmBZ1VrP{vS%{T9D==uTa| z(CNXO)7AKw1#PtgV`?zuR9`1pHARO5L@}fl-+k6pdd=r=o7~dtABj8lx2mj}?mD-< zEkbTJ{Ofe1H-1hw$BGHKX-#Pt?yDwLOQ3=lHU+^#Dqvuqn_WH~RNAzmaMjJiRf#L| z2UR2ASm2E-zC>;^V6{F&*gczYX`hz0>1-DCEE}t`Hs?i> z6$5yIkj{U;lL8(Mn-si2pk* zOQn5)tO>Y=j&waLo9V=kp6kH;CUAXo^7r6OVQw~8!8U)XcaVZsS8B<-@7uuj+SZ@r zDY&lNX$7tZAn1$88jLpAxcF1YQW!pP;t*ut5bB!vNci-07wb_4h+1$d0N0%r|Kc_? zYg2-F6d_ABb4riHCy;B$fXFtUUnK#sZp)kXcy=H)IDP~48%FwWr4I#nITjp!W}b!Po)nF)!oe)6fBLiPr$6hzJ8>;9 z>gu}khR}GQ^iajVFD(kL?$!ix{V&DWK@4A;cpaeTW^#z@r3V)PU!!{i{UePko|yyp z^l=U|_Qx~Ia#HXS@+*RHhKMaepi@?PU|ixp7x`N&XV-dhllGgzH9Z68Ma3WYCmH4` z`HinoK_G_J#K?*=jJ+wou7=8*PZsMH*Tof;^Yj)adVPWMncnd2xSaY+$9DPf!WVdE zU~*%j6>JW2-;tN%XtWX`vWfXNOXVa=6#zwq#i<4@q_n7MI~I&c#yo~o+l~vDb;6Cr zkXlZR*txWjCVeZP*tU3zRt%_EL$XAn@$mhPC=vzYMDCJvdXR{KA%*_bSWm_LR^3_N z6!w(BzK*Vxw<{A@_hntKCe`sCsVv8G;+B+F&3GcYQx-wZ0*wsj{lD#))DaS~gW>pV zUY0{6kfd!Y89YYdHoGkfgF(P{YHu6R)+o}b+8prRvl3mOUEhVDogr@Ul-czuaTC#c zN07_8_M#C|mjd5m!kk6gm>f__de21NKi$hF^&1V+kR(SKYHg0y{EwWq=Y_5xQ)hze z4hU8IA6mywf@)}hSEoQgDEsoQfzHF0sFH%zO&EtGH6$UQ&loCP%j1s%Uq;tdA%G5c z3cq2K_+6V~Z$uqk)W*r0<=AnPM)p*~U4%yuN=E2$X$KfUhpmQUW|J zTmrbo6?s_&n#t!aZ+V6JN6pl|t`ZcbveRWx^mLI)JkXZpfnK`X<2Wqt73WTLn-=Xh zO}qaT@2R6!c+Q)QlBJ+}$)Pgz#RFU_%m1g)wu zC6LpeP%cvICcnorP|Z&Rt~(sl8B)c&s(bH}8pc^Yadm+!KhOgcufRT|sW!OK_2JI! zUtMZ*re398m^9NkDm8{>-3lNBLlVH%YFf7pYzTi{EtyRv(p>6fI2a;VG-CufqDVOt zm{CUpXboXxvN?d53IsJi8wMK%@)(*6+-==`PY0brT^wc&3=}B^QRmx|!r%TS^&ET2 z$Z1!a|Fnn@w|KHYpNR#u#+d}%t-Nh#505(Y@Hlw4PVhn?rrGcyg%1dk!6_UfCvl-y z_Nh;Bm(W;=FxNo=0J;JkLY~0_uFl*49T)s6P)s`I8|}|i#%B^DH6HGHK+ASXniJ)`9HuS1ROSGS{{&9TzSHsNk54>ekm@S zo`yY%tq|PziKN?MbGH}KpGXRr46{`k%)h8KaBt=v%>>mN)wB8EA3RF2Z8-Lp@C)p8 zD)k9SK1k<+%W#&xH!o+XGun3!Vmx$!R8u~>=4UC6bb?0(ElEiXFv z8VU&X1H*hX6M^2U#=nP2i9dKSeLCLE+6(du#sWXt3k%*P{DsE@lV5gBeyXyED$Y?t zVv7J^w%`p%eTfLfDFdIw>JEiutSfXjCT_sZ`D(^m<0t;7psWdNO|5Z?yBa@feD&F* zrcU3BZm;wvRij`Wa@p_Mw5FGsC^aE78U0n)^~-sZ_Aem%77w-c!Lm|-&e&&{_8tE zBGD8X1<+XF$%ejMP>qK41$0^wRo1bo!L0*Q>s@EXz@O{;lH_#Kgp6)u2@EMMzou&~ z7F8enYow#_(ALcX4gD6ywfytJp;z@OuHqoYN%Hb~)7*NFMy_WgG3**q(_S|Y7R1MN z{|)9F>N&cRszpF*%Su=v%z1hx(tVv-{`;hYzuCsiEhw@+Y(}Y?lr0GRc>&mZqCNVC zJV}9Q1isahB>sGzLFVWoF*=}aw5h^jmPQhv0q#@jxK&Hk#ghD5@UYCvm`DN!^NBEqS&^;IYvDiKX6_B)fjB>iXWiQn16 z@qIP^fymP2z;eG~YZT*0+7G0;c^s606BB**k~S zFX!c~eD|0vtgSV(rzXf&LVLHEi6&SVwvQ8CNV#A$6`rTLV>Y+G4mzd>CIX8HN{8fq zv`#B&laE}sQ%;H0HNLB$ds-4^ z0CuInAqCjXDvAf#qPrZxE>7vwO!D=s5U%Bn9qF-R;Z) zt#y%)*`hE)4qZrfATb37gx@=^E3Yu)6>9q)SCS!&AVsChUoxzUQ+ZamSlsurAD-sTl-Un@HlI!y?Y ztUib!b_hBfsp=X{j*w-a(NtB6K)VhcUz>t$;F3hMg_|$EjJEQLRjP6BTb?sz*M9#3 z9ih=aIBaTb7y+Ud0&M_0pH0iWqn6>so0apb=ro!W;6lS&LGU{$|Js;HqGOBb(KkvC zlVhHe-4giDlDVi$Eb+xMdpUd zmLwk}QcW0^JEi-=l;x|Y!w#a1H2$I#B)fk>&NgbPFz8sw%N7tJjrLwO60T9@`@Cqd zDj3}69|C`rr~i|-1w(X;w7tGNas9g!>%PufvzA8crN-M7b1jYVBVg536jVJ1=`#2s zIEF}Gin(i5>uczS91=8a23i@vO{^|ZU~jVu9X;JuE&167^)m*?BM{y0q;#)t&ap$Y z>0wStQZzf`g&&7AaM#&Bz3|;p1KxQ-t5AtY!XnGtz8pJ*)QP{r1sDW3@eJ<12R4u} zx%bI8E8gV=_8m(r{I;2&N!VSkOOxZ|DG?w0%=hQ&OXf8bfv#QiO}%%85)s3oq5lzG zTa^}_NWN!z3t6M}+PY|zjy^i5I?`;H&p;UxW!`230t?{OliIty?EIs(wZYd!ss^nX zu(g@mT<{>uIbsNa_$_cJ*kazb&W8^l6nL~97UJKtXkix)D$-Xbc88`&q<}}xNb61` zFFZ|u{;uPT@^(f(?cq{_pggXDlC%3e#xm~gi58hh+0c-~n+_W!1)tAHB%d-*gm>Lz z3poAn@rt!X)DzL8bsr;RT72jq!a4+*13(cDC@Om&TP%Z@B|0m(L@-XH$jBG06|$K; z?(R7AjTcrmmV8t=o334bCSJF>FeExdEpV*oePRy+VaTU(st+bDo6vV>7q^ESO6Drq z%~hDKGpI*!4eHH&@gW%DFy;!9`vSkJNiGjKF04;{g)$R$IUGXtPG1mRbEHPwf`bVp z#pQ10vC-YVqw`4{h4P2Q8%U9^gkvzcSUKGFh0}%D7E9ZQqZzKdjv3PZ?rSzZKJGjH zzi`)~t}yCDOmG?m?hog0e@GI%qXTHS4)?Lj_}oRLLHgRlVQ{PLbHl1ioj|WT1e%?%MxveL@>9%6j^$WJ2F-|KHs8 zha|`MtG&J>VQaU^DdB6n>xXWRr;)3rcBHk++SVhzTfeQ%F+;Cgu7cz_Kmu%a5^JoO z+={d`kep25E?h$4(J-#+?6};%eGIv>yX4`FlNr&wb&GWI6u<^Mx2q?(q6J7uBi#?I z1T18EB_9#|9YAY5P*iM1Ru0m-i0+eJ$T-77h;dqbNBt#x>U!B+P$vnuPgw@N>Zg*Tb!N}Ttm&f*(tt>Ejf``R;4kpBJ<=d$yqRVwA^iB86{K=d zl|BB~6PKpymTal|2i0-3d`RxS64f|?bq7<1(5A(q%3dDEwzU%;wQ3)J-aH8f`m08K zc|iuy4&Bk)W9(|AA{E83J@p>v?=_gub0_gzZ4zVY1SYB@|tU zyd0PUbWNf4SI{+BCE)Exol;&mzAE=!0m1Q;6R+>hOXQAEGIb!5YbhQ!RLf}61KP$j zr?_8T_X%mgp=uuifDO(SLg*=tu_d_cd|>SL7XnXX2Zq^6cut=ex;7y|t~^D|tu&0H z@_+Bb=<5@j`+O`13%!hBdA%nU0!%0^(c_;nV$%XAqU#i>U4@XEDqPM}StM!d&)!7E z3?&aC3z_jFu{^s9x&Z_Nx6BigS^%lRoyp~{*JT#YTrpsK^hUIUL3#B#8Qn|b{z*xE zg^d(o8-fv-A7lS1>I~;Uvs|OzIOVhlVV#S1r2h=B$;mJveLK|WcTr6{sioX2`|OjC z_w>KiqfM)Dzb6KQaDO`vtm(@Wu?hiWJqGffzaq_ev*kb*V18hdwBW*qGrJARo@`v= z-OAg>nRUo6=MLzCzlIa0pbm4nPpU7hfH4j)bvFvYF3fv`G_&I4scfpd1~~{oeTItz zp;pEsb;w~@GA=dc9%6Zqw!T|#_mZ^*=w?I;IV#u=fpbgs7nxOyvkjVytYtKb?$+35 zNlFEM2bQ^y?L(p3;Z$#%r6F|6fzYFeVG&^|^)QhD?@b6i`wP_z3e4BlE60wB;&j&& z?Kf>n5fqK37%qXJis`QL+npaehsDDmeL%(7TRyi==u!7=YQ)_mJztWs7LnJODnVDe z8fU76WLn(CR0a+V2<_E%baRqY>cvwMmX`<&a9?GW4@&bSL6sp`nHmS~89F~R*-#$m z!eLZ`u$7aQ>`uMZO#yTLvg4jU$iLq6)Bm4Vi#@_oihNAmwV*`bp7R zJcu<5j3prF*$%57;?{FGu5?36Q*BM1?o_vR<#12~pr-zQLNOYQNvqbmroC& zOaxIXXyK$nyRKvQLju^+$@AtXh)r%!d{A@(hwh;8L`(XK$ylby#}03m8OAaCCv~pg z)2a;^nx5j|m{bi~kWFEcikjvs>r2{RtJ6(x2w9M=A$GN9%ynf}%d&-v z9CMwuaJoLG{`@O}e zCIPE~Qo;%Rz5RzVfnv(h$V}2gtC|FzSVBZsfc& zbR+HePts9@;~%|!xo~C%NfX@`b;&X1$)vgF-@kq4cye9b&)we%RO*~ph`1&o5Z~bD zS;rKJ@=C!qWb*)sVK*P@9LO>U-(ssHm1_P33J50)ph&`NQvN!=@tDE! zY0-A3CEBJX`_|RXzSz8vnjPqF;P+|kUQ6~{1%8pq1aOaL{HR_iE-eEXYey}(uUfk5GfRS)i zMasE_(D(QXNl)uGBs|<`7m?}{F!h7mi)S=dS%|PDTC*keZfs?vwFE=zo(Bp3+s>v+ zBR0FFMUNTR{cSseuA|u{F@x~$ryWDOq4ys}zuws{YMjz_mBs((k(AYuN3w2j&1g z=R#X@_$}fKw+Wwtb5`Cx5_Y@Z-rI0yogW;ma*r%SH=Q1deI{R@0_&%umxx+Mmlbp& z?-k6QG+U}Ky1Ie*z@q-jy3!=Us}O8+{Pp;P%l-vJB=~El6#=asqulRO5j^NM&An{W@UzFE{KZ&eXC5=e zHs_e9jIM01gBuFB4@rNj7vUT5zNn2_V!_~#_pIUbNciS)Up^j46@eKmt2yfAWs6u54}Zm=tTNsK^PGpLtZ1&KTO%A+^d}yN>CuM;|TSGZhL0&AhV&7*NDg^ zu+c(AW`g>{2YVj~h>uUia)J0J;5^M;l9Dby@isoOR(*&gZ`7wly*6*HJVt7o0)G0d zmxRDJ`>b~Ana|mI^*alPHLe|keDD-!#3$D1D(0isv15nYtY|lwRMaS}o=$YOv`c+4(b*En2!chK z+C*4SaX%kiCX|u!8v{GJ63@1c$+0RCPAao(-KwMA9(0N`aqe+m=H9@dDMw%@B6{eN z?u|#ClAl_5WEO&n2g0^;m>ne+VUdy%tS~tl0r$@NN>W$ukW5d*n=@6CUv^5ts5s(@ zEE3xD32PmR!BipaCvw;@?l%^E_9$KHIT<>mustHrKgo6vHO_UI3PYF>8*hUYY?(0R z(o}pdky$|4<|zv*TcgjYpeiF9O!oszq^yY$HhU(hC5wm%pa}bz{(Xm{+PqI!?+tB; z(q6vHYY7l`fG!X=ow{`M5g}}n|EI_6$z)s-)S-s3=xcRB$qk2wjyQF$x^2wAthUuic(5M+E*?A`+1)8 zzUMus6XyH-U)OVWz0SncIq&;C_vilH_x(9$eUu_>KINKNt>j1v_u6wIRjqdQeTNG|)nqQA07xx-ygQXl4;ZciI#JtM=tP<|6bTPWJI`O$c3wL* z?fsF^4A3UK-1?{{vjPs}fN?DB_~^Wnlk43IpDO0Zyv`o`L7a{y4x*P|yDBA0?+Au(^A_14Ppp4QtPO-4`4x=MaljHgcZiL=T2 z_P-xeN7JL`U!iNJ!T!en`S^KSa6~MMYjb+yUfW!$0I*`3v~*#H8)B}IIEjM`{)QlB zzqa~UcXrEery8O7rs_$TGB4z|kxXN$+Enlm@xqY2Z7nL+jp5%787bPbv_20&MW<%p z;8(r~UTR!uTMKs%327}}Xd83T>d7XfZQZsRlJtS$pxwq$T_Q&KN*ueasKF*h0UbA=^pZ0=PIb7ymUGi^UgF6(mB z(DHn!Pbg{8hN@n>`u`oy&9{<2Zg-~FEd4w@0+5H)Pf0UHRDuM|2%{Q^H(LOwA6(mGtX1*lscsI* zFMJ2AY54PLxtr4@M1Ens$Tlh7cG!2389!N`b0MN8%q$L`mIWWxk;!CI z`u9mcne5bQ+6jOMUB@FKcP)L0vmcCL>3wS{#Kw2?KdWK(SA^?|)?__l_)@mqT@ zsBBxU`fRW8F~^p|6mok{!+=|{5tB%QdR}}~V0GBwO!w1^#FyDyPOs~ipc(*0GAx;B zr^Ao{iTg&Vrdy<2$QRu3H96056Rd!+L(IChEQVsqCPYQw52$td9>UhvtI|4*4P?TatkYfZjJi z^?)UYZu=fi>TbJaUySijF77V-=Rej@rnewWD3YGw&eF&FA53+E$)H^#0bV!E^-t-W z3ildc{I#MM5!|rcok`dy2)fC}n0Bgi!be-R;yb}H!>pbkHNvIEvKT#4`c0VQ*=1$Y zT*cybNlWWD6gMg^d{2Ee^6cu!jpJTszXAjgtTDvQ8#ICsnh*#Hx9`gH-BgaXCa@fW zcoUuAsdKar<1p~z&IlJ^RTJ%KFWV`#kq65xF^w{8%w->y=jubBYxrIGS&GP)=X;Qg zt+^H$&%UVdHmSRm@eY;6$nlgK$6v1W<%Gs7nR>M)^~eR|4rlE%Q?;V z%FPRP-I8xOkBZ`SX`DWUqqAdJ3_nk2Q%au3_2ok!f)kP@5>5?M)5?IHvpIKd7f?OznVZvTJU} zF9?z;s7iPGIHg=!=LR|M!v|>7%7N3s2u}(@Z=)3`ftvEyRWOk|LPCr~=teJ#DoaDG7=I3)u)4v;>+TL0VGoKf2*GV;*v&D;Q9qXUB zNDE;@S3l?d#QD_Afb39Ms1w;&zF=gp^DojrGA|2MQQy7V=Q|5VM}df4ny_vaWplEU zXLjd5I;OEae)1KaAbkCEdj~b}i+ePe4jq%Z>}SD((VkyFKP!7Z)9BoO0=9=%|4S;H zGd$A2_EiXm41z=Eg15ltrV|%%@nzd=$H{;eIWjrZgAdT0YP~nwh@COPzlJn z6bDL4$W2}qge(HB?U-_f4*V(I-I<4WzX=F_6JW$$1ZM__*IV;ok-w41U-zv!V%5+l zCXpiG{P^Qiwzo@FdBg{Y2k0}Pds5vJtGziU;WfbB{>cqWiTtW4%&n^^ZK$jD@oF$N z@#*s_j9*4#`to1t(=yGy~^Y900zyaLAZ(bUYuB! z2bVEo0vDfNINOMd`QS2iBryCL+Yk4q3X&Y8HE?qJ4dlam>7!@%jwoc8k9kHC9oTeT zj5MWo+<1t#`z_j_cxxlZ(G4FrY{3>yfhzC-xmKI~@z+|$E=Xpm%Rv73l{Ak=;)G+m zRtk^UN40vU8?um!y62ZDh}YZA1yD=VMK9C~%GLAPDh_=q5oXH7FX}*KFW`L zHM-{EndGtVdinKEwp(;D7s5qTly2sIe9perR0b_z^QJX&EJ4Z&a$2R%QSKW^ytEbWxjwa1Eky$ebywCCp}CEh+WDO#ZvcVC10jn}05| zu)4BUbVbeQN^jAX-X%*rl~7}@FGi1&ki$+1SVzbb)hqeb(=nv=N;z_)<|K+f zESOB_E99#u<@pgTjg$-c4G{i?G)d`u?F~ow3P7fiDiqwutQmt!5iJ9H2$6~5^tQ)6 zpH_V^A70gW(P?Zo4@_%T%4h4HQo+0KY45tHyz8ECs=b%ySIdjFW->CCb}i&Qx#Eh2 zip&~7Qm5vJ2fQ7d)1Vv77U%-WBFUeaK`y%@)plQ3GlI1mOU-)W9$1ysfDj@}gxhsY4mZu|@3~^0JGRVw(r1;GKULO+O2K z94%HgKA?kGDeneikq--zim#yAMt*P3cO{~q7%Z2Z9VGr*)0mze@-J^8C*b_6j+!41 z+FN(b?y@(#OQ~y@z4w0`9yQ8wo11@|5(R~Hr9!d>7d{z$?TPBOCe@TCRkR&;BdY}q z$LCassmT{D|Mm)r%xHzQK~V-I!TLD7qD0U-$F>rY7#JuvG%7f;Z^qxs{h>Vv$y>+~IPAxjwGgy`7-LjUM-$$RNeOJ_pykbh1;~zROqn#?>c0S9gFtqo%#x$KB8$JZ>t0k*>lw zt}Y?lE2qR{Sxq?p!*jRbI5q#I(&9yyRYxW2fo`>-ZaoNIUPHG~4L98)kXDKxLw6n~_h^;_# zkUDJhWuHHB-1E0Z%pmH7ece!3;p09k!8qO_%)zZ@z}1htUo<9vXv(jFdfckq-Kr4F zqphWzT zrMo0UqP_&4(+zhZDjvJzr+Tu3tW^CeS?+)%Zn+OXr|)=;QUhy z@})M58owv{=_QkcZ#LRfWyZhCC`kZ}x00xPE|)Dyt3{uJDDHLJe9f&6O^xEkes%HJ zBV=w9Tlf9DS-LI)H0M}uc89UH46l5WpOUjdaz9o_D7{67OD#qZ+^1*3!a3xmpkJ%* z-)i1z>$}swnXal$*<^j4RRfvCrmU(q1&u0&)1%U9CWYK|5kYr{oe)B%lt?ciV7YV- zy&wY3Zy@MATGjuA-EMr1vongc)4gqHM3yRB!M9a|uVbl67S0Ud@`i{PG|9kGm5a;dmjG#Yd65VS;hkJ$nb| z)9ssM*DF2sZ_ezXnPgaJX%o23oi$0|34b{EDYrWSVbW~~A=CsBX@o-n_Gza}!uMZ1fpf#@}sAqId<6^SpKhF91%{>ZQRvKh^0 zvwZ0{WPhbs*Rj3(;l6pbo8yGp7JSEvqClqqT{i~l8t56x_N+aqOR3MvQSVcS@BfQ&&;ro2~ zj*NgbC(oYn^)Z>IX8RrZHEG}QybO%@aZe(t>T>WuU!R?*1vHmvXKA{z7@DKy4_)&& zWnN(i?X5~(t;({+Yp-~VWg9Iybg=2NqlbQV044NSiSAz|ee0IoxrpgRRN2jm`*@;D ziXlgJM)ZwGjD^*i7@aSjd@-Y6mo**R!x@C(qQ*jp%L{`llw%<=_9W=t1L2=hsq#_8&adxg{0 z`PhCd9Zw3?A*}4BUq_T`%C3_8+xbO8v&mxYAz{pW8Myo_Qk;k3Ewn2TF`NE2!Hq3s zukmZv1czCj6R_$xVU=8@3nM-4Hzi!$l;E?`_pqe~ryc{=7UY@8*$d?9R|qJ7fp&BL z4~kn0?WlZ<6duSWMesi+1M-V_1n4@kx#r~98m3-q*bI@=5X~eFl2l_n`!ncU`goQ4 zZj#T@WoigUS(~IA#5<|Rqac}Y=v&mwd$oR3CMihh!gM;angx@Yh-9F$TlQDevV%v= z4+t8<(JUkj(44MEz7&^N0fn>mbrx`W<(27c)2Va5_=^ECP!715;Lmvs3QfR(XvUtG`-Z>?| zbMgnHln+M9`JGdqsD@xhs1#-1np%t%F|AcAc+#>)%qg4h#Pheo6aRR6CAu1K8zjX0iOJ!8!ulW zlHAW}R;0cG5F`Hw^*6&8=hC+r@A3z{=}O|2KREf3YA9RTHoLKq$-=1eVw*n2HWr$q zCr3>PVfRBFF%ED@ob#G8dS^AqmVXkUPYr{r!`^>{kKY9!zl$P2T(n$datd1x5_%gG zr4Q-GVA5e_$B0T;YBABf#X`~=>7jC~QWJgC?WG+LL0x|GYip^&#;t0`<%`OZ8t`uN zgo^7L!Fo+}&LWZLn@$qGsdY0dToCePYP9}T z!5hfEKavX}KPYoezu59jAecY-Me7%oFysx;T>9;+ecsW5)vr~u_IPqR zfr7}uFTT7NIM*H1>aY}$j+R}kFh{&poNDfq#s0{y#eY<>uT>#TMf$GvvY*Y9%E+ki z)+FOxZA)@|#h$EkF8`0f^pdR`!_{_v(~Q}TU`gl3g*tlhoLo*p@9+XKQAg;y)rOc} zg`jSdo&rngx^WoAEGZG&A<$n< zLq*?MbBX(yXQh5;bKB0lj#14Mut;JLSrih)>_3DIl+)-%=4Ma^oPY+VVbC56IUQs^>g$X?~G}>VwcOwOHoMAa%xq;^cBy3k)=%8k!bB8zkk(4Igb3Ksy$X zqp|`{af2VX#mi429N}B_rw&0}CSJHE3wn_NUFb#L2o`kzVDm*7RK)3>1x+%R4lCXa zJ}G1o)8)7=UB`>>c6!ePj**2pMGD7|%$rq({#rWPZDdu^ujsqsIdXeLX1Ow*_m>jn zG7x=``-N$x1w)e;ud;4Z4TWl_iD-I~pPDBZ+k{p^TYiwN95cEOhE^U7%`sc{lFFw+ z?z4+GYRD1zw2+*-G?~Fy0MP|>>SGGgr=dzhBm6LO1eO|*uc_|InC~dotw_sR#Hvsf z(LZN7Oxpk3>y0CGjz9Aq;3y~gL?RfMuQL~C*Zx_ZH@Nc8NLnjyFV#fFNSEezDrr%9zmvsllL4W zZ^;24FH@|@d{wRq52)ofEV^^qrDHEsHMmfCK4gpPvOTJXX=mbImG6@=+zE1-n53Lf zQ)U<)gDM{h-WwAu+a>$^8~0Vzp?dv_D+o!+s~dgHaCG#lc)9DC;iw`*-#doT(A3`< ze&u@Ipy2#>{};Br?1|UB6Sdc8Do3mCMk@k#eaMAwyZJ||-HSvULv^=UUZhKOMi_T= z0uztu=0ygY{g{I`<4UdS!=nE$s2pKM_nSJkgi@Yw0b}Rnl&qhd8 z&<6W{(Xo^wG-Tx5mEsIY7FqMl5cS)~mi=en=-Zj5J=TA8O#ZC2{L>WrvB`7W^#Uoq zeetTrQ^SXyG&wTcd-8?)|1PQ;WLq>X3K2Scyc~wsiX6+l67%W;k}6bt6xCC>(5`2U z#+*G&Q%=)OK4;f#Az%Rlqn;=K%Uvz0j(psu*rBxvBoz}O^JJ(~etHyg@x?=(Ci|d2 zGhMs(m@T>!Xh9t6rDpj`^(AmM89c;+ZSdi;Io}ej&WTwlbAJA`^JZtGju)etxajcR zo;1Gc^7v;Y6y8xmblt*If(Nc+)K)w+w@zr?i<$n7e#(s@JSI6KHv){FM7h(2~JZ6;Q zF$T>*lFEAckb?se3lJpISx(s*ov_nAp=;O+u{TT2%QGQEP=?k`l_V$$#`)nhu?~8z z-0d1stVPFHM@O2@@&9DO%BfeFL#K5JhBNaKLhZcjnm3iloQ|5{V6{~g+RJ;?u!e3< z_0cI+HoJ=sfw3~!@MM|7iR`cS;`;o2Jjd-eG5pQ6Uz?S*?&0BglY`T!lmGr<1ZB}F z519QR4oX3MN+HIn-Rt5;GgG85@x3=9o7(mAg-2#`4`jz%-*Led5oFf!cXz=hfusSs zn6NHu!Cm!0A;DX5R{e`#r4SAuK_NA+0Kt#4##+jhw}q(&#<@vLtj8SBq1(ssyoR4F zubv>OFzE6gogZ$iZDKXmE97vU;Up3k!!lu~&6zTv_Tg=(NfWq z=V?A7)GL_12_Gm|iAl9Lpw(NRp`C}uM~OlK@b?=vPozb6ed*Eht5+x5Z=++9-hGun zwEbWIXqf-U-Quf)A?vxOqC`l-NM^?GG3Tyntg_nb`ZUhXKhDi4PR;0_4SVLl zz}yr)igKaf7WyeE9T4?C##%f~XNz$xGrhnIgWMEB;;CNG7pD(c8j!xERQr-PF)cBr zhF>Jlcm4Ddd`0|SOc%@#ad^0SCRNMG2vRxlllLX)8%IAtx&4)`AFgaIDHT~_miOz~ zD7-r^yng+6k(jnvcovY_)0LZV5RB8vx5t&tU5%j@Z?semS2c$?Y}$PVTd za0JaE=j>a(s}2fEzBDgn*=Hmx5MVG5r!+e*tt7{6oj$ZhrRhK7@uDhLz}`km%lWGq zI)^BjO`#b|M(29C&8PnRo#(G42e@IZ5)k`=r5aPctqdn)*e4+PXM<8?zhP~E0|LS4 zd3QH7@iP#8MMl~FoEk%aJdpRutyDOfrbOd)2Hq^4ooahX?b-x`4OA^}id&MdOZ0&_ zDMv!Zj210YLRtu}LU2DOU$ut<2+I8Ni5# z&=tQ`R~%QxwV78WJLa5CMPu0}%)WS%GNe?}=<=utH2QJtqcg&%;$<4r2Unw=>Z7VQ zrEBPd$$Cpqgb+`7GWYR`7twx!dTqPSRUCNJLa6RnJ#48;1&;UNPr{T$%7_Di(*_9L zSH!N9mNhUZ)R6(;nhEV2AdGSI$3m3&!+GsAvpbkwS?<5ODHxNsxdna}YX|t*3;3Fl zcln>+4y?bNw#E~K0Iq4w*&>Lz5U}EVr_GrfeesAiD^A{=aEY*QQu#`lcrPZS3-?YT z1#UR~-XxB3!9|C}LjYqdiQo*I|8k_d%hk z_THoyVjpJ-vMG9f+P}#$If72BhSMMUMuq4#AU=jr6=Z&pC0Qhj6DngW`i0z>7@DEP z*gF43&*UqnFn>g-`5x(%TX1O?p4;Gj%#ReCc4d_+G6lJu4jX2L^iv!d4`YWSnbI6i z!(;{TES@9vPREQ>rg`j&uF$c0J^N5<%*4IImyf-Yj7{dw#CDoV5b5ZX`12*+w)hFuGXybU zWNUU_8<@t2h)_%54R~O|P(Re)+PLd<%1;w#9Yc!a)AMQZA#2`OFp68CLV+|z%zI0} zc;*B$gx5k83LgBv)*j8IZ-);-GEsEO8k=23hmg~YK^gLXnN=Hx!Pf*wIhk^|;Q4j6 z|ARbbG|xv~itF9SBZ*5p4y(<{@;xgs z-uYFxwQ}SL0NsM;g@SJ6Y?0j&JZQj8c%j#XKASW$Uh7T$rj_;AR(^b=O-@8Uq=mfg zBxQJ#$fuyx8}Z0ovMF=jxE9-yhK_%JQ$>weIgH$hzk0Uw zv}4@|Ln2TC5k7lbm|Holot$u-cX_&%8|H`&pSXnK6HzN_-Y%B!cb2Uo2JeE#fzEwS zJ{I`*Thh7XNyZkQ`Cqoi`0O0kv~xHNRTrj;Ck3t!efHLf2fDK6msU_W$vey4akgn= zkB>VHA{2|!RG>peUI?IZhLVXiW4-pX2`x?Lp}*nE%OLkc`vSEA;k0 z-R5Xrqz&}FZw?71g1JfEcXXPAR~nd@8~LpwzI?cl*m=0Opt? z8jcWKgj?oalU$Apo^0$#1iBK8x&>*4aC6qvEYx?BXmBsv;iLhk1x)ml9?W?12e=b^5gEA}V|CO`}f~={M|OzTNO~>6BPPd!H4`>m-J#bc?o^%y{%#T=Z!(Krynw~0p-JYO z>lL2swSR|RwdEzuOnBs`wIPI!v<@t+M=TW6nDaj7bfo~G?eczyR%Hnu*vJcKNYP`Lm^`Z z{S3VFA0iO%8>~;NtS5PWPTnvj*zFtEUA{T{_|`Lay?#G6?D4NoET8REzGcb7&2B!M zN)9jWN$xJ$M}n&ZQ637V;)0iPFS0uq^Dv=W&D>y$R*NVgxTAHC3*uei)*!3I>W|7< z?@gDHj6&|R$-4KUXBH!`IC_l2+T>xKf{ExPRCa#&Fah^1gSojI9Q^KM`rQO=;=X4b zV67)Ss@Kq(19+_1v3D-s0`d^2Ol#al>>t(Qvh)DSb-gN(PkOQ!f3n)ZQ$3 zHCOWH8VV*@ZLXzwlwbgz5IF7^*wOQ@pyrT<0;J{ zLO2~-=xpp6(Oe(drr7ZPlkaoP)*0Jk%+c>;X6C*_Nk2`bia2KC6l=sY1CmHG7*nCp z>XNab1f}j@fMR5V(@~^GHr={mGc8|Y#PMUUxydFo!_;PQjdr*VF z{xy8&%66T8#~`+K<87z!O1?K!o^pm^ z_oAPrA-5n_r3DZNIleh3Y$xhbqC4@sFjjHk`~Az`Tx^M$T5OF#8kP$N5>E=LE(nz* zX0N4gd@&!>@_CRM_lCO?4s>Eh{eIzQyG&4R{CmvNB4?zTU-~jKdAwn1#ow9mV9Dga z*X;csLFt~x?=o)LvuQG-Mq_i@?1#N`o1Qt%ZvYm>?G#a2>d$;KFU*k6O-eGflwDpH$S?rX5C?_ zao-k~_u2!Chj*(6!3qvz{q!rZhV&-m)a3K0jPzudXLc7c3sw)Wd1q>GI})O1yt7+f z7mQqYnEB(XIU&8JeaJ$%M^)qG$exAzIk(rY)9CggsWnEq|0HiqRB2>N0vY_uVQXQC z7Kg#0{{_XlkM&R<70psbPX`^0DQ4b%AXrFjyq4YhwK2rFvZcOE&uu(*qy>Ejq`r$z zp&~o4#tyoK5%TfeHZ7ED!dqxhoTYHK5OV)qxH)HbuhAl?Kr6K;#dcugiVA>~y#Nm~2X zi;sa46h;_vQLA{X@=p1hHsx;VPQ^Dc0eZsu>iYYK-$@OFW~gE1;R*nVM*H_iM~`_f z>KYgC@WH|5YYZ}OMa3uKBE>Pcg4=+k-!h^rS`>v2aq|V$<_m=wB}GR}(g|?F;|HUm zS#B;Sz@gUNjyzQL2r5G@;@0o9&rTgg zb59Ifu<&qu@kq&g;Jf+Z4xI8#p4fzbo8CjB8lN8(KoXLuDBP{_bEck0ln!y+rH1D_=jATcaWZ2+WBppO~ucX^sm%rw+=4R6rZZ6Nm7>||@? zSH9mAGP30A*&Mfdq7S#c3GyC|3BOkFD@mctz5HB7e?RfmlB}0XU;?T4TL8PS+DLqx zQlE|lpT_*U%4OJGQg5x)4?NRRmG_mmxnDyoptOHel(?ZW_$V0=<f2ud&DA8{epd;zfJnQ zv@iL~p11*+#7hjgxx#Di=X+0hJ~3A7fr0@`K|w=S#bAR^%21D8E#aS^{8rPSJCR z5QW%I_a4H7idzh&_A5!9*$Ujo%c#IPHTX2@h5``+_otk`F+}QjGB)9eo_4Q%Romi{U7a@sdjPq-JlgDJ?!blv%K!U z_K)4yMVd4b@F(=rAWS9O{e;J^)3l@gW=!T1#CuETip%$2BJEQci=t$7_LI*RH{sJP@i=uAv^(AjLgC1cvy<-M=1jSWW?e^qtA+;^w* znsn!%E=R#v+xk8r*dAQcOTk|t9UMP33U|b!pp{?AC^vDRO6q}TQaFAqquqyh7}`w+ zRxS>DTQg7xg(vRAqO9epT<|7;K4h6R3=x;s7Wd)2qM#yyiX5Ul_J868C5)~>y#(i_ zAe-C+p?2iTVcA$B{n@8MG(BiMqh&F(3xN%ubqOf5thhgQ3R}OI#1PHRIQA=kX z<_cl?c}%dF{Y8iyofy0$<2u<8KZ1%qtbk6!5mH2C!a(<@JeW+2LMKU0aImK8X%g0n zxgz{x(I|p|6f$f?W+8

        &f6dnscAh$uPnjq6NCfebS;*A4OX)=v?91YF0{lr<8_H z>_(E54<*MC;t1tHH>+?d=w2N%tK-OX->v`_H`PAQ{Y=Z=BHL5QYxD0q=x%}TTcWqe zcT;H(q39MD+w6W+Z-F!N5!@8>hva211cs5vZVO&Tj=Fo)zPmVE;lj8TuJicWo}9V1 zJ_h9ia4Hs!*m^ThCG;b$T*7I&e+LvjFl3Ezez!`Qs*6~Q#ywKfU>0yil=sH*I=T`{ zIU)@@s5p@E)zYY%;X!%%DD1lhILZ`~62#9$^gds3C2r;6#gbhX?JhxJi{x_jnZ_%x zbnFpZx5u^1mEJ`=>j(w{d%ZiE)z@_B4FBx&FAFGeioQuRXGZuBC?MPo!eMZna(dvM z`V|m^v9=TwT1kjKaQ(be=E-Z~TgG3znqLTW$Zr#tqx9e^U9k6p-%n5QvVf!&w4*T1 z$r{_thdKqUr#7yD&W*b?E949{;?h%eDBQ;Xr#djcxgxUp-8a>%A_1B-v@uI}ntNn) znI#)l&#d2qv_dih1GEx0J@RHTdCd_*Rn`5sf7K{I4D;}@n;a7@iB?)+e&n>)zV zf7gTSu4|kISeChQz`N8RXwym1J>q;Se2bCV1Ym#fgB;PNBt&%0&6z(fsv5!tqDj}< z{HY-$JDXO9G;)A$>djR#+oyAT-_qOrA0SI*Qq`9r?%o6?JEcLbM7J^vpAl6gK!E_fw8pti&QvZtN77m0%8HkT8w%;-&oO&~?L28*VgZ{^U zS%4|rm4VwAJ1nl4lv82gn_3v^X;g<8lU2=o?=?A_N(Z9Lz6!ZbT}b1?siR5Y<3hwi zZtVO3keihd++)Kc5?YiHhtiexdtJ_zpMP`Aec zZhn-JoXfI>o*kXt{1g(PBi*q1w^?4H68WyQmO#L-vge9w?r?VXFz-S+Z4-ljr#%s@ ze9dEY+l42%>1wzSxC*Bw$I1=g1JG-}UWc|J#1%!sG=Pp1ZgLH*A#B{*zzHQgWI8_Y_S^$hCgR|K##Jzm@qLU58zZs#gL_V-x_9^)(>B`m9 zkI}xpr6=MrH*^qmG#f>X5+p7G}gRgD-_-b3XKmS0yqrod5xug3q1AAJSLE)vG*r#6RaccLjyY0U2wtjw+I`<*- zyJt&ll$hWU)3$V+GNUA_qtluzb~IOSc)O_pXA=f7b2cM#2u)sqYM;L=7%>LV2@Z1o zTts!h-TV?^=0yqxz{(x;h=4%a*vKkssNRI!7^m$PsP@DBh(6*)r7D_X942*M*L*8~5;btS|?JYcPP*2Qj(Z6%~Pm%M=>X_x@Fiw5my zcBBT~9V>R7#4pP=hnUW_l{Xc$0uNtw2EU2Oll9Z%XNL{hM0*=OB!Ps2;{+`arZwRs zaCl^XqCLc*_XmlS6`97SCCSYb+bu7ku>sYMB?|a4*^~^r>DAJ1+oDCbWdCxA zfcTW@qdI%3gt~`OmmwP^2>aHoq;2Pe7~9PO@A*IEJ(!jB62{o>mVn>rKda2$BA@UU z0&jd^D2@QTIN%M~h0^V&CH8ut?pucpqsjvL`Pl&Aa&~9>YDtfc#`YRu5WtVURkP4^ z4O-VP{&V=c6#yQ!u}!B3?h0f~6msuP=j>r>3TmMGWCAem_{z?aL})}@mD>R_IW+~T zC*`+>POjq1oO;pZ6)~bvrc%PB5Ij#M>Z6hD{84 zi4RGtx)?=*IUQih|LZr?5C8G+2GoHM^ixH!M191Ow)8PZRR6>eb%qpp8(!`TNdtIx zw9XiR$XU}E&&~_WP{5$B>E$r-aaBKsn|qXIx1Z_IFYoz{1v3W+Ew}6Oa(g%4*)2>x z5pH!hUU&GXe*k6?PR#C{i~^w2EHv!?+RCwNHc*rFl`AX(`riB;$`j?K#xuNPyTbWM zXcfC%M@=HdaYk3q(Q(ycTrhyq+U%&{i5rgX7M~zPKNKmvEDgn=h?n(!;bY%Ux2!GP zt%CNQbcrX-o5Ev6LJRIYZQUCI0L*P;Az!>Xh^Nv|?>~HW8$dUtcQ4xAqbPlMDkuJz zm=QsKW0<|pQ7|?1)`F)=>v^-{7AhF(HS-aF6kflrZ3#5V=_^;q&ttOn@l7Mx!QD=s<;Bs z5$MaMg(ss1xlfqzpuXKLkmV&N?Hkg3D-4@c^L>YhiZ2VLrXb0i0osrfifmchgxvm6 z|BsX2tqh>;_)&*3+<2%N3O6on=aHr~yFvZ-o@NYEnY2&G{m{iQ6}deg8Kf=U1d7@S zSA**~WSXGia81CZw7RFS8(9425IFI&g(ETBc>Q$!0)=<80*$NuIg{QOBJVC;J3|&S zed(ojN$#T@5n$obK5)UTq3Qg)+&b~CrJm8r=*%8BgiXE+DgYDpPAPwa)A9LHfyojx zL@OFz9&_W7J9*KP4ihxNNHGGt?}bk>_^SN*FYr0btX23L1L@uXKf*?0?ju9w15T&3aY`YD2bT6K zvq&t@;B7|OL8sadLlB_QX0)4`0yZBtnLK=m24+EESl!F#>XhKa;fmu@a0IU=XWbe& zOoXMhKw84WQ(?>m;AEl+D&!WV9dXG=JOsrBFR#D_!=DXgz?JT)LnG(E;OTCL=mh-Q zQ2%abBuUB!akVHDz|qr$*D3z6Vi98VH%G6~mvLD5WunkRMJ=i-JY3L1ZK>K}oz+R@ zq!5c9F4{5-THSn}^rlnmIB4Ap;+DK@on*7rs*(8Sa*il@)3KPCjEU9E9E$WSYDGR@ z8sCO*#sZ;5u3dVI&f43bwRb49Z(BY4GCa1Qm2Anu;!AI+XazyAg60~A{2+J-Z1>vU zGv5q$JWNckVGNZ3r!S&pzaoCm*l&t@#IbRQe;nxE#{{ry-E7nq#1?(#nJ* zX4e{26>&M=f^Pt#GVh{(=j)~T6~;WPf-NCs4Q~eai4}{w1rySx(+VP#ihXwKdRFQ} z5zX)>h17CmO{C3((wui6Dx`A&XY996=a0Xcac0{*gh|!DHlTFAoVwxkT$|!QCO2Zx zv)^T}05g;hFrnc|mKK!=gaBId(DyV47&j&l*Re0PC*1j-Wtdg+0|l-V_x>(;n4>E~ zzM-vXn-D%W5FSvBICX#z)-5^h^wE26i_+>l;64EQzTQcSru|e|%xl5W(5mqYDXI@C zSFb?C4QT7eT^-7w!z{v*mZjm1bRn}ieei9Cn-eQeOx&Nj$IRzz;vTyM^vz`5T&@z( zw>jPRKr{g8iHQc06W1d~xP|Y|m5>3#PpYgFmFaG@=%uW#q!rA8iSU@b7iouF^i<6o zK4Yy|-$({}!vZ2WE%@#%6Pk1~I{U+rDt{V!lW&4UwF4qQNc+!oM!4;4A~lhw zwdLb&?p4FLlU{B5VayBF14u)8COJYrjRAgGp-o(GD4adB6$ah+njZi@Yzi+P++Pag83jUv9TML)TJ$jD!Q8Zl!< z2i=&W?gb?ZFOgk+Y-!?*#Nh(HFW&SPDj!0;?pZN^Xda~DX!=|;*NxUi6}|hPLDffN zSzX3M0znzdBZbGDHJutDf{}@nTn@(FJLkEm&lLN1sxi=z1iC!#c0;`9a5C@y!(}*6 z8_UTNdqIWT^|HmZ%(?_)QAwWRizj*%El;8|vO4F&>Q| zMKiB>Gq00N&JME8f2_(I=xK+K2KqpZE^D~{$z{!;^nC0lB;dJkY%jGwK(%1sMy0){ z+t+Z;n^L*Hj5DSPrPiEeZqz^Xv=&}{gX2*@4;hm%7GoB z40hi(i!R5Nni}VOBp54gJu946*&vu!NmVE8_P{~C!)t#(G_gtE5`;pl6Ia&wFUJMq zxhcmdgcty#*r{Om=4i5(I&VDcWA-h*LlQ7Bg}oUTI(bW{6(ovKAp%B8@JL)jsmOXv zrepAGrW|Dy8zWvh_YqV@*gxrl(oHzRg-|(HuaPmI>m1{5T4si;rsJ5J<{%818X{Z8 zK*&QIxGvN6lP5U&S9af>(|tEQM-VKbr-~Exi(xkf>6`y^bHW3+`&o@D*@zDO0QbIv zEtprf5N3*CLAHc}o8s6_nzM=jiZ~(+4{zR3+OA_H1YE83lt1-y=h963Rz5}54CII5y$g@vY5JM&NS+X3&7a1Lmj@cG@4|J+| zgZR~nXw^a*Ca8b(#84atRtO20+=pnCxDO4b8zYJ#rpsU2BY%l|a^MiRe;Q_Yk+(C$ zV<|;~CmkqJ^^eK!^6MNVUU|M9uJPn`xJ%#SKP-`AB@PF)tY#r4t%yt*n0>M5gon54 zfoTwT!?>nLL>B)Bdq=09f%X1sr7jWuYt3U7Dd4v>&c-P&keu*omwd^Hc_7?uWFzfZ z<=$c`-z~ia%6z}KkjH#~xMO#AU_kHd-H9F;VqkY9Xeb8~L@5xPFsH^R;rB7!zr7r6 zQQIP)j!v{(?{s(6FaX|5->04tDnUKcI?$7PV485EC1lwcsH9P9Z_lvznO`v_202yG zB}+5kd_CMrpqvmu@{K(Yy$w}(T=hK>o0z*kNtxbjSI3V-z9|5LUIWe>y9>uF0!Z`_ zbP&J*3=^S<-(GQZV%dptO0%}FpFWJlP!R0R{wA%MAVB#X_EzojvSvf6oBvARP34Y5 z@-p3(T{K5u+Nj@(yc;;=v}?b3icT`!-8Gl0{-rzMFWvUPO;il(6hbvy{{nk6?$>pp zQ>|59l~sAwrt(gIM3N9{*^Uxz67csJV?CGz=+`;Nb4Vi!iJ!YJy?z3}3hxL1g4#Tm zjZ&TNR6e%dqjd^4_3a)2!xMc74pOdRPN+ZhdW9+}zZD;J+H(j;;6-Gad^!By=Drf3fJBIs&g^*j z9dK6KVzy~(qdXIH1>X27`ofE{@3PRuGJA;Fk_ldf+q>5TVIE+Nc;K~`5_0U zEob)$d6Edl&7Npzy9K|J!irrTk^@c2{P1U$PSsbfnTL37>zXTp$r$phzA-9QHi(^s zSZSYQaJO~EB)$Yj%1=`&@!i%|+GOjQm5flwp!0l^U51pXH|5V$YZA{t^jdtl_9=9a zL^up(Hxn~pz>ZjIKtfD7%2U0^cY7^HBJ1-im76Hqy?l(o0mq}9=BV|K!)z9QK~hVe zYr1ZyV}C(9?`*i}#Cg$ytay;knZf=`v;mS>sAv&L>pKzk8zk-%Tl@C`u@ z#~FC-iA=dH!46JAgvCwy(aqgK*B%B*@5vFUnWcVK?pN4Fqss7`@hOON$T*mv##b4= zK@1F8MUV19Gzy_^s~kel_a=JJNVN@?e129y!q^(nrvGfH^w`z^?=XaFGo`Dr2`T+Z?*lX(Iax!cYbf9UJ%QL)6a`-hl0dS0}0#Dm2Rq7;oKm zR-mrt6nhvYANTn9KzWHcoS=cecTy<~OvZz`+Gm;&WYDlI3yPkr-#E-Xt-F!TnFzOFF7ha~s_<^EABOT(t$^(Ba)uO|-X2G$(rl3Wh7+Sgb7~d*-M5kQ1g4>z?8M55RaB? zboqKDsba-f5(`i^*H|;3VkE3z3P4;3JFZ}Tyv*9yxR?EEv5?052RBdd6u~Ii&niZ zv-C;fI4#_EXk*3pn|Hm_Y(&MdsCPk&oH4>eTrMRwZ~^vQN%C#>G`gO;I#xsHGo&|T z#q;jFZJpwy^A&RbA^dp$C)Re@TG!6={v)tjO9R~TWl4Du>2i23OU}Vvm&kM6p<>84uSxO&JC|Xqyp*EQ3lp{W2^nVq zUriDCZ<45Jcd@-)h-yGOW|5li-LSz998oNf7C@l_FV=V7je!{ zfD*@;hWOI|#Qx8fDnyklB=>pNrhY%iS&Cbno-FtA-cC7#N+Q?G^g|Iw5;A&awTc^A6tjX@ibh_6Cm-2g`1C1`0a8msOZCZGQI{2l^XJ*DW46f-OYIhzzf!`h8eIM? zbd1RRWn8?YhjUW-l09fIB=fQpxn)lP?|x-k1;i~pQHAylGsgZI=DLmb3@=bBl0t3Z zRI!(iON6H{A45&*FpMB@Z)+E|9JhPz4Qf??Jxw(yk|*V;wlvfhv)?UVR-AC_qv0dZ z(O&hA9>%jZ&;sSUp|9k#;B1x!L>0#og_3lz3%cWEqNBaC**=#D?g2(jF#Rbx>@8D1 zNJ%M{Z~b$7$-xv%t@zc!`Y&W%f1-28*aL#P9m}>Q(!n-q`OYJnAf=q#qsh-MW_-*r zF6*I1E!0XY!cjl(j&T z5Dc8J>K!)bz}0J)XWxDKer)hrBn8$P%i1gDz;Ncj>>c?^YhXj)%iwD3bG?d!T%0g? zjRcQRm3pV-h)z(J1)*!04o>85p1)%)BFmE+v=zf6x6^G@V3tv4q-VH7xC7N-lL356V#_4hJdYVMQY0lYm%PDr!d z0-z<4`3lHyD$>BLHKH9sB7(NHa*%np-o#I9PNYRCi!W#*83n`HR_br5y{Ps6=Ew8h z-&>46t8Fi>GLeC;6v0NQo$rp?vNAB9Es$ISZ$bc~c;qWQaXyn+K_ubEPG8}Ad`^f4 zmEQn<|IUF+Mo)eb{Kg%N0;}5;CYH$ETZ9n|y76<(?gAIF{5IFxz#jkCJN;2#v-0_D1?a%z{;rr}pF z6vlL!X|@Hh(UDN#vp4pH&jK|Tr~Q%xziB1XIQC+r0|vX`_@a~(2vdHRHJ38pmgbHaofTo;spRstd7ist1I7;WJG>DunPKWCPFB6du!eY!1z-9#0O{H@(R%TxFEsl91;sF*B2bn%5#X#c-I|hwb z{FZdh>HM`X(WVg<;~ZBN%wU9E)z2g(J-I^54Gr)q>qsm-@O{rl}pm(1t+bs#@?gy z>Q}%j`xTr@$nu-_{_{V9v>pORvCvBN-c~~LhMx6Is4WmRlefbZT1*59f~svG!c;AJQt4c7M?zIGid>k{kTVJrn{%B zW^wBoKLQxu1qRLW0dAmO4=nLLyu`=orRP0mmMHjX_FEt`%)74<)TK|GP6?z-9$kN- ze(&3_-hDCq4R+haFE;+A$a`qE=MKFp7f*!O{A>74q{7`j*@$0^n48Ls4N_2>FmZyG zxu7dF)d7*Fm@4o8qM{I96cv3FUen77O{AY4>G3s;11IxT-^X~F{u3W|;Ib$Rjm;$% zE!l6%(nt*WU}=CYjlSJqmhd+M;p5c&qg4@Lo$4NWl2G!p2wcq6)0a5{pHr)m;EqY< zIP4m`k?EJUDs%9Bz^c*86U?&;sE8>0O`~RByfhG+ju(3AMd8RHx1j482DjMafo%^qB z4w}HZD(@0l!aVoIOW2{Zy@yAAcQ-QwG3_jC`ZJnu(iM34@>A47=loy5Z`B?}45PW-2ij!GOK35YE+boj zppanji-)5vg&0h80pyAQBy4Y+1?o=P1O2hQwa*kBC0#!PDwQrXfx@-aemrXl2_>Kx zsZvKQhmvQ%WZnuB67+%l$`Y2t`B}C^F)fKYVSroOXGvq?bFa@zBzEh7n`qCHaXo9=K7Bpy2gPcHg^4c_1=dH<3vTU_4 zTK*l@wLAln;Gtx^ZtsACvk=QU4k14wk)2S|ZcWHcDm!7A8@5Xhif1q;`~)l*WiUdo z97LK+SeQeML}o$Sh4AAM$P5JFG}7BwL4E3)5LBGVJzW}?~IPso9T!DKjvy3e{#N?Gng%Dk8q1l z4#$H{N4&R05pf)M0rnVpPcdYbg}!ic6yvzSZmLG%WhZ!*gU+wf1@En-&!`VsYOm>FUM&0?=OalzQ#hoy)B6POEWi6dpG=(jj1f#SkS z%v|dYg_tDLt;Vaa!t>{k@mAOhVlMLrHhGFwkaPUFP=-a39zIO;^x@nPrBH)cbN{2- zTe&o@0DAGQQu3KP*S-QP3T&6`5QN8R5*c6Ur}(BJzzn5%qe|90QC|Q8K?X6Byakz; z#APXyOk6R>^KOS94Ih^%qLNWa?|f~BLjZz<;F(|)9Zz%1W4~=*{6(~o%C!!i=NuS|y8}|53a+jL<3Y$wDurMQ2@j(1RlmJIyPh~i9t5vmLuLX2SmqJ}JnD1h zIkpe$J9FI?>}!&2K~8|>B}_M?^SIOd7h=ul(1WAk{apJn_~#JI;i!DRjE0ttxmBu2eYdagKpjvW!3@$RDLf<6uy*R4Z(;jI^?{KDi4}#9I(2AtJt;?Nf+3N@?T9(! zC^^udem4jpXu>_gxEWck@;38UDRjMIclI0m8{<8{>HdD49nw#@O9B4ArR~t07@&$% zmlfM2KSDm8(X~pmT|RSW9KP6p(h`}URrqX6YiKAp{>u+!xQl1yFihFQj4(uP=MEvK zK6~$5cJQRPwjMCCq+)6$l2(vcXgUWz6uBEvOX$phQi$YqRqt+0E#M~`+MH}`vuyb; zw|R#pDj56_TIvvd3qMJoge05a3WT8nEh3Zv9sYA1r$Tl; zJZ=PVQA;@VVZ?3N(sL+QdQ)DJ{w?u%KjJ(@Mm+NzmWsx3y;-nCIP=K@vCb~|ugGi_ z1Q~)lf4jK?>)pW=cv1N-G;~;88x_qNL1$?f6-MzIdrpsH;&%ZFESQG#D(NTO60H3t z2XqUSNnn>p{$g}2$i-U)L!}6r4GlMH4z4tjBlzYC@769V6PF|P0xEDY`J^f%f=5d( z7>Ac430|fl063d+5$=En+Y?nX9Ue*Jq;E&~?~%WZT)u1hD{1~)8jI8VlQ&^}muiFB z7{3XA4N%~e?BqlRQm}zRQx1sZz5xa$pI67o%0J@qroZY&Bqdb;$L++Qroyvz+Ph!q zyREj*;ic$wmK?U!M`tl(s+;r_V+c*=#>n_jS>xru*Y=TI7tNRUpw&nC(gt-Jl$1WVqEaz7mIIP~;9TM=-Z5H7Mg9Kd0;KSeCG^9e1 zG~0gf?{!@^l>07UomT3Oh%qTuD~Q#>L2sX`KEl*vPV*tGB3LO!KUmBYHLwfWZZOLL zIuulq82xJ&1goh{-bD;J+o>6PdnxUrm$J-|fvs-lipbZF^k$1@aQOxjv;j5uaHgdL||f zHx9pLY?=-J+hLrl2$Q#oO$R#l}U@*g2;ZFwyz(w)auzvPdZ2bV(&0|Niqd{hf_^Bz2sjF>$;-tH%)$e zO*=-Ir!9K_<#tQ)?@nkfjOhjT?O0}E$(>RQVn@9Casb|K-rB1>>>#DeLdJUk^Q_%Y zq~)KjeFy~)xUQf3z&bG^JYan6%Dj4?+Wi2anGt)#E<}Caclk?b#g7x0YTv$D4E3T{ z2LvlG8%Gak=ubERzBZ;(lEx%{SuOzYwF}WL-naL^xV>)~blg4ES^3#o^bbF2Dn_Lm z8bZIbO{51fEn~8~+ddUID%TAh%{@+Eph79>5w3Q({j{BrpC5pWI2KZN1VbZg8WsU+ zwG>EC^k{QQApb4yp`H>{y3Wt*<2CnDZ&n@4T8<_NZ7Q(9$r@8EVX9CAD|nua1NS?*g{y$awrP`S7_ zM`P$z3>H7GLOQfzew`sm<~6y+PXjK}qhZ@TZ~l~!Se#}%elYyA#_4Ay=I4)6!YtrO zgyp^Xrfli#zY)4}77^ljiX}1`uC5mR{P?waCwfZJtO2 z&m$6oWJqDFu@Kf@ev+j<4Ifb-6W6|A_z*HABbgV=OCv6UGk0=C#s4$1e1U8No5HV26@f5T;(@3L_|h}VUEDPbK~O2#Hr7X zQ={`Aa(Tr!O@|~R6m}v0ia(N`CRSXVLk$7IDPHx?W{8%C5T2uQi0gr`HhKt+{=B)F z2jLXr{`Z!Cd_Db9Y*&O8Vw zK1}%_ocS;b2zOq)j+mypJHe!}3c_{#CU}oG5YYhwXJq0UaI_pabrWd z|75SbmnRd?D3Z(j#q)dX7a;IU0Vjf9uTHD0>mshja9azF9Ie9dK|wCAQ|3?vzOt(A zO2ArysSNNNEFVV8pVEz53}Nf*P|7^>v^U?$;MD$rohHkSyDT%(IBPEtdt(&t6sim7 zus69!s4mO$+!vV@f;5 zw|TZ+;mkNC$8Gr*>slF*BH(R7($GR&4+HJ~dh;W)(+}8pI$~^ex5KjWgak)BM!2 z-J_QQztP<@Tcz?@3E61m3Lw$J&*^ z)s+748H5ql{48mtFhiIj#UO2HFic6Z8#OY8sO;@E$;gyFV@tA4vSw>RT?`>9TehgE zD4~*~z5nyR?>*<9bMLMA{r;cN`?;UvxYb?GdEe)KzR&l0l)e2%5%~Jce=SZm{{wkf zmR<&H>O8EfKMjF<=|lK%VUMN9@SS~6J>CJ&6D0&Rzta#*iPDgaP})R8^QfXE*3`KK z8~cLfU;}z1@C30yp(SR)RTldWz5b~72HcH_a35*Z1XGK`S+tw-f8-Ikc}KWoRUGlB zvs2BYu$t3NP~hOm-}fK=<{!TnAcnpMH-vR@CvE)x?+`d@DO8I@+ORI)JmJ1iCc$dB z8`;~d`|F-2W?xQ~d^re>3-7blFslQ87hC|OZk$iyW_8?hS^dmRX83^UEbA8clt@rh z(4(>u2wbuEl3ht$?#)rE@*=1+BWH(EIr6#hcm;)Pg)HeRX=C?Dl? zIJwo}8m?ZVUq3%B`ta=L2Gx}P77*b$d^5^hrm*z7(|V!h)Hp-y11_5J#Sv&EnHG(% z^Y%I0^^$(H4t9>{aG%`8Xy+vRgd2jJTRAERl@sM>YfEy6g0_)HF|){~sPE41vj;qf zrT3JGpp4bo$M@?;TWlQR+ZBj)xLaw!E|cl^^;one51v6cZ2v_F02H&5 zzGc5B!A5-TpHe?lB6LA+&*}4A!p?N=FOX27h(C{|MNiOgwXwKWMYP`9k=p1?z0n{G z&cr(ca4waA!w=!_wt+0pE3< zen`olgfF}5sStY$thxBj7rSEkW&9L+XHPe4YvXCY9&A21eYiBQ4I_pZ-6XsZ%IlC< z*8~MoZdo|8evx;9A;2a~+T45W=izZ2Qg?e0b6GZOI4FunL<~SWZ#ozz6@pOWhaUjc z>0uh>Y04X&@TglJfy1<2ioh@27?_~v=>r5F;L&P_GiYPsUGZ5693}lQL~N94UKlZb z`Pg!ZOcb;yN)b2~_nlh)Kaq_D*-;2OO)tMM9}CxTMH6>Q-;DO@S%EoQ=N>~!FF2uJ&3#9It;X8IBy zn{jk0Cp(dI9*a+b{F}>OT&&sYC6p5=YfwG>Ol&onI9lFjQQ9m_5$gcfEDV3QC>NCY zBwGfa&QiuY=^f#gWAxT!-Yp4EIw%K;KL3381+Xdhn_i$58_*l!d z6ZYndv(42%>c@;amm6jyk2U}+P`qZ`8OT*0cC+^;_)1Yzfea@#e-7GBipq@&x{Sg^ z^=cq5MIj!AbjUH_8cx_gJv@>I20ZLYA&eydqWqgwV8Nkq4*&BgTug#bIlat*assQm z>?{1RvZiQLP0`6$;qQN4Dsp7vvb2$=#PQ(Vj0eLrTTivhO7nP=*80mcnrDEx>%(|( zG2<YT?>=Asi0&&X~}|0B+D3aL+=Y~cGdSzdAbhW zG17t_w_9W3^33&#eG&9y879yv!)6&xgYj`wAz>lXut0s{%xU%yvv3gC^AxION35ev zZbV!R)R(Nxmh{Db_7Ls|6ivCM8``^xGc_tA8>pRkgBxkZVYlIrYSBh0>@MXu8ser? z<)=x3I|v?#T}g5Du-ngJ{+%y$J#%2iU7|f%*vIt5fe-(NK51ip)JW$<-U@n%sz=F_ z4|g~E#G<1F;%AfLNyka^Rfb#vQ{fHE!EoYhfP_LCcZ{{$_jul939)lo=w(>7oHIE& zZglBa()6mr*@`gl6Lxy7B;s!0k0jy~AD`dp+m#`$=j}!bi@7&B9OQR@M6OH>^lsvKdB7sGs;;A-6Q*H zN%%2e;~7=U9Low)UOm(%+ibB|r2tZJ_>4x!V2Z@RTzPArh3E6P=!e)1Fpe4LZQQEC zSsG6~EX21&elX^ViWc`=N7?FjxQWJyt3cp;KJIKT_ONP#3!nck=U#5op1e8B{MsPZ zOlx+_c_%hEzvg2saM3Y%JN6&yx7`QuRnl{;&$!JMfA@R` zQW;$&hvA_H@dH{?~Ea86pas8ES_+9{Efwv)9S8QOwVh4cw_N&ajS(tndaR7=rKUw z{oO7168$d@&&k<&FlGL&t%V4u0|o07Hwm}#JIisK9}`}DoC7>h;YA_std`@&VP`w> zfW#V#sLC-gcj~>e%Cw`&&~YA%wgWZf{A-)E3IaN7%yR7GhlwLjBVlsi<-fGj)Mt%` zsjhvDI{FU5X8t(;J&#cuEeydFg??GfCY2N%VxIZINNA_NIOq+2yBVP?%-IyJ?JUBF zSX@xxZbU)26bMBGVIG7S9;JZcna7|0fY&sDe|kgOxYC;YlmR4Aa*8}WsfkdMjjDHR0mB6u9OU7zRC?e!3Ew7WLT1Ip?*+>rmxD`D*8cC zu@$H=@{VU3lBz3v$JF4KGxg-eCn5?ZV#4qwU0;<8x2MdUQDxE-PAJB3922+m{?K#R zv|omv*ved9aZ#edM%{O`JJWMRyTFv+j6!9~Z}!LwzS+U7(e4;HW(UIKn06N?5G{Db zv;o~;&WIgb{sZiB$n}8a4K(Wh6YBCyFRVo|KZFq%ms2i>5FnHs*LrwHe`+6Y{d2~` ze@rlOE!vLK5%#W^2^}7!M)a#PA-EWZ%k<&!;=hb?(7(AmQ7`pl?TBM{GI$9L4lpW! z55Qg!{>tcZP}hTDcz_ivyHD)+^Tiu9vvmx-6C47i(0WhJryiPoym+PUJul*3mX*Hs zX2#!ot^(-^>`sE>oOA$GiSr3PBw=oCVxJnLit;5&#%Cu#rxkq2 zrfSh%Oax2=jBiC8^^}+j(<&qr!11YzgcZ$$@H=;f`-^2f`Z+5qYX2(k4E8HjNx@{7q-rcP`jl|kvGQEw* zsSfXir~k9Nd!(bHC9g z3dQ0|+QgalA%S;bZ74khU@Dd>GN(dfHhZtIMLV?0r+`F9<~rM{R74(nXJz~1+(B65 z6A}$oRDJ^kArI+Sma=(&LBR5?qig)jhs54@H^eARb@E9<9648*RR{k%nxuJPa`9f3 zSMU4Hnm6&sy+(n`H=io*@DB^uZuj!eR%PGnHF_K`YTb#F_1`a#EYbo z$Pr~iJ?SK`2iEehf)Q>ogrV&n>yE(#h`4C?jN1oW ze3i()!Pf09*Sg;CoOw7$2EgTzwxgmd1siT2uG42*zv_a1Cw#GPlb!@6q{;>P| z43B7F@W@qzVQ@0fV*cKC2ZLgz$ox%NAZ5|!uWXT(*XKFzAYgF8R`nAP=f6w1t-IDH zqhGxHAWGmB=sVlKn|Gl5?$BIx;Stx$@JDY*wmfWeufsN%=p%pwVI$L{W$$y~=#qSD zn;k2aMvf;zKf&vR$9XK1&yMHOx$sM(&NzduV$9Zfdd(fNto|$}s#_^ey4$Xp=^ys7 z*Qk(me@BrxF;dEztciYZ<}UXe760lGUskk|9zC}?<6x2jbNW8iXS-ngFSvUexT(nL zipax;)ppSf)!c@;sn7pr^W!kvj&H|xjT^8U1o+90WPJb^KC;Wn)~+{A&ky);g=F+1 z@$#e3rjmN?SK%$dci}eX5D$01;#Y%aCjtPW8=`qt{sfIT~g71sD7NSCN z%4Ksm2W)Qv56h3a9><<*HOhxWPmu2z){($hL4C%HEV}j5k5G>TcH`wBs!9D6 zdt$NY4DH2&lNx|fmT`WT@ujS`UukV^H*=x1f(Ggnm`nfA@Aea~Oa9qJF!)w9=B7AI z-g*UA{4YOjDty1IxMd3nBbC=Xu+>svHmFLP)+*Q+K@dGG2@j#q9xyygGY~mAG}*?6 zGq>QENP*=)6U-8>aZe&TLSb)$shv$yc%&O_sppBD^9gT(!hVo+lkQF72fo(gmhTZ0 zhetdCom^xH6yMBQMR*3s>qCiuGYcbm<99iq= z-ecMFEJBinxZ@-nZ!NY7$3vTN44h#H?3g_P$B3ZMYL|~|>{Sh;8F99~mxhB$tt+AY7@}x`0#}03;S~&1U@VqlmqwCIQ$bfM7re@wp%10a zsyGejMua>wjsM5nrFjE#hy=yfmr?js1kR~ZR`d{4_=>iQI4c zBy39D;A0J99p=CXj*mi&Bh!NipYAZH7oWO01_u50xpOKq=Y*WdtqC$ZmU?(#-(^md z3T_^{v%~gyKM=*^sXu6mS1)OO~mxVEMUlSFguItxh4B<@w;`e_cXX5tXDS zI;+p$AA&JKe>WH6LU;tEIYQnfP|&xP)mfO)B`8Y}oRIO0_llBL*b!=CmkH~tLfdx` zsxgrw<}zWel=}a&?w7F(t&#urPg_Y<+mk9~bCuu*G3u7vu=+G34O7T_$3zEutV#V% z;}{*(9Fz!1#BAMu)T-0DX8KpXi>L>g*}%I<Z z@+h36-i1&BxQ{z6kHW1FO_@26qHuk1R9^+HIRDHG0l7(CqdTlfu*rBgMtpd@Vg+(@ zQri~))3&Heb#e1SKVN-ovn~T*dh`%>yT~DOs8sk8Q;d`;7Xx)n1UcwZZbte$!6Dp_ zg)D&Aws-0EbTA~h)WK5fcS-EzA!0M8BGcTIw?6jGDXH>5;PB!guTi8?3YEq+`j^b~ zFVhw-Xf#NXMz#k8ojA#pxE|YTs z0=ks|GFWI#s&$P9*)}A6$m#GQv(%=S`h@0H{@n+3A<}h7UJNdJA$&=3nzSt)Lg<$@ zD+_Bjy;gmJU85h7tts`37W_@RTae-**1{XG{iNu|1j-) zvhzn6%%xvv61D^JY2aefO0@O_c!KiuB^chLO4Uhw_aQ;69efZOFD|&Kld|%=ymo~Y?3#i~~!PTG0ibOi+ZqIy+dVzu6 zn7AKo4Hi*{#{i|@52j8d2;aDEf;y?&!0al-r zsB0r!M7UZiBEMp_0VyT^*;pKxlr6-_DEnRv{J}G=-B>a;khob|;UV`L5m2I_G>+VY zaM>q>Yf1N%Dpk@d4Ak0)`69pVU6v?NtC>k5`f>Jog!4K!odrP*CIGc*C-Aky@O032m-1 za1`?(%7%w$mr?w{y2uZJB>ot47?Q5QvJ`Z5n>e#QI1_i!;Uhj1gmc*awFJg*mtS=O zv?gO>gx;v26(MS9(#iM%J=5;xnOcsa3bUM zRR=j$gBbN3d;iZd^n&UR%ogXmv%yOx_1G;&oKGymc1b_OWcW0lvn2x zPYfe1^)e@WURwqo4u8IGi@sN(VP!(eu*5?N=HJ21kZ$aeJHzYU-Zp^D7Z9kize~&l zgV7Hh*8WZ?ac*B=Q{f-rH)Pr$Zwx-Hh{Q%5cN`mx10dE7WUwg-&D$GV57d3|ee(0l zXCHl5wjOBpITk$vc{n{pya=vj+)~Lks$sR4p4X|o>S)QfIfg_B@Yd<=jMNP5exQbW z;ClaP=8@^=r<_K~q<3xBp+q*Kmd5pPb4S|*-|W&05J2iwC{~Dbv^e_j&>Szf)Z)&> zHHHiFYL&yaSeNrK&1!g=pJ}y`ot=n)HnnF-Y$j9-hA3U|*N?ktFfqD_VG<#yGVV z+Q16R;4dR!eCvPwb5dav=t9)PT10@^yj8G51@fe&dsW&nq5s@ua?Fzwb_-xr=5?BPf;0YMI&wcPTa$MD^91W{b zP*TM`2h$ar@xWFfG@${QPERjc80PGyf`mZ3>IshQl3-Uwt;P#*PUNacB3*Fx!RVc; zEN`~5u%%J@u%*zLTz9`&5$Qz1c@t|ar@j}LthuvqlIAAG44XT`Jhb4Ie>G}U#X$~oO;lOir@Jlb&WAqlXL1g1J zq=t&b$Vb z(Sh@=@JlM}dkoy^+ev#GYcnOGy_Zqi5ukOD=XnF3H+VV;I!`oH(VkgNIcO4y_U+-eq?7vsNyS6ocgL%9XMMbSzIdH`_BX{6 z6Nf;Bb3bPLD0?bS)7igsz&TUW^dE-x!XIn<&r$Vk49B`H^XjRk%exy{Q?PtsVDZmz zOp4cI_sOaI@-RH60sV^jGzohojw9th9b}g;J`&;8jAMK%eq8^q@Z!F3!>Dgaq3caI zAq1BhR&jkg*swDj1G;zT4y6;!DDP->mz&)u+7E=l4GOc3uhP)b$`Qq30jW7M%k<%67VMa&+e zIhs@iB;)u@Rk@$4n43;{-fW+FJ>P9 zBDQn=htAbQpLzc%{j*Cwua{$Z|K^=I-a8R~>?5WRPW~_HK7sV=VX*oWi_jxAs+sRE z<&~>|D!@QU=>50froOcjj{Dp{@4pSez}$sdiW#Ht1GY8mURMg6B{*7%wJA z$Wl(#VnGi8E@s+ss4kwHE|AHq;o-+kSeV@o-1N%Hv@M5rg%_z1c1L0ND(?L?Ez@#w zonJy~g`d>I+Bk)dSo_gK79hq0xk7Y!pY7=Vti7(%@v1%iUvvxFkHWx=A0Iabs+~{L z&-1`tTvi~}2K$Lv3ddTel8$dOX8@M^@{)u&_e0N@HM9 zw84sC!l)aukIm5qrdy2un+Ql^gDUdR=V55FF||T-QgH-Ae8|Ab{97;;CmkYHghB;X zXWj>d9smgly~`pQm{R^!In{n2Bsl0J_vD|*2UlT!Z=Io5&tXTM7 zP};Y;&UHRIXT1dQa2VjBcmOa;N0O&`k|zU_zA*k`b|Io{A&Bh6;xf5flM<>u@5SI` zErT(Ht{t&0+hQBoZSrWd4V)#@98khP<-zy)80o6{=@5Z*xrN*ZD9pQdGyR0VGrnm3 zC|J?(?2$oFeu1E_+J3|i zi-dS#0IkYI*8DAp=kq_v4)7=hraWdvtp~%hKp$R?80sbZvT_^!1nd*T(Vms&!!_f)czK|mf*h%&rJW4&- z33-seTslhOfmkjWcnlzS;TMePZDccuDPBG&NZ2zyQt7G!-z#`nU#`u^6j4&|Ss~rq(-nrUDr|+xpPHUOLH~=D)sq}Q90_@= zAUR(~s(5dIYKNqO7)Z{k&7qLThJZ=XRxlv26VmRoYv<|KI+-^x%+fq`xY5;ai77YC zzMS;0>MKri&gZ(zK*U*QzsR{AlGg=(9Y_THx*_=WO#XG%_Ucn#b!GU9&VRfa3fzv- zEZ0)y>UPz212n(+t^c6xS_ku52eY)LSi@%7+nYrnb|v!A=!gpYUi7*|v8Q-YSB~8K zG{*>L+(~OhI_HZ6Uc{T)KbvL0TircM-yO5ibx><*Zu52IhU}!XoBLr5*Ah2#iVOkv zm`5yZV%=z_LJ3zffvkdQjcD`j6!_GTWmlNS&M&*}JxH_^+c0`#yDZp4D?P5;LiXQy z#1{bvmxlRu?w+v`Y!Y;q27+HlXgGRZN2Uo?BMAOHX%WE~l%;II$cs99#YqC<@XTYbus@_q&`)uMWuT0B&k$B-BDAp#x}%dm zBoAJe&XX|6^YJ1@juEnuf zLsf>{{j(T5uRT_;sV2b{f>`pry* z<)dH>qPA+}F)LuI1W8g~4tg}sJHh_*dOu~FvUl^}zvAdB_;qCA(8l1K;MY;xe_p9lM29>IBl?n+g;l$R zxG)_1iZONTy>wk{!vgdLtSj2aGV@xBE`?ozpHlx3;)+{rD3SJB+<{WbCn1LjVmX+U{9u5$|pus5F+bdZh!~?hNVw;=m6heMsVRO-cG-rWMUBBknF3@MXan zJi?bnXvzZTl`Lw|f`d%KU?=_3jo1@>S#@b-LZWz}EF~SYeG>WMa5g(9A)J=0RM#E? z{RP3Ef)1t$W}Tt-PFx6xVP_wtLKfdnsp^&pJ`<0;=m4D|Y{)Hb#ldmK!DvW`(;BD? zUv~km&O>ns5jd)yKPP736;7{?lZqj$i6m0CQassYQ!N@;P^Q$i=tPI61a4jdXD&mW zjAp@pS3VJ*D{$^ang?tCshWiq8nRs*+lvWzWWs$Mx4w`a8OpYfeR7_x5gDqBd=ei8 zV`qjHz4E?Ta@CUp`t~`Djk%BL|ghU#PA}hR_%N z2VMMik$F|}g{mvQaF5-UZ z>rB;lOSEpuAUSLt&@|eU*tg*H>^{WZp;09awYEY1&a_9gJBhw=;fAzS%L=xl$8X)- zzlDH^4EG)`wY}yPO1tHoq^~(3trV|^=B?4%_ut`l%ydW?|KIUCHW8C-+e4*Z5M&HJ zOh!;B8)%IZ4*on2j$^De&sh2KiG{HwXz1|N_7t+u6VvKwApHzI42&QH&Y4j$jIf+Q z>kUWzf9A$;X$2ya)ggwXpt-#sP9Yzrnf({rVB%E@84dI>A@7b?=&qgEtYz=>v{;Ev zC@oo%7#rf)7UgLcY-F~w(vJ?WoC@=Qr2`UyVShpvP@x{|fL235_C_s2#B95;Dgw@K zY^n3Tm;L))DyiAT(WI3X{_&>SdZyV#S4c+I0XhzylgLIQ{Vy-c0iTE~Q?+a(I$WX- ztpfzIa6#{8liKCii^lBu4cwf6#WT_m#44DiaERWZNBns2dHucTJya9PFv2kz<(~JJ zdOib-2a9B>R#v8e5^wu?)DFcb8rf(^J@y$w)Q+a{4^dQ~yjmrzuWG_1O^>Ml?+7s>xk4MS;EM23_6ms$;wso*~gbL_*kGK@2qM0ijd5DCHi{Fx73q$)eq@_CUS!TrqQL) zWpi1PUlb-yT7eoA!{AEh#V`oFgR{xz#~~rhy)UhY1cfQ2U#q-$t&$LpwNF2t8 zs6>8Lb&td-zP+Jp0%;v3&6{mluc(lakadsp;Ep{R|6~VvWcqAgu3fL1ht|=QCMa4>% z<+rmifY5L;5qg(W@j~#1V;;ZZphBZDAZej zmUy*zf@W7`9i*Q`u(O~-1UmdqE7jS1w^0yag+~FiybWE)7}ByS^#j0hHjOOF9zj&= zkpKU`p!H#C`okY#G2lX~h%AO1N1$buDr0_zN`{IoN4C9y(M%N;Yz%O>`Rqpd-_$TY zTDo`_xNsyU(Z2A5iC`#YDV4}DH4Gl>Zw$QfZ)Ho%d;hB%<|I+WK);V79ILva@J4HI z-#)KXG9VCRv=Dv7G4vN+YbE!!e7UX|IgM*nfYiJR?PNm9I;Vt(dk<)Kv~)udju7Gc z*PyfK)Dz-I$q+I?_w!Zwkykg=(3MKo8*e5B?@OqD>ApgtnG`mT8=|I$zB_lN)$BED zmp7!5@kjr`-F{s-JpNI@;*@Rf(b=&XQ}0o=N^&A zCpmj-?7IiX`S_hL>$MAOE~4lu9UoBryr^^(ez^G2E0R4T4i7*NT}Q-MkqsJ@#_x_e znLhg{z>2PY$;Z0!j2H^s4;(fC-J$Bm9%&s6r7-2=$;fOrm_Yhs-^|6XXbEf2wR7;? zTkX~;0rw{EJ@nsm^uoTjG1rC;>le@Ca^|{5;W{JM8C-ApG~{;1ZFluF>d~?{N;VrZioBIEvRn_PG5dGL(;-1lSXfV#em5aHrUAG zUNB^|vh6rgmB|_@c&QA(52Kh~5?}y+N%G|s6m!aR)+?wMsaSkj~+=y0_9lKhas7{n&<8GuZF1UHbbMcYF4c(2;r)}=s|LtJ{TgS z9lt*@WF>I16rA=6G?vV^LO;jvijyFq&A zt6Bx+ZLlopo2gZc#iS4jPL(tO_zu}@<|?Dv5f zZu`9Xpy@PjoQ1CNDde0d-S1L$@0v>2=m`V#^*%;e_Fr+{dL1+{5VL?OQ|{K#Baskc z(kF1v4h}seL;v{DLnCv0_N=`{C3bdXxD5z6Sw0{8IGOzjU!a4ri%h^V@Tk5%+Ka=U zG(S3ZOD!{TphKWc+Z zs~=JadzozJC1l`L-Sd#OiUCfQ@(|3}MP~29LvwZ@hs%M^h0q-690NN9p!1Ji-h1It&|uljMFp|X`O|;~2P)0Bd|kJSaOqgA zHgL12Pz)y6x;A$DFg0F7<~f#N$OLLyFS$DU8u@F;x45h~YW4V#w&9($c$+A09l(UY z_4Kk?%e5~&_sqJl<@s)m3+%BtHA{l&xsngBFF%PUZKAOye3Blw(RaB*&dQ#!;^}a& z;x)?=DV(;l(En?#E;^J>Z6lay`T3W2h1qNyl>2=N9RF*xaZ?=d`nR$L#kmdh=VGM` zmUo`b_WbtF%6_h~?p$Kw>vBBaC-5)|4Y}PnEb|Efw8}%9WW;%&f97Z4k>K!7%!qUC%T&?A^W^+lNvoU+ z-4N1cfdUmi)x@lWCc6*#HaoOQ*7FJ>eHTu7ka5!nye!uWt2_1n5acY?r*GJ(ukWjZ zlywXu5#+66#V#+axt$S-neb(v9l38F<6Oz_uHaR9^UF z@;SrmnS|;j))71>PKx5btlkCORaA;X>PF*bgo( zk0;vnkV5o4@GNYDuYsCC(Sy)4#UXuDEj|YqsX^nkH<#fZuBtB(;QVCy+HZmP=M< z9hHnHe&xefY`VHGqjt%cZ0Xc9HKJW$hh_Z$rIl0UxdCNgtJ^+%-q2VTC z#YRQ(&WZgtvwnZ&)mh!IoP!3Ehc?$?PWX=$HK50m<@fL_E$37LI()hL`lY_8pV^{` zaRbz2j!oKnaNA#o=7kGS(ITH_`|GtAeG#+${qpVUTas`27|$w!69c-s6l%(thII4; z;Iv@g=djAv-1=k9>yPHX8u@gDFPhh>6N!j(5qBj4lhY}rg%V8u*E5Uodo=QW*63;P z`!0p}MX>w8>y@tuz_ytD3=j&&TZ^qovt)d)7+HxwbjZ`i8W;A>;xxOR5k(9zRb~-B z$$p@zw7E@7fXTTua^@3#iX@K~)pvYW3h%Re&xm6&@O}ddXLwslaJGXqWLt*9S@2)( z8sin++dW=)>p>xLib2MDvl4`~D$7{sryUNN?+)#hkcH-fM>@rmQr5Fzaf;63$VaA3 zR4e=>X+ji@nV_l!v|b52^x>yW$y_u;AKv>OGHD3+D5~nuDb&U*QJ~6PB)1d zr6XBa>5iK;Xd!1RiyQyd7TDk&TvND&de==Z2#fF31P&qjM##j)$HH8b4pW zwk({XaX~a?Cqz@aU%Zu)hl;Yd1lZ#{bgbI!u>D`4_%A&w*Ia#7T}CvTS4U@Ibv`4+ zngZBK4pUpX{M0?CInFRhZ=Tepi-fySzn>! z4G8meM)CQW2Ae{a^oruyi|0y;uKAW2Izi9=@gnlT7Wz%})8Dy|iciV7P4B?*%84VZ_Qp$ykut z4@1vTvt6Lnw-zbzb*a<54%bfV(Efqu>A8?-6QEXM`KDoNRcTO{{{hk!hvuoVF*301#Wi}5qTfIb}?`mor4s*^m%>|9OVyTPLuW0v8(>DH1fmJlZ73h z5t>)Bt^tQ;Eor+ds2w?up5uz~+R*D!H(1-D=;W7~i@Lc!WKd7Rcf0G{PSnpIl*-8m zi>K@5lvGug!l`|VDy5bbhXhlZ_}UO`;B)mfRY8n?$g99Jk3RRU#Uai@1#o75}($n z)wtBOcDc6gSwXBU7(^LGja@6Bjqis`=NPF1c+ zdFx$0%h~w;-H&Zm)T#!HKh+H@SO5z?5$w_s#lW zmo9ils-s>HBoFO+(|hT&S#k20Og?7oY#Ll!rIlHw1?_wpWmRt29s<1XGd^-+xFs>y z_F(=j!u`(XO5(Oi#hcA<9xD4JdvmH`VHJwU-0q2f)FVPW*y(Q9Dc+K$yX6w7o2`ZE zTZG_;mtzz1i`wYXMZ$ihsvl`EuC@sX*Nb z77obJsbKS7x!NwKP=Fnlj^lX7{t>Um8RXr84;OH`qzFKm-x;ZQNGYFI^JAh9LL^P1 zjUFn50LB!!HUVl0{L=GV;PzuILV4p}w>Hvr?=mixWYQU-4d5-@+o$*B4ZEvp9_S`9=Zo(dc zzhLN{j(Ah?y*Z&K_F!m5K1l=F-SUOXS$sC=!UtmeBvzbK#dtPnth3$F752nonWbaU z6$-mHlrY(E6NkErh1wv~<5OBOz1#8q+Ymn_7dE6cZ%7z3gyZA;joGNt55+*sL2?bO zM3>g+Z~JQQRqtnB#P^msd)ykE$u>m%_wv9U-^;bJ?^bQpg>4C1-p=Q3m=?WrVBf_r zg%=NY6jOMAPf=xoTr)~0ZQI-EdJNJp2pV=E@;HOrCfysukqOm~9j2~Z!N%Oiwt@Y9!>0#k`#>dF)`t03#+f??B57G+ zo#$K7I2dwf=A!gtSBOtL4Osy;q9k&o8d~X0BVRx~vNi@e@sRxD6L2qZtQuv9dy@KF z3m9?3MR2kB0bY;9;0yc=O*X@n@7v7H|KCaslh%eGccb(bO{L?pSyB*A@%R%DCMcJ~ z;}oS!pJ3tKU47r$qIX$pJ8s*p>O|>LVNalp$D~s%yv-lHghqVmh!A^q2+YaQb=H0! zx~u`w>Ase-z$nT+^Hz-nflK>9L(us9`0BO#t6`7Ru6S-$sPhW70(7|}Nmxg$H)}YA zgr!|W1z=t?9qI!gJC_wm6l)P8)TjyB%QSdye$XwL?#I+-Z zqmP-5hd7x^nNM{_MqCje1<&PboxbZ%j66%}ZjDqmWWN9bHMG393(G_wB^4?5A_Rr1=TuwHY8BjRQo$((D{QF>erH1nCVE2Y@j~Oh`$OVJsA2D6MIGbEj$}c zmf*+bX8WtXjlZi3+o_dVW|Y;!=zdRwK}x{59DHVIDE6^gz!^r~=>!Zp%i;A;rNbG# zVpTm98h(v#74%{V(8Gk@J+DsFBOvNoL_g(1YZ9ZRSGW9r({C6Gp#iTCR6HCjXM853$T#XBC!iuR zYtx{MGu6zE)l7HZ^ld(GRXbu$t563K@&p2wTr4wJKVUTkh!VqNK(Ck&lo6*g9mkdY zE<(_k>vPlD`C!-L6 z;sl{Jei+h->IwNwHOV&>fc}-m zP?#ADx}~W$1+m%EE>gimtw4WErE4#WP!Xo30K-`vksOSXriu?e zK~h6=j#!6gQ*lkUMKZk05!8(EM25tlw?jx=hQ^b57A||qAw3JMiM+Ud-{ZrjYu#4E z!RFod$aYG3nN4nD7O2eeeUr_XPg~DavzM#w{~(#!Z)f;gMm`?a@03uI0%*>y^up79 zVyzEY6$j8F?)3~J|5JWL?3bqp4T<7TVZpP!~!@ z?SPAa#6R;M`V4(7hxCaN1*W6Wg>no5Uy6i;U=*z7@*+Cj{OENO%sBMY#kbKC2kUNz zzJ(MGPOqgsrYoy$6pS3HUIle{yHJDrx?hQ$!wW;v?xmxlwjF8*z*e9UC z2hCX_1mF|~vCrFq3VPv_i`u};50S6xJuw^dcG^;M96g?B_T)M}`OV16YM7-1Fv*be zON4@`?^P+jZRhT*wkUafZKtP0k(w>g>4*V1({61+PC(pO@2u?NCF)o;Pe?|D4*DhJ zm0%@S;Vz%o+(rp|I@b3~zmvVq<|njWrQ40D5@EJb87{)$OfWubJVES{Pf?%&D_z^{)K$xS2*GYtA0>vp zLRdS)cSQ4L_NWn*Y5A6Ec~dVKIFWqH0DD{q18Dk#zExT&>s_2vNPu>uuLSoACk_|x z5DvuldeM^j0nQrJEjf4?iQ^XPPvvks{|1gqdd~2<7&s`4)S``irK!YsT6bo8C^?xF zyUn?)5f>>gCIKu%I>fi-3UGi`Pjx#V zFhLR#M`4~PN-j3H)8Ex#S3ikc`f>ZdlJ03G6H*|0!6mf{7fCGT!+Dj8O#dT7Zs{oL z*FmMCnexyg1zHA<1rbxOL7bhoQb3RG4FJqz=SnkM@XK(A^=Od=t%+Hml|He%DqV5M z@YEMwbBRoVsH(X*yRA9?=q&V}_TKw9&*qEN4dqoT$`>6ua7O2IUFWsMX=l`LX{)<0 zK;_qn@Q>~ujbm|WINy9E8cqM2MPHy{#x)*+MCi8RzHUUfq0|6UKp8marxcTXcJITX z)%3Rno#KgR#gno}X@{(ze~qXMfCI;y++aN`GJ2dNttz)dVvgYXuuTTF&$7_lshg9~ z>P?JuumgX=3K(+KhIlZ`Rg#3?%an)-6_L>^gY;IewqF_4bF;4{MR_Qv%K`DS@JFwQ zqU0$RwH*xVZVkbz?!L9f)Xwi>z{zUcE^nzQ^mDNI8;d7PJ64S*X-4JEn|=8E8Sw%yit-)0IUy4Mzrx}v%K=;~{A|4?KUZH^kN!khXX!L# znIpsEY=i$xAr=t|#L)#yusDD?s<1d<5S)MHvA7V9qhC>o#nH7`mbMagl2_p>`=00_ zo!4vpTlZ{5u@KLVOLt7~_8klYsZT~>SVj;+gTNP(i-+t~3%NU~NqQWg>pk**@DeLD zUL4ntf!*r-=Q1`}$>BUib-yjxAGcHOP`@LPV?y)|b4|D!F#d#7i<7v|Mh26a3-#l0 zXnOGdrSvwf0Y+da!`T+$t%&VLi3ucCsT}TiWYWwjQIg+=?{srsZ@nks`KFT<5MmP0 z(tr?CxkP2a^M7X_+IRWSW2wb-D&fbBM*i4qb*7n~W+g z=s67udzXI479Wp*8kfpa#H7q%s~F<~Pq@4e`_rSP)iqd_qp||`LpLH4=k($(h!xUM z)QiiW;AYZI!!?9CF&*E(Q4GYH@=qS!W*j#HF)}({60v0E$FPhrv=(K)ZcbB5#3o%`yco2@&o(SN9J?P{}4C(G$w0t|wxvCwUf=u)`ZHbSot7zH0- z_1*WiwTY5$S*H23pRbnii-7oL3)SMV1>|%opu|~ADG2r&{XbOKY38q6)9EzAId-)1 zSR&@br5j0O^gi%GTBdWa0*?3G1^aiR@Q(Nnoma1$P_ZfoWrbL;^GJML9E3tFjM0}9 zeQ3##VbXRvDn}7war&tWLD9~eHr22QfN6r!qjGOs2ms}=xY%_?fW>W^i?BE(KCscd zZLjA`ES{H-wY2I8P8pq!B|Hz^z^&28Y<$SV2$i+v-$4nLcsaX8m zBm)!DXnCr(hfCo&hekm#PbYIMGy?~ez|ezt0&{(*@^dKAF|gZb9>2nWGUH#l$71%g zeybPZJ)C+hu2#z^aSmED-HF29K*!O#%;pj-RLk~mHHpKtO^W*B7pvqwTsfkT^;g5w zRXs*spBg5*?{OKBe6D-*4pv+-MtuFvgG!3lXmDCVu7XNm(LBeZd2@dZ+lTyB%7#!8 zN)ubu@{HzY{SZbKes+W_2p7|C=9(94KARV>(6LY}9@RE6we1BJ)y4UPkIxW;Yvcb=(4mB6HfK3ZXh{ab-9LuOmRNy`<&Y=k-pMvAk^i>dEJUknLK-w;%t zdMtG)S!=iJrOdwtYFxe{iOJ%YlX7n!5?iA4by&2S zAexh8Wv5IU;inFNZDO(AyL)qk@=*p-NJ5Rwacy%#GXA6IzDO}IzWIS`$R&$VNzlgM zQwI-AL$@kK$xUN%y{@Fa`#Z<7I_uosx*KN=myiZ6%kFUlK8qKBYLV5iHKhMAA%<87 zn?vZ}wh;GIkWS*)Ny@+qSp0CGBM(&bQ{R4j|H0yHo9ljYgzQGkB|vDSn=+#N;l<## zh@ILrRZ=`DtJrpT`#p)h3O4QdZ39V)laod;L5rAE4oW)x^^V`jS~H;(?6@!W6#4J4 zIDq)aKu;2p3xhBXyZjS54;5r73dIUWkUv-q9<{1XN@3MSxE8$%Zy}A9?T1ZU5Vjg} z;&>&Nh>X6V9J6tOVeMhG>A7IZDIV0dF>wm?(}TLBiLuNE4o-6pfwtqCVpkt$SB zQp9;)eWLULKP5bm-vD{a>yD(R4224fPU5L?PFEz~N*nBae=DKJ(F;?s-?%{ESh9cE z^;le`=+A7xu^dt>MQXg4_RwE`G~B)jh~ZGlK12neXO$i)_UB&v-IZ?55(WQj($K3yE~lDrV5k--Uge4UlrS z3sJ!i+cYVw#n;t4JH2)4eM`{$Etnzst~I^}C%$o@z=D+lYiu1hq5C52mDH+WEdjhuC!PIlFoxQV8+p_Q{i;1pY(3J^9{^T+{D@NovOZz(U zgan(+5k6f9JncF#K_}p(fEAgmTk`L2Oh?i>2(4;$3 z-sn((%aKj3i?rs72XGi{ek5&st?MzaEDz{?U&IQ^ig|j;H}pe6DjYL&$lclB&Dqt> z2rI?xO=sp^RaB^eBL|(&6ePe1eJkkM2uE0mJb+4PlUq>@FMr^NlKdSC@8Xtly{AHz1v0RW1>k$+?mO~yy zJ_}c(@~2I@_=u)zW&l3bs+9Vwi1j}@XT8(f396anHTs6#?F-?aal!u3yS+Xno2yOqQ|O%58x+cE-?Jqd*G&Rcd)g-;j&}P6I;=bInRqtml>$QA%p(5NqGga zgdr_x??#2nTOUXsM8*DN0|7M{<Hg@@0zLlal;9#~O>A~Lfhb(`fw5jEq2eSp{SZ*&SeF}~ z`*(-t{Nt+ja<#kPYP-D2Z#Vf`k!E~UJ_+q|!{rdJjXtrFwl0>D89S_E48w@>jhBr> zJMdj)Kc}~dLnHx-WdjdCLH|w;?uac-|@CPz~2Gb4Nw++ntIL-KSa3XYuSvGg5 z>2j^7S%@0FYx*q9#fi)|$Bm#XA8!IPC(^63n9AfRG^eM*m&@M7n5~7?ljgdwFInE) zvsR;2_n3?`_<81U;xq_+g%74({o(ruVoQJ8kYHWfQA(+RJia& zNNb^399!yzjz_-{80sCaWUR4p?M^sC`Iankaa!<%M?o7xoKS{F97tW8*0o#Pk@T{v zt>ki{vBOA4Kmb)N)HSk_Fn6OLjXXBp@?yZ5S$4}Z?UtD7+OB~*1HKV3;~^>^{u|e$ z@#4Y@fq3+At}7itgCEHnwiKN5<PXLkxA$&*8 z{(#ls1e+(fTDvrEqmtUnZB*C94$#ecr+&Gn^ZwT%#0;ih70PiT9EWDSu>s{EeS#E} zqu_)AL|*n+qz>uO7HWz(Uw?Tx9s-Z~E96bgY!AUZ{3;5-rTUryx=>N(lFq2>$m~)q z)EYwR#8_;3-*L{>^N4|Cg+}STL(fTxV2>$f$62+25#=~5lc~%ng@YkG)xeIA3Q|K6 zHb7;_p28Tpv`n09X}l$)^gJ>9?#>u&P}14kim?%4=0jlnyULG59Bm6xe-I7FT! zj~#F8`gQ0ayEd8%HStm@)ubF;J6ot4%7a08X03b1`bHL8-%?DZZnuqQe$S$-7{-oiwhU?mdEQBdk z>H-JNvY(V4zPj7Yw)l0<$Q|3(WM!V@p0m~$XDoWKDTPUH^^e=jlk$HIql!ie@&^y+ zR13)&S(g1dgXSHe?|>`>ua?@VgrI#_b)A0xx()g3E+&WkikY|FDY5oyg^U}Qrr8SY zmL`unIm{oyr`L=xC6sO{L8)B;62JzQH_=)gP5jrcLHKmOLi2n@zIVl%fZ#!nB#sGX ze}=mi5Rc$AbBgx;?c&)4SJPdKOd|A*3;NYGBOQ#aCsEWt*lP}2Rhe2J7B|B)#k$}9 zRo&Cj6Y?P{?N|E+(mK(?aEPZAOoccsz9cjcO!f`3lwf~!5aOu`(a4EwnK$|MjOr;d zAEHvE;sv4?qWGUSfE{xx$Vk0|Z$QIfG?edv;}{o#$o01s?B9GK(#clQ%cv1VZtL2m z*HgVWG2XNd^kZ+s!VrgfvCz95+NT7OH*orf?dG+T4cHw^zSqC)w38t6g*QGEkw4xI zwJ}Ycfa1gt(i2P(uwDA}0q!bb>IM26@Ov)zDk!85D2>5rvFyZQatH8Xf59w*6hk#% z#=m@ko+ci(G^TeK{E;h;Wl}^AP#$WK)3WzYjs$P)TIB0v*lVF329Y}$RVt29-wN&t zUTV?+p7xMbK$w!-q097h*y3W%PoFzDp2!iEMm#sf@6x-jHMUs9ZVdkT8)OqYKsni& zDO?9X5Kzu(SIqv|b0t&)$~j3nkL5vj5|l+M z;kuePwT3LXPxXAyD=pDBQzPfb%~|_#-iDl$g4FVmm=f8mpqCQ_xrw@aa;Laq`;{Sb zsVkzQSt3E?JDd@JR5$dF-wN$z^#MrIrHK4IIPwNikHYCyr-P29U1{ZVwg2l4i|_3Y zCAH2~ZO5$Xyg`A15khpX-Se0e2$6fx;L$7vB5mN|I=5{nG`Uc_^7l}VJqJ#Nqy?Xc z#^8`B60mve=v34hz#vMEKLnSwVAl#hM<`sOi$-ADBHt*N>Vo-+t(TN`_&E1~s8^5z zaX<#fw#cWLlhz@8^JguRVOfAK`?q_yC6wqq9odBvVGUAV@|+mj!w}F1m+|bq$^6dY zyGo<6rEDhU%~d#FO2!62n-Dp>G;@3eg5-?STu-@N-w7zY|K=ecNwYni%p_BIIS>UD zaQW*+qpj{N^?V963;9&hC_5Cpe_iSfxe&i8gu#uJVwN>T@`W|Tg7(=C*G-6{(S!*F zG;E3#2T@Yf!KL8N=9`~Fhsp#ppGe9-+cZp`wCM&lxf zLn%WHQ3}lq23f4+@J-}XvpYWM^hW4mRt6C{V9vy>O?7_6cBZLelttr#GKVL0#V>J4 zh`RdLdIuVrnT;XDHr=V3jaR@ccK;yz2~&*0C?bE+OfDF)jVd-tc!z@XME4-&{hi~- zw_mtv(;2)0zl=_~z2?W{tj`KIcGkc8ez-R_Afg;Z<>iBf+l#J0@vCa%)=brFbH>?M zLmR~1^4%G<;BoSSJ6zhzx}g!1^uy{bwWiwFhU^SEhxA zgYwz7RGD=wp)H8$kJ99@mf&;F)^6XAvIUflWfM~1D9kBTb_v@2#R?TR^-E`&h+eSj zdZBWGWaR4W@B347@6waS0Odk`ikL3v{0td$Zr$3=q&xVldvF;arn+S1Q?XPzPiR0c&4OzkIS+D|lHW;7czW=l|MkeLFMuN|JMK|%S*mh)D%z0+C?pj?*=f)8P> zg|`Qr7pw#rzEh!vh=^-<4qc~C*HW4>Yd@95S5CUzWch3G=k{I;H$Nam|mUjSE zNo>VS3d*I)f_DTtgq$4-tFPiq&>Ax4Ub~knSD&fQK(F>X8=qZ&ekLNH_Il{K7b86U z*Hrkght8yt<|rlg8VXd-e-)(eQ5*q8KJ~?r0JS9s=dqh8;Dor1E_&Si@!K>t(Qc3= zZD?1!Ww_7%5MV`96JeeWlanld(7g~?Pu4|?=q3S7mTWp%|JY` zmIxvn<9<2rK8pKyY>5~srMyMfqm;I6ef?2g6#!h@69H!)kQJ^_8R{CO9E{<#a3Sy=WzPV`wi6>g7+;5i(6^Ov)Tq_XE2T`I~K@d05j2?*9 zi&1BzSDsZtKyWWkD=gRy@&H^2!{`-Bx-q_-QcpGX3qlH-+LX%a4PmT6!P1n7_Asu3 z<<;%J*Fqr0?5N%&*IG;kIpA1$I8S5p?UYW z!R!6<+4fdYh(g?nZewCsE$TCVG59$*ON+YCiAy|MU?x;Z4x&_nl)>{ahIkB+c5%w^ z4%Hm+F5?71!RSzctG)%?dh8q%7K7#(L=B)pgxHY~j!! zOv6An(S}sMJS;29K{f9*X-hiV>|ef*{IFnnp~`#03o95?E5jim)1?-fQ;+L!JMyGC zMsm#}P%^n;ldlby!}Wp`Cwb+{!f~6o2c;}FjaquHa3Drv)RJmJM2a^(=7UoBe3UBs zWJIJuV#@~jtD1-`KkM9;E$5y3PeTHJd?{$K<@qnBS)rwyYrapx&!9nl ziLk{Jg36OjKhBG;nZijHiR4vi(m3S76vhY1sP+GzPd zCsCT=%e5mo9_6zTIet8x!to2^wC3E5A(S{Qm-?{H&?g{rOysC~z*`trtl2in6K&fw zGm=k6b|I_HZiAmu2Z+(k^_0=%-1damlXE?u($3eBQL%8bEqb96 zAF!szJ+m<~Tq!6ILK#oPv7)zQ(NEVf>tg5oS)d$c%U;Rm=z3#9(P;r|-jm?X6V_bO zM|h7AtnSQ%a*BI9CY3=R;@%_LH)`qm0?%(!@60;{H$$pW0aLzfm%KuSZyEw9XTXPq zf<*Mx@-?5J9|1)EtA79XYW-kKgAQ0}IwzSQWDY9K@{n^|K~e4CD#K3h%bRPzTKyhQ zftW<&CBht-hJ@Ji(AMnTy>PonkZ@-X$l?(>Hzms<^45xo+{rw$%T3jF7dyS)pqG64 zMLgNJeo_OQKy$aDLpq7Yd4Ce4WI`P2fdogMD#wwt)=2oJ3p~34Eda-{OL&tH!OAn$ z+4_EeN`iO4S*<;7+>+1W$brbWX=k8C2EFRuqe^p+lGx5Bz=Dt_yyg2eUb5j}=~9#t zFV}4UeWBMUA#(0x21jntd=NH13E?Nek(=&X=zS@HPLf160h(N7u-9u2(kNv#xdU%o z2G$z3tMxRe(Dd8+r)2P@p^gdx9Ow9*%_jM+j!s3Q1R1vnZy(_co>QoQZ$N&-5IG)! z$cy*pVV?>+Gj5S$h#vskQSasrYXZvqm^q2}2jJ)@&9nu_{))s<4)y%o%$8C6khk!7 zOHsZePm-R(-L-bd1`-&2I}Msw7^)qmvo}u>aV2CdlVTg#!~IZJ{94O5`tE9XKv_I8 z{WwY=m?%DHNM5wGgIhd@hkN9P5iXEZj4Q&A5aNa+Z2Q@_9d07NiwUnA*lYe_kxMN} znHGa`sNQ93KG}G1SbZS2&CJ#epXl$>{k4^HAvuq`xZPvt5yAS{P&n(1uWEa~SH=!n zuWW!4S3J$Ron0H71RW8HgB!66J_4UAe8Ig3taZNl&!jT%omyFKw6Zo0i5*)iAXPpI zkuziYsQ9?4HTr=^r*6yGzxk*nQe3=|gMGZY2Q(6-X0+#>rFHkaX2qM$bhl)+(3;CB zTm|U)YbK-KVao&q!nK10Ym%17UmXJ&Gy=C7E*@MZV3#&aSq)61aLQ$;dAgs!^RZJVLGca-=ltAYw_^g+ zotCFN%(_81v2OaK@DL>^Kg1f?VbyLhTK~k>hqcSfiR;o1Z?c4KxZ~)`}kE zoSQI~SD8!{y?@eO6u!JuTS_X;Lp^+dh6%#Q+cSZ(5OU=c*FvzLU~E4>J4#E1kRg)% zDC{aB9w7|SkWtZ}hs9YEa8fs{cgLra$pKRYCQG{fz*$8airn}C`|$9ybOhdYGNA>u z8Glm;OCa;DS2$!Yo3_Q5InyKdJUyg$zv@B~IQ&yv5?G_)2S~N!a($lC6ube?K}u&^ zq`+Sp6Ya*(T+|5)_Q&q4aU0Z1y#Ju@8G98aL^-C7vTliB)ZkPIaR)X~_?nPs2dRP&sj;;bhLa?vVrL!}l26&57Ll6S)^gW>J~I zxP283p$`E~F3@cL=vexHq+JPEjp_TIv5%#iVZ=yTe%3)`Nu^@Qo+M)|qYSb{5mK~G z7#WcI^uM3?J>Pe}vt*h7bv;+t@hMK{eCK`d_kQl@ zzP-{(to!HV-QIH{X=n^<(jv*j-#TZ7d>`~Qsop0P-=yAH~ zH@>7$fd_%YvK)h?N5LJ4V|B5o#_qfHu5Rv$h*a=jQoSav`6VE7%neH%eQM~eL#GKi zk~kvcwKm#!7!rnv1 zl#6_=wf3^F%@*(x(Stk`AaNu2KbSy|!?8aS*j{uXs zvoa8lHwbQOo(fQn2^H`+SnXOG4!KKS#YzVu0k?@9>w6qeQ6w5(9JjN=bB|m7&=j!Z zZ0t#3;w!g~C^iUqF5q&y%y2oLCqBLC-vG$t-NdJIKj8cWpsq1;+4<+-a>mG$_5~X5 zlHPG}=!26(;C1pkR>Mq-%e)Na_H`KPP+6BujnM>!DHs}}G+e7SrSc0ae=PkV|99NS zFRC2!fb-m+^CXUGu600=6WklB8$E-<5e;dn6|cY*DLr>_(-(&1*v{qW=K?`{9Ma`C z^_{oG@BiAnpcf2!pROfW6XA4?{(<(+4@*WYzbI<5~HmfEvgpk-7yQSCsG8l$im zvnt^=lK~!U5!%Wx-UJj1OglCT1!7zjyZ~ci0s;0aQKq$LRGD{)gR(EYC#V-9!P$hJ zR3e}XoaCs8LHD}OPMV1GGK|__cnYqGJz-e|-LC@IqnzKzXwm`K!az-cS>BrR`>%5c zp8Bpdp>SrmCpRZ0Y&#($o6qF4W?%j(IY0c(wAN?t#aRCn`^vNS48+x~VfO^1#HC=I z-zpNO{I}XODq{1^E0fJDue)a*f~G0z2=KV9K}T~eWh!`_%bT->%@nT$=G_K)9svn8 z*0BCq!>_=EF)IpX7FQTvmVj}<+ew~7W;F9G)gdLp*AvP|x-k(%)=kfgB&lckfyq{I zS;eFR12htoDM|}NuquMrChqI*w!KVnf0O9NPs@WnB*`DoS4N-rsPY{IAvuuCL4D-G za?v=5aV6P`h{vTvBWS}#aBLRV6B@-=p25i`c?LAZrj`{~#N!WaN>AdR@odl~I{IpK z>-ETU-zspJ@9|AR}4%0^l4eHJxXHlL|=+`aakNHjcR z%SowOAFl_P7|i73t5^cFBDNgm5BN($qsm8Ml-IR)x2A7`_tJbx3c$G15-qIUH83*h zDwk+OAR6{)#{%rtDxTfUs#z&}gGW+hqrB4*g3*BZT^l1abYp(f?cSh9j$HEMDAMK2 zp46GK#0%ogIxVkU-(SQA?LOng&yK$iNe(zq0ZPIEAlx7gXhRSMs*IA=0L^=ML2uI$ z<4<8sIE3Be%H`afP%sIf3wGKhj9cRfIg-2IYvp)$UIYVn*_06rr|@g6PPL+D*$+3s zboP|_;RDm1jv+u8D|YN_*NdmNDR^fx!$=7jXAjfom@IqJWT|g-R>kt)e3sSLL8AJv znC_*lbajKAG?*h~KTMWuNdXUuoDFE^X?ssMc}ZsSQu8MsyE;OlG7K!E1S&#J4*nLx zl{zgq;7}?nmfwy6hg#Vqk^2@BnQ+L{6sp~w=}{KSbcgsklB}>2)yjOo=M7qJ$SXdB zhG=2gxdu%~%iuV1v-gL z^WA)c+xYaV%9xp%+|TUBY(2EnxP1@9<+GD$x$l}0xd_w=kw+0C54_s4l^!~?OzwHT%_Vonk@NQ5y+H^JkqsbFEAJk)-re@$vF0^MrIG&^06 zCf4j;K}_VPr|&y2a_c57^@jyw|?TpEKo|wp7T~O2s*vFHQf0nR`@MBnXmol8t-ZM1WyExT+xN zgK>E3wZ4qURD|QFLf<Ct^};)sB4V6bL?wuGE4$vQ1{*IefkcA;MTb4z!9^?Fa0(@uy#a6=gMBh|{4 zdqo?MWw$4YzHa>ncAr4CB0_YW&)$tJ^e%^v{aZNgRW=^Bs>KE^I;)$qyGgcAZ(*#t z-B3o41CDbog@oG*bKY#+yPGa%3b#9HY)WKAnVD^M$$V|ZUZFe$wy90-Ndw2m?&IH;XYuz z!GVJk|9p}hq%cy5tjcq2%AdUJjse>iFBN1|0zJ-lR=KGeE=%C}?A=+onaA1GznVVm z>YGL+!MV}$U1(DTND0FjLe{P9*^9&jx(!plb%x8ICj6rHcU#6UALxF2*aD04%sJd) zM2%=%1&$Ls-J#iHcda^^bbEss{i6^>3`hu25qQ80>`cw|ton~PFq}b@A0X+5W;9bm zW~h#)>N=UcA*8NbYdwGD=IHo3q)JC6=FcsevQYFzlWSO%eaXKI4PC9%x5F{BHOox$ zj0Q9_!kA2XtZCM*)o_xr_A(5vEdk&v4<*zuldjN=#h@@6^{E4Y;-pLK zribLNczYHJ;Ff(idX82E9*W>x#3Q&YVgt)#1|hSMu#C?P1P`?B?g%yLS0cHWd8<+8 zu8JXY1%e!2h_DPqvS%*!IQ~L^9RxXM{pG>UFy)fUR2FS2luoE{y~c=Qn&t15`s)-p zfuoC;lxmVR!LHM?$B?6N$9B-=5+8R7EZ@5_)>aEo9^JnblbqD94F+M@x+{FacKrvA zd|gl!ri6JsW?@xC$@++vy+^Bv3mda#TC1NjM}F~5P^0yowOjcYF6jLRqZYv84q%wo z9Rty0k}Ohk)0KWOT|qOi>D4?$358@NC*q_BcAUImmdyDC93N^pFSnIt+G}SJaj*pO)hK#b<7Fs@Q|0kRy zYR0eX&O3OGwR#WBG)a1uJ>%6~XQWZnh$1VP+{4m`7w=4@i)6X9}(`_sT5)fqWsjJjgF(*r3YFZhclbYibB_w zwF>GPJsK2BUNABcC*p5#s)~mT(9!Q3bbs5&0QG)nx#`Ywv$g%Zj+#CRa$GP;b_Q4C z?KgTPwW|oUDDLL>d=k&jlmYgz<_|k1xq#P>U$YnvM`sI>T!&0W za#;zmcQK3b1CFoge7SRMv)-r`jT2KhU4m6G#Q}2l3RK!MA6Q%-M@{4oBSw?5GNJF# z(J7u^!^6(u>>omEI zC-H79^yoQ_AsmK67y}}5OwPxn*>El{xA1{{il(ODx0{Ri0&ND=@l8cD6bIHDm= z@v~*-=iTttDiBQ?nq+1lhCSrSBK@(g__3>I_Q;dkNhzmDCKzD0+atVZt$HbXNC0AP z&tJli6Cj6I;`f&)nvc}kc4M|qrd#WQ=X{~!V4i@Y#fAiu$u=IQ#?I+?)e)W1N_=5(mbhY{oXyd3g@Lr+Mu_v`> zyl+1@uKnB<^%7S#*}(oXsLgyg`b*e@xPCRI!S82oW3&NN{b(;)A#k)64L?1Vmm*8?myb=*pr9)M#Nw;Kn`{Efvksmn()Ik@pn40VR-Ow z=4oc#*BDIqLnsb{HLG?7h+-9~QiVU};tUSmf!?`fg?76o zIlt;}gQo`ML+SzfL`8mF!0GHV|G+2wb;7Tz)y<1}0OXBw;bfFd4nxn*Fef8Y&dX#U zY~2)Z4!n@vx8{Do<+XJZ7#y!_;Vd!aZ7`JN>Vz6XYy##Sg@?#AgH0lAq1IX7wJ0@y z;!&O8QJLWJp7j&43GqUE5z3$%>!d+t!m{NFZsrMYb(*9z_eq{k&_rcf7D*KGW{}7y z>Any0sWmt50JgwI7wUlHCDMQb7p!Q;Qzp2Ac`@WH7gz1YWyEPihlRU)NaJB}F2cCc zatr&M`1)D5T-RAY_%DZ(%bg$l7{=G3@m3d$sKsnSrue24ehP1!!tn~9ybeZYYjwgZ zn}2B7{H5P(Knls?Djrfr9IgmJWS8Nm#`x*KJvKf&V_Hf5)CZed&QnS`keWFm?~;2w zg*hiT%nogS0_NjJkA@7`R;Oj!TrwXgl3X;$B^9|kb6iCyCkzc?zt}Uv<0eMP3K?TC z@LvF${&`? z4ioD85hCHlIb{`0zMAN%orPoLp1U9<<9damDqgabS$3Y`#MC1_6wt%?S{Au(D5 zjqt#G)kPSXibtvvc&Af@dnIsNEjaIp_{fc(quPNCg!q5fq~@u|yYHVcWgOI+h~02| zkz6<}zt^SN~S09*4{jY=a{k%q}Dn7Y@#EG*1`7ITY#Yd{}UK zyiI-bE2h&-cW1Of(YoOqJ@cC)eudHIqd`nW{pjK_Aush1S&9jy_Elt^DG}oT?T?`R z(TPO;vm?;s^mn@>?5#&*?WNruYMN%3K$yuGeECzseNAp$-#;$c_teZD-DR8^IEyYJ zj#MMxxON=htsp6%u6O8sWm}{|BX;#E?jC;M&`r~C0J<`uMkN|3m?!bR3z9Zqu!3^| z*7dI1DeUYSw$heVb>UQfqj-*%6K3Q|$ODyJwE;|2e_#J5f4dUu@dI zp!&RzORWm{2tMm{9b=oalbzuEgjloKCbD6Z#Fi$q@9G|;)$uLKdUtJVfJ!x|Y8~w2!B6D-X6fg~Z4Ta>7wda^=6)6FQrL`1>J<{220juHU{m!Cr@v=Mb zjP8M()nsNgvU@9iap}oyg5r}m7(@Y~d+|QYgP$)1nY!p~OYS!y(@nQv{KfWjHm-w5 zC8<1xzJxVv>??Vqq(8yuZsqah(*FPpoXvyHs|526Hj&^6CZC!c_r>t3dKN?U;nZ0VUzO z4RykwczH8d1Po|C66zx(o)`nA*M(eG;-RIYyjuCdx9Ui$$e~DjnDYAq3(n|4Iep$U zP1f0wI-rdVS~<_ynR>hO!i{|Wyg=+%h=$Ugu*bUeRVA@C5=K1&!?3^L| z)}J}uDyYk|o3(uNP;X!)Vo08!=vC1Ox&e#I2<<7<3T3^#CsN4ALPw;68+A3HM z36#fYqH-BQVhMxWYmM{YH!j%I_(?#sQIf%w0r9EJJomkMXZ@^fSMpr4Sk;fxwR2dP zRQJ#gGd{NEso4f|sp^L~YwCpxEmCm~8?!?`(Po%F-AbkB4X??`x4Wx>s`1Eij~8YR+$wrz5K>C>TcP7Kc*{Hf4}Us$1*F=i)lfT|GJl zdEL;Hx0z1+_Q2rZ6kD2XJNKS=B&a#y_{9yg=dFC(hvFWRW5 zZyF(M{(j_^MJx4ja2%|`<7F4MK-1?cT&tBGu%tp3`fm9;f#stRo=|abLgL;mKDYW& z>uIL0=Ss8Qs!pxRAUfKm;AkEr7Zc4pDC*#Oc;#N{#iba%5v^f_a}XcgtO1LQmm%Mu z>1gO1wV`^Fe)Xipv7LKxw-07c?s+97gVm#f4`ekWcmY*V;mT%qSRMv$KYQK>(txzU z>x}o7z!Wm(Vt9km;R2rEVdzi!gpt1{A>h_Q3FzAa_?Z1j)>DK>J~C< zl4J~2Aj-*5MRHkCnTyCB5S`KLH;0FK;l;zpx^CIt1h`~P7a^;3m~7N^5+cx8{LhCx zWi3!V54c}L9QmoT!;~4TrRu&De~asOx9s#;bip$!U~+nP6A#eJ9`T}7r_(4~L??-}UorbW%*x3^~FZAkRcM83A` zxuQq4XZ@cmsuS`gO%?fQ3VN^lZ zO_`)kDM{R%4lL#I3O~Qs%b$2u`gm04^*-PSkNE4y9rw?C0HL|%B#+?Z6&Pl55JYuk zR1@E}V*Z$|cgz6Db?=yLYMCg!a{`K1t1_vPJO}1>N$eN*7~XeqjLQUuU}GHp^|L_fJ!*+*TH>EYWjBp?54ifZ?Ox#i|DN zoeZ-b|Mh+T)j+wx1${ZixdeGnlbdBh0#DKvE-)9ZSl*Mvyq!&XPI*uLIq|j89KdTE zm^FSAoA*E;30*7YKp5uPyoCdD{5*8a!pf~885ie=6haG>06CI-tPuDFK<*o5&@0+o z+c(x0#>`MLusJT>bT{|8a8E#(As!BPMCaOfV`vJG!f~m!!rcBK4sPmpvrXY5(E*U& zHHn6cr7dG&C>!ez2&Ef2qi*EPNP9gUG1Q{<4x8u{UoD|^|D&Iy^;Vlw_lfWN-y^4B zq|agCiiG?$a3#FXI5*-amF`jD))o3~qJRab0?fGJJmB)jo9azaX<+sRUV_h*isy5R z5uJG8x^fvJItyAG&9rN(tVEF?tp&PE9P3o%TTk4noj3`(GTGl)X$L&jCQ*7hf;@7I zyUXK}z>!Zuv^qvrF6U#LxLX}?8M(j>eEPP)i2lEII?49u*jK+@LM>4i5rl# zg(=nG(687D_5o4D^rJL?oD|(10ox{dnldeFGM) zH2KC#lRVay+zvkvooDu$F4s6_p((g+D zDCBIPh{Hu@1HC2rpjlEo+327kl;D7o8UJE4eEN2!4tQaBguVQ}m?htEPFzJwE>Pvo zXbR!R9G#3gt!-WFzg)O5NC9m_V$}f=LCVT231o+wTs*^rL3auNp{rYT;uuVJmTIhk zXBxHD-!3&NScfp+qCq*hVc%u9#;6**P;dq`)QtH0j|Xo7tB(56hz2?rX8e#W@pH2V`GLoVzP6qLjHCdES&zs$PCOjkiF4(riYg=43hXPH@LhdFy-IQ3Fv z*#wwKttuSR^rQ^(qa9l?Yl9~QbBTYxU+|)-JJt8gwK|rxvCJL#;FixxjQHWu$3zrh z_|4Jp;Va*Z!N$8!9pe1B|q~Ke?Pig_UW-=1n^0a{C57DvHVnDDw%qzrzbz9ivsnwyys86#A`Vy2 zq-UEJLJdQwMzkb-CgdjNN)OvKyBI=gTEgXD4PhL$0cUJHk6d4)78$JrAXH&NP=fD{ z@|!R1m2#a^phZ#Fq$~wIG}>x=yzO=j?bvF92^t>a&1>L6skf!)4T=Y43855StEqWy zf#y}cPFK*g8wP0e$stae_M6Wj36!^l3CBQ4EUj5ch?$6EE1XK>csa9EEI-TguUU+K z0|RG1@vC2*zB;Ajk^mp5Pcn}m0YaQ8cmAzgd0}P5*O^Od$G$C&X@#sAS&%u8GZ#Y5 zFTNReu}WUW(Q62oyZnpoa<^qqL3_@p4%9+(eKN{c*+qpxM3^V)O++Vdff)v=Dq%y6 z_vGL$81ll=f8#GZ_=lrO9RI-1MCNSp0=!iY{QlMuJ>-w&{xZ1^G(kC zd;d`=ueBAWYOB_Y=a{>4X7*$aPxBsfi;V9WX*ExPFcS5XItLc%3WB5luZ!nl^Fct| zU2RH~N5L{wsaQfhLgJHPmcxsrv&N0it$2hE1#Ub{j(kL@qO5ojPF0MFC2Wo zY@UPp-xV@i#Ev^%?f$u7_s_WlgQxizigyPP;lI{bUu$DnCuu^s&E?L3;Q}HDPFGCw z0}PiSa;1kHoY!AQ^nILf7%6rngg07l zwj!`YHG}hgr=}t0cc<={Xn&3O8bePYX&IJC6du56Qq#x`QA7~T>B(Le(C}aeszm!5 z0&Uq5h5zb;>!EO3`J}!cFCKmGj<0Kf`@X~|v!M>$zP4y1zbI-b2x;cGAyA{zMZ86Z z-ip;AsK7!^de?pOaRPf{(?~*?i1W{%;Lt&q;{X;`Nxrwx(Pa9Zj@j7ngU{)BA7RhN z2bHh|5QY=mQ<0fn0CzMjPTa1oc+V5ub$QmZ<2lZM69@=8eN_OVk3Zja9E zUq}8PNI1&&lDB5S%uC+ocHyI6=z`7hF$6pNuNuBw6tC0_%UL84Jd|My8Fkij*t9I7Q&13c!QmR}L z_0f&U81&=!@ve!`QO2NqBrz8n&-QcS?qnQ??4mBw2_D?i&zu?i8DpR|&j{ts{wTYc z;87J$1L*iE^Yb1h6P3s9*@_J6Tr%t_Wz1wrWZ`-9uC=-+4<*L$z=Yy`p$udK^6G-PH3y<#Rv+@Mt?D{`7#P!mu#(~Qfb zQZ0U7`45tDc?| zaXLgEqS~6e$W37uFo(B`K6&a3#jbReu*P;?t1+yPfzxm*{rcsS z`t?YCX`QsIf6`7L1qWz+tk@^3?_`f8C|H2d)wAZGh0p=guI(%j69OO}4KaeMS#3SC z&s!;)ebfIslUAkLT61EGn4AIuPO7#={Kweg?={F0UHT31~tk^tLj+>UOAUfyQRlj;R zTLj1cMACtOso95ubu`4}iNiIJz{o8PJT+WV5KCcMmpr!f^6exRs1qN}PPa8XogyOy zml2~!Qzo2@DChjS^4I~SE~3ehIE{eb3l?J8eh4!5J`|kMkeE~XxU8%NZ@jyW8|_{f2sna7<)QTI?Jqa$Pc%P9k)3tO#y~;bh3t zxyN>!F!tHNXTVeZkT`qj!jwv^G#xxX`^4kxdNT?GDF#R+S^yE1J;{BUh=l`mE^NH5 zVBuqAc>*%j!v^PJy8d=4oCYFbHc(i0?Cnxk%a0Wz^$B3y**A1cT_a82w}ep!z2!p|n})SFcBDqu53MSK`;i z6YCRwpBe7H?&cHyzZpx0U(V*pN%3&BOX7gTwK9r8k{|rh^LdkD2WWUS-WCa+Vp=DH z#+8aZ=2_u@#cS)W;mHe~1<#I8--Ot4m2X*eLNGFF*6XfEkM5V=c$0SmZGgu3aB7du z?QwM4)M=UC(mR9QBDgu?oITDy(*d0nzp5pU2>%VDGdS;=kyWl6^LTmDu;q0!(M^ya zme5&Hdstda1ET!f(0VBS12doYf*u|#v)G^zX>%?yS3Iyus7!W_qf;N|+|ZkWy9~8F zt*^qp{4)z`dw_LzUJ(x|UyRf_luy{v@MPsSYs_F5&e zI{Wp5?miEXZIRVN96cq_tS0Cn|fDt3q=X#s#f=ah*rMcvV%Ri;!d>HG>fQzZ=70z)x@9|fdu(_j;Ch1=ECETHe%V>_iq}M_3jz_Q8v$j# zp+Rqpryu&mWd_+Hym)E^FA+E^fgXWr`hl)=08#IO1gj8 z)VyQ`<{|5h0P#Eqg% zqJD&L2RuXj0m~e3eyM)tq7T)t=mp@L(G(DS1Q3q@KkEbf3u3Wj7C&rBzar~KB&+y? zf4*Ptaav1_YZ&x6s<2&^w&5PR_hKmD^&h!3ck(_R4+QD`7k&EyhIj*m}#>>anfWU$%O@Y_{py zY%3VYtV@v<@_9*&YBl5v>X(%26@@O#t`skO42N2=+>P!*fh<;aX{fhC1wq;Xp&IXK zd~`NTcyC0Ni{f|B{NIx+BQAK@HPv2j+oSlQo%RH?9+9qL6AO%wWxC9WEt8@2=Sxkl zzY;F{MYYm)=+`496EehsG<$^J>O}=B7jar#-mirMLr%eoL@x)DEj{-Yhqk`a$csl* zqlNc)do*7-5|(*WWKFrWjM-u#vNqp_rab*$IsD@|E>vuk3Zq6EtgXr?L3718STRlN z_@Yf&u!A^Ywf{+lPugpr{MVMO+NZs?Oe>{g7Uys|7pk=VlTxFn6?LChP!l!9c!*oX zA!~U5q(@15m@4}mr`4f}Ay_Z&iq9cAW*=KEcrR6ESl2C!PhM)q3%*?B6Hiw0<{$dC zK{w^hL+{d{YO%`ikXr~3COuC7 zf@T{jHw24vKJv-Dxw%6(eZ_}|7yta=ljCL>HpNLax~}1_`^06i>6b~m6#l(~TP*E7 ziN@ZUp4su9k29$t?k0UVrD)=)7XE||Y2 zWmtV#fv;xw^VN-DRx2;``PG*AJ@8*ZVY0`p3!T20p_VFzqE5f1e1s#s1hL~do8D(X zsMB=4y_6*{s(vhr$zS4>k|25E=P1m5LGcJ) z{qeaN*xuJmijVzx~l%AbNpdzk5Mr47*T5MeJ(oo z>GC+hz@x_TsQuAG#XTZ;DE?7=5SMY(*z2ffU>+M~{-pF=g>?}(uowLo-yzA>?cb2= zwm6~%)}HXO1yp#Tw%Fg+A6*dsSFV1iqU2+?6HY*f{`!|D>0-F5;B&%vE-u|voUjDJ z&b@G;DWSp3prYCs(VG)}p~AZ|*);h2vS_O1v4vM~ru4`Y&}rJcv5Q zf)*hj1bZc^>($cf8KpX5Dh2vM`FaT^$QhqssuTW9C(d3+?-?uFV=#-PT%Oa}ZY1tW zpw=x~UQC8Z?&neKHWEKNDRf5|Z---`)(QB6S7!z;o@~fpnObKCGx!F4+dCA#bNnKV ziNbFN)Vlu(S)k%4a9|D49j-5lBMLoinnKXRG%fTMTaom!_{Usdh+a(Mef4vF^&bp2 zK_Mxr!s#&c)l_`5dn>T((7=FQhdP}PB_y>ghXw`~L2?ZY`GVXWelYVW=LM%t&EAeE z1y_G)YwMzSxVLIC3XX2@kl>Y(zF1ayA^Ws%IN#XMP3p*#e46OG%aAyRK$$lpDS{=! z1DP2wnY0L(0~=-sn`Q=w^=+|b- zH`eQh<kONrG4{?>&gfmowRSpHiPJ)KKVqWAqT5yS}($7Wrw&1vB^gdc02a- z!`y%C`ybOdVk}8A#sGsi!D*Gj2rzD^Is`Zls$1eo-Hm&?`Kg)ti_G#DncAji*xrM! z3n^n13I{jgC})+u&FbmJj=2X$!Kf@vp}Sl`3D`-`VXsT(=QMLn^I5Wekql`lYC(|R z|9#JwbX9pcu(FI1=*`(Nt^7`P`9tsWdp^#`YGp5kS8?^_L}}f>oOmA>BeOGJ*1j_< zXdqeW%sSER#;n|pl1VN}Q-iD3ac^>V9d|NYG{g}ZF9gy$9f=y&X(H>NvUdP)0&Ap_ zcQ?H)yx6-Gj(!MjkBl|iddqU&iy}^~!%Rnw(}#G3Qn@$jyXj7TwG?lr$?@i{?Tz-n z@$N{}dR4_+f7;worL`(xY3i~T^`;sH4Lu{ZT~Zf%Z(3Bk$-XoJCaH^N9KBj3%LzM;LeQf=vLdiTFq~-3c;BF%FzSt26h2 zDLpamhHVk=2x=+@wq#+>_@h26xy8DSYLQ*n_tb>k#_EgYKT=6QXVx!wE@-|AI1W1n z(JQ&1UobhJf^?5GxK3CFD4Qu0+b(m8lWD~;S2|yCv```8!B2pEgSh|$>{nm!kXOkL z&~fSt)(niPdp$VxE&QpbH3|(}Iq7f$g2#Xk&D6cjvD$U@U zfs-SSkdlo9&7WA;o3g^mHMa-I_w4Pl9Is=LI&nL-F@7+QqV z#d22XRgJB&%X_8`NEYOk zR6ipd#cI#Oq25|A0EH)uEpAQbqr?x+0ygC6WFxN z{AQR?9gN4CfpDjhkL!u}T;SE^PQzr)GN8>3ZKRZF)8?!Z>wyKX2b_+GwO{whe%%FlChRMom{5*P-5X!&Zv{)@S~~G( zZ0!oCO+t85GOHpr9h}PVrtTPuH}Hf~zxz{UI7J*?zj@PnBv&8EDdaxFfj|Zliuo zTh7GlY6a>rT2U>0r}QG+F1gh>OnIPGXMsYG;Xk0}X^2m(;c0Fh521T?-Qv9OpTX1x z<6$02sxf)$1ncs*k4@hRlUC@b?(e?lZv4N{Tf%84*LTy*8!sn?+^*f{f-nh8I^%wS zMmjc~nBMW&vDdQ}3~8K+sWL$J($q!ZzwNs`xk6)JAGg|KFun#k`>{It;!y<+S} z1f!oZwP&Vh&vR!llw+N6&s`>#2U{fgQZWFYsSOsRkM}Om2u7L96P97Ym>=+bX17$8 zm7Qx|xK`cbRD>{Ot~7hj#$VtXh5N%Lq0q(sSNDJJRhZbg_=o0sf1B63ed-6QyT*$n zm*h-*akFrm-Q#m-$rETrUR|8+(CF3EDqTdc;IGJW^wCk#0@(_L>vbn+2V&EvWuMA4fVI^7b@> z_Pu%dZQU}?S%O}OXW}bT#~^2`x^oiT zj$eeK!MzyPT)Z&aC>Ew@P_Q-@3;c5KF4PKyLJD3|oLN>9rHkCUDf5I?&KJz@z9bBj z@CG3ZaUOuM1tJ$T`kcnvBN5F>Z3zavsS<#R!6cT2S~^IysyOu&Sgv_(XnDdRyb|y zz;n?){!5ZK*1Bg=p6y(bJyL6ynK+4UQ3^)_CBqky%oRj3xFdx(hF+RZX~!M^93O52 zx(1W2pb0J(*S`9`_TJ*!@LkzoHB4PK+FwPrH*eU%yu}CehDA1OJ}xx0W6MvClBz80 zT-gr5{@004Z98fFG^SvW1}q*-dv8CR;D)UO<+Y;1U4WbTBZ78uMJ&&q6(kmc;2%Wy zE&Db4yXG;OrsU;c#pV&nn?^7%RG7<@JK=3ShTRXIhWQq@j9o$Fdn5J`UdTv!7dNro zYuYmN0A6?#_=GVRQ_-{Dy*y!%X0x;d`g~)kL8GKPpgz?2e0Cno9q7Dwb9}6+P`+zXB!xfj@aP%ASMT`g>94Y6R=l%t$pqc zOq1l9yH@uRhRVxRsIaq!{D=3v~ z>Y`5;)ZXqOvRPrZhv2b#ZAF^)^_w0hQ+G63x~gxM|IM`~W}RP^?>eFU5EGR&r=)%J z){2J}f!_#kib#M7O;%2(OD?NAev!MQU2kD>7cjlw!vv274_^JW;8??w|j-PDg<}22TI$q7qJ@DI|Z1?I~3aDs9!2PjbiE zzRT6ZvB-i=s%)Et0oqT9^ja~CZLf{L#G!$K{zO9<29brn1cobFP(Y;wHbCIac8SzUAv zu47T_+{0YvsL1nUM8Z;?R9$!R7%#GuBb=VtAIpjiq|YAY3B!G+|DmreZI9n=KnCEk z#3CM%IMzE@5yo#xyE2JDIwK;#kWv>wy58~gUqh1~^+V#af^xfdy+gmp`9bK^4z*vw z+{{d-1TQ_^=e5(^^oJ>jyQk$54gV`0$DX456DRctDmd z-hdLv#m`0P)NvV63KcO{)MA()Mg_gE`=&j)qLFWk&=Qr~)_@XoN*&~Ra7wWEp2la1 zCVAtu^-lZi`}0PUgQ}cTmo){ureyuRg%%}-%@0i?LAywvfKunOM7dAAlv=0%JRBxt#DXwEg=3jnDU2 zSlYr93lr3Z@%Y!g^fea@`6cdK+Y$@++jwXi)ypx#kk?V z_`|^DrJ)>UD=A%6n%Tmeg|Ufa_nc=O%}V_3qW_7ths-+pmTRMtJNm`>+I=RDGC3OP z`dhdB3zIT1h>y=G3>JV9~Ri=?VZ|0i1Vg z9z6y*4vqYBs}tOeFVKLT!zg6sJi#EMVyF#IeZOXtuxYPfm(xuqd1C4lx_-@_{$Kg@ z%Rx*iJN8ghlLz8~1XBah)wR4SMRxRHOc%2$D|BeLts)(X7#619&4DbB@j1l#gtaFF zEPR{)XIP%ui(vVxi!rcHhSSSAU!%wbIAjp90KI?^eWZtt`t*O&(H|gG&oQ18_Tm0 zFnQM$>a5apL%Od5CYQogj>#dH1oGK*2~hk+7-8&N9nC0?0f`3CQo^SkI8n9 z$sWNcEBelbGQV)uHxVy*lFpCUxYFf6Bl0yZv5s0`0`XOj4^naROPyDp@N;PId1igt zPQ&yykMMAx>cfN`1@K6`e8KMW1>2)zf3}DM`I@E;Ux|Y-nifxhAPCeQ3>7teSIrIu z%)j<`Wf;IDqmqng4==BaqpH0^a=L|WrC3@v%UQXm+P{k%g9y8F&xzs9&R_WL%k?gN ziNGQMMgK+LExg|^6$qC}4!>#XX-cMSm7C`h7mMQ;YlP4iZq42wdu-uP)3j4x?gNER z6EE0WS{e>*LqbfrwsSLgP#OFrbk|Ar5g+`q&l=v@m-UKi5a4Am%m~oJ*LX2(fG}bO zJA`9)=4|D};;9ksZ|9(EB@{bD>|Q>5_`0AC`@7>^s0T-9eEP*jA&|1_U@1$jw)s+J zi#j3}gkOPo$Goy*K;t-wGkA=<+464>(bAvpO#OffcJzWw_JAWRyfI|#Ia#vXY8Fnj z^_h@OwxtLY5D+*4^QL8!_hLFyVwq79sDb1U^zIP;=2JHgACBY5F=A?$ez3?xP&V`{ zsvwMIFhT7CLRHG6PY552hV5+)3SstI?ObF@`=OvS!v|9;1C-pM<4-p|w<{o>4f7*; z3`^5FUo1_^1y`g`78Xe^6%-8u77sRo1vp6s;q+DiFq>48K8)`Rlg|W%+b1AD54vge z{|}R}Ldi8i-Fqd>n5seJ-GkuGh2MpECEvh(@f|NkR4qs=I{QoFH+DK5JQi*)x*&ge z_Ls}=?OK(+(|oY1NgQr!2rl8Guu2(2wJP+OBEe2xNRj!vi|3I80jd4r&&3la zc`&JzV3mX#qXh`n1o1^XsPOY&Fp)rmE)>nxVG_`hAV}A~j$H=B=lxM8dqK2QbY~OuxdrOMo<`9O<29-x{>SWk3raOTdB&&6j|gXObT*r& z??Rh<%l+hR^q6nK=|CPFBI;Wt!0A)dqrci)@$s0~*5@}p@Ll%UbnowPx7E&c(_EHw zx%lS#obXmR%?!8IPIuFs%l}TJ$Zhbsl_s$egy!lG4|xcr48I+qYsr`wTNi4+J89OG zuy_K_`E6$}gn>_|qMMzr>K>g2Akk-{^PHnu7bYbDhI~U|gDk{^0===8BvM=sG4qZ*sg=80&AKwJC|Fxupfz1w$Q4PNO$oh&_ z#~_u=5yi7E47a&Z7HktO7oDH!+FKnicU7b35q^I~!H=>dV`i`6J&dBTA`!H1BSxMd zFnA|*;1WN`xXfGxhcvzovWm-KaO1L;H#hJTMd%Q!NDw);YLPWpB-7ylA>WIQL#ahsf>0g4VY0b7%DwZHS;Hjd>2<&Kf(6C{ zlq2u{Onev?j9&7*doHB7>m=pKIZ3P48yVgLGVGPb6fIat-z+_cWxs4*hq8T-GuI4u zYTM+@%2Qby57wACwRx@lFk{W&rEN9gfrV6}0QyI{kV@y4ec}rBQ$j(;H^a zR-`vD{kOVgASb%D6AUL8@v;+3_-Cj=%bjB5SFkRVoP_Df3l6IKGDQA~n205(gRxWL zy$0hSxa~+s$Wti=k~6UQK;W+`%mcufm+gB-H?qwHp6?-92?RXOmw9Y^I710wP87;< zH`mG`neSpImb(Ay=4FFV1|TtJH(7g@rtT!z7A!U+AaAnnReq)a7}ObC4JtdB?F|MV z7u@FtfF~63I3pVmo###$6@iT=MfW&E9F68q-9gXCm*S+F$08%9A%1HPJqZmw72b}kr6c>D z_;2=kU#)hs{~P~3J3MKe89U0~aWPx_{~b}JPVo4zXT}k2KU@9gv9{g*2sIz%ahA2s z>$Kd-Um$VFP}$X3-Ih(>nF4!IhlR=EE^!*W$n9inLfpj<7hG|^&^EDwuTDFig=@rz zxO&#~@_XBhWo09ZF`*!A$%m6M`~=YXT0f)}x1>Xy$3_+S>N6sqMe5Hco&guhqkp z8Wby{nV>}I%ZVlAXPjZ~B~Z-3vjYWxm^*)*6-?!n9QWaKW9M1Vj+@_*oK(XO>fY-0 zott0K*Sy}S!vLd3@SmFbwC7dvRHUNht>LX&wRiPZbIod}z8m}=PJNCMCZwT)<>DZm zJ;wuC?|x1wqZt~x(^{JIje}D{?2=#2p9%^3^~%}9IWGd@09y~B1Ea~6!ZO;-lIYK+ z3YI@xWaz>N9b729a;z$PUR~QBaqVCiDG30!*9SaK%g&YDq!2qWX?8IS^E0g7n7By4 zXzb4&ih8o_IdyWCIl@4w!c>CTUO^uXkbK**l+X-Bw=Olc%Ic1AC6a3I9BMZN3Xm4i z*pMcX`+y#Xc_c;utj8M*g&#-;D?sur(}nRaKRS24CJFywczkDN6t##Q(&XY5DIS;5 z{_V26>1kePc-+J%pii1CKRAv3vbX{Fzj-L6We$+UK)Yf7Wq*Oe0`E z!9jOW0Bz!u?FJ_-(HC8I1IiAEG69R?3NrILeB$7(RqwfP$C$_NH_iI(tew6_)1i%N zPS}H+Ca1T#E*OxXxvVHkOE-0(yY<(vhqR6@^m&tEi$?k5Oz*7tB7|2Pb2^6SZv{@=2<4eEthvc0|VtJJ)d0o?cyqV<}141gy9tse*wZSaGr@? z_vBd#1|mh)yCx=FIp~{%a~Q?OJa(}tHqN48Uf!-u+r5Z)`L>X_@pW`Ms0{#Qm2!+2ThUP+CGb14Isl0!+!zruJp~ z1Vdao97iZk**+oqQbr-PO`c~+eP{{fm4m#`xeR~|4;BbPK*iwSG^5_G>S(nB9Iqe& z|ETFb4E7Rz0ej;ePXR!&5n%jGg&^l!za)-Pl^|zS02<_M)hy znOYMrhc(k0c^mL7kH705vK5&BAnVZ0f3ytD2LR*^Iwk0Nr|@?6A#R_1*T>>*pPnzIsWO-XPNaW+)u@V4eA0# zfS&n}tz9RW6<^obdZ#a0q?94IS8D4bGr%xIP5F|7=N6?S@ z0Q&A*XJX1V9u3toMJd}DZ-T})oF~ClM6vKB_R?#~LVcj-|EQlh=~miU8ba(^J>3vH zuy!lBX_`JxggGwPGm_UiGic==tvJq$Hm&>t^K=Q>Tea2shAEO9L@X{$eFCCmN%&hH zp-=V&H-1raG1cCgH#Z4<|}f1r>QHWnf{GC3jPf_{? zE?0r}21-NkwH5CyDsoR;5OkEUs@{!ZsV1=SZ=eG8(c4llkGO03d?vTFW+p@im ztgnnW%qxF%FniSz|L@}ak1T(*?e3<*>nmRS=9OjX7Th9Le3@VIP{Uz0d}tIetL&Iu zPca_`kEx5^-lC^aIWz_5(NF7D&|CVcUi%C6GT%2_^p^c_>Y=?%l_Uk?BJZgP#6^6L zuuz#;rNXD)jLO-A;EILS9*P0U4{WyY>u}8>ZByF8E(a&rK>K^hdh`!FgZf%fcIEg( zmkK;0@{0H5m7U3}*Z<6OimNLQ;em|ub0$&Y#zHuZQhPUx!tH=?LHbviKpsI(8<2;) z-m)$4Y!CgTYT-I)}H*YSs- zQT^lE&5d-)%mPE6Is2bMPQ>IW<2OZnzJttF8)k_w>lR}^bZ+eRM$--9OD%JxrdSLm zc{yVl_`yr|X3Ke@;g@p}lUnK@T38iPShexx=3*=l9;fT=aWozI@CPxvcT<|cBBPVf z-i@9PYp10m9@6h|bzP&>#*6Rt3xR*4pW|qm!MTHo!fPbP#r_(!PkR5Py`9%TkC~Mf z>`Nx4O8lQKJ(e3({!h{O1o)gzSiyZ0`wVBW1c#9dvoXuehQEy;zN^KqgIy#+e4y8W z#q-jLmEw9qCRQO+7mCtfoPanOf{aV-R>4kbTq;Ncv+|Z?Za=e{F3rFUL zF0e3Ie_@#Bwb~Vk{MRE}-vygS{9Y!f!fSrGX0UDN{4;iD;YGs=bQqw-t8;1AQl>j+8kd`sNW5-3``b4U zbJ3B5=^e1@=(u&c$kEz?0deM7PqPn;3Y<#jZtP*YsEgub<1hE#K)LY>!iY5+@ zuO!`fU4c7Th4WT&nP zoKKms4>@wAx+-w+x7+Ct<@N-{-nx{`#%!lDJ1o5$^w^=sR(T5%v*2&4)n8k`Fe^OsBb+uR(*CPA~rrki&w0#$MytIsZgob$@jA z#G~5kd2z+7h)+AUGWz@==GwA8^#e>5fdnwv@B@YiB@2)WTdwB4D#96OnW>F?%}6ImXBc!&JyN9x?so)f||_A#i<yPWs|XtcJo7~{iWkLa!vW}%Bc<;=Z|W4FVNyxH^1rPW$fUSJ*;Xq zE}#+2Yff8JF{`hL$KhJ3dK6Nf^^}cEd0XAB&+xduVU!_EGcgOyxp6jPBpU@6-1uPo zhvIgCcz^*Ucr0Fh6LM>14@U8+h2#*cDNf{b^(MERV9w3he$l4St34qe-1s)B%24aD$PL{IDo8goQ*{iyCleV#mGJ} zBV^O{<6XASv@y66VL$odwVlE6Q+WjUl&pB~K_24o6sF?E^6@KhQYU{G^fjoq$F*}T zy6ZY`cYe``gscF+gihLP$LKc;we8YBcAT@@?ksjWCZSW}TB{As2&p5|q4WYXBB=ES zZ-(@hQuo#=O3dY0X1+y2*;xx6U6{|L4hS0E|ICvg?|L1XY~5t;u&6zTcQ-wnY~y8Q zS^nsBw%4Qe@4O6OS3J|Y>*Wqe{-@>btu{DJU~CBkPIFFu&L>K7vWxYc&~9!vqgOTf zehh?_v^-xAGb@j?3aF=3VYGlRP7@wf%p%p7~4?5v!O|Rl^|-w=L^; zBKyS_Oj^(av!YwjisjLELGoVNJ#9IqUGOQ3zVjit11iT2$KVj5^5Cc+U0nMZR7PJx zz$X;G^+u;?A~0GGa75P?+~n$DEV1Tx4)FhR_B;X%`wRJ2CxRiLI@A>mxsQhJGf4@_ z0csd>kmNCGJ;9Jy{{Z{xCe3w>zA;$T0wnp9FIecF^h~{G6Y%7Uz0U+{0kM$qq7 z46D1*!;+;{fht!3Nsj!oy2(!N>oZCF`okSb0OZeK_IkTCv_UImVw*-jTy9Vf7eWrZ zMYncNHz$D*F;Z9yc)F6Xq}Z{~|hm zGx+h(0OXrZN2UY!#rsV1O76o5v?cLAXgmE^iX0i4h~a@&BX`%z)~m<7v|4{^Rljtt z2Xh8H?r3sq<*9Uy2Xjmux4)KLjaYe_1TAi$j$lQ;^^y6W#;-br-5UjeGe}Alc=C@Q z7-wQK6dLi89b4c`nOR}^`o|pDa*Pw;NjH9VHe+$@lv6JcQG472+ z%UT+}G;q1QFemcK%}KHRPWKSa@4T;>OrayYI#_HFP1Qg0*W8d`O3zQ^TsUV#hU~2hC06ab6*KAD>WeR znlED%A3Z^+RsqP1qL=>-1-^_r6E`)eR3vh8V#^7T?=PBfh1m2t@pg0Ko7`xecN~Xc z7B|lHt`ouyMBNGgL1|N5uuKAC^&`t9{6GH;3WKl_9v>5rY^|98Lty$TKEKALvt;|V z2bwn+3Ig>D^J{D`*<(F=%(0X(^NFp^C$o z_LNq?w-+HuyX+TotVJ8geh&vfKxgVw+tXTQc<8L@c*#`V!`QabDNmel^w<7jY>z&_ zW~{k#IXCaK7;@<_r%YWmcHnjIm{awC3EkkEx&eC?(c_jiG2|2!#seNH)eT}scZ_Ib z2sEQA1oB_-CZF5ElSt1A6a+Xs~%1gQnaXus+4->+Pa6HOB%7gi; z#K0QiiAOa&3NBP&S3?Ln(TX&=N$7>-j5*~3G)ed#F`Ud&wMpF9mOsKwp)ARWDsS4%&@b;`vXQ`$ZOTfOoQzdvzmeA zh{iT>=w_cioQIiRnMjY@_vUs8TD>fA?D?P#`>XRj1OgK#k7}qAdam*kzl|kEgnej4 z9$I&QeC}~7+_ckWnjOkWFNleH+`=OsELKS)+eEOwiwC*gT7l>cA)WiDk@fYDsInbrOQ)qO?|Dgj(e$)1}z8 zD)nGma?-Gf4{cBGO22t?{z%hfoy#!W?BEaS4r=n>_k+8-u`FI7^Ut5s=$3!mCIJR2 zkMI)VDKvF5m_C3v()$KH&j@zddb!$F%!=m!>!n9a`m??@->FSoB64z zEQI_r`yeVQ1rRy}g<&1-+oiR23ea(A*xRzJxQS=G3TJIw?<5U$kW^~%D-N0OzRh(ws+0Gp6~%J_Ko-|^XJ&XX3<3% zInSG}-AmS!h5J`8fOB|JX~XgmQaof;1e9kPRQ7s4J_qfw`!-CKae#Nt7!8c$ki$ra z)Ju1g zNMHQyWKPoDn}I3e-S?84$EnZ?kmTuDOTB>O={J~zA;4-cnyaL#mG>B zB$v0@;PcrXYQcm5G+n?29w3fmQa3YYJwAC-?{9q9-KmDRhO8E+QHkNjM<_|R?2EG2lUDG=~oTL zqf`eB5>7@ZvZ`o*@k{ueMnOzeRuPRZ`4z1?;fra`cwczf{x$Ownnit7nnl8$MOah( zY!C|!jTbhoc&0EMwDDw`y$nYKFpK9^$yl?hik^Yw1Ks!Co$d!T16XrzWw#2vFbcD7 zA}UwD44n`pw+FJjLc;{|MRQJkLv)wOcT2AMrpZjmOW6Kj10+XFH1HBW6?Yppq5+AX z`d=MfzPkb%bVcAT*@m9uaL@Gj+ z54i)EQb?ji$RcZ`vI$S1e;iOTCIgt8J7^2~yBue$pz@DgcEqntjI4{!wlp2T)w!TV zg#(0v@(sz)74pjvq``%1QyQOW#84xtHb|VN#sQIgR7tIm6dyk=+x)Z|)4BEPmJCk9 zRs~vyu@^sly0^M5AiH&8ujdm@2hwQ_3YxzEK>EWR_yWJ-tqkEv#YIP0yGCZv0Sq8! zLLNSU^S;x*9ywzGR+|^ZwD_fyt+TPV7@XvgOik2CoO$|Nc4}ABz$= zc%s(E@lsNhv!G+jyr(o}#53UC#))fCy&3N_BbUb=HjX=tBXfOmzT{e{s9!^yF7R>c zp)@)bF~B0Zw*e#zAQi2LoS$JZ$LnGi(bREtN8s@jDwH@`sR%3aB}^4+z42JlpsAh= zb6|8lSn2i?`iD}{3LC4Zflj!`x<+aonU7%`W2D3Z#*dl?$>;v=E62%2D}=|_+JraT zYu06q$GFh)Jw`<%7iVqCN$66URrNkN*)(*aaa<&tix}|}Ml-PQ;Pe1IC4G05ly89K z$It89ujF|A-yhGzifP%7CeOi&3k120D|hJpdf%>7JN?twny`nbclxs+_<|PO-(^)* zlHJ-0tPcz%FGXgbq*M0s2F{o$l`mMY*5xF|Cs}QeAM0bdQ)X68bZHxq7&L?? zE{SVeC|%C(ICn+8Op^9NFWPL8-l6k1*J_#))6<;@Ai26;JwT`7CDXUfJ?wm*odTlI zC>en1=^Kg;_`>b4fW+k?V*E1JYQ868J{>0$`8cNBV5o+5mtV$Q<%rRkMaz%&w~h9< z4(L@1MK^rk0~MnX?}1~1q(a?g&AX3bR)w<>bf=B~q}IML`Njx5xp1t8Qv&;Fwz(Sg zK|ozS49?TonH}a%BrsfN>&7-C(JW9fIwu!}y;YP8c@a{DenB%cr2RpxGoO4<*Zvk@ z7_T?}(Fa4l_cQGV#_IO6avak3bWhy}7x*DLy0GlQMYUAvsyotnwQG=t`TV&@dL~UF)xPfS=#HxM}WjHjvaW*OIGM@HWer{8r1g`jxbC z%pLeZ0g*G0XPC-D@CjVboFUlB8oe(awR%d0%lrSj*vWzf;QcjJ-uBOB%*54a%-T zMPw^wiAuDov?%@W-#PE|ywAHtzW;TdtLvHLHQwI$dCs}d{kwnnt=JvR%`?R=1=X)~ zdjh(y5h9mgfuEgOpS1L=;8rV=#|zKVn$dS1O0{G}$p(7V(BULARHm$Z*+9w1-QbpHf+j@uXExfuWqR>#ApKaw zlwd6e9+g2iHti2uN+7YpR)Hjk))xs=Fj)g42Z>1*E3!x^I%3u;NHS-r;>h3J+rNV=M9G}l>x*_&mAYtjp zyKiDs|I~XIISXb(LkvfBw-*x}CLPe@el}!d!+KTKb#!6{br1*Mv}8CGlFK4jdKNi7*3g<57uhVf=|KWfsY!~HK4T(b~IWY85Kri@>x{~Gm z+71!0^I*L$FY(VGt$KI4I8F1Gi^N&w(nQJZwW>0$J&%_Lx!kab@A2-+K3D4^i+xDY z@bF#h(K`eX5E==bU+uYVhr&ao7MWj~{J43yG8`DeaW5NUthlk9+M%i@hoXhmVI|v; z!3TcGgMw%ivY$`=qEIH3E|U@yXhFLRs&W>Lu;6~gAe?o3A8o3xpo}74oK*_Q;|U6) zxsdvtS>no`ZVS&>E%XU>HaU~v(|L&$ZmU&SW+{m-L9@cI1s(J7N-0|wgR=!%mbgWz z_!BdHNZnR21FC^egnz!k?Tmz#s{Cv99&Wh%!6rhX<4x%xR7;I8&`Edxci-E!jX9f8 z6|Uc6d-CV;{BTQY?y$Hb9qFJ+@z)$ize+?u*$++6gWO|nJ-1iN73Bcu{jjDb>R%6@ zDPtaZ|BN-*|HSN380b%VWvCn_t21QzBzw`1~)J^;28pjt{K4#_FOia#tuV zDBRH6avl`rlolj&ujhLV5V4pzh8u@Mf6$F(4>AMM8}KT*{+8KUtW&Bb3rx9sMR~~B z%;hyWR)tfn8@$pNL88zGwH8?ug1UpDlnG#-8USvPY2=rJgZj1kz+iH|8vWfL4+nHT zO0awjX~|`xacEQse=EWA%CxZ>E+5eKmA*g+Nufi{{h95C43j%iYp0@?oG-iLp$BnT z+n&Prhv!+MBpUCniHOMkbqC~mk*nJxI$T5R)tdS+8(E#!9SxG71IV%EhK4VguG#%x zJLq)43)cBP#+!39u34%diM@W?H4?mA1zdG6bR>a0;=pBRU zW7dQ->XEln0Y(7i!F`S|A76+wJ3XL*)Qkw$KxIKus!)sj4dX3w)EE0mp&Je14uX_B$)wnL`!7GHQYr}Nv!(%k3d$nZV}gzS+wUkYY2pJ2wuBRwh63hw}5CRwv%aWB%WK+2^ae5+t` zF2o)BO)^rY0La~LzfA!x!;-||MnTK|N1%(SBY=w$YO?#6!+#Tftv{p03bvnlCJCTb zy5%r}Jc@Ib+zEyq7U10sGYnX&;>KJrZzkk$@P|))x$O;Y{u#U-1bNMUjG?~S4HrJk zJFqG`OM~QNP?D`SnoeA~3PDa>`4HEqd65Cfw-mlN&iwM1&NXj3!$1*`1|$nc>eEJRnyVH;V883Jo&RQ1Q}O+YCx?#!@-|fMz*dNRQx z^+`#DDYXD{>}L>hj+%vM5#nc``h^2_L`X%RDo><}l8+M^d-r$lS7}wm%xxe7=YgNK z$jHM{5D-S(opUV!MUwx%;%!|q%WQjG*K=-UZ6e~dEzgSra z5M0frfW`sL@mfdoPN-IZK6}vig87Yb>ovA5n}(t}aO6^{;j=oG*y_mcU)v#6EgW@N zDEn|^8FA1>qXiD3GW8aJ4v=cAPASQH&4m_pG?Jigy$mh3t(Ky_4Ki;Po?I;y$I-tP zEGyRbn-@YR{jYQvKzqX_W*`NqHlnn1l2%1L*H9IS>-FzHg+#o}^VmBVm=7Myt^bv* z(NCqzNshx02qj(c&UkfuAKid^K{XrN)=ZA~dP!Z|E1S91arg*{e%PfZ9oa!$^jBu| z2^jw7sPhh&nQGc)l)f2B96e4zS5v)apUY|JvFl}npA|V&YC)20ufi`NP8*!z;1nh+ zsf+Kxk-R2z6wh_yVNZ%Sh_qZckS*8!<}tG2VG&d5LF@smK``WI7uO=Nff4g^O`D*Z z!);F3n;?11tVsjDccq1@-$hGSCGyy6HKvCioWR51&eUk}?#I&FyL)kCh`@ZZ;}lXD z7UQ5=?lsk~G}LRrAMeL61t=9bD=&#vt%NcM+dS~Za!}@?gvC7W!EOI1ml2ooc6el! zwM*jP6w`)d-T-NJMx@7~gOcb5+1@yK)3Fb>_bm%1SQzew91YJZ3cKT`G}s&c4cf5& zKvS{)B3U=55;0D|{O?oX%gx7y?{_sanoPbuV+<~CI)+ACnF`DZ$`uaDMVg%V@`!84 z%NR86c$Ju#BC+y$`F9D!3;Juvw$e#)*r33MONeptGG`ADfArY>W{sBB(<`3yZLvMU z8%9yEa_oL>WH*|;m^n_jz59>Yr37t$5ftzez7pu?G{(ZRW6{i>Dcn3q<=ii68r51( zA{O9r&3=)*l8Nj$@CzRKgN-_ybwT6x}YtPJ3;-NaN3Z711d4e54R#_P?*lxWCYC$ zb|aJ`x7i$D_C%vj1W22^gcNiee-WrGNxhB}7#Qj3`OkRG{4%A$4S*v7QQwHn6#_xklEe zm*2)un|}@Ju_a&Toog6ds4iIv)`ST8F-p`D>|C;}UfKo*7%jXF zegy`dl0{wOv?43oOP?{4u4LfLcoo*U{;_sVX6m8&3nw(8a3aESks_~+AIGi@ihT4d z1XnDiJul+SYmmGvIt`ChO!7w+XS zz8;`IINsK?{@jl=x~XrA1BJt=dMot55&7>B?jL~4u8cOS3rikVG;+nM5+4Wx2YYLm znB%~)NO)Y-EeWbiBm|*-&>+9oo4mWX_cO+pf5iXoEc(|&R6hSl5zs*E-of# z2QCp!;tTn4G^`_QthMk##FlEsj9j{+tIoqMLuSH3B|BPo*F#?~b(dSbm{uj`rA{VY z<~<77w0<~pl3Z_8fOg3_O8aO;q#*#f1m>yhp=O})85!%grIr93PI25+6^vEE)pSdtndue!-ipQ*=~qywyQfPyw7$A`{w96%2>L8f4cp@?Z8Xr*G$g6`+tFT-kzBEXNo z-uhIe!s~J&<;RIAUxwu5&S1&k{h5?(f0<4_$}KY-%BXxrppi2^bm4LpqYd90oarjn zj?0b>;8bhVjm~z-xkeg}ui6J4E80H$c}YW$f|E!3!oUzuD>Gf;3<_MZ)X^vU%z6d6 zkJZ!W>m<&zgnVbD)&{2qP@;mRSFD+3^HLCl-x5?Vu2;}mJQ=+G#RnS<++TCTyR$Z{ z1c4n_XxZfU-^*4=l8d-M6@x8dkV_9!9AEe}9dQt;yf!R5mG3*ky~r(BhBIxD z*faFLH?p97lfAV;IJkJX|FIOl92tQ{r`l#JD^x@vE+BQ!9(h@-1WXQx6I*I@x)59M zIQCrh8B0JjEKfgLpRQ~^x1@RmMvcG!aT0CgcHZBzX+l?1e&ko_TBbB1nfoDhhZUn$`fEY%Ih%d-5oc*awF_o-CtQ6-th*vqxdVUBg>)Lc~r0xLKqM?DBeMK zBi!vDSr1eQ^mge;bAu#p8Yiww%prZv{X9TEAr}NYG&dMs+MSAm_UE)TGX)1}xv`|+ z>nm5UtmWPmZ_^zRF1nEF9pC(WC|9KJs5Yj2Fi-=?cfq2!;6*wb_pS~`#pNLU^~leI zm)S%C91i)i#4n(Afp-u}@MtZp#F2Ol#gXbo!=&)rL{$!mr1z^#I9= zDwFCL_%U>c-)+48PvF8f-wOgAw)s@hpY_i&e-(TmSk*tRSTWjb1Mh>jH5;0@x#R#h zc6D%E9uDMS2@aX*I>10ea)p7EAX|1ZefOB@u$|G}fe;NMR{NkwOuFizD@ zjl`bI4R`TSEOQNA=DOqkKaczBouW?xZg4`I3eLA`ZsV=2choIqso$!4&`dvQlGSmR zYSC1JW5%MxQw=rl%22}C4apn@mfrARY^2M1BQ$LChfCC13Ure2%yIeU)7I3cgpE39 za2VSlr6+Kuvz5v!8RgV<++$`)|s==zFhiDP))&*%W-?4+c)hdq+)o4~2 zHz{H+x!+tw@WH^G%8L{!3|`we8)kA{Cv%}MtMMrAje-E5?WD4&g=6y9&bT9&xj*)M z*KVat466GgZLAK!vc3_i)FD^f=1t~?noR4&yp>>}c;hcRH|sJG!oxk3@Dnx=FHDye zGi{(z*oMhI(BpwpR8p%b9+fyew~mGZfbO-sX4=`4&L*9CHn^{hnii!sBBfv3uV$nZ z<7Ck;9Z25N=|l(Jwi8U>RE0&wHtHGMs82N?0*fM0D3aych~HQsO_b192$pIbG}6KRMySA!%W${=&#Sl5T7@`CB=hKQ$ogbXU3>gl1bIQb^R4IVd#+sRw#ozR9nO5<$g$0S zx~UV3!wsAeO@||9J2E%qPPZpGK{5}^9it8Px8%-b9J)$-ibO}=%rqhNw@{O>Dbdq& zbbRSmTBP=Lh=9_st{gegs^#3pAKKo;egSeAacpuSiYgf{TK7m>JJ)&Jv;s$d3V9`N zx8GuS0G8a-F2ZsyEaN9|l>lE>YTYw|GupTGddj%ze<(K1{C^|J0nqUzepp8#;!utr zZ->pJAzG2tmj$HL!0mH-=OdCEsyg6t90%0h{BRdYK zUnqW%K?tJ4a@oOgHz!~>{?Ue)DS^mz)x>3C8bqqpyZPnGoNGB}UP5N+Zgr{Z*8NoS z;ijxgz)mG3phU<3!c535y%d_O-39F_7gm`PJC33n*zuz(GD%^}ktfpgU?FDSrWuGD z{d@>k-pAU*;g%ym;X_3q@^kf?6;zJ_X}!ifdzmnAT-QJDMP5nsDB@ro9QjFYvDq51 zTRlgPZtTHnOTH|Rdrq-JF8gweA{w>y0wPfP^%=ayG}N6_WX(3Ya6rWLKSQoRD~0Tu znEIv2WTv)F9>~meDryOGeBDC3kgS%o>0}!A?SkjXd9ccigm2sneR-Z>Et*Q2CW3tF zmRv}lUxnG+H61$WD%=kVlYOkTq6F-4NJ3TeCOHDYCHHRW$`^UFA2e>njzS0o!lJHF zr)Mo1l9E)TmY)3vl0!^Qe21EAfsd}m!zzWU>;`0dh{Kwy%Zi{^0T(N6>EvCV;B?7! zCO1B^`intVJl>MQFLiL@gvo<=9Ll;uUD>@4)=x_BY_ z_W8@i_cwRVo%V0wnxe1sCZdDpEvFlu&h}V?%j0X+U4Favmyw;0^;mNyq602RTbyp; z@MiAfhpN|7a*otV_WrZpk{=q#9#=Ui zH&AvA5J5To1%%Ged9*ztd4PT7nh`+;*#pVWN)c%Z08CU1$e@hPw0{r99i3&7xz{Ua z*J z{tGYv;sz#-SsW9#=l-4Re9CB%IZHT3R^Vl_h$180gr!+x`}W*DC2P~ z>JI}qF02l|?uUMW;N)|S4E>wlZPbpMPUW|y(r$@&DD4Bnw@b)`P7&<}2RntAXlfz> zPeaEe@+Ghm^0BBYwh6QcDr%#91RzEZ#^CC#~_{|BEdFEodC&`hm zAMBHaZT>dY_4VkvM(Hisuifslh*hb9MW^e=k3+M9zRq=K(5#d_fkCVftXAS}`*w(6 zDVl*oOxR>u>$k)$MP{AvyruAPhdnSrcvZD2*G~%#fSi|J7n;!3WXDKXteSxAwa8XD zkET5zF@9QILnk*e`)gDdr?`3$NF4CZx zjQmrAdc!B)coXyvnh+F*>x2LuYiX;fWg2S)?26!q>buUw*T2H8zu{ja(OH2yq%top zqcy?J0uFZNschDU7Of1=vP!5$=Oy@HP(%_*M6pyUqsWo9p%i1tm~)EYAfx_NzX%5DoL-QB*zX!AW9$W7mEbAGRlbTME3bu8d&b8f97Z{%cB z8>z7BA}#%QT{rrpvlFAaq3-HPI;?*LiSugOqB;7{bmlI8Q9%XJ`;8mHu7YCQp{~5N?d<|T%@^9+QO()^C zf}O#`a)w`dvfsNFt{zX_R@Fn99p{q+?Xt%hBmv#c*bU2fSATz`bJVn^0rQL3#6G@6 zD+$`Ylm@!LXn0;g$(ua!7~upjF;0%7HL%}Bt7W#nS)tX5f+3;f@X)*HpMCdB=Xbw! z%_=(9sHF{kKa5l4Ofqxt;Kxc{hEs$zAn;%pRMqO~zo~N(_E%T;232+}D|C)yK{@NF zTo9*G*1wb#(a7tA{h2H?Ll)g4BcWKb9dW|HraBRfcd)G7Xb<5jW9@;$R8PW^N3j-| z4nx$Hn%$=!(8Gg`+|Ih=anvl($2sG|nRr{A82_C~Ip;FkJM7UXk$AeWXK#^T?sY@c<~sKL*B? zAo|2(J>%Y7b+y*_gUa-(yIF||_XDd%5+RumYi$m@@9KT-7W>@ITbVQ%efO(xVwu&3 zvT8-F)2W&OsT8~X+IlG4vW@KReKeJn*e7k!}qhF)7{mL_4*ZE`9RSUrDG70Vq&wEz! zzN-9KNLC8`TEH`fAo-g8Ex&=wh_TIaXLQ{Ty#BA_=KrR3?-Xr2N#El9v_xg*);9_n73a#MbzXIWrJ30e8Ftr7kON+T@jA(2Ux|9v@41N zt;)y1<0!3FcXq7Kh&pE(bte1@{ ziF4IeEut3%Czte`Kf_RW%KQEXq=qucEvrb1{Wt*VGB(8c#1rT2y`-6j?>E|G^4eyZ zXFWiutMDd1!(>I2n_Et?D;Y~XI~3TyH^GburdI&t(p)DCY+Wqw=@tdkURi7~9B&+d z?a7cEaI5%inTjGnf4n=XvI%tzK_nONlfH{gbw7&7As|2Y#M^Ud8fv>f^|Nt-wO4Ww zuLXO5bQ*^O?|K!Mzj;h-`t!Y3DIde*q?KT+_rbtdAN(r-<1xl=PX@f^dT=G<0yPx5 ztb?kj45PnIU6wTgRyozqaehzZe4tvT18?2%xI=_i{?6Oe3Z7fxac2DLJ@kYs1$?Qg z!^*(Alq*L}wq45#0zo3y^x-}87RWNjXn?F~Kq&BK>Zd216V_h|c_!~E}Hu<8Yg zxPk+z$dA`yc1~LNM?~*#4@uqOk@O91d(c!X7(V0lz=YZGI%G-}bla?j4gYlzxvw>% zs)mDTLFwvFx5p|bDqJc4vAY!qL}*xW!txBi;u&uX$v{q&up)d6m9J=TJlYs!qPZ1X z=6m|rpMoV-LgmY}s0vCIxqpMiTur#MA`|}h^u@_2DmLRNtjg*^IYd?xkjkpJ5@p^h zgVHi8o1TZsAzC>x;Ep1QRa{qTK>+fhX%n<>N=Ma1WH~6Obn=Ey{u9z?aO9D>O`@u^ z%$+E9<9+Zl$Q__=0~+Uk*5Jbvjo-e9Y#iAjkg*{I1ReM9T&`uk8TP99g5@%xU)B7A z+5tJtyHlDr$=S0KC`HNMSUn{!?7ln%43aY$S5Jc0Ak+)UY<+z5L20Qx2!Px)ppqgZ$wBKKq9yLM^U0Y3GP zS3a-s%rzO>;I31`L_*=ay^aT{qr{a^xST#uusCZl{moThgTWw>NW0_jkAqJ{B$2Y} zR1uQtN#Vq(Vq| zj~Y|t!W0$uf~6d~X!M5=&@6rgWKXzfMFE|lQeq5@)Ko80ivEZfCp2Cf9r@;O4rQ`l zcdhr(`c1m)ho+4NQFKwQ+fpkotal4# zvrNZ=>=i~QW*HROOlzZMJgVRFNpo_dt|ybaUrvp4c-}K5+5V51tk8y@)BE0iJnfZF zW&3}nIY6>H)p!*_C=*Lde?bXkw+uh1)wJwga0!fOyjvNf&jjBO4VeE!yHf9O`QRd! zdXCi^j#XAY&zmjy_4HV18k?$VqhvLQJ@{u>@r(m#jpjJ07l;H9#-OqLAA!&L74=kLF)8}te@X?X>%~mz)2je8q zXWlq2m0y+Fi%Xow>vnmrT&H-*{U6_Y2H27&OuGyGDZZY+;s;xx@=33aK_)0kz`NmY zHC{dmPKDP&6@edr>%AX{6bbbLFU^(XA~{a=AJnkb=+FgG3~LV(v%Y(dZ`^)2n%H1SkdiuO=d6Oi@* z_*F!^2Y3w>Tvk1;OmK#LCH^%0R%Om_q*NzD0Ovpwa*Q$1CLkN<)BHH#kuO3&3?t2+ z^jtISF2z%PY=;rxo`g16*kQUF)N7FO{_Ip&uc-*_L^Olk?OKg{CBE6gWJQ&6=NwFN zVU4S!JHe!hS#+?H{U|e70Y5HF?UDp|sa{UoonMrakvM1fR3{@ClrUwFpm3kd?O=e; z8L&m#4%;0O#-3EUaeDX-Cxm0-yBHDTHzLGY;w~;}*o4I)@OJIDCm1*}A?VQZ>`AX~ z{1N<59lVkw(GC;|`vuLSq_UzGFW*s&4!udmuR{>+e;NlssEJ#_?XM+n2XzW(S#Iv1 zs9rwKMMV4&Y(6gpU3=ufut5*i$ITT+qEhAJMnRID{h*0_Ag~6iHwqS0H%LG|>SsDH`61FwKwte+bZQ<8Jf5Pv0?Q#hAQDLr%|ap1x%WvE@UJK6yD$Cw<3}6|-U=twTHo zoah0^(fqw7GQird&AMIMt<6n)xx?-&C+Znm3xU$vbf4DdKlgGEdbEf_MlV%>b%9s` zzDVjelv?08pql*EJGd>!rLXQnnF;?WoD2Ysq_siP1f!LoJm&-|l&cQUqrnPxNdY79 z&vQ5~Rzl=rE9Rjm6dm3mddZ$UQNVDh+7Xb@AZz^mH-Dqq0@GlptMVZgxd!jT61+*H zp=gp|M(W_l0l>LTfQ1iWy4}iPJ$M1mgB{9hhp-3JpgPMnwiGxZ&IHlMS+~LeqGztL z)unRaN#B9#Upk&ab@|fFba=zVuXWt6-uuiak93FGRZcX^6^snTHxlTiwa?sQ#)V^U zJAchHta)RKXda&XlNq88gG*buYTuR-`T%}><&kFbo(_myzq7^-!>54*AHV)Yp>D9r z;;o*4)~9qgp9aowj!Jq=W8w5KNml{Nh-68^9xoE*T=1-TR2SC2^QV4Dyo^2k#1jT=XW80ie7<>Gpx`>_M=oFG^kR zmd-}vn5a09V3sP1F`XQsD}XtQ1QIOBkrV{KA^Z=K)o?G{-_dH5a{6!NOj*#JZD8@{a-@Ut-x1$Xkd8A`t%6>(J8ck|g!K;=nqx@kWgZFUq!K>E*#6sHh_Hs2=o?ivOi z>bYGSZgLK-6##KN zBdpI)|3rcZBG@i~(6T6eQ+64l>y(vLXik^-G|XhP{IdV-<-W^YZ&_U9`q{G0u?oI5I~nrf6HvgMJ4FiO~2-=n7I@^St*>fcZ94bt!EzCHk6)Q9HEt^@~@*8!-ems${wN37uI(M|mU$?8bY(a3Fsh=+{ z2&k#ar=K@Bw1G+Ciw|Ak10h$v%Zy-za)m^!qFk;}W;Ogf&LgiuuwjsIFYQ(`2uhW8 zon(R`riw*loA9NuCoHzh!hg=afuo5PRE-%?=njIP3Ky#Y*Olw*6+)AJ;S7Aeg;7Jj z3gsB!3qgUZ9dJnmZBt=60;q`TFBytM>`(6&S(CbOBHBcV`X=~1?MBlAxGc{9uJ7UF zD73o*voKMIvKEfT3kls-lBO&CgWyoHzcMtfS`q)){;KfmwnWpnH`FD2$F^kbm;);) z1T|7Bu=>GXuo*IXa)BiL{@?0tjGB-~M+&su-HV)u;vu4f zb_&+jbOddC5k+QnoIL$gJ}@I4tZs}dbT%5sKqtcu4o>#O$dG~@cY@+qE_OD9(!w^% z6PJjexeH@Cow>uzZ>;x7Y*!o%Xr9@v$9c0OerCs@28Ufp0jemRmzM3&nz)6lj3ncE#ZVgHHmnX zP3zXo8rZ8V-pR z07W7Z4s}I(98gyv2^3+t!ZN|S6o)x1>Nn5|3DfCG+YhG3$5suGeH+5Z_17AxyIvMY zYW!syndzzVHHWq|nRy$qy!%@wyG3_{f|oA4Q7;MSg^$wZLKVRQj!ssSbnGTr+HFan z@sXuLTrsW}Yv9dAzP)-Vy)`7`wF7cNNzRFMF}hRqBqu>jXoXW_98f?3Az=s+eMq3_ zUec`Sj>V8j(*Rp6N3R>yzmHXlt&bEWN9zOq*Yp3lB@x9#0j2lh4ED=oxF&VF@06ggs-0K)&3k2E7K0%7?Kx^Qfn@ zWzT3dmWrnWQ9v#M;G(~#0N1&-k0^54k~Z!@-2CL>yq*dVqUo?9V*aL3cBvm(Ysdf< zg;kVb{nt1%qm7TUk9FeAappV^b9HWQj%#7W-e{VK-Jbm?zs7&k4B`a9iX#7G!Fj6@ zAuCwpo8lAyQ7o>qKH$}8Uj#W6hgdjkt*{cx48%aAAMigPzHEl(8*A-qtc5rtT!arM zk2Fy1tCA28mMf^kYY~mBot9b2eQ%#N0d>z|!|wWlQd;E!=_hI!mB^67*-dfq9g9!W zwYJIK4_yFHpZs}!yaP&ab;0Fw#vh5oa#tO=woSpd(-Ir^_0)JQLDzFbBHs$5Sc4WT zaR^Hm0A%`W4fr0ivF^I%{=0+I9MRS(&(IZ~MMYSyFe{O`oGZj3xj=LAMyC@S4<9EQ zyzDJG5@Mam1aW2S+6>LC0ME-9pM49e+ofn-v-PmFclTRcx-k^iJJ3Oi`?+EakXk^l zuCg;MK7YYnd<`V~XbdsMDhz-Xej)zEjC34W9%Nr0WLKfTaz`b{Z=c7RD>EG}U&g>{ z7VSsKQ}ed!c@{kbem&3l>6_B%c`jVveAiJn4xy0Ahfn$;)_0U-5quq`O%x+JNC(20 z^a>vqKsrIcOBGxe0QS^xT_NHeG2jP6Tp}BgZF&g<^EJN}y8CVRu-fclF#|r~`215$ zmmOH1J?0h413KYw^<}1!;qXhunvP(h#X5(NJJfUt`f#aldqgMl0X#n+b?6j56ts~s2VB~nV*cLa-j^)#T^)!ed>{2_D))>!`poVh<}PqH?{4( zI&?_F-+puhye+*{h}!@MFX<5P3fvg5W5=LmXE=Mca@N$_lfJ`i#mu}%>&iHJUN^>^ zLv``59YIn-Vl&&L_F*thn*q5V9$uVKpszBKY`jQBf}sc0HrS7Og$IS@oWV}i5kk>k z$sePA){K^$ut>S1VRzy53nzf)-9ixNOTsO70Er`diiTLJUKH%r^CeR`0Y)2}ObK}P;%s;9=uvLbRKzu&j`@wCYE8}`rCSTeC~a*$rc zRHhfHHIolc!yheRLqv}yX2$%>7j6YCJTmg`^lc4dzqf0@BDmyl^SP<+H;uX2uHnaV8#U9^*nIQZ=4AAb8^ZORck8+Pp&!XULqK=oHGHN|Vy~A~MIc0N9m?bb)r? zIdUnC$}6p>pk$~tpjUx2i`oIvAAfNr6aCd0^L#|)0u{j$A}_{Xe=;@nWO&|0jj1r^c`$xR%8 zDx7ch{;dDc+s8vnLZ$QU#0Jr&RIT zm8e}Z+%=Ibbfak;@VV3R=}Sy$99g{a$l@TkgSvcZ9@Oo=7(*wV>VVD4O3;bEMDy(u z%_2l;*^M|T4d+w@>vcX-{+kLX#U~uluF`r90MV2m3S{2`xL!o?Xm?359S&qZ<`qoM zVcTK>XUZ8@uscJ($}8a19xT`$la^c(!7iO9nH2YYkkILfVJq03grt$&cNZ|&MU0H! zdMCTUf6BfK{*Ac6EbPL&#m1N?aY*APSVNh#C7k~*0wfc`SY04G5W9y)3*G=qt*BKr z@OJpfmAn`Jc4~@{5(tWGHdrpowdb}T^2BzaS0r~xWX?*KWfj{r(V|-2^yJ)k2d?Ej z0L(Ty#Wz-UC_tSPi?|JwbpX7_@_djf4iB1j6{Y?d=y@f@y_~ZKP?RA;C{GTtoKr-K z6ge1Z^dEkc2!9FS7TR#?JWY+GT?as64DT=+>^qR1|DmGSX!ox@vQtUp- zSHCFZy?`ZxP^7JG1~ppd93j;$AN|Y zZGsjJG5EiNpOE&W-p7<`E(bzqxCqv{Z45IQiM4xfo<1ioalZC+BMhzd)#uVzpa0MwV-R)Rwg8>aI%Q+A zxK%t{u5mQ52q&7OWfxW%qnZsb+S>0=Nq`G~mkO1iE~yZ?pohq4C`_~>fjHBEJ3}t# zhJY&jX z!h=@eGFk1VoH!R$EnMJI9#>xElm5J1$26&+&_3*GhOb>_7&{V_TCFXMvv-q?5fH?4 zU-AkIM0Ue9Zc;hr9ol!MHPz@Ca(pm_l(}R`IrB$G>S|1 zrg7&S&I;#0IjptlHP%|NE`rnwJh>tSf{0wH+M}|js;CeuhrTR>;)rDI+2RQRA(!%N zX5q_E2K*=f2t1G5?YC>&krq+$ewW*0DLLEOiEU0g41Jz=Y(sBN_~Fceg2P z&7Hz=Ld6u{?s3+{+4H=S0fHAC zdN~?tQkH^MAqN)qS{F4Ny87;j4O9~cfp_1OfE+$?@qA>p7V8D*dVDD ztqM6j9tB5gUgafm73H~HyexbHsAL3F121RMr>q)(8rH}#y25Q^wrSu8A~MEj>u2HaH9hnZms)ER+HX$7FpiFYOZQ`M;-x-|!Nn*|-A;v^6HW9z8Eo;Z! zgBRJ#GkuSd=^!s6$lzb&WmT=R%X{9!X26Q5t~dN&Z>^6!*TdtXHt8EPy;;okZxWlH zP;~QFR5#QKyhj!Hv40t}vfjcoOkz}{j7#yTi)U}yksREVeqY#uJUyrVG|siFVZZ-3 zLDV(QMSgYHy~kXTwm6$|BX#k#iYQgS>|Spz6RpXl~gkj;8hY5O3e+dA!0;kxUmaz^aSa z(hH6;s`PGwiw6OTf0R+@!oPB|toWSrD0*H-BX(3<&#fCv&T0cMr<}<(`8iQAkx>)p zSto_5&Agtgo7#Jwo#ABoEZ^|i)7f_}+}ge}Tu;Mt+Wxab zA?Ba?g%=!1DlEQ0;Xv4Ma} zHWw-Z!^>MllT-fQgRD>A(+!ake)dJs+4~KVoneP@zagSzW#a{E#n}W4eG=DnJBPa#II7M z9jG|?LQ>HdKN&w4eo!a;rf&CxB+4PP$(y=A1~2ZGy3RgJ~8I12U zFDG`NcXdPs?A+lErDjA_RZB+ArK*}6#-=xnE&eiDG-}@D?kWEhFei;V7rl^^>-GeA zqA|NPxN$=eUrYjvPmdP}3@f;O^ZyUevE;%SuCVcGbh{S(SzHiUp9=s58K4{vL+2wO zXs0C_9UW~Ka~P3QE0fL}r4`FdN=cPM)yXPnk6wrE6CnRI{t$#K}QtC&vfuYKQ@I?9Hc)_^`WYgk?iMUIux=I1!^f2-MQvpO|YR z6&v|EQe~M0a8!|DDX9kMBo^$R;5NzNR^bvW8cfM8DPi!+2KPdVXF02W-C#uaD$L}C zX`{hD7A!xN;dE&;@!v3+5k7COXcb90ahfTPFuiv_f&!->Lx(6YA1n?+?Eo!IN&|gO z!kB)9B;Xt;_XTV&x?{!2b0tnvgy-S~XVyT#sU7@J1In`l%BkUWGd_8idW7I3jI*cW zC!UH&;vEKM8f`QZNA}FNp#REybYbQ$0-jaCGAz-I!Eza`4l9_l{@M8pfn-rGYSeNx zJlfj(h(Z^2npa3+MOsY4sq;2fnB7iwSd6Cw&RmCDwVm3d(`JL`4SK9@I+k~5DY9;Y zWDe~A67Fo1I&r0o52Pyaaj&beMTKX_Z#=$w+Yx+@oTaVYIF>nGqM7@vZ@_YlhVg7i zNBu!4-JHCrvCzK(rejNfkA>>Epgs-WEVWVQp)1PIVJyZo@##uoyF>TqGc?sI^ZJ|qmcDk(9)m#GQ z>9txhap8yCZpV4iXLv`F54Xsh*CjOpMnpl2;etmltzMI5UFgIuhD4M!zDXyE@3XPq z*WPC$IeTAJLlcoQMxsXt1p__$hwrmvPM4rXHY91v*m?cCF{nxkwSMp@Gis+2LUiqRqf&?}LK=REW&tQC)FM z{c|PFkA}Jf=p1+Y$p`ylZUwA7Tm$i3^6>7mq1ioIariWI!|-3@HuXqY(0WFzkFL2? zj`XgkJ7b%7aN_p>2y3A$Q|wQZyg#vHRC233F3zbw;9((P^K)=E&wx$VA+};t(^z^DKGO={;S*z(Oy!U*;Ggdv2a-Eb*hhrV7vJRc}HTxu0x^mNcB`6B{n+ zuU*Tfv@=v}5`F$Y^I8uJ_dQ7btR&x-P?Yd+mSNtaEhocURK8l!=Lh`|Oi}TDx56{R zzctURgMW%lIBxfQ?UpGLFDT?`iFPiE{>Va;XffJh3dba&i&-{)kCj}LrdAw}*WJWZ zS<~Yw42g$144)HTn~tS6&Rh=7xftfS-43Yo;j0AKv{yrnC9)7{zlG%9Mo0j@8(1C! z(WBd^cERsw0Qbsa86$3Xxrz>>WPXJN$=p8l8^}ZAy!@+_gm6)%*UewR3*)!*0v)%@-?! zyGUp@a)7o6qfXsI+;fh_BT~wN;BpIJt=9{0-G9pa`+Z5`g8qIVNIS3^&xrF`8aETj zawrHRws(^sH!q^`pWL!LZqtMhcj9~sPzRzK{rD}2N?D~&$)e=tLR>9HQmVGSjYLT4 z73jY3wCCSk>tqy%H0^?HttFKggUOp7A)2E1rH=eErMe62a$v{jnaiR#Wn<_O2A51#mFRuEj?K zp=x~;-`*t=wI!TfBUO+%$1?c~Z#}+CZK%v5-NWa=+xHIaFmyK8q{RkGAs1`ZB5suQ zrK#o3vw-NSU2Qhm4pcrbM@bf(F&tZy(fWVlEPT35lis+(U=Xyj8)7Bk9RAQNg339(^xqS7rYW>wcIb|`-GV>IETHh}Yi@0#i3cH!5YG>QW6;6A`U zlt3~sOM0_L`%zOwOXEYyzhr+Emgax~u=+KR3xxJ8W>s{SM%oTDxVHR*%Vzwt4hAj* zvzlit&;+AP8t+zc*DznB{V>=4SW40CsORzaS2somYTLCj-PPOG9Kj+83T4ib=@Y{3 z=`Htw>cr}YrraY#r9vwerK{U_NDJIyG?TXsM6(r+?`?JlR80j zY}|M_%hTqAg1wjLeBX)s8T(bj@q5HgN*;nS+c1Zr>*EkY!%Rrt9k`h{Y;>|;*)-pQ z5MQUGrcXkt8{{r24pfxIIsmSDnOW^m{xUoZx%Exhn{cg2^C}s8V|`p0&cOZNtMg&O z`{0J;c)}-@-#J#aFEDmQN5@=>>66)d@ODrE@q&;B^cGIK>eo&pkgX21%gWSg)4;o9 zpZgv^mKq|Y_E7$<$?3aJoVA$0!ZYbjY1pIJW+%ky&6!`%cW(3g@wD7YXYW+T9=7NL z`XyuihSQ4l3x@+DHfJ$JsJDrScu5%!?{vEE4iqEfP=hR(U@>U-Stj0K;^*Plt3p5} z6CojtfUJg)7zMlt%3h)0?Cz6mX-5!VHR9kC+MdWSj1OmK<|4gOrTq|$8B*A94BiK~ z_syGUNn_60;P#30z#c&MvS+cuu=}&t%WMK#A^iu_!0^ot;iwyk&h~UhpB-xV`}^;I zmH=`ta6uJToxp`N?8>hWE#H3x)kGqK5}NIvy>($}zb%C?dnP2$jEcByZ@p&!xX`dR zTBf~WVCej;_w`GYH?KZ{>Bv*Vss1|k$c~k3YY;RP+$>`O^_ADko-+lyC_9(2=T+1o zS`O*}MKhex?8?_=2K%`0HJ`OABd{p5?b&O3ZtJHPw2RF!@H+LpY;oN42R`XXTIrk{ z*JR_uDl2_+jBx#iJMAAaEs3J+TNJp6?k!zS5GpKYnn`j&5p`y_(;kMY(Eb6H3uc@m zGo+3JI=DXS!xqEyH%vTVx*PQ{{Oe}!|0-yaf%9!Y7UTaD8&Pf%Q88?E{L7xtZrESO z`rp&8Szt45_7$9*X>(66)urP!L#!EDCm?r$erTtNb@^?k4Y>oh!Ck7xxa#n%p+wIO6Rc z`q8w{sLqve)$Sdb>$G4lRz0k7xBx{iw1<(l1!8lVTIHfButf|RA#q0(JHe$;ARI(2 zTM^N+3^5c5f8+apKN96;lEl7hxnw-ISoOZaaye_+xW7wGcH4-s$u1eDI}bhfsRLC` zX#{emxyaEnzq@hv;|E>wJA02PP`mr}fA$V_yHNB5X{^s~{dk#T1iLrGDoIAkX2%{< z3PAjiMH|a?Cm9feo_D@Pe;N6>&)KfT1{N!Z#aVGquSJ&0@Eem+xetK}4NP!(`EqKaUS z{_@?Pn|Z+beoXa&eFt$XQa(U}!|O1;AsP1oS|J!w{Th8WM;pVF3#m}*+Jabq z#bsD^!5g2v0rdN_s38b&1g5`kU7?CD9?b{@l9pL-cihhug32OpwkN;_cLF&PbsbA# zf)XP?WPdgH*lLAd0h}=Hp7*$!^OgXrj2RaK@!y6}v};S33+fM}(%2 z^KSIu3BP8**8$C1Hq(Mn@MvS_9nP4RekiVCml{ya56)h0Jv;_H0S+JHG$T*I;h%Nc z>CN5>t4!|WSOL#73Qoci!>*a>E-hDc<6L)_l)}uYXaBOy8-cgN=I`Cg#FQP1VdL`u zAb;qlgzFm4ckC$YUDe0~wc-Vl2{#-MZb_TiGy1T-ad}vJ8?=FeW zan2kOa$7sf{p_6!EA|0Wv%cqHF>&}qIiW889ZbutL}RUXd|{RZVir~})HiWM-qtNb za({dX3+26`;C55ci($HLwdf3f_E;1AswH$!wRLYY69z-_s#zn32wUCyREE zJy{~@V2y>px)7^+FIY zr8uPB5h@#z0)IHq3bmtvFqDNM9Qoqk)OjbCGvH0Jn=q{GIBTtd$GOdBqjogid|=u2 z)J!s)Nqu(ciqA+&MmZ&DSVY0OT&$vyQlmWWACvWfM6Apw47sa4Pg7)1YvbVFhW#ha zTW~ZX**=Qg?$_ATa`D}cQ3Le1Et;vH(B8m?s!qL{!0XAPJG3Z>FF?#-W-B-&s=Ev% z>%{WCQ&pwR`+JyP#I#Iz251Jn`hsrD>l7#lg<# zO?&38`!vqaTC3qr*I!ur;r}dTfp0U(%h8I8|J&68%g4XSi9)CVK7D&@TibP^VXaL} zDK{C@LIeTjLu}e~@(Jr;)h;pr^Z$p&!T6p>MQYmch8X?vl;U4y2*Q#EbN^}O#aTM_igeSy|;4bkELHVO%_+dAU%l0g#vtUiFUk> zXguGMxwJ52f?kb05-nuOqN3X_Hfb0*D(>A0IFz7i4NJ+G+$HsNNT{qB^r`-cEQ^p9 zpg7^bDF7OXkUo+;ydgv5K|aI#n%b>j9`=y7cLZDsfE>Brpe;ftzcxN`-vw+&{Evm; z-4N6X&3VY7bqC^(1YYnO`x(j=w28<|Tyy?Y{?;=F-d$)cY;IsPC%oTv%ejAe-~3Mn zj*Y!HXHD*o%G6HqSTHI=j|H~Sp2ht_79jwa`Y}Ir0VsVXsLQ1dV0B04Slpe)%w-Z& z6BPP;M(_8^*D8B#QV_EYIbU(lZuwl^^*+F&teK~+_VQ5ESJ*-3ApQ#mi?Er1#C*Ri z!cZ5%Je!2%)RZeJ9*z_~an<4kw|h8#FKRA*5!Kr?-E-k-j-FSY!r9??+!Z@N@Shku z)HhCcqI~$EOMKAoe^`mt6LnW8ZG?_b(TYQ9e-?Ld2=m?44ZHwy`U=Y#@Tx+b*WnHk z!>A^(ma2wSGeR8!3JjFYh?neE#srr1Ku-+Q<4tU5v%VBba9$;1Bslym1eJ=&jhn~O z0tZa4(SI82b@psNMUi$BHRW}iMj&p9dF-Gop5X0o_~YEhSKc3XY5ity(%5}ztHKvO z83c?B=w#On(`(v;I6*}d(CYPX%pauj*X^#h5NJ;Ui+u`{OC|JH%U0o@WOa(>|E4bP zT)uVgDZXSM*TZU3o3RpdY|&zl?ryXemzcv@A88wzbpqsyzKTf8(4OCVvLiH5mXJX$ zh--Yja%U|*{Ysxmz&D$G?8pr(&f!l7v(6PEh!4BciDcq3%}SjvFL=2$bTl{b*DK^O zOd@;ejR=ixLz!HvAHK?W@^t`sS<4u*pQIZctrnXGqE7zV%nzlvTTjQp%}-Cn4gaY| z*2JM%b_@K)rp?3PKF9h`nFVm3Y!|h~!LUc%ys>h9C!!$VZLOd2VI@w*PX{kyjh=AV zRQ!r5`Bu22UvFISKt$Ap!eu}^Fb5la>Bdc8W^4nLYXY+w#M+k3zKLlmW>XP>9T5jd- z3*Rhzf)+#^12+PH6SdL1By{pC;}dsW=I=!oI-<1#wY#^Gg=Lxj6`18~6g8`06tYKC z$mUibiN}Ivk4kf8p5!e_-YE)Zfa*93)zmjZC6N~sabg#`<$2d30J$vnm}eggKVggj zMK?FCsfjMT5MXwv7eeinhHAzg5DM>$P~4W##*}}56g*+_@6UeFB#TL@R7GW~#n~M} zx!UlQ83ppCq;0l3(MlaLIi*_R{-Q2 zmQ!rQ*<52&WO+5)1Tgntof-ZIZJ+4qojo_J%>8P9QD8dUTflssvF)=w^ygQ`r|!6c zPsi(UcA#$A*BS?wZy5Uv*i+tIDH<0l!g8swT%{3ojzh~Fl;RHPEp#y0bUHGB!L7&1 z;s5NhS~ko#YkhTM`}e_yW&P(X)p8R}4bH+DfBHW#4m=OTfcw@(IOzW`3_13Kf8#n{ z4|Y069)#cAX!>UVBk=XoQ-j*W1btCI7WeXlX<-D|Y_cv?thls{~i^VWGMwyN0Lb%5tZ^k8m+q66|!b<3W3Hz=-#iqjX_W{+K) z#Me}z*be!w!Ybghc(05Wr$T|PR!OJ{eLC1X%G-DF%0N-uG$dz_|6UxM(DTU-M{+O3 z+OjXj0G{5b7EN9R^A9Liks-m!ak#1+mKdWkE}J|Y`H-46Qb)MnDp;Y@NZJm2DM$l2 zAujsBNn0Rlqs6hqhy%n8GlDcKH@J49Mb5RJ!3ptu+C?lj)Va@G)rC*fUqLrnFtta= zJ`c`sIDJ0sAt=^c42Sc_qdL(9I2?Lg#dVEMyD)BiQQ#tc{P-sGzQ2HNs178!ddfUC zVJzJEavOBXXzJY2F(1n>Z@6#uA~Px_-acw$q`kK7e$%kguBJP3T@6xl=jemA-As|> zcAA3hTW@636XKgC8+JHvOpu2olXOLq_J`zLs>+|?Y4{~M<$ zWnzsV_7o~S_LspLEvkp?Me?lcsup;P@va1(yB1cQPm6KUqPo1P@vxyUOB=sMn2L*wTC?wx?e z{l{YHIRV8F_W7&hz_Q4<@enSYYuDm^uqTtLD3m`G?r8LK3T!w>)+26aCT}OMd9eYq zK9_5pOMsP#-F=P8XZ|zW<@K7(2U6UNoZHF)mzOV=!C^?XhpwOXd%JYqnhimj@G-n= zg=XqPnLoZSjNCqdXd6bI@9@io6+6L=JB^t_trkYZC~5ubchA-hxZG;-njR0Djy>FN z&s2k9F|*k8+S1FQ%yZ7QGCbxz^LfFzFN*@6Ab~`oZY6Tjs>m^fyhem+7!-pntBj5E zG%h^dzIklwb)=0x>-`Lk3Rr6)$uhNl!#JR0cidn?#4Y(d&2RHVk`^M4)MGECZSYORD&rv=3q{t;Heqee8fD(uU;s#4|27^g{WR!SUHI zN}bK))>dr&TbcBRQ@O1BQ(2oLPG>U(A$Cq`9re6`K0<``Ff6W^$@>fo2U71L=VSem z3?~-m9DN4MFmCJAzO@$^>uJ=ksg4)tvvCwDBrxLU0xmzi`D{Efq^;du{a>QpsS1vt@goI=JK)xQX`+G%v13z z^HbLPOW8Y6hg&{@(h++CHne*=I*uHI4bJpwZMtJ5PC{8TdnR16-?=){P~m_inT|$q zsGW7w0tUw|ZZsA30Uuiz)jDF}EX3A)3QjP>Yw9<%TX5d;9|!y{ zxe*VySr-9-FW8=vtQQsGfHivm?>;u)Rt9%1?LR7a!S;k?y`2#bhC}1#PWBFma155} zl>4bO1a(WUk3~AUpnrca^!fmj9Iv&rbJ?)i=KE^t6i?bUya01WF?XA1B_>jD}DdJo9p~G5M;X_x{t;h-#Hz(}dhBiW7+>GHjVQUhEEub*2SxlS* zG>Vd;i6@T_9EXKr8FStWFNVNj`U9Q(2RgR*(byTQq7_HI9{K|aLiq4f2@EuEwCo%k zDDInvU-5d<^Gx{lbFEBTtRKFo-Tq+)IzR|)e*ioFTtmi=V_zhPX&ctpFyX_>$$r&@ z$9J1K!Hrs1k|)GTaXcsD!j=^(0pk>s- z+NFQTm8nW5Xr`_d#m?mpB=IVOZ9+7WRj`A z-CCU9&%3ZAZ=$=E+M9B;h$NoLZs~e8Zu~0ET*tbOveX4l=t_ z)8Q6s>%oknh5a`dg!C&fy(-g>3%B|2q!VHCk()W^FP?)t;PX6-D#vR$s`4d@|CCDB zK6#D5l9=tRaq?Ditlq(ETMu1@QBN(if1#{)^CZ?^d?%lPTrGCS*J zcBT`QK*p` zzeIfI+==l1tiYUr&5vM9aI8Z}d~`qr3Zr0>4j+kg z2APe+SMuIC8M|L)eaRS_20X%t$}K685_ln{4+Dnf@JUb1+>lZ6YrlcAtx5vO67$fSaMvL#d=#`9IdK1g^&He-GJ)6k|!I#W40IWr z%!~+;vJ@g~S<<2+6*5Xqlf4K-X=InBRJO`ekrJXvmMjSsm6rc=&bjZ~d$-E`{-4kJ z+|TQE>)!5t-*cYxe4p?0aE$pb!aalbhZHB6$gs_n*DCiU?D(XSjZe#k<3h$9sbMQ$ z4}KS5KSpsfPs|R`iiWOPJUfVO66%5I3;rh3xSHprcM!^#4hy1J&s?(T9Gj;AaqNED zJE4Q#p8jVB&$L?t?N`8-u>Px08jj;%TmAalKTAv^csw zYkKiOXqz6pP`(n!;^Oot;23t7JaT6p7C~pBE2OXmd9o9S>44fR>pMd*QfcGzZ}1(AwM2zCAAL2y17`w}cN9b9gtOqO4Cq#f z&zcM3tC0!!>eE4lOD}aadwzFQ@u;8EM;4kik87_X*SeH5G%X&P+rPQ%*A_GSGk zH?y~`S*spIs>V?7OI^;XwZs;^TnQpSsJ*%R)Llrv5fA1z<|QsIsV~27h~Carr^hbz z=)!KKtk-~xHbxbJ2AkCM-snf)^H_SQ?7{D!jtA$@Ug#W?R_L@hn>88nF4E{dnuzYe z+@@+!nId?>rI*fIVmo<7c7;N8T1I0H1W!#@rk*fE`w$w3qG5)92YLYv0UXD%GC!!G z00l07D53LB8UF6XlqCR8do*ZL$fZH(0(8PgT&Y^^fVQK=U~h@Rz9wYsEmhlh?~*$4 zVMhkt^|7WILwG|Bti5P)*M8p2HVNAvkywSb98OSMiIq5C5UK%z_4C3#v$myIHW7si!b5geoR6L9~SGD;}v?+|jBmc?h zL#!dS%%0e3f@W;SQes^bg?VJ+9=NB!M>V_8D(Fyzj#qMwu(;F9{9d__LSg{C>RZfD zS;I*Ex?y;&Fs+#6g#D8enZ7ff_@g5QOVOlL;*dJ4UE-T%sAYb%0Xc2mQVmNJCB(5Gxh8010?L>5;ebHGlHii)P3^aeH5QDE z9_XAo>gScpj2Foq`FL`p!ZFQxzI;sc=r$UeBi!j(975Pap9?CFL3XUXaHtV-+I68aO`k|}C#e31T4e+s3S52rr#??Q9V zMeWIyLe~l$YokHiIQiJjATaCnG|=$;Wv)sY)L~@uCBrDRSMXvqEEzl;sQUmv0wEr( zRUr2$&qc*R$a32Y)E!x1<$=|=AiDRrq+WYcGlqnOFV!{mk2j859WdaM{sh+%`m3rG zmd~JmIE4Qe`vHRDI}v3Y*}G%1Ah~@aL{6M+G_(4?zHnpXg&Ug`@&_C<3di~a@>_N{ zg!Jj3LjUR?W3f-?y~lzw_gQSNN7Y0QBB!6TSV{@mbwIA_2P=`9WP-?ZqIU8|!^~os zO?sI3=nzBX95jdFY^T`FC|IZ$4tnSJ5{=?u7G(^98;4YBXRX3=_X3@o%0&s4i`QIQ z8NX#%6DfSciE)G#e-7jT&7kb{ZAcKPFmU@Ckjs+lU28F-obPE9w}7H>UBsWSs|Zl0 zj)F=j=UAA0Vq`Lt_sNt2}749D025pvUMvQDNd1g$9tw> z?L)1#Vu2u>u6n;~)-9`gJ^IEe&F)qdk9JNep}9CHhyEOLmljC{73+Y=BQF{MieUOj zl)eKZhs1$yw(Cdak=r7EML#PQf`y$ug3JEe?Sep=dX-uki@_`ZS_BvQP1Kv>3O|Xr zw@Go0n>>V&u}+R0&Fj$LAVd}Wn|pn==p-dzA0-ls=!SwaCnDN^LXd~q{*yK)YMLf$ zKW|fI)&9D+gwmj#A##!3Vu#^V&V@lTE(G30NG`(Q;)e>^YjVzhRQ=Xxok(DKNuitV z)g}ZT)Ct5S_;V60p^5l*5C;I&Pdl~*aJ90ZDJdG40^*_%n=G3i6Du^VN#X>N?l=nk zR73)n?ZfHvOeS#Rh;@a_l|UCK#p02G=qPgnRFl=e^{Y00a_O6x0Z=Vtk(NGvB)p~e z7Ka0wIkqGQv)j+nG>J~Y%*saQqTUZ|n3*2-sMQvu6aPAp{M{&`G8JzN;|t)jPd|J& zECI1PuIY|Wp-zoIE=*LqbzT#qo!Q`PUC9+h7A%;;jN3~#e?bj7Ojjk9TH1i{~&;z zCwc^gvn(h|5$Z~ZNuMEk0i1q1`UcxW@T90ff+LJ}!}D#vWL%}?N)Z637Kni50xZrBQ{bHBJX%SEHb;XapVs~gipKSC z1w=c9-kE6dM2Q*VEL@3biN$7FiX&%yIb+H>N}LhnL~Xv7S4b4SX^0fJ3m_ldjZP%7G{y$g<*Av2iMY`HD6o+Uk|(Y z4%}XQE!}bBQMl=rP_n3V&mm7Xw){aq1^uMobZ0kd9f!Rx_j;m@1H;%9Omm? z-Lw!+3H8tNvQLL?^OZ7^G$)~)OH>q$d1e5d`xyXvhRX@*?yyiJf*VzaMn^FHOB+5f|18e#i?aP6IcrAl*IG^ z<#^4*t*H;UW|VrN_lS2GX6YZWz~%-?FJ_7r;Un66k{&-+e>F$nw9*LuggR&fgl%6{ z9fR{lgs_E)SxQ>R6*U{y^wiHakgTNbgwY^djOv2nJg)??`Fwj4hy`ymjOo#ry*3vk zA|)jfF+w7S9FW^V9Eo!Po%)zlB};N>cB%1xRswQsx zF7Vx%uB>%X!)6RbL2K4RvPM zS@$_kG6z!DY&Q~914!U;>@o&!6XNlS6c6nSvU*CV>vc$^7gY#_Z8s3`EvLf)1s1OF zfp2%f1d2%$^*d}1jl3%>TN)JKb3uQf&;Sn-7B>6;g0q~*B@?zx7FoqG&%^!|b1Zx)fkM!e zD_Pt&57Qx;K;X)ONh+Q|W|E&mfH?CzWL!B6gFc#vJ=-6X=aC$m!8!pO;9kfuJEdab z78Hdp@i%Y@jQJahHPLlaf+k!fr)*Wn8!HBy& znZXb_nn-@<5jlu*;>L9k_A_FiRQKVAbCUHuq4l_lB_VU0u%%O=aOLv;X?-eVpN5MD#>6Z`Znf6rnDGP@@JrRg=s$4~N6B&a7>^s7j=iAE zOV#$Gw=(QHq|9z(9)qiv5`$jnI31?jAMyApbNw0-mGE0s0v-_^q#ij(e@dlszj3?G z!%l-DUm{MCCsPzoDRNOu=gTh_q2Uc#;xK8U6XKZ^+5+g~l_7MMTJFVB09w&No^xVR zzj)uB6wNMQGzscL%wK?@yo`|J!sQ}zu(;2S9nGp~oNHOHUtWHRfbN|K-GY1=4w&&x zBtY)8Ed+Nm+%Sl8#*_RF)Y%AyFR^R@UaTT{TC|xvcLE{8?&Z3W@_TP`=9b91-nGal z1uzGHqf_X#1;u(GnbFIbSbksSIy56tZ^JC1As+zyxOyB3S4PJmR;%=J`=;!j@LIr* ztpCDw+#iv5xUbF9K@%`LL3!e(+ziw-$L}{_M?h(E0Q516<4UiRjAIZdu!_gvR+i;Z znPKq%lzBj(vmCq&?X7KRwWl8`zJ0=8UNECeOf>?Aiu9FiE`n9Vx@kaScr>tbbCm?Mo$oVVsNT;m<#rm3^N9bq9b+solky?TEAgdUd zYoyw}*^|ouz@Jp@!ky0O_VYg(&3S! zJpjJi0qaRb*wvKfBjfbcr=8`G7hXKD_u|OC?0S^#*~E)|jTJI<=asGU-hl zuk-(Whv2f&*{ei0m|Tu{OG=fmZNDlEp3$PpJSQucW7A3!K!HsnXHIO>Yg=nR3@h9}PD!r}#sWM;4-=sYAOWg5__F2HjJ5av+W6C}F0s zmw^7X4pwqIX7}0_ zPC+*(JA_w~-zbHY$Vx-<`ub1rD(`sqs4hNB{O;n!ExXp;ZeH2xb(wbBg-O=m<;y^5 z^{$bdOw8deLTpw#Aa`kJ042pq_kS%ZUJq9egKMqdqT)f9V^nC2eh%S2sZ`Vw7qtw9 z7@xtPUNIwOTnU7$SOL~rmR>D~VDdi7dUQ&%vb``qr0B>C_RpdtFR`2C z2h?CVW{>zO@Wj-><`or#Fv<_q7HC2 zF(o6euld%8^=~ppTpWwT@(@aLN_~&R*W3Ht!Tbl>`})pO*;{e+{h+nFyj|F`G=rIZvd7R2iy!3 zqaJ#<$5Xi3!n%y~bV57d5cLRt6o;6N| z5q|m;+^j!j9Jb;F57uB_Ihxm&=Fc2=yRp5!!6I>r?Pxay6^{ zxl2{KJhtuGnJcK_5qf>m#Gxd9@yfYS;Pv^}8OR)WBqz-d^iQZhyPWU<#0FgGGQop$ z=_WGtrKjq~?$xT9r&}}k0sITG>t%V(P_6KT2+A$h>CiB<)ZkPrq5~4KY=OR=jx;uj zls}qvlL^bEp}6o&waTleCy}LE09d|OxeM3-$=H8!wTm=hU%zK=BP?9R({p&tO#~Ua zc@9)j%Z5Ub@_<>QMPE+B+1XOgDiKLsuoB8Bx5XC=A7M^zEse}MUVumD{I}La&AN#} z7*Rs+M&FiXG=hN;SU%|saN2h2(}y& zQ?z8g`9hOVolniu9XFpe0`k5|3?#?~v(S_Oc`#z~%2drVL+IUvLauk;1F3A;)Y>iJv7+0)(7g=s&40@FqxtB0^<6w^5OSx<%L^<|vUpeSMb+ z1G($EeyS9KxM1#eQ58jP6vIo&394(^x)EqvM3b`=y=4L(<(0#tg-(fNrwAy*D)Y6R z`PA1CuTXW8h9mNp1wwKrUWuONh%FXtD_k++`dX$4XGFNvtI0hLGO|=D908J`=2Qnw zU|hIBMJ^W@Lc&7qbw}7E8Z#M2#UY5z#5<+Ks594RN+W*k$Odj zsJtg%KKS?cb0_2dE(!ag@*C^8RJ@-?HWnwm1@{GoK~w_j0)j`_JbagKMdHcCNIV+_ zcLf~aza+FU(5G-?CwOIEx`G4zlMSr;Sg*{>0$y#JX%)l!4}$&UmRVOUd9>Q8kBF>KU zHFELO6YQXYO-Csf_XDva(i>C0{dl`&DI4{6e-|zXE<|Cp$&cZre4^+WueDwZmkZ_b zEVhxO(}CKmQZ+HfTE5XhimHiPL?UvzL>->eEgo|3^M8ALd)x{``2^bd-5K5r_TK?) z8L@@FpBnGbnx>G1o1vA75aq2+Ij_h1P(D?Z?(LZEx9Lq4+)rM5RBsuko#i5GwMQY7 zNXo@^u|&tkJx3=<*>6+@xaa0hfWZ% zz$Xk5YrKGk&UXZ*V?epbCqyH&7zIpX4on9-Mr<+0>$x2Q{V&;co^3rWx20OhHq~4& zt91eJ+pbjeOYU2}QO|1R@42O{-{8u2!K^+4jx1uIwJ~ikq ze7rcNszA@e)|`nDaYLDP?Q=*(aidN-9qWRAQZi<~>V`WM-Hk9R1DK2V^+B=jl69^2 zlPAh4f4-WUkY~9pjiQoJ*qVL43JwMnebI~D^mS_#hebm#D)^Zgk#V^!L=Hc5oMyiY z$x@X_bh-~~_vT*X`UiQW{zNVFf{70cS5udTZHb+UpFOn5Hbk@#kFRg3UxDC;hIpl6 zxO}Yc5@a`tl%i81c+oqZeXijO4ETg#UlVuOqvEBj@{YGJY2b=D2gx)1@=y0Z_ZzGf z(L|KK&J$`DT#KBPrMh7URU~d`9eF1$1_1{OEUN1{q)mcAcd-)-o%iOT+)n2r_dTj} z8;h)K`OUHvQ0FS{@FjwfrfNkzo3j+R2FiCj0eK>a=Q;x8GLP%F&I!-=#~rM!_AXOt zjrLqn9ie8%|y(XKx^_DHpz_@$=R; z{pgZ_B3v*!FQ!Vx>2f<`NyAd&ObR!*FB_X?6t08;AC^2s7~-}PSE&erxHvwi=EtOB zzA=xvPts!cNJX{&$8#Qa^Br?)vET8wkoKBApa7yah&>eCEM-ohlaEY7N-sUWN+PiQk$h?F3qc+dECU z1rtG}N_4RO3o9a1*iJg&(fFgFR#`YG@xdmAIOVAJ`BoRcoLO0DC)^u=GH1@==*!H; z+atZ*ESwlyhPevuuQuzwL2>5hPH}H)dYrv;*!INu;<1DhOWOkUgr+28<3Q~D z(8!9=b;-c%E_NYc9TW&8w;OP&&-R#$@Z1+&%MIu~#!i_p^K6Ug`6+HdM$-0(tpmc2 zYSL8a6<$O08r!qnW>qwQ4lS8)U*HvzuAqCc+43=p87)*12ycov0lmhfq<1y&U5WCO z?(*atJ;lg!@Z}apY*410k>wg`E**^qqFrEp(ddd+&z{^(!$4aN9q6x-HMo{gcpg`N zID_t+$`5hxniiM*37=2!8j$=VE}J(_lv=C!CCvZNIMohr#Gt@l7nT4E)f|?09&pm! zC(Yh$H=64IVba-hw6+0*Of409ufURJN9*zZpkR$}supMbBG>Fi&YbH@Za-fzv<}sT zEFVEOg_@YP{u?<43C5o$&0e+t-z{_A(R9t@@Du;)9Q&crB`3QmHu@?2#6O4v_7--G zN$c+vs)ul>doEaVz6ON9_3W`!djdFiw6O`*FI0=pHFPmbESjyvP?ZAIgAx;EyzWWK zSY0&>9!ZeNPu+I^7IW>0=LBk>bVBAW7<&B{$>?ndGZVjMsU08fo^S@Ir*4Ztd6mo( z(^Ezy>cBuLk#>k6HbCp(ESoVT&5Qaf(bK-1uAH7G{-uc}0P^WO5i=c)T>CFb{@mWA zP0s;Q@yCMJ0=S7obBi0~^vtdm=S)hM`MrIla{si}Q45=PXzzqRA4U@u8h@NF-#y{< ze<90n*&p#Z7nV&;))ytfO|XcoC83;D|G<-p4dEo~d;0?)%|Psv7>DZ2DamD>HBko< ziznP^RCc!6h4=>~i(;VGVrv`3qj|9%X9jv%~JR*dliRd(XjUi(`|2`wCdD6a-foaI{$B#X7NtE!S?e(E|%C!WvL`0Ym+w z)aym*_$lVozqj{>ggH2cg1}hSaivQ@IN0(pOS__l7xFS>Z*iC$U$0oImqv-r)`Ene z)7Kfyt6V-<4W4h;-sa~#R)~V{Kl*Kn^pn+mWHo)tDeE8#BC_wKVyT^ai{@`* zm)0a#7C$aI+a1llFvsQ@c=m}cIt3oGX=vUBL{~w^Z@JE<75^XTJxFA@8Bn6KUuMpXaa8S(( zWGljfX@%N`I2Qb~J*w7z5Pg?um6Ao3*IHsQZ?HBCK1^Cjj54>BuP++kD0e4%#L)b4 z!2tsDfAeCr(cPI;IBsip;Lp(-x=SuNzQk0Eh ztWFqjNrQ3D?;BAbIvwZd4ZQhe|810~3tO&?O8xL1KwJhy{<}?IEh06Xeg_KBq+TSu z4We>bWWfxJNzLJwMb7TSS!H_ob)Q1ARqz9p0b91pp4zs!?<@gJ{@q^(sG;okfwQ26 zAtmP6hES3lRM&0jSiPZR75XTUuJ>#|dYJm$Uh<^0a>~niHoqd!FQns{wpG?y zhSsa&jHlz$Vzy~g>Qg34ou#XB0pXX4@2p~hqxS2Y77lqc@AXyaU$W-y?gWy03ojZU zLclri;oXC8p(Lk;BsHV7-7lukE4!VTyAwojCYkJB*GHI>?UdI@=;G!TO#x3{o_!eD zPg=G@h3?|9djd9}>)7mAXt%1Wh0Z6(ylmThXYcH+ZgrWk<*7Q_TY8+)F0`|~u9&aZtihZG{iO9TlI6S%vUKkhTnZETng^PgKKzv8T0SF)@&W?u>-pCnCubzFd zsp;7}j-&PO`Sj~zVL1Xi7F}5TjvbThzxBN8&uBM$GT;8f`p3>^bPp=nUvKsp9*VFm zX|znQ@k1vlH~213-g<=x8Uk)q05$uT5wnCJ?zpH;(GY$_r&MHeu*UWN1cLkr>qt4PG;s>1tX{jJwUJ= zo29c1l6Jn4i|Nq6CQ+)Ks8s6b#D1J;=6+vm`nl%5SwD;jdCb{%a8x-szT;EY&N@_a zaRS^1=Pf#SJ>CA#gO7irWS%GC$uGwixVGJye7rVvS3JOrX7Q57Pg&eKaC_(c5Ma=C zusL5zi0bBvz2A#aHwlL$6*++MvY{p)m-#`Zd*!s2&wQI^H{x3dd363en-SCiAlQD_ zMLyOcGD7Q4_(O0G1}$6-4^~#Z9Etr71RS-iGiTK)?@U>*h1A2zyU4E?5;9rfTOPYA zcrMI7^zH;MViD*FL+xMH^~9(q8K^wB;L;p9vRnki2qcGrqAuF`(Z^&tQ0t@lz74AP zp#T=l!9o_gA*YXwcuc;ERr_NL)*yG4$yg|{CPd}OheNNj>Td59ND&GK(bol|?Ci}1JBLKc^dpk2SBt*>() z--$gR=Ca%b9h0B36vyRcC+B<~ch~1{dnN@{Ib|Gdd4bnIPI`$C zB1^GVfz~#nX+olQ11f{=_!NNW;rwyd>elJ9UG(pl=;o9l#wlO!uGH^~n&tc2eDlA~ z#P&8*hJ6V9!beARPDw@~f|d`P$rJYzRXK}9uE?9n1mVOFumJ@5S6RWEF5F3g@i!Hh zF);D+s&Wx37Z;NY@io0IgozkehHnxPJa%{&iUjqk%%)+?qokL8OWz@;VrRGC+ zk+wMe$=FpCwpdVQdOe4-qLgmw5GB7z9_8x~Flxe~pVl`*~k1>&Mk(Axg) z;fUe@^8=r(QZ?1zMNPMu>w(2&ze>-#PKW)WWX9U!Uy{`8dJHe%h0#K%szv{=gLR<3 zF}{LsG;dIm7BhKAElebG&^Uiu*xf@Hh|FzQknQ-k`0&@IV*#wB068Pk0LcC40gwZz z+MUroX4e~&{EVg7&OSJ#kUxHv&+sVnKXZwQMQe@tKAuYxM+#9*J!~h${$90ZeDsOSezB1J}VQZx4 z*2r~0`q)AS36w7lkQ(HP2ine`pzFIgSvNqpCID>XFW>@Eq9@j!1d)pg%{fImiHzQ? zGt?M=X+)L65hv|$eP!9^2W4U@JjrI{oYU<;zT?e= zdjeX+zOeHfqapV^5dD1z!5(K~4T;AvAbM8?!eErt1UpRn2%~yYTd1I0^d1TR6f||o zlaNw1?fG7=hUkzpf^+D^X&qDKl-#kpa2gQP@a*l2iveP52o!7FqTLSvctceWH$l%f zkJ7o*`I7c545fpRd!Pos{GTs=#o$A#TdwT%WGywr1zFDT@x_G~%S3|n%~=k9fFGD- z7bWQZz2_n==K;@%(~`V?93MDmBPDQ&CYph5j|Z8Yv$fg+5eon*1RTT{h--;q z@U@3Mst#5rjd}cCOt}PDck!Q`8)O9;N(?o=a-%uQ8|sGTA@}-xbsVk5x`@hpCth1U zO|E9UL1;a)A{(&W=2--~kwGV-mrYdcuI1ApU=hdU=-yr1)gGqIH9l>N{GP!+++t?4 zBhiN6=V{EV$1O4-JXoC;ROH#Crs*(`Ta+x9iW3ma_qwwq8)P{GR)EPr6wX705#~h> zXmg#MiAA5N7E#~M^T$cBo2-JP{irV#h7wUzh~>TyvpL6KQF_f zQ}-cIuNdY;LAIg%Bpvh=y%L$&Q%VC$;JF;}+m=u~dozjJAh#E)-C$?w7OVl~K%iih z+24_-o!fsA-3qT1mnX5OTlYJ26Zb*z(d)^i54$)OkPlddW%p>a1L# z`(S$OxA_?iBAOwOeEv51C5aY?b4qQ9cMf_sk?n28 z2@GzT?PALYR*vlHUc~p9)XGWOT~uG^YUS`wXLiVd4F~bfLn@kC-4zTkWqx@7fP!;O z>x9&W`o$~+mV?hj-w-@RDEscy%@*b=fy1L=w`A}tbWQ3onjev$wwRud&~Th+@G5gn z>c84CM(ENk+6C+S8%YKK*7gm^tYAqn>4Im|ot)##3%@8Vck}EW`}AhamCg5eBHWE6 z@IWNqPB9d`q3N&{yGZ!vRRUIg;eSX^cWnkV=mi(yl1VQFi;#535Izf8H*ID}22HP57S{>Ej8m3F@Uk;4Q$u zWU00$_5n=3A|;Y($ag_Zz`*uZD~=-_-MzGs_l8<)-D8wu!l+iBjn#@o5|5FZ{Sn8; zkyfH?ARd8p9iAfB6D^vJ*rbd1N}YmS5`xjjI}0ZJpjp=b`~2Iq#4ks&EUO^p zisn}`qi#YKSEoL(*i&+B$Q$?Qzady$I>7z5UsueH-W`XuVH80Yhbb!-6EV=(s!%oZG z20kpAdkTRD9C@yZn=<|C_VgQ`Xj%m(V&D7svE;SSex5!z5t%!-Ct4;a+30Rn*+1>V zh@+^`lVUk1V+G;Nc{|Ky*$QKGVQ}tQmJhBR4N!0PiX0Io1m)0_3uWa@Uyi;|HXtr% znsPkq?$w$eod{Hp%|T2Nz$HqA4yY3L!r-UXg=jqEha0kn+AM%UQ?>4a^@Zc%9gB{t zH*gaYmt{$`P4Gf3?!2V6-HkoV4_GVPU0;s4*Pba&6Td{fM>+({OYvTJz6oN(Kj)ak zIq|j=VoAdK-#2pn*W>kcXrRfqqe>xLEA1v#i-tcGB0mngO3xayDfOP{Ng~*?SGO-y z%MtV;t`MiX6jgzvFo71n%4Z|fh($t)!Yhl5^k>BBFfq|e-R8ttwDVtC#A{?3nOPVb z?`n|*2M-b_blNOHO^W;6em-sIeIm1fdq_Oowf{I+5p5EUpTS0g%-1b%qi2)D+$oYxFhYKkv$_y_ z_JmV9A$HR`-e+3_DE-kb20xa%2Xkv#<)eRm`W*~h4ro4YK&K}OdXmsVXmWwBQ)jjV zu}4)b%81$g?dV;v!B+(Lrm*TmG!2AI2Y-m=ySmlulF64n&J*E?+;&fSM74m{{#R=^ z8hTjs>fOHmF-=o89LRfIXg1by2FPi=?~r6-r!$!*gX5C}FZn=mWmL*qg0HugE{J?9 zYef*>G)U2Gv_7?Woc(Fs(nR$W z?KfST()rVG^w1gEUwo;`Lm9U+-UG(*>1p`W#QT=TH;Z7n_)Af0%7ADLn?=$AJQW(2 zGJnw|YP9%)^zoC&gqeo7ARt zKc)ZlCV^4OzoA58B>UqRJAJ_jxjn|1Of1!lwmlVC879a-jzddDor4tRo&wJGj!A~N znA4}XUjf-T;5S3&60jW02?>Nio`d2z5PR&BrMchIY`LJ`=z7ZH6wia>#fq4^`~=y|iD* z604y%5rhnpZSRQ_r-X(c9zGn_?Au zV6l}rZEio7ICsUbos+Czux7=Ml?xNg?)c?|sl*y-IeS>YFH7iDxBw6*4y=Xlpw$_4hYnpOxO@nuXy?pq z8{;eDd+A;j+tJz~5NPZxvKUGw(69?H*~;_tf<1uXWg!Ze^={bd!KrqOu{A)640@Qw zCt7Bx*8sR4ZptE8*<-E0ySR zTIu5;Yn3_Ze<}A&SME7|uU5X>jsc}wHEPST&m`MODg)+sn-WT3dFOcxn#L#Aw&-7e z37JGIFUH)6>uQgw3d;|CcDM@tWCbFS^;No;A#1cQhF*k8Tgx`;59os2& zdwIdIs6ZWK#r~7qUc95dp8JAhh2)sHfJJ7KpNL9(NGshC{C)g#7++Y$q%@=6e@>bC z6K?*=K*r?+8T-AOrji2CHq}Pwn9+h6Yhe`;vQ5HlS zJP#?ntAD#q771*?(Ey9>G4UT?tNy!bXZTikKh8;SFGci6GbDZPeA5A$2k4&Qj3Gq+>Ac-7`Cqu- za-2dJuk+C+r}#31uy`qsi0f3h9DImX8BmuIaRHc9f2$asiNAW>ae#?WbqyN9G(xU`6eJU?&ptzXW@?voqtMu-+k}H z@%krsxWE$qs#VU0GqJxcgaFCkY45{#`lmxyl)(|u-Ll+pmg4SksOCBL3Vm2YEG~5! z%9uZ}TU@fBH-xomNGG7Tg%7GD_j>To`EngQu|XirllGlO2?mGtpk$Fnm9yKvHWu2q zBZtsW0ip9kb6+KWrGDKF(6+FaPB|JuL#6HNrM{jEuO1+Dn6;9_v>dj>b^4ZDR|HI~ zbC~Uq$8*eJ%+GQ$V2>vFoyrFTFqDvmB|dDLDzTd28|&KR1pqfniyOF zR9N{H`@|_8w?zWM7bs{z+ylWp@wlmTU`mDqOQs$XzhJ@=`FEQ932_sOC;!QTLrGdQdpuU>6(-m>q16x1-O%MQrA(TaN|0KcATuIQ`YAvzcQx#U%GnhDe3 zn2PVrmV62TU}JU1S%gjDoLBfJ76#F|30_!rmRJr1Q!QRn*GlV*l@`G6S}Q@GkUh}dTa%_)73 zu1X1;ZHkd`npeEw+3c2qVYqc8D`%sDQ67se%WgL!{w&I{PNd_v=GL8*E*U3p)e;|l zH9O%a3WwxD*Mf}%aax_tDPxw%}(raIJvSC%g=*n5H7Q>3( zuYCG2KjBoer&mCYf_il`gDAx{ma0D;)9F5EuIc5gyFr_8y|K~j#2-=NJ@jgWX@r_4>Op+!1M5^GW{KN#BWB@maB?NhGy)|{9by(3Tw#FBf|%uKcD``bBzMlR?hsDI zH5Pk59vhMe`TONNo?iQE6b!4l(@|854kYgv_eXM)#(+{7R$80AfchnOgDUhbd2|91zhPZvx9G?35YHsq5mV(c4 zH~jnIJ{Z%`wSj%YqO}1scJvhD&4^YK(P{E#2>kIick8tf&YQH8vsqMw)GV_5#?WM_ z+HN_n@C?0iH=&e6N1Yd+`NyoF{RBiY5 z$AwCIf}T%7a*%|mhl*JYDMEKvv*eZebAtnj8*eMCEd$s*z(@h|2!(_AU^ArTqoq2G zf<}78-@BywztHA1K!{N5yeTh#z(F|?ymZn9l*3$!E0Us4^7#;VK(7_z(e~7>Fl!#y z2-cRDnNu?Xvj62PuQ-5xDh4V_aCHTb-P~F;Kj|-}OZsXqUj%EoZ9sL#FIC}Vj+*{y z*=fqjf#F!g1%xJ=)4MiX#Q1+wiU<=7ibnZA0U#BhHwFiyyLGcInK@q;D=fsHayTHI z-V&PHL2plgbjHtrIW!Li01>mM-VN61*hn!{%!PEbsBY0CX%pK(hP~cIss^a@T>P@zc|FOQBxS#INJ`*h{*l<6bGOT-;}?Uw{}r?8!`OzC&xE4mfrj7 zc3BmDk$~8#@2r?x2#36hTL^2H{6y3jJWe;IdKLoTgLVI*eI0CXtOKoga_3}g4K2Tc znyPb*2Cs)R$UC+lP^9pDpt|cEy^oij^5|(_lF(`0aX{&S3dK{wc&Rg%gO3h0s7z6T)z2##i&w4fY2I? z-2|J@nE%IR=vfFh_f36mi}eCs%>Vgnc+nf4M8x;}M_(29@}bRQVGR#VT%$4gluP6f zsMKZeP>9z0gfHUU*J6yAl2&B@#0?w==t7PXT&|0~E?1nZJz#9IJXwn`brmMEmc4XP z&qUq5{i(9Wg6@B2EKNB3U?V9kaDbiGEtn1o-vrG?f;!zbHZ$h!a2NDVw2)*q>+hss zObAbj&@Maof;C7?iVJCbF_sLFA#vF^*J3<*;{nSvgoNxR!)@J3JZSIBqCzm!5pa$sQ1Bylp>X+?I83f{hh~;^dGW4k(@e5mM@gE)UbT=6lM}}(#3q}s zt_j8f@iMLBbz#XGiQ35T%W|RGbfO()%k396E6`_I#ChS4-0D8Mlp@~d1LWkq4Y^7C z1)z(>h^(xgyt#FdqDRt9Wcfz(;Q9$9-wQ!r;bV18#f!S>#PYwk*30QyBu;C`{JNk7 z^f~Hjh-<6?u-Mr2fg;IPW3JqyM=?;&NDS2cDOR@*8d|!zR414u3;hS$oQYmc50yc? zgDL^xt~uDxy#l`*5Xa^0wC5IY1a{sszb39j=9DT8J-cqm^G{0?%TU|}+M=qv0hB4x zqs33kpOWTvs2s>-PC+s!#)E+eyvtEm06Hf^!vAPzMw_-MIu9CJ!_c`;TT1BA7kFxv0&)_9Xv;Y?n%KVgEvSN(u+F@wfQ>lGFHJ5U^8Z8#%%`0R8<0n3kTOzXkRkw{nH{czxbh? zO$ZUjh;y_Wzk3(3Z6Y2Njf2gGd6-XU=$!LsuVus+@|tqCe@QmK77*d9ZlWU5)4gj`86biH&mi zx5Mil`UPt+^zuBuF?9?4V%Q)QuNcdEavsG|L^8n5RGUW}b-K2CQ4*1av&egz?gNWs z)+v_6E#g!*R>UG-_FLE>j`?LXXKuKljO?Z4g1ms&Zk9@y3}%&C4F7n_G0*b#)l+wT zZNvUZ*4Q3CM&ER^rD~g#I={@BJL>Y)je_dQ_64Plo4^Na4y5yvLk^41!u!CqL%x=7 z|NVTi6kezEqdDqQ?A8TK&Tn)010hHkIj!wdH{OAIZHwClcXmAc9})WN+bhhrEb-qR z2s-{Vs_vd6uq%NDGjm~PS_XlN0fHtbJVrSYr%}^4IVV$8F7>zal?53~bGzQ>4hP$t zp$5<0PC_(Z*9I7KZ|9WBi%yb&N3xA?fZD$f6-;DrI54$3LgsbsDRJS-WnxI*3FAe{ zG|;OX3H*ZI(~cr^k`@OVy}tGysg+^-g`SB+;P~_{`tMTLbSKwzciq_-o?mjSopY;) zKEi;In9`%;Rfuq*uUeVwg_2W_Z{{q#_Vx>b=U}Zx@O*GBUk;-|J40#jZ&5Z6rP138 zP&+Wbam~3qDn_8mVWbUE2;)8}^ark-I}Kr(mWmPf#|Q-)DFL`ej691as285oXH)Uc z(=i6I{-DN-zIOU}a!}sG{A;I@eQg7kk~KPnkLhc=*i{Y_<11SK;leP784&`rx`$e8S`6z<Yo-c#o^Z8HckrO|g9$ckHY+hN7{$+7elIm|I2D>)p=~%AF?Kzd^mv z!Ddhv{Uy)0MKE0uA-DN85HkXXayH71)Pjy^%;=(wEi-5o3|84?#7fw0*vwtvEf{LW z<JgAJ8;VUSQ6hCiol@O&bkC2Wg?*o1mS^kja3r zWf+)(4ipxpp|NoCq|XMsg(}}oqi{LN=M6c1{g&CE^TTuwo$HCvW)W*m)&>6k$cO3( zT3T$Q-{X-{9dhz|K{~?a5+jl>+4%K%L?>yPoiOD6P-|v#S=3JH0A=4yK8LlxkI7z+ zR-~b)GpURSA1J^#D!$Mqh#HW@-VdX2=w&JZiO;-3vVqB^#HW0hr_|~oK=1e4ZNtIG5M-RU#9VWonpQ8>L}({NX-snvw>T^~wRoNw@kq_vWB9*|2` zex?&m#M(bjKiYSX2;ans@-%UNSbVGGmi$|(Pg|qjK7R%K{Zb3Xg*qP2RZ>(l=$*$S zbnH!P8H>SW#^WHw*eF&ufAm&-PH zg3T|3&UiD=M&Cq4Fx?LbTLJz9F8dYYVG-j(sy#LA%|K$0zZE>4Z5XRo`lyi&Iz9sK zlNlWey7<0I%F+J2Vb&tQ7%C3fsj0k}bD4EiF^i02W6+g zI{0e>kUhP9dkpaCH>=F@BGGinN9H_>%fZAL&wgXM&9%6`h2L}YZIs+yF67gRa-QrI z@N7q?AP4Q27;_dTTu$~B(C1$`%KYq&?Oq!PDYUd});=}K-_&7DiUUezz6ftvu?;QP z^~VZG+nUl1-d^No4KvkQ;`e-B+11Mrd>5ZkRc7y zpL^tGf2OAJ3_PR0IKBBKw~-Sa&c zCqUa~M|{6)eN1?58$T)5wXG+!gh?@X--D4PHzvJb*^NmkAa(TNj$@j@h|dlfVYg8{ zR|>nWIU?#krN)S~6x=vhp^iy=56YZF=*d9n=p>c9OjCqzy+JisBNGegAXq8Dj- zj0NRuR5vlC)(=bVHY9SOcaXmbq5BiFQy44Fw{3qTN$fNS+zXQO(|1ZBbg0iDN^=tk zRse_TY`K@yv4}I*Hq=c7lm||ug%P@RB(pUHhsz<@89diUmx?8{1DF;mB!UQ0wy1_b zP2MAs;J_0KDi%1**P$zytu_~(MV5_qQOEU|CY%)7VlqZWUTTge%M?kiC##n@KFicw zv1YsB?-OPS5U;GsxW1T>L*bDXPtZ{qMhdxvfRy!4C@;yq6A|l!745^KRUp>>%d4V+ zQqVvKtG<#h=VkV?@J%f^V0|s3?iOx>!8D`cXvUn)B-MQlih)4d_YykKCLVn33%yKD z^3QC9AkyLFyO89c$w+#KarD^FY~)1w<)rPrhLN2QAs<9HaqoU8U)MTlnN;!zsk1fk zDm{u$!W;2(K7X?zmm{Io0797zwHAcdDma7)9l&+;p|y=qfBtFZ{C;_LcEpN0lMIHv zbzPbHF+VbocEm!^LIpx_oYq0x98fC^W5ILcksGj(l|L$wEG!BahARedd&nI;Lra5j zz)G#&f#>5nglMhyA|eQ0BTZ$>0YM_BoXV6%^&Co|WA;=;aAWHK8$8FdM@6^@Tw&Tw z5N;m_J^esecDBB+Ue$vif*9jpzV+h>7O8CuRnPMqmf8bo?omXen~`p5_Wz@*gZTv+ zwir(Er&2gRQXV!@0`VHv8wk-0b#0A9mYUgg5a=Kdnulh?$;{YstiW>kJAgCD8ZMcuHn%=c<-q6>Y$tBLCveFga3R6yR0eJYmDcGflh#Fz*Xfr_*Jsk! zp}0Galm=TmVx<8dU?r0}ALD^H2+IwLUqqijmi#w8i;!=}*Gc4q6nWq6JFG1H$4{p1 zo`c~)bQ+2j=(_cpf;<(6)_=gNiV)o>J23yDx6QgCVt9%uI>#2I{^0d4GF2AOVq$O$_2& zs_kpQKo27{>inn`t8Y_X*HSI4$`{F^@u{1^#u&rKj`7w_;k1PD?2F$^wvND*f*iD> zkr%WP7RwVt#OFW8WMF5$3^QMy5*GPj9icamsAlvm8S1 z_6?3w)uo^u-z&bhTshw^|Bd1a488-WL%KfShACD4n+E;)f}Yopn*9lZDduc^AF$V~ zc!Et>MB+d*!ZKVjLeR8%6K)di$xa`;Qu62RnhvCO0C$%9LV42iN$ct-*O6WG)%MVb zciYLT0Sva^!cx?|!mIa$QyPCoh@i>p*M}y={eM98BRBUfXM*yVBl)S0>w9Cb3PwcG zVN(N(dbVH4+Z?EM5NujQ>3ZRQK?u=LN1%3udUr;t7uZiOhMg`LT013D+}S^2ri3mS zVB>3P`Kx?`S=G6g2>uRA9Tw-rdTv9+pDS`Yv6lF>VOJCu2Xe{f9=D03Q$@Dp^Ih~R zSVAfnq<6W^n(fAz@^BNGMMF`MEt#GLQ({!w8hUv${(QnM4KoVR^sFoWPMS>1Bg&2x66NS;!ypq#6maRoJzKwltm*=WEET&O6rr^!S!NPokK9GW0U zzUN;4LEJ6H4|sCVqnaSm0js2h=b9#J!l7Pb02Elqz?6^YkVi@p;D*QQ#H_W7`ynjy zb;?PGY54fs&*bKXtB@P8C}AZb#@|hwLK%lH;oQQl*Knt(jWVFoLmvbmIzC)@#GwAa z4$X4!u2mL}7wuB8U33%e7~zEQ@yiAJhyyYNSzohL72|1f0kU#U+V9Hu#1g56_?U1@ zu@E6>)I@JKEfyGUQTva}i~!F9&BfV@nlI73dV!cG9w`o)MuXtspm!WbE^tQxAXv-i z!+|znm1LBWH>)BxXe^T5t5Q{E7!YT2>^flk9g#2bQpAUG{iJZ)G~4kEx^I-DVdDpt zX17j(ur6MAE3|6+@Naz_zf2_pm>ti;`d^_@ssYu_4?P* zeJX#^=e~^t-}V@PoM$*E85^d|Z4p;Vv5I&|%Apq8DfR22M&iJd(Kw48X;*_=`zS!a zC9vHRTx~*=E?K+@)hYSF6X!#g2?+ETh4Z=)t;#^JJ#&N3|I=+TZU*AC&7283kZufQ zEW?VR;J^;Z(rJ^Rmff}eUU=^EG0h(P?~dd5dpEM@HadG%Vey7$8H!tL)!*E0wn?1w zM)YyAf2^9T<;9ONVb|AoJys=iFo7~Ld?%x_g(K0Hk=D(P5BjvA!ILBnS!$Ch=S3w? zqYHaahGBIx_it+DzY)i!w*r?sMEZhD-Ho0FH0;-!*F`{I8_<42lK-8w(!Rfzv1UT> zJKPt{6ch~>zHHgorhlaKF0$YMcJUr8i(m+Xs0p|aj7odIaqpv6!&dz?|HZF2Z~Pt{ z5bUSkGfB_PzlVCR#_EKs^Q1|%aDE&sD)Ns)sTz*CTu>wrVX($ZBi3ih9zVFK<*rVs z9+tHS5+C%%-fA;QlfHwFSVlI6TD2N>x+6%R=QphI#{7ugsZu|@u^){ZD<)^t_R+;B zT7g0IQts)cti`eCj6;|CC_${(a_9$|*_f9P?D*I??Om?JSqF4zW62ol!B!2d6!8Qd ziZG%G5$;h%j=HDF-|HqkvEOC@)uoWs%rF8CWt9}=v*%P3gKyku%P>ZuW3q(p6gM07 zBp#3EVW%UEu@GVIvZqcJ7XPF~!si6+2O+X5F3i%^1UpVTMAHx}wTTHG5 z5t8K1D)3cce(T<$C_^KIm}))00|N1Q9@bu~f}d;lj{q?arP1;B&$VL=!XFKvaC#NJ zAJbt=2G@g$6SsthiruD26n#K8SEQ45n#n*XNl(ncPWxfUvXr{(vH?>iYFbChsL4K;cM<0a9Oq8P8R0LWGzs; z$Zis=^Yqd|nhc%eu|(xI)&v;YaAWVq1Kb$B_u}ZC+}Mj}=Dl8tkx^=EF>^XFx}1eh z&gokA<1N-!=vxX~wrDj^w`T4Gv-?Ru?NciW>-5e@JIezWJ;}f41O&&b_jJ~q`2Oot z)grIg@y+*@X}CZ09Cb-!qBHu*vD^QbYtt2IkeTA8{zi!ff0N{`?IzlKd1wuVoSYD5 ztYwk2iLLEmBxgGC19r3MU?e-dNpEqVky)K1dwfiT-O0)}bGA!$z|u+3Z0BJ_d>tsedItTIVD6E-MK!yR>*}c=3nKHl=yvA$jh)2`W_m~2D70I7*fgioUZa+3 zo0EDWUZflC3x)nXiiG`r;;P%A(SR=646U`sVWz6EO=SbjBHkcUkZHFX#OKx;tI1W5 z=5?s-&@)5LKDgp15LYSv+IYu|?PqK9BSfP8JdbK`qPo}Th5<}r#D^~PjiSLbdQjTK zFzs4fpseqxe-VClAFEGPzi$Hf1oQd1#0ph|>rUbniHq7kwz&upyA1H<# zamF=`@_Ed`UE3El#H&l1I46dfq2>0*;N@cXsz9@M_k;pn#EDBHu=Z9y0jIVb1Jwnf zrUOkA++Q^fkF8WJ2cCwTQM0j+Q34^c@^-rzV;v-d<}F%>tNv`tpOy`t0lh4S5jiuQ zO0fHdfn5a~64`(J`KAl7XU5Ztoz*Ei_kI6xHTp&xN|y6`2mwGxg|PACor{SxNsaE- z`$6`z+n3e%^`+Y%S$8WdqpMy1*y-a;uwToej-RmoDiAaBYp4QhW2c-BXht=4`Le61 z3dPS(F1Vt^i=Xg2SedmVKZ?{u;Q#_rgxkcTKNO$!4~LNp0QziR^~V6Z1UeT7=(5oH z>Nx8MKj=@v{s3Sb+L>Esq-j+h9s_C6K?_M9ekFlCx|RM}%auQr-GlfD<}N5LAI&UGJw@WY9GkQH&^} zfyI6FeEjx2w0IF?7<~Fd zvvK0^+2=_Y;?KXr%ObBa+gXcT&nnx~N-dVb?M*v z+ea$*RexSin*ajuMuLxskzz(Ddeaj>-P>s4U7IjuN+6zdn`$<1fX!vK%EIHb1({JC zbO%hI{na`4gO-Vs^~w1;bFRA#9&Yv|oeRa{IVs7tZ^w_{_Bfx>u38TD5kw73?f5mNwM{bDV61gdT_3!#>v2oc~9|J!E{`?vOgzV$lddK;m zqk70sDRO9ak*W0CxxI;Xo5jpQImtg4pZdAx+jDU$O}qWdcX z+>LE~Uc9z_QD~c2I?o_}3zVTU+=&|`b9oDnaOog?rf39!xtuzvRJg)|vzD-s75$UD zKYHmPW3B=bd(;o4=s+=HgsrXB`Q6KH0RxwUyNqi4~Zku_b7r z1m2E@n!U5i0i}dQMPWt>08+G8Br;`j9!>*C9EWlIP%K+P*BAA-)!X4rn+*Hzn%aiCH=h z(AbYYG)8e;-oTWrb9euBjkF2s?KO4M+x6B-JM*n=WG1|%0wT=e4T3b)O=`pbST(BY zLMNrm*sp^#F5l65vMK5z(k5K>>CP=Ou(n{u`|ujn+*VK;Z#uYT*_B37AC^Yv^1C5Y zgOTTMZTesdetOSGi#^`;(YiAF?~K{i%{*XIG~0Mbw{9dx9)O+)zTZWj>z1Ka!2%Bzlu7}^U2_4bvfUHSA937i7{xqUe+%Kj(3|?Tn+S=89 z3g&CpfgrVSYe-{)!R(@49f!d^Ca;nGc({K4b3+e7rqXJh?p6`xtlF1JF!@Z(#q_FIeMFhliXe;Avnc z;x~F+J{P&p`DL|>b*X|HeZUFnRv$cDTsxFv?j3 zCM@Kgi+Pm`1MF}v7T@>?#OP=aTZSs%h1_q$pE#{~g4+4C_DCUlj$At4eF9Xb{DId|dHhzXPRW3k>W@`ygIE$3TwaA+e! z>7KulAT0t@*kD48E1NMtz$=5+G5EX&z;RCgSq~yA+rHrBI`1neo1a`X+22NallxMA!ZQRDNzzZ;^2k@187sw3Ga(8`aDjS< zirk6XVIbp(TzILf!kwZhM3-Mlv0uRT2s?7fi?F$ha&BJszS$XFl(wktx`?m-@P?iSf5^0bx@7`k|^ zJC&%65a(x@6jfvSl4lhgL^iL8ey*6b0HdtUYkZ5iAhKFFK6Ka!5WK#WY1tj3dA&1n zS7quYgX@g=oP4)$Kd@9(m?`dIj0iw3FmU;dlw3L=xI=x%=yU9~1l&3FNn+f&kP_j! z5$OZSgsFuUI?~ttUd;GPvhF<|^vgNB(aTacJ=)#Uk;gQDMUV(T*eV<<-@Ae&Q-aI} zQ94$8416Uh9P4og;N12)vb+V|YbdnyyB|8gK&S(a36YslAN5IS(4ro1#m?Q_|0u_O z_k|MY#B2%??}Bzd+BFoldMkhuN{%MQ1})YY7#=s+7lm%twM{>gG$llxvcbhFeWeFw zwc&h3t%O+_q3uvB!EN;Ef@k>^u)xdd?H0OucsoH%`UAIH)Q#*|z_B}U!$ zqza(^a6o+_IG3a#NG~ee?_Y10TN)7lPJKdQ-`BV|=*Q4du^55!oV2Wu-*cy{P&^R> zs(9b^BN7K$A)&r~s$FlgIDtRXHqDy1J4$$ZGIEob;@WZW1C57mnC08$qZHqh;FDSGNM(3U@ z*e8t@C|hW84&oLvxFE>)58W3B4q6%5_fs@*d&!6i18+R86_-HK0@{4&uKD%@Ijp{E zEET%&ryr9nOoinhEp!Trjw0dI9Zv+P-tDUo<`i21G9+RF*-6o(KGd*RMsI7Lq#iy7 ze&p6>1&tJzj~$!q|7V%15V&71L+5Ex81*g(g`LSSmEjLY%hi7D`T{@FHF|$ z^f_?HvzNX9quKUhusG_juBsnTYQOaK>2a0h;t5z1(V8XBrt@_6JI}VHTeL9l)%&hI z6sHH5i#)^z6iALh=cDeDGiJ@mKMNAV zb#}Kc6M;+2AuiSkxeMg-=K- z$7M0|kJe|fw@O8K9G236-*K#BHFGdPk4{=(!#W#R${`}TN<9XY*f8WeD*BP2B#5zL zr;X*m%;tL2IV_4pB@)c-2cXKpe`y8*?C3-#9$qlX(Kddv2~C#vQ{R90KQZSF$A9Ng zRC{r|YrwWL|A$QB$rDO4dzL^?VFx6WBNizPU@_Dr+-YOsoWb(R&(e=At{)5|!zp0) zg=xRvgyi$sMJC9^)^V_f%?Bxy1|{bOGa?-Yj_>yG^nNF@3+6?g?_j7xJlMV%oRf^} zryXYKY-shgB?7HVvPShQZUKD0N*qEdxM+|o6bHkJDvEPqD5TJ-&Gi(uS!@i2LFJ@V zh_)rwaXZR8>Iz(67P(^EK#%)`%&xAXGhPg35S`?!wnJ8i{9>PqP#Z~C->Wg(O*{e|9+b$O7%=U|oOV^e1c zK)hgn;YS+axR1<3pCyt%0EWA0_lJe!oAhBxP5Yif)9a-3W!s76VOKav=ly zD86n{vYGaht!_&KPTcknaJ0HVL)ev+EK_pBW-E{d4rfQb#CItd_M-<~yZR*T!n#M% zWhfSzSvu6Y=)$h=Qb1QKxpx{Ew)YJtx0F38uKwe@G}>dnGP*#K>T)+fJf2o#LDY#^ zfoVuIkW)HNa-2m?mvC78GKjuFJH7VXa-6wPzIAK;_HTg5mxlgz-|)MWF6#5248C#Q zar^(}Y5zzwLj3R}B#LN5CKQXEKHQIXBuUyd1cj<(is`IxsN_e=zZU&ln>%Nip&F1B zoyF=#{I!Dkt&qeQxNxRc5nGKSsYKIB%v=LWCAVswG|L*4Mgv_}UaHx=QK^tc-LgA? zx)fU80ND#b^xz7ltNd~TiZp)<7+RN^otWCz$~?x(Ji1I^-;`gJna7OB^HmnlwA>i7 zd1KJIZ1k4A)GV)&0G*r-cz`}0xdUPn2&)p~n8QqBQ&2({U@kK#Wn$??)*XX!qB!`uFRd8K#8T_!@G z4QV-Y>729$4j;6MrSOQQoWxY5@gxElH28u1{MG!VSM&D{wQ?K;=fq3zR>ZSCQ<6(n zz-&ps%$$1`qydEK)P5CawBo&y&Rp>4LLWJl->A?)O^!JvJ6pThg++PMvUC(*K}5)C zbjG9$`BuiEi)i#rTr&b4kE;E<&8OOP>D{$~&lN{9;QB2NB?-P%rMP1V7ROIJ+R0Is ztV&*>Bl5Gh8nQ0TcX7JJau3Id!>)tTxSQ|SwwoO;xC z?MZaQ2TjI|b(cGi%NRI;W!JHS!Z){r8rFNOTI?{r=s`JyFWRP?A2UFGe+sqS0PBU= z+QG6TizZUMz$FUxSWKx2Is=j-=oVy8&S+$d?3$ur$|IUr&ODAj=IA63sxpU?k75Ll zVjyV-Q;d+n5Kgsgk3UL?k^Y*s0pHcvI$F_U91^IJOj}n}WxEtbKmKBnjtmG?FGiU# z4>N@cZqWf8`2o9?AYu%Q<^{x~Tl3);N7zy<_t^bzY30{Aq5=1cr&Ae`T`z;qgY*H# zr=Pv}9fe?S;HXGP7w6>#I6@N}HSQQte@?q*$Kkbk-azPd-$T{8=}hqfKup^6e^QYb zo8gB(-Qb7=>mV#6!=sQ`Z)D(DfZP}Y2HhqFQSRp#VPxRU`Hy&*#uHHTAe7gg3k*7x zXXtoMTIj)A)-||)LZ3=t^C7NxoR>tuzDu1wX9+5~J;Qo^;$0W7K)kw<=%?V~L;AGXc0%0}EtN^28;6vg6Ei>J)aQ5F zj3nCM@spai`%EgZvJ)|_UG}1O=@TEHHx0qYE+l@D{`KUiGMUZ%mr%@9k#frI&AvGU zkqah`bQ--Ogs5YBaGRGEUNqgRH8*v>oc0Q-x2?MSm0)u^ypg(YRm|&<_E!<=fIgZ; zdD5OBcpJMxb}8lKBB1Gd)~(dLcz2PBK_q_qIy&Py+uNuPM$Ev=?u0^xsn6)>qNVmT-O(W~SA@r6m>vfN2 z?kdRik9>E<+;PAcAavk#0@91zHJROs!CbxTN9Jrhtx!UOT2na^do8ISz1)Lf>RToph7@hwTO35D*meml-dhepH%jL5iV9CLQ!FtF&dbh$zn-8_V` z=$ObzCBcor_fLIFq3>(jzh+FOKABpe&>Lz~k=COIwQDF!fW!siQ)QDA$;^em@b>JL zq-`*#Y*de_MP2Kr%@_)kkxaCe`B4wcH9?);p}4fNX}iWq z7X_eAFCM;`h!RzXVef0>N^}Xis3cc%9+zlema6v% zthCS@(V`G<1H`F7*l7EVlQMUo1Cn$0N))LZn>*_9xwG8#LZC^QrE|5S8|u)PoAMbx z7bi%O=R!q@D#_U^4DjtB+o6jkyl-nXuP8hW0Rbtk8!Xkju_3U&2s4m9#p z6={MA1w#$Lp;f&zmuXynng=?aqYhNno%9FiQx^!LaS<_h5{=8EB$dpHvfKGm`WK9=et=3*i)b<>-4Vn$Ks0NvQ?tr z^9?J|$AYcc(09P396fsBCt9+9t%5~J?7OIV$s)O5a$G|c4+C@0Fuokut_0&p&72UQ zw3QMmHy2GF^vmxrDf7bLJ2GHg$uQPRBE}>2)62}GPi!{;Kp)Y@c0(so8HIlq#qFYD zV~J}5=PxBoAyKlw9-2fr@B`@9h5MhXTjWV|87^JxKF-fz z5s(@>X|)^w1MY4RWCy0sR?=fasjLv(O=Q|~545m7|J*CTBx%!-F6k-YwLzeDADlmb z!u0E*$9>~Ii|GKGzw?l>!oz`6Vsd$pEl&vu+22EllJNA zCjDhsMV?)ntu+wgIBHNOVWsOf3d_*mmsp|BIt&ui3?awQGX|cSUJ*eeP$k!^qoV2i zDK(0E0Lr!;feMb>ea8?91{etJzS(4{@VALC2MT(5c&kXsC%67FO2gUfd;Qvh)BzDq zh=I^ioA9amI&7~%=qxGLc!aJ3S;8{)m}Oo1g&%EK{GP0-JF}D{bOziBolZn9l?!5_ zX#}bDypDJy=l`3jO4C^cjdKP|D9XZ40FX|xd%Osw^CVn_c?N07O}PN?O+(lzNVeS+ z9F=I{n}SE$N%kBTOzen2mb6rqyg*O&9@Rprs2nC@?HzI8;GxpUQ|;>5wwk)`NZ&79 zas%`9Z^SJ`&YHHM_HA+sNR64cd;v}esxKLKgF@`V#VXz3eURW{Uf(1)BLoKPLva7% ziaAY}d4R8^m4Qq8gJ%@Gi*utrz@u zF;ECMnU_(}p@SEz52wqwJ3)!gJNFX^lBU`xQw5R<#etC1lDQDh;yAcNDO>uMh$~TJ zDWFlsf|oD_`I3V+j<)}(|MU5UUf(l`6~<@39g13Z8W= zb}Sc1X$O3G$Y7bRSb_#Wu(5mnY8)_$c&kyg+i)$Jq#YM0)N0yRy(2=Gc~MY!e6i34 zb_@^H$RQqCwh~=m_=mpxFiEk>g-OqW%wq&wT+-G8en7J;jKgeKCTY4M!}ZHwBzY$Y zUF4Q0MJO9Br7<6g687T>s6~VoOqMdQkDb_I2FVW^ZNI(uox?JQp|HYBC!&CQ6hSLc zWEf_OKzxE9J3KVclf&YodI~XeClH;tyhV4zT6zX!37s!vbZ}sr?1=*gA!GbTqXL4= zQ6fDjHO{=EMFyPH;pHKcgdpt1z+pr91Q-%;y+cV~IK>89w_HfSpr$kOtIZ{8n- zt_x1(cN}&z8TvNEc|Ba97m>J)!cK)QJD|kCq9LFe#v|@v+Rukz+o;kYT45b82It>V z%&t@s-hF)8sX4D(7$3W4{7>d>v;&1~1u>gEaDqkW@LuG(sAob|saNE(72> zq8@l#eg189+0rrnf_hE;-32EjbR#o4~PC+nrh#;;wg#bg~0X6)-CTJuc}L^ zs*9^4oj7O{c=Z3m9nXSsCEO!5*uvAq0fU9|#C~WA8gL%A7s0)WlSb)R|vkfo04_!K@0teWT|+)Jh9tixbIQ0!BuIWU1{Un^<*54LnNfgsZeihhn6 zI*KhD-I$)wqxLKF5D$t6l`IPihS5*{tx1nlKtf!bCj}zx{+ER# z^#Boki@GimhK%ry7M=3FKq;K89<(49tx=KxlTiPTVp~`?3{kL+BRKax&5XNIjE>)S zf3S>;DQbZfXR%(_wDf{EQB-Q$BBt0E9(WA^^%?$IuIML- z1YpYR->JZyt3Ht1{)D|vq=1651cyFwo!Ew5{MJ%pit|%xP>v46EtG@WnMV_9r-JdtdD9n1&W@raDLA1KZWFtw)>C z_Zo)0Lz1}rmxMxpeRIs!m{TYrUDdvAKQt24Ml;Q$zS{=lJi8cvma?-kuD(={6ME`W z-WMyAz?sWlDAIm03O#H1Pz2~_wmL_<4#FCt1@jX~w0T{Kl+;y>0C-6da#2R%>7YDG z(F+XKEJ+0@2xrQr3ukVoTxAkAY2gdh>1f*kG=yyd9(|bJ3YTgO%6x`0Ut&QfeN5lM zo*%w)xEq1An4t;(O6B!AqGU-)+zt5DGum-tslD&il54$q{(#Vi=8o~#Lr-iQ{HW3SL(Z51q&0ZJ244~N!A>QID4)gkUl7I5Zi*n1-Tno_3~}naVO%>QH@fU9j8BU zvniOps1Q0&SXJ`OyI54oY-(h(!ZK%2e2G3~C>BNe?S=g}zZ4f99GkCs25s($nf+J3 zXO7Zts#|qqHSJh_R#n8M3zoQ&)^eod+@PSXIK<>UbEb~Gb+#M0{SH46Izo1lDt4$BIAjj-o4 zPV)b_3Y7)R-oTreOy@6P(OK><%ldDo=*QiCcohs1a~18@^|9zk0(rk)nK*m?Z2K!n z$;08D?$(S#Ke5elP7`_~u-gHT{Jp@G1h^x>r{U2|eQ8za?~m#K{PpTI7&-v#%MT=OnI>Mj1W&0ls%UheXIUw`~6$tA|Bw6vUjDpP0pE&xbby1{8oQ? z&~k_xzIGxNqoAnZ*}~O|Qdbk3=8_ye8FS=TD64d?4kasp#1sooB~H^HzWJf41Ke$;szcsA0WKo*~$0sV%Z zT$+B%p4Z{Q!$`=a2=|-14(~C0gT<9v!(wb z9}>3*aE_V_tZ4VCM&Daln|0zAY+suC_q}j{{FKpk0T%!?AzhI*;RAdlT4f%ycjn6r zpRoNm#w*bc-{s=j z$q#99VZb4L4Ag@SwOOPYiQ);VXc(9ZhA~{wi!qeA_u8kCoJOs}YAl;D`rtEknNI2VK#LZgrNc>;BcQVK^r!Um6u{t;mlTR*tL7 z+l7ADU``{5<<+X8Z8hF^20&lIw*w2fEVSp9R-+R|3=ye^Ya%bJc~=un7?(%(hOvz- zK!-mX(rI!P53{N+Z2)Ymeu4PA!9)7pI< zSJT>Md5D8hL&@9;`LjK%MH6KmjQYm5+iXn?6Cq`5dkA|ks=EMZ*XFGf6_o+8Qh^tJoU9}fzUBi5vqF2u(LFC4W?G>GG{OOkh^ zl`c*y6JNGPzB1+{D*UkI8AY z@yXUT=`hc^D6Qn~cPJ7S3(*DoT#zCHql>yi1EV7^g>J^Ab8hagm<}7DsH0Bm z3JC@2+x*jx!{x!Ik)(eWnF_T5Uq7R6FCr$sA-xMnUcn%86iRYY&R$)*;A(~If^tTW zD-pKPVeGmK{`O4!sdkHlPD1#pDCt z@!+uEc98>PqlkQc+F7H5h;93q`j{hW2pJuj$)<+mHVAx=u{T4n_L1|o654?0|qAx(oiSY6A}9UXn#7l#a_0*e1=oz|-3 zPE~kNu|F?W;c{o?dY6kEraf&oInf&&$Z)@UgeF&YLrUA_01@-5eKruLv_Rg5iF#Fxk%nicZ(@rPub-`4iwcuR2sC1(P9Z~;-(9k~(aXxYn*E2fTHUT_( z_>Hakx$xhhARWCTg#HrHDu_!BfqprVo}1H`Fr+9UKX3?@Sl!6Fdz7rZ+sHjYY>(iM zst$?@H$AU>VTIy}su*UgV(_xjl(z+>8y*Eg922^*b2=UqTk+9hKq3oy#S8zO^RSKp z(kB^_9-gRrh3Sj}+FYjU6{tz~=u|t^`QwwTQ57)%frTa(e6oy+ijbItu7VGiSo841 zCmnYOMrvR1TTd*sUVfL+cGk+Ud(TY=JaAr^^!TRN)jc01-XCT0r`Rx5%cLh5EJ0qb z40|xl+Y6@V^NyRe8sHa-DlSPa7Jopix1|V_Q1M9{qp$dQ;Jj3`)gxzvdFUxrfJ$$a z%6Gwcc~ehyD4^)N>+s{v+T6zW4MDsTB3+U71FyyEwy%X7zyM*1CTqWhdMY=(Z#|W- zj3wh|e(j^tKnUb zZmDsLuhc4$6LQgGlD1%%Y9Lc$KP&UZltwzlP%o%5Td`x;?zIl4x0B35H$_ z#E+234DSySZ~*}T@D(Qj0F3*1q>tu*YP}9!(I_2K-gy8}dj5QD<9W_a2Qz^PL%58K z=Cy2$SLf*V480q{_P%FGnIx?_?P`AoqBc{xKwYGVlECxHF`kHB%+bz^fpgmJO-x0x zVdWz2j)uLil@NRuej_1eG!`g|&xoH3{+(@cMLkJ&U!c|mqJSf2{>^+-e(+=2xR0xE zHOX5Dh{(%a1nOLnxj^#9%Umi+$D$tSsDAXAI#S`N%tLmFGVUmTVq83vqYI*ROkbHZ zC)7UGqQfeA8;Et&T2-wFR6U8}Lt!0KvhP3&g5rMsX$sO?6st6O6#upX0lKuzh4qRK zrj zs<8|UAXkm0X!*hxnSRWz*J?5+V4~SN4aR5w*3|O-e&K-5~Xug#zI%v!&CP}0i=h_*flsZJ&N$+`6Y?@CD0O# z98nC1d8R}cgY@QdMrso?E2IO|H-Hrk$>Xo@0FMndSIIB{@}TbH^~@!1hktyN)=GV+ zszIObPSefvkNckW-ey>c@U^*jE<0h!Bt88eD^_*I0?%leMm|b51bTb;1Z=x-ePh<8 zHSsAsUQK%TynPrK9Ya-r8Pa{~a-y&|gd&va&zT0NcSZN#3=aHOcKV-|qk1eH)x)91 zh?}EBJif@GPcZysYzsi~;H-^XQh$G0un_ouM3Tcs&y4Q{gP0r&)QN~@qu1>3YZHF1 zTsf|^n4AXi-ffA;>%YFc?w-d~Y)O9!4cNYn$#&WP6q{aMl?~#<*(?w&g!hsQ)H0%w z5#MDOt360*BZBLcyznxJQFQE6+O2V$} zTWxaClhw$7mRtO#wu5!mP|>5l0VbSZ-~AKk3r1D(Y`Pf?%4z8k2UZju0~o|l+P{_=PsyQk ze*Kz9`SX5;5wli|h=01#*-Q1^huwRuFZXqhNu)wFl{j6 zhMBKZ)B>xFdloMXTyyTZJ|DKz6X$GV1fs}iLozJag@&fsKyTI3e7F%Yu_CTzT*8ZU zT9PN%`QmtZ8+>3yI!!%_GZnb~WflbTr97i9S~Tif7}C!Zuwe1u^#UPI1q0Z0IO*7! zrB=V&nIaKlb6N*+0TcpxP=~5k8X;F zSB6e6JBMdu!-3-V#b2nUrz@I-$ zD7`yQW=s|VWrUpAMWSx;RnaO&Q{hp%;z0Arf9*IIJE$k1kHBrcO#L5+%Z1@-nnD=v{zP&oh;9G{H_XJ${C!W*-hpK}@tGi3MB3w$JS^*Whvndr zh`56&R^amn-$2&3uo7I1^X-~(B^}WiB!7NJ{EZOj?SqT79Iw%4f;^KhqkW;n1rWHx z(y(beW`u!V0pXUs7iTEIQt_!uAvgs-Wq}+Q1y;Tly1V!Ow~EOjmb z5xlFiYkZM#Iy)>B-Is`R!9R=sJC|A%19)Ne;(~Wx#GC(SVrJRlCrxq}))el7CLNt# zcv-nv;i43#_k?Y4Mv*H5TMliEh9(M`A{{%Um;{yyH=;~1E}cEH94=P6+$qIWs@Iq; z$4(V%6EtA-_&n$9xEFsFr6_P)9QRj|SclF#x?C4^i>CRJGSnzgcT+WAm0ncX9!d0h zviU#BniFZdV4ZhrIF2^kY2tNO)J3!seLYWxf)~~)o?n+yy3mR(D)rma=_)H_LS{l` z)8hLgUPWAu{(%FoAGrMC9tGOQ*+x*gLo1iPRG973edzO|lSjgaD`jLSwrb^=Y$lHp)lO zzBz+7xIO;y>haI7&20sh31QLmlShY^$;9Hd_@OZTT<3OXDWk=QQ88qff#U%2G9%oV z9bE1`OD%ac;@YDTrRCQuT4z>lq_HWp6-DZ(g*69K=N!=qQtybCOgK>(oN~Qm&{}&` z>+V0~C;S~82d#@#MFUq!*np;ro`rvlF6fYF@gz^@P?1H%ql7-t!jRHaI5{o^CvLsx>=ITa1_x&^|L@gjIy*?2g0$n8^|w!o-3{7geP&sGQVCtG)CT{ol0O~ksfUd)i0d9f`2muTDwNr4$0_qny z9?w>5+7mi>fS@@x;y8w2qyl{N`tqT^A?^H*cl%$h&oW}*z%_+P#4H+)Jap3%4r(8 zm9W6_F@N#b_$k&c0brz;c}6@cN_v64V_M^OWiKKC0-w#(nZz+ zL^3?|^+VsdPvBO|dI_^P<^IY@?)M5bh8t^NHSN znzj)8T53b%!s}X?x<%RJs$zPkfx|i#oOEm6*76|rfEWCn!%4QCPt5`?2=9x9>0a}r zKH5u=D%<*I%EhKG*DUik?>^IcfD;2S;Gp@MOC^*#1a6d_1R5R;>5Z^epwky$FR4On z^zo?7M%NDCVr47g|2AupSIn!?zd-THZdCuJpq=+@(g?F+iG|1(mbU?zNQQu(J~)xF4!?y_l zXH2Rtv>>I@7vZ?7(w~+-Vuh^H+-$=>7QO zP+ox!2+y!O@4tnbQ8Ag0s&t%E7{-HvB4yH@Nd+pr93?*MJk3N}80F`NpC#?ha5{p- z0h#uaj-gmz)}*iDlV~z;<@Q310kc|c{n_SHem z&r9Y_6J;gv&ZBmSow88Uc3{GEQ5H;s(Wfq_{k%W3y;j(0`HQ?j;}Aaf+}aCS`pV@I zP6Ow{A+=U@CW#SHwIsG`&txT%B2A$=7%mp7!!a$8&lqA`_tbduN<`!%)Nw6nCqo= zB_-$c=Zv^|*V~hN%WevV{bIefHca6s&1-{r$FS)FtGWV*=4bkR>tu%yT3C3+7Xmux zE@BBxuX8K`B%D<}dwGgp;G0L#V6c`&er+48ETkBn_NXv6DVu7d(TkkI&b~=_`~Xy-?>S?HeOaw3am;rH)+JtQoe?lTIDje3%)k^ z^91mwuDfI-^oSQ3^hwY;q%O4R@c7Q4V}WUU5Gw;<%G2&fX<$cvac6D{ma}h z0B^sUSgg5VBpM7!lFy_iH!N3#HJslMkpe|t1JE8Bk^P-u&W2QW zI&-=uqt|#S8p_uDBKYlmUK$Z3zz2j_f%sYD24goK<5R1}UuL`DZe&q)^^F@JUd;(X z%a~d$1GxJE_koWPID!R+L!0_DI=S^=$`)=*<v;xU+|xJJ`Z7?-qgUgeR4%{c5G<;`R#ZzG%focgKxIBdusDHx&MHG2^9UQp3;TEFPT}iEYMW0&V{0PULd}|TUu}~0vulrgb9?MoEc9L~ zLFV}<7>O=G6_D0Xw>)Yp1w@K_pM^}hsPHA830#V^{E6%w z3q6Q-l)q?pq*e^z2k4-8x8rbd3fMfTP5^}ib6fPhW{C_qOUdir(&k()g%Vx%=3}jb zIeK}bE&><4+=b~@#PD2J?!pz2GFl6e2>%5yhe3t_s9wa%&TtfduF>ujmoVWH>#Al*Iu#<>SK5}TY%5uxcdUSg+3LFl50N2iv# z)aIoF;bLB|v_+msGkaf?V^Fx$DpavV4)?QYl|l)+DHdpg2#Vo+=y1vzJ@9Vkr!=no zM#9RAR<2*{Mu&LQt*#Yy>>##Mt~S zMuv#Nb0x|bfnn!w1$>OC6F@8(;L#Wjb2+Gg20ifU!;eFltU3({(&b@1M9uJiK5YE- zE^aBBoc}typj~Y~FHDtT(h69|!34kVWT99vNf#gjti=sfk@P2PgXIq`I!+$L3`o z#e<7RY8AEC>UXa4^2(_M1~fRG_{~ISmJv4!PgpV8#0J{LSzFq5`t4_(m)lG4YhO8O zwQ*|rWT-A?c#TDM>X=GwHVd?Gq*`qc44+Jm3r&fzeuS0wQU9N6Sab6^jq2|qEfeQ; zCws!vRQsN_pXpMYkOg6rJ2L>F`zzaJxku9VfJKb4@oO{9fookKt$lG>({2fV(>LgO z_njqaDLOXZgevu1KsojMw%)gU zOe?y!3kM6f`ZKDARu78SP0o*zl0J;+v1<}Ao2osnEZV%v;2T8awkNXBpsqycP@1y~ zMFdCd1&45WLubn2QRh(f(ZR4KP?M~)o%8|+umpGXpHl{oPAkgVl>#3t7~Ik}9N+if z1gqa)oBn>@1dUtXCM4V((IyW@7MDK!f$KJa6fcKQ3B3C?C010d6wWzg+^ zX)w)*9Q5zuy&aHdsD5GE|BmOp=;{=kw*jY$x-PtCbaS(7cqh^D|DB3ov!fg8%Oc-7 z#oHt6EWL?}ofo7Lu_AM0_H5hcnqFno$)u!xF2pTIcvvoGuPBJOBNKTi@C$1BzV#RH zuwRVUVed9&L4_AFM20(vj#rbjEq6}}KPhEb!!}-Y<`OkIT$|^ky;xUev7O3dTYQc} z?V$WcrAAV7E)w5*cIBhnFi*UCO+K;aMLyUK9|miZh%Z8cG@R(LBwkNKPnU5&k(E-E z+tddIF~e(|)_pW-d$8rX&z2Hzt7)Cblq2(~tiqjFy>z9?D>M^(F$4sr z4l6*LP+%I=k-qhIMNu|?|3E@2)JkBOHzb;32PxJ+)xDjn$^%esXrZCbIR+D3U@n3+ zl6Y22X~v0v0;9dc@GjDv7wTD?_T=2_>Vvh&6wQ5HOFj;_C0n)Ax{VHf=zDe^q%HzV z2M0}RNgJZnH*Wy}kNdr1eue?CH;@`zdI7&#C}WQWpw3R;WhI);j3w+NRo4q3rvVox z`j4Wwh!&+dO_rx%ogzzB#7C@Cn|H&9#)%Wo=J_zTPo{npod4&%f6@Lf?70_u^xdkb zcr*+XpOWY-OUqhOeSTqvKm`xQmBRPs6fihsipe2%Mim|f7=xz~t|w_as@1`HqZ_Ck z6^@g(X!vs=vIx7nf{?IJ>5@S>Z_!CyC>xbV>6MqAOGIiH9;Jg=N55#apo84C+GBF{ znk?7L8m&4y!B~T+B%&Ys+FWdMYF+b%&02F}1IU75NWRS=ad^~u>=I^uyf+O|)5t~5 zyV(j&B|MePuw*Nea1JkzkxVFcK_ZlTMk!DF!;MBTsS$O}!!YPH&=!P&CPNH8KNH;*v{1;u3v>9t z0`;i*;nvtofo5=Hp{F41+-a6eK-{D>nt7j7LHIU9WX3-3iGo8qr0K9}LDrSzy=X>( zJ`oNt#D|f5gebmT_I%hb1kw6R2h#wbopggnTHz~SpfQB+p95g+7rm171>{eq_?%vJ zHALxg)JI9640(TGIgCx5w++DA*H_eWS4bVEe_j=Z21}K$`ysh#Fgy%qLz|B9i2a*DN&NN8 z);~HN8s3I9%WPE75uPLtB3S(i+_g|a3K>#KvGK?1Tj*bk>~cMU%p(G|qYS8@a=puX zjPQjz7Ub!~nex+D-5nG9$D=))Sj;C{ z-q>)PjcF(;!*YSZ24+kgsq2*yfF~uzqlPeH)ZCn8(kb7a=hI=&(z8>lS^BkT!z!JUDMupfXhalI6Z zsu;Ze((Z6rkwn>CH~?eOs>QPdw!QzeIiM57uZr`P%1LygibP=IF)8qF(DR4&)9Kpj z$E{F8MT~UTd8Re1+4)U*pZ4P6nd>VietUQoaS+_sV*0yUtoKDyY}6NHWmRr?Q6nzay)Z!m zGW2x`HxUqGLXOP$CAo%fbGr`-vInv~8|Pz6YxwXo#twLIzlfIze zFS-RG->8UIpVQ|x3?0F#L)DyJvmDzdRf95sE9XuM^Ko=o`LzYIZlP|;p&(A7_u=a{ z;8MoNzr_m0=)xdW=`1k9E@)Hxo|M~nzT4V@LYM^vj8OuB=IgM&boO-DudZ0|wgkMu zmfNnWp{V*ReIH-fu^EH1f;OE2c3v+~A7C%)33yN5Yi37|Nycmj>@7 zD5+vl@D;7kkPie-xWZ?`J{kJq;PVkaDB+r+b*#6jG1d{;_DLzvlnBx=EV#meR!4z6 zA@k!#n}>J{n`$_W9TwZt=oh|N9J(q?m$?~}Sam8U261|s_R+PzXChj_q%99=F{Vxj zXqTM3_?Cib!ypO>41{<+#f3%H)pxn`$L23er*VZ~;5o)nbkIj*@+A#GHzBUwA6Qay zC1io|N5^rP{A6v%oR_Q8_<|8AA@>!(^Sp4aYWtNlm zgaCg_rzy4paB+<0>fO zn{P{LIv;8z))fpHCG^fQeO9nUR*ha_?ml{C3GnGR^Z^!y1_I9+`hYAPSTe8+&Egu2 zDxp!i6s5mtV|C)2=(Q`k))R7dcxIvcy|g^y{ffk=Z(*G&8yI~0_7sVi14z6*^?vDq z_e;l-N9P1os*xfc6yfiHiFSjfhh({giKEb+CYCl*2tNjW?RxMAEaeYmz`(&1r2n5u z;`S?NA=t)^9h`+wy^GRaQIHy5u8dduXfJcp7rs2ZFAS^&K1RT1P#!aDwpt^KWdq|v z;0Y675cy2mlgmAq;Z_vTH=jj@WI#m34ybQfNJZnbr8Ew4MaK(4F;@eDOh0`U_E%=4 zPZHD4B4Mc#f}Pi!8jHa8uJ2OtOHgNvTJ*xtc$deKJ-bpq#=(n_2HpPg97_Gbj6S*m zc^%~>K2DSMA@>Ms&Ai3gtCMdqm|{5d1+b_}3#d9OiX*mFe1tF7)i%=AHeRNJFalDt z1v?|du2*U#ii4-t!LfH6=Iw*{H3{LZhyX>Vn4tH#^lzP}|B!vWZ4NpY^1bR&v?cgDs}QqO%0zcd1Nv<@Hohmkj&YBLAagPLEg+POUj zB*N6D%`h<7a+d{)v=DW!K|kEq>wCys(@pc%`K~TWB$d;64Bwrmrq5vypamjqod6Hd zYuE*I1A#qa#|S*)NRhOE7YHOS{BYXXjv)N%)0Q5^210;}Vo+A}H?S57-^Yd3(-y@o zT=c6eQ~JN~e~!DEUr6NHdJ)yZgzI7sJ30eh=HK`lKogVn8p;?qO-Z0764A;eag&Wq zxvta&$V7OwD*0AHR(BM=e^TQthHr058%?k!~5p;1OJs3`ajs-{V2Lk21#42yR6j)txWFdBClTSXa7f_0F0)`F%G)CvO1LLw_HHS}yvg4CQ2r^Mu+I^#<5IdEjTUC%wKUz-!#{tbr1(gBdkd%mX zQZvaKz!rm$Kw}wzQV$6aWCN5FhV4{(+fuTdNe^qTSn|IJWCW}*KV1JnoHonqvlIZW zm&m4O+0uVf!1x$O&CuD2C|VFms75Kt0n}q?y_o3Pj7obwaUo`=vT4aCE#@r?@zYSQ z+s`m|mfZ-^uWT5uD||N6!FPs|9%)colAx{8B40EmfonEMA3?{lfN?XZJUoK+BydF> z0&bxfNxJJxrrku~f>EU6M|rXFYuGV5G(VmG?e7eJ!S+SL>Lp&ZJmHwVE?dV>7G&R1K1_dEL}5^XFT@+9Fio&2Lph1e$5d-%Lv& zc!^DY!jlXK(obWxDlMm4leK!yE!2ofg1(h_TX9TdA-vbzx|1{=X6|yPS6h`c?$UBn zAy<4d7Jf%edeVr6R(gJ^EK1h%wYf|)lZ14ZfN{?LsDTs{Ih1l{NsrLAjYU{jHBtN!rg2CdLHUR9-SAIm7-fnXk9nWWH)OyyH|gar>U$0vB4|X0 zX++YOfmb3GVO=}HxkLzjDS5)?Uh7))I^ypD(TlY5IZlMvStV+{X3@kD%)#|?6XX{{ zY%H$bR}#eoOC&)u6i7_q5&j2|yOYBj(lewANooqPVMpL*i90{-&MduQ0m)}sM+HV& zhg_?Ao2c@(Xx!UGWr6RCV{}Vf&3>LgHXS&Fx2lmj6A13VqzszAO1X*3ze@VzO?n)w z>eAoH(5n70=+a*tdU}V@UyAf>awmO`nRZ2>KfsJZVyp#LR# zY?jRi>=#I6;et$zqd z8RTh9=ISe11lUqQ{QIQW3i%RLVPw@)Kca&}HJA+d^m%-?Ovr+1tgAQ)(Tb(^^)c-7 zA{n`7pR@`>e>u^<+33T>@wt5+#rZ>soDey8wulH14@?JY z!=PIpI}THt2imjwT|+Q_p1Ei0R$yX|ir_f$ zE)@zol$Krdns_|Bs+XbgJ4Js;_>0Oe$jd-w7%CPORapzv5C`Ez;3!h!CL#1N56I}D z5N~>wmmPixaFmt0CO&I76z>p82x16DQVEHELOtTPdf@G*trwo|)vr3KZ7ng9B1;wx zR%-}Ru6)$@H;tYl$CU}I3dTaqwzWGWS6ruhpTfYOuT%XbdI;b zx5J{pnWo;;9A}3+lbp{g4R@oyMqKC$*tL)I1JrqEu})f~oL(V>7fGqm6ITXdQ!>6J z>c&Vri|WF^nihS_A#?zF*=W=9nySj??r`wgQsT3*^vQ?^4f&kOdJgX3QV^^ySF^Pxze(tGHW)UykUy#101HM`67Z z52Eixe9~r-=s`}9z>r(kmX!UxDivx)DK>L>`Vrz}H!n?q=(=^2|^b9*)ds0*}+bQb@lmBdx7fxSes%Nh}DUBoTzK5{dHC&E@M z(9#IBnOG^0%CzVVi5)A=5~D1Tga`U6(O_T7Ju+JGs~f>kM2ml=^!_S0Q)O^FeKyoz zbrx-HA-|+{WD1d~FeqTyt)wKvQK4LBN-Q?I2zFVZ+Mx2clVf1>r zcxEp%ysdhVnmt5J;MNuG=&1<@k)%MsVzx_@UhvmM)B?eQl+FO9eYER0=`1#oZzaYW zib+47p_a68rBxO~OAS#U34)ojqIhg%5M~-b;?;be62@J6mKzEwJwWCE;kVLS&F0E2!#de&vnIB`gpYB5au_;w-Or!2(yA_e|awS{RRi6&03~0-t+mMa}wi8p57d^mjna*72 zd1gwDQ`EcM6~(73slrmqPB_1PaYE9qy$Q&Hd&iii*h97>N5Er&fxj6)+)hzlJ#Roo z{Uoy>oWV&9vj@_@PWh|LgMYpXMg1bb&@2^0G$$Nk{B*;b4At^rwosvv3}qO21Mp7Z z5pYwOy~MZs>>Mf(j6`qwq@$>#4XwWr-tadq{DjsKlf zYR4ROXQbQ41|=@(?|x@)rD)g<34E#pK&?d1PNwLpSD-1iE9vfzuw&hM(&6%r&)okp zx;djK2T%zD-36lhZe*R5##nawJ800)dW%UH)JW5r6Fko}t8qFuX8er5gA>bkn#^95 zUuZDf{t9V($eXfL)lAvgwpLt7?ZRTB0KOe6O}3iRFs(jr+gzjDr#l2Nt84Ex{64Xj zes22hR-I`FRfnMYq`n|)+nN16B|R4P2Uo%9YEp# z*U||A)|mnRR@W*}9xjF>Kpxn9B-;-8E}U(bbVF5ZfHiuZns;42Ds8z!yDwfsBTdQ2 zDjJRm-rr-HbKE57xbfhc+il6R(at_;g_>em#~l2d^GSfCjA(dod9deqYC&Ce^#`c)VHnRCbWIr_c!X6QQHp%kkTUS}ILDX`z4bASTFm(nM;t7iGE1gN^zO||-=V72 zY)*_UpzPWM(I_pgM1>IybdY|;ufgq?NQ^+?sKN#7yo<)i2vT&fMcxXuOcm4uF6#}Q zy}Bq#REmZf>3+wF)|_%~xey%=+Kq}KP5r?nJ;pL#K%%5VnGgB;WsDr40fpo#SBN*u zrp?grzX2snqoiBaNiT>H7z%EIik0zjjVD~9n-TDq;0Th`jA&pK2b3+ydhs?FsNgzB zn;m+#T5Zrv97?f=LQG=ZY7G>lj8*pPum(+<1p^uMnWTN6$W18nm6^2EB4uzQqrFnB zu}`oAv~p*s28znb;k?5|Y^2EC0)i*`1=iH#$HO(Q8fy>59;3a%lrs&C$Pof{V=`H6 z(d1C{Y*d*!O?(5-2}ZGZ>yQK0M<5*K;|^InS{};XJw8^SHpfPemLDE_G8Z3*2@TWM z8vYIZO>CzPyh0RhKPWnGg15;?OKpk!NnvBEcA(M*VAN4P}tCkgm z@)MF~fJnc~bQ%Xs*5ZN zYnFSbN|`i`wWiI)ttL+<7Vg+xBkm3Q`9#az)g}>}$`kNYxM@W0T&CM*t)1zD3a_M{`Ab8K!y>VRRgjSmi3+nGQ5R zqYJX0ozL;eGIPB1hO{3f=WE93#=YdM${kl3`^f1&%2A6BE2Q0HU2#h*B5bjHE*PAh zY8^E{ZvcwMabm~eB+LA#1r^t?l}+O%ccPnFiIa@rzyJ$?I}YeQR0d!L%`|k%@3sk|jW8hsBQ5M{FD>cLoET<#B=IC>CHEsqjcP0PU1+O`vLf~i zOFHhnGgn&Gs?gx(k2bflEMWp-g=V>4rRPco7+wKbcc19umdG_KgW?fjU0!)D-uB4n zV){pCAoW>=2DZ4tw+)sS$qc=mJYPx_gt2+iW1x6o2i| zg1Z2#GtvujKIbP43?@;DFZ7n>8>}YvGaeI5ia4!OHWT`V=hy$^1*jX9#j_l@Gq64Z zCu=@+DG)?*7e_V2quc(|1zFO3bj1I&U+8jV(LBpnRQrWFV2UEr{pLr`+CuQS z;0-PaH-tPKAgxfSiYx)}*u&u$&q@VXqRM$q(Q?&#u2I{{Ff!5UIldC|RjG?}0&`&P zG}U@)^r2%m<0WaVAFg0oV|mr-FTe7&xkJ6$8}j^B0_Bkl+vYj)6mdF(CI*W!y6Hse ztY;L5vcm$p)W!EoE2-rVj$P6V72)qML+iD$RG`1mE8^q3z&8LM%Aq9=#sH#d%po}a z9G~0knhqu=q^Ba_Cf2^z3)N`>#vHWGhUJ_Yp^Cc!@4?yG*Jcjy42PCYlE$6rW!pUs zRo0jhm=~Bw46Wmi{8Fec5*#y+51icAn9L#tsBZhp-4@`Dm6_KHj;Pq|XIt&+bhf;| z>x0h*`=%U=ykxywCLt(IwM(~}xGvke8RlG7NwZ+Sdju2WU9rqu>T4i306>(CTB%)DiQ9niUQdZ+)fCe_3iL3{V#PWU?K4dFcuQrs%rmk zs2u*0nstiKR^ktlnl&u-e+(ZrR?Q6IJ1iJ+tge)@mFahOBIDI@-~=4xjbJ$wyo4;~ z+wjpON+GY#oFe5UnlijPsCA6sx6?cWFod*&Vhbvju8*#j} zn4q;ObbQAlyT`834=i1vlZ_n#|1qMp>)h^h3py2)DmwH_)lZ4H8&+18;XokR1{8w2 zpI|Mw@oFZ=k*?X?64!UJ|BRd;VvqD)GG)e{!?DLEEtwH{#?)a&iDfhjNd-@HF6{Nz@%1)9WqArQmm z?KR`#v6ulB6mHOlTC&tSSI;5N7jcG)q;J8arY@g1ea$d8 zvMETJgHr2MkkJ3!%6Y3wuD#0IlDA*|%t!;L%}#i`h2h+c6wDqV5MU3t>^1jkbNWW3 zbv5)m<*0S^fjdwGp$05;JPHZ_Xu4?#oZxfRt{m01nrgczI?=?&-Th=m<$~v>>_gG9 zV%yQ!+!gPq!kCso^$fq{Vcw9z2M+fTH_WAv zuZF{rtX2C^-U?JnfzokbL+@?Vk|x~gZuADOG9Tg#OPC2{q|p0^5bdG{y$z^gP_=8; zoPHs$xbA(SIN(fl;Sy0+)g@F3wHngw2KGhf>xFG! z2m%?@EK=wy&f zKQ?s~AQ+!{ga+XYp!#Q+kXYFYis?$`*dR^3@+&}&T<{FW?JC^6KX(-vK z$SjwK@0xZNa3g{6^U4t#8!3AoVDLRG||4anNnF9hS5qt_zE`w=;a+&z8 zjuPrw1Svbz?2QcV)Blk6E1-?0_itYr7t7YCU6DuoTFsxa=X$Kkw#6PjvMU!vm8RX! z!LY6sI>H}_>u#P`2$CwYyxXG5fKAwx|2tH-akSfK4fz{nqncUX3tuc>JWj#3WpPY; zH!~Tt)C!w4`7v~lHU72%PFo3n=7(2b4^4`McMFk8|8Q#Mj6Oq7Pbr^f$w(cgitm=knX9?`X$Jo9_Z z${WE@10h#Sltj=3HE%mUqb+1%;v_VLV#SE7SbTMupy1 zF+8NX0!Fk!Ycll8gXcUOcscWTKYlp=>6Xr3-B9C0e$3b@e*R_AcHY3UFYE^VW}R>D zn2cgJ59-y9;uc8fP>gCGBZ}xUkwtnkf1Q}xrVJ*39F1Jj{IYXR17)bvq8PcNReSU3 z*D&pYx6$#rgMP2n+vzs{r$;Gcw*TKLYuFP1nqm28@a}I1>Hn~JexK~?Hc=R+_Y9mG z1zsHlI20;!)Oxb00je~$4*uR77DcO~00S7ZV@D4>O7lecE3BT%!vcT8@YN41a{D}k zEC3uf3n&8w_0H+(zx+fygpnj!dY0qvh&&kVIQTEk_yLBOaE^0W6qlar2!j%99n%G4 z#(Gm%C&Cn&M?aY-*=Optis7LVuEiYiE1&s|v^2TdCSHFYZB^%D_slF8$9cMLIG2=sQ)t+X&wW;7G zpXgvfus19I638A-vzv2mOpv?4e(2V8%-M50jquy94b8^h%-% zr&{oR2|oRhzZ_Z^H6#7@Zyj=ukbW^}1o55C(k>_O4Z^#>3GaU75gjXbq~e;JFL!@5 zx_p)92Ls!R&-TIzoVxOI3K)yFb|M`rTX}?qMIwKx-D+AJV3)EPWv3vsZ(ck1cAKFi zccN<$sUK{qHTcE>;;<58ZAdM+na0#;LZiESzttb%{_t3I=z_}*7b*= z{KN72hr+{-*is84NfwWHH0o+L)kH2}@${AoRsbpo1w|YIvp17j#YmVv329yrQjZ8S zsnlq{IR4ZU?K_6;dQZJw+?aOFmIrEqZ2LPubs9JW$Ay)jX8jhKeiHXCygdm=E=|GH zl21{`YDuTL0ceOj*)#2@+OXM+?j@96@SL+|=;S|Ox{ulX%MfYLW#L1osxIu#-rJ^r zZmyBMWi_PhsORdb8$pxGbW!17fwV=b{0pO!81f2g*0s<9qu&24ViFDwUptPI#^^p_ zN9@9mn9pFIGDW=w`K_JQToudM|YLYy3DYEt^Z8sjLu3(Z2o0AR`CYQL37L3_`aLXNy2I5ok5GrYc)1 z?+!8#sdsUzezod578rCjwFl{mAo~`)oU+$ccTg7O*UJ1V{08=`@Uzvb?_Aewp`r%piKS;IjSvSG!={^Gb;vX9Z>Tz4}3d+AvF zT8o9qV7g-4S#Q3?z;ZLpfl#0zad7~_Ew`UC-dlQj++QUh9)J8$7-Qre<(^{y+b-nK zSiQN-1}@sy(+^=^hbCsOPr#w)weinuPt4Ld~fl4|K_X!163BE+l&&dVVFUT!bef@pA1$)|8NwTUaQdS zn=rhG3q#_JOy)QJdAxfi*mhoPUtTrPJLCSUpz=N|iV49&nhXlGI>`XmXKE!@_EBNG z*{|m{pa`A4aQ5(M^qv*r7?Vk3-Tw}(1l>q*4B1JiP!Y_e@iQWFF)cnk=m!qS2+TS- zWje#f_mRx?YLVClcZy7)ODq=bYHH$vlTS}|wADd3p54m}^dBWGxV$p$ujjkIyWLM6 zSrjttOt1~hqErnu^fbykZN83s-%yuN{(evCT*v#idMy_ zGT&3&vL7G1==ZK9w2E7jZ=r6I`i5@FXgl_F4b^3no`PS1aj1$rYAWqPLyFyVV06*% z`#l<38ni9R{3m)a+u#0wm$iRH%RjUcLCZgVmri8((j0Ub`DsnMPu=29KNO&5xgWr; zsIr-{=n%w!Z{UxL$g?u#3nSP0nP`UjDDldn<~YLcL%Ddq>Qr~psXbW>O(HS@*-=j; zv?O@HqdBkjp9{+Ys@>0MU`|39!``P7-J47<5;LW}%?2S&rf6{y`#REnh*zl-O~Z>n zdlF{m)wtU=bB&)$>ACo(VPa6oXN{s}PB2dLk1QqB3<3(!&i@sugHs1U2jphVc*7YY zaa|25igZ6nvkT*)S%H}oiiNs6akM(Gc@bm*iY9sY@j&VYscl{p1d$dHnYPx~hMi>^ zelyAL{dHU&xjKX&U;WK{FH9D^2%Y^ znsX{%A^-S%_{WRSn6>H{DtN?1`00uqA7Blm&FcN>Be8~I;Ym8n_oXmB6B_ZVqrP9q z;dd*NzeG@1O`P6Es+b3v*{B(|iJdi5V-4!JS;Y~uR-c;JVA&$RkBtjZIOVGg=D9=^ zxkOZ~oB^_jVGEp$aZqO0^*j=x#Y)?GOM?-vW*c%kG@?VMJcfsc5o}#%g|TCxP3%lC z0<#XFlWA-N+806cZT0qEr!IXBI!(gXqoN;M4^mgA5g+gk!SxoGSFSRA7rml*?u+Ew zj^%Wx6*oC!4O0H%Tir6+#XS1B@6^wMojnWg?lmlX>G}W*7^Ui^khf13-iE^g7sPfId6shbHiJ%Jg@to}F0w!!~cFHGlkF;u!gMUDNiM={zU z$&=_3%%dZ>UNU=Jl341T2(bW4x>;2>@_4w%L`0V$HQ;YOG@)akPhu}alU9aC$j5$& zu0vd$AQ*r1_=VN%2p+g>Sn$%K7BVO*g*EPnVAJDsO(Au|hXP7iWIvYFoNG}DaX*Mj zg%P$qg@Yo{phkTBP-^_KwX)#sH9dI^64R+v&(KG2!8*;>wzNn!B^ zlcR02ue!PpK%L}7_Z7n<7g(JKVUC z*o|##`31{F`!*MRZ3;}u$EK@n1C2792=0eHY_3RR_kv0&TSITU+5<~uKgQAFvX zX4mK6s5HwpJ1JNn6tb0VqskX15wjp5bvzr~`+=I!f(@J^)OVI&+V7H9Ig<;Hs zl^-Up#qx)ji(uW1Q0H5^CLtfF zJVF9Bk}bYU@X>JxdFW?71(pnsyXWUky@|6h95GSdcgxGMOw zo3r9jqNrfyP^O|ns5zjiSQ_A%%Alzgl>^rtb0TL^G;!}aZD66iNQG>apeDb z-}mgzKJ&r*f1dT6XR|rL;heqS_q)F9yS|Hz8dZx1V64TxTK@?XZr{!Feu=YEYd z1J^cpheFJTg07F*Tt7jjZ|ZSW!gcS7j~`viYc7L-U!e`u7I3E;NUtV z=bjGn(S-8I19kBWAMu+uh=A#4r-7GZueNaBB z2D-U-~QYso7R z4MyGEeyF^elt}hU=^a`qK3+nw^OMBEet|?}1QyE>h~6o)P(Lmk#ANdTu*ct zX;sQi4HA>4?c9>KPM3c<=^`VjKKqRkR1a(3-r)Pac7t0|>W+YV*N7v(9&aLnI+DGI zHJM|()q*Eepip)YD^NJmG_Y7mE*_7ZR=-7DUew#MRiD^y+LFW_~rWCOcD>)hwq&+&`jC9R|UPC!B-Co5okU%5r~Q?cSuko4q}vgi|iFTX4MZ0$*4 z66xy1Y!IXl#-Fj-V|j^ccEP&+VXEBht&684b5pZtVWhdw%sBu%NS$E_6N+pEtV7i? z5=+E+p_a!bPy;U&?MPwF`$>6r#KBWIDe!;LSVYi_OA*XaayK5+EpAb$S7o$5_e~Ai zl%iYSbsGmbu^lGduRsWh#e`4()gnPQs3tN(a6B;mh|g|65VEAyUB1!UHWb4I=?lW} zZ|tm=T?%%8BjUG>(ccoMA8uhx+7E;Cr%k^Su?v<5ODj2Y$|T>U01Vk-fM`n9DNlpZ zsSC5&T`2cbykMK=q}IKpW>D@cXeM>O{>!GXE(n=N$9KQ;sMqNDt|VG4>Mq@4r2GS$ zoZ?MOzuRBNN37V+>2oW5CmIp^k3_C(O2Cr(Qopei1>%<*ohg=>BCqCfTHqdd`gXSfh-buj3tr%Q*j{mZ6Hpzfx$ z{{ON}cTKl|GoT*N9_M|=&23~Kx0CTq>Pkic;4)A@^K#Oo_on}IwJlS;(HN^P9K#B4 zLCe^sAC>PqRtyY=3Z$dPfYNu)tn2`&gVK2d5q~qgiVv+1v)`=#dEES<9!*ZkjZ9Cf ztyC_$W&jiqX}QMZd-!w`K}G1UtJnksCp+47tJAb{{IK9?o6?=@?N9~VhxkWnGIhzM z)86DjrY`ZdGza|}EtX1St+0B_zQ2!``WY#!X}8Wlx>v0GXB$!dG964sq)&jiye2Bm zta!SxBB0ubvcUIBtIjM{^J1J_KWrj)XdwkcPX{q4G!ddTN{*PCacXam9dBNmx7lz> z8<})lrfoDW`BSTRwX-`G4%K3?iW}hEupAd}L!9laWR@|099$ z*_5ir*X8{VD>l%U<%_P`wv~QjvO;Kb_g|sOXgZaxw$^fNJEyBQxuE`o*js-MJwMLe zOiTmg`X#KdKoYqzM&KjiBzU`JwO|?_B1G>)-F9+dUd z7I&H}!IOE~*&SDcyOpmr-~@4eQhkR!iXs2e(<1raKB39!T#Y}^)%>~V@N16f1N}3e z9Bj<9?*(sE!(xk^Ti&&22~=y^%n0*qz|N&n{rd>~Arhl2khRonm_?dml5&_=w5{k{ z4XKMhMg~*no%yE!x~ECr-4>UqKluw)bXRo&{bf74Vxdl2lx&eJvZgLUXS=kD=qH-R z90tY@QXAtT#vRIF_byuPE#Q9d(NA^fTQ%ASU2E|-&y*S==ybF%o%_h#PNa7j+Zs@0 zoDts>=pu#BD2t2!O23waI0qXE{Dy+2FC zhmIX2Wn82!THTuC)6amp7xs_+O?rfVp=_}6KpGJKVAq7nCm9&O&t6r$SWGQOm?M%a>YFBb^u0xpj>f(yv6edjq29^^)~{ zS3%gJDdRAT_4>+hbudRQ3#<&=7a!XGt|{mNf$2g5qg+N$GF{zZ_+lz|$@^0!)bC9+ z2!>TFsgfS>3Lb~PPf$x6($I~I*3l(y+}F7qTO>puxN_-)TTt=Vt=uboT<7y!GqPZ9 ztr~Zny{XJ7SH0U$OAdX4aM$IlL72g`PaU`Tq`0xb*chN_bK6v5$?;>j#=^qIwp{!! zj5zXtp;4W>-1DLzc^ zdF_YO?`tI09d;meXpHET>MU||MCXupszHMCjdQH7+DPGtzRKIf6-n1LS0{Ig3GG$s zNMfmVmBzq2WYR7*{pzeY&(v-w*!5K&%AIsu|3#fnCdhrO=;7E~=+g^0Ry%vQ@ifkG zs-cpD(I#|R;?F344SEic=~~`kbq>>g6i*)zwcdXnw?~rQ=dF$VmBpwFzrYPGCRgBST zt%WRU%ax~T^Gmzgs~^76j3o|l^{E>^=kd%-Syh{04rHCN*qOqB!+q6|z@3ZUnYea9 z>Vcq)7lnRI^^ATl40&CR&pNm2d2+>RUt)cuYDih2(^d7!^~W*cy>R#LxcXAY7xTim zWhlna)>~=~FQn~}ybof^yZtA1?Y$-k5%?8%1ZVZnnmxrpoiF;KvhaMLQe*bqoBt}+ z=WO}kDG9nVr<~959PQ31nDe z_230;O8TjPOdTqbirUaDvwSZ89`@HXOf5|s7;-z0qd;0BL3$D?TOyWD=>je62|w@L zr|?)keL@fLzZ+Xur<3tF{V5Bjm=zm!>}6;DR7A(aH;Snd9uyN1+}TS1VcP8@c4P|l z1gUXJv9~Td0y6d`?2(K&SMIFu$0i^`DGZ+Ao*!LvY|AB&1<#^7wg2ig#-Uc-LV?Sd zV#z#qi{b|h?*nf%?+fZTqa(!9b;Su*59rwq8%?eTIJb5FZ+!R#xv5=TUZ9E5Yh?KA zwTXRnX*b$?AynU6-DgBQXB3k;$10KiFFl2ont}UK9MyaFu0v7(bj1(WmcgwpV`glRZb97 zt*zpR%Eqy^{D=>)T*bftb!qc2sdc z(YSS}o|UPS_a3bT6)DE+g}iv{{J$-iGEq*n1Kb6BGA|xEml`4Pek@A}TtMM&OBwv!;ZN19!1;yF3cJmu+BH26f2+Q~ zt54PYn|ICA8P~u%#5&SIN~zH6Yaj39Epr{Ot71}{KkoFAE3KPvx1w)`(g>qEcP;Rx zBbLag=Okta=ARpspBjZK$bwICg;>X=@#qvKRNqx)Our(+_C+hh7*RVCAzQ5aKIwT$ zv(o$?b=QBq9(oDJHLo0^fE(LT6aIq3DG zFJ8R$u(mDwTqgi+7?U=i*`h+~X5`shn%;^&eKC_E2Tq|johAwZv#+pU`}=h(-|}h3 zi&+^ZJvv{lB=vo+-{yJq-pWO&7u;aUC;boSUu%gGA7)=dtKK=&6y^-Ol{7{$>%{ev zC6l~Ao)&R*-*1bv8$RerkGiQ`>{8}{mgmkFF`{wci+SCzCNdG)X=p8{x(FtQdUQsZ zTk+N(NePWqo8?q-#H<6W-8E)CGPmze5Sh=gVRW~!K7K_wU69U; zl&^W$2hB3D!FDbeG$MGpHiXkk5B~^YXJ0s8r>?e+SkPKlB$%v!K(03jtwRZUP8IV$ zy7im;)wyAI$qidxwYb{RtoP)6D4nhG=W`GWM+&i!WlNhizBZnrQ*_KLf}v3PFD?B@ z$8FK-aP794b!85T@uSc{KKST*xuJQ>HQ%rTqhB3X1Huhhh-FP`%DAHDWQzzG5W!AZ*gy)8|-3V)a z4wE)SFLvDt^`TO_tOwiiDG5_v3h7h4b%#>lExO^k-GGdo=Ras+P(nW`xgh`g`}x=7 zL1w*1v>mtQqzgX#0VfPw?hChTj|ZDcgf?xPAF>xDEpE?jf2)T)^oHzW4ZoCOmKDtMkyUcezwP zB_mY-zo^m}>Ns?3M5PcGbIfa8+;}%JEEmAfiZ_zP zBZ274mNLp`hPfGx`#=6^!$G3lx*5!p)gY25p%4}S(BKO zJArVevxmtBE^yC3gy1hivIa6mo#aN)oIW=77P_D&3TYMzVGUOeb;}b{{?6;8LT3kl8fEvGrS#ZV}>bquVynY+@ z>lUfq;8*?C$$zF<-N+$!7n7z=WnF8z@2vOykC$D(w|tGqPxA9J5UX$%P_;WfWx7{~v-n9RFNix;&dssXxs)qPPi;vbm zPIT8b9EIu0TmdyQ!m3P*Skqz5!lBEC%fhlFGF^2E>CHo<6MFTRXq_J4=koT7HIp*8 zL(FcC)}?TLq4Z+wzT+mOt`}=)%z+(Aexs&Mx6r{H|2bje?#N=YANk~1JWB4LEOK*I zvA?f>gf$^?+N<5MNdot#yidEFIB+G7O`5?^5sxcGqy39oSibv}pp9jdgWgPW4$k8K zXx!t6pp9<}dzb5UENMaN-96K8R-pJ3c13G>mOlKuVuh4ctmLG4&@6)i)`A>ZdJTb zCT7IWJA8t9Tds;*$rq>y)5dY@OUz`pA&Zr1y=MPHmTw3-ubPq7Wc+`hKXy?Mt_OaQ z3yDjMwU6LeDY&95)XWKXP)x5{N4EJb9J&32qFIITrZS zqdI=~0#<4!r!IgSbq%-oY1DZI%rJ&hk}>OFBc=0Z&P%AZsnk0q6ZJ7^^_A$b~4 zHh6p&aqtXl!~xW)so#yAk zG3H{D&+cisz(XMjf_-Fk_sec{e9I{F^yGT?3QWiq)?H!>Ujwfg85a)hU>iaRFMsZ7 z$##$5@az@qw!Lf1;mZ*Ih(A<%1zF#%FPC6iMd?nvzn$&gR`_6I(cp)Xt9B3<4uh;n z$86o-R&4Q-;=#X{>O=GUnDG8%#-^cxaN#1hLAp1)b^O8D!<(5DTcVpniEb>AD0u72Lm3rpN1mQ6oPYdjeAROjo3$rl(Cv@<4w1!baYZ9 zQs_?03P`vrRMO5S}40Icp$xJ4?^wckpG^lQ?0W}R(8HY}B+zo^(J z9fEsa>ot~QY#-=}X9%~EtWf3V-mWg>G+o9w?|Ss~MdRk}h*N*(t#`W2Nx9KrQOCHL zk;7wNczLUHPTl&>6Ex)akmDvtYTTf6D9S zd*?@Vug6$f;kxNCY${~lEA3lmaL>vQ0_NWKY3{#z@?fe2&apZ#LkWmg69R=2UW{=z zshpt75Y;H-No_=2U1RYstTm~+1sTR^N+8Iqvu+&1q=4$v z5YN`zvQ7=Nr(J(lYdckw-`WPYQ!<=W8R1Wx7gen$GVw-&=Qwn?r$w1%#Ia_??ZGI8 z^`BCfq?X~{#$KbT#reu^$9~?K9v3FIyt=;UQ@Fc~3zw^~eR;?Wt=5c-88VGhbMEnX z=#4T+XY6Bk?qBHjIvCYXLjyx=C&u5Bv%p>0K{ePmly3%)x;W5V*to25%S-rIe=@jG zSLyZ8_N6=V@?!?~i5biUn^a-0Y;TI8eIW<;W7jP)@fcMIF-*qsN%i8AEph@|JG(}& z&(HDCM(;jjp@&~q3GBYe==Cg~RK36ejN=0C2JgJ$R#Cz)Gs&}Gj41nj;)%)tUfCR? z8*bGdy!(4AQwn`rO8CEYZ}>{R?c*2b1Wp|r_}nT-Q6!MLNu8V{dJ)uPt~&9r#5_k z%hOIH*?r>i=yArXD?Xj4so*xELhgo16Ky5Z+$Z&Lx*cq$eS$yP>Pwgs;se>Gy2!g< z;Ywrpc&iB}r+ho>i*oKIg+*XS#aXp`t@AI(EpPbfb^gwHP(Le5H*@4z{}$ItiSSd= zvZrEC!yjtP!qyiCGSbm~`iinS5-I3<>`5`~F%CQWwlc7tVu%_$Yk%w&yJ=>b=cI2V zBFpg?SJDtrAexh)#1-k)?(xWI?gkYz7S=5NTUGZ8fTKwKJ8ohd zB_s6jG~d5zWZEH}9+_DGwB&r*Unh@f zV6F?f$cW*kt%7$L=yCI#QkSx8r|B$3qL)OZmVHfgW`HNx&CJY2G1`ym1DDXO(=xrT zQgquu_mf^p2d+$}qo2VGnoZh7$4RKE|5B;$QK(&b|6o-y!PQ!%ZI@ElpN;&6NOO zmppQQpy)82bgC{TRZ*}~W_&e8yN2%gp-Ys@mOu7O%%)XB0@?R>tY6~Z_`Kof(D?aZ zJYH});@JWw;(QL~c-P+eyzU#J@at{cp71x+j2uJt&14whbb^_C{FwPZ;gAbA&!#b} z__^oM`xSh>n)){TEo3!w+gAQA8gyc4DO1e~;9;GO*De-zomm5a^{I4>pY-I1cN}4z z;By=;AJs=``_cGu8`>2ZsYQQk-vO;RCCz2pNFn-M8KA&5p@K3Asw6#>+XIjK8SOxK zZXEyQw2BBhqDyq?j>znueNa>~BX(hNpny7ys_HD2pa7sw_k`+rj%-!`p}WtLuX_8; zOu$p2%7EU!bKMZDBfZu2xIa`*P@&G~Um6e0pB#_h6Liy!k%4V0zw9Ef-eAIa|4i7L zz>h(yR~ghhx35}V%+pj@_C1al9Yu(Z1}2AGOGMpEw2IrD)P#xaI+1Qpbwr;}Q8tb( zvZfA8UYA*XG$4wYvB>jS?2)|neT0WgWmih{ZkpRm_{aprATeQu-YkF zF!8;m&ukyL>O}g^DS9X;+H5v~>wTtOu}1wxWj`c9%=ELeS`sskWRxi~O+Qv=O0$#E z`K>%v@49^^rZhYgRzLme{NvRx(BVStJu;cO;>Rcb*FZBm1UOX9)WkS+Y8SeQp~O-O zi_L`HF!mdBY7H!h7ec>7n2b)}_upYQu}zcYnl={Ni6pnO`$=doV*nD&`;A@`4ekgPAhH zPI4vUS2ev9)uWx;(CRd$XP7l8k^Aw&m}PdlD$x|)ysK?56DlQmU}u@X!&V_9;7bArid=Rl=tVT;669aE?hc?6iIdL zff(}E2fp|7PCD4B3VGF2;j{aLDL-v}q0$1YM$#$YAF=``wv2Yh-SAu=wtRNUO|#*0 zsgLeiVCYLSuJ-CQt}vzhgq9+=@ty2k$*FYY3Vn666{@n=Y!2Nt`_^m_viHiPF!T|+^U=&5cAsp zgkL6r^kMMaxT6f$oJ`;2bwGVuS8Q^H*|FFpC7sJ^&`_J zcii_n^}YG#TdKtltG*Ohy`9)Ov*NCv!~bbi4Y*G2Mk^CoXA6b`pIVE;n_N~|%gB+R z=u%YEf#+h?VXvGYtW_~aB@Bvn!gJ~=q&SryP>ZCt3kQPXo`UPFuNqu8^6EK~SI0$b zbn{=n+!U(%tQ1za^RL=_3ykOEhb}|gi*F)Y>EazuC~C`5KAtmSUcaKRKDpB(Uiz=3 zd7tc~k?JI-cD;D)7phV1%-9=uRT;vp8r7)L!*~90p(nrXl!R!SG3iaEM^~C>m6x}0 zZ)e0GT3SNK>fWm%8?g zU3T+hh}F-O8u}y|;kjuYG=pcZo}NTA;EC(Qh@8a-xfZN8Q3I{5lV2={vLMRb?&WMJ zGtZHNJL@&mGjk>5Ftks;Ss_|(qKp~YrDQl(FGAbNmE2Xa|47rtXV@%dy#q5!#pO&8Xxl4wyly;nngWqmHLgp3fQ z+}#>57SO<{+fb#;!D0xs4Z3Y}dO7%@+e;m)&!19@-uwwgHrTP@((4!6s)C zI^Y~jPmeN)lr0GkuME_@<|UaCnVU#HA6?4xid@%X!DZ1pd?`;dT&8gYeA(Q7ct!cq zSA$XmYXs&OX`dOu;-swDsGdQ?^`x8sn7<1_8(+O1#AL*}VeoFLN8%TMz+z);OVXNP zEFAPrUt*K5NOdY66Uqo~{D0upJs90dE-Mo1tYX~mde4ZX4ikUBVtD4$fwwm1p`?jT-0e4h;)?uY9jWt!3Pqlj3I+U* zd48f{aXY$LeQ(vp&;dRD$3~Xt-N1yzFLPI`xGYJntE<6qk?38Lsx7cl&;=Oiz2_qG+9#E&FT8%aJy-+@zRSx0&)8@}houBeVLhu=T)X zJ2f&}r`vjVQ2&yk)~`&aAgEUW)#v&&6YawN1**C$c?TZK4kv-QM8gL!$ z-`1GEYS4T}d@I<$>Pvf9w8^GXH#S&3E-RWY-vdW09XMKHK&Rg9RCaSCuqKVCN}sNT zFE%!)GrR)DaPp5CfVu@%M}vBl0=n4i6TOiYJU!<t zg&s7XM{TZOe`j9HPd?n-6Jzkn-)6W_I9j!$%(8%9sR!<)9=MnB;-!pvUK>*35A+>Y z+ZT|CI49UKetB)#@|M^Yh6vDoWc`3s601Axp_354M%1DvnCY}@^K+RgIB36o(9JrW zOJby8rgw7b-g3^@OC81vlk*W-7#(XX4XJ{WBjB_l#awygvxiMSlrkdUwGFeBT2MTy z{xOS3TTYJBz;O=A^lFZ9r)>k$lcN%nqeuYu6o1oxJ<(WZWc+z(rFF!*O-vrY z@ZL)AZ#t>Mm^~@2;XGn>8_tYEd-vrMs3V95j8^ZI7hv49GMK@1by{-yy@&pe?FmqZ zd@E)RDUFe{u;S)r+8st$DljTNF0yRn z=<^D14Ys>1p0vNqJ(};A)x9}ZmedG3jigrpZ`*D4R@>?YQkj^+f(yUD=Jl+A?Hzw@ zG{b@cc4?h3P1)%2#SzK`l39;#Q@X9>_UAczDd0Vv4IY14BC5w3R!QzBliI~h>SCCI zXF6{bzv#j!(=a@=QGO3gkXX}V!ejT#?h+MogDT<@fKDAu-nS5!3KhXf>dxx7H zHK^42L=Ci>QSo9QuAUCMpL;2P*wWV-cYNRoigi1PNKcFu^Nx)ulmUjp$r&RN)G|!W z#{Ou1Au!faUN#2WU6g0qHgs2}i9EvMGRc*I=TZk2uEWNYY{2Bw#N)CVJ$?X*lT@i| zhyPf^6ySDeg%fNZtA6T3hbVAyP25%NE7;BrBd+XI?4$VnhSh?jc*q=gT=qHuf4Z{)p2` z&~T^f-!SUL<;Tl=1-dy|-<jP~~EI;_lF@P11E8mw^p3U?CjJzL&c^~~oKaN^PC zrQK^EhfanXVOF@h#|lB16~OttpFYf`3mjZ{XXqluOuLs|i3mo!2=s<}+HeeoL};LG z6*{USM+@8?r2NIR<`}%r^%0ZzYmVWJ%|I?=l*nMxH@ary-^w;a2NTj@(I*31z?@3< z-U6u`UI9Z~$xwWf`t~1uS`q8GUKLR1(nHzAr|ZYI+D&zg9AU;R$!BQj{1(+qK*<=}7Z1hCvC@{2Xq z_D@GQd98`X)AJ<258p0KWHeo3S9Pcsg?1-6l^s$whc zkR((By%-BDhqIwSR>CnS*hXC$R?K?XEWxZF{i*L=@4on?KWKIwj~|PX+liBFZ5mm0JI%ubV*JQ~6cw2kH(9IpK(QOIOhYmm7K0UxXsMBp$7t9R#h>Q>+jo}U zvGdjV^TR}>?uUcH)Z#Y`D_91x_!!5*s^1ogFI%1$f?CQOc&|XR*=M=5I=K;`TRj`e zJJmSqa8M*PEisWnTg6Qqp6u2_1gcJNs^$J!*Oo{{-2P0zF*@+wzR_o$akaK`QH@GD z_sOg+Qkl^=f7%LJ62yXW0)NUrHzWI+JQn*cr0*TcqwnlDt6_KC#eN2Eh0eM2QFg1u zTxJHek6#bE9A9m_dZ)wFW5fQMF>3Ft$V<+Ynol;3?DYQ62f82=&X$TTT3Pa*h~5(0`#%0P{!PGuDHpjL2!U z9dzXtQ@_Q6+~0_jEg*kk&J9%62#3lSjb}HwMGU&Owp-=Y+w@J##WQczLYDHe?<{3x zF@EF3s4uI?aJxOahm3)bJbOHi=$A2k31%PkL5@ClYl=udLK=BCZ51rW9k~S3wf;J3 z@Vb$-9+Z`@?Z!N%(72~y>^_sAT0 ziDBQowmabA?tmYY+-jioow2aIc$6Us2z7>&Dmc^QbVi%y6W9JH^}s(&YS~brPqVuH z^eUJ6&1%?^*}&iWG2&gA*(&80%2;$`Oq$Qk-s1Xq7`?xZth`c8g01+fSLVBXEHdZ% z$D(k}Np(hj7bK~|yb?bA#%IEqjULw#U%Jsc+qWNMT@zU_P_Svi@wS^p7_l6i5mVe- z{_Fm+Q{~69ZO>S}tF+)C_nSODgb&2>f=FF16`Ma z7~ROqGC?j8kKRMI)$DpnnqH$fF)4rsyJd_}Vw~W;Z{9ppas(WV8j9q{vJqzolDm3Z zC}If8VDs1C2PARDK4!sc1aqD?^uP|Wj;RGpu4DS?@6ae@6hKTl|&(;vgUFZoEhE!t1QliddUKb9B6$D?JpNXl@+T|4)8!p@h;<~+@ z;%{gRDJ+N|k>!84&M4oX`XbwaW~YM(z$UM0({-<3+46vs1?R_4!=!*65bEc)&j|Q+ zWyt6hrb`noYectwCG(EqkXd0?9+?bveXQ2epGEfAa(Sol_6u-e!#O9_KYLT`(a-%B z9jDg~UH5c0U>VDMc`CyQaJw#X(_K+tybu?q)Nn^Bom;bpC!lR@YqN-=@6GUE4}(17YOFYVc4y~|1eB@-|L4< z)xgd%-Z!gdXjV%e)j?bN2NN>iUlal5uG&%bx}(YBN^qozxglOll57y)-A;&~Iq zGh%daLJgT$kE0XkvWg0v^kwYxp&#YnY)sq>ZkcsG9^cX{*Su8RAGS{glVtV4?PqnZ zHHvn#LAWb{t3%+fBZsbAOOOPqJKgwr0HMFt6iB6PVv~@}0xhBqAI)Md2JNJdgXi!}5hTW>!M}O^ z|B1xrCx14*4DrjA++zjaF~T)+Sdi@q>s1Ym+8D;p? ztL=%B)ic^;2~+rjK#4=WrM`^1NP|3U^N2=BkGm7sR%c!lSCvI1P0l}B5dYM>!l0|K zw#JSdZJK?GM23PS6JA*tO-p0$J{T$dQJx3-rz@8k(Rz`;<>=WhN9XUjzh?baLIDEx zXiV0aCqva$3BUfw$Kg@@su{8?N-c`6KJt2aVL9CnyV?Y1P{$b2z0RMpC#W~4;9b)8 z5PdVTdBFC9lvCqvXhZFtJ1$Z)t5B8|JgTl#3oW~1+$|m>eP?@1PbO0m#Z0DxAg$8F zcwQb4J)oNWG~8n}C}1Tk#A%AOGLih1nyj-BlRH!ZpgEw`21dhGjOK88Wq_^B_>+7W zM$hPxL_`q_ZH7t22da@em8s}Bm*JXw&I&6{|4rFYjKWtwDD*G^S-I4nL?Gi4Y$9k`8c#C36R8zcYv zM}(<9C#Rdf(zt`hztek)TLhc6k+ZX_X}1u0pAMQ&mWyPDC|a$$G-yZhhXoh&DR52b zA5%NYJD~o~fA9jK0aiv|xf+4(%6JGPcq7~8ir5qa)3_r;u+e>pai_gHuzp@I2&;n| z8KZ7wgkS8ECGDSaUb6$#P( zdEF>RiDdMjQU}$QY(`x6Jv`JsA|DN!R*fw)(Po<573nLg8!4Hw1FyA%%*g8Q zoxElIli2Z3E{}hbMfB~{DBrtLzT4Z0GQJx1*H>5f{&Do1$uTdL_b!hOk{;oi(Ts7* zQ0d-XkEeGMpPujuI^i91Egjoa^otyr$cv3^pHi> zSykJNkNAnIzE>WFtE3FmncK^$_3>o4z-MPI%;EgP3cru1nCe2%)gT6gDya{T$6|l) zU-ppZ17i!cv#490W*snZ-%zspCyPJ0Q+ObMKfWsplLAUz($6jv@WyASfA=y&g~Oi> z$e+00eq7cxgSzvmEyQkT?J;8-aGCh!=YT*i&5V8S*?rtIyk99D{!iu6_nO{{8zoMbTn6z2@ zI69Q>wSROi#FLR~;04Ia`~NFOd|5@l2K7ozk3tZ#`hug7FXQ9#hgUxnkk@-sbReJ3 zJXvX_X?i@!U|Bnn^0{u>g60RI1SlR003&`c)UgKb50GZ!>)C&Lui%ha^O>LvKSsl*q^S z=$k?D()iXv|Gx9J^-1!-8~zYlgRv#er^PgnuD&6VDC1=}WZQh7m?6;|EcPScH`L>7 zGVlcwJ9`~7vp>8mw3VF)@s^|D-~-`NeK__W^XP<>BD|Rqu_Neo&zk} z?J@H7MP!0g`IO#4`hV!}XU39(@U+=e z!ex4eoD@gHJ98g)F)v5!!kG}-wMhDM^i|`s79f1rj8g?OZ>JPvd0Jr|!?S;3l#J8n zE7hiDcs#Rn>dhrlwHq?u!Nq1etCnN~vS*uq3b9QM(;`$o)8f(KmP}gSrXck%E%~HVqb;Qzt!z^KX3cZ+z}VdOQ+t~^OT3)<`TLbxk4OETJ*_azcm$y2E@bDUc!5jaG4RIbKfxF9_C*vPF#PiH*sxM1mjDll_3lo z2%{dt>2XWh?uw!UX+@uvhfBR&eqrTR+s?0w*JM7b9K+~WP7)i3)HsbVkRfKMGtF+P z8PI0(_c4i&^NgWsr*4|YrqVwqI#$mON=^$WPW?IRRK_R%1(Et-=N2gWct z9O=*G#VqdpZjp`LFj`klAq4Rz7g~L4F^#(F{V8~tc%%LtWjv`L>*vLr`R6F~AE+w| zL>CeGV%RaiFj>SPWY^{=sVPe05g{asM~m$QRk|S%sp}!m!?Nk$&AV3g{@a5zra@~0 zv}oFKM9V8B3@s|xgF?e1V~rfN8VX_>4I;iJ0xgf1npmPe?o5w;uh<|ui7Xb*Lho_X zr;8*@3Eat*RQz+hfF9F%GI1ceG5u+X(`aRqy=>(3t_f>w!TJrpqQwol1pBpSN~lTy zbPb^S0iCPhMIMQ~YvMvL60L53E_Avs^zbckHnbE!Xm&yc*O2$b$0#`_1Rv7;qPlB+ zgZYn!=RfLdBbuKSYV=CSuzHy?H6A-i5-cgNai)DYXXuQ(K9j6iNGN8im@xfyjg`m3 ztgdvJWq+Hz?y=+>+y#*pR-xS8s`ak)xzY5{w>dQ4A&lpxJOeAQU&g2h9yAl;4RWeH z@t8vBl#}t;e5Xo(v@QKf$px~MU%2^=y4kd$wK1F;tK|5na{B{e!n;MSwSpmRP?PbM-($ygEAk~vJ!;EbeE!qfUYpW>aaf|-~r z@07u;MiNurzliNcE%|D(CoiWJU5s+j1~rLsO^lb|X`?HL#0;5q|LsxWbj|Kc>usZj z%o@IHeuCuY<}GhL8ztx>E!mQl&;sZz?EftS0jLN$Y?n0d*w4{F`4yt&!=~qnTp~$u z6itJwMQ{35t-tEgWZXQ;leH!H&nl=sBUiELB4cOW<<3=<`~L#tRZA$UO71W55`_K! ze3rnxYo)Daro!>_$ktnY5K8IOc|wo98VRjLGnz&Dr*`Lp>biK7Dt!L1>7MZ@=Je7t z$EJ`cEakzO%2qu{4JNv3aSJB?l0`Y(wWCm#qSQ7QE65=jj~Y_fIiJQ_(#&rqKh7vXqhJp7WXeUyO}#I zQ^)dRSdwgIb$)l!_i49ab_tNT@9cl*5Xi~d^y|@?VAt}!Sxx?NFMrY7BX`t=OS}VT z#%qhr!WG zNNhF1shPnBT0OaO3u4sJ5nl-GPBW`X3om_{#l&0wc(;CMJV)K+(Lmmbm$q}7r+&tG ztUn(khyv`+z$$uBg$lwd%z9Hn>K1{rRj5`?W6t7z=ei4Jt(|wlbo%sDw1I*L$GiZk zfadT4b!n@NXkNXwo{c0?_ZjweVZbGNNs~-{k`DU=@E10f3s9z88v;rwZh_~uB*Xf& zd^RnUx{{a|!Sq!TPm1Epse)s(kWWw$W^df(xa8}aPWG9}_(li3S6|A@Cxes;Yai>q ztDtj2|ByuA;%RQ7aJmL5)M@26WO$+ir^m%Ehh*3&>?uznIWn8s*&-s_3D1)JQFC$S zdwSJdx*eJNu1U0Q1+xi`F&9V5St5t7EHCA<62P}~WC&?Q>ITADvDT5*Hm+|}4I2Q_ zgl`hh7*{Tschj;YJLv^wa4x7={0A?E&B-4exV-o$+H@IxD#A0Uu72T$iTXs`jHaam z`T3uy@y%ODR2#{G9ZcT5aNxHEmm|-I#GelZ;k1@IRXYY4g*bgTacw=vO$cm|2t+FhuEgFh0CA~qQF!0-&) zvq9V=Dp&bLkXX)*I=B00Q)D>;LlDUo{mokB9LCy|ogo=09yu%r`oddz()yt(lE8jOcAL((!dzzTHNA*dtX-ArxLF>!hEK&{OKFVyG0 zO6~XjraeVJ|JqDn-k{+0i5Fg8K|&+J%GC6`?Wr}oS^~C^_TBhQ+0FIxY=h(?Fa2A< z;qA>I#wF)y#$9vDCoT10V3pgHgq9T}!W!k_ho5sOBQ-hcVe4}=IkGgumctR~Wd|*D z>94&jijsH2y`!hcloPiT#d1@kT53ZGb;i&FA(OSx&k~zT#~KVKeS@xEu+W|v30T*U zgU&T=*&Y`hVT4m-P4oxzX0iGb|H|vLtJbL7DxmvUakSy`Px4`6B=q?D z`?TQ_=(ShZGrA`_OsMTE?)m{ul@B+BFcsH^A-9swWm-10K1rT`3l4M9F z%OeD!VwAix_7pRBkUA)%ZNpk>!v)a%yJE2gvu{JVlkz!mnHORi_%s?qemASw*81c; zWK*O)$~eZpfF}Rw6dx5w?&2>)h~aimPLE685|MW1x3n|yy`y^fX^KVSHdW~UGImsH z9CVw>Nx5PammUf@7#}tKdd4qvpOs0m(f!UsuW9jR38QHmJhKAFn`+kHaCUZ^yR{Dm zeLVZH*@FD%tbrS~({u4C(TOH7W+6tR7&2XDKf~-p0xq;PYD-mbfaB46P>n6A6iqCr zys&6V*mMCB=(Daqv|29y0A`PmScx929xdG3t;;puTWcz&`bS~m%~T341UD8ED!?)%WzWA9;F@Itz`qAhZJzoNtUwaqM89y@N^ zKR*SkMw(0}FwN@NGMF{PLO@SzA>1MrGC?{MfzcF#1AyP+PC%4BelyIQ{;b?P<}I1) zU1d-o6~~tG^Y=~m31dBL7KCO_-n50m$?CB@)~4~9E+DR?tKSrpeXN4s0lqVK;~zif zm+r_kn^b9ZrrEOqqZIObc+TXEFskE2&yTtFQ2EbT>0a$%b>nHsc68^8Wq@hN5Qn8u z*)Zyl%641z`KkWDl~4Xpn6+bbn|B1= zT6Q-8)W569LA$gUv%>@y`}E_ozcZ`g^1E}$p;T;tf0w~C$iSe}scVZ^w|N@7CG8hZ zX;l5*@{qOd)9gB_?buvr)ZlEjrUFMCg`5 zC@VgX3@K67pz{Ngw;f;vcKId6J=%6S$8eg8jYDt|X9R`{NzGT(iXHTSGtB0skfVx8tp;zLp!YB6`OSW=>+D%XfvqnqXC;pUDMJqdgt$K6F0?g z){(lL8Z}-bb<9^!muiP0e_pL4jOgzB`}o~L*$Bobb%33AZzLK!j4PdeHo`WB$Djdu zBsm=pOYi&yB)5gsbpWphMWxTIyigfT_|7R(6c-u`CA;y~)quIhh$+MAe$$&pqUU1K z>@*VXPSg!1=$(k!u+(Ru+qi=*p3EHksOIf^U9zt&J$klX%myyBPErNulXuxo;`RDl zZ@+4AT6spi&NLah(En&I_(8%OS!czyHyC16uH;GE1hxQ*~4 z^jyX8mgxE!yRI95$!G5=HVD>h{l{?%_2RhOixKW2FfFX!YH}W0W6iQ!4C;{GOUXew zTPyg|?pkkF-G;+5RjE-=ZOto>rq*(&CqL=edeX`D_~1Zs^EzIr6!uD!J5_^m3Oa_} zP>~J47aRB;o?fqqR24J0l-bVsi_3Isxy#ffqgu^w=Byh(8un`C#u#;Y?dXcWJDPk5 zQ7y(0=8O#&5%DM|;&IugEy^}+E|2+A#+c@&Cya&FR&+ny5_4xwESTA79DN;SF?JTi zx!FS+%@fgJ5hxiAs~%#kZS9vBrLE0E!Zvr*!HJy4Yz);sHl763JcR&Ox`Mcrf7=)t zWp1m8SEE&tz(~`X;220`#Upq7MA-An=CX0gQHd7?m7xBVN)?dgTZCc;)sjgu7%~wW zQESIF&Gj>|ilV>QLFhlo6d!In$Gt&SJxZj|HXj?U%s_s+OdYXW~R6fD| zy#&%9k^A(HLTre=JGYy#7^{$RL-$XL$BIWlF zT~}KdT~Y?^avyM^G|p0kci2PFs@pcT<+L@kuE}PU&*S1E8$1(jV^~CN>?3g$(<&YrDGa@l4F<6QCOG5jf~G4H#=6 zBXqQ!wpV6wpo$u6rZGk&=8*g7%6;oy349XEO|oiVEw&oOQ^uXrB~LeP7w$5>8B+xl z(3f`_xuodls|6t6ZCV^QukAAAlOJb}daLG@_FYcSTnbL_x;0>V2rU=msgm$%tlR68 z`zP2Y)saQNBcA!L2?hiWI z-e$|s+;B=36Lby@Sn-XXOQZ^7%2WnN&VI#otNtqNu7md!&;0u3Lz=xBF7Lk=Dg-^AIXPb+O70dkn1q(Chdu+ z<+}ZPyk-AoVM!m{g>bL(=4r2XaU-LS& zf$I-b}gVKhkX(gu&17#=bq=o_4ODnDT=k~t&AJ^r_ za?Z9{`pR!?c%7!0`#?%qkbKO0D7WRMz{&yvXI9i#>4qX=Z*9Uj^2y?{#|5Y+2 zxb+{CygQf1Yv#9K2-;H3J5!CsI#N>h%JEOO!>SvJ^|7aUrxVI74)osEUr1pD6d98~v!c-|phbc{ z?-I;qo?VaGzaX(j3)(jcTIED@lwnUO9CgVgdAu=IeKYsZH<)HYJ6G9LtLshj?^%2m zpTZaa-tgx;1J@6p-1k&DNoV>MmrxzsV{bvtj7d|o?ByP21Z5IU7|A}XB~*JhYQp;W zR|B|3M{3^s_szwT_B)$e#og52hS2tm?;yTX^b8C@3-a-$yP zenW})*+lH%0l@XV!|7Pe?@F0GVae^HZL+h&=5(9pNuUWc$->a45W3CpW{(-F+u~HT z@8(@n$j<6B?uW{2zRhs<>1&YO!dFx(-`!aZOK;ta&;|V7-KsB(??f2HlfEJi6tr7I)dajDRw!sJP~Z7KH3TGp1)li*ZI3* z-isQ5Ne+B^dGOly!n1pGonSobWz#n-Bx4GMt0#|ZpA_A-RH)eXu%{o?pI~voTBM5y zqk6pFWB!TzZ^H|U)Ob6bCv5^uR;=KH5UJDJ9>)6{4B)2*( z`^8=t%sAKO=8w|$r=0GnmfJHPb(P=i!|4gxS$P$gs~4&%Sdf4zv_a9AYy@$X!n)<3pP1-YSnUV zPp)Zgg$AZGpJ1tG*IqagdtCBO>QoAEZ>sgWp%KcVvPbH@^%Xkwv#xKNt33=z+!=01 zlZu{}da!CU9Uk?Sgz0)etF6XWC7^kwQYauSZQp%D${)F=8$Sa~hrWpRSc1oE-kDj% zsXv3{a%ph~nY;4j$aPV^=^gw3_x7-vkCqPj?@M8?NYuU8>di0*2kPDQ)pYWh?Ii04DQ+JfdLgH`!0yD%LHLp&a` zXN!C67WXZ{^sC=?a9AcVhv@(zUjDvQ3C|y$8F3J1)eN$k%}a9FYBKmx(71R0lI^X> zpUXZBes*0eh^O-Tfp7B`5=GLZG)~=!$IVceC7#p4I=_fr6pRkuCjgrKt{i_uzapAv z|4H?dZYVP2m|qNY!$F}sUwTy1W-V3t6MOiA%s zGH(XbNeUhoe$~WcgPaxQ9bxpU6MCde{YY=`lXMh++uCyWoE@%(GHz&=DOU*1dZ*6k z*US_!s;cIahb%4bztGbK=r6r-EtF@uR9k~;7QEHW+C6V_urJAlM214hWDAtrkUW`R z8#+vf0Nof8xG`i70d>`@5qqLTjE+LarW@Bthg&|NjN1PaS%G zyh6xK_{c0Hrk@*T3kmIuDOvnCr_BZ>E(D4ItO2LQvDkf*^?epj9asRi8-2@l^8^Y&~( z5!?Sn8->dNb?`Y)lB?KRjvStrJIB{0kFaO_bG0p!f5iR88HE*{UK+#)2i=i`waeTpC{FjpmF;SLHAAW?nv9rV2nG@1aX~Gi1F6^i3)n zEQ?rYVOHci8|^B$BjNnGZ#pTtBL+b90_qA619U4;CwA&?>ohDg1e2t9cm=&fv;I#m z_WYQw>&F7IQ(T+LP=`Tix#F3(qt$RVs>jTtN=uovep2#2{l-9D0<*&Un*B$9MxSn* zYP}(gkNWrJrN|tNyL*RS)f_erZzENRUcsLnnfhbLeSSA2rKHseW@`v{{e&KDrR<5k zO?EK4n$p%c)(rPrpv8|Pq)8H3Pf{cgJ=G;qEr_HBlubVovS8&g( z9csp8tVh<&=BjYHhK(0l(PeV{56vI=+^?Ng7e$h2G98sU?j0Esfln=?9|ODy<*%mt zerWws_As&sXbOE_C0cT6iq1)DecJ}4Yk$@7Vsvn66!tJNO_AvUbyTz#E_K#8+`$?C z6cRH@iL>?1b1el^s#L!cyj_a$#P(N~-i+y~-8;hARw@Q9koBpz~j z2|hl;$|o<;g6-rphT{?(yBw~ruJ8FfJz$u$Pf&gKdcwtNyH^VMKk&VT@$V&!lkH0I zG-Dp;(+o1Hv=$n;DBy!dCDSp<@EVecaE6o8SV9{bLi<#l4 zYCW3g1?X{fLn)?8@mlRu$6@xMNFMkV6TfFBa&U=HZ;>FzEAb-uWP3G2LHTLXVAcqW zMcN9eO9m$qP^|Ikkiiby%&k;$I(}bMZ#6GMiT?M-<&2F~BjBwO`D+WTfqI)QD`|gJ zsE~ic#HU+YzgPfui_1$#>9oq8WyaFhkGQsYQ(Qvn)VDzC5P&pvW@9k?M}9w7p=)v2JgHVU%N(j@-0{S7(##cM7 zqIpS91IE;|f|rsl#K6d!%mgm!^{uEL$6Cc*QHh#MM1l?iWJ?2mw`~9HU?A?oL3Eyt ztF7vvrIjDvRfpr2pM)7sG^0ZN?!V2=@YqXuZo+A7tvTl3Qi^2&e+~s{+?i^u8$kW$ z`wT>UtODbD1ZY#F7%sI?FILzMA_%v1>48V54V4=|Xp^=zNySW3jvC3%mmA2KrhxQn0-m@*U6R zC8}rCy4PfFP?NQTc23RF_;j$kEl^I+XiHmBq}U*MdmP!n&(>s0nO*iVRKKME-~{92GHFmmWHh)X!KQT;v`_Fhk1HWOWa8 z78*>~@wgF_88}slXampAvuDrkQvKA24L64}_Q)h=mgKcYoYP(cZb#x`UeAV4=h<|K z!KABUx6dE_NmXjpBiEWCD0ma!>K+UmgJV>fwCVkhNv|Eq^hoJ6!uS_{z51&Ltl9jM zsSvLl&nxnuLbs}WW7#sH9mF$kCU7+Bz|z^o!stZ%Qam4kt*Xd**Gf`Cb`A<5aHYrs z-mK=nS{Mvt?hvscH@AlQv%G|E`fBNP^XI$c1G!5Zu--$)~=xM zMIi+g<5svr?PmQA^aic5Kx9xEkE#f2i;1yYSPc~IhO(9%(Y>~&f;(IOcUyV8u^_HF z#^4|I@$6Hq2a<2|VoRsUuQk?nv_0s(gQV59X_BiV4xZ81L3Aq4pt=P}=l(*~Kr{EI zn)O4jUI@bW<)jaUHL_?!y~})UFfJJk8wU!?iwQwnU`+X^RR(>qua?UDfCB2malQd4 zD*b8mA}3y4KJEQO9cnI0-V!PMFa%0eA+A@c(2^fJs&Onas^}pMqXWF9(r#Sx4ler= z5~r(DkTZN^NGwr}kfg9o@VWMU@cr#Nc6&FK21SWYw7K!AIUKOGL<(h~FeSD_-qsj7t?d0Uj(V~K)wR-A3=T$$0*4DXF#$G`H(T zJiN|%>W;&9rpI-e(uJaxd1Vc>qVR?JX;S&5IVmr^ycPW`aWD8do4Y3X(k1CG>0b_2 z%Y(%1m3EfTR4rAhn&96Yo|_YJfw*L`S6~?+lE;1Jdp?*feMk12o0rI?&Y-I|{(BuG7c;rK22#6+X(Ft>h*qt8`ALLrGMB!l| z8Cv@*n`yx_$LU!C3G@?5oR0ZoYiXR}Do9r_k@X3b3`EA;hl|)bp`L6=O{+G+z%)l! zO0u>TiEb<@aw$xAZSL99Lpd}Kg=zJGXCc&4yl^L|?S@(*M4NeLr`?@;!e@R(p##5J zBwFd&($%e#JtBVZonh>J$U6RR~P+(Q-M4ELFfx;Whdmq&hy5;sy?g26>4!g>DPDue`NS zS-)VUS@gw~)M@m9IV%XU781(lSg1qIh3R5A>WB+pWhXM3Laj;w3hnPv(9*%B_CNH| z+8rY$N*(3h{qC1l7)edHI(l_yjkC5pYf-(btqwbZcz>{ zu0CRe%_dGEf$lV!mybKPjP4>z2U3TxTP+$hE&T(Pc>ba=<&aun!~w8vYH&O6q*hJQ z-$|>B!~oOl=Ov2%M?p_+@W?%>_AYu<49UE)>SpUSB@V%CT=mMY@)gSrFvuvCwA?2w zOg1EFYO;|QJ?U4{X$-Fb!p(?d_5IFHcKkzMoQBoj!RufjF$W5)h&tOLwV6h`NvjaR zqY0;ZR&EfPU*@ht0dy&ZZ8rYBl`X_%m?La}>^kZ{0FXElvKpCpf4>q)C1DvL6siV% z>D-9AU#$bU!5FaoLYlmb@#(GDxkTprtbe57T<1%x28;00RoX>e`Y0>^)ueJ@A0IfuhYvpqVX6oGDbHsF4$zP%07bM7un@pzHDj}6 zTP~fsDbt$?Rk}&`ts`+wByIuFIh_sMKc9kqn##hVAtC92cOI3huI5^%Taov6GZix57ID<|lH?~8%4(zNkd>*_ zDYh$Rw@Qu+L?U95wyL^HoewubA4SVl8AP_m@nTJ~;wrTc<&44UgJv0gAXqZ1A2U}< z=@*mcE7ISfzmVN%qj@Kls;%dP@8s+4%cY{hyS6SCs)UF@yqMIUtF2NN zWk}mFJsirUQUFp95$h^8C^SqL!2O2jmXfoYl$_P{-yTJZ3E*8gnBKObJ4B%pz5p!M z^cU%uDn>q-hwu?rWkL0*IarAqJV4VgeEbMxG|micEH~$nS8884KFI^sOt3$+{@&EG zOdl62L_6H8sk_M7;P!6@9u%uwuH>v4gO?EtVRI^wA6Bt1GgzaUKJj1A;;3jDL4%>ROTu=AI(GFnNHPQw7( zEvwO)Qtb+d)5G6ezz)pT%_DMHoosjgfMOGv7Tys+bl_+O#D;vTt}^PXm3YbA=6qsR z1hnjZ(?5Y_!zxv^PF^j}%;z^i1}dD6L{4j&EeuYlla#kX(Ns7UTh%0txtjs4>!k{o zOyR?zwdE~|s`l459a7m5znGuq+3Ec6CRTF{Dm>*cFbNo$KyZ>afFuuSp>D%eLw7k!^p zFzOxUR)tUFx-B6?q7v@N-Tc`81v@08j_C^=xx>7Ee}XPvrwE-V{Ib*83f&uRW)_SA zg40QAH95wdPUqR3s|Jil7eKIuP+BqQ94rJcd}&Rm=SZ_BB;aDe%&Gct!3Ig1GpOFH zq1(3pF&WFoCw*{xbRS3}0(h!YJAjeYS>~9Nm{xcRL`_*E<^9=;ORpRiL#D5@=sK4! zCdi1sVHHAQ3YRWfbcl2jzH|A~N3aAtAYkE`bgtJbS0l^QiaHkP02B)*BDgesMznKe zSES)$8as8&E|f2b2303%>5V^Youmc~-~ye_^mWia0mPP8N=9&gv_RKO8>!Wc=oE2q z;m|a9G%w26mYS6H&XXW>KoqV^7wm;xkpNUf5?#E6m*eFLp@ELt8U(hF?GXY z>bBat7%3(`m9ki4ohT}pBr87F{{g4b5vwHLg(d}a93VfI5z>>Yk6P?Wp{<7Mm=E5` zsY1_IXpVcvdj4sUWPTO&1?}L|3Bg#3jjN*c+;*CFnqAyJFiLtyNBh!kU7E9N0EsN` zU8eYPHNeWSRzl1a!dsLNO!DbBsbs61N6pc5DBCf6`GR_vSeQ?XKd)W{tF_4%B(5;p zQbvG-A!paaX;38sCt_OX?G_KT0^2|co0 z^g>W>&a9YT5H>1I79gE37v}cmzX+3;ZGKW;{jyO1>#_gG+L=IERb1;|F=*ldc@YJ* zX^eS)M+P;Df(*tn&j|uN2WCV?Q9y8FMiPZYP-2{j2#6En6cRxZY(RHn|x?%G{vy7x4^wQ8MpZuPmh?>(n#*SEj@?Ojhdn$)_B_q*&ddR2=e?QMrt zr>GQkIt}O481-nvU*euB(a!$?x)1sY^$+FJJ{k1U+}l56-dQx*sPhb=f=BcpjBZOh zk5WZEhZyR~6r31pW~(7~Pg0o9UalJ3Fol^Fs;-<*Y18b#+@|a}=9eSg1O+63mhAZx zA8z06lsD%8;iFHfLJkj8*+_mz;}tg9d+Wk4zV910<^}In{uNPoLUvq)jYMqiYDy@P zy=AJh*tnk=>6(dd#n0q_!W`-RgaKw$6(sFM7K4<-<9JA-`v4L&YD(036unn=#)j?({$#I~s!A{KS#Qg?d++_y+G`v%nl8cr zXpka0S-aqwpxr(6yCWN{VdOIq6FB`{kDJ8cWeC(qG1?VdYW7TC4De(x>dpR!yhDtW zg7j7oCU?FRkPa{pcgI}aG7Y4=kcJx$q%vib4+>`&x*|O0fw}=rYPl>~FTA`7D*gFD zk5U9}+p@sTBmB(d)BWy#dP0-u-v1^b%=Lj}e%fXRH27FsZsktpkHC$FSb?_Qww$d2 z#zX06gSrf?$JfWC={F!FxXK7!avNW(_9D{$rm}RCbFu5rO9E0T=D+%gOqk~d21diS zGzn&%j=3-CPX_YWz$$8h3(%kh#`gMCoj4$J%RX{pC%EO>cWZ^$W%} z+0^UJw(FHje{)u46~=|58wsucp9X8r?68Qa`Oa}Smq~kN)?WtBsxha@w*3qA!|LLIRlV}%LgfgQs|6e^fHvQ#e)0c&E-CVQNcpY65tTaXc|J#RrY1h z%BjtoEE7d6x>5gs4lA{@VS|P2ZqFh3a8co^@GZyenm*Ut-2pIkL;s3+%+jXiPoU9Tp{{)H7T@Ss}m;K(E`s zdT-k6*IjqV;!P{c6{9LH(W5Q$cEXn?6Psqc*>J*3`h_33P#`W`{std8u_ZN4G9VR5 zU8zx-7t3nA_|%K1O|PQVq=Hh1`({+~I9RSe+HvMqv(pv@k{R(0hXruUSgr zuND(~l6%s)&|cmN$UcE+<@+-`OI&2={UvwD;pLj(o<^fyv-!8XK0FbG-f098m4{PO zCe4t^w@rd{P!<`R6qWR3x{H+M2k8VjhHdy1C7Q$O#QFf~1bS%j>3X8)jy*2~($TS_ zuoq6nrAoA2_4@J|n~GB)8YUVrgaVojWmgypOS@(2S$j~)e>2kybI<&nU7wFNNlOug z&ISN;Sa2lMp3zXNd#!nr&QLD`!qXfK7vc(jDG%i2V;bo<;7d?gRCr>FeB4;10%4hC zQJw*{C+l|Eq+dhMWKgu(-L}8D)_)+&p2$X#73ac;C)koNyx}j$BIiEzyPx0NpJAo_ ze=3H|4abW=w!YQ$S|wYjDn3>3JAu|Kdwz`H2N282pvNv_!QF9d_1`{uv9wkQ zqeZQfmr7sVu-X3zzMcq(&Ycn#^62+THr{^IDrg=3JjLlAT!zwg4=%@td6T|^q#{d# z$+;`fRR(cIy*m`fvBihyzxRC43`{6l1^PtO;8we~Kf-VWs+3@1BN4VCu4wxmLmqin zlTD3|CIGCmHU=ioQWnQ-;yebfJ)f@K#Qq>YY0AMS{I4{}hj$XUMBk|H3LgRUP>APD zPFv5IVNPDhsTWZ;9t)EN3=~QT0{fcQjj)|B&iBBTR82uuX>^CyPq>cFH!FN5DLJDy zuLzTF+hj5v;bmZF*q4!LdbWj5!{=P>W3KBpx+1j{_s`bGrAX#Fk-^8H7H5V0)0rvy zmLz>1h3K+j%-GRaj?)4y1l&M*6gu`9DpC4eqf)a(ovw~CY$2l&D+^!AsFo0#`p$6t zJe|bI3cD)!)@5!7t<<2M6i-j+Ml@g4OfCK540_z2qox7^6~-` zT_s4|TB$Pj*OWX`%T)Wj(8HR*rnpe8#FP8|JX5M0EA^hl@2@;gwjUFWX~v0C0bxn> ztRPDxS3e(ccv&|WYP)a3iD2P`pCd5}okvCkdedMzEv)}Iv6N7ROfO$D;^S+6$jhWl zK=U#XnfhBIW=_h40y2GNpdbdz!IsKWL|mku;2v;#0*yp*dbo=VBL+hvZ0IP(rhFBY zuNqL#CNH0b|G+vYN0E84b-gl4Jju{`~8gggW$ z7b6G-fYiy8A(WlPWaADN$JIJA30$B~ zi*M@pEEMswtAX`|UjtI+{3`4Tj;Cp28OkA7A#4hu_w;eTwGA&T&bHF z*qEfqML{qnUKt1~89t^Ngf!mDLqU19G#Ma9G!e8AGqG&LUydh*6oEzU(qjZ$WFn6c zk#ObU%j@@Q|5lSt*EZQiZAWIu`@6AUl^E@TKRux--{I4t6KV|p3`A&E4Dy^{?FFJY z|Lv2l05%uYI5STbNowYuo(O|r-NyaziBzqb_WHF$SKoueg?SoKd1?3@G!K_D{P9C; z3|_)bjE1svnWZj2q|RBD|9V!0$sYPunMov0GHA|Q;2TBcS)HS^etN2#qDS!^qMC$YIf=Wwm};R>7qgC(>Pv zLTkHloOiUYo8Bo=osY4b8QrQjUcaDD;ey720hN1RhJ)$G~0w z@y2a#4HB697uo#so47bVEe;8}?ubQov<7{oiSnW1JOh-ccRvKeWD%#8ef^-@M!rxI zO90eK8&w1VS2P595e3Rv+mm)XIWBVAkK(p7`+P|7u1oSYf3) za2&N^f5Ik-qmQ8)r}3p@&F%#K@T3_Y8#;B54Tz*GEaQLh?`f>#0Ylwh(?Tn?;KdRz zo*l6g(JH@c8;F0>ua)KvAms`v{wS*_l{GhRJKme1f(EP2OB0#SOlrUiN9OpHjq@q+lG5mR ze|3!zR(Q^)RH{dJ$DM93KK;NK4%0-BmEPWpD-nwps)s>+8AZpunKZ-OKfAR`YL}2J zS72yStPjqrb`XJs=NS|ejJ=IusUiDngI1=e(%lvwjJ4~N~-8FdG({X+Eu z(nP_7^CC`Nf$d9!&s1Fr*|Q`_u#RshS)wBSCJe-c;|de!<)QfDu5$nN@6fm>*d^vn zFz!A`SDWBmMqMh+#Xu-~@iSwgf#HCm-70ouX}v14HOr&_ioE2ntyf_i709jm=YQk4 z;9B{qt1=cN%Zqmd?uQ+|@zJl|r_F5qKTWjmYMT5UD;PGULaRTzsKLm8uO0dC4SiQ| zLjy-B;~|FKQ92DjiTd&1i0EZvwJ}X~ie^x-zMCmZ4%BOHo{~0M!b7#A@kHg-{W4kr zqw8Wj@42rP@3Zj~G7;9vB1oOb#yg3(5)OgvpFcMv1Zg0BnYTm10oFU+` zb3Tk7T-}uQUlc`@q18uJkoA;zE|BUnWwP`5?CPc0MwKpwz*O24J`KNIac-;WKRfBJ zZbFcZiD)8|Axnyb6RBjup*_Fj@0P-wO;1%$tP18baFThHID7un-Vmd>As}ipSFm$G z+}c-5=d)FG!Z)uPrLMLQ^T%o=Rr4mK#bC6CWKg*V9HR&nP)LfRCej5W7TY^LipLY( zY!*XyDa#kD23dBDO?7v@eMv)Nwyzmc2-InyYAh#~AInj26s4heFL`k=z0-)U!1Tj6 zG9Z~~f$kw~{HW_kc$NxQ_4}2A(eV`wqwBrVyK2jPh|aSxI?x<%g~ms*2&s-GQJf@- z(NXd;gVlp(ngVk61fx$D`K*1KEh+)HWX(=sbfEk8FQyEX6>Zm@m%tnbU!o{+9*6Td z3OgjcPn-*;1%qQgT4FWwLxqHxPB+e{_TtQ0H7LJGz1hqB#%2kc{Dq(*lovB8KnbGf z3{Cxm?k!!%e5(G zY?{*O=dX!I$-!ldnl5{LW<^_sR6~aa9|(*x-In(o8+Tp0_3lvndS&qm%WGk&DuM2)`7T= z%!6Q+34=?_1D!P|-PN0l$alk3ZfZX6W^gy}u|F1yHG+fNr=axZ)m{V@lQ~KQ8}IZ| zTE1Ln6RoYYvZC)GzaR4xOw?@qoWa;Rh(5pTuNIEehA10g!*ng$nAM-vT&#@*`Mj={ zq4W{wtWwfL=RUI8YnGm%5dE5^6<)N5494$8Ap`7K`Scp#b0Pp>Y8JILi-@D`+4as* zs0pgnP_)sk9Z$ZYSNnJMTR<9K+oqV*g;f@v=|1PxUozzm(q5sny{ZJ;2P+oPUp_Z9 zl|xtLr&s^;an#vT9*ccFEnJ*prfG;Cdu7 z(BP^w4anGo^2#hklyL?kKc%N?{H@`Z*)`8SaQy`b;>;DP#3*%EDYfd_%bQArBIeN_ zJ|WoY$w+a2xbHRuMc_;Y3WOEN4lYuVLs1)%Lam9!ZiZrcb8TagrC39wfZWw*e!eAK z$bUs;gi%txyF~X0rm$dd$IGcTpa>t8p(e0ymcz5E_o(p&^i?_s_e}Mem0|dHX)5x4;?BsFB0H8cjjoD!Sgns zGBk**Xhbaoli7e{0;(ttzLE`0iwq$QhYh}fPS=>6iq{|;3H2=;wd;j>C++=`60M$5 zP1eAZ6=EFZp~zg`>)3z17x3!MtT^hTEJrEm@*$;_%B%$%mkPa$>^y>%;C^)SyLAPN zs7eCxBt2b+*evRlNi3qCJc1fmwpWm* zk>&vMC{CXP->2dT6b-k3b`xr`-4mk&?4_6usg^Fxh3UfpN(xW7u=wStOC(AC0LWe{ ziLh_l+Y25LkJqFtAtsMX&~2&rl3Gv*j~ ?nH7O*pj;TV;Pe; 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�@v7wXvR-%k#w_2&c^r=( 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

        aL>J$<_KdpGMe{Z627jq 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,Dlmy6#JKzM^tD}Zu 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�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

        jjyqppEvq$Qk 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

        S?|^s`g~6lMJz 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

        Z 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

        2!H=ceGe9rZDYYWDSH3_gp0GcsYIy>Xo{0GI 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

        #8-5aoD9; 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

        ypes% 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�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�fZ9n)qmDf7akVqOTeTl+4P-@T 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 T~lYExyBxNwkt@C+w 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 E4`a8j3jhEB literal 0 HcmV?d00001 diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/task_environment.py b/easi/tasks/ebmanipulation/vendor/amsolver/task_environment.py new file mode 100644 index 0000000..ebb7bed --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/task_environment.py @@ -0,0 +1,676 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +import logging +import pickle +from sys import api_version +from typing import List, Callable, Tuple + +import numpy as np +from pyquaternion import Quaternion +from pyrep import PyRep +from pyrep.const import ObjectType, ConfigurationPathAlgorithms +from pyrep.errors import IKError +from pyrep.objects import Dummy, Object + +from amsolver import utils +from amsolver.action_modes import ArmActionMode, ActionMode +from amsolver.backend.exceptions import BoundaryError, WaypointError +from amsolver.backend.observation import Observation +from amsolver.backend.robot import Robot +from amsolver.backend.scene import Scene +from amsolver.backend.task import Task +from amsolver.backend.utils import execute_path +from amsolver.demo import Demo +from amsolver.observation_config import ObservationConfig +from scipy.spatial.transform import Rotation as R + +_TORQUE_MAX_VEL = 9999 +_DT = 0.05 +_MAX_RESET_ATTEMPTS = 40 +_MAX_DEMO_ATTEMPTS = 10 +TTMS_FOLDER = 'embodiedbench/envs/eb_manipulation/' + +class InvalidActionError(Exception): + pass + + +class TaskEnvironmentError(Exception): + pass + +class TaskConfigs(object): + def __init__(self) -> None: + pass + +class TaskEnvironment(object): + + def __init__(self, pyrep: PyRep, robot: Robot, scene: Scene, task: Task, + action_mode: ActionMode, dataset_root: str, + obs_config: ObservationConfig, + static_positions: bool = False, + attach_grasped_objects: bool = True): + self._pyrep = pyrep + self._robot = robot + self._scene = scene + self._task = task + self._variation_number = 0 + self._action_mode = action_mode + self._dataset_root = dataset_root + self._obs_config = obs_config + self._static_positions = static_positions + self._attach_grasped_objects = attach_grasped_objects + self._reset_called = False + self._prev_ee_velocity = None + self._enable_path_observations = False + tasks_folder = self._task.__module__.split('.')[0] + ttms_folder = TTMS_FOLDER + tasks_folder+'/task_ttms' # change to absolute path to vlmbench folder + # ttms_folder = './'+tasks_folder+'/task_ttms' + self._scene.load(self._task, ttms_folder=ttms_folder) + self._pyrep.start() + self._robot_shapes = self._robot.arm.get_objects_in_tree( + object_type=ObjectType.SHAPE) + + def get_name(self) -> str: + return self._task.get_name() + + def sample_variation(self) -> int: + self._variation_number = np.random.randint( + 0, self._task.variation_count()) + return self._variation_number + + def set_variation(self, v: int) -> None: + if v >= self.variation_count(): + raise TaskEnvironmentError( + 'Requested variation %d, but there are only %d variations.' % ( + v, self.variation_count())) + self._variation_number = v + + def variation_count(self) -> int: + return self._task.variation_count() + + def reset(self) -> Tuple[List[str], Observation]: + self._scene.reset() + try: + ctr_loop = self._robot.arm.joints[0].is_control_loop_enabled() + self._robot.arm.set_control_loop_enabled(True) + desc = self._scene.init_episode( + self._variation_number, max_attempts=_MAX_RESET_ATTEMPTS, + randomly_place=not self._static_positions) + self._robot.arm.set_control_loop_enabled(ctr_loop) + except (BoundaryError, WaypointError) as e: + raise TaskEnvironmentError( + 'Could not place the task %s in the scene. This should not ' + 'happen, please raise an issues on this task.' + % self._task.get_name()) from e + + self._reset_called = True + # Returns a list of descriptions and the first observation + return desc, self._scene.get_observation() + + def get_observation(self) -> Observation: + return self._scene.get_observation() + + def _assert_action_space(self, action, expected_shape): + if np.shape(action) != expected_shape: + raise RuntimeError( + 'Expected the action shape to be: %s, but was shape: %s' % ( + str(expected_shape), str(np.shape(action)))) + + def _assert_unit_quaternion(self, quat): + if not np.isclose(np.linalg.norm(quat), 1.0): + raise RuntimeError('Action contained non unit quaternion!') + + def _torque_action(self, action): + self._robot.arm.set_joint_target_velocities( + [(_TORQUE_MAX_VEL if t < 0 else -_TORQUE_MAX_VEL) + for t in action]) + self._robot.arm.set_joint_forces(np.abs(action)) + + def _ee_action(self, action, relative_to=None): + self._assert_unit_quaternion(action[3:]) + try: + joint_positions = self._robot.arm.solve_ik_via_jacobian( + action[:3], quaternion=action[3:], relative_to=relative_to) + self._robot.arm.set_joint_target_positions(joint_positions) + except IKError as e: + raise InvalidActionError( + 'Could not perform IK via Jacobian. This is because the current' + ' end-effector pose is too far from the given target pose. ' + 'Try limiting your action space, or sapping to an alternative ' + 'action mode, e.g. ABS_EE_POSE_PLAN_WORLD_FRAME') from e + done = False + prev_values = None + # Move until reached target joint positions or until we stop moving + # (e.g. when we collide wth something) + while not done: + self._scene.step() + cur_positions = self._robot.arm.get_joint_positions() + reached = np.allclose(cur_positions, joint_positions, atol=0.01) + not_moving = False + if prev_values is not None: + not_moving = np.allclose( + cur_positions, prev_values, atol=0.001) + prev_values = cur_positions + done = reached or not_moving + + def _path_action_get_path(self, action, collision_checking, relative_to): + try: + path = self._robot.arm.get_path( + action[:3], quaternion=action[3:], + ignore_collisions=not collision_checking, + relative_to=relative_to, + ) + return path + except IKError as e: + raise InvalidActionError('Could not find a path.') from e + + def _path_action(self, action, collision_checking=False, relative_to=None, recorder=None): + self._assert_unit_quaternion(action[3:]) + # Check if the target is in the workspace; if not, then quick reject + # Only checks position, not rotation + pos_to_check = action[:3] + if relative_to is not None: + self._scene.target_workspace_check.set_position( + pos_to_check, relative_to) + pos_to_check = self._scene.target_workspace_check.get_position() + valid = self._scene.check_target_in_workspace(pos_to_check) + if not valid: + raise InvalidActionError('Target is outside of workspace.') + + observations = [] + done = False + success_in_path = [] + if collision_checking: + # First check if we are colliding with anything + colliding = self._robot.arm.check_arm_collision() + if colliding: + # Disable collisions with the objects that we are colliding with + grasped_objects = self._robot.gripper.get_grasped_objects() + colliding_shapes = [s for s in self._pyrep.get_objects_in_tree( + object_type=ObjectType.SHAPE) if ( + s.is_collidable() and + s not in self._robot_shapes and + s not in grasped_objects and + self._robot.arm.check_arm_collision(s))] + [s.set_collidable(False) for s in colliding_shapes] + path = self._path_action_get_path( + action, collision_checking, relative_to) + [s.set_collidable(True) for s in colliding_shapes] + # Only run this path until we are no longer colliding + while not done: + done = path.step() + self._scene.step() + if self._enable_path_observations: + observations.append(self._scene.get_observation()) + if recorder is not None: + recorder.take_snap() + colliding = self._robot.arm.check_arm_collision() + if not colliding: + break + success, terminate = self._task.success() + # If the task succeeds while traversing path, then break early + if success: + done = True + break + if not done: + path = self._path_action_get_path( + action, collision_checking, relative_to) + small_step = 0 + while not done: + done = path.step() + self._scene.step() + if self._enable_path_observations: + observations.append(self._scene.get_observation()) + if recorder is not None: + recorder.take_snap() + success, terminate = self._task.success() + # If the task succeeds while traversing path, then break early + # if success: + # break + if success: + success_in_path.append(small_step) + small_step += 1 + + return observations, success_in_path + + def step(self, action, collision_checking=None, use_auto_move=True, recorder = None, need_grasp_obj = None) -> Tuple[Observation, int, bool]: + # returns observation, reward, done, info + if not self._reset_called: + raise RuntimeError( + "Call 'reset' before calling 'step' on a task.") + + # action should contain 1 extra value for gripper open close state + arm_action = np.array(action[:-1]) + ee_action = action[-1] + + if 0.0 > ee_action > 1.0: + raise ValueError('Gripper action expected to be within 0 and 1.') + + # Discretize the gripper action + open_condition = all(x > 0.9 for x in self._robot.gripper.get_open_amount()) + open_condition &= (len(self._robot.gripper.get_grasped_objects())==0) + current_ee = 1.0 if open_condition else 0.0 + + if ee_action > 0.5: + ee_action = 1.0 + elif ee_action < 0.5: + ee_action = 0.0 + + success_in_path= [] + if self._action_mode.arm == ArmActionMode.ABS_JOINT_VELOCITY: + + self._assert_action_space(arm_action, + (len(self._robot.arm.joints),)) + self._robot.arm.set_joint_target_velocities(arm_action) + self._scene.step() + self._robot.arm.set_joint_target_velocities( + np.zeros_like(arm_action)) + + elif self._action_mode.arm == ArmActionMode.DELTA_JOINT_VELOCITY: + + self._assert_action_space(arm_action, + (len(self._robot.arm.joints),)) + cur = np.array(self._robot.arm.get_joint_velocities()) + self._robot.arm.set_joint_target_velocities(cur + arm_action) + self._scene.step() + self._robot.arm.set_joint_target_velocities( + np.zeros_like(arm_action)) + + elif self._action_mode.arm == ArmActionMode.ABS_JOINT_POSITION: + + self._assert_action_space(arm_action, + (len(self._robot.arm.joints),)) + self._robot.arm.set_joint_target_positions(arm_action) + self._scene.step() + self._robot.arm.set_joint_target_positions( + self._robot.arm.get_joint_positions()) + + elif self._action_mode.arm == ArmActionMode.DELTA_JOINT_POSITION: + + self._assert_action_space(arm_action, + (len(self._robot.arm.joints),)) + cur = np.array(self._robot.arm.get_joint_positions()) + self._robot.arm.set_joint_target_positions(cur + arm_action) + self._scene.step() + self._robot.arm.set_joint_target_positions( + self._robot.arm.get_joint_positions()) + + elif self._action_mode.arm == ArmActionMode.ABS_JOINT_TORQUE: + + self._assert_action_space( + arm_action, (len(self._robot.arm.joints),)) + self._torque_action(arm_action) + self._scene.step() + self._torque_action(self._robot.arm.get_joint_forces()) + self._robot.arm.set_joint_target_velocities( + np.zeros_like(arm_action)) + + elif self._action_mode.arm == ArmActionMode.DELTA_JOINT_TORQUE: + + cur = np.array(self._robot.arm.get_joint_forces()) + new_action = cur + arm_action + self._torque_action(new_action) + self._scene.step() + self._torque_action(self._robot.arm.get_joint_forces()) + self._robot.arm.set_joint_target_velocities( + np.zeros_like(arm_action)) + + elif self._action_mode.arm == ArmActionMode.ABS_EE_POSE_WORLD_FRAME: + + self._assert_action_space(arm_action, (7,)) + self._ee_action(list(arm_action)) + + elif self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME: + + self._assert_action_space(arm_action, (7,)) + pass_this_step = False + # if current_ee == 1.0 and ee_action == 0.0: + if current_ee != ee_action and use_auto_move: + obs = self._scene.get_observation() + _, new_arm_action = self.auto_grasp(obs, arm_action, ee_action) + if new_arm_action is not None: + arm_action = new_arm_action + if collision_checking is None: + collision_checking = False + if not pass_this_step: + self._path_observations = [] + self._path_observations, success_in_path = self._path_action( + list(arm_action), collision_checking=collision_checking, recorder=recorder) + + elif self._action_mode.arm == ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK: + + self._assert_action_space(arm_action, (7,)) + pass_this_step = False + # if current_ee == 1.0 and ee_action == 0.0: + if current_ee != ee_action and use_auto_move: + obs = self._scene.get_observation() + _, new_arm_action = self.auto_grasp(obs, arm_action, ee_action) + if new_arm_action is not None: + arm_action = new_arm_action + if collision_checking is None: + collision_checking = True + if not pass_this_step: + self._path_observations = [] + self._path_observations, success_in_path = self._path_action( + list(arm_action), collision_checking=collision_checking, recorder = recorder) + + elif self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_PLAN_WORLD_FRAME: + + self._assert_action_space(arm_action, (7,)) + a_x, a_y, a_z, a_qx, a_qy, a_qz, a_qw = arm_action + x, y, z, qx, qy, qz, qw = self._robot.arm.get_tip().get_pose() + new_rot = Quaternion(a_qw, a_qx, a_qy, a_qz) * Quaternion(qw, qx, + qy, qz) + qw, qx, qy, qz = list(new_rot) + new_pose = [a_x + x, a_y + y, a_z + z] + [qx, qy, qz, qw] + self._path_observations = [] + self._path_observations, success_in_path = self._path_action(list(new_pose)) + + elif self._action_mode.arm == ArmActionMode.DELTA_EE_POSE_WORLD_FRAME: + + self._assert_action_space(arm_action, (7,)) + a_x, a_y, a_z, a_qx, a_qy, a_qz, a_qw = arm_action + x, y, z, qx, qy, qz, qw = self._robot.arm.get_tip().get_pose() + new_rot = Quaternion(a_qw, a_qx, a_qy, a_qz) * Quaternion( + qw, qx, qy, qz) + qw, qx, qy, qz = list(new_rot) + new_pose = [a_x + x, a_y + y, a_z + z] + [qx, qy, qz, qw] + # point = Dummy('Dummy') + # point.set_pose(list(new_pose)) + self._ee_action(list(new_pose)) + + elif self._action_mode.arm == ArmActionMode.EE_POSE_EE_FRAME: + + self._assert_action_space(arm_action, (7,)) + self._ee_action( + list(arm_action), relative_to=self._robot.arm.get_tip()) + + elif self._action_mode.arm == ArmActionMode.EE_POSE_PLAN_EE_FRAME: + + self._assert_action_space(arm_action, (7,)) + self._path_observations = [] + self._path_observations, success_in_path = self._path_action( + list(arm_action), relative_to=self._robot.arm.get_tip()) + + else: + raise RuntimeError('Unrecognised action mode.') + + obs = self._scene.get_observation() + grasp_sucess = False + if current_ee != ee_action: + done = False + if ee_action == 0.0 and self._attach_grasped_objects: + # If gripper close action, the check for grasp. + for g_obj in self._task.get_graspable_objects(): + succ = self._robot.gripper.grasp(g_obj) + if need_grasp_obj is not None: + if g_obj.get_name() == need_grasp_obj and succ: + grasp_sucess = True + if need_grasp_obj is not None: + if self._robot.gripper._proximity_sensor.is_detected(Object.get_object(need_grasp_obj)): + grasp_sucess = True + else: + # If gripper open action, the check for ungrasp. + self._robot.gripper.release() + while not done: + done = self._robot.gripper.actuate(ee_action, velocity=0.2) + self._pyrep.step() + self._task.step() + if ee_action == 1.0: + # Step a few more times to allow objects to drop + for _ in range(10): + self._pyrep.step() + self._task.step() + + success, terminate = self._task.success() + # task_reward = self._task.reward(steps) + # reward = float(success) if task_reward is None else task_reward + if len(success_in_path) > 0: + success = 1.0 + elif grasp_sucess: + success = 0.5 + reward = float(success) + return obs, reward, terminate + + def auto_grasp(self, obs, goal_tip_pose, ee_action): + def angle_distance(q1, q2): + # same as rad2deg(2arccos(theta)), here qw = cos(theta/2). need to select min of (x, 2pi - x) + # reference: https://math.stackexchange.com/questions/90081/quaternion-distance + q1_matrix = R.from_quat(q1).as_matrix() + q2_matrix = R.from_quat(q2).as_matrix() + # v = 2 * np.arccos(np.clip(2 * np.dot(q1, q2) ** 2 - 1, -1, 1)) + # return min(v, 2*np.pi - v) + return np.dot(q1_matrix[:3, 2], q2_matrix[:3, 2]) + def get_errors(target_pose, current_ee_pose): + translate_error = ((target_pose[:3]-current_ee_pose[:3])**2).sum()**(1/2) + angle_error = angle_distance(target_pose[3:], current_ee_pose[3:]) + return translate_error, angle_error + def execute_waypoint(point): + path = point.get_path() + done = False + while not done: + done = path.step() + self._pyrep.step() + self._task.step() + if point.gripper_control is not None: + gripper = self._robot.gripper + if point.gripper_control[0]=='open': + gripper.release() + done = False + while not done: + done = gripper.actuate(point.gripper_control[1], 0.04) + self._pyrep.step() + self._task.step() + if point.gripper_control[0]=='close': + for g_obj in self._task.get_graspable_objects(): + gripper.grasp(g_obj) + + info = obs.object_informations + waypoints = self._task.get_waypoints() + success = False + new_action = None + # for w in waypoints: + # name = w.name + # gripper_control = w.gripper_control + # if gripper_control is not None: + # if gripper_control[1]!=ee_action: + # continue + # target_pose = info[name]['pose'][0] + # t_error, r_error = get_errors(target_pose, goal_tip_pose) + # print("Waypoint: ", name, "Translate Error: ", t_error, "Rotation Error: ", r_error) + # if t_error<0.05 and r_error>0.9: + # print("Using automatic grasp") + # # execute_waypoint(w) + # new_action = goal_tip_pose.copy() + # wpoint_pose = w.pose if hasattr(w, "pose") else w.end_pose + # new_action[:3] = wpoint_pose[:3] + # success = True + # break + return success, new_action + + def enable_path_observations(self, value: bool) -> None: + if (self._action_mode.arm != ArmActionMode.DELTA_EE_POSE_PLAN_WORLD_FRAME and + self._action_mode.arm != ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME and + self._action_mode.arm != ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK and + self._action_mode.arm != ArmActionMode.EE_POSE_PLAN_EE_FRAME): + raise RuntimeError('Only available in DELTA_EE_POSE_PLAN or ' + 'ABS_EE_POSE_PLAN action mode.') + self._enable_path_observations = value + + def get_path_observations(self): + if (self._action_mode.arm != ArmActionMode.DELTA_EE_POSE_PLAN_WORLD_FRAME and + self._action_mode.arm != ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME and + self._action_mode.arm != ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME_WITH_COLLISION_CHECK and + self._action_mode.arm != ArmActionMode.EE_POSE_PLAN_EE_FRAME): + raise RuntimeError('Only available in DELTA_EE_POSE_PLAN or ' + 'ABS_EE_POSE_PLAN action mode.') + return self._path_observations + + def get_demos(self, amount: int, live_demos: bool = False, + image_paths: bool = False, + callable_each_step: Callable[[Observation], None] = None, + max_attempts: int = _MAX_DEMO_ATTEMPTS, + random_selection: bool = True, + from_episode_number: int = 0 + ) -> List[Demo]: + """Negative means all demos""" + + if not live_demos and (self._dataset_root is None + or len(self._dataset_root) == 0): + raise RuntimeError( + "Can't ask for a stored demo when no dataset root provided.") + + if not live_demos: + if self._dataset_root is None or len(self._dataset_root) == 0: + raise RuntimeError( + "Can't ask for stored demo when no dataset root provided.") + demos = utils.get_stored_demos( + amount, image_paths, self._dataset_root, self._variation_number, + self._task.get_name(), self._obs_config, + random_selection, from_episode_number) + return (demos) + else: + ctr_loop = self._robot.arm.joints[0].is_control_loop_enabled() + self._robot.arm.set_control_loop_enabled(True) + demos, success_all = self._get_live_demos( + amount, callable_each_step, max_attempts) + self._robot.arm.set_control_loop_enabled(ctr_loop) + return (demos, success_all) + + def _get_live_demos(self, amount: int, + callable_each_step: Callable[ + [Observation], None] = None, + max_attempts: int = _MAX_DEMO_ATTEMPTS, record=True) -> List[Demo]: + demos = [] + success_all = [] + for i in range(amount): + attempts = max_attempts + while attempts > 0: + random_seed = np.random.get_state() + self.reset() + try: + demo, success = self._scene.get_demo( + record = record, callable_each_step=callable_each_step) + demo.random_seed = random_seed + demos.append(demo) + success_all.append(success) + break + except Exception as e: + attempts -= 1 + logging.info('Bad demo. ' + str(e)) + if attempts <= 0: + raise RuntimeError( + 'Could not collect demos. Maybe a problem with the task?') + return demos, success_all + + def reset_to_demo(self, demo: Demo) -> Tuple[List[str], Observation]: + demo.restore_state() + return self.reset() + + def save_config(self, max_attempts: int = _MAX_DEMO_ATTEMPTS): + random_seed = np.random.get_state() + desc,_ = self.reset() + task_base, waypoint_sets, config = self.read_config(desc) + config.random_seed = random_seed + + """ + attempts = max_attempts + while attempts > 0: + random_seed = np.random.get_state() + desc,_ = self.reset() + task_base, waypoint_sets, config = self.read_config(desc) + config.random_seed = random_seed + try: + demo, success = self._scene.get_demo(record = False) + if not success: + attempts -= 1 + continue + break + except Exception as e: + attempts -= 1 + logging.info('Bad demo. ' + str(e)) + """ + # ctr_loop = self._robot.arm.joints[0].is_control_loop_enabled() + # self._robot.arm.set_control_loop_enabled(True) + # demos, success_all = self._get_live_demos(amount=1,record=False) + # desc = demos[0].high_level_instructions + # desc = self._scene.init_episode( + # self._variation_number, max_attempts=_MAX_RESET_ATTEMPTS, + # randomly_place=not self._static_positions) + # self._robot.arm.set_control_loop_enabled(ctr_loop) + # except (BoundaryError, WaypointError) as e: + # raise TaskEnvironmentError( + # 'Could not place the task %s in the scene. This should not ' + # 'happen, please raise an issues on this task.' + # % self._task.get_name()) from e + + # self._reset_called = True + + return task_base, waypoint_sets, config + + def read_config(self, desc): + task_base = self._task.get_base() + if Dummy.exists("waypoint_sets"): + waypoint_sets = Dummy("waypoint_sets") + else: + waypoint_sets = Dummy.create() + waypoint_sets.set_name("waypoint_sets") + waypoint_sets.set_model(True) + for waypoint in self._task.temporary_waypoints: + waypoint.set_parent(waypoint_sets) + # config = self._scene.get_observation() + # for key, val in config.__dict__.items(): + # if "rgb" in key or "depth" in key or "point" in key or "gripper" in key: + # config.__setattr__(key, None) + config = TaskConfigs() + config.high_level_descriptions = desc + config.success_conditions = self._task._success_conditions + graspable_objects = [] + for obj in self._task._graspable_objects: + graspable_objects.append(obj.get_name()) + config.graspable_objects = graspable_objects + task_attributes = {} + for key, val in self._task.__dict__.items(): + if key[0]!="_" and key!="pyrep" and key!="robot": + task_attributes[key] = val + config.task_attributes = task_attributes + return task_base, waypoint_sets, config + + def load_config(self, task_base, waypoint_sets, config_path): + ctr_loop = self._robot.arm.joints[0].is_control_loop_enabled() + self._scene._has_init_task = True + self._robot.gripper.release() + + arm, gripper = self._scene._initial_robot_state + self._pyrep.set_configuration_tree(arm) + self._pyrep.set_configuration_tree(gripper) + self._robot.arm.set_joint_positions(self._scene._start_arm_joint_pos, disable_dynamics=True) + self._robot.arm.set_joint_target_velocities( + [0] * len(self._robot.arm.joints)) + self._robot.gripper.set_joint_positions( + self._scene._starting_gripper_joint_pos, disable_dynamics=True) + self._robot.gripper.set_joint_target_velocities( + [0] * len(self._robot.gripper.joints)) + self._robot.arm.set_control_loop_enabled(ctr_loop) + + self._task.unload() + if Dummy.exists("waypoint_sets"): + Dummy("waypoint_sets").remove() + new_base = self._pyrep.import_model(task_base) + waypoints = self._pyrep.import_model(waypoint_sets) + with open(config_path, 'rb') as f: + config = pickle.load(f) + self._task._success_conditions = config.success_conditions + graspable_objects = [] + for obj_name in config.graspable_objects: + graspable_objects.append(Object.get_object(obj_name)) + self._task._graspable_objects = graspable_objects + self._task.set_initial_objects_in_scene() + if not hasattr(self, "attr_retrivel"): + self.attr_retrivel = [] + for key, val in config.task_attributes.items(): + if not hasattr(self._task, key): + self.attr_retrivel.append(key) + for key in self.attr_retrivel: + self._task.__setattr__(key, config.task_attributes[key]) + self._reset_called=True + + return config.high_level_descriptions, self._scene.get_observation() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/utils.py b/easi/tasks/ebmanipulation/vendor/amsolver/utils.py new file mode 100644 index 0000000..3dee026 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/amsolver/utils.py @@ -0,0 +1,331 @@ +#Modified From the rlbench: https://github.com/stepjam/RLBench +import importlib +import pickle +from os import listdir +from os.path import join, exists +from typing import List + +import numpy as np +from PIL import Image +from natsort import natsorted +from pyrep.objects import VisionSensor + +from amsolver.backend.const import * +from amsolver.backend.utils import image_to_float_array, rgb_handles_to_mask +from amsolver.demo import Demo +from amsolver.observation_config import ObservationConfig + + +class InvalidTaskName(Exception): + pass + + +def name_to_task_class(task_file: str, parent_folder = "vlm"): + name = task_file.replace('.py', '') + class_name = ''.join([w[0].upper() + w[1:] for w in name.split('_')]) + try: + mod = importlib.import_module(parent_folder+".tasks.%s" % name) + mod = importlib.reload(mod) + except ModuleNotFoundError as e: + raise InvalidTaskName( + "The task file '%s' does not exist or cannot be compiled." + % name) from e + try: + task_class = getattr(mod, class_name) + except AttributeError as e: + raise InvalidTaskName( + "Cannot find the class name '%s' in the file '%s'." + % (class_name, name)) from e + return task_class + + +def get_stored_demos(amount: int, image_paths: bool, dataset_root: str, + variation_number: int, task_name: str, + obs_config: ObservationConfig, + episode_number = None, + fail_demos = False, + selected_frame=None) -> List[Demo]: + + task_root = join(dataset_root, task_name) + if not exists(task_root): + raise RuntimeError("Can't find the demos for %s at: %s" % ( + task_name, task_root)) + + # Sample an amount of examples for the variation of this task + examples_path = join( + task_root, VARIATIONS_FOLDER % variation_number, + EPISODES_FOLDER) + if fail_demos: + examples_path = join( + task_root, VARIATIONS_FOLDER % variation_number, + 'fail_cases') + examples = listdir(examples_path) + if amount == -1: + amount = len(examples) + if amount > len(examples): + raise RuntimeError( + 'You asked for %d examples, but only %d were available.' % ( + amount, len(examples))) + if episode_number is None: + selected_examples = np.random.choice(examples, amount, replace=False) + else: + # selected_examples = [natsorted(examples)[episode_number]] + # for e in natsorted(examples): + # if f"episode{episode_number}"==e: + # selected_examples = [e] + # break + selected_examples = [episode_number] + import os + # Process these examples (e.g. loading observations) + demos = [] + for example in selected_examples: + example_path = join(examples_path, example) + with open(join(example_path, LOW_DIM_PICKLE), 'rb') as f: + obs = pickle.load(f) + + l_sh_rgb_f = join(example_path, LEFT_SHOULDER_RGB_FOLDER) + l_sh_depth_f = join(example_path, LEFT_SHOULDER_DEPTH_FOLDER) + l_sh_mask_f = join(example_path, LEFT_SHOULDER_MASK_FOLDER) + r_sh_rgb_f = join(example_path, RIGHT_SHOULDER_RGB_FOLDER) + r_sh_depth_f = join(example_path, RIGHT_SHOULDER_DEPTH_FOLDER) + r_sh_mask_f = join(example_path, RIGHT_SHOULDER_MASK_FOLDER) + oh_rgb_f = join(example_path, OVERHEAD_RGB_FOLDER) + oh_depth_f = join(example_path, OVERHEAD_DEPTH_FOLDER) + oh_mask_f = join(example_path, OVERHEAD_MASK_FOLDER) + wrist_rgb_f = join(example_path, WRIST_RGB_FOLDER) + wrist_depth_f = join(example_path, WRIST_DEPTH_FOLDER) + wrist_mask_f = join(example_path, WRIST_MASK_FOLDER) + front_rgb_f = join(example_path, FRONT_RGB_FOLDER) + front_depth_f = join(example_path, FRONT_DEPTH_FOLDER) + front_mask_f = join(example_path, FRONT_MASK_FOLDER) + + num_steps = len(obs) + + if not (num_steps == len(listdir(l_sh_rgb_f)) == len( + listdir(l_sh_depth_f)) == len(listdir(r_sh_rgb_f)) == len( + listdir(r_sh_depth_f)) == len(listdir(oh_rgb_f)) == len( + listdir(oh_depth_f)) == len(listdir(wrist_rgb_f)) == len( + listdir(wrist_depth_f)) == len(listdir(front_rgb_f)) == len( + listdir(front_depth_f))): + raise RuntimeError('Broken dataset assumption') + + if selected_frame is None: + selected_frame = range(num_steps) + for i in selected_frame: + si = IMAGE_FORMAT % i + if obs_config.left_shoulder_camera.rgb: + obs[i].left_shoulder_rgb = join(l_sh_rgb_f, si) + if obs_config.left_shoulder_camera.depth or obs_config.left_shoulder_camera.point_cloud: + obs[i].left_shoulder_depth = join(l_sh_depth_f, si) + if obs_config.left_shoulder_camera.mask: + obs[i].left_shoulder_mask = join(l_sh_mask_f, si) + if obs_config.right_shoulder_camera.rgb: + obs[i].right_shoulder_rgb = join(r_sh_rgb_f, si) + if obs_config.right_shoulder_camera.depth or obs_config.right_shoulder_camera.point_cloud: + obs[i].right_shoulder_depth = join(r_sh_depth_f, si) + if obs_config.right_shoulder_camera.mask: + obs[i].right_shoulder_mask = join(r_sh_mask_f, si) + if obs_config.overhead_camera.rgb: + obs[i].overhead_rgb = join(oh_rgb_f, si) + if obs_config.overhead_camera.depth or obs_config.overhead_camera.point_cloud: + obs[i].overhead_depth = join(oh_depth_f, si) + if obs_config.overhead_camera.mask: + obs[i].overhead_mask = join(oh_mask_f, si) + if obs_config.wrist_camera.rgb: + obs[i].wrist_rgb = join(wrist_rgb_f, si) + if obs_config.wrist_camera.depth or obs_config.wrist_camera.point_cloud: + obs[i].wrist_depth = join(wrist_depth_f, si) + if obs_config.wrist_camera.mask: + obs[i].wrist_mask = join(wrist_mask_f, si) + if obs_config.front_camera.rgb: + obs[i].front_rgb = join(front_rgb_f, si) + if obs_config.front_camera.depth or obs_config.front_camera.point_cloud: + obs[i].front_depth = join(front_depth_f, si) + if obs_config.front_camera.mask: + obs[i].front_mask = join(front_mask_f, si) + + # Remove low dim info if necessary + if not obs_config.joint_velocities: + obs[i].joint_velocities = None + if not obs_config.joint_positions: + obs[i].joint_positions = None + if not obs_config.joint_forces: + obs[i].joint_forces = None + if not obs_config.gripper_open: + obs[i].gripper_open = None + if not obs_config.gripper_pose: + obs[i].gripper_pose = None + if not obs_config.gripper_joint_positions: + obs[i].gripper_joint_positions = None + if not obs_config.gripper_touch_forces: + obs[i].gripper_touch_forces = None + if not obs_config.task_low_dim_state: + obs[i].task_low_dim_state = None + + if not image_paths: + for i in selected_frame: + if obs_config.left_shoulder_camera.rgb: + obs[i].left_shoulder_rgb = np.array( + _resize_if_needed( + Image.open(obs[i].left_shoulder_rgb), + obs_config.left_shoulder_camera.image_size)) + if obs_config.right_shoulder_camera.rgb: + obs[i].right_shoulder_rgb = np.array( + _resize_if_needed(Image.open( + obs[i].right_shoulder_rgb), + obs_config.right_shoulder_camera.image_size)) + if obs_config.overhead_camera.rgb: + obs[i].overhead_rgb = np.array( + _resize_if_needed(Image.open( + obs[i].overhead_rgb), + obs_config.overhead_camera.image_size)) + if obs_config.wrist_camera.rgb: + obs[i].wrist_rgb = np.array( + _resize_if_needed( + Image.open(obs[i].wrist_rgb), + obs_config.wrist_camera.image_size)) + if obs_config.front_camera.rgb: + obs[i].front_rgb = np.array( + _resize_if_needed( + Image.open(obs[i].front_rgb), + obs_config.front_camera.image_size)) + + if obs_config.left_shoulder_camera.depth or obs_config.left_shoulder_camera.point_cloud: + l_sh_depth = image_to_float_array( + _resize_if_needed( + Image.open(obs[i].left_shoulder_depth), + obs_config.left_shoulder_camera.image_size), + DEPTH_SCALE) + near = obs[i].misc['left_shoulder_camera_near'] + far = obs[i].misc['left_shoulder_camera_far'] + l_sh_depth_m = near + l_sh_depth * (far - near) + if obs_config.left_shoulder_camera.depth: + d = l_sh_depth_m if obs_config.left_shoulder_camera.depth_in_meters else l_sh_depth + obs[i].left_shoulder_depth = obs_config.left_shoulder_camera.depth_noise.apply(d) + else: + obs[i].left_shoulder_depth = None + + if obs_config.right_shoulder_camera.depth or obs_config.right_shoulder_camera.point_cloud: + r_sh_depth = image_to_float_array( + _resize_if_needed( + Image.open(obs[i].right_shoulder_depth), + obs_config.right_shoulder_camera.image_size), + DEPTH_SCALE) + near = obs[i].misc['right_shoulder_camera_near'] + far = obs[i].misc['right_shoulder_camera_far'] + r_sh_depth_m = near + r_sh_depth * (far - near) + if obs_config.right_shoulder_camera.depth: + d = r_sh_depth_m if obs_config.right_shoulder_camera.depth_in_meters else r_sh_depth + obs[i].right_shoulder_depth = obs_config.right_shoulder_camera.depth_noise.apply(d) + else: + obs[i].right_shoulder_depth = None + + if obs_config.overhead_camera.depth or obs_config.overhead_camera.point_cloud: + oh_depth = image_to_float_array( + _resize_if_needed( + Image.open(obs[i].overhead_depth), + obs_config.overhead_camera.image_size), + DEPTH_SCALE) + near = obs[i].misc['overhead_camera_near'] + far = obs[i].misc['overhead_camera_far'] + oh_depth_m = near + oh_depth * (far - near) + if obs_config.overhead_camera.depth: + d = oh_depth_m if obs_config.overhead_camera.depth_in_meters else oh_depth + obs[i].overhead_depth = obs_config.overhead_camera.depth_noise.apply(d) + else: + obs[i].overhead_depth = None + + if obs_config.wrist_camera.depth or obs_config.wrist_camera.point_cloud: + wrist_depth = image_to_float_array( + _resize_if_needed( + Image.open(obs[i].wrist_depth), + obs_config.wrist_camera.image_size), + DEPTH_SCALE) + near = obs[i].misc['wrist_camera_near'] + far = obs[i].misc['wrist_camera_far'] + wrist_depth_m = near + wrist_depth * (far - near) + if obs_config.wrist_camera.depth: + d = wrist_depth_m if obs_config.wrist_camera.depth_in_meters else wrist_depth + obs[i].wrist_depth = obs_config.wrist_camera.depth_noise.apply(d) + else: + obs[i].wrist_depth = None + + if obs_config.front_camera.depth or obs_config.front_camera.point_cloud: + front_depth = image_to_float_array( + _resize_if_needed( + Image.open(obs[i].front_depth), + obs_config.front_camera.image_size), + DEPTH_SCALE) + near = obs[i].misc['front_camera_near'] + far = obs[i].misc['front_camera_far'] + front_depth_m = near + front_depth * (far - near) + if obs_config.front_camera.depth: + d = front_depth_m if obs_config.front_camera.depth_in_meters else front_depth + obs[i].front_depth = obs_config.front_camera.depth_noise.apply(d) + else: + obs[i].front_depth = None + + if obs_config.left_shoulder_camera.point_cloud: + obs[i].left_shoulder_point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params( + l_sh_depth_m, + obs[i].misc['left_shoulder_camera_extrinsics'], + obs[i].misc['left_shoulder_camera_intrinsics']) + if obs_config.right_shoulder_camera.point_cloud: + obs[i].right_shoulder_point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params( + r_sh_depth_m, + obs[i].misc['right_shoulder_camera_extrinsics'], + obs[i].misc['right_shoulder_camera_intrinsics']) + if obs_config.overhead_camera.point_cloud: + obs[i].overhead_point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params( + oh_depth_m, + obs[i].misc['overhead_camera_extrinsics'], + obs[i].misc['overhead_camera_intrinsics']) + if obs_config.wrist_camera.point_cloud: + obs[i].wrist_point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params( + wrist_depth_m, + obs[i].misc['wrist_camera_extrinsics'], + obs[i].misc['wrist_camera_intrinsics']) + if obs_config.front_camera.point_cloud: + obs[i].front_point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params( + front_depth_m, + obs[i].misc['front_camera_extrinsics'], + obs[i].misc['front_camera_intrinsics']) + + # Masks are stored as coded RGB images. + # Here we transform them into 1 channel handles. + if obs_config.left_shoulder_camera.mask: + obs[i].left_shoulder_mask = rgb_handles_to_mask( + np.array(_resize_if_needed(Image.open( + obs[i].left_shoulder_mask), + obs_config.left_shoulder_camera.image_size))) + if obs_config.right_shoulder_camera.mask: + obs[i].right_shoulder_mask = rgb_handles_to_mask( + np.array(_resize_if_needed(Image.open( + obs[i].right_shoulder_mask), + obs_config.right_shoulder_camera.image_size))) + if obs_config.overhead_camera.mask: + obs[i].overhead_mask = rgb_handles_to_mask( + np.array(_resize_if_needed(Image.open( + obs[i].overhead_mask), + obs_config.overhead_camera.image_size))) + if obs_config.wrist_camera.mask: + obs[i].wrist_mask = rgb_handles_to_mask(np.array( + _resize_if_needed(Image.open( + obs[i].wrist_mask), + obs_config.wrist_camera.image_size))) + if obs_config.front_camera.mask: + obs[i].front_mask = rgb_handles_to_mask(np.array( + _resize_if_needed(Image.open( + obs[i].front_mask), + obs_config.front_camera.image_size))) + + demos.append(obs) + if len(demos)==0: + print(1) + return demos + + +def _resize_if_needed(image, size): + if image.size[0] != size[0] or image.size[1] != size[1]: + image = image.resize(size) + return image diff --git a/easi/tasks/ebmanipulation/vendor/tools/__init__.py b/easi/tasks/ebmanipulation/vendor/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/vendor/tools/assets/task_template.txt b/easi/tasks/ebmanipulation/vendor/tools/assets/task_template.txt new file mode 100644 index 0000000..566a7b1 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/assets/task_template.txt @@ -0,0 +1,25 @@ +from typing import List +import numpy as np +import os +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.const import colors +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, T2_MoveObjectConstraints, TargetSpace, VLM_Object + +class %s(Task): + + def init_task(self) -> None: + # TODO: This is called once when a task is initialised. + pass + + def init_episode(self, index: int) -> List[str]: + # TODO: This is called at the start of each episode. + return [''] + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 1 + + def step(self) -> None: + # Called during each sim step. Remove this if not using. + pass \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/tools/cinematic_recorder.py b/easi/tasks/ebmanipulation/vendor/tools/cinematic_recorder.py new file mode 100644 index 0000000..bbc8473 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/cinematic_recorder.py @@ -0,0 +1,158 @@ +import os +from typing import Type + +import cv2 +import numpy as np +from absl import app +from absl import flags +from pyrep.objects.dummy import Dummy +from pyrep.objects.vision_sensor import VisionSensor + +from amsolver import Environment +from amsolver.action_modes import ActionMode +from amsolver.backend.observation import Observation +from amsolver.backend.task import TASKS_PATH +from amsolver.backend.task import Task +from amsolver.backend.utils import task_file_to_task_class +from amsolver.observation_config import ObservationConfig +from amsolver.sim2real.domain_randomization import RandomizeEvery, \ + VisualRandomizationConfig + +FLAGS = flags.FLAGS + +flags.DEFINE_string( + 'save_dir', '../amsolver/amsolver_videos', + 'Where to save the generated videos.') +flags.DEFINE_list( + 'tasks', ['wipe_table_color','wipe_table_direction', 'wipe_table_relative', 'wipe_table_shape', 'wipe_table_size'], + 'The tasks to record. If empty, all tasks are recorded.') +flags.DEFINE_boolean( + 'individual', True, 'One long clip of all the tasks, or individual videos.') +flags.DEFINE_boolean( + 'domain_randomization', False, 'If domain randomization should be applied.') +flags.DEFINE_string( + 'textures_path', '', + 'Where to locate textures if using domain randomization.') +flags.DEFINE_boolean('headless', True, 'Run in headless mode.') +flags.DEFINE_list( + 'camera_resolution', [1280, 720], 'The camera resolution') + + +class CameraMotion(object): + def __init__(self, cam: VisionSensor): + self.cam = cam + + def step(self): + raise NotImplementedError() + + def save_pose(self): + self._prev_pose = self.cam.get_pose() + + def restore_pose(self): + self.cam.set_pose(self._prev_pose) + + +class CircleCameraMotion(CameraMotion): + + def __init__(self, cam: VisionSensor, origin: Dummy, speed: float): + super().__init__(cam) + self.origin = origin + self.speed = speed # in radians + + def step(self): + self.origin.rotate([0, 0, self.speed]) + + +class TaskRecorder(object): + + def __init__(self, env: Environment, cam_motion: CameraMotion, fps=30): + self._env = env + self._cam_motion = cam_motion + self._fps = fps + self._snaps = [] + self._current_snaps = [] + + def take_snap(self, obs: Observation): + self._cam_motion.step() + self._current_snaps.append( + (self._cam_motion.cam.capture_rgb() * 255.).astype(np.uint8)) + + def record_task(self, task: Type[Task]): + task = self._env.get_task(task) + self._cam_motion.save_pose() + while True: + try: + _, success = task.get_demos( + 1, live_demos=True, callable_each_step=self.take_snap, + max_attempts=1) + if success: + break + else: + self._cam_motion.restore_pose() + self._current_snaps = [] + except RuntimeError: + self._cam_motion.restore_pose() + self._current_snaps = [] + self._snaps.extend(self._current_snaps) + self._current_snaps = [] + return True + + def save(self, path): + print('Converting to video ...') + os.makedirs(os.path.dirname(path), exist_ok=True) + video = cv2.VideoWriter( + path, cv2.VideoWriter_fourcc(*'MJPG'), self._fps, + tuple(self._cam_motion.cam.get_resolution())) + for image in self._snaps: + video.write(cv2.cvtColor(image, cv2.COLOR_RGB2BGR)) + video.release() + self._snaps = [] + + +def main(argv): + + obs_config = ObservationConfig(record_gripper_closing=True) + obs_config.set_all(False) + + vrc = rand_every = None + frequency = 0 + if FLAGS.domain_randomization: + vrc = VisualRandomizationConfig(FLAGS.textures_path) + rand_every = RandomizeEvery.TRANSITION + frequency = 10 + + env = Environment(ActionMode(), obs_config=obs_config, + randomize_every=rand_every, frequency=frequency, + visual_randomization_config=vrc, headless=FLAGS.headless) + env.launch() + + # Add the camera to the scene + cam_placeholder = Dummy('cam_cinematic_placeholder') + cam = VisionSensor.create(FLAGS.camera_resolution) + cam.set_pose(cam_placeholder.get_pose()) + cam.set_parent(cam_placeholder) + + cam_motion = CircleCameraMotion(cam, Dummy('cam_cinematic_base'), 0.005) + tr = TaskRecorder(env, cam_motion, fps=30) + + if len(FLAGS.tasks) > 0: + task_names = FLAGS.tasks + else: + tasks_path = './vlm/tasks' + task_names = [t.replace('.py', '') for t in os.listdir(tasks_path) + if t != '__init__.py' and t.endswith('.py')] + task_classes = [task_file_to_task_class( + task_file, parent_folder = 'vlm') for task_file in task_names] + + for i, (name, cls) in enumerate(zip(task_names, task_classes)): + good = tr.record_task(cls) + if FLAGS.individual and good: + tr.save(os.path.join(FLAGS.save_dir, '%s.avi' % name)) + + if not FLAGS.individual: + tr.save(os.path.join(FLAGS.save_dir, 'recorded_tasks.avi')) + env.shutdown() + + +if __name__ == '__main__': + app.run(main) diff --git a/easi/tasks/ebmanipulation/vendor/tools/dataset_generator_NLP.py b/easi/tasks/ebmanipulation/vendor/tools/dataset_generator_NLP.py new file mode 100644 index 0000000..21e3a6e --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/dataset_generator_NLP.py @@ -0,0 +1,401 @@ +from multiprocessing import Process, Manager +from time import time + +from pyrep.const import RenderMode +from os.path import join, dirname, abspath, isfile +import sys +CURRENT_DIR = dirname(abspath(__file__)) +sys.path.insert(0, join(CURRENT_DIR, '..')) # Use local amsolver rather than installed +from amsolver import ObservationConfig +from amsolver.action_modes import ActionMode +from amsolver.backend.utils import task_file_to_task_class +from amsolver.environment import Environment +import amsolver.backend.task as task + +import os +import pickle +from PIL import Image +from amsolver.backend import utils +from amsolver.backend.const import * +import numpy as np +from pathlib import Path + +from absl import app +from absl import flags + +""" +Change to different folder for different split. +If you want to generate unseen data, please set the colors and objects to the unseen collections in amsolver/constant.py +""" + +FLAGS = flags.FLAGS + +flags.DEFINE_string('save_path', + './rlbench_data/train', + 'Where to save the demos.') +flags.DEFINE_list('tasks', [ + 'drop_pen_color', 'drop_pen_relative', 'drop_pen_size', + 'wipe_table_color', 'wipe_table_relative', 'wipe_table_shape', 'wipe_table_size', 'wipe_table_direction', + 'pour_demo_color', 'pour_demo_relative', 'pour_demo_size', + 'pick_cube_color', 'pick_cube_relative', 'pick_cube_shape', 'pick_cube_size', + 'stack_cubes_color', 'stack_cubes_size', + 'stack_cubes_relative', 'stack_cubes_shape', + 'place_into_shape_sorter_color', 'place_into_shape_sorter_shape', 'place_into_shape_sorter_relative', + 'open_drawer', + 'open_door_complex' + ], + 'The tasks to collect. If empty, all tasks are collected.') +flags.DEFINE_list('image_size', [360, 360], + 'The size of the images tp save.') +flags.DEFINE_enum('renderer', 'opengl', ['opengl', 'opengl3'], + 'The renderer to use. opengl does not include shadows, ' + 'but is faster.') +flags.DEFINE_integer('processes', 8, + 'The number of parallel processes during collection.') +flags.DEFINE_integer('episodes_per_task', 5, + 'The number of episodes to collect per task.') +flags.DEFINE_integer('variations', -1, + 'Number of variations to collect per task. -1 for all.') +flags.DEFINE_bool('save_configs', True, + 'whether also save the config for replay.') + + +def check_and_make(dir): + if not os.path.exists(dir): + os.makedirs(dir) + +def save_configs(task_base, waypoint_sets, config, example_path): + check_and_make(example_path) + # Save the low-dimension data + with open(os.path.join(example_path, "configs.pkl"), 'wb') as f: + pickle.dump(config, f) + task_base.save_model(os.path.join(example_path, "task_base.ttm")) + waypoint_sets.save_model(os.path.join(example_path, "waypoint_sets.ttm")) + +def save_demo(demo, example_path): + + # Save image data first, and then None the image data, and pickle + left_shoulder_rgb_path = os.path.join( + example_path, LEFT_SHOULDER_RGB_FOLDER) + left_shoulder_depth_path = os.path.join( + example_path, LEFT_SHOULDER_DEPTH_FOLDER) + left_shoulder_mask_path = os.path.join( + example_path, LEFT_SHOULDER_MASK_FOLDER) + right_shoulder_rgb_path = os.path.join( + example_path, RIGHT_SHOULDER_RGB_FOLDER) + right_shoulder_depth_path = os.path.join( + example_path, RIGHT_SHOULDER_DEPTH_FOLDER) + right_shoulder_mask_path = os.path.join( + example_path, RIGHT_SHOULDER_MASK_FOLDER) + overhead_rgb_path = os.path.join( + example_path, OVERHEAD_RGB_FOLDER) + overhead_depth_path = os.path.join( + example_path, OVERHEAD_DEPTH_FOLDER) + overhead_mask_path = os.path.join( + example_path, OVERHEAD_MASK_FOLDER) + wrist_rgb_path = os.path.join(example_path, WRIST_RGB_FOLDER) + wrist_depth_path = os.path.join(example_path, WRIST_DEPTH_FOLDER) + wrist_mask_path = os.path.join(example_path, WRIST_MASK_FOLDER) + front_rgb_path = os.path.join(example_path, FRONT_RGB_FOLDER) + front_depth_path = os.path.join(example_path, FRONT_DEPTH_FOLDER) + front_mask_path = os.path.join(example_path, FRONT_MASK_FOLDER) + + check_and_make(left_shoulder_rgb_path) + check_and_make(left_shoulder_depth_path) + check_and_make(left_shoulder_mask_path) + check_and_make(right_shoulder_rgb_path) + check_and_make(right_shoulder_depth_path) + check_and_make(right_shoulder_mask_path) + check_and_make(overhead_rgb_path) + check_and_make(overhead_depth_path) + check_and_make(overhead_mask_path) + check_and_make(wrist_rgb_path) + check_and_make(wrist_depth_path) + check_and_make(wrist_mask_path) + check_and_make(front_rgb_path) + check_and_make(front_depth_path) + check_and_make(front_mask_path) + + for i, obs in enumerate(demo): + left_shoulder_rgb = Image.fromarray(obs.left_shoulder_rgb) + left_shoulder_depth = utils.float_array_to_rgb_image( + obs.left_shoulder_depth, scale_factor=DEPTH_SCALE) + left_shoulder_mask = Image.fromarray( + (obs.left_shoulder_mask * 255).astype(np.uint8)) + right_shoulder_rgb = Image.fromarray(obs.right_shoulder_rgb) + right_shoulder_depth = utils.float_array_to_rgb_image( + obs.right_shoulder_depth, scale_factor=DEPTH_SCALE) + right_shoulder_mask = Image.fromarray( + (obs.right_shoulder_mask * 255).astype(np.uint8)) + overhead_rgb = Image.fromarray(obs.overhead_rgb) + overhead_depth = utils.float_array_to_rgb_image( + obs.overhead_depth, scale_factor=DEPTH_SCALE) + overhead_mask = Image.fromarray( + (obs.overhead_mask * 255).astype(np.uint8)) + wrist_rgb = Image.fromarray(obs.wrist_rgb) + wrist_depth = utils.float_array_to_rgb_image( + obs.wrist_depth, scale_factor=DEPTH_SCALE) + wrist_mask = Image.fromarray((obs.wrist_mask * 255).astype(np.uint8)) + front_rgb = Image.fromarray(obs.front_rgb) + front_depth = utils.float_array_to_rgb_image( + obs.front_depth, scale_factor=DEPTH_SCALE) + front_mask = Image.fromarray((obs.front_mask * 255).astype(np.uint8)) + + left_shoulder_rgb.save( + os.path.join(left_shoulder_rgb_path, IMAGE_FORMAT % i)) + left_shoulder_depth.save( + os.path.join(left_shoulder_depth_path, IMAGE_FORMAT % i)) + left_shoulder_mask.save( + os.path.join(left_shoulder_mask_path, IMAGE_FORMAT % i)) + right_shoulder_rgb.save( + os.path.join(right_shoulder_rgb_path, IMAGE_FORMAT % i)) + right_shoulder_depth.save( + os.path.join(right_shoulder_depth_path, IMAGE_FORMAT % i)) + right_shoulder_mask.save( + os.path.join(right_shoulder_mask_path, IMAGE_FORMAT % i)) + overhead_rgb.save( + os.path.join(overhead_rgb_path, IMAGE_FORMAT % i)) + overhead_depth.save( + os.path.join(overhead_depth_path, IMAGE_FORMAT % i)) + overhead_mask.save( + os.path.join(overhead_mask_path, IMAGE_FORMAT % i)) + wrist_rgb.save(os.path.join(wrist_rgb_path, IMAGE_FORMAT % i)) + wrist_depth.save(os.path.join(wrist_depth_path, IMAGE_FORMAT % i)) + wrist_mask.save(os.path.join(wrist_mask_path, IMAGE_FORMAT % i)) + front_rgb.save(os.path.join(front_rgb_path, IMAGE_FORMAT % i)) + front_depth.save(os.path.join(front_depth_path, IMAGE_FORMAT % i)) + front_mask.save(os.path.join(front_mask_path, IMAGE_FORMAT % i)) + + # We save the images separately, so set these to None for pickling. + obs.left_shoulder_rgb = None + obs.left_shoulder_depth = None + obs.left_shoulder_point_cloud = None + obs.left_shoulder_mask = None + obs.right_shoulder_rgb = None + obs.right_shoulder_depth = None + obs.right_shoulder_point_cloud = None + obs.right_shoulder_mask = None + obs.overhead_rgb = None + obs.overhead_depth = None + obs.overhead_point_cloud = None + obs.overhead_mask = None + obs.wrist_rgb = None + obs.wrist_depth = None + obs.wrist_point_cloud = None + obs.wrist_mask = None + obs.front_rgb = None + obs.front_depth = None + obs.front_point_cloud = None + obs.front_mask = None + + # Save the low-dimension data + with open(os.path.join(example_path, LOW_DIM_PICKLE), 'wb') as f: + pickle.dump(demo, f) + + +def run(i, lock, task_index, variation_count, results, file_lock, tasks): + """Each thread will choose one task and variation, and then gather + all the episodes_per_task for that variation.""" + + # Initialise each thread with random seed + np.random.seed(None) + num_tasks = len(tasks) + + img_size = list(map(int, FLAGS.image_size)) + + obs_config = ObservationConfig() + obs_config.set_all(True) + obs_config.right_shoulder_camera.image_size = img_size + obs_config.left_shoulder_camera.image_size = img_size + obs_config.overhead_camera.image_size = img_size + obs_config.wrist_camera.image_size = img_size + obs_config.front_camera.image_size = img_size + + # Store depth as 0 - 1 + obs_config.right_shoulder_camera.depth_in_meters = False + obs_config.left_shoulder_camera.depth_in_meters = False + obs_config.overhead_camera.depth_in_meters = False + obs_config.wrist_camera.depth_in_meters = False + obs_config.front_camera.depth_in_meters = False + + # We want to save the masks as rgb encodings. + obs_config.left_shoulder_camera.masks_as_one_channel = False + obs_config.right_shoulder_camera.masks_as_one_channel = False + obs_config.overhead_camera.masks_as_one_channel = False + obs_config.wrist_camera.masks_as_one_channel = False + obs_config.front_camera.masks_as_one_channel = False + + if FLAGS.renderer == 'opengl': + obs_config.right_shoulder_camera.render_mode = RenderMode.OPENGL + obs_config.left_shoulder_camera.render_mode = RenderMode.OPENGL + obs_config.overhead_camera.render_mode = RenderMode.OPENGL + obs_config.wrist_camera.render_mode = RenderMode.OPENGL + obs_config.front_camera.render_mode = RenderMode.OPENGL + + amsolver_env = Environment( + action_mode=ActionMode(), + obs_config=obs_config, + headless=True) # set headless=False, if user want to visualize the simulator + amsolver_env.launch() + + task_env = None + + tasks_with_problems = results[i] = '' + + while True: + # Figure out what task/variation this thread is going to do + with lock: + + if task_index.value >= num_tasks: + print('Process', i, 'finished') + break + + my_variation_count = variation_count.value + t = tasks[task_index.value] + task_env = amsolver_env.get_task(t) + var_target = task_env.variation_count() + if FLAGS.variations >= 0: + var_target = np.minimum(FLAGS.variations, var_target) + if my_variation_count >= var_target: + # If we have reached the required number of variations for this + # task, then move on to the next task. + variation_count.value = my_variation_count = 0 + task_index.value += 1 + + variation_count.value += 1 + if task_index.value >= num_tasks: + print('Process', i, 'finished') + break + t = tasks[task_index.value] + + task_env = amsolver_env.get_task(t) + task_env.set_variation(my_variation_count) + + variation_path = os.path.join( + FLAGS.save_path, task_env.get_name(), + VARIATIONS_FOLDER % my_variation_count) + + check_and_make(variation_path) + + episodes_path = os.path.join(variation_path, EPISODES_FOLDER) + check_and_make(episodes_path) + current_episodes = list(Path(episodes_path).rglob("low_dim*")) + + fails_path = os.path.join(variation_path, 'fail_cases') + check_and_make(fails_path) + + abort_variation = False + ex_idx = len(current_episodes) + fail_idx = 0 + need_fail_case = False + # for ex_idx in range(FLAGS.episodes_per_task): + while ex_idx 0: + try: + # TODO: for now we do the explicit looping. + t0 = time() + demo_success= task_env.get_demos( + amount=1, + live_demos=True) + if len(demo_success)==2: + demo = demo_success[0][0] + success = demo_success[1][0] + else: + demo = demo_success[0][0] + print(f"one demo for {task_env.get_name()} // Variation {my_variation_count}: {time()-t0}, success: {success}") + except Exception as e: + print(e) + attempts -= 1 + if attempts > 0: + continue + problem = ( + 'Process %d failed collecting task %s (variation: %d, ' + 'example: %d). Skipping this task/variation.\n%s\n' % ( + i, task_env.get_name(), my_variation_count, ex_idx, + str(e)) + ) + print(problem) + tasks_with_problems += problem + abort_variation = True + break + if success: + episode_path = os.path.join(episodes_path, EPISODE_FOLDER % (ex_idx)) + # with file_lock: + save_demo(demo, episode_path) + if FLAGS.save_configs: + task_base, waypoint_sets, config = task_env.read_config(demo.high_level_instructions) + # with file_lock: + save_configs(task_base, waypoint_sets, config, episode_path) + ex_idx += 1 + break + else: + if need_fail_case: + if fail_idx 0: + continue + problem = ( + 'Process %d failed collecting task %s (variation: %d, ' + 'example: %d). Skipping this task/variation.\n' % ( + i, task_env.get_name(), my_variation_count, ex_idx) + ) + print(problem) + tasks_with_problems += problem + abort_variation = True + else: + attempts -= 1 + if abort_variation: + break + + results[i] = tasks_with_problems + amsolver_env.shutdown() + + +def main(argv): + + tasks_path = './vlm/tasks' + task_files = [t.replace('.py', '') for t in os.listdir(tasks_path) + if t != '__init__.py' and t.endswith('.py')] + + if len(FLAGS.tasks) > 0: + for t in FLAGS.tasks: + if t not in task_files: + raise ValueError('Task %s not recognised!.' % t) + task_files = FLAGS.tasks + + tasks = [task_file_to_task_class(t, parent_folder = 'vlm') for t in task_files] + + manager = Manager() + + result_dict = manager.dict() + file_lock = manager.Lock() + + task_index = manager.Value('i', 0) + variation_count = manager.Value('i', 0) + lock = manager.Lock() + + check_and_make(FLAGS.save_path) + + processes = [Process( + target=run, args=( + i, lock, task_index, variation_count, result_dict, file_lock, + tasks)) + for i in range(FLAGS.processes)] + [t.start() for t in processes] + [t.join() for t in processes] + + print('Data collection done!') + for i in range(FLAGS.processes): + print(result_dict[i]) + + +if __name__ == '__main__': + app.run(main) diff --git a/easi/tasks/ebmanipulation/vendor/tools/grasploc.py b/easi/tasks/ebmanipulation/vendor/tools/grasploc.py new file mode 100644 index 0000000..a478791 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/grasploc.py @@ -0,0 +1,277 @@ +import open3d as o3d +import argparse +import numpy as np +from itertools import combinations +import pickle +import os +from distutils.util import strtobool + +class GraspPoint: + def __init__(self, centroid, normal, principal, shell_r, shell_h, idx, bbox3d): + self.centroid = centroid + self.normal = normal + self.principal = principal + self.shell_r = shell_r + self.shell_h = shell_h + self.neighbor_idx = idx + self.bbox3d = bbox3d # x, y, z: x is length along normal, z is length along principal + +class Grasploc: + def __init__(self, args): + self.args = args + self.mesh, self.pcd, self.densepcd = None, None, None + self.grasp_points = [] + self.se3_output = None + + def run(self, origin_offset=None): + print('preprocess') + ret = self.preprocess() + if ret == 0: + self.find_grasp1() + if self.args.vis_debug: + self.visual_check() + self.save_result(origin_offset) + + def preprocess(self): + # sample grasp pose on surface (self.pcd), but calculate normal, principal based on volume samples (self.densepcd) + if self.args.use_meshlab: + try: + meshlab_tmp_file = self.args.input_file[:-4] + '_meshlab.ply' + # if not os.path.exists(meshlab_tmp_file) or self.args.meshlab_always: + try: + os.system('meshlabserver -i {} -o {} -s {}'.format(self.args.input_file, meshlab_tmp_file, self.args.meshlab_sampling_file)) + ply = o3d.io.read_point_cloud(meshlab_tmp_file).voxel_down_sample(voxel_size=self.args.pcd_sample_voxel_size) + o3d.io.write_point_cloud(meshlab_tmp_file, ply) + self.pcd = o3d.io.read_point_cloud(meshlab_tmp_file) + except Exception as e: + print(e) + print('cannot use meshlab to sample on {}'.format(self.args.input_file)) + self.pcd = o3d.io.read_triangle_mesh(self.args.input_file).sample_points_poisson_disk(number_of_points=100000).voxel_down_sample(voxel_size=self.args.pcd_sample_voxel_size) + # self.pcd = o3d.io.read_triangle_mesh(self.args.input_file).sample_points_poisson_disk(number_of_points=40000) + # processing of meshlab sampling output: decide required number of points in point cloud by object bbox surface size; translate point cloud to be centered at zero origin + except Exception as e: + print(e) + return 1 + else: + self.pcd = o3d.io.read_triangle_mesh(self.args.input_file).sample_points_poisson_disk(number_of_points=200000).voxel_down_sample(voxel_size=self.args.pcd_sample_voxel_size) + self.crop_factor = 1.0 + if not self.args.no_crop: + # bbx = o3d.geometry.AxisAlignedBoundingBox( + # min_bound=np.array([self.args.crop_x_min, self.args.crop_y_min, self.args.crop_z_min]), + # max_bound=np.array([self.args.crop_x_max, self.args.crop_y_max, self.args.crop_z_max])) + trans = self.args.crop_box_transform[:3,3] + rot = self.args.crop_box_transform[:3,:3] + x_extent = self.args.crop_x_max-self.args.crop_x_min + y_extent = self.args.crop_y_max - self.args.crop_y_min + z_extent = self.args.crop_z_max- self.args.crop_z_min + extent = np.array([x_extent, y_extent, z_extent]) + bbx = o3d.geometry.OrientedBoundingBox(center=trans, R=rot, extent=extent) + original_points = len(self.pcd.points) + self.pcd = self.pcd.crop(bbx) + self.crop_factor = len(self.pcd.points) / original_points + if len(self.pcd.points) == 0: + print('mesh has no point samples in cropped area, quit') + return 1 + else: + return 0 + + def find_grasp1(self): + self.pcd.estimate_normals() + pcd_tree = o3d.geometry.KDTreeFlann(self.pcd) + ft, fd, fw, fl = self.args.finger_thickness, self.args.finger_max_distance, self.args.finger_width, self.args.finger_length + # The minimum number of points that are required to be inside of a grasp + self.downpcd = self.pcd.voxel_down_sample(voxel_size=self.args.grasp_sample_voxel_size) + while len(self.downpcd.points)>2000: + self.args.grasp_sample_voxel_size = self.args.grasp_sample_voxel_size*1.2 + self.downpcd = self.pcd.voxel_down_sample(voxel_size=self.args.grasp_sample_voxel_size) + self.downpcd.paint_uniform_color([1, 0, 0]) + # if self.args.vis_debug: + # geoms = [] + # self.pcd.paint_uniform_color([0.8, 0.8, 0.8]) + # geoms.append(self.pcd) + # geoms.append(self.downpcd) + # o3d.visualization.draw_geometries(geoms, point_show_normal=True) + # for pt, nm in zip(self.pcd.points[::dr], self.pcd.normals[::dr]): + print('num of samples:', len(self.downpcd.points)) + min_num_points_in_grasp = (fd*fl + fl*ft + fd*ft) / self.args.pcd_sample_voxel_size**2 * self.args.min_num_points_between_proportion + min_num_points_in_grasp *= self.crop_factor / 2 + while len(self.grasp_points) <= 10: + for i, (pt, nm) in enumerate(zip(self.downpcd.points, self.downpcd.normals)): + print(i, '/', len(self.downpcd.points)) + # grasp along negative normal, aka pointing inward object orthogonal to local surface + # do it for positive and negative direction as calculated normal is not always pointing inwards + for normal in [nm, -nm]: + # create a cuboid of the volume between two fingers ((finger distance + 2*finger width) * finger_thickness * finger length), + # here finger distance can be 0-max distance + # rotate about normal to find axis connecting two fingers that has blank space on both sides for fingers while has points between, + # (optional) the side surface direction should be consistent with finger's direction + # 1. generate principal samples on orthogonal plane of normal + normal = normal / np.linalg.norm(normal) + finger_percents=[0.1, 0.2,0.4,0.5] + for f_p in finger_percents: + centroid = pt + fl*f_p * normal + tmp = np.array([1, 0, 0]) + principal = tmp - np.dot(tmp, normal) * normal + principal = principal / np.linalg.norm(principal) + theta = np.pi * 2 / self.args.rotation_sample + principals = [np.cos(i*theta) * principal + np.sin(i*theta) * np.cross(principal, normal) for i in range(self.args.rotation_sample)] + principals = [p / np.linalg.norm(p) for p in principals] + # 2. create cuboid along normal and principal direction, normal <-> finger length; principal <-> finger thickness; cross <-> grasp aperture + # check point num between two fingers and on two sides + radius = np.sqrt(ft**2 + (fd + 2*fw)**2 + fl**2) / 2 + _, idx, _ = pcd_tree.search_radius_vector_3d(centroid, radius=radius) + pt_offset = np.asarray(self.pcd.points)[idx[1:], :] - centroid + for principal in principals: + cross = np.cross(normal, principal) + # for aperture in np.linspace(self.args.min_grasp_distance, fd, 10): + between_conditions = [np.abs(pt_offset @ normal) < fl / 2, np.abs(pt_offset @ principal) < ft / 2, np.abs(pt_offset @ cross) < fd / 2] + # extend between area distance of finger width along +/-cross and -normal + around_conditions = [pt_offset @ normal < fl / 2, pt_offset @ normal > -fl / 2 - fw, np.abs(pt_offset @ principal) < ft / 2, np.abs(pt_offset @ cross) < fd / 2 + fw] + n_between = np.sum(np.bitwise_and.reduce(between_conditions)) + n_around = np.sum(np.bitwise_and.reduce(around_conditions)) - n_between + # print(n_between, min_num_points_in_grasp, n_around, self.args.max_num_points_intefering) + if n_between > min_num_points_in_grasp and n_around < self.args.max_num_points_intefering: + grasp = GraspPoint(centroid, normal, principal, fd, None, None, [ft, fd, fl]) + self.grasp_points.append(grasp) + # grasp.normal = -grasp.normal + # grasp.principal = -grasp.principal + # self.grasp_points.append(grasp) + # print('found a grasp') + # self.visual_check(grasp, vis_bbox=True) + if len(self.grasp_points)<=10: + min_num_points_in_grasp = min_num_points_in_grasp*0.5 + print('Release the min_num_points_in_grasp to {}'.format(min_num_points_in_grasp)) + elif len(self.grasp_points) == 0: + self.args.grasp_sample_voxel_size = self.args.grasp_sample_voxel_size*0.8 + self.downpcd = self.pcd.voxel_down_sample(voxel_size=self.args.grasp_sample_voxel_size) + print('Grasp poses are too litte. Resample the point cloud with {}'.format(self.args.grasp_sample_voxel_size)) + print('grasp candidates:', len(self.grasp_points)) + + def visual_check(self, grasp=None, vis_bbox=False): + # visualization, create cylinder + geoms = [] + self.pcd.paint_uniform_color([0.8, 0.8, 0.8]) + geoms.append(self.pcd) + grasp_set = self.grasp_points if grasp is None else [grasp] + n_vis = 1000 + fw = self.args.finger_width + dr = max(len(self.grasp_points) // n_vis, 1) + for grasp in grasp_set[::dr]: + trans_mat = np.identity(4) + trans_mat[:3, 2] = grasp.normal + trans_mat[:3, 0] = grasp.principal + trans_mat[:3, 1] = np.cross(grasp.normal, grasp.principal) + trans_mat[:3, 3] = grasp.centroid + + # grasp_finger_connection_vis.transform(trans_corr_mat) + # grasp_finger_connection_vis.transform(trans_mat) + # geoms.append(grasp_finger_connection_vis) + if vis_bbox: + trans_corr_mat = np.identity(4) + grasp_bbox_vis = o3d.geometry.TriangleMesh.create_box(width=grasp.bbox3d[0], height=fw, depth=grasp.bbox3d[2]) + trans_corr_mat[0, 3] = -grasp.bbox3d[0]/2 + trans_corr_mat[1, 3] = -grasp.bbox3d[1]/2 - fw + trans_corr_mat[2, 3] = -grasp.bbox3d[2]/2 + grasp_bbox_vis.transform(trans_corr_mat) + grasp_bbox_vis.transform(trans_mat) + geoms.append(grasp_bbox_vis) + grasp_bbox_vis = o3d.geometry.TriangleMesh.create_box(width=grasp.bbox3d[0], height=fw, depth=grasp.bbox3d[2]) + trans_corr_mat[0, 3] = -grasp.bbox3d[0]/2 + trans_corr_mat[1, 3] = grasp.bbox3d[1]/2 + trans_corr_mat[2, 3] = -grasp.bbox3d[2]/2 + grasp_bbox_vis.transform(trans_corr_mat) + grasp_bbox_vis.transform(trans_mat) + geoms.append(grasp_bbox_vis) + grasp_bbox_vis = o3d.geometry.TriangleMesh.create_box(width=grasp.bbox3d[0], height=grasp.bbox3d[1] + 2*fw, depth=fw) + # grasp_bbox_vis.paint_uniform_color([0, 0, 0.1]) + trans_corr_mat[0, 3] = -grasp.bbox3d[0]/2 + trans_corr_mat[1, 3] = -grasp.bbox3d[1]/2 - fw + trans_corr_mat[2, 3] = -grasp.bbox3d[2]/2 - fw + grasp_bbox_vis.transform(trans_corr_mat) + grasp_bbox_vis.transform(trans_mat) + geoms.append(grasp_bbox_vis) + self.args.frame_size = 0.02 # to show axis with bbox + mesh_frame = o3d.geometry.TriangleMesh.create_coordinate_frame(size=self.args.frame_size) + tmp_trans_mat = np.identity(4) + tmp_trans_mat[:3, 3] = grasp.centroid + mesh_frame.transform(tmp_trans_mat) + geoms.append(mesh_frame) + self.args.frame_size = 0.05 + + mesh_frame = o3d.geometry.TriangleMesh.create_coordinate_frame(size=self.args.frame_size) + mesh_frame.transform(trans_mat) + geoms.append(mesh_frame) + + o3d.visualization.draw_geometries(geoms, point_show_normal=True) + + def save_result(self, origin_offset=None): + self.se3_output = [] + for grasp in self.grasp_points: + grasp_pose = np.identity(4) + grasp_pose[:3, 3] = grasp.centroid + grasp_pose[:3, 0] = grasp.principal + grasp_pose[:3, 2] = grasp.normal + grasp_pose[:3, 1] = np.cross(grasp.normal, grasp.principal) + self.se3_output.append(grasp_pose) + self.se3_output = np.array(self.se3_output) + if origin_offset is not None: + self.se3_output = np.einsum('ij,kjl->kil', np.linalg.inv(origin_offset), self.se3_output) + with open(self.args.output_file, 'wb') as f: + # pickle.dump(self.grasp_points, f) # only for debug + pickle.dump(self.se3_output, f) + print('grasp poses saved to', self.args.output_file) + + def load_result(self): + with open(self.args.output_file, 'rb') as f: + self.se3_output = pickle.load(f) + print('grasp poses loaded from', self.args.output_file) + + +def define_default_args(): + parser = argparse.ArgumentParser() + # point cloud, grasp sample density + parser.add_argument('--use_meshlab',type=lambda x:bool(strtobool(x)), default=True, help='whether use meshlab to sample the mesh') + parser.add_argument('--pcd_sample_voxel_size', type=int, default=0.0005, help='point cloud sample voxel grid size') + parser.add_argument('--grasp_sample_voxel_size', type=int, default=0.005, help='grasp sample voxel grid size') + + # grasp generation params + parser.add_argument('--min_num_points_between_proportion', type=int, default=0.2, help='The proportion of minimum points in the bbox formed by two fingers over the half surface size of the bbox divided by sampled point cloud voxel distance squared') + parser.add_argument('--max_num_points_intefering', type=int, default=10, help='The maximum number of points allowed to interfere with the gripper') + parser.add_argument('--min_grasp_distance', type=float, default=0.01, help='minimum distance between two fingers when the gripper close to grasp object') + parser.add_argument('--finger_max_distance', type=float, default=0.08, help='The maximum distance between the two fingers of the gripper') + parser.add_argument('--finger_width', type=float, default=0.02, help='finger width (the same direction as distance between two fingers)') + parser.add_argument('--finger_thickness', type=float, default=0.02, help='distance between front and back side of fingers') + parser.add_argument('--rotation_sample', type=int, default=16, help='grasp sample rotated about normal axis') + parser.add_argument('--finger_length', type=float, default=0.045, help='finger length') + + # input point cloud grasp search region + parser.add_argument('--crop_x_min', type=float, default=-0.1, help='x min for cropping the point cloud') + parser.add_argument('--crop_x_max', type=float, default=0.1, help='x max for cropping the point cloud') + parser.add_argument('--crop_y_min', type=float, default=-0.1, help='y min for cropping the point cloud') + parser.add_argument('--crop_y_max', type=float, default=0.1, help='y max for cropping the point cloud') + parser.add_argument('--crop_z_min', type=float, default=-0.1, help='z max for cropping the point cloud') + parser.add_argument('--crop_z_max', type=float, default=0.1, help='z max for cropping the point cloud') + parser.add_argument('--crop_box_transform', default=None, help='the transform of the crop box') + parser.add_argument('--no_crop', type=lambda x:bool(strtobool(x)), default=True, help='Do not crop input point cloud (1 default; 0 to crop), set xyz min max to be the bbox around point cloud') + + # io, vis params + parser.add_argument('--input_file', type=str, default='./flatbox.ply', help='(PLY file) object 3d model input file to search graspable poses') + parser.add_argument('--output_file', type=str, default='./graspposes.pkl', help='file to save graspable poses using pickle') + parser.add_argument('--meshlab_always', type=lambda x:bool(strtobool(x)), default=False, help='always use meshlab to sample regardless of whether there is previous saved file') + parser.add_argument('--meshlab_sampling_file', type=str, default='./tools/meshlab_stratified_sampling.mlx', help='sampling script using meshlab') + parser.add_argument('--vis_debug', type=lambda x:bool(strtobool(x)), default=False, help='visualize temporary results for debugging') + parser.add_argument('--frame_size', type=float, default=0.01, help='coordinate frame size in visualization') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + grasp_pose_path = './vlm/grasp_poses/' + ply_file = None + args = define_default_args() + args.input_file = ply_file + args.output_file = grasp_pose_path + ply_file.split('/')[-1][:-4] + '.pkl' + args.vis_debug = True + args.meshlab_always=True + gl = Grasploc(args) + gl.run() diff --git a/easi/tasks/ebmanipulation/vendor/tools/meshlab_stratified_sampling.mlx b/easi/tasks/ebmanipulation/vendor/tools/meshlab_stratified_sampling.mlx new file mode 100644 index 0000000..b21e61e --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/meshlab_stratified_sampling.mlx @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/tools/task_builder_NLP.py b/easi/tasks/ebmanipulation/vendor/tools/task_builder_NLP.py new file mode 100644 index 0000000..289f100 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/task_builder_NLP.py @@ -0,0 +1,312 @@ +import os +import sys +from os.path import join, dirname, abspath, isfile + +CURRENT_DIR = dirname(abspath(__file__)) +sys.path.insert(0, join(CURRENT_DIR, '..')) # Use local amsolver rather than installed + +import traceback +import readline + +from pyrep.const import RenderMode + +from amsolver.backend.const import TTT_FILE +from pyrep import PyRep +from pyrep.robots.arms.panda import Panda +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.robots.end_effectors.panda_gripper import PandaGripper +from amsolver.backend.scene import Scene +from amsolver.backend.exceptions import * +from amsolver.observation_config import ObservationConfig, CameraConfig +from amsolver.backend.robot import Robot +from amsolver.utils import name_to_task_class +from tools.task_validator import task_smoke, TaskValidationError + +CURRENT_DIR = dirname(abspath(__file__)) + + +def print_fail(message, end='\n'): + message = str(message) + sys.stderr.write('\x1b[1;31m' + message.strip() + '\x1b[0m' + end) + + +def setup_list_completer(TASKS_PATH): + task_files = [t.replace('.py', '') for t in os.listdir(TASKS_PATH) + if t != '__init__.py' and t.endswith('.py')] + + def list_completer(_, state): + line = readline.get_line_buffer() + if not line: + return [c + " " for c in task_files][state] + + else: + return [c + " " for c in task_files if c.startswith(line)][state] + + readline.parse_and_bind("tab: complete") + readline.set_completer(list_completer) + + +class LoadedTask(object): + + def __init__(self, pr: PyRep, scene: Scene, robot: Robot, parent_folder="vlm"): + self.pr = pr + self.scene = scene + self.robot = robot + self.task = self.task_class = self.task_file = None + self._variation_index = 0 + self.parent_folder = parent_folder + + def _load_task_to_scene(self): + self.scene.unload() + self.task = self.task_class(self.pr, self.robot) # task constructor + try: + # Try and load the task + scene.load(self.task, ttms_folder='./{}/task_ttms'.format(self.parent_folder)) + except FileNotFoundError as e: + # The .ttt file must not exist + handle = Dummy.create() + handle.set_name(self.task_file.replace('.py', '')) + handle.set_model(True) + # Put the dummy at the centre of the workspace + self.task.get_base().set_position(Shape('workspace').get_position()) + + def _edit_new_task(self): + task_file = input('What task would you like to edit?\n') + task_file = task_file.strip(' ') + if len(task_file) > 3 and task_file[-3:] != '.py': + task_file += '.py' + try: + task_class = name_to_task_class(task_file, parent_folder=self.parent_folder) + except: + print('There was no task named: %s. ' + 'Would you like to create it?' % task_file) + inp = input() + if inp == 'y': + self._create_python_file(task_file) + task_class = name_to_task_class(task_file, parent_folder=self.parent_folder) + else: + print('Pick a defined task in that case...') + task_class, task_file = self._edit_new_task() + return task_class, task_file + + def _create_python_file(self, task_file: str): + with open(join(CURRENT_DIR, 'assets', 'task_template.txt'), 'r') as f: + file_content = f.read() + class_name = self._file_to_class_name(task_file) + file_content = file_content % (class_name,) + new_file_path = join(CURRENT_DIR, '../{}/tasks'.format(self.parent_folder), task_file) + if isfile(new_file_path): + raise RuntimeError('File already exists. Will not override this.') + with open(new_file_path, 'w+') as f: + f.write(file_content) + + def _file_to_class_name(self, name): + name = name.replace('.py', '') + return ''.join([w[0].upper() + w[1:] for w in name.split('_')]) + + def reload_python(self): + try: + task_class = name_to_task_class(self.task_file, parent_folder=self.parent_folder) + except Exception as e: + print_fail('The python file could not be loaded!') + traceback.print_exc() + return None, None + self.task = task_class(self.pr, self.robot) # task constructor + self.scene.load(self.task) + + def new_task(self): + self._variation_index = 0 + self.task_class, self.task_file = self._edit_new_task() + self._load_task_to_scene() + self.pr.step_ui() + print('You are now editing: %s' % str(self.task_class)) + + def reset_variation(self): + self._variation_index = 0 + + def new_variation(self): + try: + self._variation_index += 1 + descriptions = self.scene.init_episode( + self._variation_index % self.task.variation_count()) + print('Task descriptions: ', descriptions) + except (WaypointError, BoundaryError, Exception) as ex: + traceback.print_exc() + self.pr.step_ui() + + def new_episode(self): + try: + descriptions = self.scene.init_episode( + self._variation_index % self.task.variation_count(), + max_attempts=1) + print('Task descriptions: ', descriptions) + except (WaypointError, BoundaryError, Exception) as ex: + traceback.print_exc() + self.scene.reset() + self.pr.step_ui() + + def new_demo(self): + success = False + try: + _, success = self.scene.get_demo(False, randomly_place=False) + except (WaypointError, NoWaypointsError, DemoError, Exception) as e: + traceback.print_exc() + # success, terminate = self.task.success() + if success: + print("Demo was a success!") + self.scene.reset() + self.pr.step_ui() + self.pr.step_ui() + + def save_task(self): + ttm_path = join(CURRENT_DIR, '../{}/task_ttms'.format(self.parent_folder), + self.task_file.replace('.py', '.ttm')) + self.task.get_base().save_model(ttm_path) + print('Task saved to:', ttm_path) + + def run_task_validator(self): + print('About to perform task validation.') + print("What variation to test? Pick int in range: 0 to %d, or -1 to " + "test all. Or press 'e' to exit." + % self.task.variation_count()) + inp = input() + if inp == 'e': + return + self.pr.start() + try: + v = int(inp) + v = v if v < 0 else v % self.task.variation_count() + task_smoke(self.task, self.scene, variation=v) + except TaskValidationError as e: + traceback.print_exc() + self.pr.stop() + + def rename(self): + print('Enter new name (or q to abort).') + inp = input() + if inp == 'q': + return + + name = inp.replace('.py', '') + python_file = name + '.py' + + # Change name of base + handle = Dummy(self.task_file.replace('.py', '')) + handle.set_name(name) + + # Change the class name + old_file_path = join(CURRENT_DIR, '../{}/tasks'.format(self.parent_folder), self.task_file) + old_class_name = self._file_to_class_name(self.task_file) + new_class_name = self._file_to_class_name(name) + with open(old_file_path, 'r') as f: + content = f.read() + content = content.replace(old_class_name, new_class_name) + with open(old_file_path, 'w') as f: + f.write(content) + + # Rename python task file + new_file_path = join(CURRENT_DIR, '../{}/tasks'.format(self.parent_folder), python_file) + os.rename(old_file_path, new_file_path) + + # Rename .ttt + old_ttm_path = join(CURRENT_DIR, '../{}/task_ttms'.format(self.parent_folder), + self.task_file.replace('.py', '.ttm')) + new_ttm_path = join(CURRENT_DIR, '../{}/task_ttms'.format(self.parent_folder), + python_file.replace('.py', '.ttm')) + os.rename(old_ttm_path, new_ttm_path) + + self.task_file = python_file + self.reload_python() + self.save_task() + print('Rename complete') + + +if __name__ == '__main__': + task_path = "./vlm/tasks" + setup_list_completer(task_path) + + pr = PyRep() + ttt_file = join(CURRENT_DIR, '..', 'amsolver', TTT_FILE) + pr.launch(ttt_file, responsive_ui=True) + pr.step_ui() + + robot = Robot(Panda(), PandaGripper()) + cam_config = CameraConfig(rgb=True, depth=False, mask=False, + render_mode=RenderMode.OPENGL) + obs_config = ObservationConfig() + obs_config.set_all(False) + obs_config.right_shoulder_camera = cam_config + obs_config.left_shoulder_camera = cam_config + obs_config.overhead_camera = cam_config + obs_config.wrist_camera = cam_config + obs_config.front_camera = cam_config + + scene = Scene(pr, robot, obs_config) + loaded_task = LoadedTask(pr, scene, robot, parent_folder="vlm") + + print(' ,') + print(' /( ___________') + print('| >:===========` Welcome to task builder!') + print(' )(') + print(' ""') + + loaded_task.new_task() + + while True: + # os.system('cls' if os.name == 'nt' else 'clear') + print('\n-----------------\n') + print('The python file will be reloaded when simulation is restarted.') + print('(q) to quit.') + if pr.running: + print('(+) stop the simulator') + print('(v) for task variation.') + print('(e) for episode of same variation.') + print('(d) for demo.') + print('(p) for running the sim for 100 steps (with rendering).') + else: + print('(!) to run task validator.') + print('(+) run the simulator') + print('(n) for new task.') + print('(s) to save the .ttm') + print('(r) to rename the task') + + inp = input() + + if inp == 'q': + break + + if pr.running: + if inp == '+': + pr.stop() + loaded_task._load_task_to_scene() + pr.step_ui() + elif inp == 'p': + [(pr.step(), scene.get_observation()) for _ in range(100)] + elif inp == 'd': + loaded_task.new_demo() + elif inp == 'v': + loaded_task.new_variation() + elif inp == 'e': + loaded_task.new_episode() + else: + if inp == '+': + loaded_task.reload_python() + loaded_task.reset_variation() + pr.start() + pr.step_ui() + elif inp == 'n': + inp = input('Do you want to save the current task first?\n') + if inp == 'y': + loaded_task.save_task() + loaded_task.new_task() + elif inp == 's': + loaded_task.save_task() + elif inp == '!': + loaded_task.run_task_validator() + elif inp == 'r': + loaded_task.rename() + + pr.stop() + pr.shutdown() + print('Done. Goodbye!') diff --git a/easi/tasks/ebmanipulation/vendor/tools/task_validator.py b/easi/tasks/ebmanipulation/vendor/tools/task_validator.py new file mode 100644 index 0000000..c692cd6 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/task_validator.py @@ -0,0 +1,149 @@ +from amsolver.backend.task import Task +from amsolver.backend.scene import DemoError +from amsolver.observation_config import ObservationConfig +from pyrep import PyRep +from pyrep.robots.arms.panda import Panda +from pyrep.robots.end_effectors.panda_gripper import PandaGripper +from amsolver.backend.const import TTT_FILE +from amsolver.backend.scene import Scene +from amsolver.backend.utils import task_file_to_task_class +from amsolver.backend.task import TASKS_PATH +from amsolver.backend.robot import Robot +import numpy as np +import os +import argparse + +DEMO_ATTEMPTS = 5 +MAX_VARIATIONS = 100 + + +class TaskValidationError(Exception): + pass + + +def task_smoke(task: Task, scene: Scene, variation=-1, demos=4, success=0.50, + max_variations=3, test_demos=True): + # -1 variations for all. + + print('Running task validator on task: %s' % task.get_name()) + + # Loading + scene.load(task) + + # Number of variations + variation_count = task.variation_count() + if variation_count < 0: + raise TaskValidationError( + "The method 'variation_count' should return a number > 0.") + + if variation_count > MAX_VARIATIONS: + raise TaskValidationError( + "This task had %d variations. Currently the limit is set to %d" % + (variation_count, MAX_VARIATIONS)) + + # Base rotation bounds + base_pos, base_ori = task.base_rotation_bounds() + if len(base_pos) != 3 or len(base_ori) != 3: + raise TaskValidationError( + "The method 'base_rotation_bounds' should return a tuple " + "containing a list of floats.") + + # Boundary root + root = task.boundary_root() + if not root.still_exists(): + raise TaskValidationError( + "The method 'boundary_root' should return a Dummy that is the root " + "of the task.") + + def variation_smoke(i): + + print('Running task validator on variation: %d' % i) + + attempt_result = False + failed_demos = 0 + for j in range(DEMO_ATTEMPTS): + failed_demos = run_demos(i) + attempt_result = (failed_demos / float(demos) <= 1. - success) + if attempt_result: + break + else: + print('Failed on attempt %d. Trying again...' % j) + + # Make sure we don't fail too often + if not attempt_result: + raise TaskValidationError( + "Too many failed demo runs. %d of %d demos failed." % ( + failed_demos, demos)) + else: + print('Variation %d of task %s is good!' % (i, task.get_name())) + if test_demos: + print('%d of %d demos were successful.' % ( + demos - failed_demos, demos)) + + def run_demos(variation_num): + fails = 0 + for dr in range(demos): + try: + scene.reset() + desc = scene.init_episode(variation_num, max_attempts=10) + if not isinstance(desc, list) or len(desc) <= 0: + raise TaskValidationError( + "The method 'init_variation' should return a list of " + "string descriptions.") + if test_demos: + demo = scene.get_demo(record=True) + assert len(demo) > 0 + except DemoError as e: + fails += 1 + print(e) + except Exception as e: + # TODO: check that we don't fall through all of these cases + fails += 1 + print(e) + + return fails + + variations_to_test = [variation] + if variation < 0: + variations_to_test = list(range( + np.minimum(variation_count, max_variations))) + + # Task set-up + scene.init_task() + [variation_smoke(i) for i in variations_to_test] + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument("task", help="The task file to test.") + args = parser.parse_args() + + python_file = os.path.join(TASKS_PATH, args.task) + if not os.path.isfile(python_file): + raise RuntimeError('Could not find the task file: %s' % python_file) + + task_class = task_file_to_task_class(args.task) + + DIR_PATH = os.path.dirname(os.path.abspath(__file__)) + sim = PyRep() + ttt_file = os.path.join( + DIR_PATH, '..', 'rlbench', TTT_FILE) + sim.launch(ttt_file, headless=True) + sim.step_ui() + sim.set_simulation_timestep(0.005) + sim.step_ui() + sim.start() + + robot = Robot(Panda(), PandaGripper()) + + active_task = task_class(sim, robot) + obs = ObservationConfig() + obs.set_all(False) + scene = Scene(sim, robot, obs) + try: + task_smoke(active_task, scene, variation=2) + except TaskValidationError as e: + sim.shutdown() + raise e + sim.shutdown() + print('Validation successful!') diff --git a/easi/tasks/ebmanipulation/vendor/tools/test_config_generator.py b/easi/tasks/ebmanipulation/vendor/tools/test_config_generator.py new file mode 100644 index 0000000..5b740d4 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/tools/test_config_generator.py @@ -0,0 +1,259 @@ +from multiprocessing import Process, Manager +from time import time +import cv2 +from pyrep.objects.dummy import Dummy +from pyrep.objects.vision_sensor import VisionSensor +from pyrep.const import RenderMode +from os.path import join, dirname, abspath, isfile +import sys +CURRENT_DIR = dirname(abspath(__file__)) +sys.path.insert(0, join(CURRENT_DIR, '..')) # Use local amsolver rather than installed +from amsolver import ObservationConfig +from amsolver.action_modes import ActionMode +from amsolver.backend.utils import task_file_to_task_class +from amsolver.environment import Environment +import amsolver.backend.task as task + +import os +import pickle +from PIL import Image +from amsolver.backend import utils +from amsolver.backend.const import * +import numpy as np +import random + +from absl import app +from absl import flags + +def set_seed(seed, torch=False): + random.seed(seed) + os.environ['PYTHONHASHSEED'] = str(seed) + np.random.seed(seed) + + if torch: + import torch + torch.manual_seed(seed) +random_seed = random.randint(1, 10000) +print(f'random seed: {random_seed}') +set_seed(random_seed) +FLAGS = flags.FLAGS + +flags.DEFINE_string('save_path', + './rlbench_data/test/seen', + 'Where to save the demos.') +flags.DEFINE_list('tasks', [ + 'place_into_shape_sorter_color', + 'place_into_shape_sorter_shape', 'place_into_shape_sorter_relative', + 'drop_pen_color', 'drop_pen_relative', 'drop_pen_size', + 'wipe_table_color', 'wipe_table_relative', 'wipe_table_shape', 'wipe_table_size', 'wipe_table_direction', + 'pour_demo_color', 'pour_demo_relative', 'pour_demo_size', + 'pick_cube_color', 'pick_cube_relative', 'pick_cube_shape', 'pick_cube_size', + 'stack_cubes_color', 'stack_cubes_size', + 'stack_cubes_relative', 'stack_cubes_shape', + 'open_door_complex', + 'open_drawer' +], + 'The tasks to collect. If empty, all tasks are collected.') +flags.DEFINE_list('image_size', [360, 360], + 'The size of the images tp save.') +flags.DEFINE_enum('renderer', 'opengl', ['opengl', 'opengl3'], + 'The renderer to use. opengl does not include shadows, ' + 'but is faster.') +flags.DEFINE_integer('processes', 16, + 'The number of parallel processes during collection.') +flags.DEFINE_integer('episodes_per_task', 5, + 'The number of episodes to collect per task.') +flags.DEFINE_integer('episodes_per_task_all_variations', 100, + 'The number of episodes to collect per task.') +flags.DEFINE_integer('variations', -1, + 'Number of variations to collect per task. -1 for all.') + +class Recorder(object): + def __init__(self) -> None: + cam_placeholder = Dummy('cam_cinematic_placeholder') + self.cam = VisionSensor.create([320, 320], view_angle=30) + self.cam.set_pose(cam_placeholder.get_pose()) + self.cam.set_parent(cam_placeholder) + self._snaps = [] + self._fps=30 + + def take_snap(self): + self._snaps.append( + (self.cam.capture_rgb() * 255.).astype(np.uint8)) + + def save_video(self, path): + print('Converting to video ...') + os.makedirs(os.path.dirname(path), exist_ok=True) + video = cv2.VideoWriter( + path, cv2.VideoWriter_fourcc(*'MJPG'), self._fps, + tuple(self.cam.get_resolution())) + for image in self._snaps: + video.write(cv2.cvtColor(image, cv2.COLOR_RGB2BGR)) + video.release() + self._snaps = [] + + def save_image(self, path): + print('Saving the image ...') + cv2.imwrite(path, cv2.cvtColor(self._snaps[0], cv2.COLOR_RGB2BGR)) + self._snaps = [] + +def check_and_make(dir): + if not os.path.exists(dir): + os.makedirs(dir) + + +def save_demo(task_base, waypoint_sets, config, example_path): + check_and_make(example_path) + # Save the low-dimension data + with open(os.path.join(example_path, "configs.pkl"), 'wb') as f: + pickle.dump(config, f) + task_base.save_model(os.path.join(example_path, "task_base.ttm")) + waypoint_sets.save_model(os.path.join(example_path, "waypoint_sets.ttm")) + +def run(i, lock, task_index, variation_count, results, file_lock, tasks): + """Each thread will choose one task and variation, and then gather + all the episodes_per_task for that variation.""" + + # Initialise each thread with random seed + np.random.seed(None) + num_tasks = len(tasks) + + img_size = list(map(int, FLAGS.image_size)) + + obs_config = ObservationConfig() + obs_config.set_all_high_dim(False) + obs_config.set_all_low_dim(True) + + amsolver_env = Environment( + action_mode=ActionMode(), + obs_config=obs_config, + headless=True) + amsolver_env.launch() + # recorder = Recorder() + recorder = None + task_env = None + + tasks_with_problems = results[i] = '' + + while True: + # Figure out what task/variation this thread is going to do + with lock: + + if task_index.value >= num_tasks: + print('Process', i, 'finished') + break + + my_variation_count = variation_count.value + t = tasks[task_index.value] + task_env = amsolver_env.get_task(t) + var_target = task_env.variation_count() + if FLAGS.variations >= 0: + var_target = np.minimum(FLAGS.variations, var_target) + if my_variation_count >= var_target: + # If we have reached the required number of variations for this + # task, then move on to the next task. + variation_count.value = my_variation_count = 0 + task_index.value += 1 + + variation_count.value += 1 + if task_index.value >= num_tasks: + print('Process', i, 'finished') + break + t = tasks[task_index.value] + + task_env = amsolver_env.get_task(t) + task_env.set_variation(my_variation_count) + + if FLAGS.episodes_per_task_all_variations>0: + FLAGS.episodes_per_task = (FLAGS.episodes_per_task_all_variations // task_env.variation_count()) + variation_path = os.path.join( + FLAGS.save_path, task_env.get_name(), + VARIATIONS_FOLDER % my_variation_count) + + check_and_make(variation_path) + + episodes_path = os.path.join(variation_path, EPISODES_FOLDER) + check_and_make(episodes_path) + current_episodes = os.listdir(episodes_path) + + abort_variation = False + ex_idx = len(current_episodes) + # for ex_idx in range(FLAGS.episodes_per_task): + while ex_idx 0: + try: + task_base, waypoint_sets, config = task_env.save_config() + if recorder is not None: + recorder.take_snap() + except Exception as e: + print(e) + attempts -= 1 + if attempts > 0: + continue + problem = ( + 'Process %d failed collecting task %s (variation: %d, ' + 'example: %d). Skipping this task/variation.\n%s\n' % ( + i, task_env.get_name(), my_variation_count, ex_idx, + str(e)) + ) + print(problem) + tasks_with_problems += problem + abort_variation = True + break + episode_path = os.path.join(episodes_path, EPISODE_FOLDER % (ex_idx)) + with file_lock: + save_demo(task_base, waypoint_sets, config, episode_path) + if recorder is not None: + recorder.save_image(os.path.join(episode_path, "image.png")) + ex_idx += 1 + break + if abort_variation: + break + + results[i] = tasks_with_problems + amsolver_env.shutdown() + + +def main(argv): + # tasks_path = './language_tasks/tasks' + tasks_path = './vlm/tasks' + task_files = [t.replace('.py', '') for t in os.listdir(tasks_path) + if t != '__init__.py' and t.endswith('.py')] + + if len(FLAGS.tasks) > 0: + for t in FLAGS.tasks: + if t not in task_files: + raise ValueError('Task %s not recognised!.' % t) + task_files = FLAGS.tasks + + tasks = [task_file_to_task_class(t, parent_folder = 'vlm') for t in task_files] + + manager = Manager() + + result_dict = manager.dict() + file_lock = manager.Lock() + + task_index = manager.Value('i', 0) + variation_count = manager.Value('i', 0) + lock = manager.Lock() + + check_and_make(FLAGS.save_path) + + processes = [Process( + target=run, args=( + i, lock, task_index, variation_count, result_dict, file_lock, + tasks)) + for i in range(FLAGS.processes)] + [t.start() for t in processes] + [t.join() for t in processes] + + print('Data collection done!') + for i in range(FLAGS.processes): + print(result_dict[i]) + + +if __name__ == '__main__': + app.run(main) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/__init__.py b/easi/tasks/ebmanipulation/vendor/vlm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/__init__.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen.py new file mode 100644 index 0000000..002eed5 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen.py @@ -0,0 +1,141 @@ +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.dummy import Dummy +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from pyrep.const import ObjectType, PrimitiveShape +from pyrep.backend._sim_cffi import ffi, lib +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, TargetSpace, VLM_Object +from amsolver.const import colors +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task + +class DropPen(Task): + + def init_task(self) -> None: + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.object_list = [] + self.target_list = [] + self.temporary_waypoints = [] + self.taks_base = self.get_base() + if not hasattr(self, "model_num"): + self.model_num = 2 + self.import_objects(self.model_num) + self._task_init_states = self.get_state()[0] + + def init_episode(self, index: int) -> List[str]: + self.variation_index = index + self.pyrep.set_configuration_tree(self._task_init_states) + try_times = 200 + # pick_number = np.random.randint(1,self.model_num) + pick_obj = self.object_list[0] + target_obj = self.target_list[0] + while len(self.temporary_waypoints)==0 and try_times>0: + self.sample_method() + self.pyrep.step() + init_states = self.get_state()[0] + obj_space_args = {"obj":pick_obj.manipulated_part, "container":target_obj} + target_space_descriptions = f"along the opening of {target_obj.target_space_descriptions}" + target_space = TargetSpace(self.drop_pose, space_args=obj_space_args, + target_space_descriptions = target_space_descriptions, focus_obj_id= target_obj.visual.get_handle()) + target_space.set_target(pick_obj.manipulated_part, try_ik_sampling=False, linear=False, release=True) + MoveTask = T1_MoveObjectGoal(self.robot, self.pyrep, target_space, self.taks_base, fail_times=2) + GraspTask = T0_ObtainControl(self.robot, self.pyrep, pick_obj.manipulated_part, self.taks_base, try_times=500, + next_task_fuc=MoveTask.get_path) + waypoints = GraspTask.get_path(try_ik_sampling=False, ignore_collisions=True) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + try_times -= 1 + conditions = [DetectedCondition(pick_obj.manipulated_part, target_obj.successor)] + self.register_success_conditions(conditions) + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + descriptions = "Drop {} into {}.".format(pick_obj.manipulated_part.descriptions, target_obj.target_space_descriptions) + return [descriptions] + + @staticmethod + def drop_pose(obj:Shape, container:Shape, n_sample=36): + container_pos = container.get_position() + container_size = container.get_bounding_box() + container_x, container_y = container_size[1] - container_size[0], container_size[3] - container_size[2] + container_r = (container_x**2+container_y**2)**0.5/2 + + obj_size = obj.get_bounding_box() + obj_x, obj_y, obj_h = obj_size[1] - obj_size[0], obj_size[3] - obj_size[2], obj_size[5] - obj_size[4] + h_offset = max(obj_h, obj_x, obj_y)/1.5 + h = h_offset + container_pos[2] + container_size[5] + random_r = np.random.uniform(0, container_r*0.5, n_sample) + random_angle = np.random.uniform(0, np.pi, n_sample) + obj_goal_pose_set = np.zeros((n_sample, 4, 4)) + # obj_goal_pose_set[:, :3, 3] = np.array([container_pos[0], container_pos[1], h]) + obj_goal_pose_set[:, 3, 3] = 1 + axis_y = np.array([0, 0, -1]) + obj_goal_pose_set[:, :3, 1] = axis_y + tmp = np.array((0, 1, 0)) + theta = 2*np.pi/ n_sample + for i in range(n_sample): + x = container_pos[0]+ random_r[i]*np.cos(random_angle[i]) + y = container_pos[1]+ random_r[i]*np.sin(random_angle[i]) + sample_h = h + np.random.normal(scale=0.01) + obj_goal_pose_set[i, :3, 3] = np.array([x, y, sample_h]) + axis_x = np.cos(i*theta) * tmp + np.sin(i*theta) * np.cross(axis_y, tmp) + axis_x = axis_x/ np.linalg.norm(axis_x) + obj_goal_pose_set[i, :3, 0] = axis_x + obj_goal_pose_set[i, :3, 2] = np.cross(axis_x, axis_y) + rand_idx = np.random.permutation(len(obj_goal_pose_set)) + obj_goal_pose_set = obj_goal_pose_set[rand_idx] + return obj_goal_pose_set + + def import_objects(self, num=2): + if not hasattr(self, "model_path"): + model_path = self.model_dir+"pencil/pencil1/pencil1.ttm" + else: + model_path = self.model_dir+self.model_path + for i in range(num): + obj = VLM_Object(self.pyrep, model_path, i) + obj.set_parent(self.taks_base) + self.object_list.append(obj) + self.register_graspable_objects(self.object_list) + target_path = self.model_dir+"container/basket1.ttm" + for i in range(2): + target = self.pyrep.import_model(target_path) + target.set_model_dynamic(False) + target.scale_factor = lib.simGetObjectSizeFactor(ffi.cast('int',target._handle)) + target.set_parent(self.taks_base) + for children in target.get_objects_in_tree(exclude_base=True): + if children.get_type() == ObjectType.PROXIMITY_SENSOR: + target.successor = children + if "visual" in children.get_name(): + target.visual = children + self.target_list.append(target) + return + + def is_static_workspace(self) -> bool: + return True + + def sample_method(self): + self.spawn_space.clear() + for tg in self.target_list: + self.spawn_space.sample(tg, min_distance=0.1) + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.2) + for _ in range(5): + self.pyrep.step() + + def load(self, ttms_folder=None): + if Shape.exists('drop_pen'): + return Dummy('drop_pen') + ttm_file = os.path.join(ttms_folder, 'drop_pen.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('drop_pen') + return self._base_object + diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_color.py new file mode 100644 index 0000000..5a05f37 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_color.py @@ -0,0 +1,29 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import select_color +from vlm.tasks.drop_pen import DropPen + +class DropPenColor(DropPen): + def init_task(self) -> None: + # self.model_num = 3 + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + color_names, rgbs = select_color(index, len(self.object_list)-1) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(rgbs[i]) + obj.manipulated_part.property["color"] = color_names[i] + obj.manipulated_part.descriptions = "the {} {}".format(color_names[i], obj.manipulated_part.property["shape"]) + + target_space_colors = np.random.choice(len(colors), len(self.target_list), replace=False) + for i, target_space in enumerate(self.target_list): + target_space.target_space_descriptions = "the {} container".format(colors[target_space_colors[i]][0]) + target_space.visual.set_color(colors[target_space_colors[i]][1]) + + return super().init_episode(index) + + def variation_count(self) -> int: + return len(colors) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_relative.py new file mode 100644 index 0000000..e2f5236 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_relative.py @@ -0,0 +1,50 @@ +import itertools +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import get_relative_position_xy, scale_object, select_color +from vlm.tasks.drop_pen import DropPen + +relative_pos_list = list(itertools.product(["left", "right", "front", "rear"], repeat=2)) +class DropPenRelative(DropPen): + def init_task(self) -> None: + # self.model_num = 3 + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + self.object_target_relative, self.destination_target_relative = relative_pos_list[index] + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + target_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.visual.set_color(colors[target_colors[i]][1]) + + return super().init_episode(index) + + def sample_method(self): + while True: + self.spawn_space.clear() + for tg in self.target_list: + self.spawn_space.sample(tg, min_distance=0.1) + object_relative_pose = get_relative_position_xy(self.target_list[1], self.target_list[0], self.robot.arm) + if object_relative_pose != self.destination_target_relative: + continue + self.target_list[0].target_space_descriptions = f"the {object_relative_pose} container" + + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.2) + object_relative_pose = get_relative_position_xy(self.object_list[1], self.object_list[0], self.robot.arm) + if object_relative_pose != self.object_target_relative: + continue + obj = self.object_list[0].manipulated_part + obj.descriptions = "the {} {}".format(object_relative_pose, obj.property["shape"]) + break + for _ in range(5): + self.pyrep.step() + + def variation_count(self) -> int: + return len(relative_pos_list) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_size.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_size.py new file mode 100644 index 0000000..83e5272 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/drop_pen_size.py @@ -0,0 +1,57 @@ +import itertools +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.drop_pen import DropPen + +size_permutations = list(itertools.product(["small", "large"], repeat=2)) +class DropPenSize(DropPen): + def init_task(self) -> None: + # self.model_num = 3 + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + obj_size, target_size = size_permutations[index] + # samll_scale_factor = np.random.uniform(0.6, 0.9, 2) + # large_scale_factor = np.random.uniform(1.1, 1.5, 2) + if obj_size == "small": + small_obj = self.object_list[0] + large_obj = self.object_list[1] + else: + small_obj = self.object_list[1] + large_obj = self.object_list[0] + small_obj.manipulated_part.descriptions = "the {} {}".format("smaller", small_obj.manipulated_part.property["shape"]) + large_obj.manipulated_part.descriptions = "the {} {}".format("larger", large_obj.manipulated_part.property["shape"]) + for obj, scale_factor in zip([small_obj, large_obj],[np.random.uniform(0.6, 0.9), np.random.uniform(1.0, 1.1)]): + relative_factor = scale_object(obj, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = obj.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + obj.manipulated_part.local_grasp = local_grasp_pose + + if target_size == "small": + small_target = self.target_list[0] + large_target = self.target_list[1] + else: + small_target = self.target_list[1] + large_target = self.target_list[0] + small_target.target_space_descriptions = "the smaller container" + large_target.target_space_descriptions = "the larger container" + for target, scale_factor in zip([small_target, large_target],[np.random.uniform(0.75, 0.9), np.random.uniform(1.0, 1.1)]): + relative_factor = scale_object(target, scale_factor) + + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + target_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.visual.set_color(colors[target_colors[i]][1]) + + return super().init_episode(index) + + def variation_count(self) -> int: + return len(size_permutations) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door.py new file mode 100644 index 0000000..f7208d9 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door.py @@ -0,0 +1,131 @@ +import random +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import T0_ObtainControl, T2_MoveObjectConstraints, TargetSpace, VLM_Object +from amsolver.backend.conditions import JointCondition +from amsolver.const import door_list +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from pyrep.objects.joint import Joint + +door_states = { + "open":["Fully close", "Slightly close"], + "close":["Fully open", "Slightly open"] +} +class OpenDoor(Task): + + def init_task(self) -> None: + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.boundary_root_ori = Shape("boundary_root").get_orientation() + + self.temporary_waypoints = [] + self.task_base = self.get_base() + if not hasattr(self, "_ignore_collisions"): + self._ignore_collisions = False + + def init_episode(self, index: int) -> List[str]: + self.import_objects() + self.variation_index = index + goal_angel, goal_description = self.door_setting(index) + try_times = 0 + while len(self.temporary_waypoints)==0 and try_times<100: + self.sample_method() + init_states = self.get_state()[0] + + self.door.manipulated_part.descriptions = f"the handle of the {self.door.manipulated_part.property['shape']}" + door_target_description = f"the {self.door.manipulated_part.property['shape']}" + if "Slightly" in goal_description: + door_target_description += " slightly" + door_target = TargetSpace(self.door_joint, None, + np.deg2rad(goal_angel), np.deg2rad(goal_angel), door_target_description, self.door.manipulated_part.visual) + door_target.set_target(self.door.parts[1]) + door_task = T2_MoveObjectConstraints(self.robot, self.pyrep, door_target, self.task_base, fail_times=2) + post_grasp_task = door_task + grasp_task = T0_ObtainControl(self.robot, self.pyrep, self.door.manipulated_part, self.task_base, try_times=20, + need_post_grasp=False, grasp_sort_key="horizontal", next_task_fuc=post_grasp_task.get_path_with_constraints) + if try_times>50: + waypoints = grasp_task.get_path(try_ik_sampling=True, ignore_collisions=self._ignore_collisions) + else: + waypoints = grasp_task.get_path(try_ik_sampling=False, ignore_collisions=self._ignore_collisions) + if waypoints is not None: + self.temporary_waypoints += waypoints + try_times += 1 + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + self.pyrep.step() + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + return [f"{goal_description} the {self.door.manipulated_part.property['shape']}."] + + def import_objects(self): + self._selected_door = random.choice(door_list) + model_path = self.model_dir+self._selected_door["path"] + self.door = VLM_Object(self.pyrep, model_path, 0) + self.door.set_parent(Shape("boundary_root")) + self.door_joint = self.door.constraints[0] + self.door_joint_name = self.door_joint.get_name() + self._need_remove_objects.append(self.door) + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 4 + + def is_static_workspace(self) -> bool: + return True + + def sample_method(self): + Shape("boundary_root").set_orientation(self.boundary_root_ori) + self.spawn_space.clear() + self.spawn_space.sample(Shape("boundary_root"), + min_rotation=[0, 0, -3.14 / 4.], max_rotation=[0, 0, 3.14 / 4.]) + # SpawnBoundary([Shape('boundary_root')]).sample(self.attach_point, + # min_rotation=[0, 0, 0], max_rotation=[0, 0, 0]) + + def door_setting(self, index): + joint_range = self.door_joint.get_joint_interval()[1] + real_max_angle = joint_range[0]+joint_range[1] + real_max_angle = np.rad2deg(real_max_angle) + try: + max_angle = np.random.uniform(30, real_max_angle*0.8) + except: + max_angle = 30 + # max_angle = 30 + if index in [2,3]: + init_state = "open" + self.door_joint.set_joint_position(np.deg2rad(max_angle), True) + else: + init_state = "close" + self.door_joint.set_joint_position(0, True) + sub_index = index%2 + goal_state = door_states[init_state][sub_index] + if "Slightly" in goal_state: + detect_distance = max_angle*0.4 + goal_distance = max_angle*np.random.uniform(0.4, 0.5) + detect_bound = max_angle*0.7 + else: + detect_distance = max_angle*0.8 + detect_bound = max_angle*1.1 + if "open" in goal_state: + goal_distance = max_angle*np.random.uniform(0.8, 1.0) + else: + goal_distance = np.random.uniform(joint_range[0], joint_range[0]+joint_range[1]*0.1) + self.register_success_conditions([JointCondition(self.door_joint, np.deg2rad(detect_distance), np.deg2rad(detect_bound))]) + return goal_distance, goal_state + + def load(self, ttms_folder=None): + if Shape.exists('open_door'): + return Dummy('open_door') + ttm_file = os.path.join(ttms_folder, 'open_door.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('open_door') + return self._base_object \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door_complex.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door_complex.py new file mode 100644 index 0000000..22a31a8 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_door_complex.py @@ -0,0 +1,136 @@ +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import T0_ObtainControl, T2_MoveObjectConstraints, TargetSpace, VLM_Object +from amsolver.backend.conditions import JointCondition +from amsolver.const import colors, complex_door_list +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from pyrep.objects.joint import Joint + +from vlm.tasks.open_door import OpenDoor + +door_states = { + "open":["Fully close", "Slightly close"], + "close":["Fully open", "Slightly open"] +} +class OpenDoorComplex(OpenDoor): + + def init_task(self) -> None: + model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + model_path = model_dir+complex_door_list[0]['path'] + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.boundary_root_ori = Shape("boundary_root").get_orientation() + self.attach_point = Dummy.create() + self.attach_point.set_name("door_attach_point") + self.attach_point.set_parent(Shape("boundary_root")) + self.door = VLM_Object(self.pyrep, model_path, 0) + root_pose = Shape("boundary_root").get_pose() + root_pose[:2] = self.door.get_position()[:2] + self.attach_point.set_pose(root_pose) + self.door.set_parent(self.attach_point) + self.door_joint = self.door.constraints[0] + self.door_joint_name = self.door_joint.get_name() + self.door_joint.set_joint_interval(False, [np.deg2rad(0), np.deg2rad(30)]) + self.handle_joint = self.door.constraints[1] + self.door_unlock_cond = JointCondition(self.handle_joint, np.deg2rad(20)) + self.pyrep.step() + self.temporary_waypoints = [] + self.task_base = self.get_base() + + def init_episode(self, index: int) -> List[str]: + self.variation_index = index + goal_angel, goal_description = self.door_setting(index) + try_times = 0 + self.door_joint.set_motor_locked_at_zero_velocity(False) + while len(self.temporary_waypoints)==0 and try_times<200: + self.sample_method() + init_states = self.get_state()[0] + + self.door.manipulated_part.descriptions = "the handle of door" + door_target_description = "the door" + if "Slightly" in goal_description: + door_target_description += " slightly" + door_target = TargetSpace(self.door_joint, None, + np.deg2rad(goal_angel), np.deg2rad(goal_angel), door_target_description, self.door.manipulated_part.visual) + door_target.set_target(self.door.parts[1]) + door_task = T2_MoveObjectConstraints(self.robot, self.pyrep, door_target, self.task_base, fail_times=2) + post_grasp_task = door_task + if not self.door_unlocked: + handle_target = TargetSpace(self.handle_joint, None, + np.deg2rad(25), np.deg2rad(25), "the handle of door", self.door.manipulated_part.visual) + handle_target.set_target(self.door.manipulated_part) + handle_task = T2_MoveObjectConstraints(self.robot, self.pyrep, handle_target, self.task_base, fail_times=2, next_task_fuc=door_task.get_path_with_constraints) + post_grasp_task = handle_task + grasp_task = T0_ObtainControl(self.robot, self.pyrep, self.door.manipulated_part, self.task_base, try_times=200, + need_post_grasp=False, grasp_sort_key="horizontal", next_task_fuc=post_grasp_task.get_path_with_constraints) + if try_times>100: + waypoints = grasp_task.get_path(try_ik_sampling=True, ignore_collisions=False) + else: + waypoints = grasp_task.get_path(try_ik_sampling=False, ignore_collisions=False) + if waypoints is not None: + self.temporary_waypoints += waypoints + try_times += 1 + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + self.pyrep.step() + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + if not self.door_unlocked: + self.door_joint.set_motor_locked_at_zero_velocity(True) + return [f'{goal_description} the door.'] + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 4 + + def step(self) -> None: + # Called during each sim step. Remove this if not using. + door_joint = Joint(self.door_joint_name) + if not self.door_unlocked: + door_joint.set_motor_locked_at_zero_velocity(True) + self.door_unlocked = self.door_unlock_cond.condition_met()[0] + if self.door_unlocked: + door_joint.set_motor_locked_at_zero_velocity(False) + + def is_static_workspace(self) -> bool: + return True + + def sample_method(self): + Shape("boundary_root").set_orientation(self.boundary_root_ori) + self.spawn_space.clear() + self.spawn_space.sample(Shape("boundary_root"), + min_rotation=[0, 0, -3.14 / 8.], max_rotation=[0, 0, 3.14 / 8.]) + # SpawnBoundary([Shape('boundary_root')]).sample(self.attach_point, + # min_rotation=[0, 0, 0], max_rotation=[0, 0, 0]) + + def door_setting(self, index): + if index in [0,1]: + init_state = "open" + self.door_joint.set_joint_position(np.deg2rad(30), True) + else: + init_state = "close" + self.door_joint.set_joint_position(np.deg2rad(0), True) + sub_index = index%2 + goal_state = door_states[init_state][sub_index] + if init_state == "close": + self.door_unlocked = False + else: + self.door_unlocked = True + if "Slightly" in goal_state: + detect_angle = 10 + goal_angel = 15 + detect_bound = 20 + else: + detect_angle = 25 + detect_bound = 35 + if "open" in goal_state: + goal_angel = 30 + else: + goal_angel = 0 + self.register_success_conditions([JointCondition(self.door_joint, np.deg2rad(detect_angle), np.deg2rad(detect_bound))]) + return goal_angel, goal_state diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer.py new file mode 100644 index 0000000..fb1364a --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer.py @@ -0,0 +1,128 @@ +import os +import random +import numpy as np +from typing import List, Tuple +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.objects.joint import Joint +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.conditions import JointCondition +from amsolver.backend.unit_tasks import T0_ObtainControl, T2_MoveObjectConstraints, TargetSpace, VLM_Object +from amsolver.const import drawer_list + +drawer_states = { + "open":["Fully close", "Slightly close"], + "close":["Fully open", "Slightly open"] +} + +class OpenDrawer(Task): + + def init_task(self) -> None: + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.temporary_waypoints = [] + self.task_base = self.get_base() + self.boundary_root_ori = Shape("boundary_root").get_orientation() + + def init_episode(self, index: int) -> List[str]: + self.import_objects() + self.variation_index = index + select_index = index // 4 + setting_index = index % 4 + select_index = select_index % len(self.drawer.manipulated_parts) + self.manipulate_drawer = self.drawer.manipulated_parts[select_index] + self.drawer_joint = self.drawer.constraints[select_index] + try_times = 0 + while len(self.temporary_waypoints)==0 and try_times<100: + self.sample_method() + goal_angel, goal_description = self.drawer_setting(setting_index) + init_states = self.get_state()[0] + + self.manipulate_drawer.descriptions = f"the handle of the {self.manipulate_drawer.property['shape']}" + drawer_target_description = f"the {self.manipulate_drawer.property['shape']}" + if "Slightly" in goal_description: + drawer_target_description += " slightly" + drawer_target = TargetSpace(self.drawer_joint , None,goal_angel, goal_angel, drawer_target_description, self.manipulate_drawer.visual) + drawer_target.set_target(self.manipulate_drawer) + drawer_task = T2_MoveObjectConstraints(self.robot, self.pyrep, drawer_target, self.task_base, fail_times=2) + grasp_task = T0_ObtainControl(self.robot, self.pyrep, self.manipulate_drawer, self.task_base, try_times=100, + need_post_grasp=False, grasp_sort_key="horizontal", next_task_fuc=drawer_task.get_path_with_constraints) + waypoints = grasp_task.get_path(try_ik_sampling=True, ignore_collisions=False) + # if try_times>50: + # waypoints = grasp_task.get_path(try_ik_sampling=True, ignore_collisions=False) + # else: + # waypoints = grasp_task.get_path(try_ik_sampling=False, ignore_collisions=False) + if waypoints is not None: + self.temporary_waypoints += waypoints + try_times += 1 + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + self.pyrep.step() + # print(f"Have tried {try_times} times for open drawer.") + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + return [f"{goal_description} the {self.manipulate_drawer.property['shape']}."] + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 12 + + def is_static_workspace(self) -> bool: + return True + + def import_objects(self): + self._selected_cabinet = random.choice(drawer_list) + model_path = self.model_dir+self._selected_cabinet["path"] + self.drawer = VLM_Object(self.pyrep, model_path, 0) + self._drawer_init_ori = self.drawer.get_orientation() + self._drawer_init_state = self.drawer.get_configuration_tree() + self.drawer.set_parent(Shape("boundary_root")) + self._need_remove_objects.append(self.drawer) + + def sample_method(self): + self.pyrep.set_configuration_tree(self._drawer_init_state) + # self.drawer.set_orientation(self._drawer_init_ori) + Shape("boundary_root").set_orientation(self.boundary_root_ori) + self.spawn_space.clear() + # self.drawer.set_model(False) + self.spawn_space.sample(Shape("boundary_root"), + min_rotation=[0, 0, -3.14 / 4.], max_rotation=[0, 0, 3.14 / 4.]) + # self.drawer.set_model(True) + # self.drawer.set_position(self.drawer.get_position()+np.array([0.1,0,0])) + self.pyrep.step() + + def drawer_setting(self, index): + max_angle = self._selected_cabinet["max_joint"] + if index in [2,3]: + init_state = "open" + self.drawer_joint.set_joint_position(max_angle, True) + else: + init_state = "close" + self.drawer_joint.set_joint_position(0, True) + sub_index = index%2 + goal_state = drawer_states[init_state][sub_index] + if "Slightly" in goal_state: + detect_distance = max_angle*0.4 + goal_distance = max_angle*np.random.uniform(0.4, 0.5) + detect_bound = max_angle*0.7 + else: + detect_distance = max_angle*0.8 + detect_bound = max_angle*1.1 + if "open" in goal_state: + goal_distance = max_angle*np.random.uniform(0.8, 1.0) + else: + goal_distance = 0 + self.register_success_conditions([JointCondition(self.drawer_joint, detect_distance, detect_bound)]) + return goal_distance, goal_state + + def load(self, ttms_folder=None): + if Shape.exists('open_drawer'): + return Dummy('open_drawer') + ttm_file = os.path.join(ttms_folder, 'open_drawer.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('open_drawer') + return self._base_object diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer_cabinet.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer_cabinet.py new file mode 100644 index 0000000..a0760ff --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/open_drawer_cabinet.py @@ -0,0 +1,22 @@ +import os +import random +from pyrep.objects.shape import Shape +from amsolver.backend.unit_tasks import VLM_Object +from amsolver.const import cabinet_list +from vlm.tasks.open_drawer import OpenDrawer + +class OpenDrawerCabinet(OpenDrawer): + + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 8 + + def import_objects(self): + self._selected_cabinet = random.choice(cabinet_list) + model_path = self.model_dir+self._selected_cabinet["path"] + self.drawer = VLM_Object(self.pyrep, model_path, 0) + self._drawer_init_ori = self.drawer.get_orientation() + self._drawer_init_state = self.drawer.get_configuration_tree() + self.drawer.set_parent(Shape("boundary_root")) + self._need_remove_objects.append(self.drawer) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube.py new file mode 100644 index 0000000..158df53 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube.py @@ -0,0 +1,101 @@ +from turtle import shape +from typing import List +import numpy as np +import os +import random +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.task import Task +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, TargetSpace, VLM_Object +from amsolver.backend.utils import get_relative_position_xy +from amsolver.const import colors, object_shapes +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary + +class PickCube(Task): + def init_task(self) -> None: + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.target_space0 = TargetSpace(SpawnBoundary([Shape('target_space0')]), ProximitySensor('success0'), + (-3.14,-3.14,-3.14), (3.14,3.14,3.14), None, Shape("small_container0").get_handle()) + self.target_space1 = TargetSpace(SpawnBoundary([Shape('target_space1')]), ProximitySensor('success1'), + (-3.14,-3.14,-3.14), (3.14,3.14,3.14), None, Shape("small_container1").get_handle()) + self.target_spaces = [self.target_space0, self.target_space1] + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.temporary_waypoints = [] + self.taks_base = self.get_base() + if not hasattr(self, "model_num"): + self.model_num = 2 + # self.import_objects(self.model_num) + + def init_episode(self, index: int) -> List[str]: + self.import_objects(self.model_num) + self.variation_index = index + self.modified_init_episode(index) + # ind = np.random.randint(0, len(self.target_spaces)) + self.target_space = self.target_spaces[0] + self.manipulated_obj = self.object_list[0].manipulated_part + try_times = 0 + while len(self.temporary_waypoints)==0: + self.sample_method() + for _ in range(5): + self.pyrep.step() + self.register_success_conditions([DetectedCondition(self.manipulated_obj, self.target_space.successor)]) + init_states = self.get_state()[0] + self.target_space.set_target(self.manipulated_obj, try_ik_sampling=True, release=True) + MoveTask0 = T1_MoveObjectGoal(self.robot, self.pyrep, self.target_space, self.taks_base, fail_times=10) + GraspTask0 = T0_ObtainControl(self.robot, self.pyrep, self.manipulated_obj,self.taks_base,\ + next_task_fuc=MoveTask0.get_path, try_times=20) + if try_times<100: + waypoints = GraspTask0.get_path(try_ik_sampling=False) + else: + waypoints = GraspTask0.get_path(try_ik_sampling=True) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + try_times+= 1 + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + description = 'Pick up {} and place it into {}.'.format(self.manipulated_obj.descriptions, self.target_space.target_space_descriptions) + return [description] + + def is_static_workspace(self) -> bool: + return True + + def load(self, ttms_folder=None): + if Shape.exists('pick_cube'): + return Dummy('pick_cube') + ttm_file = os.path.join(ttms_folder, 'pick_cube.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('pick_cube') + return self._base_object + + def import_objects(self, num=2): + self.object_list = [] + if not hasattr(self, "model_path"): + selected_obj = random.choice(list(object_shapes.keys())) + model_path = self.model_dir+object_shapes[selected_obj]['path'] + # model_path = self.model_dir+"cube/cube_normal/cube_normal.ttm" + else: + model_path = self.model_dir+self.model_path + for i in range(num): + cube = VLM_Object(self.pyrep, model_path, i) + cube.set_parent(self.taks_base) + self.object_list.append(cube) + self.register_graspable_objects(self.object_list) + self._need_remove_objects+=self.object_list + + def sample_method(self): + satisfied = False + while not satisfied: + self.spawn_space.clear() + for space in self.target_spaces: + self.spawn_space.sample(Shape(space.focus_obj_id), min_distance=0.25) + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + satisfied = True + self.pyrep.step() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_color.py new file mode 100644 index 0000000..8ba23d9 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_color.py @@ -0,0 +1,38 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.pick_cube import PickCube + +class PickCubeColor(PickCube): + def init_task(self) -> None: + self.model_num = 2 + return super().init_task() + + + def modified_init_episode(self, index: int) -> List[str]: + for obj in self.object_list: + scale_factor = np.random.uniform(0.8, 1.2) + relative_factor = scale_object(obj, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = obj.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + obj.manipulated_part.local_grasp = local_grasp_pose + + color_names, rgbs = select_color(index, len(self.object_list)-1) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(rgbs[i]) + obj.manipulated_part.property["color"] = color_names[i] + obj.manipulated_part.descriptions = "the {} object".format(color_names[i]) + + target_space_colors = np.random.choice(len(colors), len(self.target_spaces), replace=False) + for i, target_space in enumerate(self.target_spaces): + target_space.target_space_descriptions = "the {} container".format(colors[target_space_colors[i]][0]) + Shape(target_space.focus_obj_id).set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(colors) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_relative.py new file mode 100644 index 0000000..e582c93 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_relative.py @@ -0,0 +1,55 @@ +import itertools +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import get_relative_position_xy, scale_object, select_color +from vlm.tasks.pick_cube import PickCube + +relative_pos_list = list(itertools.product(["left", "right", "front", "rear"], repeat=2)) +class PickCubeRelative(PickCube): + def init_task(self) -> None: + super().init_task() + self.get_relative_pos=True + + def modified_init_episode(self, index: int) -> List[str]: + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + target_space_colors = np.random.choice(len(colors), len(self.target_spaces), replace=True) + for i, target_space in enumerate(self.target_spaces): + Shape(target_space.focus_obj_id).set_color(colors[target_space_colors[i]][1]) + + self.object_target_relative, self.destination_target_relative = relative_pos_list[index] + + return None + def variation_count(self) -> int: + return len(relative_pos_list) + + def sample_method(self): + satisfied = False + while not satisfied: + self.spawn_space.clear() + for space in self.target_spaces: + self.spawn_space.sample(Shape(space.focus_obj_id), min_distance=0.25) + + if hasattr(self, "get_relative_pos"): + comparted_target = self.target_spaces[1] + target_relative_pose = get_relative_position_xy(Shape(comparted_target.focus_obj_id), Shape(self.target_space.focus_obj_id), self.robot.arm) + if target_relative_pose != self.destination_target_relative: + continue + self.target_space.target_space_descriptions = f"the {target_relative_pose} container" + + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + if hasattr(self, "get_relative_pos"): + comparted_obj = self.object_list[1] + object_relative_pose = get_relative_position_xy(comparted_obj.manipulated_part, self.manipulated_obj, self.robot.arm) + if object_relative_pose != self.object_target_relative: + continue + self.manipulated_obj.property["relative_pos"] = object_relative_pose + self.manipulated_obj.descriptions = "the {} object".format(self.manipulated_obj.property["relative_pos"]) + satisfied = True + self.pyrep.step() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_shape.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_shape.py new file mode 100644 index 0000000..7702f24 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_shape.py @@ -0,0 +1,46 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors, object_shapes +from amsolver.backend.utils import select_color +from vlm.tasks.pick_cube import PickCube + +class PickCubeShape(PickCube): + + def modified_init_episode(self, index: int) -> List[str]: + self.object_list = [self.shape_lib[index]] + other_obj_index = list(range(len(self.shape_lib))) + other_obj_index.remove(index) + distractor_number = np.random.randint(1,len(self.shape_lib)) + distractor_index = np.random.choice(other_obj_index, distractor_number, replace=False) + for i in distractor_index: + self.object_list.append(self.shape_lib[i]) + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + # obj.manipulated_part.descriptions = "the {} {}".format(colors[color_index[i]][0], obj.manipulated_part.property["shape"]) + obj.manipulated_part.descriptions = "the {}".format(obj.manipulated_part.property["shape"]) + + target_space_colors = np.random.choice(len(colors), len(self.target_spaces), replace=False) + for i, target_space in enumerate(self.target_spaces): + target_space.target_space_descriptions = "the {} container".format(colors[target_space_colors[i]][0]) + Shape(target_space.focus_obj_id).set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(object_shapes) + + def import_objects(self, num): + object_numbers = [1]*len(object_shapes) + self.shape_lib = [] + for obj, num in zip(object_shapes, object_numbers): + for i in range(num): + model = VLM_Object(self.pyrep, self.model_dir+object_shapes[obj]["path"], i) + model.set_parent(self.taks_base) + model.set_position([0,0,0]) + self.shape_lib.append(model) + self.register_graspable_objects(self.shape_lib) + self._need_remove_objects+=self.shape_lib + \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_size.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_size.py new file mode 100644 index 0000000..5ec2497 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pick_cube_size.py @@ -0,0 +1,57 @@ +import itertools +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.pick_cube import PickCube + +size_permutations = list(itertools.product(["small", "large"], repeat=2)) + +class PickCubeSize(PickCube): + def init_task(self) -> None: + # self.model_path = "cube/cube_basic/cube_basic.ttm" + super().init_task() + + def modified_init_episode(self, index: int) -> List[str]: + obj_size, target_size = size_permutations[index] + # samll_scale_factor = np.random.uniform(0.6, 0.9, 2) + # large_scale_factor = np.random.uniform(1.1, 1.5, 2) + if obj_size == "small": + small_obj = self.object_list[0] + large_obj = self.object_list[1] + else: + small_obj = self.object_list[1] + large_obj = self.object_list[0] + small_obj.manipulated_part.descriptions = "the {} object".format("smaller") + large_obj.manipulated_part.descriptions = "the {} object".format("larger") + for obj, scale_factor in zip([small_obj, large_obj],[np.random.uniform(0.6, 0.9), np.random.uniform(1.1, 1.2)]): + relative_factor = scale_object(obj, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = obj.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + obj.manipulated_part.local_grasp = local_grasp_pose + + if target_size == "small": + small_target = self.target_spaces[0] + large_target = self.target_spaces[1] + else: + small_target = self.target_spaces[1] + large_target = self.target_spaces[0] + small_target.target_space_descriptions = "the smaller container" + large_target.target_space_descriptions = "the larger container" + for target, scale_factor in zip([small_target, large_target],[np.random.uniform(0.8, 0.9), np.random.uniform(1.1, 1.25)]): + relative_factor = scale_object(Shape(target.focus_obj_id), scale_factor) + + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + target_space_colors = np.random.choice(len(colors), len(self.target_spaces), replace=True) + for i, target_space in enumerate(self.target_spaces): + Shape(target_space.focus_obj_id).set_color(colors[target_space_colors[i]][1]) + self.pyrep.step() + return None + def variation_count(self) -> int: + return len(size_permutations) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter.py new file mode 100644 index 0000000..5ead615 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter.py @@ -0,0 +1,133 @@ +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from pyrep.objects.dummy import Dummy +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, TargetSpace, VLM_Object +from amsolver.backend.utils import scale_object +from amsolver.const import colors, sorter_objects +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task + +class PlaceIntoShapeSorter(Task): + def __init__(self, pyrep, robot): + super().__init__(pyrep, robot) + self.object_dict = sorter_objects + + def init_task(self) -> None: + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.success_sensor = ProximitySensor('success') + self.sorter = Shape("shape_sorter") + self.sorter_visual = Shape("shape_sorter_visual") + self.sorter_visual.set_color([1, 0, 0]) + self.objects = {} + self.temporary_waypoints = [] + self.taks_base = self.get_base() + if not hasattr(self, "object_numbers"): + self.object_numbers = [1 for _ in self.object_dict] + self.import_objects() + self._task_init_states = self.get_state()[0] + self.need_shape_resample = True + self.pick_objs = [] + if not hasattr(self, "need_distractors"): + self.need_distractors = False + + def init_episode(self, index: int) -> List[str]: + self.variation_index = index + pick_number = 1 + try_times = 0 + while len(self.temporary_waypoints)==0: + if try_times%10 == 0 and self.need_shape_resample: + # pick_number = np.random.randint(1,min(len(self.objects)-1,2)) + self.pick_objs = np.random.choice(list(self.objects.keys()), pick_number, replace=False).tolist() + self.sample_method() + self.pyrep.step() + init_states = self.get_state()[0] + task_sequence, manipulated_objs, conditions = [], [], [] + for obj_name in self.pick_objs: + obj = self.objects[obj_name][0] + conditions.append(DetectedCondition(obj.manipulated_part, self.success_sensor)) + target = obj.target + target_space = TargetSpace(obj.target, self.success_sensor, None, None, target.descriptions, self.sorter_visual.get_handle()) + target_space.set_target(obj.manipulated_part, linear=False, ignore_collisions= False, release=True) + MoveTask = T1_MoveObjectGoal(self.robot, self.pyrep, target_space, self.taks_base, fail_times=10) + GraspTask = T0_ObtainControl(self.robot, self.pyrep, obj.manipulated_part, self.taks_base, try_times=20) + task_sequence.append(GraspTask) + task_sequence.append(MoveTask) + manipulated_objs.append(obj) + for i in range(-1, -len(task_sequence), -1): + task_sequence[i-1].next_task_fuc = task_sequence[i].get_path + if try_times<100: + waypoints = task_sequence[0].get_path(try_ik_sampling=False) + else: + waypoints = task_sequence[0].get_path(try_ik_sampling=True) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + try_times += 1 + self.register_success_conditions(conditions) + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + descriptions = f"Put " + for i, obj in enumerate(manipulated_objs): + descriptions += f"{obj.manipulated_part.descriptions}" + if i == len(manipulated_objs)-2: + descriptions += " and " + elif i < len(manipulated_objs)-2: + descriptions += ", " + descriptions += " into the shape sorter." + return [descriptions] + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 1 + + def import_objects(self): + for obj, num in zip(self.object_dict, self.object_numbers): + for i in range(num): + model_path = self.model_dir+self.object_dict[obj]["path"] + model = VLM_Object(self.pyrep, model_path, i) + model.set_parent(self.taks_base) + model.set_position([0, 0, 0]) + target = Dummy(f"{model.obj_class}_target") + target.descriptions = f"the hole of {model.obj_class} shape" + target.set_position(target.get_position()+[0,0,0.01]) + model.target = target + if obj in self.objects: + self.objects[obj].append(model) + else: + self.objects[obj]=[model] + self.register_graspable_objects([obj for i in self.objects for obj in self.objects[i]]) + + def sample_method(self): + self.pyrep.set_configuration_tree(self._task_init_states) + distractors = set(self.objects.keys())-set(self.pick_objs) + if len(distractors)>0 and self.need_distractors: + distractor_number = np.random.randint(1,len(distractors)) + select_distractors = np.random.choice(list(distractors), distractor_number, replace=False).tolist() + else: + select_distractors = [] + self.spawn_space.clear() + self.spawn_space.sample(self.sorter) + for obj in (self.pick_objs+select_distractors): + for instance in self.objects[obj]: + self.spawn_space.sample(instance) + + def is_static_workspace(self) -> bool: + return True + + def load(self, ttms_folder=None): + if Shape.exists('place_into_shape_sorter'): + return Dummy('place_into_shape_sorter') + ttm_file = os.path.join(ttms_folder, 'place_into_shape_sorter.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('place_into_shape_sorter') + return self._base_object \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_color.py new file mode 100644 index 0000000..a3395e8 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_color.py @@ -0,0 +1,26 @@ +from typing import List +import numpy as np +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.task import Task +from amsolver.backend.utils import select_color +from vlm.tasks.place_into_shape_sorter import PlaceIntoShapeSorter + +class PlaceIntoShapeSorterColor(PlaceIntoShapeSorter): + + def init_task(self) -> None: + self.object_numbers = [3 for _ in self.object_dict] + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + for obj_name in self.objects: + obj_lens = len(self.objects[obj_name]) + color_names, rgbs = select_color(index, obj_lens-1) + for i, obj in enumerate(self.objects[obj_name]): + Shape(obj.manipulated_part.visual).set_color(rgbs[i]) + obj.manipulated_part.descriptions = "the {} {}".format(color_names[i], obj.manipulated_part.property["shape"]) + return super().init_episode(index) + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(colors) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_relative.py new file mode 100644 index 0000000..8d4297c --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_relative.py @@ -0,0 +1,53 @@ +import itertools +from typing import List +import numpy as np +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.task import Task +from amsolver.backend.utils import get_relative_position_xy, select_color +from vlm.tasks.place_into_shape_sorter import PlaceIntoShapeSorter + +relative_pos_list = ["left", "right", "front", "rear"] +class PlaceIntoShapeSorterRelative(PlaceIntoShapeSorter): + + def init_task(self) -> None: + self.object_numbers = [2 for _ in self.object_dict] + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + self.object_target_relative = relative_pos_list[index] + for obj_name in self.objects: + obj_lens = len(self.objects[obj_name]) + color_index = np.random.choice(len(colors), obj_lens, replace=True) + for i, obj in enumerate(self.objects[obj_name]): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + return super().init_episode(index) + + def sample_method(self): + self.pyrep.set_configuration_tree(self._task_init_states) + distractors = set(self.objects.keys())-set(self.pick_objs) + if len(distractors)>0 and self.need_distractors: + distractor_number = np.random.randint(1,len(distractors)) + select_distractors = np.random.choice(list(distractors), distractor_number, replace=False).tolist() + else: + select_distractors = [] + while True: + satisfied = True + self.spawn_space.clear() + self.spawn_space.sample(self.sorter) + for obj in (self.pick_objs+select_distractors): + for instance in self.objects[obj]: + self.spawn_space.sample(instance) + if obj in self.pick_objs: + object_relative_pose = get_relative_position_xy(self.objects[obj][1], self.objects[obj][0], self.robot.arm) + if object_relative_pose!= self.object_target_relative: + satisfied = False + break + obj = self.objects[obj][0].manipulated_part + obj.descriptions = "the {} {}".format(object_relative_pose, obj.property["shape"]) + if satisfied: + break + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(relative_pos_list) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_shape.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_shape.py new file mode 100644 index 0000000..a47c6c4 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/place_into_shape_sorter_shape.py @@ -0,0 +1,28 @@ +from typing import List +import numpy as np +from pyrep.objects.shape import Shape +from amsolver.const import colors, sorter_objects +from amsolver.backend.task import Task +from amsolver.backend.utils import select_color +from vlm.tasks.place_into_shape_sorter import PlaceIntoShapeSorter + +shape_list = list(sorter_objects.keys()) +class PlaceIntoShapeSorterShape(PlaceIntoShapeSorter): + def init_task(self) -> None: + self.need_distractors = True + return super().init_task() + + def init_episode(self, index: int) -> List[str]: + self.need_shape_resample = False + self.pick_objs = [shape_list[index]] + for obj_name in self.objects: + obj_lens = len(self.objects[obj_name]) + color_index = np.random.choice(len(colors), obj_lens, replace=True) + for i, obj in enumerate(self.objects[obj_name]): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + obj.manipulated_part.descriptions = "the {}".format(obj.manipulated_part.property["shape"]) + return super().init_episode(index) + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(shape_list) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo.py new file mode 100644 index 0000000..b7cca70 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo.py @@ -0,0 +1,240 @@ +import random +from turtle import shape +from typing import List +import numpy as np +import os +from pyrep.objects.shape import Shape +from pyrep.objects.dummy import Dummy +from pyrep.const import PYREP_SCRIPT_TYPE, PrimitiveShape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.task import Task +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, T2_MoveObjectConstraints, TargetSpace, VLM_Object +from amsolver.backend.utils import get_relative_position_xy, scale_object +from amsolver.const import mug_list +from amsolver.backend.conditions import ConditionSet, DetectedCondition, Condition +from amsolver.backend.spawn_boundary import SpawnBoundary +from scipy.spatial.transform import Rotation as R + +class PourDemo(Task): + + def init_task(self) -> None: + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.temporary_waypoints = [] + self.taks_base = self.get_base() + if not hasattr(self, "model_num"): + self.model_num = 2 + + self.ignore_collisions = False + + def init_episode(self, index: int) -> List[str]: + # self.pyrep.set_configuration_tree(self.task_init_states) + self.import_objects(self.model_num) + self.modified_init_episode(index) + self.variation_index = index + try_times = 200 + pour_obj = self.object_list[0] + recv_obj = self.object_list[1] + self.manipulated_obj = pour_obj.manipulated_part + # recv = self.object_list[1].manipulated_part + # successor0 = self.object_list[0].succssor + # successor1 = self.object_list[1].succssor + while len(self.temporary_waypoints)==0 and try_times > 0: + self.sample_method() + init_states = self.get_state()[0] + # pre_pour_pose_space = self.calculate_pre_pour_pose(self.manipulated_obj, recv) + pour_descriptions = f"Rotate {self.manipulated_obj.descriptions} toward {recv_obj.manipulated_part.descriptions}." + pour_space_args = {"container_pour": pour_obj, "container_recv":recv_obj} + pour_space = TargetSpace(self.create_pour_goal_pose,space_args=pour_space_args, + target_space_descriptions=pour_descriptions, focus_obj_id=self.manipulated_obj.visual) + pour_space.set_target(pour_obj.buttom_point, try_ik_sampling=False, linear=True, ignore_collisions=self.ignore_collisions) + MoveTask1 = T2_MoveObjectConstraints(self.robot, self.pyrep, pour_space, self.taks_base,fail_times=36) + + move_descriptions = f"Move the object to the top of {recv_obj.manipulated_part.descriptions} with the opening upwards." + target_space_args = {"container_pour": pour_obj, "container_recv":recv_obj, "tip":self.robot.arm._ik_tip,"angle_threshold":np.pi/8} + target_space = TargetSpace(self.calculate_pre_pour_pose,space_args=target_space_args, + target_space_descriptions=move_descriptions, focus_obj_id=recv_obj.manipulated_part.visual) + target_space.set_target(pour_obj.buttom_point, try_ik_sampling=False, linear=True) + # target_space = TargetSpace(pre_pour_pose_space.tolist(), None, None, None, "the receiver mug", recv.visual) + # target_space.set_target(self.manipulated_obj, try_ik_sampling=False, release=False) + MoveTask0 = T2_MoveObjectConstraints(self.robot, self.pyrep, target_space, self.taks_base,fail_times=10, + next_task_fuc=MoveTask1.get_path_with_constraints) + # MoveTask0 = T1_MoveObjectGoal(self.robot, self.pyrep, self.target_space, self.taks_base, fail_times=10) + GraspTask0 = T0_ObtainControl(self.robot, self.pyrep, self.manipulated_obj,self.taks_base,\ + grasp_sort_key="horizontal",next_task_fuc=MoveTask0.get_path_with_constraints, try_times=200) + if try_times<100: + waypoints = GraspTask0.get_path(try_ik_sampling=True) + else: + waypoints = GraspTask0.get_path(try_ik_sampling=False) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + self.pyrep.step() + try_times-=1 + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + self.drops = [] + conditions = [] + LIQUID_BALLS = 20 + success_rate = 0.5 + for i in range(LIQUID_BALLS): + drop = Shape.create(PrimitiveShape.SPHERE, mass=0.0001, size=[0.005, 0.005, 0.005]) + drop.set_parent(self.taks_base) + drop.set_color([0.1, 0.1, 0.9]) + drop.set_position(list(np.random.normal(0, 0.0005, size=(3,))), relative_to=self.manipulated_obj) + self.drops.append(drop) + self.pyrep.step() + conditions.append(DetectedCondition(drop, self.object_list[1].succssor)) + # if np.random.rand() < success_rate: + # conditions.append(DetectedCondition(drop, self.object_list[1].succssor)) + self.register_success_conditions([NumberCondition(conditions, LIQUID_BALLS*success_rate)]) + description = f"Pour water from {self.manipulated_obj.descriptions} to {recv_obj.manipulated_part.descriptions}." + return [description] + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return 1 + + def cleanup(self) -> None: + for d in self.drops: + if d.still_exists(): + d.remove() + self.drops.clear() + super().cleanup() + + def is_static_workspace(self) -> bool: + return True + + def load(self, ttms_folder=None): + if Shape.exists('pour_demo'): + return Dummy('pour_demo') + ttm_file = os.path.join(ttms_folder, 'pour_demo.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('pour_demo') + return self._base_object + + def import_objects(self, num=2): + self.object_list = [] + if not hasattr(self, "model_path"): + selected_obj = random.choice(mug_list) + model_path = self.model_dir+selected_obj['path'] + else: + model_path = self.model_dir+self.model_path + for i in range(num): + obj = VLM_Object(self.pyrep, model_path, i) + succssor = ProximitySensor(f"success{i}") + buttom_point = Dummy.create() + buttom_point.set_name(f"buttom_point{i}") + buttom_point.set_parent(obj) + buttom_point.set_position(succssor.get_position()) + buttom_point.set_orientation(obj.get_orientation()) + obj.succssor = succssor + obj.buttom_point = buttom_point + # relative_factor = scale_object(obj, 1.5) + # if abs(relative_factor-1)>1e-2: + # local_grasp_pose = obj.manipulated_part.local_grasp + # local_grasp_pose[:, :3, 3] *= relative_factor + # obj.manipulated_part.local_grasp = local_grasp_pose + obj.set_parent(self.taks_base) + self.object_list.append(obj) + self._need_remove_objects.append(obj) + self.register_graspable_objects(self.object_list) + self.pyrep.step() + + def sample_method(self): + self.spawn_space.clear() + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + for _ in range(5): + self.pyrep.step() + + @staticmethod + def calculate_pre_pour_pose(container_pour, container_recv, tip, n_pos_sample=20, n_rot_sample=5, angle_threshold=np.pi/8): + # randomize the container to pour with its center on a horizontal circle whose center is right above the container to receive + # radius = radius of container to receive + half height of container to pour + # container to pour needs to have z axis upwards, no other rotational constraints + recv_pos = container_recv.buttom_point.get_position() + pour_size = container_pour.get_bounding_box() # min_x, max_x, min_y, max_y, min_z, max_z + recv_size = container_recv.get_bounding_box() + pour_x, pour_y, pour_h = pour_size[1] - pour_size[0], pour_size[3] - pour_size[2], pour_size[5] - pour_size[4] + recv_x, recv_y, recv_h = recv_size[1] - recv_size[0], recv_size[3] - recv_size[2], recv_size[5] - recv_size[4] + + succssor_size = container_recv.succssor.get_bounding_box() + succ_x, succ_y = succssor_size[1] - succssor_size[0], succssor_size[3] - succssor_size[2] + # r = (succ_x**2 + succ_y**2)**0.5/2 + r = pour_h + h_offset = max(pour_h, pour_x, pour_y) + h = h_offset + recv_pos[2] + recv_h / 2 + + h += np.random.normal(scale=0.005) + # make sure container_pour, container_pour->container_recv> < angle_threshold + # pos_vec, rot_vec = [], [] + pose_vec = [] + pour2gripper_pos = container_pour.buttom_point.get_position(tip) # container_pour.get_parent().get_position(container_pour) + pour2gripper_theta = np.arctan2(pour2gripper_pos[1], pour2gripper_pos[0]) + for i in range(n_pos_sample): + angle = i * 2*np.pi / n_pos_sample + x, y = recv_pos[0] + r * np.cos(angle), recv_pos[1] + r * np.sin(angle) + for j in range(n_rot_sample): + rz = angle - angle_threshold + (j+0.5) * 2*angle_threshold / n_rot_sample - pour2gripper_theta + # rz += np.pi + # pos_vec.append((x, y, h)) + # rot_vec.append((0, 0, rz)) + pose_vec.append([x, y, h, 0, 0, rz]) + pose_vec.append([x, y, h, 0, 0, rz+np.pi]) + # dm = Dummy.create() + # dm.set_position([x, y, h]) + # dm.set_orientation([0, 0, rz]) + # rand_idx = np.random.permutation(len(pos_vec)) + rand_idx = np.random.permutation(len(pose_vec)) + pose_vec = np.array(pose_vec)[rand_idx] + pose_matrx = np.zeros((pose_vec.shape[0], 4, 4)) + for i, vec in enumerate(pose_vec): + matrix = np.eye(4) + matrix[:3, 3] = vec[:3] + matrix[:3, :3] = R.from_euler("xyz", vec[3:]).as_matrix() + pose_matrx[i] = matrix + return pose_matrx + + @staticmethod + def create_pour_goal_pose(container_pour, container_recv, n_sample=36): + obj_goal_pose_set = np.zeros((n_sample, 4, 4)) + obj_goal_pose_set[:, 3, 3] = 1 + obj_goal_pose_set[:, :3, 3] = container_pour.buttom_point.get_position() + axis_z = container_recv.buttom_point.get_position() - container_pour.buttom_point.get_position() + pour_angle = np.random.uniform(20, 40) + axis_z[2] = -np.linalg.norm(axis_z[:2])*np.tan(np.deg2rad(pour_angle)) + axis_z = axis_z / np.linalg.norm(axis_z) + obj_goal_pose_set[:, :3, 2] = axis_z + tmp = np.cross([1, 0, 1], axis_z) + tmp = tmp / np.linalg.norm(tmp) + theta = 2*np.pi / n_sample + for i in range(n_sample): + axis_x = np.cos(i*theta) * tmp + np.sin(i*theta) * np.cross(tmp, axis_z) + axis_x = axis_x / np.linalg.norm(axis_x) + obj_goal_pose_set[i, :3, 0] = axis_x + obj_goal_pose_set[i, :3, 1] = np.cross(axis_z, axis_x) + # dm = Dummy.create(size=0.005) + # dm.set_matrix(obj_goal_pose_set[i]) + rand_idx = np.random.permutation(len(obj_goal_pose_set)) + obj_goal_pose_set = obj_goal_pose_set[rand_idx] + return obj_goal_pose_set + +class NumberCondition(Condition): + + def __init__(self, conditions: List[Condition], num_bound): + self._conditions = conditions + self.num_bound = num_bound + + def condition_met(self): + count = 0 + for cond in self._conditions: + ismet, term = cond.condition_met() + if ismet: + count+= 1 + met = count >= self.num_bound + return met, False \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_color.py new file mode 100644 index 0000000..0db6ab7 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_color.py @@ -0,0 +1,24 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import select_color +from vlm.tasks.pour_demo import PourDemo + +class PourDemoColor(PourDemo): + def init_task(self) -> None: + self.model_num = 3 + return super().init_task() + + def modified_init_episode(self, index: int): + color_names, rgbs = select_color(index, len(self.object_list)-1, replace=False) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(rgbs[i]) + obj.manipulated_part.property["color"] = color_names[i] + obj.manipulated_part.descriptions = "the {} {}".format(color_names[i], obj.manipulated_part.property["shape"]) + + return None + + def variation_count(self) -> int: + return len(colors) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_relative.py new file mode 100644 index 0000000..693cc7c --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_relative.py @@ -0,0 +1,43 @@ +import itertools +from typing import List +import numpy as np +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import get_relative_position_xy, scale_object, select_color +from vlm.tasks.pour_demo import PourDemo + +relative_pos_list = [["left","right"], + ["right", "left"], + ["front", "rear"], + ["rear", "front"]] +class PourDemoRelative(PourDemo): + def init_task(self) -> None: + return super().init_task() + + def modified_init_episode(self, index: int): + self.target_relative, self.compared_relative = relative_pos_list[index] + + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + return None + + def variation_count(self) -> int: + return len(relative_pos_list) + + def sample_method(self): + while True: + self.spawn_space.clear() + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + comparted_obj = self.object_list[1] + object_relative_pose = get_relative_position_xy(comparted_obj.manipulated_part, self.manipulated_obj, self.robot.arm) + if object_relative_pose != self.target_relative: + continue + self.manipulated_obj.property["relative_pos"] = object_relative_pose + self.manipulated_obj.descriptions = "the {} {}".format(object_relative_pose, self.manipulated_obj.property["shape"]) + comparted_obj.manipulated_part.descriptions = "the {} {}".format(self.compared_relative, comparted_obj.manipulated_part.property["shape"]) + break + for _ in range(5): + self.pyrep.step() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_size.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_size.py new file mode 100644 index 0000000..699b246 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/pour_demo_size.py @@ -0,0 +1,48 @@ +import itertools +from typing import List +import numpy as np +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.pour_demo import PourDemo + +size_list = ["small", "large"] +class PourDemoSize(PourDemo): + # def init_task(self) -> None: + # super().init_task() + # self.obj_init_pose = [] + # for obj in self.object_list: + # self.obj_init_pose.append(obj.get_pose()) + # self.ignore_collisions = True + + def modified_init_episode(self, index: int): + self.ignore_collisions = True + obj_size = size_list[index] + if obj_size == "small": + small_obj = self.object_list[0] + large_obj = self.object_list[1] + else: + small_obj = self.object_list[1] + large_obj = self.object_list[0] + small_obj.manipulated_part.descriptions = "the smaller {}".format(small_obj.manipulated_part.property["shape"]) + large_obj.manipulated_part.descriptions = "the larger {}".format(large_obj.manipulated_part.property["shape"]) + for obj, scale_factor in zip([small_obj, large_obj],[np.random.uniform(0.75, 0.9), np.random.uniform(1.0, 1.1)]): + relative_factor = scale_object(obj, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = obj.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + obj.manipulated_part.local_grasp = local_grasp_pose + + color_index = np.random.choice(len(colors), len(self.object_list), replace=True) + for i, obj in enumerate(self.object_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + return None + def variation_count(self) -> int: + return len(size_list) + + # def cleanup(self) -> None: + # for obj, pose in zip(self.object_list, self.obj_init_pose): + # if obj.still_exists(): + # obj.set_pose(pose) + # return super().cleanup() \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes.py new file mode 100644 index 0000000..9069417 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes.py @@ -0,0 +1,136 @@ +from typing import List +import numpy as np +import os +import random +from amsolver.backend.task import Task +from pyrep.objects.dummy import Dummy +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from pyrep.const import ObjectType, PrimitiveShape +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, TargetSpace, VLM_Object +from amsolver.backend.utils import scale_object +from amsolver.const import colors, object_shapes +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task + +class StackCubes(Task): + + def init_task(self) -> None: + self.success_sensor = ProximitySensor('success') + self.success_sensor.set_collidable(False) + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.temporary_waypoints = [] + self.taks_base = self.get_base() + if not hasattr(self, "model_num"): + self.model_num = 4 + if not hasattr(self, "class_num"): + self.class_num = 1 + + def init_episode(self, index: int) -> List[str]: + self.variation_index = index + self.import_objects() + self.init_pose = [] + for cube in self.cube_list: + self.init_pose.append(cube.get_pose()) + self.modified_init_episode(index) + try_times = 200 + # pick_cube_number = np.random.randint(1,self.cube_num) + pick_cube_number = 1 + while len(self.temporary_waypoints)==0 and try_times>0: + for cube, pose in zip(self.cube_list, self.init_pose): + cube.set_pose(pose) + self.sample_method() + self.success_sensor.set_position(self.cube_list[0].get_position()) + self.pyrep.step() + init_states = self.get_state()[0] + task_sequence = [] + conditions = [DetectedCondition(self.cube_list[0].manipulated_part, self.success_sensor)] + for i in range(pick_cube_number): + below_cube = self.cube_list[i] + above_cube = self.cube_list[i+1] + conditions.append(DetectedCondition(above_cube.manipulated_part, self.success_sensor)) + target_space_mesh = above_cube.target + below_obj_zmax = below_cube.get_bounding_box()[-1] + target_space_mesh.set_position([0,0,below_obj_zmax+0.005], relative_to = below_cube) + # target_space_mesh.set_parent(below_cube) + target_space = TargetSpace(SpawnBoundary([target_space_mesh]), self.success_sensor, + (0,0,-3.14), (0,0,3.14), below_cube.manipulated_part.descriptions, below_cube.manipulated_part.visual) + target_space.set_target(above_cube.manipulated_part, try_ik_sampling=True, linear=False, release=True) + MoveTask = T1_MoveObjectGoal(self.robot, self.pyrep, target_space, self.taks_base, fail_times=2) + GraspTask = T0_ObtainControl(self.robot, self.pyrep, above_cube.manipulated_part, self.taks_base, try_times=100) + task_sequence.append(GraspTask) + task_sequence.append(MoveTask) + for i in range(-1, -len(task_sequence), -1): + task_sequence[i-1].next_task_fuc = task_sequence[i].get_path + waypoints = task_sequence[0].get_path(try_ik_sampling=False, ignore_collisions=False) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + try_times -= 1 + self.register_success_conditions(conditions) + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + descriptions = f"Stack {self.cube_list[0].manipulated_part.descriptions}" + for i in range(pick_cube_number): + if i == pick_cube_number-1: + descriptions += " and " + elif i < pick_cube_number-1: + descriptions += ", " + descriptions += f"{self.cube_list[i+1].manipulated_part.descriptions}" + descriptions += " in sequence." + return [descriptions] + + def import_objects(self): + self.cube_list = [] + self.shape_lib = {} + selected_objs = random.sample(list(object_shapes.keys()), self.class_num) + for selected_obj in selected_objs: + model_path = self.model_dir+object_shapes[selected_obj]['path'] + self.shape_lib[selected_obj] = [] + for i in range(self.model_num): + cube = VLM_Object(self.pyrep, model_path, i) + # scale_factor = np.random.uniform(1.0, 1.25) + scale_factor = 1.5 + relative_factor = scale_object(cube, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = cube.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + cube.manipulated_part.local_grasp = local_grasp_pose + cube.scale_factor = scale_factor + # cube.set_model(False) + cube.set_parent(self.taks_base) + cube_bbox = cube.get_bounding_box() + x, y = cube_bbox[1]-cube_bbox[0], cube_bbox[3]-cube_bbox[2] + x, y = x*1.2, y*1.2 + cube_target = Shape.create(PrimitiveShape.CUBOID, [x,y,0], respondable=False, static=True, renderable=False) + # cube_target.set_parent(self.taks_base) + cube_target._is_plane = True + cube_target.set_transparency(0) + cube.target = cube_target + self.cube_list.append(cube) + self.shape_lib[selected_obj].append(cube) + self._need_remove_objects.append(cube_target) + self.register_graspable_objects(self.cube_list) + self._need_remove_objects+=self.cube_list + + def sample_method(self): + self.spawn_space.clear() + for cube in self.cube_list: + self.spawn_space.sample(cube, min_distance=0.1) + + def is_static_workspace(self) -> bool: + return True + + def load(self, ttms_folder=None): + if Shape.exists('stack_cubes'): + return Dummy('stack_cubes') + ttm_file = os.path.join(ttms_folder, 'stack_cubes.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('stack_cubes') + return self._base_object diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_color.py new file mode 100644 index 0000000..35102df --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_color.py @@ -0,0 +1,39 @@ +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import VLM_Object +from amsolver.const import colors +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.stack_cubes import StackCubes +from pyrep.const import ObjectType, PrimitiveShape + +class StackCubesColor(StackCubes): + + def modified_init_episode(self, index: int) -> List[str]: + for obj in self.cube_list: + scale_factor = np.random.uniform(0.8, 1.2) + relative_factor = scale_object(obj, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = obj.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + obj.manipulated_part.local_grasp = local_grasp_pose + + # color_index = np.random.choice(len(colors), len(self.cube_list), replace=False) + # for i, obj in enumerate(self.cube_list): + # Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + # obj.manipulated_part.descriptions = f"the {colors[color_index[i]][0]} cube" + color_names, rgbs = select_color(index, len(self.cube_list)-1, replace=False) + for i, cube in enumerate(self.cube_list): + Shape(cube.manipulated_part.visual).set_color(rgbs[i]) + cube.manipulated_part.descriptions = f"the {color_names[i]} {obj.manipulated_part.property['shape']}" + return None + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(colors) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_relative.py new file mode 100644 index 0000000..e926f7e --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_relative.py @@ -0,0 +1,64 @@ +from typing import List +import numpy as np +import itertools +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import VLM_Object +from amsolver.const import colors, object_shapes +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import get_relative_position_xy, get_sorted_grasp_pose, scale_object, select_color +from vlm.tasks.stack_cubes import StackCubes +from pyrep.const import ObjectType, PrimitiveShape + +relative_pos_list = list(itertools.product(["left", "right", "front", "rear"], repeat=2)) +class StackCubesRelative(StackCubes): + + def init_task(self) -> None: + self.model_num = 2 + self.class_num = 2 + return super().init_task() + + def modified_init_episode(self, index: int) -> List[str]: + self.object_target_relative0, self.object_target_relative1 = relative_pos_list[index] + self.select_obj0 = self.cube_list[:self.model_num] + self.select_obj1 = self.cube_list[self.model_num:2*self.model_num] + self.cube_list = [self.select_obj0[0], self.select_obj1[0]] + self.cube_num = len(self.cube_list) + color_index = np.random.choice(len(colors), len(self.cube_list), replace=True) + for i, obj in enumerate(self.cube_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + + return None + + def is_static_workspace(self) -> bool: + return True + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(relative_pos_list) + + def sample_method(self): + satisfied = False + while not satisfied: + self.spawn_space.clear() + for obj in self.select_obj0: + self.spawn_space.sample(obj, min_distance=0.1) + + object_relative_pose = get_relative_position_xy(self.select_obj0[1], self.select_obj0[0], self.robot.arm) + if object_relative_pose != self.object_target_relative0: + continue + obj = self.select_obj0[0].manipulated_part + obj.descriptions = "the {} {}".format(object_relative_pose, obj.property["shape"]) + + for obj in self.select_obj1: + self.spawn_space.sample(obj, min_distance=0.1) + object_relative_pose = get_relative_position_xy(self.select_obj1[1], self.select_obj1[0], self.robot.arm) + if object_relative_pose != self.object_target_relative1: + continue + obj = self.select_obj1[0].manipulated_part + obj.descriptions = "the {} {}".format(object_relative_pose, obj.property["shape"]) + satisfied = True + self.pyrep.step() diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_shape.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_shape.py new file mode 100644 index 0000000..a0c94f0 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_shape.py @@ -0,0 +1,67 @@ +import random +from typing import List +import numpy as np +import os +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import VLM_Object +from amsolver.const import colors, object_shapes +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.stack_cubes import StackCubes +from pyrep.const import ObjectType, PrimitiveShape + +class StackCubesShape(StackCubes): + def init_task(self) -> None: + self.class_num = len(object_shapes) + self.model_num = 1 + return super().init_task() + def modified_init_episode(self, index: int) -> List[str]: + total = list(range(self.class_num)) + total.remove(index) + distractor_number = np.random.randint(1,len(total)) + selected_index = random.sample(total, distractor_number) + selected_index = [index]+selected_index + self.cube_list = [self.cube_list[i] for i in selected_index] + + self.cube_num = len(self.cube_list) + color_index = np.random.choice(len(colors), len(self.cube_list), replace=True) + for i, obj in enumerate(self.cube_list): + Shape(obj.manipulated_part.visual).set_color(colors[color_index[i]][1]) + obj.manipulated_part.descriptions = "the {}".format(obj.manipulated_part.property["shape"]) + # color_names, rgbs = select_color(index, 3) + # for i, cube in enumerate(self.cube_list): + # Shape(cube.manipulated_part.visual).set_color(rgbs[i]) + # cube.manipulated_part.descriptions = f"the {color_names[i]} cube" + return None + + def variation_count(self) -> int: + return len(object_shapes) + + + # def import_objects(self, num): + # object_numbers = [1]*len(object_shapes) + # self.shape_lib = [] + # for obj, num in zip(object_shapes, object_numbers): + # for i in range(num): + # model = VLM_Object(self.pyrep, self.model_dir+object_shapes[obj]["path"], i) + # relative_factor = scale_object(model, 1.25) + # if abs(relative_factor-1)>1e-2: + # local_grasp_pose = model.manipulated_part.local_grasp + # local_grasp_pose[:, :3, 3] *= relative_factor + # model.manipulated_part.local_grasp = local_grasp_pose + # # model.set_model(False) + # model.set_parent(self.taks_base) + # model_bbox = model.get_bounding_box() + # x, y = model_bbox[1]-model_bbox[0]+0.02, model_bbox[3]-model_bbox[2]+0.02 + # model_target = Shape.create(PrimitiveShape.CUBOID, [x,y,0.02], respondable=False, static=True, renderable=False) + # # model_target.set_parent(model) + # model_target._is_plane = True + # model_target.set_transparency(0) + # model.target = model_target + # model.set_position([0,0,0]) + # self.shape_lib.append(model) + # self.register_graspable_objects(self.shape_lib) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_size.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_size.py new file mode 100644 index 0000000..931c2e0 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/stack_cubes_size.py @@ -0,0 +1,73 @@ +from typing import List +import numpy as np +import itertools +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import VLM_Object +from amsolver.const import colors +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.stack_cubes import StackCubes +from pyrep.const import ObjectType, PrimitiveShape + +sequence = list(itertools.permutations(list(range(3)), 3)) +class StackCubesSize(StackCubes): + + def init_task(self) -> None: + self.model_num = 3 + super().init_task() + + def modified_init_episode(self, index: int) -> List[str]: + assert self.model_num == 3 + for i in range(self.model_num): + cube = self.cube_list[i] + if i==0: + cube.manipulated_part.descriptions = "the large {}".format(cube.manipulated_part.property["shape"]) + scale_factor = np.random.uniform(1.2, 1.4) + elif i==1: + cube.manipulated_part.descriptions = "the medium {}".format(cube.manipulated_part.property["shape"]) + scale_factor = np.random.uniform(0.9, 1.1) + elif i==2: + cube.manipulated_part.descriptions = "the small {}".format(cube.manipulated_part.property["shape"]) + scale_factor = np.random.uniform(0.7, 0.9) + relative_factor = scale_object(cube, scale_factor) + scale_object(cube.target, scale_factor) + if abs(relative_factor-1)>1e-2: + local_grasp_pose = cube.manipulated_part.local_grasp + local_grasp_pose[:, :3, 3] *= relative_factor + cube.manipulated_part.local_grasp = local_grasp_pose + + color_index = np.random.choice(len(colors), self.model_num, replace=True) + for cube, i in zip(self.cube_list, color_index): + Shape(cube.manipulated_part.visual).set_color(colors[i][1]) + self.cube_list = [self.cube_list[i] for i in sequence[index]] + return None + + def variation_count(self) -> int: + # TODO: The number of variations for this task. + return len(sequence) + + # def import_objects(self, number=4): + # large_model_path = self.model_dir+"cube/cube_large/cube_large.ttm" + # normal_model_path = self.model_dir+"cube/cube_normal/cube_normal.ttm" + # small_model_path = self.model_dir+"cube/cube_small/cube_small.ttm" + # self.large_cube = VLM_Object(self.pyrep, large_model_path, 0) + # self.normal_cube = VLM_Object(self.pyrep, normal_model_path, 0) + # self.small_cube = VLM_Object(self.pyrep, small_model_path, 0) + # self.large_cube.manipulated_part.descriptions = "the large cube" + # self.normal_cube.manipulated_part.descriptions = "the medium cube" + # self.small_cube.manipulated_part.descriptions = "the small cube" + # self.cube_list = [self.large_cube, self.normal_cube, self.small_cube] + # self.cube_num = len(self.cube_list) + # for cube in self.cube_list: + # cube.set_model(False) + # cube.set_parent(self.get_base()) + # cube_bbox = cube.get_bounding_box() + # x, y = cube_bbox[1]-cube_bbox[0]+0.02, cube_bbox[3]-cube_bbox[2]+0.02 + # cube_target = Shape.create(PrimitiveShape.CUBOID, [x,y,0], respondable=False, static=True, renderable=False) + # cube_target.set_parent(cube) + # cube.target = cube_target + # self.register_graspable_objects(self.cube_list) diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table.py new file mode 100644 index 0000000..8b72d67 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table.py @@ -0,0 +1,218 @@ +import random +from typing import List +import numpy as np +import os +from scipy.spatial.transform import Rotation as R +from pyrep.objects.dummy import Dummy +from pyrep.const import ObjectType, PrimitiveShape +from amsolver.backend.task import Task +from pyrep.objects.shape import Shape +from pyrep.objects.proximity_sensor import ProximitySensor +from amsolver.backend.unit_tasks import T0_ObtainControl, T1_MoveObjectGoal, T2_MoveObjectConstraints, TargetSpace, VLM_Object +from amsolver.backend.utils import scale_object +from amsolver.const import colors, planes +from amsolver.backend.conditions import DetectedCondition +from amsolver.backend.spawn_boundary import SpawnBoundary +from amsolver.backend.task import Task +from amsolver.backend.conditions import Condition +from pyrep.backend._sim_cffi import ffi, lib + +DIRT_POINTS = 50 +class WipeTable(Task): + + def init_task(self) -> None: + self.spawn_space = SpawnBoundary([Shape('workspace')]) + self.model_dir = os.path.dirname(os.path.realpath(__file__)).replace("tasks","object_models/") + self.temporary_waypoints = [] + self.object_list = [] + self.target_list = [] + self.dirt_spots = [] + self.taks_base = self.get_base() + if not hasattr(self, "model_num"): + self.model_num = 1 + if not hasattr(self, "area_num"): + self.area_num = 2 + if not hasattr(self, "area_class_num"): + self.area_class_num = 1 + self.import_objects(self.model_num) + + def init_episode(self, index: int) -> List[str]: + try_init_episode_times = 200 + self.variation_index = index + self.create_area() + self.modified_init_episode(index) + self.manipulated_obj = self.object_list[0].manipulated_part + self.sensor = self.object_list[0].sensor + self.sensor_name = self.sensor.get_name() + target = self.target_list[0] + self.manipulated_obj.descriptions = "the {}".format(self.manipulated_obj.property["shape"]) + while len(self.temporary_waypoints)==0 and try_init_episode_times>0: + self.sample_method() + # self.register_success_conditions([DetectedCondition(self.manipulated_obj, self.target_space.successor)]) + init_states = self.get_state()[0] + end_args = {"target":target,"step":"end"} + if target.directional: + target_space_descriptions1 = f"Move the object along the main direction of {target.target_space_descriptions}." + else: + target_space_descriptions1 = f"Move the object cross the center of {target.target_space_descriptions}." + target_space1 = TargetSpace(self.move_to_point, space_args=end_args, + target_space_descriptions = target_space_descriptions1, focus_obj_id= target.get_handle()) + target_space1.set_target(self.sensor, try_ik_sampling=False, linear=True, ignore_collisions=True, release=False) + MoveTask1 = T2_MoveObjectConstraints(self.robot, self.pyrep, target_space1, self.taks_base, fail_times=2) + + start_args = {"target":target,"step":"start"} + target_space_descriptions0 = f"to the side of {target.target_space_descriptions}" + target_space0 = TargetSpace(self.move_to_point, space_args=start_args, + target_space_descriptions = target_space_descriptions0, focus_obj_id= target.get_handle()) + target_space0.set_target(self.sensor, try_ik_sampling=False, linear=False, ignore_collisions=True, release=False) + MoveTask0 = T1_MoveObjectGoal(self.robot, self.pyrep, target_space0, self.taks_base, fail_times=2, next_task_fuc=MoveTask1.get_path_with_constraints) + # self.target_space.set_target(self.manipulated_obj, try_ik_sampling=False, release=True) + GraspTask = T0_ObtainControl(self.robot, self.pyrep, self.manipulated_obj,self.taks_base, try_times=200, + next_task_fuc=MoveTask0.get_path) + if try_init_episode_times>100: + waypoints = GraspTask.get_path(try_ik_sampling=False) + else: + waypoints = GraspTask.get_path(try_ik_sampling=True) + if waypoints is not None: + self.temporary_waypoints += waypoints + self.reset_robot() + self.pyrep.set_configuration_tree(init_states) + try_init_episode_times -= 1 + self._place_dirt(target) + self.register_success_conditions([LengthCondition(self.dirt_spots, DIRT_POINTS*0.5)]) + for i,waypoint in enumerate(self.temporary_waypoints): + waypoint.set_name('waypoint{}'.format(i)) + description = f"Wipe {target.target_space_descriptions}." + return [description] + + def is_static_workspace(self) -> bool: + return True + + def load(self, ttms_folder=None): + if Shape.exists('wipe_table'): + return Dummy('wipe_table') + ttm_file = os.path.join(ttms_folder, 'wipe_table.ttm') + self._base_object = self.pyrep.import_model(ttm_file) + return self._base_object + + def get_base(self) -> Dummy: + self._base_object = Dummy('wipe_table') + return self._base_object + + def import_objects(self, num=1): + if not hasattr(self, "model_path"): + model_path = self.model_dir+"wiper/sponge/sponge.ttm" + else: + model_path = self.model_dir+self.model_path + for i in range(num): + obj = VLM_Object(self.pyrep, model_path, i) + for children in obj.get_objects_in_tree(exclude_base=True): + if children.get_type() == ObjectType.PROXIMITY_SENSOR: + obj.sensor = children + obj.set_parent(self.taks_base) + self.object_list.append(obj) + self.register_graspable_objects(self.object_list) + + def create_area(self): + self.target_list = [] + self.shape_lib = {} + selected_objs = random.sample(list(planes.keys()), self.area_class_num) + for selected_obj in selected_objs: + model_path = self.model_dir+planes[selected_obj]['path'] + self.shape_lib[selected_obj] = [] + for i in range(self.area_num): + dirt_area = self.pyrep.import_model(model_path) + dirt_area.scale_factor = lib.simGetObjectSizeFactor(ffi.cast('int',dirt_area._handle)) + scale_object(dirt_area, np.random.uniform(0.9, 1.1)) + dirt_area.directional = planes[selected_obj]['directional'] + dirt_area.set_parent(self.taks_base) + dirt_area.target_space_descriptions = f"the {selected_obj} area" + self.shape_lib[selected_obj].append(dirt_area) + self.target_list.append(dirt_area) + self._need_remove_objects.append(dirt_area) + + def sample_method(self): + self.spawn_space.clear() + + for target in self.target_list: + self.spawn_space.sample(target, min_distance=0.1) + + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + + @staticmethod + def move_to_point(target: Shape, step, n_sample=36): + target_pose = target.get_matrix() + target_size = target.get_bounding_box() + if step == "start": + offset = target_size[0] + else: + offset = target_size[1] + related_pos = target_pose.dot(np.array([offset, 0, 0, 1])) + obj_poses = np.zeros((n_sample, 4, 4)) + obj_poses[:, :, 3] = related_pos + theta = 2*np.pi/ n_sample + for i in range(n_sample): + rot_m = R.from_euler("xyz", [0, 0, i*theta]).as_matrix() + obj_poses[i, :3, :3] = target_pose[:3, :3].dot(rot_m) + + return obj_poses + + def _place_dirt(self, space): + target_pose = space.get_matrix() + target_size = space.get_bounding_box() + if space.directional: + step = (target_size[1]-target_size[0])/DIRT_POINTS + for i in range(DIRT_POINTS): + spot = Shape.create(type=PrimitiveShape.CUBOID, + size=[.005, .005, .001], + mass=0, static=True, respondable=False, + renderable=False, + color=[0.58, 0.29, 0.0]) + spot.set_parent(space) + delta_y = np.random.normal(scale=0.005) + related_pos = target_pose.dot(np.array([target_size[0]+step*i, delta_y, 0.001, 1])) + spot.set_position(related_pos[:3]) + self.dirt_spots.append(spot.get_name()) + else: + max_r = min(target_size[1], target_size[3])/2 + for i in range(DIRT_POINTS): + spot = Shape.create(type=PrimitiveShape.CUBOID, + size=[.005, .005, .001], + mass=0, static=True, respondable=False, + renderable=False, + color=[0.58, 0.29, 0.0]) + spot.set_parent(space) + r = np.random.uniform(0, max_r) + theta = np.random.uniform(-np.pi, np.pi) + x, y = r*np.cos(theta), r*np.sin(theta) + related_pos = target_pose.dot(np.array([x, y, 0.001, 1])) + spot.set_position(related_pos[:3]) + self.dirt_spots.append(spot.get_name()) + + def step(self) -> None: + sensor = ProximitySensor(self.sensor_name) + for d in self.dirt_spots: + if sensor.is_detected(Shape(d)): + self.dirt_spots.remove(d) + Shape(d).remove() + + def cleanup(self) -> None: + for d in self.dirt_spots: + Shape(d).remove() + self.dirt_spots = [] + super().cleanup() + +class LengthCondition(Condition): + + def __init__(self, container: list, num_bound): + self._container = container + self.num_bound = num_bound + + def condition_met(self): + count = 0 + for obj in self._container: + if Shape.exists(obj): + count+=1 + met = count <= self.num_bound + return met, False \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_color.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_color.py new file mode 100644 index 0000000..8407956 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_color.py @@ -0,0 +1,23 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import select_color +from vlm.tasks.wipe_table import WipeTable + +class WipeTableColor(WipeTable): + def init_task(self) -> None: + # self.model_num = 3 + return super().init_task() + + def modified_init_episode(self, index: int): + color_names, rgbs = select_color(index, len(self.target_list)-1) + for i, target in enumerate(self.target_list): + target.set_color(rgbs[i]) + target.target_space_descriptions= "the {} area".format(color_names[i]) + + return None + + def variation_count(self) -> int: + return len(colors) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_direction.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_direction.py new file mode 100644 index 0000000..5ab9b32 --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_direction.py @@ -0,0 +1,71 @@ +import random +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors,planes +from amsolver.backend.utils import get_relative_position_xy, scale_object, select_color +from vlm.tasks.wipe_table import WipeTable + +direction_list = ["horizontal", "vertical"] +class WipeTableDirection(WipeTable): + def init_task(self) -> None: + super().init_task() + + def modified_init_episode(self, index: int): + self._task_init_states = [] + for area in self.target_list: + self._task_init_states.append(area.get_pose()) + + self.target_direction = direction_list[index] + self.target_list[0].target_space_descriptions = f"the {self.target_direction} area" + target_space_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(direction_list) + + def create_area(self): + self.target_list = [] + self.shape_lib = {} + directional_planes = {k:v for k, v in planes.items() if v['directional']} + selected_objs = random.sample(list(directional_planes.keys()), self.area_class_num) + for selected_obj in selected_objs: + model_path = self.model_dir+directional_planes[selected_obj]['path'] + self.shape_lib[selected_obj] = [] + for i in range(self.area_num): + dirt_area = self.pyrep.import_model(model_path) + scale_object(dirt_area, np.random.uniform(0.9, 1.1)) + dirt_area.directional = directional_planes[selected_obj]['directional'] + dirt_area.set_parent(self.taks_base) + dirt_area.target_space_descriptions = f"the {selected_obj} area" + self.shape_lib[selected_obj].append(dirt_area) + self.target_list.append(dirt_area) + self._need_remove_objects.append(dirt_area) + + def sample_method(self): + for area, pose in zip(self.target_list, self._task_init_states): + area.set_pose(pose) + self.spawn_space.clear() + vertical_min_rotation, vertical_max_rotation = (0, 0, -np.pi/8), (0, 0, np.pi/8) + if np.random.uniform()<0.5: + horizontal_min_rotation, horizontal_max_rotation = (0, 0, -5*np.pi/8), (0, 0, -3*np.pi/8) + else: + horizontal_min_rotation, horizontal_max_rotation = (0, 0, 3*np.pi/8), (0, 0, 5*np.pi/8) + if self.target_direction == "horizontal": + t0_min_rotation, t0_max_rotation = horizontal_min_rotation, horizontal_max_rotation + t1_min_rotation, t1_max_rotation = vertical_min_rotation, vertical_max_rotation + else: + t0_min_rotation, t0_max_rotation = vertical_min_rotation, vertical_max_rotation + t1_min_rotation, t1_max_rotation = horizontal_min_rotation, horizontal_max_rotation + + self.spawn_space.sample(self.target_list[0], min_distance=0.2, + min_rotation=t0_min_rotation, max_rotation=t0_max_rotation) + self.spawn_space.sample(self.target_list[1], min_distance=0.2, + min_rotation=t1_min_rotation, max_rotation=t1_max_rotation) + + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_relative.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_relative.py new file mode 100644 index 0000000..581515e --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_relative.py @@ -0,0 +1,40 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import get_relative_position_xy, select_color +from vlm.tasks.wipe_table import WipeTable + +relative_pos_list = ["left", "right", "front", "rear"] +class WipeTableRelative(WipeTable): + def init_task(self) -> None: + return super().init_task() + + def modified_init_episode(self, index: int): + self.target_relative = relative_pos_list[index] + target_space_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(relative_pos_list) + + def sample_method(self): + + while True: + self.spawn_space.clear() + + for t in self.target_list: + self.spawn_space.sample(t, min_distance=0.1) + target = self.target_list[0] + distractor = self.target_list[1] + object_relative_pose = get_relative_position_xy(distractor, target, self.robot.arm) + if object_relative_pose!= self.target_relative: + continue + target.target_space_descriptions = f"the {object_relative_pose} area" + for obj in self.object_list: + self.spawn_space.sample(obj, min_distance=0.1) + break \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_shape.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_shape.py new file mode 100644 index 0000000..5e00e2d --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_shape.py @@ -0,0 +1,36 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors, planes +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.wipe_table import WipeTable +from pyrep.const import ObjectType, PrimitiveShape + +shape_list = list(planes.keys()) +DIRT_POINTS = 50 +class WipeTableShape(WipeTable): + def init_task(self) -> None: + self.area_num = 1 + self.area_class_num = len(shape_list) + return super().init_task() + + def modified_init_episode(self, index: int): + selected_shapes = shape_list[index] + self.target_list = [self.shape_lib[selected_shapes][0]] + other_shapes_index = list(range(len(shape_list))) + other_shapes_index.remove(index) + distractor_number = np.random.randint(1,min(len(shape_list),3)) + distractor_index = np.random.choice(other_shapes_index, distractor_number, replace=False) + for i in distractor_index: + selected_shapes = shape_list[i] + self.target_list.append(self.shape_lib[selected_shapes][0]) + + target_space_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(planes) \ No newline at end of file diff --git a/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_size.py b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_size.py new file mode 100644 index 0000000..9ba94fb --- /dev/null +++ b/easi/tasks/ebmanipulation/vendor/vlm/tasks/wipe_table_size.py @@ -0,0 +1,36 @@ +from typing import List +import numpy as np +from amsolver.backend.unit_tasks import VLM_Object, TargetSpace +from pyrep.objects.shape import Shape +from amsolver.const import colors +from amsolver.backend.utils import scale_object, select_color +from vlm.tasks.wipe_table import WipeTable + +size_list = ["small", "large"] +class WipeTableSize(WipeTable): + def init_task(self) -> None: + # self.model_num = 3 + return super().init_task() + + def modified_init_episode(self, index: int): + + target_size = size_list[index] + if target_size == "small": + small_target = self.target_list[0] + large_target = self.target_list[1] + else: + small_target = self.target_list[1] + large_target = self.target_list[0] + small_target.target_space_descriptions = "the smaller area" + large_target.target_space_descriptions = "the larger area" + for target, scale_factor in zip([small_target, large_target],[np.random.uniform(0.75, 0.9), np.random.uniform(1.0, 1.2)]): + scale_object(target, scale_factor) + + target_space_colors = np.random.choice(len(colors), len(self.target_list), replace=True) + for i, target in enumerate(self.target_list): + target.set_color(colors[target_space_colors[i]][1]) + + return None + + def variation_count(self) -> int: + return len(size_list) \ No newline at end of file From 3c7a8ab491089ddf69ee15f9f74c79afe56f87cb Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 21 Feb 2026 03:06:48 +0800 Subject: [PATCH 071/239] [Feat] Vendor HAZARD source and add HAZARD task integration Vendor minimal HAZARD source files (~33 .py + 2 .txt data files) into easi/tasks/hazard/vendor/HAZARD/ to eliminate git-clone and mmcv/mmdet CUDA build dependencies. Changes: - Vendor HAZARD envs (fire/flood/wind), policy, and utils modules - Patch vendored __init__.py to remove run_experiments cascade - Wrap mmcv/mmdet imports in try/except (optional, not required at runtime) - Rewrite all internal imports from src.HAZARD.* to HAZARD.* - Update bridge.py: replace git-clone with vendor dir on sys.path - Remove hazard_repo, hazard_cache_dir, mmcv, mmdet from _base.yaml - Add HAZARD task (fire/flood/wind), bridge, prompts, actions, configs - Add 28 offline HAZARD tests --- easi/tasks/hazard/__init__.py | 0 easi/tasks/hazard/_base.yaml | 29 + easi/tasks/hazard/actions.py | 39 + easi/tasks/hazard/bridge.py | 679 ++++++++++++++++++ easi/tasks/hazard/config/fire.json | 35 + easi/tasks/hazard/config/fluid.json | 35 + easi/tasks/hazard/config/prompts.csv | 37 + easi/tasks/hazard/config/value.json | 37 + easi/tasks/hazard/hazard_fire.yaml | 15 + easi/tasks/hazard/hazard_flood.yaml | 15 + easi/tasks/hazard/hazard_wind.yaml | 15 + easi/tasks/hazard/prompts.py | 319 ++++++++ easi/tasks/hazard/task.py | 239 ++++++ easi/tasks/hazard/vendor/HAZARD/__init__.py | 2 + .../HAZARD/data/meta_data/categories.txt | 1 + .../HAZARD/data/meta_data/categories_new.txt | 1 + .../hazard/vendor/HAZARD/envs/__init__.py | 0 .../vendor/HAZARD/envs/fire/__init__.py | 9 + .../hazard/vendor/HAZARD/envs/fire/agent.py | 311 ++++++++ .../hazard/vendor/HAZARD/envs/fire/fire.py | 237 ++++++ .../vendor/HAZARD/envs/fire/fire_gym.py | 176 +++++ .../vendor/HAZARD/envs/fire/fire_utils.py | 47 ++ .../HAZARD/envs/fire/fireagent_controller.py | 608 ++++++++++++++++ .../hazard/vendor/HAZARD/envs/fire/manager.py | 155 ++++ .../hazard/vendor/HAZARD/envs/fire/object.py | 124 ++++ .../vendor/HAZARD/envs/flood/__init__.py | 9 + .../hazard/vendor/HAZARD/envs/flood/agent.py | 203 ++++++ .../hazard/vendor/HAZARD/envs/flood/flood.py | 126 ++++ .../vendor/HAZARD/envs/flood/flood_gym.py | 192 +++++ .../envs/flood/floodagent_controller.py | 580 +++++++++++++++ .../vendor/HAZARD/envs/flood/manager.py | 256 +++++++ .../hazard/vendor/HAZARD/envs/flood/object.py | 334 +++++++++ .../hazard/vendor/HAZARD/envs/flood/utils.py | 43 ++ .../vendor/HAZARD/envs/wind/__init__.py | 7 + .../hazard/vendor/HAZARD/envs/wind/agent.py | 217 ++++++ .../hazard/vendor/HAZARD/envs/wind/manager.py | 168 +++++ .../hazard/vendor/HAZARD/envs/wind/object.py | 68 ++ .../hazard/vendor/HAZARD/envs/wind/wind.py | 66 ++ .../vendor/HAZARD/envs/wind/wind_gym.py | 165 +++++ .../vendor/HAZARD/envs/wind/wind_utils.py | 15 + .../HAZARD/envs/wind/windagent_controller.py | 488 +++++++++++++ .../hazard/vendor/HAZARD/policy/__init__.py | 0 .../hazard/vendor/HAZARD/policy/astar.py | 58 ++ .../vendor/HAZARD/policy/env_actions.py | 370 ++++++++++ .../hazard/vendor/HAZARD/utils/__init__.py | 0 .../vendor/HAZARD/utils/distributions.py | 61 ++ .../hazard/vendor/HAZARD/utils/local_asset.py | 23 + .../tasks/hazard/vendor/HAZARD/utils/model.py | 337 +++++++++ .../hazard/vendor/HAZARD/utils/model_utils.py | 132 ++++ .../hazard/vendor/HAZARD/utils/scene_setup.py | 115 +++ .../hazard/vendor/HAZARD/utils/seg_id.py | 114 +++ .../hazard/vendor/HAZARD/utils/vision.py | 59 ++ tests/test_hazard_task.py | 382 ++++++++++ 53 files changed, 7753 insertions(+) create mode 100644 easi/tasks/hazard/__init__.py create mode 100644 easi/tasks/hazard/_base.yaml create mode 100644 easi/tasks/hazard/actions.py create mode 100644 easi/tasks/hazard/bridge.py create mode 100644 easi/tasks/hazard/config/fire.json create mode 100644 easi/tasks/hazard/config/fluid.json create mode 100644 easi/tasks/hazard/config/prompts.csv create mode 100644 easi/tasks/hazard/config/value.json create mode 100644 easi/tasks/hazard/hazard_fire.yaml create mode 100644 easi/tasks/hazard/hazard_flood.yaml create mode 100644 easi/tasks/hazard/hazard_wind.yaml create mode 100644 easi/tasks/hazard/prompts.py create mode 100644 easi/tasks/hazard/task.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories.txt create mode 100644 easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories_new.txt create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/agent.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/fire.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_gym.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_utils.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/manager.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/fire/object.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/agent.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/flood.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/flood_gym.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/manager.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/object.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/flood/utils.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/agent.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/manager.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/object.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/wind.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_gym.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_utils.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/policy/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/policy/astar.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/policy/env_actions.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/__init__.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/distributions.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/local_asset.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/model.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/model_utils.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/scene_setup.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/seg_id.py create mode 100644 easi/tasks/hazard/vendor/HAZARD/utils/vision.py create mode 100644 tests/test_hazard_task.py diff --git a/easi/tasks/hazard/__init__.py b/easi/tasks/hazard/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/hazard/_base.yaml b/easi/tasks/hazard/_base.yaml new file mode 100644 index 0000000..640ee36 --- /dev/null +++ b/easi/tasks/hazard/_base.yaml @@ -0,0 +1,29 @@ +display_name: "HAZARD" +description: "HAZARD benchmark - embodied decision making in disaster environments" +simulator: "tdw:v1_11_23" +task_class: "easi.tasks.hazard.task.HAZARDTask" +max_steps: 1500 +dataset: + source: huggingface + repo_id: "oscarqjh/HAZARD_easi" + zip_files: + - "simulator_data.zip" +simulator_configs: + screen_size: 512 + port: 1071 + use_cached_assets: false + additional_deps: + - "opencv-python" + - "gym" + - "pyastar2d" + - "inflect" + - "pandas" + - "torch" +agent: + prompt_builder: "easi.tasks.hazard.prompts.HAZARDPromptBuilder" + prompt_builder_kwargs: + cot: false + generation_kwargs: + temperature: 0.7 + max_tokens: 512 + top_p: 1.0 diff --git a/easi/tasks/hazard/actions.py b/easi/tasks/hazard/actions.py new file mode 100644 index 0000000..521d5bf --- /dev/null +++ b/easi/tasks/hazard/actions.py @@ -0,0 +1,39 @@ +"""HAZARD action definitions. + +HAZARD uses dynamic action selection — the bridge computes available plans +each step and the LLM picks from them. These definitions describe the +underlying action types. + +Reference: HAZARD/src/HAZARD/policy/env_actions.py + HAZARD/src/HAZARD/policy/llm.py:get_available_plans() +""" +from __future__ import annotations + +# High-level action types (used internally by bridge) +ACTION_TYPES = [ + "walk_to", + "pick_up", + "drop", + "explore", + "stop", +] + +# Max steps per scenario +SCENARIO_MAX_STEPS = { + "fire": 1500, + "flood": 1500, + "wind": 3000, +} + +# Object values +HIGH_VALUE = 5 +LOW_VALUE = 1 + + +def get_action_space() -> list[str]: + """Return the HAZARD action type list. + + Note: The actual available actions are dynamic per-step and computed + by the bridge. This returns the canonical action types. + """ + return list(ACTION_TYPES) diff --git a/easi/tasks/hazard/bridge.py b/easi/tasks/hazard/bridge.py new file mode 100644 index 0000000..ad6dd82 --- /dev/null +++ b/easi/tasks/hazard/bridge.py @@ -0,0 +1,679 @@ +"""HAZARD bridge — manages disaster rescue scenarios via HAZARD envs. + +This script runs inside the easi_tdw_v1_11_23 conda env (Python 3.10). +It communicates with the parent process via filesystem IPC. + +HAZARD source is vendored at ``easi/tasks/hazard/vendor/HAZARD/``. +The vendor dir is added to sys.path so ``from HAZARD.*`` imports resolve. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import math +import sys +from pathlib import Path + +import numpy as np + +# Add EASI repo root so easi imports work +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +# Add vendored HAZARD source to sys.path +_vendor_dir = str(Path(__file__).resolve().parent / "vendor") +if _vendor_dir not in sys.path: + sys.path.insert(0, _vendor_dir) + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Object values (matching actions.py) +HIGH_VALUE = 5 +LOW_VALUE = 1 + + +class HAZARDBridge(BaseBridge): + """Bridge for HAZARD benchmark scenarios (fire/flood/wind).""" + + def __init__(self, workspace, simulator_kwargs=None): + super().__init__(workspace, simulator_kwargs) + + self.scenario = self.simulator_kwargs.get("scenario", "fire") + self._max_steps = self.simulator_kwargs.get("max_steps", 1500) + self._screen_size = self.simulator_kwargs.get("screen_size", 512) + self._port = self.simulator_kwargs.get("port", 1071) + + # HAZARD state (reset per episode) + self.holding_object = [] + self.nearest_object = None + self.have_finished_list = [] + self.target_status = {} + self.target_ids = [] + self.target_categories = [] + self.object_list = [] + self.current_seen_objects_id = [] + self._last_action_result = False + self._last_action_info = "" + self._action_history = [] # list of (matched_plan_text, result, info) + self._env_change_record = {} # {str(obj_id): [temp/water_level values]} + self._cached_plans = [] # plan descriptions from previous step + self._cached_plan_actions = [] # action tuples from previous step + + def _create_env(self, reset_config, simulator_kwargs): + """Create the appropriate HAZARD env (Fire/Flood/Wind).""" + scenario = simulator_kwargs.get("scenario", "fire") + port = simulator_kwargs.get("port", 1071) + screen_size = simulator_kwargs.get("screen_size", 512) + use_cached_assets = simulator_kwargs.get("use_cached_assets", False) + + if scenario == "fire": + from HAZARD.envs.fire import FireEnv + env = FireEnv( + launch_build=True, screen_size=screen_size, port=port, + use_local_resources=use_cached_assets, + check_version=False, use_gt=False, + ) + elif scenario == "flood": + from HAZARD.envs.flood import FloodEnv + env = FloodEnv( + launch_build=True, screen_size=screen_size, port=port, + use_local_resources=use_cached_assets, + check_version=False, use_gt=False, + ) + elif scenario == "wind": + from HAZARD.envs.wind import WindEnv + env = WindEnv( + launch_build=True, screen_size=screen_size, port=port, + use_local_resources=use_cached_assets, + check_version=False, use_gt=False, + ) + else: + raise ValueError(f"Unknown HAZARD scenario: {scenario}") + + logger.info("Created %s env (port=%d, screen=%d)", scenario, port, screen_size) + return env + + def _on_reset(self, env, reset_config): + """Reset HAZARD env with episode data.""" + # Reset bridge state + self.holding_object = [] + self.nearest_object = None + self.have_finished_list = [] + self._last_action_result = False + self._last_action_info = "" + self._action_history = [] + self._env_change_record = {} + self._cached_plans = [] + self._cached_plan_actions = [] + + # Load scene via HAZARD env + source_dir = reset_config["source_dir"] + logger.info("Resetting HAZARD env with source_dir: %s", source_dir) + env.reset(data_dir=source_dir) + + # Initialize target tracking + self.target_ids = [int(tid) for tid in reset_config.get("target_object_ids", [])] + self.target_categories = reset_config.get("target_categories", []) + self.target_status = {tid: False for tid in self.target_ids} + + # Initial communicate + observation + env.controller.communicate([]) + state = env.controller._obs() + + return self._wrap_obs(state, is_reset=True) + + def _on_step(self, env, action_text): + """Execute a HAZARD action and return (obs, reward, done, info).""" + from HAZARD.policy.env_actions import ( + agent_walk_to, agent_pickup, agent_drop, agent_explore, + ) + + # Parse action_text against CACHED plans from previous step + action_tuple, matched_plan = self._parse_action(action_text) + + if action_tuple is None: + # Failed to parse -> treat as explore + action_tuple = ("explore", None) + matched_plan = "look around" + + # Execute the action + action_type, action_target = action_tuple + action_result, action_info = self._execute_action( + env, action_type, action_target + ) + self._last_action_result = action_result + self._last_action_info = action_info + # Store matched plan text (not raw LLM text) for explore condition + self._action_history.append((matched_plan, action_result, action_info)) + + # Handle state updates based on action + if action_type == "walk_to" and action_result: + self.nearest_object = int(action_target) if action_target else None + elif action_type == "walk_to" and not action_result: + self.nearest_object = None + elif action_type == "pick_up" and action_result: + self._do_hold_object(env) + elif action_type == "drop" and action_result: + self._do_drop_object(env, action_target) + + # Chain auto-actions + self._execute_auto_actions(env) + + # Get new observation + state = env.controller._obs() + self._update_seen_objects(state) + self._update_object_status(state) # Track temperature/water_level + + # Check done + frame_count = env.controller.frame_count + all_targets_done = all(self.target_status.values()) + done = frame_count >= self._max_steps or all_targets_done + + # Compute available plans for NEXT step and cache them + available_plans, plan_actions = self._get_available_plans() + self._cached_plans = available_plans + self._cached_plan_actions = plan_actions + + # Compute scoring (Value + Damage metrics from HAZARD paper) + value_score, max_value, rescued_count, damaged_count = self._compute_scores() + + # Compute max rescue frame (latest frame any target was rescued) + # Paper "Step" metric uses max(rescue_frame_per_target) per episode + rescue_frames = [f for f in self.target_status.values() if f] + max_rescue_frame = float(max(rescue_frames)) if rescue_frames else 0.0 + + # Compute per-object distances for prompt builder + object_distances = self._compute_object_distances(state) + + # Snapshot env_change_record: last value per object for prompt + env_record_snapshot = {} + for obj_id, values in self._env_change_record.items(): + if values: + env_record_snapshot[obj_id] = values[-1] + + # Build info + info = { + "task_success": float(all_targets_done), + "frame_count": float(frame_count), + "max_steps": float(self._max_steps), + "max_rescue_frame": max_rescue_frame, # for paper "Step" metric + "last_action_success": float(action_result), + "feedback": str(action_info), + "holding_objects": json.dumps(self.holding_object), + "available_plans": json.dumps(available_plans), + "plan_actions": json.dumps(plan_actions), + "targets_rescued": float(sum(1 for v in self.target_status.values() if v)), + "targets_total": float(len(self.target_status)), + # HAZARD paper metrics (Value + Damage) + "value_score": float(value_score), # sum(base_value * discount) + "max_value": float(max_value), # sum(base_value for all targets) + "rescued_count": float(rescued_count), # total objects rescued + "damaged_count": float(damaged_count), # rescued objects that were damaged + # Data for prompt builder (STATE section) + "object_list": json.dumps(self.object_list), + "current_seen_objects_id": json.dumps(self.current_seen_objects_id), + "object_distances": json.dumps(object_distances), + "env_change_record": json.dumps(env_record_snapshot), + "target_categories": json.dumps(self.target_categories), + } + + obs = self._wrap_obs(state) + return obs, 0.0, done, info + + def _extract_image(self, obs): + """Extract RGB numpy array from HAZARD observation.""" + rgb = obs.get("rgb_array") + if rgb is not None: + return rgb + return np.zeros((self._screen_size, self._screen_size, 3), dtype=np.uint8) + + def _extract_info(self, info): + """Pass through all info keys (already cleaned).""" + return info or {} + + # --- Action execution --- + + def _execute_action(self, env, action_type, action_target): + """Execute a single HAZARD action, return (success, info_text).""" + from HAZARD.policy.env_actions import ( + agent_walk_to, agent_pickup, agent_drop, agent_explore, + ) + + if action_type == "walk_to": + target_id = self._resolve_target_id(action_target) + if target_id is None: + return False, "invalid target id" + return agent_walk_to( + env, target=target_id, + max_steps=100, reset_arms=False, arrived_at=0.5, + task=self.scenario, effect_on_agents=False, + ) + elif action_type == "pick_up": + target_id = action_target + if target_id is not None: + self.nearest_object = int(target_id) + if self.nearest_object is None: + return False, "no nearest object to pick up" + real_id = self._id_reverse_renumber(self.nearest_object) + return agent_pickup(env, real_id, env_type=self.scenario) + elif action_type == "drop": + if not self.holding_object: + return False, "not holding any object" + if action_target is not None: + real_id = self._id_reverse_renumber(int(action_target)) + return agent_drop(env, real_id, env_type=self.scenario) + else: + return agent_drop(env, env_type=self.scenario) + elif action_type == "explore": + return agent_explore(env) + elif action_type == "stop": + return True, "stopped" + else: + return False, f"unknown action type: {action_type}" + + # --- Auto-actions --- + + def _execute_auto_actions(self, env): + """Chain automatic pickup/drop actions based on current state.""" + max_chain = 5 # prevent infinite loops + for _ in range(max_chain): + auto = self._check_auto_action() + if auto is None: + break + action_type, action_target = auto + logger.info("Auto-action: %s %s", action_type, action_target) + result, info = self._execute_action(env, action_type, action_target) + if action_type == "pick_up" and result: + self._do_hold_object(env) + elif action_type == "drop" and result: + self._do_drop_object(env, action_target) + self._action_history.append((f"auto_{action_type}", result, info)) + + def _check_auto_action(self): + """Check if an auto-action should fire. Returns (type, target) or None. + + Auto-action rules (from HAZARD/src/HAZARD/policy/llm.py:choose_target): + - Wind: If not holding + nearest is target -> pick_up + - Wind: If holding + last walk_to cart succeeded -> drop into cart + - Fire/Flood: If holding target -> drop (into bag) + - Fire/Flood: If nearest is target -> pick_up + """ + if self.scenario == "wind": + if (not self.holding_object + and self.nearest_object is not None + and self._is_target_object(self.nearest_object)): + return ("pick_up", self.nearest_object) + if (self.holding_object + and self._last_action_result + and self._action_history + and self._is_container(self.nearest_object)): + return ("drop", self.nearest_object) + else: + # Fire/Flood + if (self.holding_object + and self.holding_object[0].get("category") in self.target_categories): + return ("drop", None) + if (self.nearest_object is not None + and not self.holding_object + and self._is_target_object(self.nearest_object)): + return ("pick_up", self.nearest_object) + return None + + # --- State management --- + + def _do_hold_object(self, env): + """Record picking up the nearest object.""" + if self.nearest_object is None: + return + real_id = self._id_reverse_renumber(self.nearest_object) + name = env.controller.manager.segm.names.get(real_id, "unknown") + category = env.controller.manager.segm.categories.get(real_id, "unknown") + self.holding_object.append({ + "name": name, "category": category, + "id": str(self.nearest_object), + }) + self.nearest_object = None + + def _do_drop_object(self, env, container_target): + """Record dropping the held object.""" + if not self.holding_object: + return + obj_id = int(self.holding_object[0]["id"]) + real_id = self._id_reverse_renumber(obj_id) + if real_id in self.target_status: + self.target_status[real_id] = env.controller.frame_count + self.have_finished_list.append(obj_id) + else: + self.nearest_object = obj_id + self.holding_object = [] + + def _is_target_object(self, renumbered_id): + """Check if a renumbered object ID corresponds to a target.""" + real_id = self._id_reverse_renumber(renumbered_id) + return real_id in self.target_status + + def _is_container(self, renumbered_id): + """Check if object is a container (wind scenario).""" + if renumbered_id is None: + return False + real_id = self._id_reverse_renumber(renumbered_id) + return hasattr(self.env, 'controller') and real_id in getattr( + self.env.controller, 'containers', [] + ) + + def _id_reverse_renumber(self, renumbered_id): + """Map renumbered ID back to original ID.""" + if not hasattr(self.env.controller, 'manager'): + return renumbered_id + id_map = self.env.controller.manager.id_renumbering + for orig, renum in id_map.items(): + if renum == renumbered_id: + return orig + return renumbered_id + + def _resolve_target_id(self, target): + """Resolve a target (could be renumbered or original ID).""" + if target is None: + return None + return self._id_reverse_renumber(int(target)) + + def _update_seen_objects(self, state): + """Update the list of currently visible object IDs.""" + seg_mask = state["raw"]["seg_mask"] + self.current_seen_objects_id = [ + str(x) for x in set(seg_mask.flatten()) if int(x) != 0 + ] + + def _update_object_status(self, state): + """Track per-object temperature/water_level from sensor data. + + Matches original llm.py:update_object_status() exactly. + For fire/flood: computes average log_temp from segmentation mask. + For wind: no-op. + """ + if self.scenario not in ("fire", "flood"): + return + for o_id in self.current_seen_objects_id: + obj_id = int(o_id) + obj_mask = (state["raw"]["seg_mask"] == obj_id) + if isinstance(obj_mask, np.ndarray): + temp = state["raw"]["log_temp"] * obj_mask + mask_sum = obj_mask.sum() + else: + temp = state["raw"]["log_temp"] * obj_mask.cpu().numpy() + mask_sum = obj_mask.sum().item() + if mask_sum == 0: + continue + avg_temp = float(temp.sum() / mask_sum) + if str(obj_id) not in self._env_change_record: + self._env_change_record[str(obj_id)] = [avg_temp] + else: + self._env_change_record[str(obj_id)].append(avg_temp) + + def _compute_object_distances(self, state): + """Compute per-object distances from agent on semantic map. + + Matches original llm.py:get_object_location_description(). + Returns: dict {str(obj_id): float distance} + """ + distances = {} + # Get agent position on semantic map + agent_map = state["goal_map"] + agent_points = (agent_map == -2).nonzero() + if isinstance(agent_points[0], np.ndarray): + agent_pos = (agent_points[0].astype(float).mean(), + agent_points[1].astype(float).mean()) + else: + agent_pos = (agent_points[:, 0].float().mean().item(), + agent_points[:, 1].float().mean().item()) + + id_map = state["sem_map"]["explored"] * state["sem_map"]["id"] + for obj in self.object_list: + idx = int(obj["id"]) + object_points = (id_map == idx).nonzero() + if isinstance(object_points[0], np.ndarray): + center = (object_points[0].astype(float).mean(), + object_points[1].astype(float).mean()) + else: + center = (object_points[:, 0].float().mean().item(), + object_points[:, 1].float().mean().item()) + dist = float(np.linalg.norm( + np.array([agent_pos[0] - center[0], agent_pos[1] - center[1]]) + )) + distances[str(idx)] = round(dist, 2) + return distances + + # --- Available plans --- + + def _get_available_plans(self): + """Compute available plans for the current state. + + Reference: HAZARD/src/HAZARD/policy/llm.py:get_available_plans() + Returns: (plan_descriptions: list[str], plan_actions: list[tuple]) + """ + plans = [] + actions = [] + + # Build object list from explored objects + state = self.env.controller._obs() + explored = state["sem_map"]["explored"] * state["sem_map"]["id"] + explored_ids = [int(idx) for idx in set(explored.flatten()) if int(idx) != 0] + + object_list = [] + for idx in explored_ids: + real_id = self._id_reverse_renumber(idx) + name = self.env.controller.manager.segm.names.get(real_id, "unknown") + category = self.env.controller.manager.segm.categories.get(real_id, "unknown") + object_list.append({"name": name, "category": category, "id": str(idx)}) + self.object_list = object_list + + if not self.holding_object: + # Can walk to target objects + for obj in object_list: + if obj["category"] not in self.target_categories: + continue + if int(obj["id"]) in self.have_finished_list: + continue + plans.append(f"go pick up object <{obj['category']}> ({obj['id']})") + actions.append(("walk_to", obj["id"])) + else: + # Can drop or walk to container + if self.scenario == "wind": + for obj in object_list: + if obj["category"] != "shopping cart": + continue + plans.append(f"go put object into <{obj['category']}> ({obj['id']})") + actions.append(("walk_to", obj["id"])) + else: + plans.append("put the holding object in my bag") + actions.append(("drop", None)) + + # Explore option (if last action wasn't "look around") + # Matches original: self.action_history[-1] != 'look around' + if (not self._action_history + or self._action_history[-1][0] != "look around"): + plans.append("look around") + actions.append(("explore", None)) + + # Fallback: walk to any visible object + if not actions: + for obj in object_list: + plans.append(f"go to object <{obj['category']}> ({obj['id']})") + actions.append(("walk_to", obj["id"])) + + if not actions: + plans.append("look around") + actions.append(("explore", None)) + + # Limit to 10 options + plans = plans[:10] + actions = actions[:10] + + return plans, [list(a) for a in actions] + + # --- Scoring (HAZARD paper: Value + Damage) --- + + def _compute_scores(self): + """Compute Value and Damage metrics per HAZARD paper. + + Reference: HAZARD/src/HAZARD/utils/calc_value.py + + Returns: (value_score, max_value, rescued_count, damaged_count) + - value_score: sum(base_value * discount) for rescued objects + where discount=1.0 if undamaged, 0.5 if damaged + - max_value: sum(base_value) for all target objects + - rescued_count: number of objects successfully rescued + - damaged_count: number of rescued objects that were damaged + """ + value_dict = self._load_value_dict() + value_score = 0.0 + max_value = 0.0 + rescued_count = 0 + damaged_count = 0 + + for target_id in self.target_status: + # Get object name/category for value lookup + name = self.env.controller.target_id2name.get(target_id, "unknown") + base_value = HIGH_VALUE if value_dict.get(name) == 1 else LOW_VALUE + max_value += base_value + + if not self.target_status[target_id]: + continue # Not rescued + + rescued_count += 1 + + # Compute discount based on object state at time of rescue + discount = self._get_damage_discount(target_id) + value_score += base_value * discount + + if discount < 0.6: # damaged (discount == 0.5) + damaged_count += 1 + + return value_score, max_value, rescued_count, damaged_count + + def _get_damage_discount(self, target_id): + """Get damage discount for a rescued object. + + Returns 1.0 if undamaged, 0.5 if damaged. + + Reference: HAZARD/src/HAZARD/utils/calc_value.py:get_values() + """ + if self.scenario == "fire": + from HAZARD.envs.fire.fire_utils import ObjectState as FireObjectState + obj = self.env.controller.manager.objects.get(target_id) + if obj and obj.state == FireObjectState.NORMAL: + return 1.0 + return 0.5 + elif self.scenario == "flood": + from HAZARD.envs.flood.utils import ObjectState as FloodObjectState + obj = self.env.controller.manager.objects.get(target_id) + if obj is None: + return 1.0 + # Check waterproof + name = self.env.controller.target_id2name.get(target_id, "") + fluid_dict = self._load_fluid_dict() + if fluid_dict.get(name, 0) == 1: + return 1.0 # Waterproof -> always full value + if obj.state in (FloodObjectState.NORMAL, FloodObjectState.FLOATING): + return 1.0 + return 0.5 + else: + # Wind: no damage mechanic + return 1.0 + + def _load_value_dict(self): + """Load object value metadata (cached).""" + if not hasattr(self, '_value_dict_cache'): + config_path = Path(__file__).parent / "config" / "value.json" + self._value_dict_cache = json.loads(config_path.read_text()) + return self._value_dict_cache + + def _load_fluid_dict(self): + """Load waterproof metadata (cached).""" + if not hasattr(self, '_fluid_dict_cache'): + config_path = Path(__file__).parent / "config" / "fluid.json" + self._fluid_dict_cache = json.loads(config_path.read_text()) + return self._fluid_dict_cache + + # --- Action parsing --- + + def _parse_action(self, action_text): + """Parse LLM's action text into (action_tuple, matched_plan_text). + + Uses CACHED plans from the previous step (what the LLM actually saw), + not freshly recomputed plans (which may have changed due to state drift). + + Returns: (action_tuple, matched_plan_text) or (None, None) + """ + if not action_text: + return None, None + + # Match against cached plans (what the LLM was shown) + available_plans = self._cached_plans + plan_actions = self._cached_plan_actions + + if not available_plans: + # First step or no cached plans -- keyword fallback only + return self._keyword_fallback(action_text) + + # Exact match + for i, plan in enumerate(available_plans): + if plan == action_text: + return tuple(plan_actions[i]), plan + + # Option letter match (A, B, C, ...) + text = action_text.strip() + for i, plan in enumerate(available_plans): + option = chr(ord('A') + i) + if (text == option or text == f"Option {option}" or text == f"{option}." + or f"option {option}" in text.lower()): + return tuple(plan_actions[i]), plan + + # Fuzzy match: check if action text contains plan keywords + for i, plan in enumerate(available_plans): + if plan.lower() in action_text.lower(): + return tuple(plan_actions[i]), plan + + # Keyword-based fallback + return self._keyword_fallback(action_text) + + def _keyword_fallback(self, action_text): + """Fallback parsing when no cached plan matches. + + Returns: (action_tuple, plan_text) or (None, None) + """ + import re + + lower = action_text.lower() + if "look around" in lower or "explore" in lower: + return ("explore", None), "look around" + if "put" in lower and "bag" in lower: + return ("drop", None), "put the holding object in my bag" + if "pick" in lower: + id_match = re.search(r'\((\d+)\)', action_text) + if id_match: + return ("walk_to", id_match.group(1)), action_text + if "go" in lower or "walk" in lower: + id_match = re.search(r'\((\d+)\)', action_text) + if id_match: + return ("walk_to", id_match.group(1)), action_text + + return None, None + + # --- Observation wrapping --- + + def _wrap_obs(self, state, is_reset=False): + """Wrap HAZARD state dict into a simple obs dict for BaseBridge.""" + rgb = state["raw"]["rgb"] # (3, H, W) float32 0-1 + rgb_array = (rgb.transpose(1, 2, 0) * 255).astype(np.uint8) + return {"rgb_array": rgb_array} + + +if __name__ == "__main__": + HAZARDBridge.main() diff --git a/easi/tasks/hazard/config/fire.json b/easi/tasks/hazard/config/fire.json new file mode 100644 index 0000000..9beaaf1 --- /dev/null +++ b/easi/tasks/hazard/config/fire.json @@ -0,0 +1,35 @@ +{ + "shirt button": 1, + "bowl": 1, + "book": 1, + "bee": 1, + "throw pillow": 1, + "bag, handbag, pocketbook, purse": 1, + "suitcase": 1, + "backpack": 1, + "ipod": 0, + "vacuum cleaner": 0, + "printer": 0, + "coffee maker": 0, + "lighter": 0, + "key": 0, + "camera": 0, + "pliers": 0, + "bottle": 0, + "candle": 1, + "coffee grinder": 0, + "bottle cork": 1, + "soda can": 0, + "box": 1, + "basket": 0, + "fire extinguisher": 0, + "skate": 0, + "hairbrush": 1, + "toothbrush": 0, + "banana": 1, + "pen": 0, + "chocolate candy": 1, + "pan": 0, + "plate": 0, + "apple": 1 +} \ No newline at end of file diff --git a/easi/tasks/hazard/config/fluid.json b/easi/tasks/hazard/config/fluid.json new file mode 100644 index 0000000..ca1b6e6 --- /dev/null +++ b/easi/tasks/hazard/config/fluid.json @@ -0,0 +1,35 @@ +{ + "shirt button": 1, + "bowl": 1, + "book": 0, + "bee": 0, + "throw pillow": 0, + "bag, handbag, pocketbook, purse": 0, + "suitcase": 0, + "backpack": 0, + "ipod": 0, + "vacuum cleaner": 0, + "printer": 0, + "coffee maker": 1, + "lighter": 0, + "key": 1, + "camera": 0, + "pliers": 1, + "bottle": 1, + "candle": 1, + "coffee grinder": 1, + "bottle cork": 0, + "soda can": 1, + "box": 0, + "basket": 1, + "fire extinguisher": 1, + "skate": 1, + "hairbrush": 1, + "toothbrush": 1, + "banana": 1, + "pen": 1, + "chocolate candy": 0, + "pan": 1, + "plate": 1, + "apple": 1 +} diff --git a/easi/tasks/hazard/config/prompts.csv b/easi/tasks/hazard/config/prompts.csv new file mode 100644 index 0000000..96fb5e8 --- /dev/null +++ b/easi/tasks/hazard/config/prompts.csv @@ -0,0 +1,37 @@ +type,prompt +fire,"Suppose I am wearing fireproof suits and my house is on fire. I want to save as many valuable target objects as possible by picking them up and putting them into my bag. Given the current state and my previous actions, please help me choose the best available action to save as many valuable target objects as possible. All objects are denoted as (id), such as (712), and different objects have different values. Note objects lose their value once they start burning. The status of the objects previously seen may not be accurate any more. The final score is measured by the total value of the target objects I saved successfully. +Target objects: +$TARGET_OBJECTS$ +Current State: +$STATE$ +Previous actions: +$ACTION_HISTORY$ +Objects states history: +$OBJECT_HISTORY$ +Available actions: +$AVAILABLE_ACTIONS$ +Answer:" +flood,"My house is flooding now, I want to save as many valuable target objects as possible by picking them up and putting them into my bag. Given the current state and my previous actions, please help me choose the best available action to save as many valuable target objects as possible. All objects are denoted as (id), such as
        (712), and different objects have different values. Note a non-waterproof object loses its value if it becomes submerged by the flood. The status of the objects previously seen may not be accurate any more. The final score is measured by the total value of target objects I saved successfully. +Target objects: +$TARGET_OBJECTS$ +Current State: +$STATE$ +Previous actions: +$ACTION_HISTORY$ +Objects states history: +$OBJECT_HISTORY$ +Available actions: +$AVAILABLE_ACTIONS$ +Answer:" +wind,"I'm in an outdoor scene where an intense and turbulent wind is going on. I want to save as many valuable target objects as possible by picking them up and putting into some fixed shopping carts. Given current state, and my previous actions, please help me choose the best available action to save as many valuable target objects as possible. All objects are denoted as (id), such as
        (712), and different objects have different values. Note all objects except shopping carts are moved by powerful wind forces every step and different objects may have different level of resistence to the wind forces. The distance from the objects previously seen may not be accurate any more. I should reason about the unknown object status to make the best decision. The final score is measured by the total value of target objects I put into shopping carts successfully. +Target objects: +$TARGET_OBJECTS$ +Current State: +$STATE$ +Previous actions: +$ACTION_HISTORY$ +Objects states history: +$OBJECT_HISTORY$ +Available actions: +$AVAILABLE_ACTIONS$ +Answer:" \ No newline at end of file diff --git a/easi/tasks/hazard/config/value.json b/easi/tasks/hazard/config/value.json new file mode 100644 index 0000000..ca6f491 --- /dev/null +++ b/easi/tasks/hazard/config/value.json @@ -0,0 +1,37 @@ +{ + "shirt button": 0, + "bowl": 0, + "book": 1, + "bee": 0, + "throw pillow": 0, + "bag, handbag, pocketbook, purse": 1, + "suitcase": 1, + "backpack": 1, + "ipod": 1, + "vacuum cleaner": 1, + "printer": 1, + "coffee maker": 0, + "lighter": 0, + "key": 0, + "camera": 1, + "pliers": 0, + "bottle": 0, + "candle": 0, + "coffee grinder": 1, + "bottle cork": 0, + "soda can": 0, + "box": 0, + "basket": 0, + "fire extinguisher": 1, + "skate": 1, + "hairbrush": 0, + "toothbrush": 0, + "banana": 0, + "pen": 0, + "chocolate candy": 1, + "pan": 0, + "plate": 1, + "apple": 0, + "money": 1, + "headphone": 1 +} \ No newline at end of file diff --git a/easi/tasks/hazard/hazard_fire.yaml b/easi/tasks/hazard/hazard_fire.yaml new file mode 100644 index 0000000..408e438 --- /dev/null +++ b/easi/tasks/hazard/hazard_fire.yaml @@ -0,0 +1,15 @@ +extends: _base.yaml +name: hazard_fire +display_name: "HAZARD Fire" +description: "HAZARD fire scenario - rescue objects from a burning house" +scenario: fire +max_steps: 1500 +dataset: + subset: "fire" + split: "test" +simulator_configs: + scenario: fire + max_steps: 1500 +agent: + prompt_builder_kwargs: + scenario: fire diff --git a/easi/tasks/hazard/hazard_flood.yaml b/easi/tasks/hazard/hazard_flood.yaml new file mode 100644 index 0000000..f129054 --- /dev/null +++ b/easi/tasks/hazard/hazard_flood.yaml @@ -0,0 +1,15 @@ +extends: _base.yaml +name: hazard_flood +display_name: "HAZARD Flood" +description: "HAZARD flood scenario - rescue objects from a flooding house" +scenario: flood +max_steps: 1500 +dataset: + subset: "flood" + split: "test" +simulator_configs: + scenario: flood + max_steps: 1500 +agent: + prompt_builder_kwargs: + scenario: flood diff --git a/easi/tasks/hazard/hazard_wind.yaml b/easi/tasks/hazard/hazard_wind.yaml new file mode 100644 index 0000000..443d7f4 --- /dev/null +++ b/easi/tasks/hazard/hazard_wind.yaml @@ -0,0 +1,15 @@ +extends: _base.yaml +name: hazard_wind +display_name: "HAZARD Wind" +description: "HAZARD wind scenario - rescue objects from wind by putting them into shopping carts" +scenario: wind +max_steps: 3000 +dataset: + subset: "wind" + split: "test" +simulator_configs: + scenario: wind + max_steps: 3000 +agent: + prompt_builder_kwargs: + scenario: wind diff --git a/easi/tasks/hazard/prompts.py b/easi/tasks/hazard/prompts.py new file mode 100644 index 0000000..3062aba --- /dev/null +++ b/easi/tasks/hazard/prompts.py @@ -0,0 +1,319 @@ +"""HAZARD prompt builder matching original HAZARD LLM agent. + +Reference: HAZARD/src/HAZARD/policy/llm.py + HAZARD/src/HAZARD/policy/llm_configs/prompt_v2.csv +""" +from __future__ import annotations + +import csv +import json +import math +from pathlib import Path + +from easi.agents.prompt_builder import _encode_image_base64 +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +_CONFIG_DIR = Path(__file__).parent / "config" + + +def _load_prompt_templates() -> dict[str, str]: + """Load scenario-specific prompt templates from vendored CSV.""" + templates = {} + csv_path = _CONFIG_DIR / "prompts.csv" + with open(csv_path, "r") as f: + reader = csv.DictReader(f) + for row in reader: + templates[row["type"]] = row["prompt"] + return templates + + +class HAZARDPromptBuilder: + """Prompt builder for HAZARD benchmark. + + Constructs HAZARD-style prompts with: + - Scenario-specific preamble (fire/flood/wind) + - Target object descriptions with values and attributes + - Current state (visible objects with distances and hazard info) + - Action history with results + - Dynamic multiple-choice action options + """ + + def __init__( + self, + scenario: str = "fire", + cot: bool = False, + ): + self.scenario = scenario + self.cot = cot + self._templates = _load_prompt_templates() + self._value_dict = json.loads((_CONFIG_DIR / "value.json").read_text()) + self._fire_dict = json.loads((_CONFIG_DIR / "fire.json").read_text()) + self._fluid_dict = json.loads((_CONFIG_DIR / "fluid.json").read_text()) + + def set_action_space(self, actions: list[str]) -> None: + """No-op -- HAZARD uses dynamic action space from bridge metadata.""" + pass + + def build_messages(self, memory: AgentMemory) -> list[dict]: + """Build HAZARD-style prompt from memory state.""" + # Get current observation info + obs = memory.current_observation + info = obs.metadata if obs else {} + + # Parse bridge metadata + available_plans = json.loads(info.get("available_plans", "[]")) + + # Build target objects description + target_desc = self._build_target_description(memory) + + # Build state description + state_desc = self._build_state_description(info) + + # Build action history (from memory, matching original format) + history_desc = self._build_action_history(memory) + + # Build object state history (empty -- original bug, see docstring) + object_history = self._build_object_state_history() + + # Build available actions + actions_desc = self._build_available_actions(available_plans) + + # Construct full prompt from template + template = self._templates.get(self.scenario, self._templates.get("fire", "")) + prompt = template + prompt = prompt.replace("$TARGET_OBJECTS$", target_desc + "\n") + prompt = prompt.replace("$STATE$", state_desc) + prompt = prompt.replace("$ACTION_HISTORY$", history_desc + "\n") + prompt = prompt.replace("$OBJECT_HISTORY$", object_history + "\n") + prompt = prompt.replace("$AVAILABLE_ACTIONS$", actions_desc) + + if self.cot: + prompt += " Let's think step by step." + + # Build messages + content_parts = [] + + # Add image if available + if obs and obs.rgb_path: + image_url = _encode_image_base64(obs.rgb_path) + if image_url: + content_parts.append({ + "type": "image_url", + "image_url": {"url": image_url}, + }) + + content_parts.append({"type": "text", "text": prompt}) + + return [{"role": "user", "content": content_parts}] + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response to extract selected action. + + The LLM should respond with an option letter (A, B, C, ...) or + the full action text. We parse this against the available plans. + """ + obs = memory.current_observation + info = obs.metadata if obs else {} + available_plans = json.loads(info.get("available_plans", "[]")) + + if not available_plans: + return [] + + # Find selected plan + selected = self._match_response(llm_response.strip(), available_plans) + + if selected is not None: + return [Action(action_name=selected)] + + # Fallback: couldn't parse -> explore + logger.warning("Could not parse HAZARD response: %s", llm_response[:100]) + return [Action(action_name="look around")] + + def _match_response(self, text: str, available_plans: list[str]) -> str | None: + """Match LLM response text to one of the available plans. + + Reference: HAZARD/src/HAZARD/policy/llm.py:parse_answer() + """ + # Exact match + for plan in available_plans: + if plan in text: + return plan + + # Option letter match + for i, plan in enumerate(available_plans): + option = chr(ord('A') + i) + if (f"option {option}" in text.lower() + or f"{option}." in text.split() + or f"({option})" in text + or f"Option {option}" in text + or (len(text) <= 2 and option in text)): + return plan + + # Fuzzy match by keywords + for plan in available_plans: + if "pick up" in plan and "pick" in text.lower(): + return plan + if "put" in plan and "put" in text.lower(): + return plan + if "look around" in plan and ("look" in text.lower() or "explore" in text.lower()): + return plan + + # Single letter match + if len(text) == 1 and text.isalpha(): + idx = ord(text.upper()) - ord('A') + if 0 <= idx < len(available_plans): + return available_plans[idx] + + return None + + # --- Description builders --- + + def _build_target_description(self, memory: AgentMemory) -> str: + """Build target objects description with values and attributes. + + Matches original llm.py:objects_list2text() exactly: + - Value: raw numeric (5 or 1) + - Attribute: "waterproof"/"non-waterproof" for flood, "None" otherwise + """ + obs = memory.current_observation + info = obs.metadata if obs else {} + + target_cats = json.loads(info.get("target_categories", "[]")) + if not target_cats: + return "No target information available." + + lines = [] + for category in target_cats: + # Raw numeric value matching challenge.py:get_target_info() + value = 5 if self._value_dict.get(category) == 1 else 1 + # Only flood shows waterproof attribute; fire/wind show "None" + if self.scenario == "flood": + wp = self._fluid_dict.get(category, 0) + attr = "waterproof" if wp == 1 else "non-waterproof" + else: + attr = "None" + lines.append(f"name: {category}, value: {str(value)}, attribute: {attr}") + + return "\n".join(lines) + + def _build_state_description(self, info: dict) -> str: + """Build current state description matching llm.py:progress2text(). + + Format: + [Wind only] Shopping carts already found: + Target objects currently seen: + name: {cat}, id: {id}, value: {val}, distance: {d} m, temperature/water_level/status + Target objects previously seen: + [same format for objects not currently visible] + """ + object_list = json.loads(info.get("object_list", "[]")) + seen_ids = json.loads(info.get("current_seen_objects_id", "[]")) + distances = json.loads(info.get("object_distances", "{}")) + env_record = json.loads(info.get("env_change_record", "{}")) + target_cats = json.loads(info.get("target_categories", "[]")) + + ps = "" + + # Wind: shopping carts first + if self.scenario == "wind": + ps += "Shopping carts already found:\n" + for obj in object_list: + if obj["category"] != "shopping cart": + continue + dist = distances.get(obj["id"], "?") + ps += f"name: {obj['category']}, id: {obj['id']}, distance: {dist} m\n" + + # Target objects currently seen + ps += "Target objects currently seen:\n" + for obj in object_list: + if obj["category"] not in target_cats or obj["id"] not in seen_ids: + continue + value = 5 if self._value_dict.get(obj["category"]) == 1 else 1 + dist = distances.get(obj["id"], "?") + ps += f"name: {obj['category']}, id: {obj['id']}, value: {value}, distance: {dist} m, " + ps += self._format_hazard_info(obj["id"], env_record) + + # Target objects previously seen + ps += "Target objects previously seen:\n" + for obj in object_list: + if obj["category"] not in target_cats or obj["id"] in seen_ids: + continue + value = 5 if self._value_dict.get(obj["category"]) == 1 else 1 + dist = distances.get(obj["id"], "?") + ps += f"name: {obj['category']}, id: {obj['id']}, value: {value}, distance: {dist} m, " + ps += self._format_hazard_info(obj["id"], env_record) + + return ps + + def _format_hazard_info(self, obj_id: str, env_record: dict) -> str: + """Format per-object hazard info (temperature/water_level/status). + + Matches original progress2text() per-object suffix. + Fire: temperature in Celsius (exp of log_temp), or "unknown" + Flood: water level in meters, or "unknown" + Wind: status "Unknown" + """ + if self.scenario == "fire": + if obj_id in env_record: + temp = round(math.exp(env_record[obj_id]), 2) + return f"temperature: {temp} Celsius\n" + return "temperature: unknown\n" + elif self.scenario == "flood": + if obj_id in env_record: + level = round(env_record[obj_id], 2) + return f"water level: {level} m\n" + return "water level: unknown\n" + else: + return "status: Unknown\n" + + def _build_action_history(self, memory: AgentMemory) -> str: + """Build action history string matching llm.py format. + + Format: "plan_text (result_desc), plan_text (result_desc)" + Where result_desc = "success" / "paused after taking 100 steps" / "fail, because {info}" + Uses last 10 entries. Reads from memory.action_history. + """ + action_history = memory.action_history # list of (action_name, feedback) + if not action_history: + return "" + + entries = [] + for action_name, feedback in action_history[-10:]: + result_desc = self._action_result_to_description(feedback) + entries.append(f"{action_name} ({result_desc})") + return ", ".join(entries) + + @staticmethod + def _action_result_to_description(feedback: str) -> str: + """Convert feedback to result description matching llm.py. + + Reference: llm.py:action_result_to_description() + """ + if not feedback: + return "success" + lower = feedback.lower() + if "success" in lower: + return "success" + if "max steps reached" in lower: + return "paused after taking 100 steps" + return f"fail, because {feedback}" + + def _build_object_state_history(self) -> str: + """Build object state history section. + + NOTE: In the original llm.py:run(), $OBJECT_HISTORY$ is never replaced + -- it remains as literal text in the prompt. This is a bug in the original. + We replicate by returning empty string (slightly better than literal placeholder). + """ + return "" + + def _build_available_actions(self, plans: list[str]) -> str: + """Format available plans as lettered options.""" + lines = [] + for i, plan in enumerate(plans): + lines.append(f"{chr(ord('A') + i)}. {plan}") + return "\n".join(lines) + "\n" diff --git a/easi/tasks/hazard/task.py b/easi/tasks/hazard/task.py new file mode 100644 index 0000000..7a38718 --- /dev/null +++ b/easi/tasks/hazard/task.py @@ -0,0 +1,239 @@ +"""HAZARD task for EASI. + +Adapts the HAZARD benchmark (fire/flood/wind disaster rescue) to EASI's +task interface. Supports 3 scenarios via per-scenario YAML configs. + +Episode data flows from HF dataset -> task.format_reset_config() -> bridge +-> HAZARD env (via LogPlayback scene reconstruction). + +Scoring: value_saved / max_possible_value. +""" +from __future__ import annotations + +import json +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.hazard.actions import get_action_space, HIGH_VALUE, LOW_VALUE +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Load vendored metadata for scoring +_CONFIG_DIR = Path(__file__).parent / "config" + + +def _load_json(name: str) -> dict: + return json.loads((_CONFIG_DIR / name).read_text()) + + +class HAZARDTask(BaseTask): + + def __init__(self, data_dir=None, split_yaml_path=None): + super().__init__(data_dir=data_dir, split_yaml_path=split_yaml_path) + self._scenario = self._config.get("scenario", "fire") + self._value_dict = _load_json("value.json") + self._fire_dict = _load_json("fire.json") + self._fluid_dict = _load_json("fluid.json") + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "hazard_fire.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def format_reset_config(self, episode: dict) -> dict: + """Map HAZARD HF row to bridge reset config. + + Computes absolute path to episode's source directory + (extracted from simulator_data.zip in the HF dataset). + """ + data_dir = episode.get("_data_dir", "") + source_dir = episode["source_dir"] + # simulator_data.zip extracts to simulator_data/ within data_dir + absolute_source = str(Path(data_dir) / "simulator_data" / source_dir) + + # Parse JSON string fields + hazard_params = episode.get("hazard_params", "{}") + if isinstance(hazard_params, str): + hazard_params = json.loads(hazard_params) + + objects = episode.get("objects", "[]") + if isinstance(objects, str): + objects = json.loads(objects) + + return { + "episode_id": episode.get("episode_id", str(episode.get("id", "unknown"))), + "source_dir": absolute_source, + "scene_name": episode["scene_name"], + "instruction": episode["instruction"], + "task": episode["task"], + "target_categories": episode["target_categories"], + "target_object_ids": episode["target_object_ids"], + "agent_position": episode["agent_position"], + "hazard_params": hazard_params, + "containers": episode.get("containers", []), + "objects": objects, + "max_steps": episode.get("max_steps", self.max_steps), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Compute HAZARD metrics from trajectory. + + Two primary metrics from the HAZARD paper (ICLR 2024): + 1. Value (Average Value Rate): sum(base_value * discount) / sum(all_target_values) + - discount = 1.0 if object undamaged, 0.5 if damaged at rescue time + 2. Damage (Damage Rate): count(rescued_damaged) / count(total_rescued) + - Lower is better. What fraction of rescued objects were already degraded. + + The bridge reports per-step: value_score, max_value, rescued_count, damaged_count. + """ + if not trajectory: + return { + "value_score": 0.0, + "max_value": self._compute_max_value(episode), + "value_rate": 0.0, + "damage_rate": 0.0, + "rescued_count": 0.0, + "damaged_count": 0.0, + "targets_rescued": 0.0, + "targets_total": float(len(episode.get("target_object_ids", []))), + "num_steps": 0.0, + "max_rescue_frame": 0.0, + } + + last_step = trajectory[-1] + value_score = float(last_step.info.get("value_score", 0.0)) + max_value = float(last_step.info.get("max_value", 0.0)) or self._compute_max_value(episode) + rescued_count = float(last_step.info.get("rescued_count", 0.0)) + damaged_count = float(last_step.info.get("damaged_count", 0.0)) + + # Value rate: weighted fraction of value saved (paper metric "Value") + value_rate = value_score / max(max_value, 1.0) + + # Damage rate: fraction of rescued objects that were damaged (paper metric "Damage") + damage_rate = damaged_count / max(rescued_count, 1.0) + + # Max rescue frame: latest frame at which any target was rescued + # Used for paper "Step" metric (sum_max_rescue_frame / sum_rescued) + # Bridge computes this as max(target_status.values()) -- the actual + # latest rescue frame, NOT the total episode frame count. + max_rescue_frame = float(last_step.info.get("max_rescue_frame", 0.0)) + + return { + "value_score": value_score, + "max_value": max_value, + "value_rate": value_rate, # Paper "Value" metric + "damage_rate": damage_rate, # Paper "Damage" metric (lower = better) + "rescued_count": rescued_count, + "damaged_count": damaged_count, + "targets_rescued": float(last_step.info.get("targets_rescued", 0.0)), + "targets_total": float(last_step.info.get("targets_total", 0.0)), + "num_steps": float(len(trajectory)), + "max_rescue_frame": max_rescue_frame, # For paper "Step" metric + } + + def aggregate_results( + self, records: list[EpisodeRecord] + ) -> dict[str, float]: + """HAZARD-specific aggregation matching the paper's three metrics. + + From HAZARD paper (ICLR 2024) and calc_value.py: + - Value (Avg Value Rate): average of per-episode value_rate + - Damage (Damage Rate): cumulative damaged/rescued across ALL episodes + - Step (Avg Step): sum(max_rescue_frame) / sum(rescued) across ALL episodes + """ + if not records: + return { + "value_rate": 0.0, + "damage_rate": 0.0, + "avg_step": 0.0, + "avg_llm_steps": 0.0, + "num_episodes": 0.0, + } + + n = len(records) + + # Value: average per-episode value_rate (paper "Average value rate") + value_rates = [r.episode_results.get("value_rate", 0.0) for r in records] + avg_value_rate = sum(value_rates) / n + + # Damage: cumulative across all episodes (paper "Damage rate") + total_rescued = sum(r.episode_results.get("rescued_count", 0.0) for r in records) + total_damaged = sum(r.episode_results.get("damaged_count", 0.0) for r in records) + damage_rate = total_damaged / max(total_rescued, 1.0) + + # Step (paper metric): sum(max_rescue_frame) / sum(rescued) across ALL episodes + # This matches calc_value.py: "Average step" = sum_step / sum_picked + # where step = max rescue frame per episode (latest frame at which a target was rescued) + total_max_rescue_frame = sum( + r.episode_results.get("max_rescue_frame", 0.0) for r in records + ) + avg_step = total_max_rescue_frame / max(total_rescued, 1.0) + + # Also report avg LLM steps (EASI-native metric, more interpretable) + avg_llm_steps = sum(r.episode_results.get("num_steps", 0.0) for r in records) / n + + return { + # Paper primary metrics + "value_rate": avg_value_rate, # Paper "Value" -- higher is better + "damage_rate": damage_rate, # Paper "Damage" -- lower is better + "avg_step": avg_step, # Paper "Step" -- lower is better + # EASI metric + "avg_llm_steps": avg_llm_steps, # Average LLM decisions per episode + # Supporting detail + "avg_value_score": sum(r.episode_results.get("value_score", 0.0) for r in records) / n, + "avg_max_value": sum(r.episode_results.get("max_value", 0.0) for r in records) / n, + "total_rescued": total_rescued, + "total_damaged": total_damaged, + "avg_targets_rescued": sum(r.episode_results.get("targets_rescued", 0.0) for r in records) / n, + "avg_targets_total": sum(r.episode_results.get("targets_total", 0.0) for r in records) / n, + "num_episodes": float(n), + } + + def _compute_max_value(self, episode: dict) -> float: + """Compute maximum possible value for an episode's targets.""" + target_categories = episode.get("target_categories", []) + # Count number of target object IDs per category + total = 0.0 + for category in target_categories: + value = HIGH_VALUE if self._value_dict.get(category) == 1 else LOW_VALUE + # Count how many target objects of this category + # (approximation -- each target ID is one object) + total += value + # More precise: count by target_object_ids + n_targets = len(episode.get("target_object_ids", [])) + if n_targets > 0 and target_categories: + # Rough: average value * count + avg_value = total / len(target_categories) if target_categories else LOW_VALUE + total = avg_value * n_targets + return total + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download.""" + return [ + { + "id": 0, + "episode_id": "test_episode_0", + "task": "fire", + "instruction": "Rescue the following objects from the fire: hairbrush.", + "scene_name": "mm_kitchen_3a", + "agent_position": [-0.25, 0.0, 0.75], + "target_categories": ["hairbrush"], + "target_object_ids": [8265913], + "hazard_params": '{"fire_positions": [[0.5, 0.0, 2.25]]}', + "containers": [], + "objects": '[]', + "max_steps": 1500, + "source_dir": "room_setup_fire/test_set/mm_kitchen_3a-1", + }, + ] diff --git a/easi/tasks/hazard/vendor/HAZARD/__init__.py b/easi/tasks/hazard/vendor/HAZARD/__init__.py new file mode 100644 index 0000000..b1416bc --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/__init__.py @@ -0,0 +1,2 @@ +# Vendored HAZARD source (minimal subset for easi bridge). +# Original __init__.py imported run_experiments which cascades into all envs. diff --git a/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories.txt b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories.txt new file mode 100644 index 0000000..156ae96 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories.txt @@ -0,0 +1 @@ +['apple', 'backpack', 'bag, handbag, pocketbook, purse', 'banana', 'basket', 'book', 'bookshelf', 'bottle', 'bottle cork', 'bowl', 'box', 'bread', 'cabinet', 'camera', 'candle', 'carving fork', 'chair', 'chocolate candy', 'coaster', 'coffee grinder', 'coffee maker', 'coin', 'cup', 'dining table', 'dishwasher', 'fork', 'gas cooker', 'hairbrush', 'headphone', 'houseplant', 'ipod', 'jar', 'jug', 'key', 'kitchen utensil', 'knife', 'lighter', 'microwave', 'microwave, microwave oven', 'money', 'orange', 'painting', 'pan', 'pen', 'pepper mill, pepper grinder', 'picture', 'plate', 'pot', 'printer', 'radiator', 'saltshaker, salt shaker', 'sandwich', 'scissors', 'shelf', 'shirt button', 'shopping cart', 'soap dispenser', 'soda can', 'spoon', 'stool', 'suitcase', 'table', 'teakettle', 'throw pillow', 'toaster', 'toothbrush', 'vase', 'water faucet', 'wineglass'] \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories_new.txt b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories_new.txt new file mode 100644 index 0000000..2c432e8 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/categories_new.txt @@ -0,0 +1 @@ +['apple', 'backpack', 'bag, handbag, pocketbook, purse', 'banana', 'basket', 'book', 'bookshelf', 'bottle', 'bottle cork', 'bowl', 'box', 'bread', 'cabinet', 'camera', 'candle', 'carving fork', 'chair', 'chocolate candy', 'coaster', 'coffee grinder', 'coffee maker', 'coin', 'cup', 'dining table', 'dishwasher', 'fork', 'gas cooker', 'hairbrush', 'headphone', 'houseplant', 'ipod', 'jar', 'jug', 'key', 'kitchen utensil', 'knife', 'lighter', 'microwave', 'microwave, microwave oven', 'money', 'orange', 'painting', 'pan', 'pen', 'pepper mill, pepper grinder', 'picture', 'plate', 'pot', 'printer', 'radiator', 'saltshaker, salt shaker', 'sandwich', 'scissors', 'shelf', 'shirt button', 'shopping cart', 'soap dispenser', 'soda can', 'spoon', 'stool', 'suitcase', 'table', 'teakettle', 'throw pillow', 'toaster', 'toothbrush', 'vase', 'water faucet', 'wineglass', 'laptop, laptop computer', 'trophy', 'beverage', 'empty'] \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/__init__.py b/easi/tasks/hazard/vendor/HAZARD/envs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/__init__.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/__init__.py new file mode 100644 index 0000000..2ba5d81 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/__init__.py @@ -0,0 +1,9 @@ +from .fireagent_controller import FireAgentController +from .fire_gym import FireEnv + +from gym.envs.registration import register + +register( + id="fire-v0", + entry_point="envs.fire.fire_gym:FireEnv" +) diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/agent.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/agent.py new file mode 100644 index 0000000..fafef2e --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/agent.py @@ -0,0 +1,311 @@ +from typing import Optional, Union, List +from tdw.add_ons.replicant import * +from tdw.quaternion_utils import QuaternionUtils +from tdw.replicant.actions.action import Action, ActionStatus +from tdw.replicant.actions.look_at import LookAt +from tdw.replicant.actions.grasp import Grasp +from tdw.replicant.actions.reset_arm import ResetArm +from tdw.replicant.image_frequency import ImageFrequency + +from .fire_utils import * + +import numpy as np + +class HoldStill(Action): + def __init__(self, duration: int): + self.image_frequency = ImageFrequency.once + self.duration = duration + self.counter = 0 + super().__init__() + + def get_initialization_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + self.counter = 0 + self.status = ActionStatus.ongoing + return super().get_initialization_commands(resp, static, dynamic, image_frequency) + + def get_ongoing_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic) -> List[dict]: + self.counter += 1 + if self.counter >= self.duration: + self.status = ActionStatus.success + return super().get_ongoing_commands(resp, static, dynamic) + + def get_end_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + return super().get_end_commands(resp, static, dynamic, image_frequency) + +class SequentialAction(Action): + def __init__(self, actions: List[Action]): + self._actions = actions + self._current = 0 + self.status: ActionStatus = None + self.image_frequency = ImageFrequency.once + super().__init__() + + def get_initialization_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + self.image_frequency = image_frequency + self._current = 0 + + self.status = ActionStatus.ongoing + self.initialized = True + + # return super().get_initialization_commands(resp=resp, static=static, dynamic=dynamic, image_frequency=image_frequency) + return [] + + def get_ongoing_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic) -> List[dict]: + commands = [] + # for convenience, if self._current < 0, it is in the middle of two actions, wait one frame + if not self._actions[self._current].initialized: + # The action's status defaults to `ongoing`, but actions sometimes fail prior to initialization. + if self._actions[self._current].status == ActionStatus.ongoing: + # Initialize the action and get initialization commands. + self._actions[self._current].initialized = True + initialization_commands = self._actions[self._current].get_initialization_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency) + + # Most actions are `ongoing` after initialization, but they might've succeeded or failed already. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(initialization_commands) + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # Continue an ongoing action. + else: + # Get the ongoing action commands. + action_commands = self._actions[self._current].get_ongoing_commands(resp=resp, + static=static, + dynamic=dynamic) + # This is an ongoing action. Append ongoing commands. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(action_commands) + # This action is done. Append end commands. + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # This action ended. If not successful, all commands are done. Otherwise, continue to the next action. + if self._actions[self._current].status != ActionStatus.ongoing: + if self._actions[self._current].status == ActionStatus.success: + self._current += 1 + # If there are more actions, continue. + if self._current < len(self._actions): + self.status = ActionStatus.ongoing + # Otherwise, this action is done. + else: + self.status = ActionStatus.success + else: + self.status = self._actions[self._current].status + return commands + + def get_end_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, + image_frequency: ImageFrequency) -> List[dict]: + # return super().get_end_commands(resp=resp, + # static=static, + # dynamic=dynamic, + # image_frequency=image_frequency) + return [] + +""" +The poses are relative to the agent's position and rotation. +Assume the agent is facing positive z. +""" +class FireAgent(Replicant): + def __init__(self, constants=default_const, *args, **kwargs): + self.constants = constants + self.action_buffer = [] + super().__init__(*args, **kwargs) + + # define custom actions here + def pick_up(self, target: int, arm: Union[Arm, List[Arm]], + final_pose_loc: np.ndarray = np.array([0.1, 1.1, 0.6]), absolute: bool = False, + angle: Optional[float] = 90, axis: Optional[str] = "pitch") -> None: + if isinstance(arm, Arm): + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=arm, dynamic=self.dynamic, angle=angle, axis=axis, relative_to_hand=True, offset=0.0), + ReachFor(target=final_pose_loc, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + else: + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=Arm.left, dynamic=self.dynamic, angle=angle, axis=axis), + ReachFor(target=final_pose_loc, + arms=[Arm.left], + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=True, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + + def extinguish(self, target: np.ndarray, absolute: bool = False) -> None: + """ + Turn to the target position and extinguish the fire. + """ + if not absolute: + target = QuaternionUtils.multiply_by_vector(self.dynamic.transform.rotation, target) + self.dynamic.transform.position + relative_pose_loc1 = np.array([0.0, 0.8, 0.7]) + relative_pose_loc2 = np.array([0.0, 0.6, 0.7]) + if np.linalg.norm(target - self.dynamic.transform.position) > 2: + raise ValueError("Target position is too far away.") + # self.action = SequentialAction([ + # TurnTo(target=target), + # ReachFor(target=final_pose_loc1, + # arms=[Arm.left], + # dynamic=self.dynamic, + # collision_detection=self.collision_detection, + # offhand_follows=False, + # arrived_at=0.02, + # previous=None, + # duration=0.25, + # scale_duration=True, + # max_distance=1.5), + # ReachFor(target=final_pose_loc2, + # arms=[Arm.right], + # dynamic=self.dynamic, + # collision_detection=self.collision_detection, + # offhand_follows=False, + # arrived_at=0.02, + # previous=None, + # duration=0.25, + # scale_duration=True, + # max_distance=1.5), + # HoldStill(duration=self.constants.EXTINGUISH_TIME), + # ResetArm(arms=[Arm.left, Arm.right], + # dynamic=self.dynamic, + # collision_detection=self.collision_detection, + # duration=0.1, + # scale_duration=True, + # previous=None) + # ]) + self.action = SequentialAction([ + TurnTo(target=target), + ReachFor(targets=[relative_pose_loc2], + arms=[Arm.right], + absolute=False, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ReachFor(targets=[relative_pose_loc1], + arms=[Arm.left], + absolute=False, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + HoldStill(duration=self.constants.EXTINGUISH_TIME), + ResetArm(arms=[Arm.left, Arm.right], + dynamic=self.dynamic, + collision_detection=self.collision_detection, + duration=0.1, + scale_duration=True, + previous=None) + ]) + def get_facing(self): + """return a radian""" + v = QuaternionUtils.multiply_by_vector(QuaternionUtils.get_inverse(self.dynamic.transform.rotation), np.array([0, 0, 1.0])) + v = v / np.linalg.norm(v) + v = np.arctan2(v[2], v[0]) + return v + + def extinguish_indicator(self) -> Optional[List]: + """if just started extinguish action, return the index of held objects (since the agent can't know if it's holding an extinguisher)""" + + if isinstance(self.action, SequentialAction) \ + and self.action._current == len(self.action._actions) - 2 \ + and isinstance(self.action._actions[-2], HoldStill) \ + and self.action._actions[-2].counter == 1: + return list(self.dynamic.held_objects.values()) + return None + + def extinguish_target(self): + """if agent is extinguishing, return the target position""" + return self.action._actions[0]._target + + def grasp_id(self): + """ + if the agent is grasping an object, return the id of the object + otherwise, return None + """ + if isinstance(self.action, Grasp): + return self.action.target + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + return self.action._actions[self.action._current].target + return None + + def fail_grasp(self): + """ + if the agent is grasping an object and it is too far away, fail the grasp (this is controlled by the outside) + """ + if isinstance(self.action, Grasp): + self.action.status = ActionStatus.cannot_grasp + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + self.action._actions[self.action._current].status = ActionStatus.cannot_grasp + else: + raise Exception("Not grasping now") \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire.py new file mode 100644 index 0000000..14c8070 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire.py @@ -0,0 +1,237 @@ +from typing import List, Union, Dict +from tdw.controller import Controller +from tdw.output_data import OutputData, Overlap + +import numpy as np +from .manager import FireObjectManager +from .fire_utils import * +from .object import FireStatus, AgentStatus + + +def CHOUKA(T, constants=default_const): + ''' + A draw("Chou Ka") process with guarantee. + + In the first {constants.CHOUKA_THRESHOLD_PROB_INCREASE} draws, + the probability is {constants.CHOUKA_INITITIAL_PROB}. + + If failed to hit in the first {constants.CHOUKA_THRESHOLD_PROB_INCREASE} draws, + the probability will increase linearly, + until the {constants.CHOUKA_THRESHOLD_UPPER}'th times when the probability will be 1. + ''' + start_prob = constants.CHOUKA_INITITIAL_PROB + if T <= constants.CHOUKA_THRESHOLD_PROB_INCREASE: + return start_prob + else: + return min(1.0, + start_prob + + (1 - start_prob) / (constants.CHOUKA_THRESHOLD_UPPER-constants.CHOUKA_THRESHOLD_PROB_INCREASE) + * (T - constants.CHOUKA_THRESHOLD_PROB_INCREASE)) + +def box_overlap(pos1, size1, pos2, size2): + pos1 = np.array(pos1) + size1 = np.array(size1) + pos2 = np.array(pos2) + size2 = np.array(size2) + return np.all(pos1 + size1 / 2 > pos2 - size2 / 2) and np.all(pos1 - size1 / 2 < pos2 + size2 / 2) + +class Fire: + def __init__(self, fire_id, last_spread, scale, spread_dirs): + self.fire_id = fire_id + self.last_spread = last_spread + self.scale = scale + self.spread_dirs = spread_dirs + + self.extinguishing = False + +""" +This controller controls the spread of fire. +""" +class FireController(Controller): + def __init__(self, port: int = 1071, check_version: bool = True, launch_build: bool = True, seed = 0, constants = default_const, **kwargs): + self.initialized = False + self.commands: List[dict] = list() + super().__init__(port, check_version, launch_build) + + self.manager = FireObjectManager() + self.add_ons.append(self.manager) + + self.update_fire_per_frame = 10 + self.frame_count = 0 + self.fire_info: Dict[int, Fire] = dict() + self.fire_candidate = dict() + self.RNG = np.random.Generator(np.random.PCG64(seed)) + self.constants = constants + + def seed(self, seed): + self.RNG = np.random.Generator(np.random.PCG64(seed)) + + def get_unique_id(self): + while True: + idx = super().get_unique_id() + if idx not in self.manager.objects: + return idx + + def add_fire(self, position, object_id=None, scale=None): + if isinstance(position, np.ndarray): + position = position.tolist() + if scale == None: scale = self.constants.FIRE_INIT_SCALE + self.commands.append(self.get_add_visual_effect("fire", effect_id=object_id, position=position)) + self.commands.append({"$type": "scale_visual_effect", "id": object_id, "scale_factor": {"x": scale, "y": scale, "z": scale}}) + + def add_fire_floor(self, position): + if isinstance(position, np.ndarray): + position = position.tolist() + idx = self.get_unique_id() + self.add_fire(position={"x": position[0], "y": position[1], "z": position[2]}, object_id=idx) + self.manager.add_object(FireStatus(idx, constants=self.constants, position=position, size=self.constants.FIRE_SPREAD_SIZE)) + # self.fire_idx[idx] = [idx, self.frame_count, [(-1.1, 0), (1.1, 0), (0, -1.1), (0, 1.1)], self.constants.FIRE_INIT_SCALE] + self.fire_info[idx] = Fire(fire_id=idx, + last_spread=self.frame_count, + scale=self.constants.FIRE_INIT_SCALE, + spread_dirs=[(-1.1, 0), (1.1, 0), (0, -1.1), (0, 1.1)]) + + def add_fire_object(self, idx): + new_idx = self.get_unique_id() + position = self.manager.objects[idx].top() + np.array([0, 0.01, 0]) + self.add_fire(position={"x": position[0], "y": position[1], "z": position[2]}, object_id=new_idx) + self.manager.add_object(FireStatus(new_idx, constants=self.constants, position=position, size=self.constants.FIRE_SPREAD_SIZE)) + self.commands.append({"$type": "parent_visual_effect_to_object", "object_id": idx, "id": new_idx}) + # self.fire_idx[idx] = [new_idx, self.frame_count, [(-1.1, 0), (1.1, 0), (0, -1.1), (0, 1.1)], self.constants.FIRE_FINAL_SCALE] + self.fire_info[idx] = Fire(fire_id=new_idx, + last_spread=self.frame_count, + scale=self.constants.FIRE_FINAL_SCALE, + spread_dirs=[(-1.1, 0), (1.1, 0), (0, -1.1), (0, 1.1)]) + + size = self.manager.objects[idx].size + self.commands.append({"$type": "scale_visual_effect", "id": new_idx, "scale_factor": {"x": float(size[0]*0.5), "y": float(size[1]*0.5), "z": float(size[2]*0.5)}}) + + def extinguish_fire_floor(self, fire_idx): + """ + Extinguish a fire on the floor. Send fire id. + """ + self.fire_info[fire_idx].extinguishing = True + self.fire_info[fire_idx].spread_dirs = [] + self.manager.objects[fire_idx].temperature = self.constants.ROOM_TEMPERATURE + pass + + def extinguish_fire_object(self, obj_idx): + """ + Extinguish a fire on an object. Send object id, not the fire id. + """ + self.fire_info[obj_idx].extinguishing = True + self.fire_info[obj_idx].spread_dirs = [] + self.manager.objects[obj_idx].temperature = self.constants.ROOM_TEMPERATURE + self.manager.objects[obj_idx].is_heat_source = True + self.manager.objects[self.fire_info[obj_idx].fire_id].temperature = self.constants.ROOM_TEMPERATURE + pass + + def add_agent(self, idx, pos): + self.manager.add_object(AgentStatus(idx, constants=self.constants, position=pos, size=None, endurance=10000)) + + def candidate_fire_overlap(self, pos, size): + for pos2, size2 in self.fire_candidate.values(): + if box_overlap(pos, size, pos2, size2): + return True + for idx in self.fire_info: + if box_overlap(pos, size, self.manager.objects[idx].position, self.constants.FIRE_SPREAD_SIZE): + return True + return False + + def try_spread(self, idx): + if idx in self.manager.objects and np.abs(self.manager.objects[idx].position).sum() > 50: + return + if len(self.fire_info[idx].spread_dirs) == 0: + return + burning_time = self.frame_count - self.fire_info[idx].last_spread + spread_prob = CHOUKA(burning_time // 5) + if self.RNG.uniform() < spread_prob: + spread_dir = self.fire_info[idx].spread_dirs[self.RNG.choice(len(self.fire_info[idx].spread_dirs))] + self.fire_info[idx].spread_dirs.remove(spread_dir) + spread_dir = np.array([spread_dir[0], 0, spread_dir[1]]) + + pos = self.manager.objects[idx].position * np.array([1, 0, 1]) + spread_dir * (self.constants.FIRE_SPREAD_SIZE + self.manager.objects[self.fire_info[idx].fire_id].size) * 0.5 + if not self.candidate_fire_overlap(pos, self.constants.FIRE_SPREAD_SIZE): + self.fire_candidate[self.get_unique_id()] = (pos, self.constants.FIRE_SPREAD_SIZE) + self.fire_info[idx].last_spread = self.frame_count + + def fire_step(self, resp): + # for idx in self.manager.objects_start_burning: + # self.commands.append({"$type": "set_color", + # "id": idx, + # "color": {"r": 1.0, "g": 0.0, "b": 0.0, "a": 0.5}}) + # self.add_fire_object(idx) + for idx in self.manager.objects_stop_burning: + # self.commands.append({"$type": "set_color", + # "id": idx, + # "color": {"r": 0.0, "g": 0.0, "b": 0.0, "a": 0.5}}) + self.commands.append({"$type": "destroy_visual_effect", + "id": self.fire_info[idx].fire_id}) + self.manager.remove_object(self.fire_info[idx].fire_id) + self.fire_info.pop(idx) + # extend fire + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "over": + o = Overlap(resp[i]) + idx = o.get_id() + # if idx in self.fire_candidate: + # print("check", idx, o.get_object_ids(), o.get_env()) + if idx in self.fire_candidate and o.get_object_ids().size < 3 and o.get_env() == False: + self.add_fire_floor(self.fire_candidate[idx][0]) + self.fire_candidate.clear() + if self.frame_count % self.update_fire_per_frame == 0: + removed = [] + for idx in self.fire_info: + if self.fire_info[idx].scale < self.constants.FIRE_FINAL_SCALE and not self.fire_info[idx].extinguishing: + # expand large enough before spreading + self.fire_info[idx].scale += self.constants.FIRE_SCALE_STEP + ratio = self.fire_info[idx].scale / (self.fire_info[idx].scale - self.constants.FIRE_SCALE_STEP) + self.commands.append({"$type": "scale_visual_effect", + "id": self.fire_info[idx].fire_id, + "scale_factor": {"x": ratio, "y": ratio, "z": ratio}}) + elif not self.fire_info[idx].extinguishing: + # large enough, try spreading + self.try_spread(idx) + elif self.fire_info[idx].scale >= self.constants.FIRE_INIT_SCALE + self.constants.FIRE_SCALE_STEP: + # extinguishing, scale down + self.fire_info[idx].scale -= self.constants.FIRE_SCALE_STEP + ratio = self.fire_info[idx].scale / (self.fire_info[idx].scale + self.constants.FIRE_SCALE_STEP) + self.commands.append({"$type": "scale_visual_effect", + "id": self.fire_info[idx].fire_id, + "scale_factor": {"x": ratio, "y": ratio, "z": ratio}}) + else: + # scaled down enough, remove + self.commands.append({"$type": "destroy_visual_effect", + "id": self.fire_info[idx].fire_id}) + self.manager.remove_object(self.fire_info[idx].fire_id) + removed.append(idx) + for idx in removed: + self.fire_info.pop(idx) + + for i in self.fire_candidate: + pos, size = self.fire_candidate[i] + self.commands.append({"$type": "send_overlap_box", + "half_extents": {"x": size[0]*0.5, "y": size[1]*0.5, "z": size[2]*0.5}, + "rotation": {"w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0}, + "position": {"x": pos[0], "y": pos[1]+size[1]*0.5+0.01, "z": pos[2]}, + "id": i}) + self.frame_count += 1 + + # def run(self): + # # self.add_fire_floor([0, 0, 0]) + # for i in range(1000): + # self.communicate([]) + # self.communicate({"$type": "terminate"}) + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + if isinstance(commands, dict): + commands = [commands] + commands.extend(self.commands) + self.commands.clear() + # for com in commands: + # print(com) + resp = super().communicate(commands) + if self.initialized: + self.fire_step(resp) + return resp diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_gym.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_gym.py new file mode 100644 index 0000000..a9dfcfd --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_gym.py @@ -0,0 +1,176 @@ +import gym +import gym.spaces +import numpy as np +# from HAZARD.policy.env_actions import agent_drop, agent_pickup, agent_explore, agent_walk_to_single_step + +from enum import IntEnum + +import os +from .fireagent_controller import * +from .agent import * + + +PATH = os.path.dirname(os.path.abspath(__file__)) +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) + + +class ActionSpace(IntEnum): + WALK_TO_NEAREST_TARGET = 0 + WALK_TO_NEAREST_CONTAINER = 1 + PICK_UP_NEAREST = 2 + DROP = 3 + EXPLORE = 4 + WALK_TO_RANDOM_OBJECT_IN_SIGHT = 5 + + +class FireEnv(gym.Env): + def __init__(self, port: int=1071, check_version: bool=True, launch_build: bool=False, + use_local_resources: bool=False, seed=0, use_gt=False, + image_capture_path=None, log_path: str=None, reverse_observation=False, + screen_size=512, map_size_h=64, map_size_v=64, grid_size=0.25, + record_only: bool=False, use_dino: bool=False): + self.controller_args = dict(use_local_resources=use_local_resources, launch_build=launch_build, + port=port, check_version=check_version, screen_size=screen_size, + image_capture_path=image_capture_path, log_path=log_path, use_dino=use_dino, + map_size_h=map_size_h, map_size_v=map_size_v, grid_size=grid_size, + use_gt=use_gt, reverse_observation=reverse_observation, record_only=record_only) + self.controller = None + self.RNG = np.random.RandomState(0) + + self.done = False + self.record_only = record_only + + self.observation_space = gym.spaces.Box(0, 20, (5, map_size_h, map_size_v), dtype=np.float32) + + self.action_space = gym.spaces.Discrete(6) + self.max_step = 1000 + + def reset(self, data_dir = None): + if data_dir == None: + data_dirs = os.listdir(os.path.join(PATH, "data", "room_setup_fire")) + data_dirs = [d for d in data_dirs if "craftroom" in d or "kitchen" in d] + data_dir = os.path.join(PATH, "data", "room_setup_fire", data_dirs[self.RNG.randint(len(data_dirs))]) + # data_dir = os.path.join(PATH, "data", "room_setup", "1a-0-0") + self.setup = SceneSetup(data_dir=data_dir, record_mode=self.record_only) + if self.controller is not None: + self.controller.communicate({"$type": "terminate"}) + self.controller.socket.close() + self.controller = FireAgentController(**self.controller_args) + self.controller.seed(self.RNG.randint(1000000)) + print("Controller connected") + self.controller.init_scene(self.setup) + self.num_step = 0 + self.last_action = None + self.last_target = None + if self.record_only: + return + + self.controller.do_action(0, "turn_by", {"angle": 0}) + self.controller.next_key_frame() + + return self.controller._obs()["RL"] + + # def step(self, action): + # # if self.done: + # # self.done = False + # # self.reset() + # """ + # for each type, if action_target is 0, ignore the action target + # """ + # if not isinstance(action, int): + # action = action.item() + # reward = -1 + # if action == ActionSpace.WALK_TO_NEAREST_TARGET: + # targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_walk_to_single_step(self, target=target) + # elif action == ActionSpace.PICK_UP_NEAREST: + # targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_pickup(self, target=target, env_type="fire") + # elif action == ActionSpace.DROP: + # target = None + # result, msg = agent_drop(self, env_type="fire") + # elif action == ActionSpace.EXPLORE: + # target = None + # result, msg = agent_explore(self) + # elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + # if self.last_action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + # target = self.last_target + # else: + # obs = self.controller._obs() + # obj_ids = np.unique(obs["sem_map"]["id"]) + # targets = [self.controller.manager.get_real_id(idx) for idx in obj_ids if self.controller.manager.get_real_id(idx) not in self.controller.finished] + # targets = [idx for idx in targets if idx is not None] + # target = int(self.RNG.choice(targets)) if len(targets) > 0 else None + # if target is None: + # result, msg = False, "no object in sight" + # else: + # result, msg = agent_walk_to_single_step(self, target=target) + # else: + # target = None + # reward -= 50 + # result, msg = False, "Invalid action" + # self.last_action = action + # self.last_target = target + # + # if result == False: + # reward -= 2 + # obs, info = self.controller._obs(), self.controller._info() + # info['message'] = msg + # info['success'] = result + # + # reward += self.controller._reward() + # done = self.controller._done() + # self.num_step += 1 + # if self.num_step >= self.max_step: + # done = True + # + # self.done = done + # info['action'] = action + # info['reward'] = reward + # return obs["RL"], reward, done, info + + def seed(self, seed): + self.RNG = np.random.RandomState(seed) + + def get_challenge_action(self, action): + target = None + ret = None + if action == ActionSpace.WALK_TO_NEAREST_TARGET: + targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.PICK_UP_NEAREST: + targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "pick_up", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.DROP: + target = None + ret = "drop", None + elif action == ActionSpace.EXPLORE: + target = None + ret = "explore", None + elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + try: + if self.last_action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + target = self.last_target + else: + obs = self.controller._obs() + obj_ids = np.unique(obs["sem_map"]["id"]) + targets = [self.controller.manager.get_real_id(idx) for idx in obj_ids if self.controller.manager.get_real_id(idx) not in self.controller.finished] + targets = [idx for idx in targets if idx is not None] + target = int(self.RNG.choice(targets)) if len(targets) > 0 else None + except: + target = None + if target is None: + ret = "explore", None + else: + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + else: + target = None + ret = "explore", None + self.last_action = action + self.last_target = target + return ret \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_utils.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_utils.py new file mode 100644 index 0000000..0dde3d0 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fire_utils.py @@ -0,0 +1,47 @@ +""" +constants and hyperparameters here +""" +import numpy as np + +from enum import Enum +class ObjectState(Enum): + NORMAL = 0 + BURNING = 1 + BURNT = 2 + START_BURNING = 3 + STOP_BURNING = 4 + +class Constants: + def __init__(self, + ROOM_TEMPERATURE: float = 20.0, + FIRE_TEMPERATURE: float = 600.0, + CHOUKA_INITIAL_PROB: int = 0.02, + CHOUKA_THRESHOLD_PROB_INCREASE: int = 30, + CHOUKA_THRESHOLD_UPPER: int = 50, + FIRE_SPREAD_SIZE: np.ndarray = np.array([0.2, 0.01, 0.2]), + FIRE_VISUAL_SIZE: np.ndarray = np.array([0.6, 0.6, 0.6]), + FIRE_INIT_SCALE: float = 0.1, + FIRE_SCALE_STEP: float = 0.05, + FIRE_FINAL_SCALE: float = 0.8, + EXTINGUISH_RADIUS: float = 0.5, + EXTINGUISH_TIME: int = 1000 + ) -> None: + + self.ROOM_TEMPERATURE = ROOM_TEMPERATURE + self.FIRE_TEMPERATURE = FIRE_TEMPERATURE + + self.CHOUKA_INITITIAL_PROB = CHOUKA_INITIAL_PROB + self.CHOUKA_THRESHOLD_PROB_INCREASE = CHOUKA_THRESHOLD_PROB_INCREASE + self.CHOUKA_THRESHOLD_UPPER = CHOUKA_THRESHOLD_UPPER + + self.FIRE_SPREAD_SIZE = FIRE_SPREAD_SIZE # The spread distance of fire. + self.FIRE_VISUAL_SIZE = FIRE_VISUAL_SIZE + + self.FIRE_INIT_SCALE = FIRE_INIT_SCALE + self.FIRE_SCALE_STEP = FIRE_SCALE_STEP + self.FIRE_FINAL_SCALE = FIRE_FINAL_SCALE + + self.EXTINGUISH_RADIUS = EXTINGUISH_RADIUS + self.EXTINGUISH_TIME = EXTINGUISH_TIME + +default_const = Constants() \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py new file mode 100644 index 0000000..08c33d2 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py @@ -0,0 +1,608 @@ +from typing import Any, Tuple, Dict +from tdw.add_ons.third_person_camera import ThirdPersonCamera +from tdw.librarian import HumanoidLibrarian +from tdw.add_ons.logger import Logger +from tdw.replicant.arm import Arm +from tdw.replicant.image_frequency import ImageFrequency +from tdw.tdw_utils import TDWUtils +from tdw.output_data import OutputData, Images +from tdw.scene_data.scene_bounds import SceneBounds +from tdw.obi_data.fluids.cube_emitter import CubeEmitter +from tdw.add_ons.obi import Obi + +import numpy as np +import cv2 +import copy +import os + +from .object import ObjectStatus +from .agent import * +from .fire import FireController +from HAZARD.utils.model import Semantic_Mapping +from HAZARD.utils.vision import Detector +from HAZARD.utils.local_asset import get_local_url +from HAZARD.utils.scene_setup import SceneSetup + +PATH = os.path.dirname(os.path.abspath(__file__)) +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) + +import torch + +""" +Caution!!! In a single trial, the number of agents should never change! +Currently single agent only. +""" + +class FireAgentController(FireController): + """ + Never ever use self.commands in here! For safety uses, self.commands can only be used in parent class + """ + def __init__(self, use_local_resources: bool = False, image_capture_path: str = None, log_path: str = None, + reverse_observation: bool = False, record_only: bool = False, use_dino: bool = False, + **kwargs) -> None: + self.frame_count = 0 + self.use_local_resources = use_local_resources + self.image_capture_path = image_capture_path + self.log_path = log_path + self.reverse_observation = reverse_observation + super().__init__(**kwargs) + self.screen_size = kwargs.get("screen_size", 512) + self.agents: List[FireAgent] = [] + self.extinguishers = [] + self.comm_counter = 0 + self.use_gt = kwargs.get("use_gt", True) + self.use_dino = use_dino + self.record_only = record_only + if not self.use_gt: + if self.use_dino: + from HAZARD.utils.vision_dino import DetectorSAM + self.detector = DetectorSAM(**kwargs) + else: + self.detector = Detector(**kwargs) + # self.init_seg(vocab_path=f"{os.getcwd()}/seg/vocab.txt") + if use_local_resources: + self.update_replicant_url() + # self.detector = Detector(**kwargs) + + self.map_size_h = kwargs.get("map_size_h", 64) + self.map_size_v = kwargs.get("map_size_v", 64) + self.grid_size = kwargs.get("grid_size", 0.25) + self.sem_map = Semantic_Mapping(device=None, screen_size=self.screen_size, + map_size_h=self.map_size_h, map_size_v=self.map_size_v, grid_size=self.grid_size) + + self.maps = [] + self.id2name = {} + self.other_containers = {} + self.containers = {} + # self.init_seg() + + def init_obi(self): + self.obi = Obi() + self.communicate([{"$type": "create_obi_solver"}]) + self.obi.set_solver(solver_id=0, scale_factor=1.0, substeps=1) + self.add_ons.append(self.obi) + self.communicate([]) + self.communicate([]) + + def update_replicant_url(self): + if not os.path.isfile(f"{os.getcwd()}/data/assets/replicant_0"): # There is no local model of replicant + print("There is no local model of replicant. ") + return + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME] = HumanoidLibrarian(Replicant.LIBRARY_NAME) + import platform + for repli in ["replicant_0", "fireman"]: + record = Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].get_record(repli) + new_url = record.urls[platform.system()].split("/")[-1] + record.urls[platform.system()] = f"{LOCAL_PATH_PREFIX}/{new_url}" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].add_or_update_record(record, overwrite=True) + + def grid_to_real(self, grid_pos): + return self.sem_map.grid_to_real(grid_pos) + + def real_to_grid(self, real_pos): + return self.sem_map.real_to_grid(real_pos) + + def reset_scene(self): + # whatever the agent is holding, drop it + for agent in self.agents: + arms = agent.dynamic.held_objects.keys() + for arm in arms: + agent.drop(arm=arm) + while agent.action.status == ActionStatus.ongoing: + self.communicate([]) + commands = [] + for idx in self.fire_info: + commands.append({"$type": "destroy_visual_effect", "id": self.fire_info[idx].fire_id}) + self.communicate(commands) + + self.fire_info = dict() + self.fire_candidate = dict() + self.initialized = False + self.maps = [] + self.add_ons = [] + self.manager.reset() + self.extinguishers = [] + self.id2name = {} + self.frame_count = 0 + self.communicate([]) + + self.last_reward = None + self.communicate([{"$type": "destroy_all_objects"}]) + + def init_scene(self, setup: SceneSetup): + self.reset_scene() + + if self.log_path is not None: + logger = Logger(self.log_path) + self.add_ons.append(logger) + self.communicate([]) + + # for obj in setup.objects: + # self.manager.add_object(obj) + + import json + temperature_record = dict() + with open(os.path.join(PATH, "data", "meta_data", "temperature.json"), "r") as f: + L = json.load(f) + for data in L: + temperature_record[data["name"]] = data["temp"] + self.extinguishers = [] + self.containers = setup.containers + self.other_containers = {} + for commands in setup.commands_list: + filtered_commands = [] + tp = None + for command in commands: + tp = command["$type"] + if tp == "terminate": + break + if tp[:4] == "send" or tp.find("avatar") != -1 or "avatar_id" in command: + continue + if "url" in command: + command["url"] = get_local_url(command["url"]) + if tp == "add_object": + name = command["name"] + idx = command["id"] + self.id2name[idx] = name + pos = TDWUtils.vector3_to_array(command["position"]) + if name in temperature_record: + self.manager.add_object(ObjectStatus(idx=idx, temperature_threshold=temperature_record[name], position=pos)) + else: + self.manager.add_object(ObjectStatus(idx=idx, position=pos)) + if name == "b05_fire_extinguisher": + self.extinguishers.append(idx) + if tp.startswith("add_") and tp.endswith("_container"): + self.other_containers[command['id']] = command['container_id'] + filtered_commands.append(command) + self.communicate(filtered_commands) + if tp == "terminate": + break + for fire_pos in setup.other["fire"]: + self.add_fire_floor(fire_pos) + + if not self.record_only: + if len(self.agents) == 0: + self.agents: List[FireAgent] = [] + for agent_pos in setup.agent_positions: + idx = self.get_unique_id() + self.agents.append( + FireAgent(replicant_id=idx, position=agent_pos, image_frequency=ImageFrequency.always, + name="fireman")) + self.add_agent(idx, agent_pos) + self.add_ons.append(self.agents[-1]) + else: + assert (len(self.agents) == len(setup.agent_positions)) + for i in range(len(self.agents)): + idx = self.agents[i].replicant_id + self.agents[i].reset(position=setup.agent_positions[i]) + self.add_ons.append(self.agents[i]) + self.add_agent(idx, setup.agent_positions[i]) + + self.maps = [None] * len(self.agents) + self.add_ons.append(self.manager) + self.target = setup.targets + if self.use_dino and not self.use_gt: + self.detector.set_targets(self.target) + self.target_ids = setup.target_ids + self.target_names = setup.target_names + self.target_id2category = setup.target_id2category + self.target_id2name = setup.target_id2name + self.finished = [] + self.communicate([]) + if self.image_capture_path != None: + if not self.record_only: + camera = ThirdPersonCamera(avatar_id="record", + position={"x": 0.0, "y": 10.0, "z": 0.0}, + look_at={"x": 0.0, "y": 0.0, "z": 0.0}) # or self.agents[0].replicant_id + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + else: + camera = ThirdPersonCamera(avatar_id="record", position={"x": 0.0, "y": 6.0, "z": 0.0}, + look_at=self.agents[0].replicant_id) + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + self.add_ons.extend([camera]) + else: + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + + if self.image_capture_path is not None: + commands.extend([{"$type": "set_pass_masks", "pass_masks": ["_img"], "avatar_id": "record"}, + {"$type": "send_images", "frequency": "always", "ids": ["record"]}]) + commands.extend([{"$type": "set_floorplan_roof", "show": False}]) + + # Capture when running after init_scene. (Because screen size may be modified) + resp = self.communicate([{"$type": "send_scene_regions"}]) + self.set_scene_bounds(resp) + + self.manager.prepare_segmentation_data() + self.initialized = True + for obj in self.target_ids: + commands.append({"$type": "set_kinematic_state", "id": obj, "is_kinematic": False, "use_gravity": True}) + self.communicate(commands) + + if len(self.extinguishers) > 0: + self.init_obi() + + if not self.record_only and len(self.extinguishers) == 0: + commands = [ + {"$type": "set_field_of_view", "field_of_view": 120.0, "avatar_id": str(self.agents[0].replicant_id)}] + """add a backpack or similar to the agent's left hand""" + self.container_name = "backpack" if "container" not in setup.other else setup.other["container"] + self.container_id = self.get_unique_id() + self.manager.add_object(ObjectStatus(idx=self.container_id, inflammable=False, temperature_threshold=3000)) + + agent_pos = self.agents[0].dynamic.transform.position + commands.append(self.get_add_object(model_name=self.container_name, object_id=self.container_id, + position=TDWUtils.array_to_vector3(agent_pos))) + self.communicate(commands) + self.agents[0].grasp(target=self.container_id, arm=Arm.left, axis=None, angle=None) + self.next_key_frame() + self.agents[0].reach_for(target=TDWUtils.array_to_vector3([-0.3, 1.0, 0.3]), absolute=False, arrived_at=0.1, + arm=Arm.left) + self.next_key_frame() + self.agents[0].reset_arm(arm=Arm.left) + self.next_key_frame() + + def set_scene_bounds(self, resp=None): + self.scene_bounds = SceneBounds(resp=resp) + self.x_max = max([region.x_max for region in self.scene_bounds.regions]) + self.x_min = min([region.x_min for region in self.scene_bounds.regions]) + self.z_max = max([region.z_max for region in self.scene_bounds.regions]) + self.z_min = min([region.z_min for region in self.scene_bounds.regions]) + + def next_key_frame(self, force_direction=None) -> Tuple[List[ActionStatus], List[int]]: + # print("next_key_frame") + initial_status = [] + have_ongoing_action = False + for agent in self.agents: + if agent.action is not None: + initial_status.append(copy.deepcopy(agent.action.status)) + if initial_status[-1] == ActionStatus.ongoing: + have_ongoing_action = True + else: + initial_status.append(None) + if not have_ongoing_action: + self.communicate([]) + print("no ongoing action") + return initial_status, [] + num_step = 0 + while True: + num_step += 1 + if num_step > 10000: + raise RuntimeError("num_step > 10000") + self.communicate([]) + + changed = False + for i, agent in enumerate(self.agents): + if initial_status[i] is not None and agent.action.status != initial_status[i]: + changed = True + break + if changed: + break + + final_status = [] + changed_agents = [] + for i, agent in enumerate(self.agents): + final_status.append(copy.deepcopy(agent.action.status) if agent.action is not None else None) + if initial_status[i] != final_status[i]: + changed_agents.append(i) + + self.communicate([]) + return final_status, changed_agents + + def do_action(self, agent_idx: int, action: str, params: Dict[str, Any] = dict()) -> None: + """ + See the FireAgent class for allowed actions and their parameters. + """ + if action == "stop": + return + return getattr(self.agents[agent_idx], action)(**params) + + def add_extinguish_water(self, fire_pos): + object_id = self.get_unique_id() + rotate = self.agents[0].dynamic.transform.forward + rotate = rotate / np.linalg.norm(rotate) + print(rotate) + extinguisher_distance_to_agent = 1.0 + position = {"x": float(self.agents[0].dynamic.transform.position[0]+rotate[0]*extinguisher_distance_to_agent), + "y": float(self.agents[0].dynamic.transform.position[1]) + 0.7, + "z": float(self.agents[0].dynamic.transform.position[2]+rotate[2]*extinguisher_distance_to_agent)} + rotation = {"x": 0, + "y": 90, + "z": 0} + self.obi.create_fluid(fluid="water", + shape=CubeEmitter(), + object_id=object_id, + position=position, + rotation=rotation, + speed=0.9, + lifespan=0.5) + + def do_extinguish(self, target: np.ndarray): + for idx, fire in self.fire_info.items(): + if fire.extinguishing: + continue + fire_id = fire.fire_id + if np.linalg.norm(self.manager.objects[fire_id].position - target) < self.constants.EXTINGUISH_RADIUS: + if idx == fire_id: + self.extinguish_fire_floor(idx) + else: + self.extinguish_fire_object(idx) + + def get_agent_status(self, idx) -> FireAgent: + return self.agents[idx] + + def get_temperature_observation(self, idx, width=512, height=512): + depth = TDWUtils.get_depth_values(self.agents[idx].dynamic.images["depth"], width=width, height=height) + depth = np.flip(depth, axis=0) + camera_matrix = self.agents[idx].dynamic.camera_matrix + + point_cloud = TDWUtils.get_point_cloud(depth=depth, camera_matrix=camera_matrix, vfov=120.0) + # fout = open("point_cloud.txt", "w") + # bs, h, w = 1, height, width + # for i in range(bs): + # for j in range(h): + # for k in range(w): + # for t in range(3): + # print(point_cloud[t, j, k].item(), end=' ', file=fout) + # print('', file=fout) + # shape: (3, 512, 512) + # down sample to 16x16 + point_cloud = point_cloud[:, ::(width//16), ::(width//16)] + temp = np.zeros((16, 16)) + for i in range(16): + for j in range(16): + temperature = self.manager.query_point_temperature(point_cloud[:, i, j]) + temp[i, j] = temperature + temp = cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST) + return temp + + def find_nearest_object(self, agent_idx: int = 0, objects: List[int] = None): + current_position = self.agents[agent_idx].dynamic.transform.position + return self.manager.find_nearest_object(pos=current_position, objects=objects) + + def replace_with_local_path(self, commands): + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + download_cmds = [] + for command in commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for command in self.commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for m in self.add_ons: + if not m.initialized: + add_on_commands = m.get_initialization_commands() + else: + add_on_commands = m.commands + for command in add_on_commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + if len(download_cmds) > 0: + fout = open(f"{os.getcwd()}/data/assets/download_assets.sh", "w") + for cmd in download_cmds: + fout.write(cmd) + super().communicate({"$type": "terminate"}) + self.socket.close() + print("Please run data/assets/download_assets.sh first!") + exit(0) + return commands + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + if self.initialized: + for agent in self.agents: + idx = agent.grasp_id() + if idx is None: + continue + dist = np.linalg.norm((agent.dynamic.transform.position - self.manager.objects[idx].position) * np.array([1, 0, 1])) + if dist > 3.0: + agent.fail_grasp() + if self.use_local_resources: + commands = self.replace_with_local_path(commands) + # self.commands = self.replace_with_local_path(self.commands) + resp = super().communicate(commands) + if self.initialized: + # for i, agent in enumerate(self.agents): + # # if too hot, agent dies + # if self.manager.objects[agent.replicant_id].temperature > \ + # self.manager.objects[agent.replicant_id].temperature_threshold: + # raise RuntimeError(f"agent {i} is on fire") + # # if agent is holding an extinguisher: put out fire + # held_objects = agent.extinguish_indicator() + # if held_objects is not None: + # print("holding: ", held_objects) + # if held_objects is not None and len(held_objects) == 1 and held_objects[0] in self.extinguishers: + # self.do_extinguish(agent.extinguish_target()) + # print("extinguish") + # pass + for target in self.target_ids: + if (np.abs(self.manager.objects[target].position).sum() > 50) and (target not in self.finished): + # this object is dropped and moved to a distant place + self.finished.append(target) + if self.image_capture_path != None: + for i in range(len(resp) - 1): + r_id = OutputData.get_data_type_id(resp[i]) + # Get Images output data. + if r_id == "imag": + images = Images(resp[i]) + # Determine which avatar captured the image. + if images.get_avatar_id() == "record": + # Save the image. + # if self.comm_counter % 10 == 0: + TDWUtils.save_images(images=images, filename=str(self.comm_counter), + output_directory=self.image_capture_path) + self.comm_counter += 1 + # The ImageCapture addon already saves the image. No need to save again. + return resp + + def get_seg_mask(self, rgb): + # return self.detector.get_seg_mask(rgb) + pass + + + @torch.no_grad() + def _obs(self, agent_idx: int = 0): + # print("get obs") + + self.manager.prepare_segmentation_data() + self.communicate([]) + + obs = dict() + """ + raw observation: RGBD, temperature + """ + rgb = self.agents[agent_idx].dynamic.get_pil_image() + id_image = np.array(self.agents[agent_idx].dynamic.get_pil_image("id")) + if self.reverse_observation: + rgb = np.flip(rgb, axis=0) + id_image = np.flip(id_image, axis=0) + + if self.use_gt: + seg_mask = self.manager.segm.get_seg_mask(id_image) + else: + rcnn_mask = self.detector.inference(np.array(rgb)) + seg_mask = self.manager.segm.get_seg_mask(np.array(id_image), + rcnn=rcnn_mask, + id_list=self.manager.id_list) + depth = TDWUtils.get_depth_values(self.agents[agent_idx].dynamic.images["depth"], width=self.screen_size, height=self.screen_size) + depth = np.flip(depth, axis=0) + + rgb = np.array(rgb).astype(np.float32).transpose((2, 0, 1)).astype(np.float32) * 1.0 / 255 + depth = depth.reshape((1, self.screen_size, self.screen_size)).astype(np.float32) + + log_temp = self.get_temperature_observation(agent_idx, width=self.screen_size, height=self.screen_size) + log_temp = np.log(log_temp.reshape((1, self.screen_size, self.screen_size)).astype(np.float32)) + obs["raw"] = dict( + rgb=rgb, + depth=depth, + log_temp=log_temp, + seg_mask=seg_mask + ) + + """ + mapped observation + """ + camera_matrix = self.agents[agent_idx].dynamic.camera_matrix.reshape((4, 4)) + obs_concat = np.concatenate([rgb, depth, log_temp], axis=0) + + sem = self.sem_map.forward(obs=obs_concat, id_map=seg_mask, camera_matrix=camera_matrix, maps_last=self.maps[agent_idx], + position=self.agents[agent_idx].dynamic.transform.position, record_mode=self.record_only, + targets=[self.manager.id_renumbering[target] for target in self.target_ids]) + obs["sem_map"] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + self.maps[agent_idx] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + + """ + map of goal and agent + """ + agent_pos = self.sem_map.real_to_grid(self.agents[agent_idx].dynamic.transform.position) + target_poss = [self.sem_map.real_to_grid(self.manager.objects[idx].position) for idx in self.target_ids] + + goal_map = np.zeros((self.map_size_h, self.map_size_v)) + for (i, target_pos) in enumerate(target_poss): + if self.target_ids[i] in self.finished: + continue + if target_pos[0] < 0 or target_pos[0] >= self.map_size_h or target_pos[1] < 0 or target_pos[1] >= self.map_size_v: + continue + if not (sem["id"] == self.manager.get_renumbered_id(self.target_ids[i])).any(): + continue + goal_map[target_pos[0], target_pos[1]] = 1 + if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: + goal_map[agent_pos[0], agent_pos[1]] = -2 + rad = self.agents[agent_idx].get_facing() + rad = int(rad / (np.math.pi / 4)) + if rad < 0: + rad += 8 + dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] + dz = list([0, 1, 1, 1, 0, -1, -1, -1])[rad] + goal_map[agent_pos[0] + dx][agent_pos[1] + dz] = -1 + obs["goal_map"] = goal_map + + """ + agent info + """ + obs["camera_matrix"] = camera_matrix + # return RL_obs + RL_obs = np.zeros((5, self.map_size_h, self.map_size_v)) + RL_obs[0] = obs["sem_map"]["height"] + RL_obs[1] = obs["sem_map"]["explored"] + RL_obs[2] = obs["sem_map"]["id"] + RL_obs[3] = goal_map + RL_obs[4] = obs["sem_map"]["other"][0] + obs["RL"] = RL_obs + return obs + + def _info(self): + info = dict() + info['vector'] = np.zeros(8) # for consistency + info['agent_positions'] = [agent.dynamic.transform.position for agent in self.agents] + info['targets'] = self.manager.get_renumbered_list(self.target_ids) + info['finished targets'] = self.manager.get_renumbered_list(self.finished) + info['camera_matrices'] = [agent.dynamic.camera_matrix.reshape((4, 4)) for agent in self.agents] + info['sr'] = f"{len(self.finished)}/{len(self.target_ids)}" + return info + + # this is a toy reward function + def _reward(self, agent_idx: int = 0): + if self.last_reward is None: + self.last_reward = 0 + + reward = 0 + + agent_pos = self.agents[agent_idx].dynamic.transform.position + nearest_target = self.manager.find_nearest_object(agent_pos, self.target_ids) + + reward += len(self.finished) * 20 + if Arm.left in self.agents[0].dynamic.held_objects: + reward -= 10 + else: + dist = np.linalg.norm(agent_pos - self.manager.objects[nearest_target].position) + reward -= dist * 10 + ret = reward - self.last_reward - 0.1 + self.last_reward = reward + return ret + + def _done(self, agent_idx: int = 0): + if len(self.finished) == len(self.target_ids): + return True + return False \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/manager.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/manager.py new file mode 100644 index 0000000..e4deef8 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/manager.py @@ -0,0 +1,155 @@ +from tdw.add_ons.add_on import AddOn +from tdw.output_data import OutputData, Transforms, Bounds +from tdw.output_data import Replicants, SegmentationColors, ReplicantSegmentationColors +from typing import Dict, List, Set, Optional +import numpy as np +from .object import * +from .fire_utils import * +from HAZARD.utils.seg_id import SegmentationID + +""" +Add-on to control the evolvement of objects, including temperature and state. +Future development may include changing object appearances. +""" +class FireObjectManager(AddOn): + def __init__(self, constants=default_const): + super().__init__() + self.constants = constants + self.objects: Dict[int, ObjectStatus] = dict() + self.temperature_manager = TemperatureManager() + self.objects_start_burning: Set[int] = set() + self.objects_stop_burning: Set[int] = set() + self.segm = SegmentationID() + self.id_renumbering = dict() + self.id_list = [0] + self.timer = 0 + + def reset(self): + self.objects = dict() + self.objects_start_burning = set() + self.objects_stop_burning = set() + self.commands = [] + self.initialized = False + self.id_renumbering = dict() + self.id_list = [0] + self.timer = 0 + + def get_initialization_commands(self) -> List[dict]: + return [{"$type": "send_bounds"}, + {"$type": "send_transforms"}] + + def on_send(self, resp: List[bytes]) -> None: + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "tran": + tran = Transforms(resp[i]) + for j in range(tran.get_num()): + idx = tran.get_id(j) + if idx in self.objects: + self.objects[idx].position = tran.get_position(j) + self.objects[idx].rotation = tran.get_rotation(j) + else: + print("object {} not recorded, may be caused by composite objects which you can ignore".format(idx)) + self.add_object(ObjectStatus(idx, position=tran.get_position(j))) + elif r_id == "boun": + boun = Bounds(resp[i]) + for j in range(boun.get_num()): + idx = boun.get_id(j) + if idx in self.objects: + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + else: + print("object {} not recorded, may be caused by composite objects which you can ignore".format(idx)) + self.add_object(ObjectStatus(idx, size=boun.get_front(j) + boun.get_right(j) + boun.get_top(j) - boun.get_back(j) - boun.get_left(j) - boun.get_bottom(j))) + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + elif r_id == "repl": + repl = Replicants(resp[i]) + for j in range(repl.get_num()): + idx = repl.get_id(j) + if idx in self.objects: + self.objects[idx].position = repl.get_position(j) + else: + print("agent {} not recorded, this shouldn't happen".format(idx)) + self.add_object(AgentStatus(idx, position=repl.get_position(j), size=None)) + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "segm": + segm = SegmentationColors(resp[i]) + self.segm.process(segm, self.id_renumbering) + elif r_id == "rseg": + segm = ReplicantSegmentationColors(resp[i]) + self.segm.process(segm, self.id_renumbering) + + self.timer += 1 + if self.timer % 5 == 0: + temp_dict = self.temperature_manager.evolve(self.objects) + for idx in temp_dict: + self.objects[idx].temperature = temp_dict[idx] + + self.objects_start_burning = set() + self.objects_stop_burning = set() + for idx in self.objects: + if np.abs(self.objects[idx].position).sum() > 50: + continue + status = self.objects[idx].step() + if status == ObjectState.START_BURNING: + self.objects_start_burning.add(idx) + elif status == ObjectState.STOP_BURNING: + self.objects_stop_burning.add(idx) + self.commands = [{"$type": "send_bounds"}, {"$type": "send_transforms"}] + + def add_object(self, obj: ObjectStatus): + self.objects[obj.idx] = obj + if obj.idx not in self.id_renumbering: + self.id_list.append(obj.idx) + self.id_renumbering[obj.idx] = len(self.id_list) - 1 + + def remove_object(self, idx: int): + if idx in self.objects: + del self.objects[idx] + + def query_point_temperature(self, point: np.ndarray) -> float: + return self.temperature_manager.query_point_temperature(point, self.objects) + + def find_nearest_object(self, pos: np.ndarray, objects: Optional[List[int]] = None): + min_dist = 1e10 + min_idx = None + it = iter(self.objects) if objects is None else iter(objects) + for idx in it: + if self.objects[idx].name != "Object": + continue + dist = np.linalg.norm(self.objects[idx].position - pos) + if dist < min_dist: + min_dist = dist + min_idx = idx + return min_idx + + def prepare_segmentation_data(self): + self.commands.extend([{"$type": "send_segmentation_colors"}, + {"$type": "send_categories"}, {"$type": "send_replicant_segmentation_colors"}]) + + def get_renumbered_id(self, idx: int): + if idx in self.id_renumbering: + return self.id_renumbering[idx] + return 0 + + def get_renumbered_list(self, L: List[int]): + return [self.id_renumbering[idx] for idx in L if idx in self.id_renumbering] + + def get_real_id(self, idx: int): + if idx >= len(self.id_list) or idx == 0: + return None + return self.id_list[idx] diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/object.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/object.py new file mode 100644 index 0000000..d3d0a8a --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/object.py @@ -0,0 +1,124 @@ +from typing import Dict, Set +from .fire_utils import * +import numpy as np + +class ObjectStatus: + def __init__(self, idx, constants: Constants=default_const, + inflammable: bool = True, state: int = None, + burning_time: int = 300, burning_time_left: int = 0, + temperature: float = 20.0, temperature_threshold: float = 200.0, + is_heat_source: bool = False, position: np.ndarray = None, rotation: np.ndarray = None, size: np.ndarray = None): + self.idx: int = idx + self.inflammable: bool = inflammable + self.state: int = (ObjectState.NORMAL if state is None else state) + self.burning_time: int = burning_time # if set to -1, burn indefinitely + self.burning_time_left: int = burning_time_left # if set to -1, burn indefinitely + self.temperature: float = temperature + self.temperature_threshold: float = temperature_threshold + self.is_heat_source: bool = is_heat_source + self.position: np.ndarray = position + self.rotation: np.ndarray = rotation + self.size: np.ndarray = size + self.constants: Constants = constants + self.name = "Object" + + def step(self): + if self.state == ObjectState.BURNING: + if self.burning_time_left == -1: + return ObjectState.BURNING + self.burning_time_left -= 1 + if self.burning_time_left <= 0: + self.state = ObjectState.BURNT + self.inflammable = False + return ObjectState.STOP_BURNING + return ObjectState.BURNING + + if self.state == ObjectState.BURNT: + return ObjectState.BURNT + + if self.temperature > self.temperature_threshold and self.inflammable: + self.state = ObjectState.BURNING + self.burning_time_left = self.burning_time + self.is_heat_source = True + self.temperature = self.constants.FIRE_TEMPERATURE + return ObjectState.START_BURNING + + def center(self): return self.position + self.size * np.array([0, 0.5, 0]) + def bottom(self): return self.position + def top(self): return self.position + self.size * np.array([1, 1, 1]) + def left(self): return self.position + self.size * np.array([-0.5, 0.5, 0]) + def right(self): return self.position + self.size * np.array([0.5, 0.5, 0]) + def front(self): return self.position + self.size * np.array([0, 0.5, 0.5]) + def back(self): return self.position + self.size * np.array([0, 0.5, -0.5]) +class FireStatus(ObjectStatus): + def __init__(self, idx, position, size, constants=default_const): + super().__init__(idx, constants, inflammable=False, state=ObjectState.BURNING, + burning_time=-1, burning_time_left=-1, + temperature=constants.FIRE_TEMPERATURE, temperature_threshold=1000.0, + is_heat_source=True, position=position, size=size) + self.name = "Fire" + +class AgentStatus(ObjectStatus): + def __init__(self, idx, position, size, endurance: float = 60.0, constants=default_const): + super().__init__(idx, constants, inflammable=False, state=ObjectState.NORMAL, + burning_time=-1, burning_time_left=-1, + temperature=constants.ROOM_TEMPERATURE, temperature_threshold=endurance, + is_heat_source=False, position=position, size=size) + self.name = "Agent" + +""" +Assumed model: + +For heat sources, the temperature is constant. +For other objects: + +T = T0 * (1 - decay_rate) + T1 * decay_rate +T0 is old temperature +T1 is average temperature of nearby objects, weighted by exp( - max(1, distance / effective_distance) ) +room temperature has a weight of exp(-1) + +T1 is average temperature of nearby objects, weighted by (effective_distance/distance)^2 +room temperature has a weight of 1 +This algorithm is scientific, and a lot more computationally efficient. +""" +class TemperatureManager: + def __init__(self, room_temperature: float = 20.0, + effective_distance: float = 0.5, + decay_rate: float = 0.03): + self.room_temperature = room_temperature + self.effective_distance = effective_distance + self.decay_rate = decay_rate + + def evolve(self, objects: Dict[int, ObjectStatus]): + new_temperatures = dict() + for idx in objects: + obj = objects[idx] + if obj.is_heat_source: + new_temperatures[idx] = obj.temperature + continue + # sum_weight = np.exp(-1) + sum_weight = 1 # Weight of room temperature + sum_weighted_temperature = self.room_temperature * sum_weight + for idx2 in objects: + if idx2 == idx: + continue + distance = np.linalg.norm(objects[idx2].position - obj.position) + distance = max(distance, 0.1) + # weight = np.exp(-max(10000, distance / self.effective_distance)) + weight = (self.effective_distance/distance)**2 + sum_weighted_temperature += objects[idx2].temperature * weight + sum_weight += weight + # print(sum_weighted_temperature / sum_weight) + new_temperatures[idx] = obj.temperature * (1 - self.decay_rate) + sum_weighted_temperature / sum_weight * self.decay_rate + return new_temperatures + + def query_point_temperature(self, target: np.ndarray, objects: Dict[int, ObjectStatus]): + sum_weight = np.exp(-1) + sum_weighted_temperature = self.room_temperature * sum_weight + for idx in objects: + distance = np.linalg.norm(objects[idx].position - target) + distance = max(distance, 0.1) + weight = (self.effective_distance/distance)**2 + sum_weighted_temperature += objects[idx].temperature * weight + sum_weight += weight + return sum_weighted_temperature / sum_weight \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/__init__.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/__init__.py new file mode 100644 index 0000000..2f9e4ad --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/__init__.py @@ -0,0 +1,9 @@ +from .floodagent_controller import FloodAgentController +from .flood_gym import FloodEnv + +from gym.envs.registration import register + +register( + id="flood-v0", + entry_point="envs.flood.flood_gym:FloodEnv" +) diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/agent.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/agent.py new file mode 100644 index 0000000..af85bea --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/agent.py @@ -0,0 +1,203 @@ +from typing import Optional, Union, List +from .utils import * +from tdw.add_ons.replicant import * +from tdw.quaternion_utils import QuaternionUtils +from tdw.replicant.actions.action import Action, ActionStatus +from tdw.replicant.actions.look_at import LookAt +from tdw.replicant.actions.grasp import Grasp +from tdw.replicant.image_frequency import ImageFrequency + + +import numpy as np + +class SequentialAction(Action): + def __init__(self, actions: List[Action]): + self._actions = actions + self._current = 0 + self.status: ActionStatus = None + self.image_frequency = ImageFrequency.once + super().__init__() + + def get_initialization_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, + image_frequency: ImageFrequency) -> List[dict]: + self.image_frequency = image_frequency + self._current = 0 + + self.status = ActionStatus.ongoing + self.initialized = True + + return super().get_initialization_commands(resp=resp, static=static, dynamic=dynamic, + image_frequency=image_frequency) + + def get_ongoing_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic) -> List[dict]: + commands = super().get_ongoing_commands(resp=resp, static=static, dynamic=dynamic) + # for convenience, if self._current < 0, it is in the middle of two actions, wait one frame + if not self._actions[self._current].initialized: + # The action's status defaults to `ongoing`, but actions sometimes fail prior to initialization. + if self._actions[self._current].status == ActionStatus.ongoing: + # Initialize the action and get initialization commands. + self._actions[self._current].initialized = True + initialization_commands = self._actions[self._current].get_initialization_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency) + + # Most actions are `ongoing` after initialization, but they might've succeeded or failed already. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(initialization_commands) + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # Continue an ongoing action. + else: + # Get the ongoing action commands. + action_commands = self._actions[self._current].get_ongoing_commands(resp=resp, + static=static, + dynamic=dynamic) + # This is an ongoing action. Append ongoing commands. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(action_commands) + # This action is done. Append end commands. + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # This action ended. If not successful, all commands are done. Otherwise, continue to the next action. + if self._actions[self._current].status != ActionStatus.ongoing: + if self._actions[self._current].status == ActionStatus.success: + self._current += 1 + # If there are more actions, continue. + if self._current < len(self._actions): + self.status = ActionStatus.ongoing + # Otherwise, this action is done. + else: + self.status = ActionStatus.success + else: + self.status = self._actions[self._current].status + return commands + + def get_end_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, + image_frequency: ImageFrequency) -> List[dict]: + return super().get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=image_frequency) + + +""" +The poses are relative to the agent's position and rotation. +Assume the agent is facing positive z. +""" + + +class FloodAgent(Replicant): + def __init__(self, constants=default_const, *args, **kwargs): + self.constants = constants + self.heatmap = 0 + super().__init__(*args, **kwargs) + + # define custom actions here + def pick_up(self, target: int, arm: Union[Arm, List[Arm]], + final_pose_loc: np.ndarray = np.array([0.1, 1.1, 0.6]), absolute: bool = False, + angle: Optional[float] = 90, axis: Optional[str] = "pitch") -> None: + if isinstance(arm, Arm): + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=arm, dynamic=self.dynamic, angle=angle, axis=axis, relative_to_hand=True, offset=0.0), + ReachFor(target=final_pose_loc, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + else: + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=Arm.left, dynamic=self.dynamic, angle=angle, axis=axis), + ReachFor(target=final_pose_loc, + arms=[Arm.left], + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=True, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + + def get_facing(self): + """return a radian""" + v = QuaternionUtils.multiply_by_vector(QuaternionUtils.get_inverse(self.dynamic.transform.rotation), + np.array([0, 0, 1.0])) + v = v / np.linalg.norm(v) + v = np.arctan2(v[2], v[0]) + return v + + def grasp_id(self): + """ + if the agent is grasping an object, return the id of the object + otherwise, return None + """ + if isinstance(self.action, Grasp): + return self.action.target + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + return self.action._actions[self.action._current].target + return None + + def fail_grasp(self): + """ + if the agent is grasping an object and it is too far away, fail the grasp (this is controlled by the outside) + """ + if isinstance(self.action, Grasp): + self.action.status = ActionStatus.cannot_grasp + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + self.action._actions[self.action._current].status = ActionStatus.cannot_grasp + else: + raise Exception("Not grasping now") \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood.py new file mode 100644 index 0000000..e99dfb3 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood.py @@ -0,0 +1,126 @@ +from typing import List, Union, Dict +from .manager import FloodObjectManager +from .utils import * +from .object import AgentStatus +from tdw.controller import Controller +from tdw.obi_data.fluids.disk_emitter import DiskEmitter +from tdw.obi_data.fluids.fluid import Fluid +from tdw.add_ons.obi import Obi + +import numpy as np + +class PhysicalFlood: + def __init__(self, flood_id, activate, position, direction, speed): + self.fire_id = flood_id + self.activate = activate + self.position = position + self.direction = direction + self.speed = speed + +class FloorFlood: + def __init__(self, floor_id): + self.floor_id = floor_id + self.height = 0 + self.angles = { + "w": 0.0, + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + +""" +This controller controls the spread of flood. +""" + + +class FloodController(Controller): + def __init__(self, port: int = 1071, check_version: bool = True, launch_build: bool = True, seed=0, + constants=default_const, **kwargs): + self.initialized = False + self.commands: List[dict] = list() + super().__init__(port, check_version, launch_build) + + self.manager = FloodObjectManager(source_position=None, + source_from="x_max", + floor_ids=[], + floor_positions=[], + floor_sizes=[], + floor_directions=[], + flood_density=default_const.FLOOD_DENSITY) + self.add_ons.append(self.manager) + + self.physical_flood_info: Dict[int, PhysicalFlood] = dict() + self.floor_flood_info: Dict[int, FloorFlood] = dict() + self.constants = constants + + def init_obi(self): + self.obi = Obi() + self.communicate([{"$type": "create_obi_solver"}]) + self.obi.set_solver(solver_id=1, scale_factor=1.0, substeps=1) + self.add_ons.append(self.obi) + self.communicate([]) + self.communicate([]) + + def seed(self, seed): + self.RNG = np.random.Generator(np.random.PCG64(seed)) + + def get_unique_id(self): + while True: + idx = super().get_unique_id() + if idx not in self.manager.objects: + return idx + + def add_physical_flood(self, position, direction, speed=1, object_id=None): + if isinstance(position, np.ndarray): + position = position.tolist() + if isinstance(direction, np.ndarray): + direction = direction.tolist() + if object_id == None: + object_id = self.get_unique_id() + new_fluid_info = PhysicalFlood(object_id, activate=True, position=position, direction=direction, speed=speed) + self.physical_flood_info[len(self.physical_flood_info)] = new_fluid_info + self.manager.flood_manager.source_position = np.array(position) + fluid = Fluid(capacity=100000, + resolution=1.0, + color={"r": 0.6, "g": 0.6, "b": 0.33, "a": 0.5}, + rest_density=self.constants.FLOOD_DENSITY, + reflection=0.25, + refraction=-0.034, + smoothing=3.0, + render_smoothness=0.8, + metalness=0, + viscosity=0.001, + absorption=5, + vorticity=1.0, + surface_tension=0.1, + transparency=0.2, + thickness_cutoff=1.2, + radius_scale=1.6, + random_velocity=0.0 + ) + self.obi.create_fluid(fluid=fluid, + shape=DiskEmitter(), + object_id=object_id, + position={"x": position[0], "y": position[1], "z": position[2]}, + rotation={"x": direction[0], "y": direction[1], "z": direction[2]}, + speed=speed, + lifespan=2 + ) + + def add_agent(self, idx, pos): + self.manager.add_object(AgentStatus(idx, constants=self.constants, position=pos, size=np.array([1.0, 2.0, 1.0]))) + + def flood_step(self, resp): + pass + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + if isinstance(commands, dict): + commands = [commands] + commands.extend(self.commands) + self.commands.clear() + # for com in commands: + # print(com) + resp = super().communicate(commands) + if self.initialized: + self.flood_step(resp) + return resp diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood_gym.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood_gym.py new file mode 100644 index 0000000..28b1bbd --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/flood_gym.py @@ -0,0 +1,192 @@ +import pdb + +import gym +import gym.spaces +from .floodagent_controller import * +from .agent import * +import numpy as np +import os +PATH = os.path.dirname(os.path.abspath(__file__)) + +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) + +# from policy.env_actions import agent_drop, agent_pickup, agent_explore, agent_walk_to_single_step +from enum import IntEnum + +class ActionSpace(IntEnum): + WALK_TO_NEAREST_TARGET = 0 + WALK_TO_NEAREST_CONTAINER = 1 + PICK_UP_NEAREST = 2 + DROP = 3 + EXPLORE = 4 + WALK_TO_RANDOM_OBJECT_IN_SIGHT = 5 + +class FloodEnv(gym.Env): + def __init__(self, port: int = 1071, check_version: bool = True, launch_build: bool = False, + use_local_resources: bool = False, seed = 0, screen_size = 512, use_dino=False, + image_capture_path = None, log_path: str = None, use_gt = False, + map_size_h = 128, map_size_v = 128, grid_size = 0.25, reverse_observation = False, + record_only: bool = False): + self.controller_args = dict(use_local_resources=use_local_resources, launch_build=launch_build, + port=port, check_version=check_version, screen_size=screen_size, + image_capture_path=image_capture_path, log_path=log_path, use_dino=use_dino, + map_size_h=map_size_h, map_size_v=map_size_v, grid_size=grid_size, + use_gt=use_gt, reverse_observation=reverse_observation, + record_only=record_only) + self.controller = None + self.RNG = np.random.RandomState(0) + + rgb_space = gym.spaces.Box(0, 256, (3, screen_size, screen_size), dtype=np.int32) + seg_space = gym.spaces.Box(0, 256, (1, screen_size, screen_size), dtype=np.int32) + depth_space = gym.spaces.Box(0, 256, (1, screen_size, screen_size), dtype=np.int32) + object_space = gym.spaces.Dict({ + "object_id": gym.spaces.Discrete(30), + "type": gym.spaces.Discrete(4), + "seg_color": gym.spaces.Box(0, 256, (3,), dtype=np.int32), + }) + self.done = False + self.record_only = record_only + + self.observation_space = gym.spaces.Box(0, 20, (5, map_size_h, map_size_v), dtype=np.float32) + # self.observation_space = gym.spaces.Dict({ + # "rgb": rgb_space, + # "seg_mask": seg_space, + # "depth": depth_space, + # "temperature": temperature_space, + # "agent": gym.spaces.Box(-30, 30, (6, ), dtype=np.float32), + # "status": gym.spaces.Discrete(3), + # 'camera_matrix': gym.spaces.Box(-30, 30, (4, 4), dtype=np.float32) + # }) + + self.action_space = gym.spaces.Discrete(8) + self.max_step = 400 + + def reset(self, data_dir=None): + if data_dir == None: + data_dirs = os.listdir(os.path.join(PATH, "data", "room_setup_fire")) + data_dirs = [d for d in data_dirs if ("kitchen" in d or "craftroom" in d)] + data_dir = os.path.join(PATH, "data", "room_setup_fire", data_dirs[self.RNG.randint(len(data_dirs))]) + # data_dir = os.path.join(PATH, "data", "room_setup", "1a-0-0") + self.setup = SceneSetup(data_dir=data_dir, is_flood=True, record_mode=self.record_only) + if self.controller is not None: + self.controller.communicate({"$type": "terminate"}) + self.controller.socket.close() + self.controller = FloodAgentController(**self.controller_args) + self.controller.seed(self.RNG.randint(1000000)) + print("Controller connected") + self.controller.init_scene(self.setup) + self.num_step = 0 + self.last_action = None + self.last_target = None + if self.record_only: + return + + self.controller.do_action(0, "turn_by", {"angle": 90}) + self.controller.next_key_frame() + + return self.controller._obs()["RL"] + + # def step(self, action): + # """ + # for each type, if action_target is 0, ignore the action target + # """ + # if not isinstance(action, int): + # action = action.item() + # reward = -1 + # result, msg = None, None + # target = None + # if action == ActionSpace.WALK_TO_NEAREST_TARGET: + # targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_walk_to_single_step(self, target=target) + # elif action == ActionSpace.PICK_UP_NEAREST: + # targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_pickup(self, target=target, env_type="fire") + # elif action == ActionSpace.DROP: + # target = None + # result, msg = agent_drop(self, env_type="fire") + # elif action == ActionSpace.EXPLORE: + # target = None + # result, msg = agent_explore(self) + # reward -= 0.5 + # elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + # if self.last_action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + # target = self.last_target + # else: + # obs = self.controller._obs() + # obj_ids = np.unique(obs["sem_map"]["id"]) + # targets = [self.controller.manager.get_real_id(idx) for idx in obj_ids if self.controller.manager.get_real_id(idx) not in self.controller.finished] + # targets = [idx for idx in targets if idx is not None] + # target = int(self.RNG.choice(targets)) if len(targets) > 0 else None + # if target is None: + # result, msg = False, "no object in sight" + # else: + # result, msg = agent_walk_to_single_step(self, target=target) + # else: + # target = None + # reward -= 50 + # result, msg = False, "Invalid action" + # self.last_action = action + # self.last_target = target + # + # if result == False: + # reward -= 2 + # obs, info = self.controller._obs(), self.controller._info() + # info['message'] = msg + # info['success'] = result + # + # reward += self.controller._reward() + # done = self.controller._done() + # self.num_step += 1 + # if self.num_step >= self.max_step: + # done = True + # + # self.done = done + # info['action'] = action + # info['reward'] = reward + # return obs["RL"], reward, done, info + + def seed(self, seed): + self.RNG = np.random.RandomState(seed) + + def get_challenge_action(self, action): + target = None + ret = None + if action == ActionSpace.WALK_TO_NEAREST_TARGET: + targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.PICK_UP_NEAREST: + targets = [idx for idx in self.controller.target_ids if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "pick_up", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.DROP: + target = None + ret = "drop", None + elif action == ActionSpace.EXPLORE: + target = None + ret = "explore", None + elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + try: + if self.last_action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + target = self.last_target + else: + obs = self.controller._obs() + obj_ids = np.unique(obs["sem_map"]["id"]) + targets = [self.controller.manager.get_real_id(idx) for idx in obj_ids if self.controller.manager.get_real_id(idx) not in self.controller.finished] + targets = [idx for idx in targets if idx is not None] + target = int(self.RNG.choice(targets)) if len(targets) > 0 else None + except: + target = None + if target is None: + ret = "explore", None + else: + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + else: + target = None + ret = "explore", None + self.last_action = action + self.last_target = target + return ret \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py new file mode 100644 index 0000000..f9646b1 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py @@ -0,0 +1,580 @@ +from typing import Any, Tuple, Dict +from .object import ObjectStatus +from .agent import * +from .flood import FloorFlood +from .flood import FloodController +from tdw.add_ons.third_person_camera import ThirdPersonCamera +from tdw.add_ons.logger import Logger +from tdw.replicant.arm import Arm +from tdw.replicant.image_frequency import ImageFrequency +from tdw.add_ons.floorplan_flood import FloorplanFlood +from tdw.tdw_utils import TDWUtils +from tdw.librarian import HumanoidLibrarian +from tdw.output_data import OutputData, Images +from HAZARD.utils.vision import Detector +from HAZARD.utils.model import Semantic_Mapping +from HAZARD.utils.scene_setup import SceneSetup +import numpy as np +import cv2 +import copy +import os +import torch + +class FloodAgentController(FloodController): + """ + Never ever use self.commands in here! For safety uses, self.commands can only be used in parent class + """ + + def __init__(self, use_local_resources: bool = False, single_room: bool = True, reverse_observation: bool = False, + image_capture_path: str = None, log_path: str = None, record_only: bool = False, + use_dino: bool = False, **kwargs) -> None: + self.frame_count = 0 + self.use_local_resources = use_local_resources + self.image_capture_path = image_capture_path + self.reverse_observation = reverse_observation + self.log_path = log_path + self.action_slowdown = 0 + super().__init__(**kwargs) + self.screen_size = kwargs.get("screen_size", 512) + self.agents: List[FloodAgent] = [] + self.comm_counter = 0 + self.use_gt = kwargs.get("use_gt", True) + self.use_dino = use_dino + self.single_room = single_room + self.record_only = record_only + self.id2name = {} + self.other_containers = {} + if not self.use_gt: + if self.use_dino: + from HAZARD.utils.vision_dino import DetectorSAM + self.detector = DetectorSAM(**kwargs) + else: + self.detector = Detector(**kwargs) + # self.init_seg(vocab_path=f"{os.getcwd()}/seg/vocab.txt") + if use_local_resources: + self.update_replicant_url() + + self.map_size_h = kwargs.get("map_size_h", 64) + self.map_size_v = kwargs.get("map_size_v", 64) + self.grid_size = kwargs.get("grid_size", 0.25) + self.sem_map = Semantic_Mapping(device=None, screen_size=self.screen_size, + map_size_h=self.map_size_h, map_size_v=self.map_size_v, grid_size=self.grid_size) + + self.maps = [] + # self.init_seg() + + def update_replicant_url(self): + if not os.path.isfile(f"{os.getcwd()}/data/assets/replicant_0"): # There is no local model of replicant + print("There is no local model of replicant. ") + return + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME] = HumanoidLibrarian(Replicant.LIBRARY_NAME) + record = Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].get_record("replicant_0") + import platform + new_url = record.urls[platform.system()].split("/")[-1] + record.urls[platform.system()] = f"{LOCAL_PATH_PREFIX}/{new_url}" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].add_or_update_record(record, overwrite=True) + + def grid_to_real(self, grid_pos): + return self.sem_map.grid_to_real(grid_pos) + + def real_to_grid(self, real_pos): + return self.sem_map.real_to_grid(real_pos) + + def reset_scene(self): + # whatever the agent is holding, drop it + for agent in self.agents: + arms = agent.dynamic.held_objects.keys() + for arm in arms: + agent.drop(arm=arm) + while agent.action.status == ActionStatus.ongoing: + self.communicate([]) + + self.floor_flood_info = dict() + self.physical_flood_info = dict() + self.flood_candidate = dict() + self.initialized = False + self.add_ons = [] + self.id2name = {} + self.manager.reset() + self.frame_count = 0 + self.communicate([]) + + self.last_reward = None + self.communicate([{"$type": "destroy_all_objects"}]) + + def init_scene(self, setup: SceneSetup): + self.reset_scene() + + if self.log_path is not None: + logger = Logger(self.log_path) + self.add_ons.append(logger) + self.communicate([]) + + self.other_containers = {} + for obj in setup.objects: + self.manager.add_object(obj) + for commands in setup.commands_list: + if len(commands) == 1 and commands[0]["$type"] == "terminate": + continue + filtered_commands = [] + for command in commands: + tp = command["$type"] + if tp == "terminate": + break + if tp[:4] == "send" or tp.find("avatar") != -1 or "avatar_id" in command: + continue + filtered_commands.append(command) + if tp == "add_object": + name = command["name"] + idx = command["id"] + self.id2name[idx] = name + if tp.startswith("add_") and tp.endswith("_container"): + self.other_containers[command['id']] = command['container_id'] + # json.dump(filtered_commands, open("/data/private/zqh/tmp.json", "w")) + self.communicate(filtered_commands) + + + if not self.record_only: + if len(self.agents) == 0: + self.agents: List[FloodAgent] = [] + for agent_pos in setup.agent_positions: + idx = self.get_unique_id() + self.agents.append( + FloodAgent(replicant_id=idx, position=agent_pos, image_frequency=ImageFrequency.always)) + self.add_agent(idx, agent_pos) + self.add_ons.append(self.agents[-1]) + else: + assert (len(self.agents) == len(setup.agent_positions)) + for i in range(len(self.agents)): + idx = self.agents[i].replicant_id + self.agents[i].reset(position=setup.agent_positions[i]) + self.add_ons.append(self.agents[i]) + self.add_agent(idx, setup.agent_positions[i]) + + self.maps = [None] * len(self.agents) + self.target = setup.targets + if self.use_dino and not self.use_gt: + self.detector.set_targets(self.target) + self.target_ids = setup.target_ids + self.target_names = setup.target_names + self.target_id2category = setup.target_id2category + self.target_id2name = setup.target_id2name + self.finished = [] + self.communicate([]) + if self.image_capture_path is not None: + # camera = ThirdPersonCamera(avatar_id="record", position={"x": -7.78, "y": 7.67, "z": 0.16}, + # look_at=self.agents[0].replicant_id) + if not self.record_only: + camera = ThirdPersonCamera(avatar_id="record", + position={"x": 0.0, "y": 10.0, "z": 0.0}, + look_at={"x": 0.0, "y": 0.0, "z": 0.0}) + # if len(self.agents) == 0 else self.agents[0].replicant_id) + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + else: + camera = ThirdPersonCamera(avatar_id="record", position={"x": 1.5, "y": 2.0, "z": 0.0}, + look_at={"x": 0.0, "y": 0.0, "z": 0.0}) + commands = [{"$type": "set_screen_size", "width": self.screen_size * 4, "height": self.screen_size * 4}, + {"$type": "set_target_framerate", "framerate": 30}] + self.add_ons.extend([camera]) + else: + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + commands.extend([{"$type": "set_floorplan_roof", "show": False}]) + + if self.image_capture_path is not None: + commands.extend([{"$type": "set_pass_masks", "pass_masks": ["_img"], "avatar_id": "record"}, + {"$type": "send_images", "frequency": "always", "ids": ["record"]}]) + + # Get the floors for this floorplan. Create flood objects for each floor. + # These will be at 0 in Y, and not visible until their height is adjusted. + # The index is the number of the scene, i.e. "1". + if self.single_room: + # use fake visual effect + from tdw.librarian import SceneLibrarian + lib = SceneLibrarian() + record = lib.get_record(setup.scene_name) + rooms = record.rooms[0].alcoves + # rooms = [] + rooms.append(record.rooms[0].main_region) + effect_name = 'fplan1_floor1' + original_effect_size = (4.1796417236328125, 2.817157745361328, 5.654577255249023) + for i, room in enumerate(rooms): + floor_id = self.get_unique_id() + rotation = {"x": 90, "y": 0, "z": 0} + position = {'x': room.center[0], 'y': room.center[1], 'z': room.center[2]} + self.commands.append(Controller.get_add_visual_effect(name=effect_name, + effect_id=floor_id, + position=position, + rotation=rotation, + library="flood_effects.json")) + self.commands.append({"$type": "scale_visual_effect", + "scale_factor": {"x": room.bounds[0]/original_effect_size[0], + "y": room.bounds[2]/original_effect_size[1], + "z": 0.01 + }, + "id": floor_id}) + # Add to dictionary of currently-flooded floors. Position will include current height (flood level). + self.floor_flood_info[i] = FloorFlood(floor_id=floor_id) + self.manager.add_flood(id=floor_id, position=position, direction=rotation, + scale=np.array([1.0, 1.0, 1.0])) + else: + self._floors = FloorplanFlood._FLOOD_DATA[setup.scene_name.split("_")[-1][0]] + for i in range(len(self._floors)): + floor = self._floors[str(i + 1)] + floor_name = floor["name"] + floor_id = self.get_unique_id() + position = floor["position"] + rotation = {"x": 90, "y": 0, "z": 0} + self.commands.append(Controller.get_add_visual_effect(name=floor_name, + effect_id=floor_id, + position=position, + rotation=rotation, + library="flood_effects.json")) + # Add to dictionary of currently-flooded floors. Position will include current height (flood level). + self.floor_flood_info[i] = FloorFlood(floor_id=floor_id) + self.manager.add_flood(id=floor_id, position=position, direction=rotation, + scale=np.array([1.0, 1.0, 1.0])) + + resp = self.communicate([{"$type": "send_scene_regions"}]) + self.manager.flood_manager.source_from = setup.flood_source_from + self.manager.flood_manager.set_scene_bounds(resp=resp) + self.add_ons.append(self.manager) + + self.manager.prepare_segmentation_data() + self.initialized = True + for obj in self.target_ids: + commands.append({"$type": "set_kinematic_state", "id": obj, "is_kinematic": False, "use_gravity": True}) + for obj in self.manager.objects: + if self.manager.objects[obj].has_buoyancy: + commands.append({"$type": "set_kinematic_state", "id": obj, "is_kinematic": False, "use_gravity": True}) + self.communicate(commands) + + if not self.record_only: + commands = [ + {"$type": "set_field_of_view", "field_of_view": 120.0, "avatar_id": str(self.agents[0].replicant_id)}] + """add a backpack or similar to the agent's left hand""" + self.container_name = "backpack" if "container" not in setup.other else setup.other["container"] + self.container_id = self.get_unique_id() + self.manager.add_object(ObjectStatus(idx=self.container_id, waterproof=True, has_buoyancy=False)) + + agent_pos = self.agents[0].dynamic.transform.position + commands.append(self.get_add_object(model_name=self.container_name, object_id=self.container_id, + position=TDWUtils.array_to_vector3(agent_pos))) + self.communicate(commands) + self.agents[0].grasp(target=self.container_id, arm=Arm.left, axis=None, angle=None) + self.next_key_frame() + self.agents[0].reach_for(target=TDWUtils.array_to_vector3([-0.3, 1.0, 0.3]), absolute=False, arrived_at=0.1, + arm=Arm.left) + self.next_key_frame() + self.agents[0].reset_arm(arm=Arm.left) + self.next_key_frame() + + # TODO add source + # self.init_obi() + # for idx in range(len(setup.flood_positions)): + # self.add_physical_flood(position=setup.flood_positions[idx], + # direction=setup.flood_directions[idx], + # speed=setup.flood_speed[idx]) + + def next_key_frame(self, force_direction=None) -> Tuple[List[ActionStatus], List[int]]: + # print("next_key_frame") + agent_idx = 0 + action_slowdown = 0 + if force_direction is not None: + position = self.agents[agent_idx].dynamic.transform.position + if self.manager.flood_manager.query_point_underwater(position): + facing = self.agents[agent_idx].dynamic.transform.forward + force_scale = (force_direction * (facing / np.linalg.norm(facing))).sum() + action_slowdown += (1 - force_scale) * self.constants.AGENT_DRAG_COEFFICIENT + + self.action_slowdown += action_slowdown + if self.action_slowdown > 1: + self.action_slowdown -= 1 + self.frame_count += 1 + self.manager.flood_manager.evolve() + + initial_status = [] + have_ongoing_action = False + for agent in self.agents: + if agent.action is not None: + initial_status.append(copy.deepcopy(agent.action.status)) + if initial_status[-1] == ActionStatus.ongoing: + have_ongoing_action = True + else: + initial_status.append(None) + if not have_ongoing_action: + self.communicate([]) + print("no ongoing action") + return initial_status, [] + num_step = 0 + while True: + num_step += 1 + if num_step > 10000: + raise RuntimeError("num_step > 10000") + self.communicate([]) + + changed = False + for i, agent in enumerate(self.agents): + if initial_status[i] is not None and agent.action.status != initial_status[i]: + changed = True + break + if changed: + break + + final_status = [] + changed_agents = [] + for i, agent in enumerate(self.agents): + final_status.append(copy.deepcopy(agent.action.status) if agent.action is not None else None) + if initial_status[i] != final_status[i]: + changed_agents.append(i) + + self.communicate([]) + return final_status, changed_agents + + def do_action(self, agent_idx: int, action: str, params: Dict[str, Any] = dict()) -> None: + """ + See the FireAgent class for allowed actions and their parameters. + """ + if action == "stop": + return + return getattr(self.agents[agent_idx], action)(**params) + + def get_agent_status(self, idx) -> FloodAgent: + return self.agents[idx] + + def find_nearest_object(self, agent_idx: int = 0, objects: List[int] = None): + current_position = self.agents[agent_idx].dynamic.transform.position + return self.manager.find_nearest_object(pos=current_position, objects=objects) + + def replace_with_local_path(self, commands): + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + download_cmds = [] + for command in commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for command in self.commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for m in self.add_ons: + if not m.initialized: + add_on_commands = m.get_initialization_commands() + else: + add_on_commands = m.commands + for command in add_on_commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + if len(download_cmds) > 0: + fout = open(f"{os.getcwd()}/data/assets/download_assets.sh", "w") + for cmd in download_cmds: + fout.write(cmd) + print("Please run data/assets/download_assets.sh first!") + exit(0) + return commands + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + if self.initialized: + self.frame_count += 1 + for agent in self.agents: + idx = agent.grasp_id() + if idx is None: + continue + dist = np.linalg.norm((agent.dynamic.transform.position - self.manager.objects[idx].position) * np.array([1, 0, 1])) + if dist > 3.0: + agent.fail_grasp() + if self.use_local_resources: + commands = self.replace_with_local_path(commands) + resp = super().communicate(commands) + if self.initialized: + for target in self.target_ids: + if (np.abs(self.manager.objects[target].position).sum() > 50) and (target not in self.finished): + self.finished.append(target) + + if self.image_capture_path != None: + for i in range(len(resp) - 1): + r_id = OutputData.get_data_type_id(resp[i]) + # Get Images output data. + if r_id == "imag": + images = Images(resp[i]) + # Determine which avatar captured the image. + if images.get_avatar_id() == "record": + # Save the image. + TDWUtils.save_images(images=images, filename=str(self.comm_counter), + output_directory=self.image_capture_path) + self.comm_counter += 1 + return resp + + def get_seg_mask(self, rgb, obj2idx): + # TODO check the performance + semantic_input, _ = self.predictor.run_on_image(rgb, obj2idx) + return semantic_input + + def get_flood_height_observation(self, idx, width=512, height=512): + depth = TDWUtils.get_depth_values(self.agents[idx].dynamic.images["depth"], width=width, height=height) + depth = np.flip(depth, axis=0) + camera_matrix = self.agents[idx].dynamic.camera_matrix + + point_cloud = TDWUtils.get_point_cloud(depth=depth, camera_matrix=camera_matrix, vfov=120.0) + # fout = open("point_cloud.txt", "w") + # bs, h, w = 1, height, width + # for i in range(bs): + # for j in range(h): + # for k in range(w): + # for t in range(3): + # print(point_cloud[t, j, k].item(), end=' ', file=fout) + # print('', file=fout) + # shape: (3, 512, 512) + # down sample to 16x16 + point_cloud = point_cloud[:, ::(width//16), ::(width//16)] + temp = np.zeros((16, 16)) + for i in range(16): + for j in range(16): + flood_height = self.manager.query_point_flood_height(point_cloud[:, i, j]) + temp[i, j] = flood_height + temp = cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST) + return temp + + @torch.no_grad() + def _obs(self, agent_idx: int = 0): + # print("get obs") + + self.manager.prepare_segmentation_data() + self.communicate([]) + + obs = dict() + """ + raw observation: RGBD, temperature + """ + rgb = self.agents[agent_idx].dynamic.get_pil_image() + id_image = np.array(self.agents[agent_idx].dynamic.get_pil_image("id")) + if self.reverse_observation: + rgb = np.flip(rgb, axis=0) + id_image = np.flip(id_image, axis=0) + seg_mask = None + if self.use_gt: + seg_mask = self.manager.segm.get_seg_mask(id_image) + else: + rcnn_mask = self.detector.inference(np.array(rgb)) + seg_mask = self.manager.segm.get_seg_mask(np.array(id_image), + rcnn=rcnn_mask, + id_list=self.manager.id_list) + + depth = TDWUtils.get_depth_values(self.agents[agent_idx].dynamic.images["depth"], width=self.screen_size, height=self.screen_size) + depth = np.flip(depth, axis=0) + + rgb = np.array(rgb).astype(np.float32).transpose((2, 0, 1)).astype(np.float32) * 1.0 / 255 + depth = depth.reshape((1, self.screen_size, self.screen_size)).astype(np.float32) + + flood_height = self.get_flood_height_observation(agent_idx, width=self.screen_size, height=self.screen_size) + flood_height = flood_height.reshape((1, self.screen_size, self.screen_size)).astype(np.float32) + obs["raw"] = dict( + rgb=rgb, + depth=depth, + log_temp=flood_height, + seg_mask=seg_mask + ) + + """ + mapped observation + """ + camera_matrix = self.agents[agent_idx].dynamic.camera_matrix.reshape((4, 4)) + obs_concat = np.concatenate([rgb, depth, flood_height], axis=0) + sem = self.sem_map.forward(obs=obs_concat, id_map=seg_mask, camera_matrix=camera_matrix, maps_last=self.maps[agent_idx], + position=self.agents[agent_idx].dynamic.transform.position, record_mode=self.record_only, + targets=[self.manager.id_renumbering[target] for target in self.target_ids]) + obs["sem_map"] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + self.maps[agent_idx] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + + """ + map of goal and agent + """ + agent_pos = self.sem_map.real_to_grid(self.agents[agent_idx].dynamic.transform.position) + target_poss = [self.sem_map.real_to_grid(self.manager.objects[idx].position) for idx in self.target_ids] + + goal_map = np.zeros((self.map_size_h, self.map_size_v)) + for (i, target_pos) in enumerate(target_poss): + if self.target_ids[i] in self.finished: + continue + if target_pos[0] < 0 or target_pos[0] >= self.map_size_h or target_pos[1] < 0 or target_pos[1] >= self.map_size_v: + continue + if not (sem["id"] == self.manager.get_renumbered_id(self.target_ids[i])).any(): + continue + goal_map[target_pos[0], target_pos[1]] = 1 + if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: + goal_map[agent_pos[0], agent_pos[1]] = -2 + rad = self.agents[agent_idx].get_facing() + rad = int(rad / (np.math.pi / 4)) + if rad < 0: + rad += 8 + dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] + dz = list([0, 1, 1, 1, 0, -1, -1, -1])[rad] + goal_map[agent_pos[0] + dx][agent_pos[1] + dz] = -1 + obs["goal_map"] = goal_map + + """ + agent info + """ + obs["camera_matrix"] = camera_matrix + + RL_obs = np.zeros((5, self.map_size_h, self.map_size_v)) + RL_obs[0] = obs["sem_map"]["height"] + RL_obs[1] = obs["sem_map"]["explored"] + RL_obs[2] = obs["sem_map"]["id"] + RL_obs[3] = goal_map + RL_obs[4] = obs["sem_map"]["other"][0] + obs["RL"] = RL_obs + return obs + + def _info(self): + info = dict() + info['vector'] = np.zeros(8) # for consistency + info['agent_positions'] = [agent.dynamic.transform.position for agent in self.agents] + info['targets'] = self.manager.get_renumbered_list(self.target_ids) + info['finished targets'] = self.manager.get_renumbered_list(self.finished) + info['camera_matrices'] = [agent.dynamic.camera_matrix.reshape((4, 4)) for agent in self.agents] + info['sr'] = f"{len(self.finished)}/{len(self.target_ids)}" + return info + + # this is a toy reward function + def _reward(self, agent_idx: int = 0): + if self.last_reward is None: + self.last_reward = 0 + + reward = 0 + + agent_pos = self.agents[agent_idx].dynamic.transform.position + nearest_target = self.manager.find_nearest_object(agent_pos, self.target_ids) + + reward += len(self.finished) * 20 + if Arm.left in self.agents[0].dynamic.held_objects: + reward -= 10 + else: + dist = np.linalg.norm(agent_pos - self.manager.objects[nearest_target].position) + reward -= dist * 10 + ret = reward - self.last_reward - 0.1 + self.last_reward = reward + return ret + + def _done(self, agent_idx: int = 0): + if len(self.finished) == len(self.target_ids): + return True + return False \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/manager.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/manager.py new file mode 100644 index 0000000..0546a61 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/manager.py @@ -0,0 +1,256 @@ +from tdw.add_ons.add_on import AddOn +from tdw.output_data import OutputData, Transforms, Bounds, Rigidbodies +from tdw.output_data import Replicants, SegmentationColors, ReplicantSegmentationColors +from typing import Dict, List, Set, Optional +import numpy as np +from .object import FloodManager, ObjectStatus +from .utils import * +from HAZARD.utils.seg_id import SegmentationID + +""" +Add-on to control the evolvement of objects, including temperature and state. +Future development may include changing object appearances. +""" + + +class FloodObjectManager(AddOn): + def __init__(self, constants=default_const, source_position=None, source_from=None, floor_ids=[], + floor_positions=[], floor_sizes=[], floor_directions=[], flood_density=1.0): + super().__init__() + self.constants = constants + self.objects: Dict[int, ObjectStatus] = dict() + self.flood_manager = FloodManager(ascending_speed=constants.ASCENDING_SPEED, + ascending_interval=constants.ASCENDING_INTERVAL, + max_height=constants.MAX_HEIGHT, + floor_ids=[], + source_position=source_position, + source_from=source_from, + floor_positions=floor_positions, + floor_sizes=floor_sizes, + floor_directions=floor_directions, + flood_density=flood_density, + roll_theta=constants.SLOP_ANGLE, + flood_force_scale=constants.FLOOD_FORCE_SCALE, + drag_coefficient=constants.DRAG_COEFFICIENT) + self.objects_floating: Set[int] = set() + self.objects_flooded: Set[int] = set() + self.recover_command_list = [] + self.segm = SegmentationID() + self.id_renumbering = dict() + self.id_list = [0] + + def update_visual_effects(self): + new_effect_dict = self.flood_manager.evolve() + self.recover_command_list.reverse() + self.commands = [{"$type": "send_bounds"}, {"$type": "send_transforms"}, {"$type": "send_rigidbodies"}] + self.commands.extend(self.recover_command_list) + self.recover_command_list = [] + floor_flood_commands = [] + for floor_effect_idx in new_effect_dict: + for axis in ["yaw", "pitch", "roll"]: + if new_effect_dict[floor_effect_idx]["angles"][axis] > 0: + floor_flood_commands.append( + {"$type": "rotate_visual_effect_by", + "angle": new_effect_dict[floor_effect_idx]["angles"][axis], + "axis": axis, + "id": floor_effect_idx, + "is_world": True} + ) + self.recover_command_list.append( + {"$type": "rotate_visual_effect_by", + "angle": -new_effect_dict[floor_effect_idx]["angles"][axis], + "axis": axis, + "id": floor_effect_idx, + "is_world": True} + ) + floor_flood_commands.append( + {"$type": "scale_visual_effect", + "scale_factor": {"x": new_effect_dict[floor_effect_idx]["scales"]['x'], + "y": new_effect_dict[floor_effect_idx]["scales"]['y'], + "z": new_effect_dict[floor_effect_idx]["scales"]['z'] + }, + "id": floor_effect_idx} + ) + floor_flood_commands.append( + {"$type": "teleport_visual_effect", + "position": {"x": new_effect_dict[floor_effect_idx]["positions"]['x'], + "y": new_effect_dict[floor_effect_idx]["positions"]['y'], + "z": new_effect_dict[floor_effect_idx]["positions"]['z']}, + "id": floor_effect_idx} + ) + self.objects_flooded = set() + self.objects_floating = set() + counter = 0 + for idx in self.objects: + if self.objects[idx].name == "Agent": + continue + obj = self.objects[idx] + status, buoyancy_scale = self.flood_manager.update_object_status_new(self.objects[idx]) + if status.state == ObjectState.FLOODED or status.state == ObjectState.FLOODED_FLOATING: + self.objects_flooded.add(idx) + if status.state == ObjectState.FLOATING or status.state == ObjectState.FLOODED_FLOATING: + self.objects_floating.add(idx) + # height_diff = self.query_height_diff(position=None) + # if not start_floating: + # floor_flood_commands.append({ + # "$type": "teleport_object_by", "id": status.idx, + # "position": {"x":0.0, "y":height_diff, "z":0.0}, "absolute": True + # }) + # add buoyancy + if isinstance(obj.size, np.ndarray) and isinstance(obj.velocity, np.ndarray): + counter += 1 + horizontal_force = self.flood_manager.cal_horizontal_force(object=self.objects[idx], + source=self.flood_manager.source_position) + floor_flood_commands.append({"$type": "apply_force_to_object", + "id": status.idx, + "force": {"x": horizontal_force["x"], + "y": buoyancy_scale + horizontal_force["y"], + "z": horizontal_force["z"]}}) + else: + floor_flood_commands.append({"$type": "apply_force_to_object", + "id": status.idx, + "force": {"x": 0, + "y": buoyancy_scale, + "z": 0}}) + # print(counter) + self.commands.extend([{"$type": "send_bounds"}, {"$type": "send_transforms"}]) + self.commands.extend(floor_flood_commands) + + def reset(self): + self.objects = dict() + self.objects_floating = set() + self.objects_flooded = set() + self.flood_manager.reset() + self.recover_command_list = [] + self.commands = [] + self.update_visual_effects() + self.initialized = False + self.id_renumbering = dict() + self.id_list = [0] + + def get_initialization_commands(self) -> List[dict]: + return [{"$type": "send_bounds"}, + {"$type": "send_transforms"}, + {"$type": "send_rigidbodies"}] + + def on_send(self, resp: List[bytes]) -> None: + for i in range(len(resp) - 1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "tran": + tran = Transforms(resp[i]) + for j in range(tran.get_num()): + idx = tran.get_id(j) + if idx in self.objects: + self.objects[idx].position = tran.get_position(j) + self.objects[idx].rotation = tran.get_rotation(j) + else: + print("Warning: object with id {} not found in FloodObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, position=tran.get_position(j))) + elif r_id == "boun": + boun = Bounds(resp[i]) + for j in range(boun.get_num()): + idx = boun.get_id(j) + if idx in self.objects: + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + if self.objects[idx].size[0] < 0: + print(boun.get_front(j), boun.get_back(j), boun.get_left(j), boun.get_right(j), boun.get_top(j), boun.get_bottom(j)) + else: + print("Warning: object with id {} not found in FloodObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, size=boun.get_front(j) + boun.get_right(j) + boun.get_top( + j) - boun.get_back(j) - boun.get_left(j) - boun.get_bottom(j))) + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + if self.objects[idx].size[0] < 0: + print(boun.get_front(j), boun.get_back(j), boun.get_left(j), boun.get_right(j), boun.get_top(j), boun.get_bottom(j)) + elif r_id == "repl": + repl = Replicants(resp[i]) + for j in range(repl.get_num()): + idx = repl.get_id(j) + if idx in self.objects: + self.objects[idx].position = repl.get_position(j) + else: + print("Warning: object with id {} not found in FloodObjectManager".format(idx)) + elif r_id == "rigi": + rigi = Rigidbodies(resp[i]) + for j in range(rigi.get_num()): + idx = rigi.get_id(j) + if idx in self.objects: + self.objects[idx].velocity = rigi.get_velocity(j) + else: + print("Warning: object with id {} not found in FloodObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, velocity=rigi.get_velocity(j))) + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "segm": + segm = SegmentationColors(resp[i]) + self.segm.process(segm, id_renumbering=self.id_renumbering) + elif r_id == "rseg": + segm = ReplicantSegmentationColors(resp[i]) + self.segm.process(segm, id_renumbering=self.id_renumbering) + self.update_visual_effects() + + def query_height_diff(self, position): + # TODO different height diff + return self.flood_manager.height_diff + + def add_object(self, obj: ObjectStatus): + self.objects[obj.idx] = obj + if obj.idx not in self.id_renumbering: + self.id_list.append(obj.idx) + self.id_renumbering[obj.idx] = len(self.id_list) - 1 + + def add_flood(self, id, position, scale, direction): + self.flood_manager.add_floor_flood(id, position, scale, direction) + + def remove_object(self, idx: int): + if idx in self.objects: + del self.objects[idx] + + def query_point_underwater(self, point: np.ndarray) -> float: + return self.flood_manager.query_point_underwater(point) + + def query_point_flood_height(self, point: np.ndarray) -> float: + return self.flood_manager.query_point_flood_height(point) + + def find_nearest_object(self, pos: np.ndarray, objects: Optional[List[int]] = None): + min_dist = 1e10 + min_idx = None + it = iter(self.objects) if objects is None else iter(objects) + for idx in it: + if self.objects[idx].name != "Object": + continue + dist = np.linalg.norm(self.objects[idx].position - pos) + if dist < min_dist: + min_dist = dist + min_idx = idx + return min_idx + + def prepare_segmentation_data(self): + self.commands.extend([{"$type": "send_segmentation_colors"}, + {"$type": "send_categories"}, {"$type": "send_replicant_segmentation_colors"}]) + + def get_renumbered_id(self, idx: int): + if idx in self.id_renumbering: + return self.id_renumbering[idx] + return 0 + + def get_renumbered_list(self, L: List[int]): + return [self.id_renumbering[idx] for idx in L if idx in self.id_renumbering] + + def get_real_id(self, idx: int): + if idx >= len(self.id_list) or idx == 0: + return None + return self.id_list[idx] diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/object.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/object.py new file mode 100644 index 0000000..cb04cd7 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/object.py @@ -0,0 +1,334 @@ +import pdb +from typing import Dict, Set, List, Optional +from .utils import * +import numpy as np +import math +from tdw.scene_data.scene_bounds import SceneBounds +import random + + +class ObjectStatus: + def __init__(self, idx, constants: Constants = default_const, + waterproof: bool = False, has_buoyancy: bool = False, state: int = None, + position: np.ndarray = None, rotation: np.ndarray = None, + size: np.ndarray = None, + velocity: np.ndarray = np.array([0, 0, 0])): + self.idx: int = idx + self.waterproof: bool = waterproof + self.has_buoyancy: bool = has_buoyancy + self.state: int = (ObjectState.NORMAL if state is None else state) + self.position: np.ndarray = position + self.rotation: np.ndarray = rotation + self.size: np.ndarray = size + self.velocity: Optional[np.ndarray] = velocity + self.constants: Constants = constants + self.name = "Object" + self.prev_height_under_water = 0.0 + + def in_water(self): + if self.state == ObjectState.NORMAL: + if self.waterproof and self.has_buoyancy: + self.state = ObjectState.FLOATING + elif self.waterproof and not self.has_buoyancy: + self.state = ObjectState.NORMAL + elif not self.waterproof and self.has_buoyancy: + self.state = ObjectState.FLOODED_FLOATING + else: + self.state = ObjectState.FLOODED + + def out_of_water(self): + if self.state == ObjectState.FLOODED_FLOATING: + self.state = ObjectState.FLOODED + elif self.state == ObjectState.FLOATING: + self.state = ObjectState.NORMAL + + def center(self): + return self.position + self.size * np.array([0, 0.5, 0]) + + def bottom(self): + return self.position + + def top(self): + return self.position + self.size * np.array([1, 1, 1]) + + def left(self): + return self.position + self.size * np.array([-0.5, 0.5, 0]) + + def right(self): + return self.position + self.size * np.array([0.5, 0.5, 0]) + + def front(self): + return self.position + self.size * np.array([0, 0.5, 0.5]) + + def back(self): + return self.position + self.size * np.array([0, 0.5, -0.5]) + + def area(self): + return self.size[0] * self.size[2] + + def horizontal_area(self): + return self.size[1] * self.size[2] + +class AgentStatus(ObjectStatus): + def __init__(self, idx, position, size, constants=default_const): + super().__init__(idx, constants=constants, waterproof = True, has_buoyancy = False, + state=ObjectState.NORMAL, position = position, size=size) + self.name = "Agent" + +class FloodManager: + def __init__(self, ascending_speed: float = 0.01, + ascending_interval: int = 1, + source_position: np.ndarray = None, + source_from: str = "x_max", + max_height: float = 1.5, + floor_ids: List[int] = [], + floor_positions: List[np.ndarray] = [], + floor_sizes: List[np.ndarray] = [], + floor_directions: List[np.ndarray] = [], + roll_theta: float = 10, + flood_density: float = 1.0, + drag_coefficient: float = 0.47, + flood_force_scale: float = 1.0, + ): + self.ascending_speed = ascending_speed + self.ascending_interval = ascending_interval + self.max_height = max_height + self.source_position = source_position + self.source_from = source_from + self.floor_ids = floor_ids + self.floor_positions = floor_positions + self.floor_sizes = floor_sizes + self.floor_directions = floor_directions + self.floor_flood_angles = [ + { + "w": 0.0, + "x": 0.0, + "y": 0.0, + "z": 0.0 + } for i in range(len(self.floor_positions)) + ] + self.old_pitch_theta = 0 + self.old_roll_theta = 0 + self.original_roll_theta = roll_theta + self.roll_theta = roll_theta + self.fluid_velocity = self.ascending_speed / self.ascending_interval / math.tan(abs(roll_theta / 180) * math.pi) + self.floor_flood_heights = [0.0 for i in range(len(self.floor_positions))] + self.source_height = 0 + self.ascending_counter = 0 + self.height_diff = 0 + self.flood_density = flood_density + self.drag_coefficient = drag_coefficient + self.flood_force_scale = flood_force_scale + + def reset(self): + self.roll_theta = self.original_roll_theta + self.source_height = 0 + + def add_floor_flood(self, id, position, scale, direction): + self.floor_ids.append(id) + self.floor_positions.append(position) + self.floor_sizes.append(scale) + self.floor_directions.append(direction) + + def get_updated_flood_angles_and_heights(self): + flood_effect_dict = {} + for i, floor_id in enumerate(self.floor_ids): + flood_effect_dict[floor_id] = {} + + # cal heights + for i in range(len(self.floor_ids)): + floor_position_for_calculation = self.floor_positions[i]["x"] if self.source_from in ['x_max', 'x_min'] \ + else self.floor_positions[i]["z"] + distance_to_source = abs(self.source_location_for_calculation - floor_position_for_calculation) + height_diff_to_source = math.tan(abs(self.roll_theta/180)*math.pi) * distance_to_source + self.floor_positions[i]["y"] = self.source_height - height_diff_to_source + flood_effect_dict[self.floor_ids[i]]["positions"] = { + "x": self.floor_positions[i]["x"], + "y": self.floor_positions[i]["y"], + "z": self.floor_positions[i]["z"] + } + + for i in range(len(self.floor_ids)): + if self.source_from == 'x_max': + flood_effect_dict[self.floor_ids[i]]["angles"] = { + "pitch": 0.0, + "yaw": 0.0, + "roll": self.roll_theta + } + flood_effect_dict[self.floor_ids[i]]["scales"] = { + "x": math.cos(abs(self.old_roll_theta / 180) * math.pi) / math.cos( + abs(self.roll_theta / 180) * math.pi), # * self.floor_sizes[i][0], + "y": 1.0, + "z": 1.0, # * self.floor_sizes[i][2] + } + elif self.source_from == 'x_min': + flood_effect_dict[self.floor_ids[i]]["angles"] = { + "pitch": 0.0, + "yaw": 0.0, + "roll": -self.roll_theta + } + flood_effect_dict[self.floor_ids[i]]["scales"] = { + "x": math.cos(abs(self.old_roll_theta / 180) * math.pi) / math.cos( + abs(self.roll_theta / 180) * math.pi) * self.floor_sizes[i][0], + "y": 1.0, + "z": 1.0 * self.floor_sizes[i][2] + } + elif self.source_from == 'z_max': + flood_effect_dict[self.floor_ids[i]]["angles"] = { + "pitch": self.roll_theta, + "yaw": 0.0, + "roll": 0.0 + } + flood_effect_dict[self.floor_ids[i]]["scales"] = { + "x": 1.0 * self.floor_sizes[i][0], + "y": 1.0, + "z": math.cos(abs(self.old_roll_theta / 180) * math.pi) / math.cos( + abs(self.roll_theta / 180) * math.pi) * self.floor_sizes[i][2] + } + elif self.source_from == 'z_min': + flood_effect_dict[self.floor_ids[i]]["angles"] = { + "pitch": -self.roll_theta, + "yaw": 0.0, + "roll": 0.0 + } + flood_effect_dict[self.floor_ids[i]]["scales"] = { + "x": 1.0 * self.floor_sizes[i][0], + "y": 1.0, + "z": math.cos(abs(self.old_roll_theta / 180) * math.pi) / math.cos( + abs(self.roll_theta / 180) * math.pi) * self.floor_sizes[i][2] + } + else: + assert False + self.old_roll_theta = self.roll_theta + return flood_effect_dict + + def evolve(self): + self.ascending_counter += 1 + self.height_diff = 0 + if self.ascending_counter % self.ascending_interval == 0: + self.ascending_counter = 0 + self.height_diff += (self.ascending_speed * random.random() * 2.0) + self.source_height += self.ascending_speed + if self.source_height >= self.max_height: + self.height_diff -= (self.source_height - self.max_height) + self.source_height = self.max_height + if self.roll_theta > 0: + old_length = self.source_height / math.tan(abs(self.roll_theta / 180) * math.pi) + new_length = old_length + self.fluid_velocity * self.ascending_interval + self.roll_theta = math.atan(self.source_height / new_length) * 180 / math.pi + elif self.roll_theta < 0: + old_length = self.source_height / math.tan(abs(self.roll_theta / 180) * math.pi) + new_length = old_length + self.fluid_velocity * self.ascending_interval + self.roll_theta = -math.atan(self.source_height / new_length) * 180 / math.pi + return self.get_updated_flood_angles_and_heights() + + def query_point_underwater(self, point: np.ndarray): + floor_position_for_calculation = point[0] if self.source_from in ['x_max', 'x_min'] else point[2] + distance_to_source = abs(self.source_location_for_calculation - floor_position_for_calculation) + height_diff_to_source = math.tan(abs(self.roll_theta / 180) * math.pi) * distance_to_source + flood_height = self.source_height - height_diff_to_source + return point[1] <= flood_height + + def query_height_beneath_water(self, object: ObjectStatus): + floor_position_for_calculation = object.bottom()[0] if self.source_from in ['x_max', 'x_min'] else object.bottom()[2] + distance_to_source = abs(self.source_location_for_calculation - floor_position_for_calculation) + height_diff_to_source = math.tan(abs(self.roll_theta / 180) * math.pi) * distance_to_source + flood_height = self.source_height - height_diff_to_source + return max(min(flood_height - min(object.bottom()[1], object.top()[1]), object.size[1]), 0) + + def update_object_status_old(self, object: ObjectStatus): + old_state = object.state + # Use top + # if object.top()[1] <= self.source_height: + # Use center + if self.query_point_underwater(object.center()): + # Use bottom + # if object.bottom()[1] <= self.source_height: + # Debug + # if object.bottom()[1] < 100: + object.in_water() + else: + object.out_of_water() + start_floating = False + stop_floating = False + if object.state == ObjectState.FLOODED_FLOATING or object.state == ObjectState.FLOATING: + if old_state != ObjectState.FLOODED_FLOATING and old_state != ObjectState.FLOATING: + start_floating = True + else: + if old_state == ObjectState.FLOODED_FLOATING or old_state == ObjectState.FLOATING: + stop_floating = True + return object, start_floating, stop_floating + + def update_object_status_new(self, object: ObjectStatus, clip_buoyancy: bool = True): + # Use top + # if object.top()[1] <= self.source_height: + # Use center + height_under_water = self.query_height_beneath_water(object) + if height_under_water > 0: # start flooding + # if height_under_water > object.size[1]: # Completely flooded + object.in_water() + else: + object.out_of_water() + # if clip_buoyancy: + # height_diff = height_under_water - object.prev_height_under_water + # height_diff = min(0.2*object.size[1], height_diff) + # height_under_water = height_diff + object.prev_height_under_water + # buoyancy_scale = self.flood_density / 1000 * height_under_water * abs(object.area()) * 9.81 + buoyancy_scale = 4.0 * self.flood_density / 1000 * height_under_water * abs(object.area()) * 9.81 + object.prev_height_under_water = height_under_water + return object, buoyancy_scale + + def cal_horizontal_force(self, source, object: ObjectStatus): + if self.query_height_beneath_water(object) <= 0: + return {"x": 0, "y": 0, "z": 0} + fluid_velocity = np.array([-self.fluid_velocity * self.drag_coefficient, 0, 0]) + velocity_diff = fluid_velocity - object.velocity + # Drag force 1/2 * fluid density * drag area * drag coefficient * velocity^2 + # drag_force_scale = 0.5 * self.flood_density / 1000 * abs(object.horizontal_area()) * np.linalg.norm(velocity_diff) + drag_force_scale = 2.0 * self.flood_density / 1000 * abs(object.horizontal_area()) * np.linalg.norm(velocity_diff) + drag_force_direction = velocity_diff / np.linalg.norm(velocity_diff) + drag_force = drag_force_scale * drag_force_direction + + # flood force + # distance = object.center() - source + # direction = distance / np.linalg.norm(distance) + # flood_force = direction * self.flood_force_scale * object.horizontal_area() + return {"x": drag_force[0], "y": drag_force[1], "z": drag_force[2]} + + def set_scene_bounds(self, resp=None): + self.scene_bounds = SceneBounds(resp=resp) + new_regions = [] + for fp in self.floor_positions: + for region in self.scene_bounds.regions: + position_diff = abs(region.center[0] - fp['x']) + abs(region.center[2] - fp['z']) + if position_diff < 0.3: + new_regions.append(region) + assert len(new_regions) == len(self.floor_positions) + self.scene_bounds.regions = new_regions + if len(new_regions) > 0: + self.x_max = max([region.x_max for region in self.scene_bounds.regions]) + self.x_min = min([region.x_min for region in self.scene_bounds.regions]) + self.z_max = max([region.z_max for region in self.scene_bounds.regions]) + self.z_min = min([region.z_min for region in self.scene_bounds.regions]) + else: + self.x_max = 0 + self.x_min = 0 + self.z_max = 0 + self.z_min = 0 + if self.source_from == "x_max": + self.source_location_for_calculation = self.x_max + elif self.source_from == "x_min": + self.source_location_for_calculation = self.x_min + elif self.source_from == "z_max": + self.source_location_for_calculation = self.z_max + elif self.source_from == "z_min": + self.source_location_for_calculation = self.z_min + else: + assert False + + def query_point_flood_height(self, target: np.ndarray): + floor_position_for_calculation = target[0] if self.source_from in ['x_max', 'x_min'] else target[2] + distance_to_source = abs(self.source_location_for_calculation - floor_position_for_calculation) + height_diff_to_source = math.tan(abs(self.roll_theta / 180) * math.pi) * distance_to_source + flood_height = max(self.source_height - height_diff_to_source, 0) + return flood_height diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/utils.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/utils.py new file mode 100644 index 0000000..a54be52 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/utils.py @@ -0,0 +1,43 @@ +""" +constants and hyperparameters here +""" +import numpy as np + +from enum import Enum +class ObjectState(Enum): + NORMAL = 0 + FLOODED = 1 + FLOODED_FLOATING = 2 + FLOATING = 3 + FLOODED_PICKED = 4 + +class Constants: + def __init__(self, + HAS_BUOYANCY: bool = False, + WATER_PROOF: bool = False, + # ASCENDING_SPEED: float = 0.05, + ASCENDING_SPEED: float = 0.01, + ASCENDING_INTERVAL: int = 10, + MAX_HEIGHT: float = 1.5, + FLOOD_DENSITY: float = 1000.0, + # FLOOD_FORCE_SCALE: float = 3.0, + FLOOD_FORCE_SCALE: float = 5.0, + SLOP_ANGLE: float = 3.0, + # DRAG_COEFFICIENT: float = 0.47 + # DRAG_COEFFICIENT: float = 4 # Coefficient of the drag force by the water + DRAG_COEFFICIENT: float = 50, + AGENT_DRAG_COEFFICIENT: float = 1.0 + ) -> None: + + self.HAS_BUOYANCY = HAS_BUOYANCY + self.WATER_PROOF = WATER_PROOF + self.ASCENDING_SPEED = ASCENDING_SPEED + self.ASCENDING_INTERVAL = ASCENDING_INTERVAL + self.MAX_HEIGHT = MAX_HEIGHT + self.FLOOD_DENSITY = FLOOD_DENSITY + self.FLOOD_FORCE_SCALE = FLOOD_FORCE_SCALE + self.DRAG_COEFFICIENT = DRAG_COEFFICIENT + self.SLOP_ANGLE = SLOP_ANGLE + self.AGENT_DRAG_COEFFICIENT = AGENT_DRAG_COEFFICIENT + +default_const = Constants() diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/__init__.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/__init__.py new file mode 100644 index 0000000..faaa5a6 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/__init__.py @@ -0,0 +1,7 @@ +from gym.envs.registration import register +from .wind_gym import WindEnv + +register( + id="wind-v0", + entry_point="envs.wind.wind_gym:WindEnv" +) diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/agent.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/agent.py new file mode 100644 index 0000000..4bda75b --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/agent.py @@ -0,0 +1,217 @@ +from typing import Optional, Union, List +from tdw.add_ons.replicant import * +from tdw.quaternion_utils import QuaternionUtils +from tdw.replicant.actions.action import Action, ActionStatus +from tdw.replicant.actions.look_at import LookAt +from tdw.replicant.actions.grasp import Grasp +from tdw.replicant.image_frequency import ImageFrequency +from .wind_utils import default_const + +import numpy as np + +class HoldStill(Action): + def __init__(self, duration: int): + self.image_frequency = ImageFrequency.once + self.duration = duration + self.counter = 0 + super().__init__() + + def get_initialization_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + self.counter = 0 + self.status = ActionStatus.ongoing + return super().get_initialization_commands(resp, static, dynamic, image_frequency) + + def get_ongoing_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic) -> List[dict]: + self.counter += 1 + if self.counter >= self.duration: + self.status = ActionStatus.success + return super().get_ongoing_commands(resp, static, dynamic) + + def get_end_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + return super().get_end_commands(resp, static, dynamic, image_frequency) + +class SequentialAction(Action): + def __init__(self, actions: List[Action]): + self._actions = actions + self._current = 0 + self.status: ActionStatus = None + self.image_frequency = ImageFrequency.once + super().__init__() + + def get_initialization_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, image_frequency: ImageFrequency) -> List[dict]: + self.image_frequency = image_frequency + self._current = 0 + + self.status = ActionStatus.ongoing + self.initialized = True + + return super().get_initialization_commands(resp=resp, static=static, dynamic=dynamic, image_frequency=image_frequency) + + def get_ongoing_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic) -> List[dict]: + commands = super().get_ongoing_commands(resp=resp, static=static, dynamic=dynamic) + # for convenience, if self._current < 0, it is in the middle of two actions, wait one frame + if not self._actions[self._current].initialized: + # The action's status defaults to `ongoing`, but actions sometimes fail prior to initialization. + if self._actions[self._current].status == ActionStatus.ongoing: + # Initialize the action and get initialization commands. + self._actions[self._current].initialized = True + initialization_commands = self._actions[self._current].get_initialization_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency) + + # Most actions are `ongoing` after initialization, but they might've succeeded or failed already. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(initialization_commands) + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # Continue an ongoing action. + else: + # Get the ongoing action commands. + action_commands = self._actions[self._current].get_ongoing_commands(resp=resp, + static=static, + dynamic=dynamic) + # This is an ongoing action. Append ongoing commands. + if self._actions[self._current].status == ActionStatus.ongoing: + commands.extend(action_commands) + # This action is done. Append end commands. + else: + commands.extend(self._actions[self._current].get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=self.image_frequency)) + # This action ended. If not successful, all commands are done. Otherwise, continue to the next action. + if self._actions[self._current].status != ActionStatus.ongoing: + if self._actions[self._current].status == ActionStatus.success: + self._current += 1 + # If there are more actions, continue. + if self._current < len(self._actions): + self.status = ActionStatus.ongoing + # Otherwise, this action is done. + else: + self.status = ActionStatus.success + else: + self.status = self._actions[self._current].status + return commands + + def get_end_commands(self, resp: List[bytes], static: ReplicantStatic, dynamic: ReplicantDynamic, + image_frequency: ImageFrequency) -> List[dict]: + return super().get_end_commands(resp=resp, + static=static, + dynamic=dynamic, + image_frequency=image_frequency) + +""" +The poses are relative to the agent's position and rotation. +Assume the agent is facing positive z. +""" +class WindAgent(Replicant): + def __init__(self, constants=default_const, *args, **kwargs): + self.constants = constants + self.heatmap = 0 + super().__init__(*args, **kwargs) + + # define custom actions here + def get_facing(self): + """return a radian""" + v = QuaternionUtils.multiply_by_vector(QuaternionUtils.get_inverse(self.dynamic.transform.rotation), np.array([0, 0, 1.0])) + v = v / np.linalg.norm(v) + v = np.arctan2(v[2], v[0]) + return v + + def pick_up(self, target: int, arm: Union[Arm, List[Arm]], + final_pose_loc: np.ndarray = np.array([0.1, 1.1, 0.6]), absolute: bool = False, + angle: Optional[float] = 90, axis: Optional[str] = "pitch") -> None: + if isinstance(arm, Arm): + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=arm, dynamic=self.dynamic, angle=angle, axis=axis, relative_to_hand=True, offset=0.0), + ReachFor(target=final_pose_loc, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + else: + self.action = SequentialAction([ + TurnTo(target=target), + LookAt(target=target, + duration=0.1, + scale_duration=True), + ReachFor(target=target, + arms=Replicant._arms_to_list(arm), + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=False, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + Grasp(target=target, arm=Arm.left, dynamic=self.dynamic, angle=angle, axis=axis), + ReachFor(target=final_pose_loc, + arms=[Arm.left], + absolute=absolute, + dynamic=self.dynamic, + collision_detection=self.collision_detection, + offhand_follows=True, + arrived_at=0.1, + previous=None, + duration=0.25, + scale_duration=True, + max_distance=1.0, + from_held=False, + held_point="bottom"), + ]) + + def grasp_id(self): + """ + if the agent is grasping an object, return the id of the object + otherwise, return None + """ + if isinstance(self.action, Grasp): + return self.action.target + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + return self.action._actions[self.action._current].target + return None + + def fail_grasp(self): + """ + if the agent is grasping an object and it is too far away, fail the grasp (this is controlled by the outside) + """ + if isinstance(self.action, Grasp): + self.action.status = ActionStatus.cannot_grasp + elif isinstance(self.action, SequentialAction) and isinstance(self.action._actions[self.action._current], Grasp): + self.action._actions[self.action._current].status = ActionStatus.cannot_grasp + else: + raise Exception("Not grasping now") \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/manager.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/manager.py new file mode 100644 index 0000000..6f36635 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/manager.py @@ -0,0 +1,168 @@ +from tdw.add_ons.add_on import AddOn +from .object import * +from tdw.output_data import OutputData, Transforms, Bounds, Rigidbodies +from tdw.output_data import Replicants, SegmentationColors, ReplicantSegmentationColors +from typing import Dict, List +import numpy as np +from HAZARD.utils.seg_id import SegmentationID + +""" +Add-on to manage the objects. +""" + +class WindObjectManager(AddOn): + def __init__(self, constants=default_const): + super().__init__() + self.constants = constants + self.objects: Dict[int, ObjectStatus] = dict() + self.wind_force_manager = WindForceManager() + self.effects = dict() + self.settled = set() + self.wind_v: np.ndarray = np.array([0, 0, 0]) + self.num_frame = 0 + self.segm = SegmentationID() + self.id_renumbering = dict() + self.id_list = [0] + + def reset(self): + self.objects = dict() + self.effects = dict() + self.settled = set() + self.num_frame = 0 + self.wind_v = np.array([0, 0, 0]) + self.commands = [] + self.initialized = False + self.id_renumbering = dict() + self.id_list = [0] + + def get_initialization_commands(self) -> List[dict]: + return [{"$type": "send_bounds"}, + {"$type": "send_transforms"}, + {"$type": "send_rigidbodies"}] + + def on_send(self, resp: List[bytes]) -> None: + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "tran": + tran = Transforms(resp[i]) + for j in range(tran.get_num()): + idx = tran.get_id(j) + if idx in self.objects: + self.objects[idx].position = tran.get_position(j) + self.objects[idx].rotation = tran.get_rotation(j) + else: + print("Warning: object with id {} not found in WindObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, position=tran.get_position(j))) + elif r_id == "boun": + boun = Bounds(resp[i]) + for j in range(boun.get_num()): + idx = boun.get_id(j) + if idx in self.objects: + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + if self.objects[idx].size[0] < 0: + print(boun.get_front(j), boun.get_back(j), boun.get_left(j), boun.get_right(j), boun.get_top(j), boun.get_bottom(j)) + else: + print("Warning: object with id {} not found in WindObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, size=boun.get_front(j) + boun.get_right(j) + boun.get_top(j) - boun.get_back(j) - boun.get_left(j) - boun.get_bottom(j))) + concat = np.zeros([6, 3]) + concat[0] = boun.get_front(j) + concat[1] = boun.get_back(j) + concat[2] = boun.get_left(j) + concat[3] = boun.get_right(j) + concat[4] = boun.get_top(j) + concat[5] = boun.get_bottom(j) + self.objects[idx].size = np.max(concat, axis=0) - np.min(concat, axis=0) + if self.objects[idx].size[0] < 0: + print(boun.get_front(j), boun.get_back(j), boun.get_left(j), boun.get_right(j), boun.get_top(j), boun.get_bottom(j)) + elif r_id == "repl": + repl = Replicants(resp[i]) + for j in range(repl.get_num()): + idx = repl.get_id(j) + if idx in self.objects: + self.objects[idx].position = repl.get_position(j) + else: + print("Warning: object with id {} not found in WindObjectManager".format(idx)) + self.add_object(AgentStatus(idx, position=repl.get_position(j))) + elif r_id == "rigi": + rigi = Rigidbodies(resp[i]) + for j in range(rigi.get_num()): + idx = rigi.get_id(j) + if idx in self.objects: + self.objects[idx].velocity = rigi.get_velocity(j) + else: + print("Warning: object with id {} not found in WindObjectManager".format(idx)) + self.add_object(ObjectStatus(idx, velocity=rigi.get_velocity(j))) + for i in range(len(resp)-1): + r_id = OutputData.get_data_type_id(resp[i]) + if r_id == "segm": + segm = SegmentationColors(resp[i]) + self.segm.process(segm, id_renumbering=self.id_renumbering) + elif r_id == "rseg": + segm = ReplicantSegmentationColors(resp[i]) + self.segm.process(segm, id_renumbering=self.id_renumbering) + self.effects = self.wind_force_manager.evolve(self.objects, self.wind_v, self.settled) + self.commands = [{"$type": "send_bounds"}, {"$type": "send_transforms"}, {"$type": "send_rigidbodies"}] + self.num_frame += 1 + if np.linalg.norm(self.wind_v * [1, 0, 1]) > 0.1: + for idx in self.objects: + if idx in self.settled or self.objects[idx].position is None or self.objects[idx].size is None: + continue + for idx2 in self.settled: + if idx2 == idx or self.objects[idx2].position is None or self.objects[idx2].size is None: + continue + # extent of idx is fully covered by idx2 + l, r, f, b = self.objects[idx2].left()[0], self.objects[idx2].right()[0], self.objects[idx2].front()[2], self.objects[idx2].back()[2] + x, y, z = self.objects[idx].position.tolist() + bottom = self.objects[idx2].bottom()[1] + top = self.objects[idx2].top()[1] + if l <= x and x <= r and b <= z and z <= f and bottom <= y and y <= top: + self.settled.add(idx) + break + def add_object(self, obj: ObjectStatus): + self.objects[obj.idx] = obj + if obj.idx not in self.id_renumbering: + self.id_list.append(obj.idx) + self.id_renumbering[obj.idx] = len(self.id_list) - 1 + + def remove_object(self, obj: ObjectStatus): + if obj.idx in self.objects: + del self.objects[obj.idx] + + def find_nearest_object(self, pos: np.ndarray, objects: Optional[List[int]] = None): + min_dist = 1e10 + min_idx = None + it = iter(self.objects) if objects is None else iter(objects) + for idx in it: + if self.objects[idx].name != "Object": + continue + if idx in self.settled and objects is None: + continue + dist = np.linalg.norm(self.objects[idx].position - pos) + if dist < min_dist: + min_dist = dist + min_idx = idx + return min_idx + + def prepare_segmentation_data(self): + self.commands.extend([{"$type": "send_segmentation_colors"}, + {"$type": "send_categories"}, {"$type": "send_replicant_segmentation_colors"}]) + + def get_renumbered_id(self, idx: int): + if idx in self.id_renumbering: + return self.id_renumbering[idx] + return 0 + + def get_renumbered_list(self, L: List[int]): + return [self.id_renumbering[idx] for idx in L if idx in self.id_renumbering] + + def get_real_id(self, idx: int): + if idx >= len(self.id_list) or idx == 0: + return None + return self.id_list[idx] diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/object.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/object.py new file mode 100644 index 0000000..caddb77 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/object.py @@ -0,0 +1,68 @@ +from typing import Dict, Set, Optional +from .wind_utils import * +import numpy as np + +class ObjectStatus: + def __init__(self, idx, constants: Constants=default_const, + mass=1.0, position: np.ndarray = None, rotation: np.ndarray = None, + size: np.ndarray = None, velocity: np.ndarray = None, resistence: int = 0): + self.idx: int = idx + self.position: Optional[np.ndarray] = position + self.rotation: Optional[np.ndarray] = rotation + self.size: Optional[np.ndarray] = size + self.velocity: Optional[np.ndarray] = velocity + self.constants: Constants = constants + self.resistence: int = resistence + self.name = "Object" + + def center(self): return self.position + self.size * np.array([0, 0.5, 0]) + def bottom(self): return self.position + def top(self): return self.position + self.size * np.array([0, 1, 0]) + def left(self): return self.position + self.size * np.array([-0.5, 0.5, 0]) + def right(self): return self.position + self.size * np.array([0.5, 0.5, 0]) + def front(self): return self.position + self.size * np.array([0, 0.5, 0.5]) + def back(self): return self.position + self.size * np.array([0, 0.5, -0.5]) + def area(self): return (self.top() - self.bottom()).sum() * (self.right() - self.left()).sum() + +class AgentStatus(ObjectStatus): + def __init__(self, idx, position, size=None, constants=default_const): + super().__init__(idx, constants, position=position, size=size) + self.name = "Agent" + +class WindForceManager: + def __init__(self, constants=default_const): + self.constants: Constants = constants + + def calc_wind_effect(self, wind_velocity: np.ndarray, obj: ObjectStatus): + """ + Calculate the wind force and torque on an object + v_effect: velocity difference on the wind direction between the wind and the object + """ + if np.dot(wind_velocity, wind_velocity) < 1e-6 or obj.resistence > 10: + return np.zeros(3), np.zeros(3) + felt_wind = wind_velocity / (obj.resistence + 1) + # print(obj.idx, obj.resistence) + v_effect = felt_wind - felt_wind * np.dot(felt_wind, obj.velocity) / np.dot(felt_wind, felt_wind) + # print(f"wind= {felt_wind}, v= {obj.velocity}, v_effect={v_effect}") + area = obj.area() + + f_tan = np.linalg.norm(v_effect) * v_effect * area * self.constants.AIR_DENSITY + + rand_v = np.minimum(2, np.random.normal(0, self.constants.F_CROSS_SCALE, 3)) + f_cross = np.cross(f_tan, rand_v) + + r = np.random.normal(0, 0.1, 3) * (obj.top() - obj.bottom()).sum() / 2 + torque = np.cross(f_tan, r) + # torque = np.zeros(3) + + f = f_tan + f_cross + return f, torque + + def evolve(self, objects: Dict[int, ObjectStatus], wind: np.ndarray, settled: Set[int]): + effects = dict() + for idx in objects: + obj = objects[idx] + if obj.name != 'Object' or (not isinstance(obj.velocity, np.ndarray)) or (not isinstance(obj.size, np.ndarray)) or idx in settled: + continue + effects[idx] = self.calc_wind_effect(wind, obj) + return effects \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind.py new file mode 100644 index 0000000..db1f8da --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind.py @@ -0,0 +1,66 @@ +from typing import List, Union +from tdw.controller import Controller +from .manager import WindObjectManager +from .object import AgentStatus +from .wind_utils import default_const + +import numpy as np + +""" +This controller controls the spread of fire. +""" +class WindController(Controller): + def __init__(self, port: int = 1071, check_version: bool = True, launch_build: bool = True, seed = 0, constants = default_const, **kwargs): + self.initialized = False + self.commands: List[dict] = list() + super().__init__(port, check_version, launch_build) + + self.manager = WindObjectManager() + self.add_ons.append(self.manager) + self.frame_count = 0 + self.RNG = np.random.Generator(np.random.PCG64(seed)) + self.constants = constants + + def seed(self, seed): + self.RNG = np.random.Generator(np.random.PCG64(seed)) + + def get_unique_id(self): + while True: + idx = super().get_unique_id() + if idx not in self.manager.objects: + return idx + + def add_agent(self, idx, pos): + self.manager.add_object(AgentStatus(idx, constants=self.constants, position=pos, size=None)) + + def set_wind(self, wind_v): + self.manager.wind_v = wind_v + + def reset_wind(self): + self.manager.wind_v = np.array([0, 0, 0]) + + def wind_step(self, resp): + for idx in self.manager.effects: + force, torque = self.manager.effects[idx] + # print(idx, force, torque, self.manager.objects[idx].position, self.manager.objects[idx].velocity) + self.commands.append({"$type": "apply_force_to_object", "id": idx, "force": {"x": force[0], "y": force[1], "z": force[2]}}) + self.commands.append({"$type": "apply_torque_to_object", "id": idx, "torque": {"x": torque[0], "y": torque[1], "z": torque[2]}}) + self.frame_count += 1 + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + if isinstance(commands, dict): + commands = [commands] + commands.extend(self.commands) + self.commands.clear() + # for com in commands: + # print(com) + # try: + resp = super().communicate(commands) + # except: + # print("Error") + # print(commands) + # super().communicate([{"$type": "terminate"}]) + # exit(0) + if self.initialized: + self.wind_step(resp) + return resp \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_gym.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_gym.py new file mode 100644 index 0000000..b5091f8 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_gym.py @@ -0,0 +1,165 @@ +import gym +import gym.spaces +from .agent import * +import numpy as np +from .windagent_controller import * +# from HAZARD.policy.env_actions import agent_drop, agent_pickup, agent_explore, agent_walk_to_single_step + +from enum import IntEnum + +import os +PATH = os.path.dirname(os.path.abspath(__file__)) +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) + +class ActionSpace(IntEnum): + WALK_TO_NEAREST_TARGET = 0 + WALK_TO_NEAREST_CONTAINER = 1 + PICK_UP_NEAREST = 2 + DROP = 3 + EXPLORE = 4 + WALK_TO_RANDOM_OBJECT_IN_SIGHT = 5 + +class WindEnv(gym.Env): + def __init__(self, port: int = 1071, check_version: bool = True, launch_build: bool = False, seed = 0, + screen_size = 512, use_local_resources = False, map_size_h=256, map_size_v=256, grid_size=0.25, + image_capture_path: str = None, log_path: str = None, use_gt=False, use_dino=False, + reverse_observation = False, record_only: bool = False, **kwargs): + self.controller_args = dict(launch_build=launch_build, port=port, check_version=check_version, + screen_size=screen_size, use_local_resources=use_local_resources, + map_size_h=map_size_h, map_size_v=map_size_v, grid_size=grid_size, + image_capture_path=image_capture_path, log_path=log_path, use_dino=use_dino, + use_gt=use_gt, reverse_observation=reverse_observation, record_only=record_only) + self.controller = None + self.RNG = np.random.RandomState(0) + self.done = False + self.record_only = record_only + self.observation_space = gym.spaces.Box(0, 20, (4, map_size_h, map_size_v), dtype=np.float64) + self.action_space = gym.spaces.Discrete(6) + self.max_step = 1000 + + def reset(self, data_dir = None): + if data_dir == None: + data_dirs = os.listdir(os.path.join(PATH, "data", "room_setup_wind")) + data_dirs = [d for d in data_dirs if "suburb" in d] + data_dir = os.path.join(PATH, "data", "room_setup_wind", data_dirs[self.RNG.randint(len(data_dirs))]) + self.setup = SceneSetup(data_dir=data_dir, record_mode=self.record_only) + if self.controller is not None: + self.controller.communicate({"$type": "terminate"}) + self.controller.socket.close() + self.controller = WindAgentController(**self.controller_args) + self.controller.seed(self.RNG.randint(1000000)) + print("Controller connected") + self.controller.init_scene(self.setup) + + self.num_step = 0 + self.last_action = None + self.last_target = None + + if not self.record_only: + self.controller.do_action(0, "turn_by", {"angle": 0}) + self.controller.next_key_frame() + return self.controller._obs()["RL"] + + # def step(self, action): + # """ + # for each type, if action_target is 0, ignore the action target + # """ + # if not isinstance(action, int): + # action = action.item() + # + # reward = 1 + # result, msg = None, None + # target = None + # if action == ActionSpace.WALK_TO_NEAREST_TARGET: + # targets = [idx for idx in self.controller.targets if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_walk_to_single_step(self, target=target) + # elif action == ActionSpace.WALK_TO_NEAREST_CONTAINER: + # containers = self.controller.containers + # target = self.controller.find_nearest_object(agent_idx=0, objects=containers) + # result, msg = agent_walk_to_single_step(self, target=target) + # elif action == ActionSpace.PICK_UP_NEAREST: + # targets = [idx for idx in self.controller.targets if idx not in self.controller.finished] + # target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + # result, msg = agent_pickup(self, target=target, env_type="wind") + # elif action == ActionSpace.DROP: + # containers = self.controller.containers + # target = self.controller.find_nearest_object(agent_idx=0, objects=containers) + # result, msg = agent_drop(self, container=target, env_type="wind") + # elif action == ActionSpace.EXPLORE: + # target = None + # result, msg = agent_explore(self) + # reward -= 0.5 + # elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + # target = None + # if target is None: + # result, msg = False, "no object in sight" + # else: + # result, msg = agent_walk_to_single_step(self, target=target) + # self.last_action = action + # self.last_target = target + # + # if result == False: + # reward -= 2 + # obs, info = self.controller._obs(), self.controller._info() + # info['message'] = msg + # info['success'] = result + # + # reward += self.controller._reward() + # done = self.controller._done() + # self.num_step += 1 + # if self.num_step >= self.max_step: + # done = True + # + # self.done = done + # info['action'] = action + # info['reward'] = reward + # return obs["RL"], reward, done, info + + def seed(self, seed): + self.RNG = np.random.RandomState(seed) + + """ + better not use it along with self.step(), it messes with last_action and last_target + """ + def get_challenge_action(self, action): + target = None + ret = None + if action == ActionSpace.WALK_TO_NEAREST_TARGET: + targets = [idx for idx in self.controller.targets if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.WALK_TO_NEAREST_CONTAINER: + containers = self.controller.containers + target = self.controller.find_nearest_object(agent_idx=0, objects=containers) + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.PICK_UP_NEAREST: + targets = [idx for idx in self.controller.targets if idx not in self.controller.finished] + target = self.controller.find_nearest_object(agent_idx=0, objects=targets) + ret = "pick_up", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.DROP: + containers = self.controller.containers + target = self.controller.find_nearest_object(agent_idx=0, objects=containers) + ret = "drop", self.controller.manager.get_renumbered_id(target) + elif action == ActionSpace.EXPLORE: + target = None + ret = "explore", None + elif action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + try: + if self.last_action == ActionSpace.WALK_TO_RANDOM_OBJECT_IN_SIGHT: + target = self.last_target + else: + obs = self.controller._obs() + obj_ids = np.unique(obs["sem_map"]["id"]) + targets = [self.controller.manager.get_real_id(idx) for idx in obj_ids if self.controller.manager.get_real_id(idx) not in self.controller.finished] + target = int(self.RNG.choice(targets)) if len(targets) > 0 else None + except: + target = None + if target is None: + ret = "explore", None + else: + ret = "walk_to_single", self.controller.manager.get_renumbered_id(target) + self.last_action = action + self.last_target = target + return ret \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_utils.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_utils.py new file mode 100644 index 0000000..35330bc --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/wind_utils.py @@ -0,0 +1,15 @@ +from tdw.object_data.object_static import ObjectStatic +from tdw.object_data.bound import Bound +from tdw.object_data.rigidbody import Rigidbody +import numpy as np + +class Constants: + def __init__(self, + AIR_DENSITY: float = 1.225, + F_CROSS_SCALE: float = 0.05, + F_ON_AGENT: float = 1.0 + ) -> None: + self.AIR_DENSITY = AIR_DENSITY + self.F_CROSS_SCALE = F_CROSS_SCALE + self.F_ON_AGENT = F_ON_AGENT +default_const = Constants() diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py new file mode 100644 index 0000000..b421dd3 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py @@ -0,0 +1,488 @@ +from typing import Any, Tuple, Dict +from .object import ObjectStatus +from .agent import * +from tdw.add_ons.third_person_camera import ThirdPersonCamera +from tdw.add_ons.logger import Logger +from tdw.replicant.arm import Arm +from tdw.replicant.image_frequency import ImageFrequency +from HAZARD.utils.model import Semantic_Mapping +from .wind import WindController +from tdw.tdw_utils import TDWUtils +from tdw.librarian import HumanoidLibrarian +import numpy as np +import copy +import os +from HAZARD.utils.vision import Detector +from HAZARD.utils.local_asset import get_local_url +from HAZARD.utils.scene_setup import SceneSetup +from tdw.output_data import OutputData, Images + +PATH = os.path.dirname(os.path.abspath(__file__)) +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) + +import torch + +""" +Caution!!! In a single trial, the number of agents should never change! +Currently single agent only. +""" +class WindAgentController(WindController): + """ + Never ever use self.commands in here! For safety uses, self.commands can only be used in parent class + """ + def __init__(self, use_local_resources: bool = False, image_capture_path: str = None, log_path: str = None, + reverse_observation: bool = False, record_only: bool = False, use_dino: bool = False, + **kwargs) -> None: + self.use_local_resources = use_local_resources + self.image_capture_path = image_capture_path + self.log_path = log_path + self.frame_count = 0 + self.reverse_observation = reverse_observation + super().__init__(**kwargs) + self.screen_size = kwargs.get("screen_size", 512) + self.agents: List[WindAgent] = [] + self.comm_counter = 0 + self.use_gt = kwargs.get("use_gt", True) + self.use_dino = use_dino + self.record_only = record_only + self.id2name = {} + if not self.use_gt: + if self.use_dino: + from HAZARD.utils.vision_dino import DetectorSAM + self.detector = DetectorSAM(**kwargs) + else: + self.detector = Detector(**kwargs) + if use_local_resources: + self.update_replicant_url() + + self.map_size_h = kwargs.get("map_size_h", 256) + self.map_size_v = kwargs.get("map_size_v", 256) + self.grid_size = kwargs.get("grid_size", 0.5) + self.sem_map = Semantic_Mapping(device=None, screen_size=self.screen_size, + map_size_h=self.map_size_h, map_size_v=self.map_size_v, grid_size=self.grid_size) + + self.maps = [] + self.action_slowdown = 0 + self.other_containers = {} + # self.init_seg() + + def update_replicant_url(self): + assert os.path.isfile(f"{os.getcwd()}/data/assets/replicant_0") + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME] = HumanoidLibrarian(Replicant.LIBRARY_NAME) + record = Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].get_record("replicant_0") + import platform + new_url = record.urls[platform.system()].split("/")[-1] + record.urls[platform.system()] = f"{LOCAL_PATH_PREFIX}/{new_url}" + Controller.HUMANOID_LIBRARIANS[Replicant.LIBRARY_NAME].add_or_update_record(record, overwrite=True) + + def grid_to_real(self, grid_pos): + return self.sem_map.grid_to_real(grid_pos) + def real_to_grid(self, real_pos): + return self.sem_map.real_to_grid(real_pos) + + def reset_scene(self): + # whatever the agent is holding, drop it + for agent in self.agents: + arms = agent.dynamic.held_objects.keys() + for arm in arms: + agent.drop(arm=arm) + while agent.action.status == ActionStatus.ongoing: + self.communicate([]) + + self.initialized = False + self.add_ons = [] + self.manager.reset() + self.frame_count = 0 + self.communicate([]) + self.id2name = {} + + self.last_reward = None + self.communicate([{"$type": "destroy_all_objects"}]) + + def init_scene(self, setup: SceneSetup): + self.reset_scene() + + if self.log_path is not None: + logger = Logger(self.log_path) + self.add_ons.append(logger) + self.communicate([]) + # for obj in setup.objects: + # self.manager.add_object(obj) + if self.log_path is not None: + logger = Logger(self.log_path) + self.add_ons.append(logger) + self.communicate([]) + for commands in setup.commands_list: + filtered_commands = [] + for command in commands: + tp = command["$type"] + if tp == "terminate": + break + if tp[:4] == "send" or tp.find("avatar") != -1 or "avatar_id" in command: + continue + if "url" in command: + command["url"] = get_local_url(command["url"]) + if tp == "add_object": + name = command["name"] + idx = command["id"] + self.id2name[idx] = name + pos = TDWUtils.vector3_to_array(command["position"]) + resistence = setup.other["wind_resistence"][str(idx)] if str(idx) in setup.other["wind_resistence"] else 0 + self.manager.add_object(ObjectStatus(idx=idx, position=pos, resistence=resistence)) + filtered_commands.append(command) + self.communicate(filtered_commands) + + if not self.record_only: + if len(self.agents) == 0: + self.agents: List[WindAgent] = [] + for agent_pos in setup.agent_positions: + idx = self.get_unique_id() + self.agents.append( + WindAgent(replicant_id=idx, position=agent_pos, image_frequency=ImageFrequency.always)) + self.add_agent(idx, agent_pos) + self.add_ons.append(self.agents[-1]) + else: + assert (len(self.agents) == len(setup.agent_positions)) + for i in range(len(self.agents)): + idx = self.agents[i].replicant_id + self.agents[i].reset(position=setup.agent_positions[i]) + self.add_ons.append(self.agents[i]) + self.add_agent(idx, setup.agent_positions[i]) + + self.maps = [None] * len(self.agents) + + self.add_ons.append(self.manager) + self.containers = setup.containers + self.targets = setup.target_ids + self.target = setup.targets + if self.use_dino and not self.use_gt: + self.detector.set_targets(self.target) + self.target_ids = setup.target_ids + self.target_names = setup.target_names + self.target_id2category = setup.target_id2category + self.target_id2name = setup.target_id2name + self.finished = [] + + self.set_wind(np.array(setup.other["wind"])) + for idx in self.containers: + self.manager.settled.add(idx) + self.communicate([]) + + if self.image_capture_path != None: + pos = copy.deepcopy(setup.agent_positions[0]) + pos[1] = 8.0 + # theta = self.RNG.random() * 2 * np.pi + # pos[0] += np.cos(theta) * 2 + # pos[2] += np.sin(theta) * 2 + pos[0] += 1.0 + pos[2] -= 2.0 + + if self.record_only: + look_at = copy.deepcopy(setup.agent_positions[0]) + # look_at[1] += 3.0 + look_at[0] -= 3.0 + look_at[2] -= 6.0 + look_at = TDWUtils.array_to_vector3(look_at) + commands = [{"$type": "set_screen_size", "width": self.screen_size * 4, "height": self.screen_size * 4}, + {"$type": "set_target_framerate", "framerate": 30}] + else: + look_at = self.agents[0].replicant_id + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + camera = ThirdPersonCamera(avatar_id="record", position=TDWUtils.array_to_vector3(pos), + look_at=look_at) + self.add_ons.extend([camera]) + self.communicate([]) + else: + commands = [{"$type": "set_screen_size", "width": self.screen_size, "height": self.screen_size}, + {"$type": "set_target_framerate", "framerate": 30}] + + if self.image_capture_path is not None: + commands.extend([{"$type": "set_pass_masks", "pass_masks": ["_img"], "avatar_id": "record"}, + {"$type": "send_images", "frequency": "always", "ids": ["record"]}]) + # if self.video_path is not None: + # self.capture = ImageCapture(path=self.video_path, avatar_ids=["a"]) + # self.add_ons.append(self.capture) + self.manager.prepare_segmentation_data() + self.origin_pos = [setup.agent_positions[0][0], setup.agent_positions[0][2]] + self.sem_map = Semantic_Mapping(device=None, screen_size=self.screen_size, map_size_h=self.map_size_h, map_size_v=self.map_size_v, grid_size=self.grid_size, origin_pos=self.origin_pos) + self.initialized = True + self.communicate(commands) + if not self.record_only: + self.communicate({"$type": "set_field_of_view", "field_of_view": 120.0, "avatar_id": str(self.agents[0].replicant_id)}) + + def next_key_frame(self, force_direction=None) -> Tuple[List[ActionStatus], List[int]]: + # print("next_key_frame") + agent_idx = 0 + action_slowdown = 0 + if force_direction is not None: + facing = self.agents[agent_idx].dynamic.transform.forward + force_direction = force_direction / np.linalg.norm(force_direction) + force_scale = (force_direction * (facing / np.linalg.norm(facing))).sum() + action_slowdown += (1 - force_scale) * self.constants.F_ON_AGENT + + self.action_slowdown += action_slowdown + if self.action_slowdown > 1: + self.action_slowdown -= 1 + tmp = self.agents[agent_idx].action + self.agents[agent_idx].action = None + self.communicate([]) + self.agents[agent_idx].action = tmp + + initial_status = [] + have_ongoing_action = False + for agent in self.agents: + if agent.action is not None: + initial_status.append(copy.deepcopy(agent.action.status)) + if initial_status[-1] == ActionStatus.ongoing: + have_ongoing_action = True + else: + initial_status.append(None) + if not have_ongoing_action: + self.communicate([]) + print("no ongoing action") + return initial_status, [] + num_step = 0 + while True: + num_step += 1 + if num_step > 10000: + raise RuntimeError("num_step > 10000") + self.communicate([]) + + changed = False + for i, agent in enumerate(self.agents): + if initial_status[i] is not None and agent.action.status != initial_status[i]: + changed = True + break + if changed: + break + + final_status = [] + changed_agents = [] + for i, agent in enumerate(self.agents): + final_status.append(copy.deepcopy(agent.action.status) if agent.action is not None else None) + if initial_status[i] != final_status[i]: + changed_agents.append(i) + + # self.communicate([]) + return final_status, changed_agents + + def do_action(self, agent_idx: int, action: str, params: Dict[str, Any] = dict()) -> None: + """ + See the WindAgent class for allowed actions and their parameters. + """ + return getattr(self.agents[agent_idx], action)(**params) + + def get_agent_status(self, idx) -> WindAgent: + return self.agents[idx] + + def find_nearest_object(self, agent_idx: int = 0, objects: List[int] = None): + current_position = self.agents[agent_idx].dynamic.transform.position + return self.manager.find_nearest_object(pos=current_position, objects=objects) + + def find_nearest_container(self, agent_idx: int = 0): + current_position = self.agents[agent_idx].dynamic.transform.position + return self.manager.find_nearest_object(pos=current_position, objects=self.containers) + + def replace_with_local_path(self, commands): + LOCAL_PATH_PREFIX = f"file://{os.getcwd()}/data/assets" + download_cmds = [] + for command in commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for command in self.commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + for m in self.add_ons: + if not m.initialized: + add_on_commands = m.get_initialization_commands() + else: + add_on_commands = m.commands + for command in add_on_commands: + if 'url' in command and "amazonaws.com" in command['url']: + new_url = command['url'].split("/")[-1] + if not os.path.isfile(f"{os.getcwd()}/data/assets/{new_url}"): + download_cmds.append(f"wget -nc {command['url']}\n") + new_url = f"{LOCAL_PATH_PREFIX}/{new_url}" + command['url'] = new_url + if len(download_cmds) > 0: + fout = open(f"{os.getcwd()}/data/assets/download_assets.sh", "w") + for cmd in download_cmds: + fout.write(cmd) + print("Please run data/assets/download_assets.sh first!") + exit(0) + return commands + + def communicate(self, commands: Union[dict, List[dict]]) -> list: + """ + for each agent, if it is trying to grasp an object too far away, fail it + """ + # print(commands) + if self.use_local_resources: + commands = self.replace_with_local_path(commands) + if self.initialized: + # check for finished objects + self.frame_count += 1 + for idx in self.manager.settled: + if idx in self.targets and idx not in self.finished: + self.finished.append(idx) + # check agents + for agent in self.agents: + idx = agent.grasp_id() + if idx is None: + continue + dist = np.linalg.norm((agent.dynamic.transform.position - self.manager.objects[idx].position) * np.array([1, 0, 1])) + if dist > 3: + agent.fail_grasp() + resp = super().communicate(commands) + if self.image_capture_path != None: + for i in range(len(resp) - 1): + r_id = OutputData.get_data_type_id(resp[i]) + # Get Images output data. + if r_id == "imag": + images = Images(resp[i]) + # Determine which avatar captured the image. + if images.get_avatar_id() == "record": + # Save the image. + TDWUtils.save_images(images=images, filename=str(self.comm_counter), + output_directory=self.image_capture_path) + self.comm_counter += 1 + return resp + + @torch.no_grad() + def _obs(self, agent_idx: int = 0): + # print("get obs") + self.manager.prepare_segmentation_data() + self.communicate([]) + obs = dict() + """ + raw observation: RGBD, temperature + """ + rgb = self.agents[agent_idx].dynamic.get_pil_image() + id_image = np.array(self.agents[agent_idx].dynamic.get_pil_image("id")) + if self.reverse_observation: + rgb = np.flip(rgb, axis=0) + id_image = np.flip(id_image, axis=0) + + if self.use_gt: + seg_mask = self.manager.segm.get_seg_mask(id_image) + else: + rcnn_mask = self.detector.inference(np.array(rgb)) + seg_mask = self.manager.segm.get_seg_mask(np.array(id_image), + rcnn=rcnn_mask, + id_list=self.manager.id_list) + # print(seg_mask.shape, seg_mask.max()) + depth = TDWUtils.get_depth_values(self.agents[agent_idx].dynamic.images["depth"], width=self.screen_size, height=self.screen_size) + depth = np.flip(depth, axis=0) + + rgb = np.array(rgb).astype(np.float32).transpose((2, 0, 1)).astype(np.float32) * 1.0 / 255 + depth = depth.reshape((1, self.screen_size, self.screen_size)).astype(np.float32) + + obs["raw"] = dict( + rgb=rgb, + depth=depth, + seg_mask=seg_mask + ) + + """ + mapped observation + """ + camera_matrix = self.agents[agent_idx].dynamic.camera_matrix.reshape((4, 4)) + obs_concat = np.concatenate([rgb, depth], axis=0) + + sem = self.sem_map.forward(obs=obs_concat, id_map=seg_mask, camera_matrix=camera_matrix, maps_last=self.maps[agent_idx], + position=self.agents[agent_idx].dynamic.transform.position, record_mode=self.record_only, + targets=self.manager.get_renumbered_list(self.targets)) + obs["sem_map"] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + self.maps[agent_idx] = dict(height=sem["height"].cpu().numpy(), + explored=sem["explored"].cpu().numpy(), + id=sem["id"].cpu().numpy(), + other=sem["other"].cpu().numpy() if sem["other"] is not None else None) + # end = time.time() + # print("sem_map time=", end - start) + + """ + map of goal and agent + """ + agent_pos = self.sem_map.real_to_grid(self.agents[agent_idx].dynamic.transform.position) + target_poss = [self.sem_map.real_to_grid(self.manager.objects[idx].position) for idx in self.targets] + + goal_map = np.zeros((self.map_size_h, self.map_size_v)) + for (i, target_pos) in enumerate(target_poss): + if self.targets[i] in self.finished: + continue + if target_pos[0] < 0 or target_pos[0] >= self.map_size_h or target_pos[1] < 0 or target_pos[1] >= self.map_size_v: + continue + if not (sem["id"] == self.manager.get_renumbered_id(self.targets[i])).any(): + continue + goal_map[target_pos[0], target_pos[1]] = 1 + if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: + goal_map[agent_pos[0], agent_pos[1]] = -2 + rad = self.agents[agent_idx].get_facing() + rad = int(rad / (np.math.pi / 4)) + if rad < 0: + rad += 8 + dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] + dz = list([0, 1, 1, 1, 0, -1, -1, -1])[rad] + goal_map[agent_pos[0] + dx][agent_pos[1] + dz] = -1 + obs["goal_map"] = goal_map + + RL_obs = np.zeros((4, self.map_size_h, self.map_size_v)) + RL_obs[0] = obs["sem_map"]["height"] + RL_obs[1] = obs["sem_map"]["explored"] + RL_obs[2] = obs["sem_map"]["id"] + RL_obs[3] = goal_map + obs["RL"] = RL_obs + return obs + + def _info(self): + info = dict() + info['vector'] = np.zeros(8) # for consistency + info['agent_positions'] = [agent.dynamic.transform.position for agent in self.agents] + info['targets'] = self.manager.get_renumbered_list(self.targets) + info['containers'] = self.manager.get_renumbered_list(self.containers) + info['finished targets'] = self.manager.get_renumbered_list(self.finished) + info['camera_matrices'] = [agent.dynamic.camera_matrix.reshape((4, 4)) for agent in self.agents] + info['wind'] = self.manager.wind_v + info['sr'] = f"{len(self.finished)}/{len(self.targets)}" + return info + + # this is a toy reward function + def _reward(self, agent_idx = 0): + if self.last_reward is None: + self.last_reward = 0 + + reward = 0 + + agent_pos = self.agents[agent_idx].dynamic.transform.position + nearest_target = self.manager.find_nearest_object(agent_pos, self.targets) + nearest_container = self.manager.find_nearest_object(agent_pos, self.containers) + + reward += len(self.finished) * 20 + if Arm.left in self.agents[0].dynamic.held_objects: + dist = np.linalg.norm(agent_pos - self.manager.objects[nearest_container].position) + reward -= dist * 10 + else: + dist = np.linalg.norm(agent_pos - self.manager.objects[nearest_target].position) + reward -= dist * 10 + ret = reward - self.last_reward - 0.1 + self.last_reward = reward + return ret + + def _done(self, agent_idx: int = 0): + if len(self.finished) == len(self.targets): + return True + return False \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/policy/__init__.py b/easi/tasks/hazard/vendor/HAZARD/policy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/hazard/vendor/HAZARD/policy/astar.py b/easi/tasks/hazard/vendor/HAZARD/policy/astar.py new file mode 100644 index 0000000..8de0739 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/policy/astar.py @@ -0,0 +1,58 @@ +import pyastar2d +from typing import List +import numpy as np + +def check_mergeable(p1, p2, p3): + d1 = p2[0] - p1[0], p2[1] - p1[1] + d2 = p3[0] - p2[0], p3[1] - p2[1] + # if d1 is too long, don't merge + if d1[0] * d1[0] + d1[1] * d1[1] > 256: + return False + if d1[0] * d2[1] == d1[1] * d2[0]: + return True + return False + +def path_cleanup(path: List[List[int]]) -> List[List[int]]: + """ + if two consecutive movements are in the same direction, combine them into one + """ + q = [] + for i in range(len(path)): + while len(q) >= 2 and check_mergeable(q[-2], q[-1], path[i]): + q.pop() + q.append(path[i]) + return q + +def get_astar_path(weight, origin, destination): + if origin[0] < 0 or origin[0] >= weight.shape[0] or origin[1] < 0 or origin[1] >= weight.shape[1]: + return None + if destination[0] < 0 or destination[0] >= weight.shape[0] or destination[1] < 0 or destination[1] >= weight.shape[1]: + return None + path = pyastar2d.astar_path(weight, origin, destination) + path = path_cleanup(path) + return path + +# sem_map: [channel, height, width] +def get_astar_weight(sem_map, origin, destination): + # unexplored: 5, explored: 1 + # height > 0.1: += 10 + # height > 1: += 1000 + explored = sem_map["explored"] + height = sem_map["height"] + w, h = explored.shape + weight = np.ones((w, h)) + weight[explored == 0] = 30 + + # exp(x * 0.) * y= 10 + # exp(x * 1.6) * y = 1000 + # x = 3, y = 7 + weight[height > 0.5] += np.exp(height[height > 0.5] * 3) * 7 + weight[height > 0.1] += 10 + # weight[height > 0.5] += 50 + # weight[height > 1.6] += 1000 + # for each position, if it is near an obstacle, increase its weight by 50 + conv_weight = np.zeros((w, h)) + for i in range(-2, 3): + for j in range(-2, 3): + conv_weight[max(0, i): min(w, w+i), max(0, j): min(h, h+j)] += weight[max(0, -i): min(w, w-i), max(0, -j): min(h, h-j)] * 1.0 / (abs(i) + abs(j) + 1) + return conv_weight.astype(np.float32) diff --git a/easi/tasks/hazard/vendor/HAZARD/policy/env_actions.py b/easi/tasks/hazard/vendor/HAZARD/policy/env_actions.py new file mode 100644 index 0000000..a706ce6 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/policy/env_actions.py @@ -0,0 +1,370 @@ +import sys +import os +PATH = os.path.dirname(os.path.abspath(__file__)) +while os.path.basename(PATH) != "HAZARD": + PATH = os.path.dirname(PATH) +sys.path.append(PATH) + +from typing import List, Union, Optional +import numpy as np +from tdw.replicant.ik_plans.ik_plan_type import IkPlanType +from tdw.replicant.action_status import ActionStatus +from HAZARD.policy.astar import get_astar_path, get_astar_weight +from tdw.tdw_utils import TDWUtils +from tdw.replicant.arm import Arm + +""" +All actions here are single-agent +""" + +def visualize_obs(env, obs, suffix="0", save_dir=os.path.join(PATH, "logs"), astar_path=None): + if obs is None: + obs = env.controller._obs() + sem_map = obs["sem_map"] + rgb = obs["raw"]["rgb"] + """ + output an image of the semantic map + red: agent + white: unexplored + grey: explored and unoccupied + black: occupied + """ + explored = sem_map["explored"] + height = sem_map["height"] + ID = sem_map["id"] + w, h = explored.shape + + img = np.zeros((w, h, 3), dtype=np.uint8) + obj = np.zeros((w, h, 3), dtype=np.uint8) + obj[ID > 0.5] = [0, 0, 0] + obj[ID < 0.5] = [255, 255, 255] + height_img = np.copy(height) + height_img.astype(np.uint8) + height_img = np.expand_dims(height_img, axis=2) + height_img = np.repeat(height_img, 3, axis=2) + height_img *= int(255 / height.max()) + height_img[height <= 0] = [0, 0, 0] + img[explored == 0] = [255, 255, 255] # this color is white + img[explored == 1] = [200, 200, 200] # this color is grey + img = img - np.reshape(200 * np.minimum(height / 2, 1.0) * (height > 0.3), (w, h, 1)) + + pos = env.controller.agents[0].dynamic.transform.position + offset = env.controller.sem_map.map_offset + grid_size = env.controller.sem_map.grid_size + pos = [int(pos[0] // grid_size + offset[0]), int(pos[2] // grid_size + offset[1])] + # set nearby pixels to red + for i in range(-1, 2): + for j in range(-1, 2): + img[pos[0] + i, pos[1] + j] = np.array([255, 0, 0]) + # mark path + if astar_path is not None: + for p in astar_path: + img[p[0], p[1]] = np.array([0, 255, 0]) + + print(height.max()) + # save the image + print("rgb", rgb.shape) + import cv2 + # rgb to bgr + rgb = rgb[[2, 1, 0], :, :] + img = img[:, :, [2, 1, 0]] + obj = obj[:, :, [2, 1, 0]] + height_img = height_img[:, :, [2, 1, 0]] + explored = np.copy(explored) + explored *= 255 + explored.astype(np.uint8) + explored = np.expand_dims(explored, axis=2) + explored = np.repeat(explored, 3, axis=2) + explored = explored[:, :, [2, 1, 0]] + cv2.imwrite(os.path.join(save_dir, f"sem_map_{suffix}.png"), img) + cv2.imwrite(os.path.join(save_dir, f"rgb_{suffix}.png"), rgb.transpose(1, 2, 0) * 255) + cv2.imwrite(os.path.join(save_dir, f"obj_map_{suffix}.png"), obj) + cv2.imwrite(os.path.join(save_dir, f"height_map_{suffix}.png"), height_img) + cv2.imwrite(os.path.join(save_dir, f"explore_{suffix}.png"), explored) + +"""this action is environment independent""" +# def agent_walk_to(env: WindEnv, target: Union[int, np.ndarray, List], max_steps=100, reset_arms: bool = False, arrived_at=1.0): +def agent_walk_to(env, target: Union[int, np.ndarray, List], max_steps=100, reset_arms: bool = False, arrived_at=1.0, + task=None, effect_on_agents=False, record_mode=False): + # visualize_obs(env, None, suffix="0") + start_frame = env.controller.frame_count + if record_mode and task != "wind": + env.controller.agents[0].collision_detection.avoid = False + env.controller.agents[0].collision_detection.objects = False + + while True: + agent_pos = env.controller.agents[0].dynamic.transform.position + target_pos = env.controller.manager.objects[target].position if isinstance(target, int) else np.array(target) + if np.linalg.norm(agent_pos[[0, 2]] - target_pos[[0, 2]]) < arrived_at: + env.controller.agents[0].collision_detection.avoid = True + env.controller.agents[0].collision_detection.objects = True + return True, "success" + + if env.controller.frame_count - start_frame > max_steps: + env.controller.agents[0].collision_detection.avoid = True + env.controller.agents[0].collision_detection.objects = True + return False, "max steps reached" + + agent_pos = env.controller.real_to_grid(agent_pos) + target_pos = env.controller.real_to_grid(target_pos) + obs = env.controller._obs() + sem_map = obs["sem_map"] + if isinstance(target, int) and not np.any(sem_map["id"] == env.controller.manager.id_renumbering[target]): + env.controller.agents[0].collision_detection.avoid = True + env.controller.agents[0].collision_detection.objects = True + return False, "target not in vision or memory" + weight = get_astar_weight(sem_map=sem_map, origin=agent_pos, destination=target_pos) + path = get_astar_path(weight=weight, origin=agent_pos, destination=target_pos) + # visualize_obs(env, obs, suffix=str(env.controller.frame_count), astar_path=path) + # walk to first point + if path is None or len(path) <= 1: + env.controller.agents[0].collision_detection.avoid = True + env.controller.agents[0].collision_detection.objects = True + return False, "don't know, maybe out of bounds" + env.controller.do_action(agent_idx=0, action="move_to", params={"target": TDWUtils.array_to_vector3(env.controller.grid_to_real(path[1])), + "reset_arms": reset_arms, + "arrived_at": 0.05 if record_mode else 0.5}) + if not effect_on_agents or task == "fire": + env.controller.next_key_frame(force_direction=None) + elif task == "wind": + wind_v = env.controller.manager.wind_v + env.controller.next_key_frame(force_direction=wind_v) + else: + assert env.controller.manager.flood_manager.source_from == 'x_max' + env.controller.next_key_frame(force_direction=np.array([-1, 0, 0])) + + +def low_level_action(env, action, effect_on_agents=False, task=None, **kwargs): + assert action in ['move_by', 'turn_by', 'turn_to', 'reach_for'] + forbidden_params = ['max_distance', 'duration', 'scale_duration', 'arrived_at'] + for param in forbidden_params: + assert param not in kwargs + if 'target' in kwargs and type(kwargs['target']) == int: + kwargs['target'] = env.controller.manager.id_renumbering[kwargs['target']] + getattr(env.controller.agents[0], action)(**kwargs) + if action != "move_by": + effect_on_agents = False + if not effect_on_agents or task == "fire": + env.controller.next_key_frame() + elif task == "wind": + wind_v = env.controller.manager.wind_v + env.controller.next_key_frame(force_direction=wind_v) + else: + assert env.controller.manager.flood_manager.source_from == 'x_max' + env.controller.next_key_frame(force_direction=np.array([-1, 0, 0])) + return True, "success" + + +def agent_walk_to_single_step(env, target: Union[int, np.ndarray, List], reset_arms: bool = False, arrived_at=1.0, + effect_on_agents=False, task=None, record_mode=False): + agent_pos = env.controller.agents[0].dynamic.transform.position + target_pos = env.controller.manager.objects[target].position if isinstance(target, int) else np.array(target) + # print(target, env.controller.manager.objects[target].position, type(target)) + if np.linalg.norm(agent_pos - target_pos) < arrived_at: + return True, "success" + agent_pos = env.controller.real_to_grid(agent_pos) + target_pos = env.controller.real_to_grid(target_pos) + obs = env.controller._obs() + sem_map = obs["sem_map"] + if isinstance(target, int) and not np.any(sem_map["id"] == env.controller.manager.get_renumbered_id(target)): + return False, "target not in vision or memory" + + weight = get_astar_weight(sem_map=sem_map, origin=agent_pos, destination=target_pos) + path = get_astar_path(weight=weight, origin=agent_pos, destination=target_pos) + # walk to first point + if path is None or len(path) <= 1: + return False, "don't know, maybe out of bounds" + env.controller.do_action(agent_idx=0, action="move_to", params={"target": TDWUtils.array_to_vector3(env.controller.grid_to_real(path[1])), + "reset_arms": reset_arms, + "arrived_at": 0.05 if record_mode else 0.5}) + + if not effect_on_agents or task == "fire": + env.controller.next_key_frame() + elif task == "wind": + wind_v = env.controller.manager.wind_v + env.controller.next_key_frame(force_direction=wind_v) + else: + assert env.controller.manager.flood_manager.source_from == 'x_max' + env.controller.next_key_frame(force_direction=np.array([-1, 0, 0])) + return True, "ongoing" + +"""this action is environment independent""" +def agent_pickup(env, target: int, env_type: str = "what?"): + if target not in env.controller.target_ids: + return False, f"can only pick up target objects" + + arm = [Arm.left, Arm.right] if env_type == "wind" else Arm.right + + above_pos = env.controller.manager.objects[target].top() + above_pos[1] += 100.0 + target_pos = env.controller.manager.objects[target].center() + + env.controller.do_action(agent_idx=0, action="turn_to", params={"target": target}) + status = env.controller.next_key_frame()[0][0] + if status != ActionStatus.success: + print("failed to turn to target") + input() + + env.controller.do_action(agent_idx=0, action="reach_for", params={"target": TDWUtils.array_to_vector3(target_pos), + "arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right, + "arrived_at": 0.02, + "max_distance": 2.5, + "plan": IkPlanType.vertical_horizontal}) + status = env.controller.next_key_frame()[0][0] + reach_success = (status == ActionStatus.success) + + # if not reach_success: + # env.controller.do_action(agent_idx=0, action="reset_arm", + # params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + # env.controller.next_key_frame() + # env.controller.do_action(agent_idx=0, action="turn_by", params={"angle": random.randint(30, 330)}) + # env.controller.next_key_frame() + # return False, f"cannot reach for this object, maybe too far" + + env.controller.communicate([{"$type": "set_kinematic_state", "id": target, "is_kinematic": False, "use_gravity": False}]) + if target in env.controller.other_containers: + env.controller.communicate( + {"$type": "teleport_object", "id": target, "position": TDWUtils.array_to_vector3(above_pos)}) + + env.controller.do_action(agent_idx=0, action="grasp", params={"target": target, + "arm": Arm.right, + "angle": None, + "axis": None,}) + status = env.controller.next_key_frame()[0][0] + + env.controller.do_action(agent_idx=0, action="reset_arm", params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + env.controller.next_key_frame() + + if status == ActionStatus.success: + return True, f"success, reach for {'success' if reach_success else 'failed, may cause problems'}" + elif status == ActionStatus.cannot_grasp: + return False, "cannot grasp, maybe too far" + else: + return False, "failed to grasp" + +"""turn around to find new targets""" +def agent_explore(env): + TURN_TIMES = 12 + for i in range(TURN_TIMES): + env.controller.do_action(agent_idx=0, action="turn_by", params={"angle": 360.0 / TURN_TIMES}) + status = env.controller.next_key_frame()[0][0] + env.controller._obs() + if status != ActionStatus.success: + return False, 'can not turn around at this time' + return True, 'success' + +def agent_drop(env, container: Optional[int]=None, env_type: str = "what?"): + arm = Arm.right + try: + grasp_id = env.controller.agents[0].dynamic.held_objects[arm] + except: + return False, "not holding an object" + + if hasattr(env.controller, "container_id"): + assert Arm.left in env.controller.agents[0].dynamic.held_objects and env.controller.agents[0].dynamic.held_objects[Arm.left] == env.controller.container_id + container = env.controller.container_id + + if (env_type == "flood" or env_type == "fire"): + top = env.controller.manager.objects[container].top() + top = top + np.array([0, 0.2, 0]) + + env.controller.do_action(agent_idx=0, action="turn_to", params={"target": TDWUtils.array_to_vector3(top)}) + status = env.controller.next_key_frame()[0][0] + if status != ActionStatus.success: + print("failed to turn to target") + input() + + top = env.controller.manager.objects[container].top() + above = top + np.array([0, 0.2, 0]) + + env.controller.do_action(agent_idx=0, action="reach_for", params={"target": TDWUtils.array_to_vector3(above), + "absolute": True, + "offhand_follows": False, + "arm": Arm.left, + "from_held": True, + "held_point": "top", + "max_distance": 1.0, + "arrived_at": 0.05, + "plan": IkPlanType.vertical_horizontal}) + status = env.controller.next_key_frame()[0][0] + env.controller.do_action(agent_idx=0, action="reach_for", params={"target": TDWUtils.array_to_vector3(top), + "absolute": True, + "offhand_follows": False, + "arm": Arm.right, + "from_held": True, + "held_point": "top", + "max_distance": 1.0, + "arrived_at": 0.05, + "plan": IkPlanType.vertical_horizontal}) + status = env.controller.next_key_frame()[0][0] + + env.controller.do_action(agent_idx=0, action="drop", params={"arm": arm, "max_num_frames": 20}) + status = env.controller.next_key_frame()[0][0] + # env.controller.communicate([{"$type": "destroy_object", "id": grasp_id}]) + # instead of destroying it, teleport it to [100, 0, 0] and make it kinematic + destroy_commands = [] + destroy_commands.append({"$type": "teleport_object", "id": grasp_id, "position": {"x": 100, "y": 20, "z": 0}}) + destroy_commands.append({"$type": "set_kinematic_state", "id": grasp_id, "is_kinematic": True, "use_gravity": False}) + if hasattr(env.controller, "finished") and grasp_id not in env.controller.finished: + env.controller.finished.append(grasp_id) + if env_type == "fire": + env.controller.manager.objects[grasp_id].temperature_threshold = 4000 + env.controller.communicate(destroy_commands) + # env.controller.do_action(agent_idx=0, action="reset_arm", + # params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + env.controller.do_action(agent_idx=0, action="reset_arm", params={"arm": [Arm.left, Arm.right]}) + env.controller.next_key_frame() + return True, "successfully drop and put away" + + if container is None: + env.controller.do_action(agent_idx=0, action="drop", params={"arm": arm, "max_num_frames": 20}) + status = env.controller.next_key_frame()[0][0] + env.controller.do_action(agent_idx=0, action="reset_arm", + params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + env.controller.next_key_frame() + if status == ActionStatus.success: + return True, "drop success" + elif status == ActionStatus.still_dropping: + return True, "drop success but still dropping" + else: + return False, "I don't know what happened but the drop failed" + + env.controller.do_action(agent_idx=0, action="turn_to", params={"target": container}) + env.controller.next_key_frame() # this action cannot fail (seems like) + + top = env.controller.manager.objects[container].top() + top = top + np.array([0, 0.2, 0]) + env.controller.do_action(agent_idx=0, action="reach_for", params={"target": TDWUtils.array_to_vector3(top), + "absolute": True, + "offhand_follows": False, + "arm": Arm.right, + "from_held": True, + "held_point": "top", + "max_distance": 2.5, + "arrived_at": 0.05, + "plan": IkPlanType.vertical_horizontal}) + status = env.controller.next_key_frame()[0][0] + reach_success = True + if status != ActionStatus.success: + env.controller.do_action(agent_idx=0, action="reset_arm", + params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + env.controller.next_key_frame() + reach_success = False + if env_type == "wind": return False, "failed to reach" + # if status != ActionStatus.success: + # return False, "failed to reach" + + if env_type == "wind": + env.controller.manager.settled.add(grasp_id) + + env.controller.do_action(agent_idx=0, action="drop", params={"arm": arm, "max_num_frames": 20}) + status = env.controller.next_key_frame()[0][0] + env.controller.do_action(agent_idx=0, action="reset_arm", params={"arm": [Arm.left, Arm.right] if env_type == "wind" else Arm.right}) + env.controller.next_key_frame() + + if status == ActionStatus.success: + return True, f"drop success, reach for {'success' if reach_success else 'failed, may cause problems'}" + elif status == ActionStatus.still_dropping: + return True, f"drop success but still dropping, reach for {'success' if reach_success else 'failed, may cause problems'}" + else: + return False, "I don't not what happened but the drop failed" \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/__init__.py b/easi/tasks/hazard/vendor/HAZARD/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/distributions.py b/easi/tasks/hazard/vendor/HAZARD/utils/distributions.py new file mode 100644 index 0000000..130702d --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/distributions.py @@ -0,0 +1,61 @@ +# The following code is largely borrowed from: +# https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/distributions.py + +import torch +import torch.nn as nn + +from HAZARD.utils.model_utils import AddBias + +""" +Modify standard PyTorch distributions so they are compatible with this code. +""" + +FixedCategorical = torch.distributions.Categorical + +old_sample = FixedCategorical.sample +FixedCategorical.sample = lambda self: old_sample(self) + +log_prob_cat = FixedCategorical.log_prob +FixedCategorical.log_probs = lambda self, actions: \ + log_prob_cat(self, actions.squeeze(-1)) +FixedCategorical.mode = lambda self: self.probs.argmax(dim=1, keepdim=True) + +FixedNormal = torch.distributions.Normal +log_prob_normal = FixedNormal.log_prob +FixedNormal.log_probs = lambda self, actions: \ + log_prob_normal(self, actions).sum(-1, keepdim=False) + +entropy = FixedNormal.entropy +FixedNormal.entropy = lambda self: entropy(self).sum(-1) + +FixedNormal.mode = lambda self: self.mean + + +class Categorical(nn.Module): + + def __init__(self, num_inputs, num_outputs): + super(Categorical, self).__init__() + self.linear = nn.Linear(num_inputs, num_outputs) + + def forward(self, x): + x = self.linear(x) + return FixedCategorical(logits=x) + + +class DiagGaussian(nn.Module): + + def __init__(self, num_inputs, num_outputs): + super(DiagGaussian, self).__init__() + + self.fc_mean = nn.Linear(num_inputs, num_outputs) + self.logstd = AddBias(torch.zeros(num_outputs)) + + def forward(self, x): + action_mean = self.fc_mean(x) + + zeros = torch.zeros(action_mean.size()) + if x.is_cuda: + zeros = zeros.cuda() + + action_logstd = self.logstd(zeros) + return FixedNormal(action_mean, action_logstd.exp()) diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/local_asset.py b/easi/tasks/hazard/vendor/HAZARD/utils/local_asset.py new file mode 100644 index 0000000..2347a3c --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/local_asset.py @@ -0,0 +1,23 @@ +PRE_LOADED_PATH = "../assets" + +# get system name +import platform +system_name = platform.system() +if system_name == "Windows": + system_name = "windows" +elif system_name == "Linux": + system_name = "linux" +import os +def get_local_url(url): + if url.find(system_name) == -1: + other_name = "linux" if system_name == "windows" else "windows" + url = url.replace(other_name, system_name) + url = url.replace("private", "public") + filedir = url[url.find(".com/") + 5:] + if os.path.exists(os.path.join(PRE_LOADED_PATH, filedir)): + return "file://" + str(os.path.join(PRE_LOADED_PATH, filedir)) + else: + return url + +if __name__ == "__main__": + print(get_local_url("https://tdw-public.s3.amazonaws.com/scenes/windows/2020.3/floorplan_1a")) \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/model.py b/easi/tasks/hazard/vendor/HAZARD/utils/model.py new file mode 100644 index 0000000..0943683 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/model.py @@ -0,0 +1,337 @@ +import torch +import torch.nn as nn +from typing import List, Optional +import numpy as np + +from HAZARD.utils.distributions import Categorical, DiagGaussian +from HAZARD.utils.model_utils import Flatten, NNBase + +class Goal_Oriented_Semantic_Policy(NNBase): + + def __init__(self, input_shape, recurrent=False, hidden_size=512, + num_sem_categories=16): + super(Goal_Oriented_Semantic_Policy, self).__init__( + recurrent, hidden_size, hidden_size) + + out_size = int(input_shape[1] / 16.) * int(input_shape[2] / 16.) + + self.main = nn.Sequential( + nn.MaxPool2d(2), + nn.Conv2d(num_sem_categories + 8, 32, 3, stride=1, padding=1), + nn.ReLU(), + nn.MaxPool2d(2), + nn.Conv2d(32, 64, 3, stride=1, padding=1), + nn.ReLU(), + nn.MaxPool2d(2), + nn.Conv2d(64, 128, 3, stride=1, padding=1), + nn.ReLU(), + nn.MaxPool2d(2), + nn.Conv2d(128, 64, 3, stride=1, padding=1), + nn.ReLU(), + nn.Conv2d(64, 32, 3, stride=1, padding=1), + nn.ReLU(), + Flatten() + ) + + self.linear1 = nn.Linear(out_size * 32 + 8 * 2, hidden_size) + self.linear2 = nn.Linear(hidden_size, 256) + self.critic_linear = nn.Linear(256, 1) + self.orientation_emb = nn.Embedding(72, 8) + self.goal_emb = nn.Embedding(num_sem_categories, 8) + self.train() + + def forward(self, inputs, rnn_hxs, masks, extras): + x = self.main(inputs) + orientation_emb = self.orientation_emb(extras[:, 0]) + goal_emb = self.goal_emb(extras[:, 1]) + + x = torch.cat((x, orientation_emb, goal_emb), 1) + + x = nn.ReLU()(self.linear1(x)) + if self.is_recurrent: + x, rnn_hxs = self._forward_gru(x, rnn_hxs, masks) + + x = nn.ReLU()(self.linear2(x)) + + return self.critic_linear(x).squeeze(-1), x, rnn_hxs + + +# https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/model.py#L15 +class RL_Policy(nn.Module): + + def __init__(self, obs_shape, action_space, model_type=0, + base_kwargs=None): + + super(RL_Policy, self).__init__() + if base_kwargs is None: + base_kwargs = {} + + if model_type == 1: + self.network = Goal_Oriented_Semantic_Policy( + obs_shape, **base_kwargs) + else: + raise NotImplementedError + + if action_space.__class__.__name__ == "Discrete": + num_outputs = action_space.n + self.dist = Categorical(self.network.output_size, num_outputs) + elif action_space.__class__.__name__ == "Box": + num_outputs = action_space.shape[0] + self.dist = DiagGaussian(self.network.output_size, num_outputs) + else: + raise NotImplementedError + + self.model_type = model_type + + @property + def is_recurrent(self): + return self.network.is_recurrent + + @property + def rec_state_size(self): + """Size of rnn_hx.""" + return self.network.rec_state_size + + def forward(self, inputs, rnn_hxs, masks, extras): + if extras is None: + return self.network(inputs, rnn_hxs, masks) + else: + return self.network(inputs, rnn_hxs, masks, extras) + + def act(self, inputs, rnn_hxs, masks, extras=None, deterministic=False): + + value, actor_features, rnn_hxs = self(inputs, rnn_hxs, masks, extras) + dist = self.dist(actor_features) + + if deterministic: + action = dist.mode() + else: + action = dist.sample() + + action_log_probs = dist.log_probs(action) + + return value, action, action_log_probs, rnn_hxs + + def get_value(self, inputs, rnn_hxs, masks, extras=None): + value, _, _ = self(inputs, rnn_hxs, masks, extras) + return value + + def evaluate_actions(self, inputs, rnn_hxs, masks, action, extras=None): + + value, actor_features, rnn_hxs = self(inputs, rnn_hxs, masks, extras) + dist = self.dist(actor_features) + + action_log_probs = dist.log_probs(action) + dist_entropy = dist.entropy().mean() + + return value, action_log_probs, dist_entropy, rnn_hxs + + +""" +Same utility functions as in TDWUtils, but: +- use torch instead of numpy +- support batched inputs +""" + +class PointCloud: + __WIDTH: int = -1 + __HEIGHT: int = -1 + @staticmethod + def get(depth:torch.Tensor, camera_matrix: torch.Tensor, vfov: float = 120.0, near_plane: float = 0.1, far_plane: float = 100, device = torch.device("cpu")) -> torch.Tensor: + if isinstance(camera_matrix, tuple): + camera_matrix = torch.Tensor(camera_matrix) + if len(depth.shape) == 2: + depth = depth.unsqueeze(0) + if len(camera_matrix.shape) == 2: + camera_matrix = camera_matrix.unsqueeze(0) + camera_matrix = torch.linalg.inv(camera_matrix.reshape((4, 4))) + + # Different from real-world camera coordinate system. + # OpenGL uses negative z axis as the camera front direction. + # x axes are same, hence y axis is reversed as well. + # Source: https://learnopengl.com/Getting-started/Camera + rot = torch.Tensor([[1, 0, 0, 0], + [0, -1, 0, 0], + [0, 0, -1, 0], + [0, 0, 0, 1]]).to(device) + camera_matrix = torch.matmul(camera_matrix, rot) + + bs, H, W = depth.shape + # Cache some calculations we'll need to use every time. + if PointCloud.__HEIGHT != H or PointCloud.__WIDTH != W: + PointCloud.__HEIGHT = H + PointCloud.__WIDTH = W + + img_pixs = np.mgrid[0: H, 0: W].reshape(2, -1) + # Swap (v, u) into (u, v). + img_pixs[[0, 1], :] = img_pixs[[1, 0], :] + img_pix_ones = np.concatenate((img_pixs, np.ones((1, img_pixs.shape[1])))) + + # Calculate the intrinsic matrix from vertical_fov. + # Motice that hfov and vfov are different if height != width + # We can also get the intrinsic matrix from opengl's perspective matrix. + # http://kgeorge.github.io/2014/03/08/calculating-opengl-perspective-matrix-from-opencv-intrinsic-matrix + vfov = vfov / 180.0 * np.pi + tan_half_vfov = np.tan(vfov / 2.0) + tan_half_hfov = tan_half_vfov * PointCloud.__WIDTH / float(PointCloud.__HEIGHT) + fx = PointCloud.__WIDTH / 2.0 / tan_half_hfov # focal length in pixel space + fy = PointCloud.__HEIGHT / 2.0 / tan_half_vfov + intrinsics = np.array([[fx, 0, PointCloud.__WIDTH / 2.0], + [0, fy, PointCloud.__HEIGHT / 2.0], + [0, 0, 1]]) + img_inv = np.linalg.inv(intrinsics[:3, :3]) + PointCloud.__CAM_TO_IMG_MAT = np.dot(img_inv, img_pix_ones) + # PointCloud.__CAM_TO_IMG_MAT = PointCloud.__CAM_TO_IMG_MAT.reshape((1, ) + PointCloud.__CAM_TO_IMG_MAT.shape) + + if isinstance(PointCloud.__CAM_TO_IMG_MAT, np.ndarray): + PointCloud.__CAM_TO_IMG_MAT = torch.from_numpy(PointCloud.__CAM_TO_IMG_MAT).float().to(device) + if PointCloud.__CAM_TO_IMG_MAT.device != device: + PointCloud.__CAM_TO_IMG_MAT = PointCloud.__CAM_TO_IMG_MAT.to(device) + + points_in_cam = torch.multiply(PointCloud.__CAM_TO_IMG_MAT.reshape(3, H * W), depth.reshape(bs, 1, -1)) + points_in_cam = torch.cat((points_in_cam, torch.ones((bs, 1) + points_in_cam.shape[2:], device=device)), dim=1) + points_in_world = torch.matmul(camera_matrix, points_in_cam) + points_in_world = points_in_world[:, :3, :].reshape(bs, 3, H, W) + points_in_cam = points_in_cam[:, :3, :].reshape(bs, 3, H, W) + return points_in_world + +""" +obs: (bs, c, h, w); channels are R, G, B, D, other channels +map: (bs, map_size_h, map_size_v); channels are exp, all, id + +be careful. map_size_h and map_size_v are not the real map sizes but the number of grids. +""" + + +class Semantic_Mapping(nn.Module): + heights = [0.0, 0.5, 1.0, 1.7] + def __init__(self, device=None, screen_size=128, map_size_h=64, map_size_v=64, grid_size=0.25, origin_pos=[0.0, 0.0]): + super().__init__() + # self.device = device if device is not None else (torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")) + self.device = torch.device("cpu") + self.screen_w = screen_size + self.screen_h = screen_size + self.map_size_h = map_size_h + self.map_size_v = map_size_v + self.grid_size = grid_size + self.map_offset: List[int] = [self.map_size_h // 2, self.map_size_v // 2] # the position of (0, 0) + self.map_offset[0] -= int(origin_pos[0] / self.grid_size + 0.5) + self.map_offset[1] -= int(origin_pos[1] / self.grid_size + 0.5) + self.origin_pos = origin_pos + + def grid_to_real(self, grid_pos): + if not isinstance(grid_pos, list): + grid_pos = grid_pos.tolist() + return [(grid_pos[0] - self.map_offset[0]) * self.grid_size, 0, (grid_pos[1] - self.map_offset[1]) * self.grid_size] + def real_to_grid(self, real_pos): + if not isinstance(real_pos, list): + real_pos = real_pos.tolist() + if len(real_pos) > 2: + real_pos = [real_pos[0], real_pos[2]] + return [int(real_pos[0] / self.grid_size + self.map_offset[0] + 0.5), int(real_pos[1] / self.grid_size + self.map_offset[1] + 0.5)] + + def forward(self, obs, id_map, camera_matrix, maps_last, position: Optional[np.ndarray]=None, + targets: Optional[List[int]]=None, record_mode=False): + """ batched input on default """ + if not isinstance(camera_matrix, torch.Tensor): + camera_matrix = torch.Tensor(camera_matrix).to(self.device) + if not isinstance(obs, torch.Tensor): + obs = torch.Tensor(obs).to(self.device) + if not isinstance(id_map, torch.Tensor): + id_map = torch.tensor(id_map, dtype=torch.int64, device=self.device) + + if maps_last is None: + maps_last = dict() + maps_last['explored'] = torch.zeros((self.map_size_h, self.map_size_v), device=self.device, dtype=torch.int64) + maps_last['height'] = torch.zeros((self.map_size_h, self.map_size_v), device=self.device) + maps_last['id'] = torch.zeros((self.map_size_h, self.map_size_v), device=self.device, dtype=torch.int64) + if obs.shape[0] > 4: + maps_last['other'] = torch.zeros((obs.shape[0] - 4, self.map_size_h, self.map_size_v), device=self.device) + elif not isinstance(maps_last["explored"], torch.Tensor): + nmap = dict() + nmap["explored"] = torch.tensor(maps_last["explored"], device=self.device, dtype=torch.int64) + nmap["height"] = torch.tensor(maps_last["height"], device=self.device) + nmap["id"] = torch.tensor(maps_last["id"], device=self.device, dtype=torch.int64) + if maps_last["other"] is not None: + nmap["other"] = torch.Tensor(maps_last["other"]).to(self.device) + maps_last = nmap + + if len(obs.shape) == 3: + obs = obs.unsqueeze(0) + bs, c, h, w = obs.shape + depth = obs[:, 3, :, :] + # depth = torch.min(depth, torch.Tensor([self.map_size_h * self.grid_size * 2]).to(self.device)) + + point_cloud = PointCloud.get(depth=depth, camera_matrix=camera_matrix, device=self.device) + # fout = open("point_cloud.txt", "w") + # for i in range(bs): + # for j in range(h): + # for k in range(w): + # for t in range(3): + # print(point_cloud[i, t, j, k].item(), end=' ', file=fout) + # print('', file=fout) + # point cloud to map + Y = point_cloud[0, 1, :, :] + XZ = ((point_cloud[0, [0, 2], :, :] + self.grid_size * 0.5) // self.grid_size + torch.Tensor(self.map_offset).to(self.device).reshape((2, 1, 1))) + bound_low = torch.Tensor([0, 0]).to(self.device).reshape((2, 1, 1)) + bound_high = torch.Tensor([self.map_size_h-1, self.map_size_v-1]).to(self.device).reshape((2, 1, 1)) + XZ = torch.max(torch.min(XZ, bound_high), bound_low) + XZ = XZ.long() + zipped = XZ[0, :, :] * self.map_size_v + XZ[1, :, :] + + zipped = zipped[Y < 2.5] + id_map = id_map[Y < 2.5] + Y = Y[Y < 2.5] + + sort_Y, order = torch.sort(Y.flatten()) + sort_idx = zipped.flatten()[order] + + map_exp = torch.zeros((self.map_size_h * self.map_size_v), device=self.device, dtype=torch.int64) + map_height = torch.zeros((self.map_size_h * self.map_size_v), device=self.device) + map_id = torch.zeros((self.map_size_h * self.map_size_v), device=self.device, dtype=torch.int64) + if c > 4: + map_other = torch.zeros((c - 4, self.map_size_h * self.map_size_v)).to(self.device) + else: + map_other = None + + map_exp[sort_idx] = 1 + map_height[sort_idx] = sort_Y + if c > 4: + for i in range(c-4): + map_other[i, sort_idx] = obs[0, i+4, :, :].flatten()[order] * sort_Y + id_map = id_map.flatten()[order] + + # this will have to sort according to targets + map_id[sort_idx[id_map > 0]] = id_map[id_map > 0] + if targets is not None: + for target in targets: + if (id_map == target).any() == 0 and (maps_last["id"] == target).any(): + map_id[maps_last["id"].flatten() == target] = target + for target in targets: + map_id[sort_idx[id_map == target]] = target + + map_exp = map_exp.reshape((self.map_size_h, self.map_size_v)) + map_height = map_height.reshape((self.map_size_h, self.map_size_v)) + map_id = map_id.reshape((self.map_size_h, self.map_size_v)) + if c > 4: + map_other = map_other.reshape((c - 4, self.map_size_h, self.map_size_v)) + + if position is not None: + x, z = self.real_to_grid(position) + R = max(1, int(0.2 // self.grid_size)) + if not record_mode: + map_exp[max(0, x - R):min(self.map_size_h, x + R + 1), + max(0, z - R):min(self.map_size_v, z + R + 1)] = 1 + map_height[max(0, x - R):min(self.map_size_h, x + R + 1), + max(0, z - R):min(self.map_size_v, z + R + 1)] = 0 + + map_height = map_height * map_exp + maps_last["height"] * (1 - map_exp) + map_id = map_id * map_exp + maps_last["id"] * (1 - map_exp) + if c > 4: + map_other = map_other * map_exp + maps_last["other"] * (1 - map_exp) + map_exp = torch.max(map_exp, maps_last["explored"]) + + return dict(height=map_height, explored=map_exp, id=map_id, other=map_other) + +if __name__ == "__main__": + pass \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/model_utils.py b/easi/tasks/hazard/vendor/HAZARD/utils/model_utils.py new file mode 100644 index 0000000..e55b045 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/model_utils.py @@ -0,0 +1,132 @@ +import numpy as np +import torch +from torch import nn +from torch.nn import functional as F + + +def get_grid(pose, grid_size, device): + """ + Input: + `pose` FloatTensor(bs, 3) + `grid_size` 4-tuple (bs, _, grid_h, grid_w) + `device` torch.device (cpu or gpu) + Output: + `rot_grid` FloatTensor(bs, grid_h, grid_w, 2) + `trans_grid` FloatTensor(bs, grid_h, grid_w, 2) + + """ + pose = pose.float() + x = pose[:, 0] + y = pose[:, 1] + t = pose[:, 2] + + bs = x.size(0) + t = t * np.pi / 180. + cos_t = t.cos() + sin_t = t.sin() + + theta11 = torch.stack([cos_t, -sin_t, + torch.zeros(cos_t.shape).float().to(device)], 1) + theta12 = torch.stack([sin_t, cos_t, + torch.zeros(cos_t.shape).float().to(device)], 1) + theta1 = torch.stack([theta11, theta12], 1) + + theta21 = torch.stack([torch.ones(x.shape).to(device), + -torch.zeros(x.shape).to(device), x], 1) + theta22 = torch.stack([torch.zeros(x.shape).to(device), + torch.ones(x.shape).to(device), y], 1) + theta2 = torch.stack([theta21, theta22], 1) + + rot_grid = F.affine_grid(theta1, torch.Size(grid_size)) + trans_grid = F.affine_grid(theta2, torch.Size(grid_size)) + + return rot_grid, trans_grid + + +class ChannelPool(nn.MaxPool1d): + def forward(self, x): + n, c, w, h = x.size() + x = x.view(n, c, w * h).permute(0, 2, 1) + x = x.contiguous() + pooled = F.max_pool1d(x, c, 1) + _, _, c = pooled.size() + pooled = pooled.permute(0, 2, 1) + return pooled.view(n, c, w, h) + + +# https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/utils.py#L32 +class AddBias(nn.Module): + def __init__(self, bias): + super(AddBias, self).__init__() + self._bias = nn.Parameter(bias.unsqueeze(1)) + + def forward(self, x): + if x.dim() == 2: + bias = self._bias.t().view(1, -1) + else: + bias = self._bias.t().view(1, -1, 1, 1) + + return x + bias + + +# https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/model.py#L10 +class Flatten(nn.Module): + def forward(self, x): + return x.view(x.size(0), -1) + + +# https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/model.py#L82 +class NNBase(nn.Module): + + def __init__(self, recurrent, recurrent_input_size, hidden_size): + + super(NNBase, self).__init__() + self._hidden_size = hidden_size + self._recurrent = recurrent + + if recurrent: + self.gru = nn.GRUCell(recurrent_input_size, hidden_size) + nn.init.orthogonal_(self.gru.weight_ih.data) + nn.init.orthogonal_(self.gru.weight_hh.data) + self.gru.bias_ih.data.fill_(0) + self.gru.bias_hh.data.fill_(0) + + @property + def is_recurrent(self): + return self._recurrent + + @property + def rec_state_size(self): + if self._recurrent: + return self._hidden_size + return 1 + + @property + def output_size(self): + return self._hidden_size + + def _forward_gru(self, x, hxs, masks): + if x.size(0) == hxs.size(0): + x = hxs = self.gru(x, hxs * masks[:, None]) + else: + # x is a (T, N, -1) tensor that has been flatten to (T * N, -1) + N = hxs.size(0) + T = int(x.size(0) / N) + + # unflatten + x = x.view(T, N, x.size(1)) + + # Same deal with masks + masks = masks.view(T, N, 1) + + outputs = [] + for i in range(T): + hx = hxs = self.gru(x[i], hxs * masks[i]) + outputs.append(hx) + + # x is a (T, N, -1) tensor + x = torch.stack(outputs, dim=0) + # flatten + x = x.view(T * N, -1) + + return x, hxs diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/scene_setup.py b/easi/tasks/hazard/vendor/HAZARD/utils/scene_setup.py new file mode 100644 index 0000000..2a1fd85 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/scene_setup.py @@ -0,0 +1,115 @@ +from tdw.add_ons.log_playback import LogPlayback +import os +import numpy as np +from tdw.tdw_utils import TDWUtils + +class SceneSetup: + def __init__(self, data_dir: str, is_flood = False, record_mode = False) -> None: + playback = LogPlayback() + playback.load(os.path.join(data_dir, "log.txt")) + self.commands_list = playback.playback + + if record_mode: + new_commands_list = [] + table_ids = [] + obstacles = [] + for commands in self.commands_list: + new_commands = [] + for command in commands: + if command["$type"] == "add_object" and "table" in command["category"]: + table_ids.append(command["id"]) + if command["$type"] == "rotate_object_by" and command["id"] in table_ids: + command["angle"] += 90 + print(command) + if command["$type"] == "add_object": + for obs in ["table", "shelf", "cabinet", "chair", "stool", "suitcase", "basket", ]: + if obs in command["category"] and command["id"] not in obstacles: + obstacles.append(command["id"]) + if command["$type"] == "terminate": + break + new_commands.append(command) + new_commands_list.append(new_commands) + new_commands_list.append([{"$type": "bake_nav_mesh"}]) + new_commands_list.append( + [{"$type": "make_nav_mesh_obstacle", "id": obs, "carve_type": "stationary"} for obs in obstacles]) + self.commands_list = new_commands_list + + import json + with open(os.path.join(data_dir, "info.json"), "r") as f: + info = json.load(f) + + self.task = info["task"] + self.containers = info["containers"] + self.agent_positions = np.array(info["agent"]) + if len(self.agent_positions.shape) == 1: + self.agent_positions = self.agent_positions.reshape(1, -1) + + if self.task == "wind": + self.targets = [] + self.target_ids = info["targets"] + else: + self.targets = info["targets"] + self.target_ids = [] + self.target_names = [] + self.target_id2category = {} + self.target_id2name = {} + log_lines = open(os.path.join(data_dir, "log.txt")).readlines() + log_lines = [json.loads(line) for line in log_lines] + log_lines = sum(log_lines, []) + log_objects = [log for log in log_lines if log['$type'] == 'add_object'] + + if self.task == "wind": + for target in self.target_ids: + for obj in log_objects: + # if target == 14415226 and obj['id'] == 14415226: print(obj['id'], target, obj['category']) + if obj['id'] == target and obj['category'] not in self.targets: + self.targets.append(obj['category']) + if obj['id'] == target and obj['name'] not in self.target_names: + self.target_names.append(obj['name']) + self.target_id2category[obj['id']] = obj['category'] + self.target_id2name[obj['id']] = obj['name'] + else: + for target in self.targets: + for obj in log_objects: + if obj['category'] == target and obj['id'] not in self.target_ids: + self.target_ids.append(obj['id']) + self.target_id2category[obj['id']] = obj['category'] + self.target_id2name[obj['id']] = obj['name'] + if obj['category'] == target and obj['name'] not in self.target_names: + self.target_names.append(obj['name']) + + self.other = info["other"] + f.close() + + if is_flood: + from envs.flood.object import ObjectStatus + with open(os.path.join(data_dir, "flood.json"), "r") as f: + info = json.load(f) + self.flood_positions = [np.array(source) for source in info["source"]] + # [np.array([45, 0, 0])] + self.flood_directions = [np.array(direction) for direction in info["direction"]] + self.flood_speed = info["speed"] + self.flood_source_from = info["flood_source_from"] + f.close() + self.objects = [] + self.BUOYANCY_LIST = ["chair", "lamp", "backpack", "basket", "pillow", "bag"] + for l in self.commands_list: + for c in l: + if c["$type"] == "add_object": + name = c["name"] + idx = c["id"] + pos = TDWUtils.vector3_to_array(c["position"]) + self.objects.append(ObjectStatus(idx=idx, position=pos, + has_buoyancy=self.naive_judge_buoyancy(name), + waterproof=self.naive_judge_waterproof(name))) + if c["$type"] == "add_scene": + self.scene_name = c["name"] + + def naive_judge_waterproof(self, name): + return False + + def naive_judge_buoyancy(self, name): + for subname in self.BUOYANCY_LIST: + if subname in name: + return True + return False diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/seg_id.py b/easi/tasks/hazard/vendor/HAZARD/utils/seg_id.py new file mode 100644 index 0000000..67e285e --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/seg_id.py @@ -0,0 +1,114 @@ +import numpy as np +from tdw.output_data import SegmentationColors +from tdw.output_data import ReplicantSegmentationColors +from typing import Union + +import os +PATH = os.path.dirname(os.path.abspath(__file__)) +# go to parent directory until it contains envs folder +while not os.path.exists(os.path.join(PATH, "envs")): + PATH = os.path.dirname(PATH) + +class SegmentationID: + """ + replicant and object ids should all be distinct + """ + def __init__(self): + self.segmentation_colors = dict() + self.names = dict() + self.categories = dict() + self.reverse_id = dict() + self.reverse_id[0] = 0 + + category_file = os.path.join(PATH, 'data', 'meta_data', 'categories_new.txt') + with open(category_file, 'r') as f: + self.global_categories = eval(f.read()) + + def process(self, segm: Union[SegmentationColors, ReplicantSegmentationColors], id_renumbering: dict = dict()): + if isinstance(segm, SegmentationColors): + for j in range(segm.get_num()): + idx = segm.get_object_id(j) + self.segmentation_colors[idx] = np.array(segm.get_object_color(j)) + col = self.segmentation_colors[idx] + # with open("utils/seg_id.txt", "a") as f: + # print("idx:", idx, "col:", col, "name:", segm.get_object_name(j).lower(), "category:", segm.get_object_category(j), file=f) + # f.close() + col = col[0] + col[1] * 256 + col[2] * 256 * 256 + if len(id_renumbering) == 0: + self.reverse_id[col] = idx + else: + self.reverse_id[col] = id_renumbering[idx] if idx in id_renumbering else 0 + self.names[idx] = segm.get_object_name(j).lower() + self.categories[idx] = segm.get_object_category(j) + elif isinstance(segm, ReplicantSegmentationColors): + for j in range(segm.get_num()): + idx = segm.get_id(j) + self.segmentation_colors[idx] = np.array(segm.get_segmentation_color(j)) + col = self.segmentation_colors[idx] + # with open("utils/seg_id.txt", "a") as f: + # print("idx:", idx, "col:", col, "name:", "replicant", "category:", "replicant", file=f) + # f.close() + # print("col:", col) + col = col[0] + col[1] * 256 + col[2] * 256 * 256 + # print("col:", col) + if len(id_renumbering) == 0: + self.reverse_id[col] = idx + else: + self.reverse_id[col] = id_renumbering[idx] if idx in id_renumbering else 0 + self.names[idx] = "replicant" + self.categories[idx] = "replicant" + else: + raise Exception("Unknown type of segmentation colors") + + def get_seg_mask(self, idPass: np.ndarray, none_id: int = 0, rcnn=None, id_list=None): + idPass[idPass == None] = none_id + compressed = idPass.astype(np.uint32) + compressed = compressed[:, :, 0] + compressed[:, :, 1] * 256 + compressed[:, :, 2] * 256 * 256 + if rcnn is None: + return np.vectorize(self.reverse_id.get)(compressed).astype(np.int64) + + # get bboxes for ret + all_idx = np.unique(compressed) + all_idx = all_idx[all_idx != 0] + + real_bboxes = [] + for idx in all_idx: + mask = compressed == idx + y, x = np.where(mask) + bbox = [np.min(x), np.min(y), np.max(x), np.max(y)] + real_bboxes.append([bbox, idx]) + + def find_idx(bbox2, rcnn_cat): + # find bbox with max iou + max_iou = 0 + max_idx = -1 + for bbox, idx in real_bboxes: + if rcnn_cat != self.categories[id_list[self.reverse_id[idx]]]: + continue + intersection = max(0.0, min(bbox[2], bbox2[2]) - max(bbox[0], bbox2[0])) * max(0.0, min(bbox[3], bbox2[3]) - max(bbox[1], bbox2[1])) + union = (bbox[2] - bbox[0]) * (bbox[3] - bbox[1]) + (bbox2[2] - bbox2[0]) * (bbox2[3] - bbox2[1]) - intersection + iou = intersection / union + if iou > max_iou: + max_iou = iou + max_idx = idx + # print("max_iou:", max_iou, "max_idx:", max_idx) + return max_idx + + ret = np.zeros((idPass.shape[0], idPass.shape[1]), dtype=np.int64) + labels = rcnn.pred_instances.labels + masks = rcnn.pred_instances.masks + scores = rcnn.pred_instances.scores + bboxes = rcnn.pred_instances.bboxes + l = len(labels) + for i in range(l): + cat = self.global_categories[labels[i]] + bbox = bboxes[i] + score = scores[i] + mask = masks[i] + # if score < 0.5: + # continue + real_idx = find_idx(bbox, cat) + if real_idx == -1: + continue + ret[mask.cpu().numpy()] = self.reverse_id[real_idx] + return ret \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/vision.py b/easi/tasks/hazard/vendor/HAZARD/utils/vision.py new file mode 100644 index 0000000..d6a8474 --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/utils/vision.py @@ -0,0 +1,59 @@ +import os + +import cv2 +import torch + +try: + import mmcv + from mmcv.transforms import Compose + from mmengine.utils import track_iter_progress + from mmdet.registry import VISUALIZERS + from mmdet.apis import init_detector, inference_detector + from mmdet.apis.inference import DetDataSample + _HAS_MMDET = True +except ImportError: + _HAS_MMDET = False + +PATH = os.path.dirname(os.path.abspath(__file__)) +# go to parent directory until the folder name is HAZARD +while not os.path.exists(os.path.join(PATH, "../envs")): + PATH = os.path.dirname(PATH) + + +# checkpoint can be downloaded from https://drive.google.com/file/d/15KP4EWoQ_8EsuWFpOGNJLeqOFlEu1hFT/view?usp=sharing +class Detector: + def __init__(self, + category_file=os.path.join(PATH, '../data', 'meta_data', 'categories.txt'), + config_file=os.path.join(PATH, '', 'vision', 'mask-rcnn_r50-caffe_fpn_ms-1x_tdw.py'), + checkpoint_file=os.path.join(PATH, '../data', 'tdw_rcnn.pth'), + device=None, + **kwargs): + if not _HAS_MMDET: + raise ImportError( + "mmcv/mmdet required for Detector. " + "Install with: pip install mmcv mmdet" + ) + if device == None: + device = torch.device('cuda:0') if torch.cuda.is_available() else torch.device('cpu') + device = str(device) + self.model = init_detector(config_file, checkpoint_file, device=device) + self.categories = [] + with open(category_file, 'r') as f: + self.categories = eval(f.read()) + self.num_categories = len(self.categories) + + def data_to_array(self, data): + labels = data.pred_instances.labels + masks = data.pred_instances.masks + scores = data.pred_instances.scores + + sem = torch.zeros((self.num_categories, ) + masks.shape[1:], device=masks.device) + for i, label in enumerate(labels): + sem[label] = torch.max(sem[label], masks[i] * scores[i]) + return sem + + def inference(self, img): + # img = mmcv.imread(img) + img = img[:, :, ::-1] + result = inference_detector(self.model, img) + return result diff --git a/tests/test_hazard_task.py b/tests/test_hazard_task.py new file mode 100644 index 0000000..6d17c4c --- /dev/null +++ b/tests/test_hazard_task.py @@ -0,0 +1,382 @@ +"""Tests for the HAZARD task (offline, no simulator needed).""" +import json +import pytest +from pathlib import Path + +from easi.tasks.hazard.actions import ( + get_action_space, ACTION_TYPES, SCENARIO_MAX_STEPS, + HIGH_VALUE, LOW_VALUE, +) + + +class TestHAZARDActions: + def test_action_types(self): + assert len(ACTION_TYPES) == 5 + assert "walk_to" in ACTION_TYPES + assert "explore" in ACTION_TYPES + assert "stop" in ACTION_TYPES + + def test_get_action_space(self): + space = get_action_space() + assert isinstance(space, list) + assert len(space) == 5 + + def test_scenario_max_steps(self): + assert SCENARIO_MAX_STEPS["fire"] == 1500 + assert SCENARIO_MAX_STEPS["flood"] == 1500 + assert SCENARIO_MAX_STEPS["wind"] == 3000 + + def test_values(self): + assert HIGH_VALUE == 5 + assert LOW_VALUE == 1 + + +class TestHAZARDConfig: + def test_value_json_exists(self): + path = Path(__file__).parent.parent / "easi/tasks/hazard/config/value.json" + assert path.exists() + data = json.loads(path.read_text()) + assert isinstance(data, dict) + assert len(data) > 0 + + def test_fire_json_exists(self): + path = Path(__file__).parent.parent / "easi/tasks/hazard/config/fire.json" + assert path.exists() + + def test_fluid_json_exists(self): + path = Path(__file__).parent.parent / "easi/tasks/hazard/config/fluid.json" + assert path.exists() + + def test_prompts_csv_exists(self): + path = Path(__file__).parent.parent / "easi/tasks/hazard/config/prompts.csv" + assert path.exists() + + +class TestHAZARDTask: + @pytest.fixture + def fire_task(self): + from easi.tasks.hazard.task import HAZARDTask + return HAZARDTask() + + def test_name(self, fire_task): + assert "hazard" in fire_task.name.lower() + + def test_simulator_key(self, fire_task): + assert fire_task.simulator_key == "tdw:v1_11_23" + + def test_max_steps(self, fire_task): + assert fire_task.max_steps >= 1500 + + def test_bridge_script_path(self, fire_task): + path = fire_task.get_bridge_script_path() + assert path.exists() + assert path.name == "bridge.py" + + def test_get_instruction(self, fire_task): + episode = {"instruction": "Rescue objects from fire"} + assert fire_task.get_instruction(episode) == "Rescue objects from fire" + + def test_format_reset_config(self, fire_task): + episode = { + "id": 0, + "episode_id": "test-1", + "task": "fire", + "instruction": "Rescue objects", + "scene_name": "mm_kitchen_3a", + "agent_position": [0.0, 0.0, 0.0], + "target_categories": ["hairbrush"], + "target_object_ids": [123], + "hazard_params": '{"fire_positions": [[0, 0, 0]]}', + "containers": [], + "objects": "[]", + "max_steps": 1500, + "source_dir": "room_setup_fire/test_set/test-1", + "_data_dir": "/tmp/test", + } + config = fire_task.format_reset_config(episode) + assert "source_dir" in config + assert "simulator_data" in config["source_dir"] + assert config["target_categories"] == ["hairbrush"] + assert config["target_object_ids"] == [123] + + def test_evaluate_empty_trajectory(self, fire_task): + episode = {"target_categories": ["hairbrush"], "target_object_ids": [123]} + result = fire_task.evaluate_episode(episode, []) + assert result["value_score"] == 0.0 + assert result["value_rate"] == 0.0 + assert result["damage_rate"] == 0.0 + assert result["num_steps"] == 0.0 + + def test_evaluate_episode_value_and_damage(self, fire_task): + """Test both Value and Damage metrics from the HAZARD paper.""" + from easi.core.episode import StepResult, Observation + episode = {"target_categories": ["hairbrush"], "target_object_ids": [123, 456]} + trajectory = [ + StepResult( + observation=Observation(rgb_path="/dev/null"), + reward=0.0, + done=True, + info={ + "value_score": 1.5, # e.g., one at full value (1.0), one damaged (0.5) + "max_value": 2.0, + "rescued_count": 2.0, + "damaged_count": 1.0, # one object was damaged when rescued + "targets_rescued": 2.0, + "targets_total": 2.0, + }, + ) + ] + result = fire_task.evaluate_episode(episode, trajectory) + assert result["value_score"] == 1.5 + assert result["value_rate"] == 0.75 # 1.5 / 2.0 = 0.75 (paper "Value") + assert result["damage_rate"] == 0.5 # 1 damaged / 2 rescued = 0.5 (paper "Damage") + assert result["rescued_count"] == 2.0 + assert result["damaged_count"] == 1.0 + + def test_evaluate_episode_no_damage(self, fire_task): + """All objects rescued undamaged -> value_rate=1.0, damage_rate=0.0.""" + from easi.core.episode import StepResult, Observation + episode = {"target_categories": ["hairbrush"], "target_object_ids": [123]} + trajectory = [ + StepResult( + observation=Observation(rgb_path="/dev/null"), + reward=0.0, + done=True, + info={ + "value_score": 1.0, + "max_value": 1.0, + "rescued_count": 1.0, + "damaged_count": 0.0, + "targets_rescued": 1.0, + "targets_total": 1.0, + }, + ) + ] + result = fire_task.evaluate_episode(episode, trajectory) + assert result["value_rate"] == 1.0 + assert result["damage_rate"] == 0.0 + + def test_aggregate_results_value_and_damage(self, fire_task): + """Test that aggregate_results produces paper-matching metrics.""" + from easi.core.episode import EpisodeRecord + records = [ + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "value_rate": 0.8, "damage_rate": 0.0, + "rescued_count": 3.0, "damaged_count": 0.0, + "value_score": 8.0, "max_value": 10.0, + "num_steps": 50.0, "targets_rescued": 3.0, "targets_total": 4.0, + "max_rescue_frame": 900.0, + }, + ), + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "value_rate": 0.5, "damage_rate": 0.0, + "rescued_count": 2.0, "damaged_count": 1.0, + "value_score": 4.0, "max_value": 8.0, + "num_steps": 100.0, "targets_rescued": 2.0, "targets_total": 3.0, + "max_rescue_frame": 600.0, + }, + ), + ] + agg = fire_task.aggregate_results(records) + # Value: average of per-episode value_rate = (0.8 + 0.5) / 2 = 0.65 + assert abs(agg["value_rate"] - 0.65) < 1e-6 + # Damage: cumulative = 1 damaged / 5 rescued = 0.2 + assert abs(agg["damage_rate"] - 0.2) < 1e-6 + # Step (paper): sum(max_rescue_frame) / sum(rescued) = (900+600) / 5 = 300 + assert abs(agg["avg_step"] - 300.0) < 1e-6 + # LLM steps: average = (50 + 100) / 2 = 75 + assert agg["avg_llm_steps"] == 75.0 + + def test_builtin_episodes(self, fire_task): + episodes = fire_task._get_builtin_episodes() + assert len(episodes) >= 1 + assert "instruction" in episodes[0] + assert "source_dir" in episodes[0] + + +class TestHAZARDTaskRegistry: + def test_registry_discovers_hazard_tasks(self): + from easi.tasks.registry import list_tasks, refresh + refresh() + tasks = list_tasks() + hazard_tasks = [t for t in tasks if t.startswith("hazard")] + assert len(hazard_tasks) == 3, f"Expected 3 HAZARD tasks, got {hazard_tasks}" + + +class TestHAZARDPromptBuilder: + @pytest.fixture + def builder(self): + from easi.tasks.hazard.prompts import HAZARDPromptBuilder + return HAZARDPromptBuilder(scenario="fire") + + def test_build_messages_returns_list(self, builder): + from easi.core.episode import Observation + from easi.core.memory import AgentMemory + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["look around"]', + "holding_objects": "[]", + "target_categories": '["hairbrush"]', + "object_list": '[{"name": "hairbrush_1", "category": "hairbrush", "id": "123"}]', + "current_seen_objects_id": '["123"]', + "object_distances": '{"123": 3.45}', + "env_change_record": "{}", + "feedback": "", + "frame_count": "0", + "targets_rescued": "0", + "targets_total": "1", + }, + ) + memory = AgentMemory( + task_description="Rescue hairbrush", + action_space=["walk_to", "explore"], + current_observation=obs, + ) + msgs = builder.build_messages(memory) + assert isinstance(msgs, list) + assert len(msgs) >= 1 + assert msgs[0]["role"] == "user" + # Verify prompt content matches original format + text = msgs[0]["content"][-1]["text"] + assert "fire" in text.lower() # scenario preamble + # Target uses raw numeric value (not "high"/"low") + assert "value: 1" in text + assert "attribute: None" in text # fire uses "None", not "fireproof" + # State section has per-object details + assert "Target objects currently seen:" in text + assert "distance: 3.45 m" in text + + def test_parse_response_option_letter(self, builder): + from easi.core.episode import Observation + from easi.core.memory import AgentMemory + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["go pick up object (123)", "look around"]', + "holding_objects": "[]", + }, + ) + memory = AgentMemory( + task_description="Rescue", + action_space=["walk_to", "explore"], + current_observation=obs, + ) + actions = builder.parse_response("A", memory) + assert len(actions) == 1 + assert actions[0].action_name == "go pick up object (123)" + + def test_parse_response_full_text(self, builder): + from easi.core.episode import Observation + from easi.core.memory import AgentMemory + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["go pick up object (123)", "look around"]', + "holding_objects": "[]", + }, + ) + memory = AgentMemory( + task_description="Rescue", + action_space=["walk_to", "explore"], + current_observation=obs, + ) + actions = builder.parse_response("look around", memory) + assert len(actions) == 1 + assert actions[0].action_name == "look around" + + def test_parse_response_fallback(self, builder): + from easi.core.episode import Observation + from easi.core.memory import AgentMemory + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["go pick up object (123)"]', + "holding_objects": "[]", + }, + ) + memory = AgentMemory( + task_description="Rescue", + action_space=["walk_to", "explore"], + current_observation=obs, + ) + actions = builder.parse_response("gibberish nonsense", memory) + assert len(actions) == 1 + assert actions[0].action_name == "look around" # fallback + + def test_conforms_to_protocol(self, builder): + from easi.agents.prompt_builder import PromptBuilderProtocol + assert isinstance(builder, PromptBuilderProtocol) + + def test_set_action_space_noop(self, builder): + # Should not raise + builder.set_action_space(["walk_to", "explore"]) + + def test_flood_builder_attributes(self): + from easi.tasks.hazard.prompts import HAZARDPromptBuilder + builder = HAZARDPromptBuilder(scenario="flood") + from easi.core.episode import Observation + from easi.core.memory import AgentMemory + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["look around"]', + "holding_objects": "[]", + "target_categories": '["hairbrush"]', + "object_list": '[{"name": "hairbrush_1", "category": "hairbrush", "id": "123"}]', + "current_seen_objects_id": '["123"]', + "object_distances": '{"123": 2.0}', + "env_change_record": "{}", + }, + ) + memory = AgentMemory( + task_description="Rescue", + action_space=[], + current_observation=obs, + ) + msgs = builder.build_messages(memory) + text = msgs[0]["content"][-1]["text"] + # Flood shows waterproof attribute + assert "non-waterproof" in text or "waterproof" in text + + def test_action_history_format(self, builder): + from easi.core.episode import Observation, Action + from easi.core.memory import AgentMemory, StepRecord + dummy_obs = Observation(rgb_path="/dev/null") + obs = Observation( + rgb_path="/dev/null", + metadata={ + "available_plans": '["look around"]', + "holding_objects": "[]", + "target_categories": '["hairbrush"]', + "object_list": "[]", + "current_seen_objects_id": "[]", + "object_distances": "{}", + "env_change_record": "{}", + }, + ) + memory = AgentMemory( + task_description="Rescue", + action_space=[], + current_observation=obs, + steps=[ + StepRecord( + observation=dummy_obs, + action=Action(action_name="look around"), + feedback="success", + ), + StepRecord( + observation=dummy_obs, + action=Action(action_name="go pick up hairbrush"), + feedback="max steps reached", + ), + ], + ) + msgs = builder.build_messages(memory) + text = msgs[0]["content"][-1]["text"] + assert "look around (success)" in text + assert "paused after taking 100 steps" in text From 4690439949b748fa3b4559de3a4d7624ba7eccee Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 21 Feb 2026 03:50:03 +0800 Subject: [PATCH 072/239] [Feat] Auto-download and auto-launch TDW build for HAZARD Add automated TDW Unity build management so users no longer need to manually download and launch the TDW binary before running HAZARD tasks. - manifest.yaml: Add installation_kwargs with TDW build download URL - env_manager.py: Add post_install() for build download/extract and get_env_vars() to export TDW_BUILD_PATH - bridge.py: Add _launch_tdw_build() to auto-start the TDW binary, wait for port readiness, and fall back gracefully if no build path - vision.py: Fix imports to be lazy (cv2/torch inside try block) --- easi/simulators/tdw/manifest.yaml | 4 + easi/simulators/tdw/v1_11_23/env_manager.py | 42 ++++++++++ easi/tasks/hazard/bridge.py | 77 ++++++++++++++++++- .../hazard/vendor/HAZARD/utils/vision.py | 7 +- 4 files changed, 122 insertions(+), 8 deletions(-) diff --git a/easi/simulators/tdw/manifest.yaml b/easi/simulators/tdw/manifest.yaml index 2e2fa12..a78b3a9 100644 --- a/easi/simulators/tdw/manifest.yaml +++ b/easi/simulators/tdw/manifest.yaml @@ -7,3 +7,7 @@ versions: simulator_class: "easi.simulators.tdw.v1_11_23.simulator.TDWSimulator" env_manager_class: "easi.simulators.tdw.v1_11_23.env_manager.TDWEnvManager" python_version: "3.10" + installation_kwargs: + build_url: "https://github.com/threedworld-mit/tdw/releases/download/v1.11.23/TDW_Linux.tar.gz" + build_filename: "TDW_Linux.tar.gz" + build_dir_name: "TDW" diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index 9558d1e..1eaecd9 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -1,12 +1,21 @@ """Environment manager for TDW v1.11.23. Used by HAZARD benchmark. Requires Python 3.10 and Xvfb (Unity build needs X11). + +Handles: +1. Conda env creation (Python 3.10) +2. Pip deps via uv (requirements.txt) +3. TDW Unity build download + extraction (post_install) +4. Runtime env vars (TDW_BUILD_PATH) for bridge subprocess """ from __future__ import annotations from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager +from easi.utils.logging import get_logger + +logger = get_logger(__name__) class TDWEnvManager(BaseEnvironmentManager): @@ -35,3 +44,36 @@ def get_system_deps(self) -> list[str]: def get_validation_import(self) -> str: return "from tdw.controller import Controller; print('tdw ok')" + + def get_env_vars(self) -> dict[str, str]: + """Return TDW env vars for bridge subprocess.""" + build_dir = self.installation_kwargs.get("build_dir_name", "") + if not build_dir: + return {} + t = self._get_template_variables() + build_path = self._resolve_template("{extras_dir}/" + build_dir, t) + return {"TDW_BUILD_PATH": build_path} + + def post_install(self, context: dict) -> None: + """Download and extract TDW Unity build. + + Args: + context: Dict with env_dir, extras_dir, env_vars keys. + """ + extras_dir = Path(context["extras_dir"]) + build_url = self.installation_kwargs.get("build_url") + build_filename = self.installation_kwargs.get("build_filename") + + if build_url and build_filename: + logger.info("Downloading TDW build from %s", build_url) + self._download_and_extract( + url=build_url, + filename=build_filename, + dest_dir=extras_dir, + ) + # Make binary executable + build_dir = self.installation_kwargs.get("build_dir_name", "TDW") + binary = extras_dir / build_dir / "TDW.x86_64" + if binary.exists(): + binary.chmod(binary.stat().st_mode | 0o755) + logger.info("TDW build binary ready at %s", binary) diff --git a/easi/tasks/hazard/bridge.py b/easi/tasks/hazard/bridge.py index ad6dd82..6dcbde3 100644 --- a/easi/tasks/hazard/bridge.py +++ b/easi/tasks/hazard/bridge.py @@ -13,7 +13,11 @@ import json import math +import os +import socket +import subprocess import sys +import time from pathlib import Path import numpy as np @@ -64,32 +68,97 @@ def __init__(self, workspace, simulator_kwargs=None): self._env_change_record = {} # {str(obj_id): [temp/water_level values]} self._cached_plans = [] # plan descriptions from previous step self._cached_plan_actions = [] # action tuples from previous step + self._tdw_process = None # TDW Unity build subprocess + + def _launch_tdw_build(self, port): + """Launch TDW Unity build if TDW_BUILD_PATH is available. + + The build path comes from: + 1. TDW_BUILD_PATH env var (set by TDWEnvManager.get_env_vars) + 2. simulator_kwargs["tdw_build_path"] (manual override) + + The bridge runs inside xvfb-run (from SubprocessRunner), so DISPLAY + is inherited by the TDW build process. + + The TDW build is a child of this bridge process. SubprocessRunner + already kills the entire process group on shutdown, so no separate + cleanup is needed. + """ + build_path = os.environ.get("TDW_BUILD_PATH") or self.simulator_kwargs.get( + "tdw_build_path" + ) + if not build_path: + logger.warning( + "TDW_BUILD_PATH not set — assuming TDW build is already running. " + "Run 'easi env install tdw:v1_11_23' to auto-download the build." + ) + return + + binary = Path(build_path) / "TDW.x86_64" + if not binary.exists(): + logger.warning( + "TDW build binary not found at %s — assuming TDW build is already running.", + binary, + ) + return + + logger.info("Launching TDW build: %s (port %d)", binary, port) + self._tdw_process = subprocess.Popen( + [str(binary), "-port", str(port)], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + + # Wait for TDW to start listening on the port + self._wait_for_port(port, timeout=60) + logger.info("TDW build is ready on port %d (pid %d)", port, self._tdw_process.pid) + + @staticmethod + def _wait_for_port(port, timeout=60, interval=1.0): + """Poll until a TCP port is accepting connections.""" + deadline = time.time() + timeout + while time.time() < deadline: + try: + with socket.create_connection(("127.0.0.1", port), timeout=2): + return + except OSError: + time.sleep(interval) + logger.warning("TDW build did not become ready on port %d within %ds", port, timeout) def _create_env(self, reset_config, simulator_kwargs): - """Create the appropriate HAZARD env (Fire/Flood/Wind).""" + """Create the appropriate HAZARD env (Fire/Flood/Wind). + + Launches the TDW Unity build first (if TDW_BUILD_PATH is available), + then creates the HAZARD env with launch_build=False so the env + connects to the already-running build. + """ scenario = simulator_kwargs.get("scenario", "fire") port = simulator_kwargs.get("port", 1071) screen_size = simulator_kwargs.get("screen_size", 512) use_cached_assets = simulator_kwargs.get("use_cached_assets", False) + # Launch TDW Unity build (no-op if TDW_BUILD_PATH not set) + self._launch_tdw_build(port) + launch_build = self._tdw_process is None + if scenario == "fire": from HAZARD.envs.fire import FireEnv env = FireEnv( - launch_build=True, screen_size=screen_size, port=port, + launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=False, ) elif scenario == "flood": from HAZARD.envs.flood import FloodEnv env = FloodEnv( - launch_build=True, screen_size=screen_size, port=port, + launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=False, ) elif scenario == "wind": from HAZARD.envs.wind import WindEnv env = WindEnv( - launch_build=True, screen_size=screen_size, port=port, + launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=False, ) diff --git a/easi/tasks/hazard/vendor/HAZARD/utils/vision.py b/easi/tasks/hazard/vendor/HAZARD/utils/vision.py index d6a8474..8848036 100644 --- a/easi/tasks/hazard/vendor/HAZARD/utils/vision.py +++ b/easi/tasks/hazard/vendor/HAZARD/utils/vision.py @@ -1,9 +1,8 @@ import os -import cv2 -import torch - try: + import cv2 + import torch import mmcv from mmcv.transforms import Compose from mmengine.utils import track_iter_progress @@ -11,7 +10,7 @@ from mmdet.apis import init_detector, inference_detector from mmdet.apis.inference import DetDataSample _HAS_MMDET = True -except ImportError: +except Exception: _HAS_MMDET = False PATH = os.path.dirname(os.path.abspath(__file__)) From 36c34862d1638a7d5cb1a893dc9188a7559aab46 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 21 Feb 2026 04:21:42 +0800 Subject: [PATCH 073/239] [Feat] Auto-download TDW build, auto-launch in bridge, and misc improvements - env_manager: Add post_install() to download/extract TDW build binary, get_env_vars() to export TDW_BUILD_PATH, and env_is_ready() to verify binary exists (triggers auto-install if missing) - manifest.yaml: Add installation_kwargs with TDW build download URL - bridge.py: Add _launch_tdw_build() to auto-start TDW binary with port readiness polling; make use_gt configurable via simulator_kwargs - subprocess_runner: Parse bridge log level and re-emit at matching level so WARNING/ERROR lines display with correct coloring - base_env_manager: Add trace logs to download/extract pipeline - cli: Rename --redownload to --refresh-data for clarity - vision.py: Move cv2/torch imports inside try block --- easi/cli.py | 16 +++---- easi/core/base_env_manager.py | 10 +++++ easi/evaluation/parallel_runner.py | 2 +- easi/evaluation/runner.py | 8 ++-- easi/simulators/subprocess_runner.py | 30 ++++++++++++- easi/simulators/tdw/v1_11_23/env_manager.py | 38 +++++++++++++++- easi/tasks/hazard/bridge.py | 43 ++++++++++++++++--- .../HAZARD/data/meta_data/temperature.json | 1 + .../vendor/HAZARD/data/meta_data/value.json | 1 + 9 files changed, 125 insertions(+), 24 deletions(-) create mode 100644 easi/tasks/hazard/vendor/HAZARD/data/meta_data/temperature.json create mode 100644 easi/tasks/hazard/vendor/HAZARD/data/meta_data/value.json diff --git a/easi/cli.py b/easi/cli.py index 644ab25..368d894 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -60,7 +60,7 @@ def build_parser() -> argparse.ArgumentParser: task_download = task_sub.add_parser("download", help="Download task dataset", parents=[common]) task_download.add_argument("task", type=str) - task_download.add_argument("--redownload", action="store_true", + task_download.add_argument("--refresh-data", action="store_true", dest="refresh_data", help="Delete cached dataset and re-download from source") task_scaffold = task_sub.add_parser("scaffold", help="Generate boilerplate for a new benchmark", parents=[common]) @@ -113,7 +113,7 @@ def build_parser() -> argparse.ArgumentParser: "Only supported with proprietary API backends (openai, anthropic, gemini).") start_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", help="Path to a previous run directory to resume from") - start_parser.add_argument("--redownload", action="store_true", + start_parser.add_argument("--refresh-data", action="store_true", dest="refresh_data", help="Delete cached dataset and re-download from source") # --- llm-server command --- @@ -235,12 +235,12 @@ def cmd_task_scaffold(name: str, simulator: str, max_steps: int) -> None: logger.info(" 4. Run tests: pytest tests/test_%s.py -v", name) -def cmd_task_download(task_name: str, redownload: bool = False) -> None: +def cmd_task_download(task_name: str, refresh_data: bool = False) -> None: from easi.tasks.registry import load_task_class TaskClass = load_task_class(task_name) task = TaskClass() - path = task.download_dataset(force=redownload) + path = task.download_dataset(force=refresh_data) if path and str(path): logger.info("Dataset ready at: %s", path) else: @@ -328,7 +328,7 @@ def cmd_start(args): # Extract session-specific params (not saved in config.json) resume_dir = raw.pop("resume_dir", None) - redownload = raw.pop("redownload", False) + redownload = raw.pop("refresh_data", False) if resume_dir: if len(task_list) > 1: @@ -371,14 +371,14 @@ def cmd_start(args): num_parallel=num_parallel, **run_kwargs, resume_dir=resume_dir, - redownload=redownload, + refresh_data=redownload, ) else: runner = EvaluationRunner( task_name=task_name, **run_kwargs, resume_dir=resume_dir, - redownload=redownload, + refresh_data=redownload, ) results = runner.run() @@ -434,7 +434,7 @@ def main() -> None: elif args.task_action == "info": cmd_task_info(args.task) elif args.task_action == "download": - cmd_task_download(args.task, redownload=args.redownload) + cmd_task_download(args.task, refresh_data=args.refresh_data) elif args.task_action == "scaffold": cmd_task_scaffold(args.name, args.simulator, args.max_steps) else: diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index c49f9c9..71186e7 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -309,22 +309,32 @@ def _download_and_extract( logger.info("Already downloaded: %s, skipping", filename) return + logger.trace("Download target: %s -> %s", url, dest) with spinner(f"Downloading {filename}"): logger.info("Downloading %s", url) req = urllib.request.Request(url, headers={"User-Agent": "easi/1.0"}) with urllib.request.urlopen(req) as response, open(str(dest), "wb") as out: + total = 0 while True: chunk = response.read(1024 * 1024) # 1MB chunks if not chunk: break out.write(chunk) + total += len(chunk) + logger.trace("Download complete: %s (%.1f MB)", filename, total / 1024 / 1024) if extract: + logger.trace("Extracting %s to %s (strip_components=%d)", filename, dest_dir, strip_components) with spinner(f"Extracting {filename}"): self._extract_archive(dest, dest_dir, strip_components) + logger.trace("Extraction complete, removing archive %s", dest) dest.unlink(missing_ok=True) # Remove archive to save space + # Log extracted contents (top-level only) + top_items = sorted(p.name for p in dest_dir.iterdir() if not p.name.startswith(".")) + logger.trace("Contents of %s after extraction: %s", dest_dir, top_items) marker.touch() + logger.trace("Wrote done marker: %s", marker) def _extract_archive(self, archive: Path, dest_dir: Path, strip_components: int = 0) -> None: """Extract a tar.xz, tar.gz, tar.bz2, or zip archive.""" diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 0dbd765..b1599ed 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -59,7 +59,7 @@ def run(self) -> list[dict]: # --- Phase 1: Load task --- logger.trace("Phase 1: Loading task") task = self._create_task() - if self.redownload: + if self.refresh_data: task.download_dataset(force=True) episodes = task.load_episodes() if self.max_episodes is not None: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index e2f3d07..ec449ea 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -45,7 +45,7 @@ class EvaluationRunner: """Sequential evaluation runner.""" # Session-specific params excluded from config.json - _EXCLUDE_FROM_CONFIG = frozenset({"resume_dir", "redownload"}) + _EXCLUDE_FROM_CONFIG = frozenset({"resume_dir", "refresh_data"}) def __init__( self, @@ -62,7 +62,7 @@ def __init__( llm_kwargs_raw: str | None = None, max_retries: int = 3, resume_dir: Path | str | None = None, - redownload: bool = False, + refresh_data: bool = False, ): # Auto-capture all init args for config.json (before any mutation) frame = inspect.currentframe() @@ -84,7 +84,7 @@ def __init__( self.llm_kwargs_raw = llm_kwargs_raw self.max_retries = max_retries self.resume_dir = Path(resume_dir) if resume_dir else None - self.redownload = redownload + self.refresh_data = refresh_data timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") @@ -133,7 +133,7 @@ def run(self) -> list[dict]: # 1. Load task (before resume so we know total_episodes) task = self._create_task() - if self.redownload: + if self.refresh_data: task.download_dataset(force=True) episodes = task.load_episodes() if self.max_episodes is not None: diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 92d7abc..c25748e 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -13,6 +13,7 @@ from __future__ import annotations import os +import re import signal import subprocess import threading @@ -215,8 +216,25 @@ def _has_display(self) -> bool: """Check if an X display is available.""" return bool(os.environ.get("DISPLAY", "")) + # Pattern to extract log level from bridge output (e.g. "[WARNING]" or "[ERROR]") + _BRIDGE_LEVEL_RE = re.compile(r"\[(\w+)\]") + + # Map bridge level names to logging levels + _BRIDGE_LEVEL_MAP = { + "TRACE": 5, # easi TRACE level + "DEBUG": 10, + "INFO": 20, + "WARNING": 30, + "ERROR": 40, + "CRITICAL": 50, + } + def _stream_output(self) -> None: - """Read bridge stdout line-by-line and log at DEBUG level. + """Read bridge stdout line-by-line and re-log at the matching level. + + Parses the log level from each bridge line (e.g. "[WARNING]") and + re-emits at that level so the parent process applies correct coloring. + Lines without a recognized level default to TRACE. Runs in a daemon thread for the lifetime of the subprocess. """ @@ -227,10 +245,18 @@ def _stream_output(self) -> None: for line in proc.stdout: line = line.rstrip() self._output_lines.append(line) - logger.trace("[bridge] %s", line) + level = self._parse_bridge_level(line) + logger.log(level, "[bridge] %s", line) except (ValueError, OSError): pass # pipe closed + def _parse_bridge_level(self, line: str) -> int: + """Extract log level from a bridge output line.""" + match = self._BRIDGE_LEVEL_RE.search(line) + if match: + return self._BRIDGE_LEVEL_MAP.get(match.group(1), 5) + return 5 # default to TRACE + def _get_recent_output(self) -> str: """Return the last N lines of captured bridge output.""" return "\n".join(self._output_lines) diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index 1eaecd9..34ef8fc 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -45,6 +45,23 @@ def get_system_deps(self) -> list[str]: def get_validation_import(self) -> str: return "from tdw.controller import Controller; print('tdw ok')" + def env_is_ready(self) -> bool: + """Check conda env + TDW build binary exist.""" + if not super().env_is_ready(): + return False + # Also verify the TDW Unity build binary was downloaded + build_dir = self.installation_kwargs.get("build_dir_name", "") + if build_dir: + binary = self.get_extras_dir() / build_dir / "TDW.x86_64" + if not binary.exists(): + logger.info( + "TDW conda env is ready but build binary missing at %s, " + "will re-run install to download it.", + binary, + ) + return False + return True + def get_env_vars(self) -> dict[str, str]: """Return TDW env vars for bridge subprocess.""" build_dir = self.installation_kwargs.get("build_dir_name", "") @@ -64,6 +81,8 @@ def post_install(self, context: dict) -> None: build_url = self.installation_kwargs.get("build_url") build_filename = self.installation_kwargs.get("build_filename") + logger.trace("post_install: extras_dir=%s, build_url=%s", extras_dir, build_url) + if build_url and build_filename: logger.info("Downloading TDW build from %s", build_url) self._download_and_extract( @@ -71,9 +90,24 @@ def post_install(self, context: dict) -> None: filename=build_filename, dest_dir=extras_dir, ) - # Make binary executable + + # Log what was extracted build_dir = self.installation_kwargs.get("build_dir_name", "TDW") - binary = extras_dir / build_dir / "TDW.x86_64" + build_path = extras_dir / build_dir + logger.trace("Expected build dir: %s (exists=%s)", build_path, build_path.exists()) + if build_path.exists(): + items = sorted(p.name for p in build_path.iterdir()) + logger.trace("Build dir contents: %s", items) + else: + # List extras_dir to help debug incorrect dir name + items = sorted(p.name for p in extras_dir.iterdir() if not p.name.startswith(".")) + logger.trace("extras_dir contents (build dir missing): %s", items) + + # Make binary executable + binary = build_path / "TDW.x86_64" + logger.trace("Expected binary: %s (exists=%s)", binary, binary.exists()) if binary.exists(): binary.chmod(binary.stat().st_mode | 0o755) logger.info("TDW build binary ready at %s", binary) + else: + logger.warning("TDW binary not found at %s after extraction", binary) diff --git a/easi/tasks/hazard/bridge.py b/easi/tasks/hazard/bridge.py index 6dcbde3..d83cf50 100644 --- a/easi/tasks/hazard/bridge.py +++ b/easi/tasks/hazard/bridge.py @@ -87,6 +87,11 @@ def _launch_tdw_build(self, port): build_path = os.environ.get("TDW_BUILD_PATH") or self.simulator_kwargs.get( "tdw_build_path" ) + logger.trace( + "TDW build lookup: TDW_BUILD_PATH=%s, simulator_kwargs.tdw_build_path=%s", + os.environ.get("TDW_BUILD_PATH"), + self.simulator_kwargs.get("tdw_build_path"), + ) if not build_path: logger.warning( "TDW_BUILD_PATH not set — assuming TDW build is already running. " @@ -94,7 +99,12 @@ def _launch_tdw_build(self, port): ) return - binary = Path(build_path) / "TDW.x86_64" + build_dir = Path(build_path) + binary = build_dir / "TDW.x86_64" + logger.trace("TDW build dir: %s (exists=%s)", build_dir, build_dir.exists()) + if build_dir.exists(): + items = sorted(p.name for p in build_dir.iterdir()) + logger.trace("TDW build dir contents: %s", items) if not binary.exists(): logger.warning( "TDW build binary not found at %s — assuming TDW build is already running.", @@ -102,28 +112,46 @@ def _launch_tdw_build(self, port): ) return + logger.trace("DISPLAY=%s", os.environ.get("DISPLAY", "")) + cmd = [str(binary), "-port", str(port)] logger.info("Launching TDW build: %s (port %d)", binary, port) + logger.trace("TDW launch command: %s", cmd) self._tdw_process = subprocess.Popen( - [str(binary), "-port", str(port)], + cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) + logger.trace("TDW build process started (pid %d)", self._tdw_process.pid) # Wait for TDW to start listening on the port self._wait_for_port(port, timeout=60) + + # Check if process is still alive after port wait + retcode = self._tdw_process.poll() + if retcode is not None: + logger.error("TDW build process exited with code %d before becoming ready", retcode) + self._tdw_process = None + return + logger.info("TDW build is ready on port %d (pid %d)", port, self._tdw_process.pid) @staticmethod def _wait_for_port(port, timeout=60, interval=1.0): """Poll until a TCP port is accepting connections.""" + logger.trace("Waiting for port %d (timeout=%ds, interval=%.1fs)", port, timeout, interval) deadline = time.time() + timeout + attempts = 0 while time.time() < deadline: + attempts += 1 try: with socket.create_connection(("127.0.0.1", port), timeout=2): + logger.trace("Port %d is ready after %d attempts", port, attempts) return - except OSError: + except OSError as e: + if attempts <= 3 or attempts % 10 == 0: + logger.trace("Port %d not ready (attempt %d): %s", port, attempts, e) time.sleep(interval) - logger.warning("TDW build did not become ready on port %d within %ds", port, timeout) + logger.warning("TDW build did not become ready on port %d within %ds (%d attempts)", port, timeout, attempts) def _create_env(self, reset_config, simulator_kwargs): """Create the appropriate HAZARD env (Fire/Flood/Wind). @@ -136,6 +164,7 @@ def _create_env(self, reset_config, simulator_kwargs): port = simulator_kwargs.get("port", 1071) screen_size = simulator_kwargs.get("screen_size", 512) use_cached_assets = simulator_kwargs.get("use_cached_assets", False) + use_gt = simulator_kwargs.get("use_gt", True) # Launch TDW Unity build (no-op if TDW_BUILD_PATH not set) self._launch_tdw_build(port) @@ -146,21 +175,21 @@ def _create_env(self, reset_config, simulator_kwargs): env = FireEnv( launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, - check_version=False, use_gt=False, + check_version=False, use_gt=use_gt, ) elif scenario == "flood": from HAZARD.envs.flood import FloodEnv env = FloodEnv( launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, - check_version=False, use_gt=False, + check_version=False, use_gt=use_gt, ) elif scenario == "wind": from HAZARD.envs.wind import WindEnv env = WindEnv( launch_build=launch_build, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, - check_version=False, use_gt=False, + check_version=False, use_gt=use_gt, ) else: raise ValueError(f"Unknown HAZARD scenario: {scenario}") diff --git a/easi/tasks/hazard/vendor/HAZARD/data/meta_data/temperature.json b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/temperature.json new file mode 100644 index 0000000..0d79f8b --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/temperature.json @@ -0,0 +1 @@ +[{"name": "034_vray", "wcategory": "camera", "temp": 400}, {"name": "102_pepsi_can_12_fl_oz_vray", "wcategory": "soda can", "temp": 2000}, {"name": "12_06_001", "wcategory": "water faucet", "temp": 400}, {"name": "24_in_wall_cabinet_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "24_in_wall_cabinet_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "36_in_wall_cabinet_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "36_in_wall_cabinet_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "4ft_shelf_metal", "wcategory": "bookshelf", "temp": 200}, {"name": "4ft_wood_shelving", "wcategory": "shelf", "temp": 300}, {"name": "5ft_shelf_metal", "wcategory": "shelf", "temp": 1000}, {"name": "5ft_wood_shelving", "wcategory": "shelf", "temp": 300}, {"name": "6ft_shelf_metal", "wcategory": "shelf", "temp": 1000}, {"name": "6ft_wood_shelving", "wcategory": "shelf", "temp": 300}, {"name": "868580_pliers_max2016", "wcategory": "pliers", "temp": 1000}, {"name": "9v_battery", "wcategory": "flashlight battery", "temp": 300}, {"name": "aaa_battery", "wcategory": "flashlight battery", "temp": 200}, {"name": "afl_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "alarm_clock", "wcategory": "alarm clock", "temp": 300}, {"name": "alivar_tech_bench_sofa", "wcategory": "sofa", "temp": 600}, {"name": "alma_floor_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "amphora_jar_vase", "wcategory": "vase", "temp": 60}, {"name": "apple", "wcategory": "apple", "temp": 100}, {"name": "apple_ipod_touch_yellow_vray", "wcategory": "ipod", "temp": 400}, {"name": "appliance-ge-profile-microwave", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "appliance-ge-profile-microwave3", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "appliance-ge-profile-microwave3_composite", "wcategory": "microwave", "temp": 2000}, {"name": "appliance-ge-profile-microwave_composite", "wcategory": "microwave", "temp": 2000}, {"name": "aquostv", "wcategory": "television set", "temp": 600}, {"name": "arco_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "arflex_hollywood_sofa", "wcategory": "sofa", "temp": 600}, {"name": "arflex_strips_sofa", "wcategory": "sofa", "temp": 600}, {"name": "arturoalvarez_v_floor_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "atmosphere_nodo", "wcategory": "globe", "temp": 300}, {"name": "b01_spatula", "wcategory": "kitchen utensil", "temp": 1000}, {"name": "b01_trumpet", "wcategory": "trumpet", "temp": 2000}, {"name": "b03_696615_object001", "wcategory": "pan", "temp": 3000}, {"name": "b03_aluminum_pan", "wcategory": "pot", "temp": 3000}, {"name": "b03_aluminum_pan_composite", "wcategory": "pot", "temp": 3000}, {"name": "b03_banana_01_high", "wcategory": "banana", "temp": 100}, {"name": "b03_burger", "wcategory": "sandwich", "temp": 100}, {"name": "b03_cooking_pot_01", "wcategory": "pot", "temp": 3000}, {"name": "b03_cooking_pot_01_composite", "wcategory": "pot", "temp": 3000}, {"name": "b03_db_apps_tech_08_04_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "b03_db_apps_tech_08_07_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "b03_db_apps_tech_08_08_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "b03_hair_comb_2010", "wcategory": "hairbrush", "temp": 200}, {"name": "b03_iron_candle_vray", "wcategory": "candle", "temp": 200}, {"name": "b03_ka90ivi20r_2013__vray", "wcategory": "refrigerator", "temp": 1000}, {"name": "b03_ka90ivi20r_2013__vray_composite", "wcategory": "refrigerator", "temp": 1000}, {"name": "b03_loafbread", "wcategory": "bread", "temp": 100}, {"name": "b03_morphy_2013__vray", "wcategory": "teakettle", "temp": 500}, {"name": "b03_old_scissors", "wcategory": "scissors", "temp": 300}, {"name": "b03_padlock", "wcategory": "padlock", "temp": 500}, {"name": "b03_pen", "wcategory": "pen", "temp": 200}, {"name": "b03_pen_01_001", "wcategory": "pen", "temp": 200}, {"name": "b03_piccolo_trumpet_vray", "wcategory": "trumpet", "temp": 2000}, {"name": "b03_radiator_alum_12", "wcategory": "radiator", "temp": 3000}, {"name": "b03_restoration_hardware_pedestal_salvaged_round_tables", "wcategory": "dining table", "temp": 300}, {"name": "b03_roller_skate", "wcategory": "skate", "temp": 200}, {"name": "b03_spoon_001", "wcategory": "spoon", "temp": 300}, {"name": "b03_toothbrush", "wcategory": "toothbrush", "temp": 200}, {"name": "b03_trumpet_vray", "wcategory": "trumpet", "temp": 2000}, {"name": "b04_03_077", "wcategory": "dining table", "temp": 300}, {"name": "b04_11_02_041", "wcategory": "floor lamp", "temp": 400}, {"name": "b04_3d_jar_180_gr_01", "wcategory": "jar", "temp": 400}, {"name": "b04_b200003_01", "wcategory": "trumpet", "temp": 2000}, {"name": "b04_backpack", "wcategory": "backpack", "temp": 300}, {"name": "b04_banana", "wcategory": "banana", "temp": 100}, {"name": "b04_baseball_bat", "wcategory": "baseball bat", "temp": 300}, {"name": "b04_baterijska_busilica", "wcategory": "drill", "temp": 1000}, {"name": "b04_bottle-2014-2018", "wcategory": "bottle", "temp": 1000}, {"name": "b04_bottle_2_max", "wcategory": "bottle", "temp": 500}, {"name": "b04_bowl_smooth", "wcategory": "bowl", "temp": 500}, {"name": "b04_candle_holder_metal", "wcategory": "candle", "temp": 200}, {"name": "b04_cantate_crystal_wine_glass", "wcategory": "wineglass", "temp": 1000}, {"name": "b04_cassete", "wcategory": "cassette", "temp": 500}, {"name": "b04_champions_trophy", "wcategory": "trophy", "temp": 500}, {"name": "b04_comb", "wcategory": "hairbrush", "temp": 200}, {"name": "b04_dat", "wcategory": "cassette", "temp": 500}, {"name": "b04_db_apps_tech_08_03", "wcategory": "dishwasher", "temp": 2000}, {"name": "b04_db_apps_tech_08_03_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "b04_default", "wcategory": "calculator", "temp": 500}, {"name": "b04_faucet1", "wcategory": "water faucet", "temp": 400}, {"name": "b04_fireextinguisher", "wcategory": "fire extinguisher", "temp": 1000}, {"name": "b04_geosphere001", "wcategory": "golf ball", "temp": 500}, {"name": "b04_glass_06_vray", "wcategory": "beverage", "temp": 100}, {"name": "b04_headphones_31_12", "wcategory": "headphone", "temp": 400}, {"name": "b04_honey_jar", "wcategory": "jar", "temp": 1000}, {"name": "b04_honey_jar_max_2014", "wcategory": "jar", "temp": 1000}, {"name": "b04_kevin_reilly_pattern_floor_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "b04_lighter", "wcategory": "lighter", "temp": 500}, {"name": "b04_low", "wcategory": "jug", "temp": 200}, {"name": "b04_new", "wcategory": "vase", "temp": 60}, {"name": "b04_orange_00", "wcategory": "orange", "temp": 100}, {"name": "b04_p22732_cc_cp_2013", "wcategory": "water faucet", "temp": 400}, {"name": "b04_p25050_slc_ad_2013", "wcategory": "water faucet", "temp": 400}, {"name": "b04_ramlosa_bottle_2015_vray", "wcategory": "bottle", "temp": 500}, {"name": "b04_roller_new", "wcategory": "skate", "temp": 500}, {"name": "b04_scissors_2013", "wcategory": "scissors", "temp": 500}, {"name": "b04_screwdriver_render", "wcategory": "screwdriver", "temp": 500}, {"name": "b04_screwdriver_v2_texture_", "wcategory": "screwdriver", "temp": 500}, {"name": "b04_whiskeybottle", "wcategory": "bottle", "temp": 500}, {"name": "b04_wineglass", "wcategory": "wineglass", "temp": 1000}, {"name": "b04_wire_pincers", "wcategory": "pliers", "temp": 1000}, {"name": "b05_48_body_shop_hair_brush", "wcategory": "hairbrush", "temp": 200}, {"name": "b05_ball-point_pen-obj", "wcategory": "pen", "temp": 200}, {"name": "b05_bathroom_dispenser", "wcategory": "soap dispenser", "temp": 200}, {"name": "b05_beko_oie_22500x_2013__corona", "wcategory": "gas cooker", "temp": 500}, {"name": "b05_calculator", "wcategory": "calculator", "temp": 300}, {"name": "b05_candles_max_vray2", "wcategory": "candle", "temp": 200}, {"name": "b05_candlestick_with_candles002_max2017_vray", "wcategory": "candle", "temp": 200}, {"name": "b05_castironradiator", "wcategory": "radiator", "temp": 3000}, {"name": "b05_cgaxis_models_37_17_vray", "wcategory": "candle", "temp": 200}, {"name": "b05_champagne_cup_vray", "wcategory": "wineglass", "temp": 1000}, {"name": "b05_coffee_grinder", "wcategory": "coffee grinder", "temp": 300}, {"name": "b05_cylinder001", "wcategory": "saltshaker, salt shaker", "temp": 500}, {"name": "b05_dacor_double_wall_oven", "wcategory": "gas cooker", "temp": 500}, {"name": "b05_db_apps_tech_06_02_2", "wcategory": "refrigerator", "temp": 1000}, {"name": "b05_db_apps_tech_08_09", "wcategory": "dishwasher", "temp": 2000}, {"name": "b05_db_apps_tech_08_09_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "b05_delonghi_icona_toaster", "wcategory": "toaster", "temp": 2000}, {"name": "b05_executive_pen", "wcategory": "pen", "temp": 200}, {"name": "b05_fire_extinguisher", "wcategory": "fire extinguisher", "temp": 1000}, {"name": "b05_gold_glass_soap_dispenser(max)", "wcategory": "soap dispenser", "temp": 200}, {"name": "b05_max2013vray_oven_by_whirlpool_akzm8910ixl", "wcategory": "gas cooker", "temp": 500}, {"name": "b05_p24409_00_cp_2013", "wcategory": "water faucet", "temp": 400}, {"name": "b05_racket", "wcategory": "racquet", "temp": 500}, {"name": "b05_snickers", "wcategory": "chocolate candy", "temp": 200}, {"name": "b05_sugerjar_a001_2015", "wcategory": "jar", "temp": 500}, {"name": "b05_table_new", "wcategory": "dining table", "temp": 300}, {"name": "b05_tag_heuer_max2014", "wcategory": "watch", "temp": 500}, {"name": "b05_vray_cassette_render_scene", "wcategory": "cassette", "temp": 500}, {"name": "b05_whirlpool_microwave_wmc30516as_v-ray", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "b06_21_dualit_original_toaster_4x", "wcategory": "toaster", "temp": 2000}, {"name": "b06_circle", "wcategory": "coin", "temp": 1000}, {"name": "backpack", "wcategory": "backpack", "temp": 300}, {"name": "bag_14", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "bag_3", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "bakerparisfloorlamp03", "wcategory": "floor lamp", "temp": 400}, {"name": "baking_sheet01", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet02", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet03", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet04", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet05", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet06", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet07", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet08", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet09", "wcategory": "cookie sheet", "temp": 300}, {"name": "baking_sheet10", "wcategory": "cookie sheet", "temp": 300}, {"name": "balance_double_doghouse", "wcategory": "dog house", "temp": 500}, {"name": "baleri_italia_folded_black_table", "wcategory": "table", "temp": 300}, {"name": "ball_peen_hammer", "wcategory": "hammer", "temp": 500}, {"name": "banana_fix2", "wcategory": "banana", "temp": 100}, {"name": "barcelona_bench_sofa", "wcategory": "sofa", "temp": 600}, {"name": "basic_cork", "wcategory": "bottle cork", "temp": 200}, {"name": "basic_cork_2", "wcategory": "bottle cork", "temp": 200}, {"name": "basket_18inx18inx12iin_bamboo", "wcategory": "basket", "temp": 2000}, {"name": "basket_18inx18inx12iin_plastic_lattice", "wcategory": "basket", "temp": 2000}, {"name": "basket_18inx18inx12iin_wicker", "wcategory": "basket", "temp": 2000}, {"name": "basket_18inx18inx12iin_wood_mesh", "wcategory": "basket", "temp": 2000}, {"name": "bastone_floor_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "baton_table_lamp_dark", "wcategory": "table lamp", "temp": 400}, {"name": "bed01", "wcategory": "bed", "temp": 200}, {"name": "bed01_blue", "wcategory": "bed", "temp": 200}, {"name": "bed01_red", "wcategory": "bed", "temp": 200}, {"name": "bee", "wcategory": "bee", "temp": 100}, {"name": "bench", "wcategory": "bench", "temp": 500}, {"name": "black_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "blue_bag", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "blue_club_chair", "wcategory": "chair", "temp": 300}, {"name": "blue_edition_liquid_soap02", "wcategory": "soap dispenser", "temp": 200}, {"name": "blue_rug", "wcategory": "rug", "temp": 500}, {"name": "blue_satchal", "wcategory": "suitcase", "temp": 300}, {"name": "blue_side_chair", "wcategory": "chair", "temp": 300}, {"name": "bookend01", "wcategory": "bookend", "temp": 2000}, {"name": "bookend03", "wcategory": "bookend", "temp": 2000}, {"name": "bookend04", "wcategory": "bookend", "temp": 2000}, {"name": "bookend05", "wcategory": "bookend", "temp": 2000}, {"name": "bookend06", "wcategory": "bookend", "temp": 2000}, {"name": "bookend07", "wcategory": "bookend", "temp": 2000}, {"name": "bork_vacuum", "wcategory": "vacuum cleaner", "temp": 500}, {"name": "bow_rake", "wcategory": "garden rake", "temp": 500}, {"name": "box_18inx18inx12in_cardboard", "wcategory": "box", "temp": 500}, {"name": "box_24inx18inx12in_cherry", "wcategory": "box", "temp": 500}, {"name": "box_tapered_beech", "wcategory": "box", "temp": 500}, {"name": "box_tapered_white_mesh", "wcategory": "box", "temp": 500}, {"name": "bread", "wcategory": "bread", "temp": 100}, {"name": "brizo_solna", "wcategory": "water faucet", "temp": 400}, {"name": "bronze_purse", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "brown_leather_dining_chair", "wcategory": "chair", "temp": 300}, {"name": "brown_leather_side_chair", "wcategory": "chair", "temp": 300}, {"name": "buddah", "wcategory": "sculpture", "temp": 500}, {"name": "bung", "wcategory": "bottle cork", "temp": 200}, {"name": "button_four_hole_large_black", "wcategory": "shirt button", "temp": 300}, {"name": "button_four_hole_large_wood", "wcategory": "shirt button", "temp": 300}, {"name": "button_four_hole_mottled", "wcategory": "shirt button", "temp": 300}, {"name": "button_four_hole_red_plastic", "wcategory": "shirt button", "temp": 600}, {"name": "button_four_hole_white_plastic", "wcategory": "shirt button", "temp": 600}, {"name": "button_four_hole_wood", "wcategory": "shirt button", "temp": 300}, {"name": "button_two_hole_green_mottled", "wcategory": "shirt button", "temp": 300}, {"name": "button_two_hole_grey", "wcategory": "shirt button", "temp": 300}, {"name": "button_two_hole_red_mottled", "wcategory": "shirt button", "temp": 300}, {"name": "button_two_hole_red_wood", "wcategory": "shirt button", "temp": 300}, {"name": "cabinet_24_door_drawer_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_single_door_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_single_door_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_singledoor_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_two_door_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_two_door_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_two_drawer_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_two_drawer_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_wall_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_wall_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_24_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_two_door_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_two_door_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_wall_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_wall_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_36_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_full_height_white_wood", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_full_height_wood_beach_honey", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_full_height_wood_beech_honey_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cabinet_full_height_wood_oak_white_composite", "wcategory": "cabinet", "temp": 700}, {"name": "cafe_2010", "wcategory": "coffee grinder", "temp": 300}, {"name": "calculator", "wcategory": "calculator", "temp": 500}, {"name": "camera_box", "wcategory": "box", "temp": 500}, {"name": "candle", "wcategory": "candle", "temp": 200}, {"name": "candles_max_vray", "wcategory": "candle", "temp": 200}, {"name": "candlestick1", "wcategory": "candle", "temp": 200}, {"name": "carpet_rug", "wcategory": "rug", "temp": 500}, {"name": "cerno_lamp", "wcategory": "floor lamp", "temp": 400}, {"name": "cgaxis_models_10_11_vray", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "cgaxis_models_20_05_vray", "wcategory": "candle", "temp": 200}, {"name": "cgaxis_models_23_19_vray", "wcategory": "book", "temp": 200}, {"name": "cgaxis_models_37_15_vray", "wcategory": "candle", "temp": 200}, {"name": "cgaxis_models_50_12_vray", "wcategory": "houseplant", "temp": 200}, {"name": "cgaxis_models_50_24_vray", "wcategory": "houseplant", "temp": 200}, {"name": "cgaxis_models_61_17_vray", "wcategory": "coffee grinder", "temp": 700}, {"name": "cgaxis_models_65_06_vray", "wcategory": "book", "temp": 200}, {"name": "cgaxis_models_65_14_vray", "wcategory": "book", "temp": 200}, {"name": "cgaxis_models_volume_59_15_vray", "wcategory": "camera", "temp": 500}, {"name": "chain_purse", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "chair_annabelle", "wcategory": "chair", "temp": 300}, {"name": "chair_billiani_doll", "wcategory": "chair", "temp": 300}, {"name": "chair_eames_plastic_armchair", "wcategory": "chair", "temp": 300}, {"name": "chair_thonet_marshall", "wcategory": "chair", "temp": 300}, {"name": "chair_willisau_riale", "wcategory": "chair", "temp": 300}, {"name": "champagne_cork", "wcategory": "bottle cork", "temp": 200}, {"name": "chista_slice_of_teak_table", "wcategory": "table", "temp": 300}, {"name": "chocolate_bar001", "wcategory": "chocolate candy", "temp": 200}, {"name": "club_house_italia_nautilus_sofa", "wcategory": "sofa", "temp": 600}, {"name": "coffee_001", "wcategory": "coffee maker", "temp": 500}, {"name": "coffee_0023", "wcategory": "coffee maker", "temp": 500}, {"name": "coffee_005_13", "wcategory": "coffee maker", "temp": 500}, {"name": "coffee_cup", "wcategory": "cup", "temp": 300}, {"name": "coffee_grinder", "wcategory": "coffee grinder", "temp": 700}, {"name": "coffee_maker", "wcategory": "coffee maker", "temp": 500}, {"name": "coffee_table_glass_round", "wcategory": "coffee table, cocktail table", "temp": 300}, {"name": "coffeecup004_fix", "wcategory": "cup", "temp": 500}, {"name": "coffeemug", "wcategory": "cup", "temp": 500}, {"name": "cork_plastic", "wcategory": "bottle cork", "temp": 200}, {"name": "cork_plastic_black", "wcategory": "bottle cork", "temp": 200}, {"name": "cucharon_utensilios", "wcategory": "kitchen utensil", "temp": 500}, {"name": "cup", "wcategory": "cup", "temp": 500}, {"name": "cylinder01", "wcategory": "pepper mill, pepper grinder", "temp": 500}, {"name": "dark_red_club_chair", "wcategory": "chair", "temp": 300}, {"name": "db_apps_tech_08_10_composite", "wcategory": "dishwasher", "temp": 2000}, {"name": "de_castelli_placas_table", "wcategory": "table", "temp": 300}, {"name": "de_castelli_placas_table_low", "wcategory": "table", "temp": 300}, {"name": "desk_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "dewalt_compact_drill_vray", "wcategory": "drill", "temp": 500}, {"name": "dining_room_table", "wcategory": "table", "temp": 300}, {"name": "dishwasher_4", "wcategory": "dishwasher", "temp": 500}, {"name": "dishwasher_4_composite", "wcategory": "dishwasher", "temp": 500}, {"name": "duffle_bag", "wcategory": "suitcase", "temp": 300}, {"name": "duffle_bag_sm", "wcategory": "suitcase", "temp": 300}, {"name": "duhovka", "wcategory": "gas cooker", "temp": 500}, {"name": "dumb-bell_2010", "wcategory": "dumbbell", "temp": 500}, {"name": "duncan_floor_lamp_crate_and_barrel", "wcategory": "floor lamp", "temp": 400}, {"name": "easter4", "wcategory": "sculpture", "temp": 500}, {"name": "elephant_bowl", "wcategory": "bowl", "temp": 500}, {"name": "elf_painting", "wcategory": "painting", "temp": 200}, {"name": "emeco_navy_chair", "wcategory": "chair", "temp": 300}, {"name": "engineers_hammer_vray", "wcategory": "hammer", "temp": 1000}, {"name": "enzo_industrial_loft_pine_metal_round_dining_table", "wcategory": "table", "temp": 300}, {"name": "f10_apple_iphone_4", "wcategory": "ipod", "temp": 400}, {"name": "filler_2010", "wcategory": "soap dispenser", "temp": 200}, {"name": "fire_extinguisher", "wcategory": "fire extinguisher", "temp": 1000}, {"name": "fire_extinguisher_(max2014)", "wcategory": "fire extinguisher", "temp": 1000}, {"name": "flat_woven_rug", "wcategory": "rug", "temp": 500}, {"name": "fork1", "wcategory": "fork", "temp": 1000}, {"name": "fork2", "wcategory": "fork", "temp": 1000}, {"name": "fork3", "wcategory": "fork", "temp": 1000}, {"name": "fork4", "wcategory": "fork", "temp": 1000}, {"name": "foscarini_cage_mic_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "framed_painting", "wcategory": "picture", "temp": 200}, {"name": "fredericia_spine_stool_1", "wcategory": "stool", "temp": 500}, {"name": "fridge_large", "wcategory": "refrigerator", "temp": 1000}, {"name": "fridge_large_composite", "wcategory": "refrigerator", "temp": 1000}, {"name": "fruit_basket", "wcategory": "painting", "temp": 2000}, {"name": "gas_stove", "wcategory": "gas cooker", "temp": 500}, {"name": "gas_stove_composite", "wcategory": "gas cooker", "temp": 500}, {"name": "generic_toothbrush_001", "wcategory": "toothbrush", "temp": 200}, {"name": "glass1", "wcategory": "wineglass", "temp": 1000}, {"name": "glass2", "wcategory": "wineglass", "temp": 1000}, {"name": "glass3", "wcategory": "wineglass", "temp": 1000}, {"name": "glass_coffee_table_long", "wcategory": "coffee table, cocktail table", "temp": 300}, {"name": "glass_table", "wcategory": "table", "temp": 300}, {"name": "glass_table_round", "wcategory": "table", "temp": 300}, {"name": "golf", "wcategory": "golf ball", "temp": 500}, {"name": "green_bag", "wcategory": "suitcase", "temp": 300}, {"name": "green_side_chair", "wcategory": "chair", "temp": 300}, {"name": "h-shape_wood_block", "wcategory": "toy", "temp": 300}, {"name": "half_circle_wood_block", "wcategory": "toy", "temp": 300}, {"name": "heart", "wcategory": "toy", "temp": 300}, {"name": "hexagonal_toy", "wcategory": "toy", "temp": 300}, {"name": "hiker_backpack", "wcategory": "backpack", "temp": 300}, {"name": "holy_bible", "wcategory": "book", "temp": 200}, {"name": "hp_printer", "wcategory": "printer", "temp": 500}, {"name": "int_kitchen_accessories_le_creuset_bowl_30cm", "wcategory": "bowl", "temp": 300}, {"name": "int_kitchen_accessories_le_creuset_frying_pan_28cm", "wcategory": "pan", "temp": 3000}, {"name": "iron_box", "wcategory": "box", "temp": 500}, {"name": "its_about_time_painting", "wcategory": "painting", "temp": 200}, {"name": "jug01", "wcategory": "jug", "temp": 200}, {"name": "jug02", "wcategory": "jug", "temp": 200}, {"name": "jug03", "wcategory": "jug", "temp": 200}, {"name": "jug04", "wcategory": "jug", "temp": 200}, {"name": "jug05", "wcategory": "jug", "temp": 200}, {"name": "juicer", "wcategory": "coffee grinder", "temp": 700}, {"name": "kenmore_refr_74049_composite", "wcategory": "refrigerator", "temp": 1000}, {"name": "kettle", "wcategory": "teakettle", "temp": 500}, {"name": "kettle_2", "wcategory": "teakettle", "temp": 500}, {"name": "kevin_reilly_pattern_table_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "key_brass", "wcategory": "key", "temp": 500}, {"name": "key_dull_metal", "wcategory": "key", "temp": 500}, {"name": "key_shiny", "wcategory": "key", "temp": 500}, {"name": "kids_luggage_1", "wcategory": "suitcase", "temp": 300}, {"name": "kids_luggage_2", "wcategory": "suitcase", "temp": 300}, {"name": "kitchen_aid_coffee_grinder", "wcategory": "coffee grinder", "temp": 700}, {"name": "kitchen_faucet", "wcategory": "water faucet", "temp": 400}, {"name": "kitchen_sieve", "wcategory": "kitchen utensil", "temp": 500}, {"name": "knife1", "wcategory": "knife", "temp": 500}, {"name": "knife2", "wcategory": "knife", "temp": 500}, {"name": "knife3", "wcategory": "knife", "temp": 500}, {"name": "kosmos_black_soap_dispenser", "wcategory": "soap dispenser", "temp": 200}, {"name": "l-shape_wood_block", "wcategory": "toy", "temp": 300}, {"name": "lamp_02", "wcategory": "table lamp", "temp": 400}, {"name": "lantern_2010", "wcategory": "candle", "temp": 200}, {"name": "lapalma_stil_chair", "wcategory": "chair", "temp": 300}, {"name": "large_mesh_basket", "wcategory": "basket", "temp": 2000}, {"name": "lawnmower", "wcategory": "lawn mower, mower", "temp": 500}, {"name": "lg_table_marble_green", "wcategory": "table", "temp": 300}, {"name": "lg_table_white", "wcategory": "table", "temp": 300}, {"name": "lighter", "wcategory": "lighter", "temp": 500}, {"name": "ligne_roset_armchair", "wcategory": "chair", "temp": 300}, {"name": "linbrazil_diz_armchair", "wcategory": "chair", "temp": 300}, {"name": "linen_dining_chair", "wcategory": "chair", "temp": 300}, {"name": "lint_roller01", "wcategory": "clothesbrush", "temp": 200}, {"name": "lint_roller02", "wcategory": "clothesbrush", "temp": 200}, {"name": "lint_roller03", "wcategory": "clothesbrush", "temp": 200}, {"name": "lint_roller04", "wcategory": "clothesbrush", "temp": 200}, {"name": "lint_roller05", "wcategory": "clothesbrush", "temp": 200}, {"name": "live_edge_coffee_table", "wcategory": "coffee table, cocktail table", "temp": 300}, {"name": "luggage_bag_1", "wcategory": "suitcase", "temp": 300}, {"name": "macbook_air", "wcategory": "laptop, laptop computer", "temp": 500}, {"name": "marble_table", "wcategory": "table", "temp": 300}, {"name": "marble_table_white", "wcategory": "table", "temp": 300}, {"name": "mater_high_stool_al_69", "wcategory": "stool", "temp": 500}, {"name": "measuring_pan", "wcategory": "pan", "temp": 3000}, {"name": "meridiani_belmondo_bench_sofa", "wcategory": "sofa", "temp": 600}, {"name": "meridiani_freeman_sofa", "wcategory": "sofa", "temp": 600}, {"name": "metal_briefcase", "wcategory": "suitcase", "temp": 300}, {"name": "metal_lab_shelf", "wcategory": "cabinet", "temp": 500}, {"name": "metal_lab_table", "wcategory": "table", "temp": 300}, {"name": "metal_sculpture", "wcategory": "sculpture", "temp": 500}, {"name": "microwave", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "microwave_composite", "wcategory": "microwave", "temp": 2000}, {"name": "minotti_helion_3_seater_sofa", "wcategory": "sofa", "temp": 600}, {"name": "moet_chandon_bottle_vray", "wcategory": "bottle", "temp": 500}, {"name": "molteni_turner_sofa", "wcategory": "sofa", "temp": 600}, {"name": "monster_beats_studio", "wcategory": "headphone", "temp": 400}, {"name": "mouse_02_vray", "wcategory": "computer mouse", "temp": 500}, {"name": "mouse_m505_1", "wcategory": "computer mouse", "temp": 500}, {"name": "napoleon_iii_sofa", "wcategory": "sofa", "temp": 600}, {"name": "naughtone_pinch_stool_chair", "wcategory": "chair", "temp": 300}, {"name": "notes_02", "wcategory": "book", "temp": 200}, {"name": "object05", "wcategory": "pan", "temp": 3000}, {"name": "omega_seamaster_set", "wcategory": "watch", "temp": 500}, {"name": "on_the_rocks_sofa", "wcategory": "sofa", "temp": 600}, {"name": "orange", "wcategory": "orange", "temp": 100}, {"name": "pan01", "wcategory": "pan", "temp": 3000}, {"name": "pan02", "wcategory": "pan", "temp": 3000}, {"name": "pan03", "wcategory": "pan", "temp": 3000}, {"name": "pan04", "wcategory": "pan", "temp": 3000}, {"name": "pan05", "wcategory": "pan", "temp": 3000}, {"name": "pan1", "wcategory": "pot", "temp": 3000}, {"name": "pan3", "wcategory": "pot", "temp": 3000}, {"name": "pcylinder222", "wcategory": "fork", "temp": 1000}, {"name": "pencil_all", "wcategory": "pencil", "temp": 200}, {"name": "pentagon_wood_block", "wcategory": "toy", "temp": 300}, {"name": "pepper", "wcategory": "pepper mill, pepper grinder", "temp": 700}, {"name": "pillow", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow01", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow02", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow03", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow04", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow05", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow06", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow07", "wcategory": "throw pillow", "temp": 200}, {"name": "pillow08", "wcategory": "throw pillow", "temp": 200}, {"name": "pixamoon_free_test_faucet_001_publish", "wcategory": "water faucet", "temp": 400}, {"name": "plate05", "wcategory": "plate", "temp": 500}, {"name": "plate06", "wcategory": "plate", "temp": 500}, {"name": "plate07", "wcategory": "plate", "temp": 500}, {"name": "poliform_atollo_curved_sofa", "wcategory": "sofa", "temp": 600}, {"name": "poliform_park_low_arm_sofa", "wcategory": "sofa", "temp": 600}, {"name": "pot", "wcategory": "pot", "temp": 3000}, {"name": "pot_composite", "wcategory": "pot", "temp": 3000}, {"name": "printer_hp_laserjet1321", "wcategory": "printer", "temp": 500}, {"name": "purple_woven_rug", "wcategory": "rug", "temp": 500}, {"name": "purse", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "puzzle_box_composite", "wcategory": "toy", "temp": 300}, {"name": "quatre_dining_table", "wcategory": "table", "temp": 300}, {"name": "radiator_pub_2015", "wcategory": "radiator", "temp": 3000}, {"name": "rectangle_wood_block", "wcategory": "toy", "temp": 300}, {"name": "red_bag", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "red_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "red_side_chair", "wcategory": "chair", "temp": 300}, {"name": "remote_vr_2012", "wcategory": "remote", "temp": 500}, {"name": "rh1", "wcategory": "toy", "temp": 300}, {"name": "rh10", "wcategory": "toy", "temp": 300}, {"name": "rh18", "wcategory": "toy", "temp": 300}, {"name": "ripple", "wcategory": "coin", "temp": 1000}, {"name": "round_bowl_large_padauk", "wcategory": "bowl", "temp": 500}, {"name": "round_bowl_large_thin", "wcategory": "bowl", "temp": 500}, {"name": "round_bowl_small_beech", "wcategory": "bowl", "temp": 500}, {"name": "round_bowl_small_walnut", "wcategory": "bowl", "temp": 500}, {"name": "round_bowl_talll_wenge", "wcategory": "bowl", "temp": 500}, {"name": "round_coaster_cherry", "wcategory": "coaster", "temp": 1000}, {"name": "round_coaster_indent_rubber", "wcategory": "coaster", "temp": 1000}, {"name": "round_coaster_indent_stone", "wcategory": "coaster", "temp": 1000}, {"name": "round_coaster_indent_wood", "wcategory": "coaster", "temp": 1000}, {"name": "round_coaster_stone", "wcategory": "coaster", "temp": 1000}, {"name": "round_coaster_stone_dark", "wcategory": "coaster", "temp": 1000}, {"name": "russell_hobbs_2013__vray", "wcategory": "toaster", "temp": 2000}, {"name": "satiro_sculpture", "wcategory": "sculpture", "temp": 500}, {"name": "sayonara_sofa", "wcategory": "sofa", "temp": 600}, {"name": "scissors", "wcategory": "scissors", "temp": 500}, {"name": "serving_bowl", "wcategory": "bowl", "temp": 500}, {"name": "servingfork", "wcategory": "carving fork", "temp": 1000}, {"name": "shallow_basket_white_mesh", "wcategory": "basket", "temp": 2000}, {"name": "shallow_basket_wicker", "wcategory": "basket", "temp": 2000}, {"name": "shark", "wcategory": "toy", "temp": 300}, {"name": "shoebox_fused", "wcategory": "box", "temp": 500}, {"name": "side_table_wood", "wcategory": "table", "temp": 300}, {"name": "silver_frame_painting", "wcategory": "painting", "temp": 200}, {"name": "sink_base_white_wood", "wcategory": "cabinet", "temp": 500}, {"name": "sink_base_wood_beach_honey", "wcategory": "cabinet", "temp": 500}, {"name": "sink_cabinet_unit_wood_beech_honey_chrome_composite", "wcategory": "cabinet", "temp": 700}, {"name": "sink_cabinet_unit_wood_beech_honey_porcelain_composite", "wcategory": "cabinet", "temp": 700}, {"name": "sink_cabinet_unit_wood_oak_white_chrome_composite", "wcategory": "cabinet", "temp": 700}, {"name": "sink_cabinet_unit_wood_oak_white_porcelain_composite", "wcategory": "cabinet", "temp": 700}, {"name": "skateboard_1", "wcategory": "skateboard", "temp": 500}, {"name": "skillet_closed", "wcategory": "pan", "temp": 3000}, {"name": "skillet_open", "wcategory": "pan", "temp": 3000}, {"name": "skillet_open_no_lid", "wcategory": "pan", "temp": 3000}, {"name": "sm_table_white", "wcategory": "table", "temp": 300}, {"name": "small_purse", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "small_table_green_marble", "wcategory": "table", "temp": 300}, {"name": "soap_dispenser_01", "wcategory": "soap dispenser", "temp": 200}, {"name": "soup_ladle_black_02", "wcategory": "kitchen utensil", "temp": 500}, {"name": "spagetti-server", "wcategory": "kitchen utensil", "temp": 500}, {"name": "spatula", "wcategory": "kitchen utensil", "temp": 500}, {"name": "spatula2", "wcategory": "kitchen utensil", "temp": 500}, {"name": "spatula3", "wcategory": "kitchen utensil", "temp": 500}, {"name": "spoon1", "wcategory": "spoon", "temp": 500}, {"name": "spoon2", "wcategory": "spoon", "temp": 500}, {"name": "spunlight_designermesh_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "square_coaster_001_cork", "wcategory": "coaster", "temp": 1000}, {"name": "square_coaster_001_marble", "wcategory": "coaster", "temp": 1000}, {"name": "square_coaster_001_wood", "wcategory": "coaster", "temp": 1000}, {"name": "square_coaster_rubber", "wcategory": "coaster", "temp": 1000}, {"name": "square_coaster_stone", "wcategory": "coaster", "temp": 1000}, {"name": "square_coaster_wood", "wcategory": "coaster", "temp": 1000}, {"name": "square_wood_block", "wcategory": "toy", "temp": 300}, {"name": "star_wood_block", "wcategory": "toy", "temp": 300}, {"name": "steam-punk_gear_25", "wcategory": "cog, gear", "temp": 500}, {"name": "steam-punk_gear_27", "wcategory": "cog, gear", "temp": 500}, {"name": "steam-punk_gear_29", "wcategory": "cog, gear", "temp": 500}, {"name": "stelton_emma_tea_vacuum_jug", "wcategory": "jug", "temp": 200}, {"name": "t-shape_wood_block", "wcategory": "toy", "temp": 300}, {"name": "table_square", "wcategory": "table", "temp": 300}, {"name": "table_stack", "wcategory": "table", "temp": 300}, {"name": "tablespoon", "wcategory": "spoon", "temp": 500}, {"name": "tan_lounger_chair", "wcategory": "chair", "temp": 300}, {"name": "tan_purse", "wcategory": "bag, handbag, pocketbook, purse", "temp": 200}, {"name": "tan_side_chair", "wcategory": "chair", "temp": 300}, {"name": "tapered_cork", "wcategory": "bottle cork", "temp": 200}, {"name": "tapered_cork_w_hole", "wcategory": "bottle cork", "temp": 200}, {"name": "tea_kettle_model", "wcategory": "teakettle", "temp": 500}, {"name": "teakettle_01", "wcategory": "teakettle", "temp": 500}, {"name": "teatray", "wcategory": "tea tray", "temp": 500}, {"name": "toaster_002", "wcategory": "toaster", "temp": 2000}, {"name": "toaster_b", "wcategory": "toaster", "temp": 2000}, {"name": "tolix_bar_stool", "wcategory": "stool", "temp": 500}, {"name": "toothbrush", "wcategory": "toothbrush", "temp": 200}, {"name": "toy_monkey_medium", "wcategory": "toy", "temp": 300}, {"name": "trapezoidal_table", "wcategory": "coffee table, cocktail table", "temp": 300}, {"name": "trashbin", "wcategory": "basket", "temp": 500}, {"name": "tray_02", "wcategory": "tea tray", "temp": 500}, {"name": "trophy01", "wcategory": "trophy", "temp": 500}, {"name": "trophy02", "wcategory": "trophy", "temp": 500}, {"name": "trunck", "wcategory": "trunk", "temp": 500}, {"name": "v3_tf_04_01", "wcategory": "teakettle", "temp": 500}, {"name": "vase_01", "wcategory": "vase", "temp": 60}, {"name": "vase_02", "wcategory": "vase", "temp": 60}, {"name": "vase_03", "wcategory": "vase", "temp": 60}, {"name": "vase_05", "wcategory": "vase", "temp": 60}, {"name": "vase_06", "wcategory": "vase", "temp": 60}, {"name": "vase_laura_deko_vase_set", "wcategory": "vase", "temp": 60}, {"name": "vitra_meda_chair", "wcategory": "chair", "temp": 300}, {"name": "vk0002_teaspoon", "wcategory": "spoon", "temp": 500}, {"name": "vk0007_steak_knife", "wcategory": "knife", "temp": 500}, {"name": "vk0010_dinner_fork_subd0", "wcategory": "fork", "temp": 1000}, {"name": "vk0011_dessert_fork_subd0", "wcategory": "fork", "temp": 1000}, {"name": "vk0014_dinner_knife_subd2", "wcategory": "knife", "temp": 500}, {"name": "vk0054_teaspoon", "wcategory": "spoon", "temp": 500}, {"name": "vk0055_tableknife", "wcategory": "knife", "temp": 500}, {"name": "vk0056_tablefork", "wcategory": "fork", "temp": 1000}, {"name": "vk0058_tablespoon", "wcategory": "spoon", "temp": 500}, {"name": "vk0060_dessertspoon", "wcategory": "spoon", "temp": 500}, {"name": "vk0067_fishfork", "wcategory": "fork", "temp": 1000}, {"name": "vk0078_fruitspoon", "wcategory": "spoon", "temp": 500}, {"name": "vk0080_soupspoon", "wcategory": "spoon", "temp": 500}, {"name": "vm_v5_070", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "vm_v5_070_composite", "wcategory": "microwave", "temp": 2000}, {"name": "vray_032", "wcategory": "dishwasher", "temp": 500}, {"name": "vray_041", "wcategory": "teakettle", "temp": 500}, {"name": "vray_043", "wcategory": "teakettle", "temp": 500}, {"name": "vray_044", "wcategory": "teakettle", "temp": 500}, {"name": "vray_062", "wcategory": "microwave, microwave oven", "temp": 2000}, {"name": "vray_062_composite", "wcategory": "microwave", "temp": 2000}, {"name": "vray_077", "wcategory": "toaster", "temp": 2000}, {"name": "vray_077_composite", "wcategory": "toaster", "temp": 2000}, {"name": "vray_083", "wcategory": "toaster", "temp": 2000}, {"name": "vray_083_composite", "wcategory": "toaster", "temp": 2000}, {"name": "vray_084", "wcategory": "toaster", "temp": 2000}, {"name": "vray_084_composite", "wcategory": "toaster", "temp": 2000}, {"name": "vray_085", "wcategory": "toaster", "temp": 2000}, {"name": "vray_085_composite", "wcategory": "toaster", "temp": 2000}, {"name": "vraymax2013_oven_akzm6610ixl_by_whirlpool", "wcategory": "gas cooker", "temp": 500}, {"name": "whisk", "wcategory": "kitchen utensil", "temp": 500}, {"name": "white_club_chair", "wcategory": "chair", "temp": 300}, {"name": "white_lamp", "wcategory": "table lamp", "temp": 400}, {"name": "white_lounger_chair", "wcategory": "chair", "temp": 300}, {"name": "white_shopping_bag", "wcategory": "suitcase", "temp": 300}, {"name": "willisau_varion_w3_table", "wcategory": "table", "temp": 300}, {"name": "wood_board", "wcategory": "incline", "temp": 500}, {"name": "wood_chair", "wcategory": "chair", "temp": 300}, {"name": "wooden_pepper_mill", "wcategory": "pepper mill, pepper grinder", "temp": 300}, {"name": "woven_box", "wcategory": "box", "temp": 500}, {"name": "yellow_side_chair", "wcategory": "chair", "temp": 300}, {"name": "zenblocks", "wcategory": "toy", "temp": 300}, {"name": "zippo", "wcategory": "lighter", "temp": 500}, {"name": "glass", "wcategory": "glass", "temp": 1000}, {"name": "iphone_5_vr_white", "wcategory": "phone", "temp": 200}] \ No newline at end of file diff --git a/easi/tasks/hazard/vendor/HAZARD/data/meta_data/value.json b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/value.json new file mode 100644 index 0000000..cef782c --- /dev/null +++ b/easi/tasks/hazard/vendor/HAZARD/data/meta_data/value.json @@ -0,0 +1 @@ +{"button_two_hole_red_wood": 0, "b04_bowl_smooth": 0, "holy_bible": 0, "bee": 0, "pillow": 0, "small_purse": 1, "pillow01": 0, "green_bag": 0, "backpack": 0, "apple_ipod_touch_yellow_vray": 1, "f10_apple_iphone_4": 1, "bork_vacuum": 1, "hp_printer": 1, "coffee_0023": 0, "b04_lighter": 0, "key_brass": 0, "034_vray": 1, "b04_wire_pincers": 0, "b04_bottle-2014-2018": 0, "candle": 0, "cafe_2010": 1, "bung": 0, "102_pepsi_can_12_fl_oz_vray": 0, "box_18inx18inx12in_cardboard": 0, "luggage_bag_1": 1, "woven_box": 0, "basket_18inx18inx12iin_plastic_lattice": 0, "f10_apple_iphone_4hp_printer": 1, "fire_extinguisher": 0, "b05_fire_extinguisher": 0, "b03_roller_skate": 1, "b03_hair_comb_2010": 0, "b03_toothbrush": 0, "b04_banana": 0, "b04_comb": 0, "b05_48_body_shop_hair_brush": 0, "b05_ball-point_pen-obj": 0, "b05_executive_pen": 1, "bag_14": 0, "bag_3": 0, "banana_fix2": 0, "blue_bag": 0, "chocolate_bar001": 0, "measuring_pan": 0, "tan_purse": 1, "toothbrush": 0, "plate06": 0, "apple": 0, "red_bag": 1, "b03_banana_01_high": 0, "b04_honey_jar": 1, "vk0007_steak_knife": 1, "vk0055_tableknife": 1, "b03_pen": 1, "b03_pen_01_001": 1, "pepper": 0, "cylinder01": 1, "b05_cylinder001": 1, "b03_burger": 0, "scissors": 1, "b04_scissors_2013": 1, "amphora_jar_vase": 1, "vase_01": 1, "glass": 1, "b04_cantate_crystal_wine_glass": 1, "b04_wineglass": 1, "macbook_air": 0, "iphone_5_vr_white": 0, "b04_headphones_31_12": 0, "trophy01": 1, "trophy02": 1, "b04_glass_06_vray": 1} \ No newline at end of file From 2b8be6b53555099f813b37140f0bbea1d7b9a4a2 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 21 Feb 2026 13:30:59 +0800 Subject: [PATCH 074/239] [Feat] Auto-download TDW build, auto-launch in bridge, and misc improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Configure TDW Build.BUILD_PATH from TDW_BUILD_PATH env var so Controller auto-launches the downloaded build binary - Add configurable command_timeout/startup_timeout in simulator_configs, wire through runner to SubprocessRunner (HAZARD needs 600s for first-run asset downloads) - Compute initial info (targets, available actions) in HAZARD bridge reset and merge into observation metadata via parse_observation fix - Fix np.math.pi → np.pi in vendored HAZARD controllers (NumPy 2.0 compat) - Set bridge default log level to TRACE for better diagnostics - Fix test_evaluation_runner refresh_data parameter name --- easi/communication/schemas.py | 5 +- easi/core/base_task.py | 4 +- easi/evaluation/runner.py | 9 + easi/simulators/base_bridge.py | 2 +- easi/simulators/subprocess_runner.py | 2 +- easi/tasks/hazard/_base.yaml | 1 + easi/tasks/hazard/bridge.py | 217 +++++++++++------- .../HAZARD/envs/fire/fireagent_controller.py | 25 +- .../envs/flood/floodagent_controller.py | 2 +- .../HAZARD/envs/wind/windagent_controller.py | 2 +- tests/test_evaluation_runner.py | 4 +- 11 files changed, 175 insertions(+), 98 deletions(-) diff --git a/easi/communication/schemas.py b/easi/communication/schemas.py index 90b3cc4..16e77cc 100644 --- a/easi/communication/schemas.py +++ b/easi/communication/schemas.py @@ -78,11 +78,14 @@ def make_status_response(ready: bool) -> dict: def parse_observation(data: dict) -> Observation: obs = data["observation"] + # Merge top-level info into metadata so prompt builders can read it + metadata = dict(obs.get("metadata", {})) + metadata.update(data.get("info", {})) return Observation( rgb_path=obs["rgb_path"], depth_path=obs.get("depth_path"), agent_pose=obs.get("agent_pose", []), - metadata=obs.get("metadata", {}), + metadata=metadata, ) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 3ce3846..80cd4ac 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -136,10 +136,12 @@ def additional_deps(self) -> list[str]: @property def simulator_kwargs(self) -> dict: - """Bridge-facing kwargs (simulator_configs minus additional_deps/env_vars + max_steps).""" + """Bridge-facing kwargs (simulator_configs minus runner/infra keys + max_steps).""" cfg = dict(self.simulator_configs) cfg.pop("additional_deps", None) cfg.pop("env_vars", None) + cfg.pop("command_timeout", None) + cfg.pop("startup_timeout", None) cfg["max_steps"] = self.max_steps return cfg diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index ec449ea..76afcf1 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -586,6 +586,14 @@ def _create_simulator(self, simulator_key: str, task=None): if task and task.extra_env_vars: env_vars = {**env_vars, **task.extra_env_vars} + # Extract runner-level timeouts from simulator_configs + sim_configs = task.simulator_configs if task else {} + runner_kwargs = {} + if sim_configs.get("command_timeout"): + runner_kwargs["command_timeout"] = float(sim_configs["command_timeout"]) + if sim_configs.get("startup_timeout"): + runner_kwargs["startup_timeout"] = float(sim_configs["startup_timeout"]) + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=bridge_path, @@ -593,6 +601,7 @@ def _create_simulator(self, simulator_key: str, task=None): xvfb_screen_config=env_manager.xvfb_screen_config, extra_args=extra_args, extra_env=env_vars or None, + **runner_kwargs, ) runner.launch() sim.set_runner(runner) diff --git a/easi/simulators/base_bridge.py b/easi/simulators/base_bridge.py index 425a85f..f7153ef 100644 --- a/easi/simulators/base_bridge.py +++ b/easi/simulators/base_bridge.py @@ -211,7 +211,7 @@ def main(cls): parser.add_argument("--simulator-kwargs", type=str, default=None) args, _ = parser.parse_known_args() - setup_logging("DEBUG") + setup_logging("TRACE") sim_kwargs = json.loads(args.simulator_kwargs) if args.simulator_kwargs else {} if args.data_dir: diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index c25748e..ec95029 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -49,7 +49,7 @@ def __init__( needs_display: bool = False, xvfb_screen_config: str = "1024x768x24", startup_timeout: float = 30.0, - command_timeout: float = 60.0, + command_timeout: float = 300.0, poll_interval: float = 0.1, extra_args: list[str] | None = None, extra_env: dict[str, str] | None = None, diff --git a/easi/tasks/hazard/_base.yaml b/easi/tasks/hazard/_base.yaml index 640ee36..4d8c4c7 100644 --- a/easi/tasks/hazard/_base.yaml +++ b/easi/tasks/hazard/_base.yaml @@ -12,6 +12,7 @@ simulator_configs: screen_size: 512 port: 1071 use_cached_assets: false + command_timeout: 600 additional_deps: - "opencv-python" - "gym" diff --git a/easi/tasks/hazard/bridge.py b/easi/tasks/hazard/bridge.py index d83cf50..d4a491e 100644 --- a/easi/tasks/hazard/bridge.py +++ b/easi/tasks/hazard/bridge.py @@ -14,10 +14,7 @@ import json import math import os -import socket -import subprocess import sys -import time from pathlib import Path import numpy as np @@ -68,97 +65,48 @@ def __init__(self, workspace, simulator_kwargs=None): self._env_change_record = {} # {str(obj_id): [temp/water_level values]} self._cached_plans = [] # plan descriptions from previous step self._cached_plan_actions = [] # action tuples from previous step - self._tdw_process = None # TDW Unity build subprocess - def _launch_tdw_build(self, port): - """Launch TDW Unity build if TDW_BUILD_PATH is available. - - The build path comes from: - 1. TDW_BUILD_PATH env var (set by TDWEnvManager.get_env_vars) - 2. simulator_kwargs["tdw_build_path"] (manual override) - - The bridge runs inside xvfb-run (from SubprocessRunner), so DISPLAY - is inherited by the TDW build process. + @staticmethod + def _configure_tdw_build_path(): + """Point TDW's Build.BUILD_PATH to our downloaded binary. - The TDW build is a child of this bridge process. SubprocessRunner - already kills the entire process group on shutdown, so no separate - cleanup is needed. + The TDW Controller uses Build.BUILD_PATH to find and launch the + Unity build when launch_build=True. By default it points to + ~/tdw_build/TDW/TDW.x86_64. We override it to use the binary + downloaded by TDWEnvManager (via TDW_BUILD_PATH env var). """ - build_path = os.environ.get("TDW_BUILD_PATH") or self.simulator_kwargs.get( - "tdw_build_path" - ) - logger.trace( - "TDW build lookup: TDW_BUILD_PATH=%s, simulator_kwargs.tdw_build_path=%s", - os.environ.get("TDW_BUILD_PATH"), - self.simulator_kwargs.get("tdw_build_path"), - ) - if not build_path: - logger.warning( - "TDW_BUILD_PATH not set — assuming TDW build is already running. " - "Run 'easi env install tdw:v1_11_23' to auto-download the build." - ) + build_dir = os.environ.get("TDW_BUILD_PATH") + if not build_dir: + logger.trace("TDW_BUILD_PATH not set, using TDW default build path") return - build_dir = Path(build_path) - binary = build_dir / "TDW.x86_64" - logger.trace("TDW build dir: %s (exists=%s)", build_dir, build_dir.exists()) - if build_dir.exists(): - items = sorted(p.name for p in build_dir.iterdir()) - logger.trace("TDW build dir contents: %s", items) + binary = Path(build_dir) / "TDW.x86_64" + logger.trace("TDW_BUILD_PATH=%s, binary exists=%s", build_dir, binary.exists()) if not binary.exists(): logger.warning( - "TDW build binary not found at %s — assuming TDW build is already running.", + "TDW build binary not found at %s — TDW Controller will use its default path. " + "Run 'easi env install tdw:v1_11_23' to download the build.", binary, ) return - logger.trace("DISPLAY=%s", os.environ.get("DISPLAY", "")) - cmd = [str(binary), "-port", str(port)] - logger.info("Launching TDW build: %s (port %d)", binary, port) - logger.trace("TDW launch command: %s", cmd) - self._tdw_process = subprocess.Popen( - cmd, - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) - logger.trace("TDW build process started (pid %d)", self._tdw_process.pid) - - # Wait for TDW to start listening on the port - self._wait_for_port(port, timeout=60) - - # Check if process is still alive after port wait - retcode = self._tdw_process.poll() - if retcode is not None: - logger.error("TDW build process exited with code %d before becoming ready", retcode) - self._tdw_process = None - return - - logger.info("TDW build is ready on port %d (pid %d)", port, self._tdw_process.pid) + from tdw.release.build import Build + Build.BUILD_PATH = binary + logger.info("Set TDW Build.BUILD_PATH to %s", binary) - @staticmethod - def _wait_for_port(port, timeout=60, interval=1.0): - """Poll until a TCP port is accepting connections.""" - logger.trace("Waiting for port %d (timeout=%ds, interval=%.1fs)", port, timeout, interval) - deadline = time.time() + timeout - attempts = 0 - while time.time() < deadline: - attempts += 1 - try: - with socket.create_connection(("127.0.0.1", port), timeout=2): - logger.trace("Port %d is ready after %d attempts", port, attempts) - return - except OSError as e: - if attempts <= 3 or attempts % 10 == 0: - logger.trace("Port %d not ready (attempt %d): %s", port, attempts, e) - time.sleep(interval) - logger.warning("TDW build did not become ready on port %d within %ds (%d attempts)", port, timeout, attempts) + def reset(self, reset_config): + """Reset env and return observation with initial info for prompt.""" + if self.env is None: + self.env = self._create_env(reset_config, self.simulator_kwargs) + self.step_count = 0 + obs = self._on_reset(self.env, reset_config) + return self._make_response(obs, info=self._reset_info) def _create_env(self, reset_config, simulator_kwargs): """Create the appropriate HAZARD env (Fire/Flood/Wind). - Launches the TDW Unity build first (if TDW_BUILD_PATH is available), - then creates the HAZARD env with launch_build=False so the env - connects to the already-running build. + Point TDW's Build.BUILD_PATH to our downloaded binary (if available), + then let the TDW Controller handle build launch via launch_build=True. """ scenario = simulator_kwargs.get("scenario", "fire") port = simulator_kwargs.get("port", 1071) @@ -166,28 +114,27 @@ def _create_env(self, reset_config, simulator_kwargs): use_cached_assets = simulator_kwargs.get("use_cached_assets", False) use_gt = simulator_kwargs.get("use_gt", True) - # Launch TDW Unity build (no-op if TDW_BUILD_PATH not set) - self._launch_tdw_build(port) - launch_build = self._tdw_process is None + # Point TDW to our downloaded build binary + self._configure_tdw_build_path() if scenario == "fire": from HAZARD.envs.fire import FireEnv env = FireEnv( - launch_build=launch_build, screen_size=screen_size, port=port, + launch_build=True, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=use_gt, ) elif scenario == "flood": from HAZARD.envs.flood import FloodEnv env = FloodEnv( - launch_build=launch_build, screen_size=screen_size, port=port, + launch_build=True, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=use_gt, ) elif scenario == "wind": from HAZARD.envs.wind import WindEnv env = WindEnv( - launch_build=launch_build, screen_size=screen_size, port=port, + launch_build=True, screen_size=screen_size, port=port, use_local_resources=use_cached_assets, check_version=False, use_gt=use_gt, ) @@ -198,7 +145,11 @@ def _create_env(self, reset_config, simulator_kwargs): return env def _on_reset(self, env, reset_config): - """Reset HAZARD env with episode data.""" + """Reset HAZARD env with episode data. + + Replicates the logic of fire_gym.py/flood_gym.py/wind_gym.py reset() + with trace logging around each step to aid debugging. + """ # Reset bridge state self.holding_object = [] self.nearest_object = None @@ -210,10 +161,57 @@ def _on_reset(self, env, reset_config): self._cached_plans = [] self._cached_plan_actions = [] - # Load scene via HAZARD env source_dir = reset_config["source_dir"] logger.info("Resetting HAZARD env with source_dir: %s", source_dir) - env.reset(data_dir=source_dir) + + # --- Replicate env.reset() with trace logging --- + from HAZARD.utils.scene_setup import SceneSetup + + logger.trace("Creating SceneSetup from data_dir=%s (scenario=%s)", source_dir, self.scenario) + scene_kwargs = {"data_dir": source_dir} + if self.scenario == "flood": + scene_kwargs["is_flood"] = True + env.setup = SceneSetup(**scene_kwargs) + logger.trace("SceneSetup created (targets=%s)", getattr(env.setup, 'target_names', [])) + + # Terminate existing controller if re-using the env + if env.controller is not None: + logger.trace("Terminating existing controller") + env.controller.communicate({"$type": "terminate"}) + env.controller.socket.close() + logger.trace("Existing controller terminated") + + # Create new controller — this is where TDW build launches + ZMQ connects. + # TDW Controller.__init__ calls socket.recv() which blocks until the + # build binary connects. If the build fails to start, this hangs forever. + logger.trace( + "Creating controller (scenario=%s, port=%s, launch_build=%s)", + self.scenario, env.controller_args.get("port"), + env.controller_args.get("launch_build"), + ) + + controller_cls = self._get_controller_class() + env.controller = controller_cls(**env.controller_args) + logger.trace("Controller created and connected to TDW build") + + env.controller.seed(env.RNG.randint(1000000)) + logger.info( + "Loading scene (this may take several minutes on first run " + "while TDW downloads 3D assets — subsequent runs will be faster)" + ) + + env.controller.init_scene(env.setup) + logger.info("Scene loaded successfully") + + env.num_step = 0 + env.last_action = None + env.last_target = None + + if not getattr(env, 'record_only', False): + logger.trace("Performing initial turn_by(0)") + env.controller.do_action(0, "turn_by", {"angle": 0}) + env.controller.next_key_frame() + logger.trace("Initial turn complete") # Initialize target tracking self.target_ids = [int(tid) for tid in reset_config.get("target_object_ids", [])] @@ -223,9 +221,54 @@ def _on_reset(self, env, reset_config): # Initial communicate + observation env.controller.communicate([]) state = env.controller._obs() + self._update_seen_objects(state) + + # Compute initial available plans so the first prompt has actions + available_plans, plan_actions = self._get_available_plans() + self._cached_plans = available_plans + self._cached_plan_actions = plan_actions + + object_distances = self._compute_object_distances(state) + + self._reset_info = { + "task_success": 0.0, + "frame_count": 0.0, + "max_steps": float(self._max_steps), + "max_rescue_frame": 0.0, + "last_action_success": 1.0, + "feedback": "episode started", + "holding_objects": json.dumps(self.holding_object), + "available_plans": json.dumps(available_plans), + "plan_actions": json.dumps(plan_actions), + "targets_rescued": 0.0, + "targets_total": float(len(self.target_status)), + "value_score": 0.0, + "max_value": 0.0, + "rescued_count": 0.0, + "damaged_count": 0.0, + "object_list": json.dumps(self.object_list), + "current_seen_objects_id": json.dumps(self.current_seen_objects_id), + "object_distances": json.dumps(object_distances), + "env_change_record": json.dumps({}), + "target_categories": json.dumps(self.target_categories), + } return self._wrap_obs(state, is_reset=True) + def _get_controller_class(self): + """Return the correct AgentController class for the current scenario.""" + if self.scenario == "fire": + from HAZARD.envs.fire.fireagent_controller import FireAgentController + return FireAgentController + elif self.scenario == "flood": + from HAZARD.envs.flood.floodagent_controller import FloodAgentController + return FloodAgentController + elif self.scenario == "wind": + from HAZARD.envs.wind.windagent_controller import WindAgentController + return WindAgentController + else: + raise ValueError(f"Unknown scenario: {self.scenario}") + def _on_step(self, env, action_text): """Execute a HAZARD action and return (obs, reward, done, info).""" from HAZARD.policy.env_actions import ( diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py index 08c33d2..2adc62b 100644 --- a/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py +++ b/easi/tasks/hazard/vendor/HAZARD/envs/fire/fireagent_controller.py @@ -132,8 +132,10 @@ def reset_scene(self): self.communicate([{"$type": "destroy_all_objects"}]) def init_scene(self, setup: SceneSetup): + print("[init_scene] Starting reset_scene", flush=True) self.reset_scene() - + print("[init_scene] reset_scene done", flush=True) + if self.log_path is not None: logger = Logger(self.log_path) self.add_ons.append(logger) @@ -151,7 +153,8 @@ def init_scene(self, setup: SceneSetup): self.extinguishers = [] self.containers = setup.containers self.other_containers = {} - for commands in setup.commands_list: + print(f"[init_scene] Processing {len(setup.commands_list)} command batches", flush=True) + for batch_idx, commands in enumerate(setup.commands_list): filtered_commands = [] tp = None for command in commands: @@ -176,12 +179,15 @@ def init_scene(self, setup: SceneSetup): if tp.startswith("add_") and tp.endswith("_container"): self.other_containers[command['id']] = command['container_id'] filtered_commands.append(command) + print(f"[init_scene] Sending batch {batch_idx} ({len(filtered_commands)} cmds)", flush=True) self.communicate(filtered_commands) if tp == "terminate": break + print(f"[init_scene] All command batches sent, adding {len(setup.other.get('fire', []))} fire positions", flush=True) for fire_pos in setup.other["fire"]: self.add_fire_floor(fire_pos) + print("[init_scene] Fire positions added, creating agents", flush=True) if not self.record_only: if len(self.agents) == 0: self.agents: List[FireAgent] = [] @@ -200,6 +206,7 @@ def init_scene(self, setup: SceneSetup): self.add_ons.append(self.agents[i]) self.add_agent(idx, setup.agent_positions[i]) + print(f"[init_scene] Agents ready ({len(self.agents)} agents)", flush=True) self.maps = [None] * len(self.agents) self.add_ons.append(self.manager) self.target = setup.targets @@ -234,9 +241,11 @@ def init_scene(self, setup: SceneSetup): commands.extend([{"$type": "set_floorplan_roof", "show": False}]) # Capture when running after init_scene. (Because screen size may be modified) + print("[init_scene] Requesting scene_regions", flush=True) resp = self.communicate([{"$type": "send_scene_regions"}]) self.set_scene_bounds(resp) + print("[init_scene] Setting up segmentation + kinematic state", flush=True) self.manager.prepare_segmentation_data() self.initialized = True for obj in self.target_ids: @@ -246,6 +255,7 @@ def init_scene(self, setup: SceneSetup): if len(self.extinguishers) > 0: self.init_obi() + print("[init_scene] Setting up agent equipment (backpack/FoV)", flush=True) if not self.record_only and len(self.extinguishers) == 0: commands = [ {"$type": "set_field_of_view", "field_of_view": 120.0, "avatar_id": str(self.agents[0].replicant_id)}] @@ -258,13 +268,20 @@ def init_scene(self, setup: SceneSetup): commands.append(self.get_add_object(model_name=self.container_name, object_id=self.container_id, position=TDWUtils.array_to_vector3(agent_pos))) self.communicate(commands) + print("[init_scene] Agent grasping backpack", flush=True) self.agents[0].grasp(target=self.container_id, arm=Arm.left, axis=None, angle=None) + print("[init_scene] grasp() issued, waiting for key frame...", flush=True) self.next_key_frame() + print("[init_scene] Grasp done. Agent reaching position", flush=True) self.agents[0].reach_for(target=TDWUtils.array_to_vector3([-0.3, 1.0, 0.3]), absolute=False, arrived_at=0.1, arm=Arm.left) + print("[init_scene] reach_for() issued, waiting for key frame...", flush=True) self.next_key_frame() + print("[init_scene] Reach done. Agent resetting arm", flush=True) self.agents[0].reset_arm(arm=Arm.left) + print("[init_scene] reset_arm() issued, waiting for key frame...", flush=True) self.next_key_frame() + print("[init_scene] init_scene complete", flush=True) def set_scene_bounds(self, resp=None): self.scene_bounds = SceneBounds(resp=resp) @@ -291,6 +308,8 @@ def next_key_frame(self, force_direction=None) -> Tuple[List[ActionStatus], List num_step = 0 while True: num_step += 1 + if num_step % 100 == 0: + print(f"[next_key_frame] step {num_step}, status={[a.action.status if a.action else None for a in self.agents]}", flush=True) if num_step > 10000: raise RuntimeError("num_step > 10000") self.communicate([]) @@ -550,7 +569,7 @@ def _obs(self, agent_idx: int = 0): if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: goal_map[agent_pos[0], agent_pos[1]] = -2 rad = self.agents[agent_idx].get_facing() - rad = int(rad / (np.math.pi / 4)) + rad = int(rad / (np.pi / 4)) if rad < 0: rad += 8 dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py index f9646b1..c320ae4 100644 --- a/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py +++ b/easi/tasks/hazard/vendor/HAZARD/envs/flood/floodagent_controller.py @@ -522,7 +522,7 @@ def _obs(self, agent_idx: int = 0): if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: goal_map[agent_pos[0], agent_pos[1]] = -2 rad = self.agents[agent_idx].get_facing() - rad = int(rad / (np.math.pi / 4)) + rad = int(rad / (np.pi / 4)) if rad < 0: rad += 8 dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] diff --git a/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py b/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py index b421dd3..a845e9d 100644 --- a/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py +++ b/easi/tasks/hazard/vendor/HAZARD/envs/wind/windagent_controller.py @@ -432,7 +432,7 @@ def _obs(self, agent_idx: int = 0): if agent_pos[0] > 0 and agent_pos[0] < self.map_size_h - 1 and agent_pos[1] > 0 and agent_pos[1] < self.map_size_v - 1: goal_map[agent_pos[0], agent_pos[1]] = -2 rad = self.agents[agent_idx].get_facing() - rad = int(rad / (np.math.pi / 4)) + rad = int(rad / (np.pi / 4)) if rad < 0: rad += 8 dx = list([1, 1, 0, -1, -1, -1, 0, 1])[rad] diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 8d2be50..c5ca42e 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -103,10 +103,10 @@ def test_cli_options_excludes_session_params(self): runner = EvaluationRunner( task_name="dummy_task", resume_dir="/some/path", - redownload=True, + refresh_data=True, ) assert "resume_dir" not in runner._cli_options - assert "redownload" not in runner._cli_options + assert "refresh_data" not in runner._cli_options def test_cli_options_captures_raw_values(self): """Values are captured before Path conversion.""" From 4f3a176a8fc4843a02e8da7c99114bcef251660e Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 21 Feb 2026 18:41:40 +0800 Subject: [PATCH 075/239] [Docs] Add detailed CLI reference --- docs/cli-reference.md | 480 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 480 insertions(+) create mode 100644 docs/cli-reference.md diff --git a/docs/cli-reference.md b/docs/cli-reference.md new file mode 100644 index 0000000..402a171 --- /dev/null +++ b/docs/cli-reference.md @@ -0,0 +1,480 @@ +# EASI CLI Reference + +Complete reference for the `easi` command-line interface. + +## Global Options + +All commands support: + +``` +--verbosity {TRACE,DEBUG,INFO,WARNING,ERROR} + Set logging verbosity (default: INFO) +``` + +--- + +## `easi start` — Run Evaluation + +Execute evaluation on one or more tasks with an agent and LLM backend. + +``` +easi start [TASK ...] [options] +``` + +### Task Selection + +| Argument | Description | +|---|---| +| `TASK` | Task name(s) as positional arguments (e.g., `ebalfred_base`) | +| `--tasks TASKS` | Comma-separated task names (overrides positional args) | + +### Agent + +| Option | Description | +|---|---| +| `--agent {dummy,react}` | **Required.** Agent type to use | + +- `dummy` — Random action picker (no LLM needed) +- `react` — ReAct agent with multi-action buffering (requires LLM backend) + +### LLM Backend + +| Option | Description | +|---|---| +| `--backend {vllm,openai,anthropic,gemini,dummy}` | LLM backend (required for `react` agent) | +| `--model MODEL` | Model identifier | +| `--llm-url URL` | LLM server base URL (for external servers) | +| `--port PORT` | Port for local vLLM server (default: 8080) | +| `--llm-kwargs JSON` | Extra LLM/server kwargs as JSON string | +| `--max-retries N` | Max retry attempts on transient LLM errors (default: 3) | + +**Model identifiers by backend:** + +| Backend | Example `--model` values | +|---|---| +| `vllm` | `meta-llama/Llama-2-7b-hf`, `Qwen/Qwen2.5-VL-72B-Instruct` | +| `openai` | `gpt-4o`, `gpt-5.2-2025-12-11` | +| `anthropic` | `claude-sonnet-4-20250514` | +| `gemini` | `gemini-2.0-flash` | + +### Execution Control + +| Option | Description | +|---|---| +| `--num-parallel N` | Parallel simulator instances (default: 1). API backends only. | +| `--max-episodes N` | Max episodes to run (default: all) | +| `--seed SEED` | Random seed for agent reproducibility | + +### Data & Output + +| Option | Description | +|---|---| +| `--output-dir PATH` | Base output directory (default: `./logs`) | +| `--data-dir PATH` | Dataset cache directory (default: `./datasets`) | +| `--refresh-data` | Delete cached dataset and re-download | + +### Resume + +| Option | Description | +|---|---| +| `--resume DIR` | Resume from a previous run directory (contains `config.json`) | + +When resuming, completed episodes are skipped and evaluation continues from the next episode. The task name is loaded from the saved config. New CLI arguments override saved values. + +### Examples + +```bash +# Quick test with dummy agent (no LLM) +easi start dummy_task --agent dummy + +# OpenAI API +easi start ebalfred_base --agent react --backend openai --model gpt-4o + +# Anthropic API +easi start ebalfred_base --agent react --backend anthropic --model claude-sonnet-4-20250514 + +# vLLM (auto-starts server) +easi start ebalfred_base --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-72B-Instruct --port 8080 + +# vLLM (external server) +easi start ebalfred_base --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-72B-Instruct --llm-url http://localhost:8000 + +# Custom generation kwargs +easi start ebalfred_base --agent react --backend openai --model gpt-4o \ + --llm-kwargs '{"temperature": 0.7, "max_tokens": 500}' + +# Limit episodes +easi start ebalfred_base --agent dummy --max-episodes 5 --seed 42 + +# Parallel evaluation (API backends only) +easi start ebalfred_base --agent react --backend openai --model gpt-4o \ + --num-parallel 4 + +# Multiple tasks +easi start ebalfred_base ebnavigation_base --agent react \ + --backend openai --model gpt-4o + +# Multiple tasks (CSV form) +easi start --tasks ebalfred_base,ebnavigation_base --agent react \ + --backend openai --model gpt-4o + +# Resume a previous run +easi start --resume ./logs/ebalfred_base/20260215_093045_gpt-4o + +# Force dataset re-download +easi start ebalfred_base --agent dummy --refresh-data + +# Verbose logging +easi start ebalfred_base --agent dummy --verbosity TRACE +``` + +### Output Structure + +``` +//_/ +├── config.json # CLI options + resolved configuration +├── summary.json # Aggregated metrics +└── episodes/ + ├── 000_/ + │ ├── result.json # Per-episode metrics + │ ├── trajectory.jsonl # Action log (one JSON line per step) + │ ├── step_0000.png # Observation images + │ └── ... + └── 001_/ + └── ... +``` + +**`summary.json` format:** +```json +{ + "num_episodes": 10, + "model": "gpt-4o", + "agent": "react", + "metrics": { + "success_rate": 0.7, + "avg_steps": 12.3 + } +} +``` + +### Notes + +- `--num-parallel > 1` requires an API backend (`openai`, `anthropic`, `gemini`). It uses a thread pool with one simulator per thread. +- When using `--backend vllm` without `--llm-url`, a local vLLM server is auto-started and stopped after evaluation. +- `--resume` cannot be combined with multiple tasks. +- `--llm-kwargs` is split into server kwargs (e.g., `tensor_parallel_size`, `dtype`) and generation kwargs (e.g., `temperature`, `max_tokens`). + +--- + +## `easi env` — Manage Simulator Environments + +### `easi env list` + +List all available simulators and their versions. + +```bash +easi env list +``` + +Output shows each simulator as `name:version`, with the default version marked. + +--- + +### `easi env install ` + +Install a simulator environment (creates a conda env with required dependencies). + +``` +easi env install [--reinstall] [--with-task-deps TASK] +``` + +| Argument | Description | +|---|---| +| `simulator` | Simulator key (e.g., `ai2thor:v2_1_0`, `tdw:v1_11_23`) | +| `--reinstall` | Remove existing environment and install from scratch | +| `--with-task-deps TASK` | Also install additional dependencies from a specific task | + +**Examples:** + +```bash +# Install AI2-THOR v2.1.0 +easi env install ai2thor:v2_1_0 + +# Reinstall from scratch +easi env install ai2thor:v2_1_0 --reinstall + +# Install with task-specific dependencies +easi env install ai2thor:v2_1_0 --with-task-deps ebalfred_base +``` + +The created conda environment is named `easi__` (e.g., `easi_ai2thor_v2_1_0`). + +--- + +### `easi env check ` + +Check if a simulator environment is ready for use. + +```bash +easi env check ai2thor:v2_1_0 +``` + +Reports missing system dependencies, the Python executable path, and whether the environment is ready. + +--- + +## `easi task` — Manage Tasks + +### `easi task list` + +List all available tasks discovered in the registry. + +```bash +easi task list +``` + +Output format: `task_name -- display_name (simulator: simulator_key)` + +--- + +### `easi task info ` + +Display detailed information about a specific task. + +```bash +easi task info ebalfred_base +``` + +Shows task name, description, simulator key, and max steps. + +--- + +### `easi task download ` + +Download and cache the task dataset locally. + +``` +easi task download [--refresh-data] +``` + +| Argument | Description | +|---|---| +| `task` | Task name (e.g., `ebalfred_base`) | +| `--refresh-data` | Delete cached dataset and re-download from source | + +**Examples:** + +```bash +easi task download ebalfred_base +easi task download ebalfred_base --refresh-data +``` + +--- + +### `easi task scaffold ` + +Generate boilerplate code for a new benchmark task. + +``` +easi task scaffold [--simulator SIM] [--max-steps N] +``` + +| Argument | Description | +|---|---| +| `name` | Task name in snake_case (e.g., `my_benchmark`) | +| `--simulator SIM` | Simulator key to use (default: `dummy:v1`) | +| `--max-steps N` | Maximum steps per episode (default: 50) | + +**Example:** + +```bash +easi task scaffold my_benchmark --simulator ai2thor:v2_1_0 --max-steps 100 +``` + +Creates: +- `easi/tasks/my_benchmark/bridge.py` +- `easi/tasks/my_benchmark/task.py` +- `easi/tasks/my_benchmark/my_benchmark.yaml` +- `tests/test_my_benchmark.py` + +--- + +## `easi sim` — Control Simulators + +### `easi sim test ` + +Run a smoke test on a simulator (reset + N steps). + +``` +easi sim test [--steps N] [--timeout SECONDS] +``` + +| Argument | Description | +|---|---| +| `simulator` | Simulator key (e.g., `dummy`, `ai2thor:v5_0_0`) | +| `--steps N` | Number of steps to execute (default: 5) | +| `--timeout SECONDS` | Bridge startup timeout (default: 200.0) | + +**Examples:** + +```bash +easi sim test dummy +easi sim test ai2thor:v5_0_0 --steps 10 +easi sim test ai2thor:v2_1_0 --steps 3 --timeout 300 +``` + +Executes `MoveAhead` for each step and reports observations and rewards. + +--- + +## `easi llm-server` — Dummy LLM Server + +Start a minimal OpenAI-compatible dummy LLM server for testing. + +``` +easi llm-server [--host HOST] [--port PORT] [--mode MODE] [--action-space ACTION ...] +``` + +| Option | Description | +|---|---| +| `--host HOST` | Server host (default: `127.0.0.1`) | +| `--port PORT` | Server port (default: `8000`) | +| `--mode {fixed,random}` | Response mode: `fixed` returns first action, `random` returns random action | +| `--action-space ACTION ...` | Space-separated action names (default: `MoveAhead TurnLeft TurnRight Stop`) | + +**Examples:** + +```bash +# Default dummy server +easi llm-server + +# Custom port and fixed mode +easi llm-server --port 8080 --mode fixed + +# Custom action space +easi llm-server --mode random --action-space Forward Backward TurnLeft TurnRight +``` + +**Endpoints:** +- `POST /v1/chat/completions` — OpenAI-compatible chat completion +- `GET /health` — Health check + +Use with `easi start`: +```bash +# Terminal 1: start dummy server +easi llm-server --port 8000 + +# Terminal 2: run evaluation against it +easi start ebalfred_base --agent react --backend openai \ + --model dummy --llm-url http://localhost:8000 +``` + +--- + +## Environment Variables + +The CLI itself does not use environment variables, but the LLM backends require API keys: + +| Variable | Backend | +|---|---| +| `OPENAI_API_KEY` | `openai` | +| `ANTHROPIC_API_KEY` | `anthropic` | +| `GOOGLE_API_KEY` | `gemini` | + +These are handled by the underlying LiteLLM client. + +--- + +## Available Simulators + +| Key | Description | +|---|---| +| `dummy:v1` | In-memory testing simulator (no external deps) | +| `ai2thor:v2_1_0` | AI2-THOR 2.1.0 (EB-Alfred, Python 3.8) | +| `ai2thor:v5_0_0` | AI2-THOR 5.0.0 (EB-Navigation, Python 3.10) | +| `habitat_sim:v0_3_0` | Habitat-Sim 0.3.0 (EB-Habitat, Python 3.9) | +| `coppeliasim:v4_1_0` | CoppeliaSim 4.1.0 (EB-Manipulation, Python 3.10) | +| `tdw:v1_11_23` | ThreeDWorld 1.11.23 (HAZARD, Python 3.10) | + +--- + +## Available Tasks + +| Task | Simulator | Description | +|---|---|---| +| `dummy_task` | `dummy:v1` | 3-episode testing task | +| `ebalfred_base` | `ai2thor:v2_1_0` | EB-Alfred base split | +| `ebalfred_spatial` | `ai2thor:v2_1_0` | EB-Alfred spatial reasoning | +| `ebalfred_commonsense` | `ai2thor:v2_1_0` | EB-Alfred commonsense reasoning | +| `ebalfred_complex` | `ai2thor:v2_1_0` | EB-Alfred complex tasks | +| `ebalfred_long_horizon` | `ai2thor:v2_1_0` | EB-Alfred long-horizon tasks | +| `ebalfred_image` | `ai2thor:v2_1_0` | EB-Alfred image understanding | +| `ebnavigation_base` | `ai2thor:v5_0_0` | EB-Navigation base split | +| `ebnavigation_spatial` | `ai2thor:v5_0_0` | EB-Navigation spatial | +| `ebnavigation_commonsense` | `ai2thor:v5_0_0` | EB-Navigation commonsense | +| `ebnavigation_complex` | `ai2thor:v5_0_0` | EB-Navigation complex | +| `ebnavigation_image` | `ai2thor:v5_0_0` | EB-Navigation image | +| `ebhabitat_base` | `habitat_sim:v0_3_0` | EB-Habitat base split | +| `ebhabitat_spatial` | `habitat_sim:v0_3_0` | EB-Habitat spatial | +| `ebhabitat_commonsense` | `habitat_sim:v0_3_0` | EB-Habitat commonsense | +| `ebhabitat_complex` | `habitat_sim:v0_3_0` | EB-Habitat complex | +| `ebmanipulation_base` | `coppeliasim:v4_1_0` | EB-Manipulation base split | +| `ebmanipulation_spatial` | `coppeliasim:v4_1_0` | EB-Manipulation spatial | +| `ebmanipulation_commonsense` | `coppeliasim:v4_1_0` | EB-Manipulation commonsense | +| `ebmanipulation_complex` | `coppeliasim:v4_1_0` | EB-Manipulation complex | +| `hazard_fire` | `tdw:v1_11_23` | HAZARD fire scenario | +| `hazard_flood` | `tdw:v1_11_23` | HAZARD flood scenario | +| `hazard_wind` | `tdw:v1_11_23` | HAZARD wind scenario | + +--- + +## Workflow Examples + +### First-Time Setup and Evaluation + +```bash +# 1. Install simulator +easi env install ai2thor:v2_1_0 --with-task-deps ebalfred_base + +# 2. Verify environment +easi env check ai2thor:v2_1_0 + +# 3. Smoke test the simulator +easi sim test ai2thor:v2_1_0 + +# 4. Download dataset +easi task download ebalfred_base + +# 5. Run evaluation +easi start ebalfred_base --agent react --backend openai --model gpt-4o +``` + +### Creating a New Benchmark + +```bash +# 1. Scaffold the task +easi task scaffold my_benchmark --simulator ai2thor:v2_1_0 --max-steps 100 + +# 2. Edit the generated files: +# easi/tasks/my_benchmark/bridge.py — implement _create_env(), _extract_image() +# easi/tasks/my_benchmark/task.py — implement format_reset_config() +# easi/tasks/my_benchmark/my_benchmark.yaml — configure dataset source + +# 3. Run tests +pytest tests/test_my_benchmark.py -v + +# 4. Test with dummy agent +easi start my_benchmark --agent dummy +``` + +### Batch Evaluation Across Tasks + +```bash +# Run all EB-Alfred splits +easi start --tasks ebalfred_base,ebalfred_spatial,ebalfred_commonsense \ + --agent react --backend openai --model gpt-4o --num-parallel 4 + +# Results saved to ./logs/// for each task +``` From c31ad61d904aa65831eadc6ace2acc5c21b29314 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 22 Feb 2026 04:57:04 +0800 Subject: [PATCH 076/239] [Feat] Add OmniGibson simulator integration for BEHAVIOR-1K Integrate OmniGibson (Isaac Sim 4.5.0) as an EASI simulator with subprocess-isolated bridge execution. The env_manager replicates the BEHAVIOR-1K setup.sh install process: git clone, PyTorch+CUDA, bddl, OmniGibson, 26 Isaac Sim wheels, websockets fix, and cffi fix. Headless mode via OMNIGIBSON_HEADLESS=1 (no Xvfb needed). --- easi/simulators/omnigibson/__init__.py | 0 easi/simulators/omnigibson/manifest.yaml | 13 + easi/simulators/omnigibson/v3_7_2/__init__.py | 0 easi/simulators/omnigibson/v3_7_2/bridge.py | 104 +++++++ .../omnigibson/v3_7_2/conda_env.yaml | 6 + .../omnigibson/v3_7_2/env_manager.py | 294 ++++++++++++++++++ .../omnigibson/v3_7_2/requirements.txt | 2 + .../simulators/omnigibson/v3_7_2/simulator.py | 24 ++ tests/test_omnigibson_simulator.py | 144 +++++++++ 9 files changed, 587 insertions(+) create mode 100644 easi/simulators/omnigibson/__init__.py create mode 100644 easi/simulators/omnigibson/manifest.yaml create mode 100644 easi/simulators/omnigibson/v3_7_2/__init__.py create mode 100644 easi/simulators/omnigibson/v3_7_2/bridge.py create mode 100644 easi/simulators/omnigibson/v3_7_2/conda_env.yaml create mode 100644 easi/simulators/omnigibson/v3_7_2/env_manager.py create mode 100644 easi/simulators/omnigibson/v3_7_2/requirements.txt create mode 100644 easi/simulators/omnigibson/v3_7_2/simulator.py create mode 100644 tests/test_omnigibson_simulator.py diff --git a/easi/simulators/omnigibson/__init__.py b/easi/simulators/omnigibson/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/omnigibson/manifest.yaml b/easi/simulators/omnigibson/manifest.yaml new file mode 100644 index 0000000..fb63093 --- /dev/null +++ b/easi/simulators/omnigibson/manifest.yaml @@ -0,0 +1,13 @@ +name: omnigibson +display_name: "OmniGibson (Isaac Sim)" +default_version: "v3_7_2" +versions: + v3_7_2: + description: "OmniGibson 3.7.2 + Isaac Sim 4.5.0 — used by BEHAVIOR-1K" + simulator_class: "easi.simulators.omnigibson.v3_7_2.simulator.OmniGibsonSimulator" + env_manager_class: "easi.simulators.omnigibson.v3_7_2.env_manager.OmniGibsonEnvManager" + python_version: "3.10" + installation_kwargs: + cuda_version: "12.4" + behavior_1k_repo: "https://github.com/StanfordVL/BEHAVIOR-1K.git" + behavior_1k_tag: "v3.7.2" diff --git a/easi/simulators/omnigibson/v3_7_2/__init__.py b/easi/simulators/omnigibson/v3_7_2/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/omnigibson/v3_7_2/bridge.py b/easi/simulators/omnigibson/v3_7_2/bridge.py new file mode 100644 index 0000000..1a8d781 --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/bridge.py @@ -0,0 +1,104 @@ +"""Bridge subprocess for OmniGibson v3.7.2 + Isaac Sim 4.5.0. + +This script runs inside the easi_omnigibson_v3_7_2 conda env (Python 3.10). +It communicates with the parent process via filesystem IPC. + +Provides an OmniGibsonBridge that handles: +- Minimal OmniGibson environment creation (Scene + DummyTask, no dataset) +- Action execution and observation capture +- Main IPC loop (reset/step/close) + +Headless mode is enabled via OMNIGIBSON_HEADLESS=1 env var (set by env_manager). + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import numpy as np + +from easi.simulators.base_bridge import BaseBridge + + +class OmniGibsonBridge(BaseBridge): + """OmniGibson bridge using BaseBridge pattern. + + Creates a minimal OmniGibson environment with Scene (empty floor + skybox) + and DummyTask for smoke testing. No BEHAVIOR-1K dataset required. + """ + + def _create_env(self, reset_config, simulator_kwargs): + """Create minimal OmniGibson env (no dataset needed). + + Args: + reset_config: Episode reset configuration. + simulator_kwargs: From task YAML's simulator_configs. + May contain 'og_config' to override the default config. + """ + import omnigibson as og + from omnigibson.macros import gm + + gm.ENABLE_FLATCACHE = True + gm.USE_GPU_DYNAMICS = False + + cfg = { + "scene": {"type": "Scene"}, + "robots": [{ + "type": "R1", + "obs_modalities": ["rgb"], + "action_type": "continuous", + "action_normalize": True, + }], + "task": {"type": "DummyTask"}, + } + # Allow full config override from simulator_kwargs + if "og_config" in simulator_kwargs: + cfg = simulator_kwargs["og_config"] + + env = og.Environment(configs=cfg) + return env + + def _on_reset(self, env, reset_config): + """Reset the OmniGibson environment.""" + obs, info = env.reset() + return obs + + def _on_step(self, env, action_text): + """Execute zero action (for smoke test) or parse action_text. + + For smoke testing, sends a zero action vector. Task-specific + subclasses should override for meaningful action parsing. + """ + import torch as th + + action_dim = env.action_space.shape[0] + action = th.zeros(action_dim) + obs, reward, terminated, truncated, info = env.step(action) + return obs, float(reward), terminated or truncated, info + + def _extract_image(self, obs): + """Auto-discover first RGB camera from nested OmniGibson observation. + + OmniGibson observations are nested: obs[robot_key][sensor_key]. + We find the first sensor key containing 'rgb' and return it. + """ + for robot_key in obs: + if not isinstance(obs[robot_key], dict): + continue + for sensor_key in obs[robot_key]: + if "rgb" in sensor_key.lower(): + img = obs[robot_key][sensor_key] + # Convert torch tensor to numpy if needed + if hasattr(img, "cpu"): + img = img.cpu().numpy() + # Convert float [0,1] to uint8 [0,255] + if img.dtype != np.uint8: + img = (img * 255).astype(np.uint8) + # Return RGB only (drop alpha if present) + return img[:, :, :3] + # Fallback: return black image + return np.zeros((128, 128, 3), dtype=np.uint8) + + +if __name__ == "__main__": + OmniGibsonBridge.main() diff --git a/easi/simulators/omnigibson/v3_7_2/conda_env.yaml b/easi/simulators/omnigibson/v3_7_2/conda_env.yaml new file mode 100644 index 0000000..e2fa9f5 --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/conda_env.yaml @@ -0,0 +1,6 @@ +name: easi_omnigibson_v3_7_2 +channels: + - conda-forge + - defaults +dependencies: + - python=3.10 diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py new file mode 100644 index 0000000..d2779ca --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -0,0 +1,294 @@ +"""Environment manager for OmniGibson v3.7.2 + Isaac Sim 4.5.0. + +Used by BEHAVIOR-1K benchmark. Requires Python 3.10, CUDA 12.4, and conda. + +Replicates the BEHAVIOR-1K setup.sh install process: +1. Conda env creation (Python 3.10) + numpy/setuptools via base _do_install() +2. Git clone BEHAVIOR-1K repo (post_install) +3. Install PyTorch with CUDA (post_install) +4. Install bddl from cloned repo (post_install) +5. Install OmniGibson from cloned repo (post_install) +6. Download + install 26 Isaac Sim 4.5.0 wheels from pypi.nvidia.com (post_install) +7. Fix websockets conflict in Isaac Sim extscache (post_install) +8. Fix cffi compatibility (post_install) + +Headless mode: OMNIGIBSON_HEADLESS=1 uses Isaac Sim's native headless rendering +(no Xvfb needed). +""" +from __future__ import annotations + +import os +import subprocess +import tempfile +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# 26 Isaac Sim 4.5.0 packages (from BEHAVIOR-1K/setup.sh) +ISAAC_SIM_PACKAGES = [ + "omniverse_kit-106.5.0.162521", + "isaacsim_kernel-4.5.0.0", + "isaacsim_app-4.5.0.0", + "isaacsim_core-4.5.0.0", + "isaacsim_gui-4.5.0.0", + "isaacsim_utils-4.5.0.0", + "isaacsim_storage-4.5.0.0", + "isaacsim_asset-4.5.0.0", + "isaacsim_sensor-4.5.0.0", + "isaacsim_robot_motion-4.5.0.0", + "isaacsim_robot-4.5.0.0", + "isaacsim_benchmark-4.5.0.0", + "isaacsim_code_editor-4.5.0.0", + "isaacsim_ros1-4.5.0.0", + "isaacsim_cortex-4.5.0.0", + "isaacsim_example-4.5.0.0", + "isaacsim_replicator-4.5.0.0", + "isaacsim_rl-4.5.0.0", + "isaacsim_robot_setup-4.5.0.0", + "isaacsim_ros2-4.5.0.0", + "isaacsim_template-4.5.0.0", + "isaacsim_test-4.5.0.0", + "isaacsim-4.5.0.0", + "isaacsim_extscache_physics-4.5.0.0", + "isaacsim_extscache_kit-4.5.0.0", + "isaacsim_extscache_kit_sdk-4.5.0.0", +] + + +class OmniGibsonEnvManager(BaseEnvironmentManager): + """Environment manager for OmniGibson 3.7.2 + Isaac Sim 4.5.0.""" + + @property + def simulator_name(self) -> str: + return "omnigibson" + + @property + def version(self) -> str: + return "v3_7_2" + + @property + def needs_display(self) -> bool: + return False # Isaac Sim headless via OMNIGIBSON_HEADLESS=1 + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda"] + + def get_validation_import(self) -> str: + return "import omnigibson; assert omnigibson.__version__.startswith('3.7')" + + def get_env_vars(self) -> dict[str, str]: + """Export OMNIGIBSON_HEADLESS=1 for headless rendering.""" + return {"OMNIGIBSON_HEADLESS": "1"} + + def post_install(self, context: dict) -> None: + """Replicate BEHAVIOR-1K setup.sh install process. + + Args: + context: Dict with env_dir, extras_dir, env_vars keys. + """ + extras_dir = Path(context["extras_dir"]) + extras_dir.mkdir(parents=True, exist_ok=True) + python = self.get_python_executable() + + # Step 1: Git clone BEHAVIOR-1K + self._clone_behavior_1k(extras_dir) + + behavior_1k_dir = extras_dir / "BEHAVIOR-1K" + + # Step 2: Install PyTorch with CUDA + self._install_pytorch(python) + + # Step 3: Install bddl from cloned repo + self._install_bddl(python, behavior_1k_dir) + + # Step 4: Install OmniGibson from cloned repo + self._install_omnigibson(python, behavior_1k_dir) + + # Step 5: Download + install Isaac Sim 4.5.0 wheels + self._install_isaac_sim(python) + + # Step 6: Fix websockets conflict in Isaac Sim extscache + self._fix_websockets_conflict(python) + + # Step 7: Fix cffi compatibility + self._fix_cffi(python) + + def _clone_behavior_1k(self, extras_dir: Path) -> None: + """Git clone BEHAVIOR-1K repo (idempotent).""" + repo_url = self.installation_kwargs.get( + "behavior_1k_repo", + "https://github.com/StanfordVL/BEHAVIOR-1K.git", + ) + tag = self.installation_kwargs.get("behavior_1k_tag", "v3.7.2") + behavior_1k_dir = extras_dir / "BEHAVIOR-1K" + + if behavior_1k_dir.exists(): + logger.info("BEHAVIOR-1K already cloned at %s, skipping", behavior_1k_dir) + return + + logger.info("Cloning BEHAVIOR-1K (tag %s) from %s", tag, repo_url) + self._run_command( + ["git", "clone", "-b", tag, "--depth", "1", repo_url, str(behavior_1k_dir)], + "clone BEHAVIOR-1K", + ) + + def _install_pytorch(self, python: str) -> None: + """Install PyTorch with CUDA support.""" + cuda_version = self.installation_kwargs.get("cuda_version", "12.4") + cuda_ver_short = cuda_version.replace(".", "") + + logger.info("Installing PyTorch with CUDA %s support", cuda_version) + self._run_command( + [ + python, "-m", "pip", "install", + "torch", "torchvision", "torchaudio", + "--index-url", f"https://download.pytorch.org/whl/cu{cuda_ver_short}", + ], + "install PyTorch with CUDA", + ) + + def _install_bddl(self, python: str, behavior_1k_dir: Path) -> None: + """Install bddl from cloned BEHAVIOR-1K repo.""" + bddl_dir = behavior_1k_dir / "bddl3" + logger.info("Installing bddl from %s", bddl_dir) + self._run_command( + [python, "-m", "pip", "install", "-e", str(bddl_dir)], + "install bddl", + ) + + def _install_omnigibson(self, python: str, behavior_1k_dir: Path) -> None: + """Install OmniGibson from cloned BEHAVIOR-1K repo.""" + og_dir = behavior_1k_dir / "OmniGibson" + logger.info("Installing OmniGibson from %s", og_dir) + env = os.environ.copy() + env["OMNI_KIT_ACCEPT_EULA"] = "YES" + self._run_command( + [python, "-m", "pip", "install", "-e", str(og_dir)], + "install OmniGibson", + env=env, + ) + + def _install_isaac_sim(self, python: str) -> None: + """Download and install 26 Isaac Sim 4.5.0 wheels from pypi.nvidia.com. + + Handles GLIBC < 2.34 by renaming wheel filenames from + manylinux_2_34 to manylinux_2_31. + """ + logger.info("Installing Isaac Sim 4.5.0 (%d packages)", len(ISAAC_SIM_PACKAGES)) + glibc_old = self._check_glibc_old() + if glibc_old: + logger.info("Detected GLIBC < 2.34, will rename wheel tags") + + temp_dir = Path(tempfile.mkdtemp(prefix="easi_isaac_sim_")) + wheel_files = [] + + try: + for pkg in ISAAC_SIM_PACKAGES: + pkg_name = pkg.rsplit("-", 1)[0] # e.g. "isaacsim_core" + filename = f"{pkg}-cp310-none-manylinux_2_34_x86_64.whl" + # pypi.nvidia.com uses dashes in URL path + url = f"https://pypi.nvidia.com/{pkg_name.replace('_', '-')}/{filename}" + filepath = temp_dir / filename + + logger.info("Downloading %s", pkg) + self._download_wheel(url, filepath) + + if glibc_old: + new_filename = filename.replace("manylinux_2_34", "manylinux_2_31") + new_filepath = temp_dir / new_filename + filepath.rename(new_filepath) + filepath = new_filepath + + wheel_files.append(str(filepath)) + + logger.info("Installing %d Isaac Sim wheels", len(wheel_files)) + env = os.environ.copy() + env["OMNI_KIT_ACCEPT_EULA"] = "YES" + self._run_command( + [python, "-m", "pip", "install"] + wheel_files, + "install Isaac Sim wheels", + env=env, + ) + finally: + # Clean up temp directory + import shutil + shutil.rmtree(temp_dir, ignore_errors=True) + + def _fix_websockets_conflict(self, python: str) -> None: + """Remove pip_prebundle/websockets dirs under Isaac Sim extscache. + + Isaac Sim bundles an old websockets version that conflicts with + the system one. Removing it forces the system package to be used. + """ + try: + result = subprocess.run( + [python, "-c", + "import isaacsim, os; print(os.environ.get('ISAAC_PATH', ''))"], + capture_output=True, text=True, timeout=30, + ) + isaac_path = result.stdout.strip() + except (subprocess.TimeoutExpired, FileNotFoundError): + isaac_path = "" + + if not isaac_path or not Path(isaac_path).exists(): + logger.info("ISAAC_PATH not found, skipping websockets fix") + return + + extscache = Path(isaac_path) / "extscache" + if not extscache.exists(): + return + + logger.info("Fixing websockets conflict under %s", extscache) + import shutil + for ws_dir in extscache.rglob("pip_prebundle/websockets"): + if ws_dir.is_dir(): + logger.trace("Removing %s", ws_dir) + shutil.rmtree(ws_dir, ignore_errors=True) + + def _fix_cffi(self, python: str) -> None: + """Force reinstall cffi==1.17.1 to resolve Isaac Sim compatibility.""" + logger.info("Fixing cffi compatibility") + self._run_command( + [python, "-m", "pip", "install", "--force-reinstall", "cffi==1.17.1"], + "fix cffi", + ) + + @staticmethod + def _check_glibc_old() -> bool: + """Check if system GLIBC version is < 2.34.""" + try: + result = subprocess.run( + ["ldd", "--version"], + capture_output=True, text=True, timeout=10, + ) + output = result.stdout + result.stderr + # Look for version like "2.31", "2.32", "2.33" + import re + match = re.search(r"(\d+\.\d+)", output) + if match: + version = float(match.group(1)) + return version < 2.34 + except (subprocess.TimeoutExpired, FileNotFoundError): + pass + return False + + @staticmethod + def _download_wheel(url: str, dest: Path) -> None: + """Download a single wheel file.""" + import urllib.request + req = urllib.request.Request(url, headers={"User-Agent": "easi/1.0"}) + with urllib.request.urlopen(req) as response, open(str(dest), "wb") as out: + while True: + chunk = response.read(1024 * 1024) + if not chunk: + break + out.write(chunk) diff --git a/easi/simulators/omnigibson/v3_7_2/requirements.txt b/easi/simulators/omnigibson/v3_7_2/requirements.txt new file mode 100644 index 0000000..aaab759 --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/requirements.txt @@ -0,0 +1,2 @@ +numpy<2 +setuptools<=79 diff --git a/easi/simulators/omnigibson/v3_7_2/simulator.py b/easi/simulators/omnigibson/v3_7_2/simulator.py new file mode 100644 index 0000000..3286221 --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/simulator.py @@ -0,0 +1,24 @@ +"""OmniGibson v3.7.2 simulator. + +Stub implementation — the bridge.py handles the actual OmniGibson interaction. +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class OmniGibsonSimulator(BaseSimulator): + """OmniGibson 3.7.2 + Isaac Sim 4.5.0 simulator for BEHAVIOR-1K.""" + + @property + def name(self) -> str: + return "omnigibson" + + @property + def version(self) -> str: + return "v3_7_2" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py new file mode 100644 index 0000000..d696c18 --- /dev/null +++ b/tests/test_omnigibson_simulator.py @@ -0,0 +1,144 @@ +"""Tests for OmniGibson simulator integration (offline, no simulator needed).""" +import ast +from pathlib import Path + +import yaml + + +class TestOmniGibsonManifest: + """Test that manifest.yaml is correctly structured.""" + + def test_manifest_exists(self): + manifest = Path("easi/simulators/omnigibson/manifest.yaml") + assert manifest.exists() + + def test_manifest_contents(self): + with open("easi/simulators/omnigibson/manifest.yaml") as f: + data = yaml.safe_load(f) + assert data["name"] == "omnigibson" + assert "v3_7_2" in data["versions"] + assert data["default_version"] == "v3_7_2" + + def test_manifest_classes_importable(self): + with open("easi/simulators/omnigibson/manifest.yaml") as f: + data = yaml.safe_load(f) + v = data["versions"]["v3_7_2"] + assert "simulator.OmniGibsonSimulator" in v["simulator_class"] + assert "env_manager.OmniGibsonEnvManager" in v["env_manager_class"] + + def test_manifest_installation_kwargs(self): + with open("easi/simulators/omnigibson/manifest.yaml") as f: + data = yaml.safe_load(f) + kwargs = data["versions"]["v3_7_2"]["installation_kwargs"] + assert kwargs["cuda_version"] == "12.4" + assert "BEHAVIOR-1K" in kwargs["behavior_1k_repo"] + assert kwargs["behavior_1k_tag"] == "v3.7.2" + + +class TestOmniGibsonEnvManager: + """Test OmniGibsonEnvManager class.""" + + def test_import(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + assert mgr.simulator_name == "omnigibson" + assert mgr.version == "v3_7_2" + + def test_env_name(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + assert mgr.get_env_name() == "easi_omnigibson_v3_7_2" + + def test_needs_display(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + assert mgr.needs_display is False + + def test_env_vars(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + env_vars = mgr.get_env_vars() + assert env_vars == {"OMNIGIBSON_HEADLESS": "1"} + + def test_system_deps(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + deps = mgr.get_system_deps() + assert "conda" in deps + + def test_validation_import(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + val = mgr.get_validation_import() + assert "omnigibson" in val + + def test_conda_env_yaml_exists(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + assert mgr.get_conda_env_yaml_path().exists() + + def test_requirements_txt_exists(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + assert mgr.get_requirements_txt_path().exists() + + def test_isaac_sim_packages_count(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import ISAAC_SIM_PACKAGES + assert len(ISAAC_SIM_PACKAGES) == 26 + + +class TestOmniGibsonSimulator: + """Test OmniGibsonSimulator class.""" + + def test_import(self): + from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + sim = OmniGibsonSimulator() + assert sim.name == "omnigibson" + assert sim.version == "v3_7_2" + + def test_bridge_script_path(self): + from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + sim = OmniGibsonSimulator() + bridge_path = sim._get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" + + def test_bridge_script_has_bridge_class(self): + from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + content = OmniGibsonSimulator()._get_bridge_script_path().read_text() + assert "OmniGibsonBridge" in content + + +class TestOmniGibsonBridgeSyntax: + """Test that bridge.py is valid Python (without importing OmniGibson).""" + + def test_bridge_syntax(self): + bridge_path = Path("easi/simulators/omnigibson/v3_7_2/bridge.py") + ast.parse(bridge_path.read_text()) + + +class TestOmniGibsonRegistry: + """Test that registry discovers OmniGibson simulator.""" + + def test_env_list_includes_omnigibson(self): + from easi.simulators.registry import list_simulators + sims = list_simulators() + assert "omnigibson:v3_7_2" in sims + + def test_load_simulator_class(self): + from easi.simulators.registry import load_simulator_class + SimClass = load_simulator_class("omnigibson:v3_7_2") + sim = SimClass() + assert sim.name == "omnigibson" + + def test_create_env_manager(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("omnigibson:v3_7_2") + assert mgr.simulator_name == "omnigibson" + assert mgr.needs_display is False + + def test_create_env_manager_has_installation_kwargs(self): + from easi.simulators.registry import create_env_manager + mgr = create_env_manager("omnigibson") + assert mgr.installation_kwargs["cuda_version"] == "12.4" + assert "BEHAVIOR-1K" in mgr.installation_kwargs["behavior_1k_repo"] From ee9eadf3cb9d848707b1d8ee756ab71ba68afaec Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 22 Feb 2026 19:17:48 +0800 Subject: [PATCH 077/239] [Fix] NFS workaround for OmniGibson: copy Python to /tmp to fix /proc/self/exe On NFS/FUSE filesystems, /proc/self/exe resolves to "python3.10 (deleted)" which crashes Isaac Sim's Carbonite library. The env_manager now copies the conda env's Python binary to /tmp where /proc/self/exe resolves correctly. Changes: - env_manager: override get_python_executable() to return /tmp copy - env_manager: add _get_conda_python() for install-time pip operations - env_manager: add OMNI_KIT_ACCEPT_EULA and PYTHONHOME to get_env_vars() - bridge: add sys.path fix for subprocess import resolution - tests: add 2 new tests for NFS workaround, update env_vars assertion --- easi/simulators/omnigibson/v3_7_2/bridge.py | 6 ++ .../omnigibson/v3_7_2/env_manager.py | 64 ++++++++++++++++++- tests/test_omnigibson_simulator.py | 20 +++++- 3 files changed, 86 insertions(+), 4 deletions(-) diff --git a/easi/simulators/omnigibson/v3_7_2/bridge.py b/easi/simulators/omnigibson/v3_7_2/bridge.py index 1a8d781..457aec5 100644 --- a/easi/simulators/omnigibson/v3_7_2/bridge.py +++ b/easi/simulators/omnigibson/v3_7_2/bridge.py @@ -16,6 +16,12 @@ from __future__ import annotations import numpy as np +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) from easi.simulators.base_bridge import BaseBridge diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index d2779ca..484dbe4 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -14,10 +14,17 @@ Headless mode: OMNIGIBSON_HEADLESS=1 uses Isaac Sim's native headless rendering (no Xvfb needed). + +NFS workaround: On NFS/FUSE filesystems, /proc/self/exe can resolve to +"python3.10 (deleted)" which crashes Isaac Sim's Carbonite library. The +get_python_executable() override copies the Python binary to /tmp (local +filesystem) where /proc/self/exe resolves correctly. """ from __future__ import annotations +import atexit import os +import shutil import subprocess import tempfile from pathlib import Path @@ -61,6 +68,8 @@ class OmniGibsonEnvManager(BaseEnvironmentManager): """Environment manager for OmniGibson 3.7.2 + Isaac Sim 4.5.0.""" + _local_python_dir: str | None = None # Cached /tmp copy directory + @property def simulator_name(self) -> str: return "omnigibson" @@ -85,9 +94,58 @@ def get_system_deps(self) -> list[str]: def get_validation_import(self) -> str: return "import omnigibson; assert omnigibson.__version__.startswith('3.7')" + def _get_conda_python(self) -> str: + """Return the real conda env Python path (for install-time use).""" + return super().get_python_executable() + + def get_python_executable(self) -> str: + """Return a local /tmp copy of the Python binary. + + On NFS/FUSE filesystems, /proc/self/exe resolves to + "python3.10 (deleted)" which causes Isaac Sim's Carbonite library + to abort. Copying the binary to /tmp (a local filesystem) ensures + /proc/self/exe resolves correctly. + + The copy is cached for the lifetime of this env manager instance + and cleaned up via atexit. + """ + if self._local_python_dir is not None: + local_python = Path(self._local_python_dir) / "python3" + if local_python.exists(): + return str(local_python) + + conda_python = self._get_conda_python() + # Resolve symlinks to get the real binary + real_binary = str(Path(conda_python).resolve()) + + tmp_dir = tempfile.mkdtemp(prefix="easi_python_") + local_python = Path(tmp_dir) / "python3" + shutil.copy2(real_binary, str(local_python)) + local_python.chmod(0o755) + + self._local_python_dir = tmp_dir + atexit.register(shutil.rmtree, tmp_dir, True) + + logger.trace( + "Copied Python to local filesystem: %s -> %s", + real_binary, local_python, + ) + return str(local_python) + def get_env_vars(self) -> dict[str, str]: - """Export OMNIGIBSON_HEADLESS=1 for headless rendering.""" - return {"OMNIGIBSON_HEADLESS": "1"} + """Export env vars for headless rendering, EULA, and PYTHONHOME. + + PYTHONHOME is set to the conda env directory so the /tmp Python + copy can find the conda env's stdlib and site-packages. + """ + conda_python = self._get_conda_python() + # conda env dir is two levels up from bin/python + conda_env_dir = str(Path(conda_python).resolve().parent.parent) + return { + "OMNIGIBSON_HEADLESS": "1", + "OMNI_KIT_ACCEPT_EULA": "YES", + "PYTHONHOME": conda_env_dir, + } def post_install(self, context: dict) -> None: """Replicate BEHAVIOR-1K setup.sh install process. @@ -97,7 +155,7 @@ def post_install(self, context: dict) -> None: """ extras_dir = Path(context["extras_dir"]) extras_dir.mkdir(parents=True, exist_ok=True) - python = self.get_python_executable() + python = self._get_conda_python() # Step 1: Git clone BEHAVIOR-1K self._clone_behavior_1k(extras_dir) diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py index d696c18..6a58d30 100644 --- a/tests/test_omnigibson_simulator.py +++ b/tests/test_omnigibson_simulator.py @@ -58,7 +58,25 @@ def test_env_vars(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() env_vars = mgr.get_env_vars() - assert env_vars == {"OMNIGIBSON_HEADLESS": "1"} + assert env_vars["OMNIGIBSON_HEADLESS"] == "1" + assert env_vars["OMNI_KIT_ACCEPT_EULA"] == "YES" + assert "PYTHONHOME" in env_vars + + def test_get_python_executable_is_local(self): + """Python executable should be a /tmp copy (NFS workaround).""" + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + python_path = mgr.get_python_executable() + assert python_path.startswith("/tmp/easi_python_") + assert Path(python_path).exists() + + def test_get_conda_python_is_conda_env(self): + """_get_conda_python() returns the real conda env path.""" + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() + conda_python = mgr._get_conda_python() + assert "easi_omnigibson_v3_7_2" in conda_python + assert conda_python.endswith("bin/python") def test_system_deps(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager From e94db3af4015e0c4169d49573235b71ea96cdb40 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 10:40:59 +0800 Subject: [PATCH 078/239] feat: add RenderPlatform abstraction with auto/native/xvfb/egl/headless --- easi/core/render_platform.py | 168 ++++++++++++++++++++++++++++++ tests/test_render_platform.py | 188 ++++++++++++++++++++++++++++++++++ 2 files changed, 356 insertions(+) create mode 100644 easi/core/render_platform.py create mode 100644 tests/test_render_platform.py diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py new file mode 100644 index 0000000..35c6870 --- /dev/null +++ b/easi/core/render_platform.py @@ -0,0 +1,168 @@ +"""Pluggable render platform abstraction. + +Each render platform encapsulates how to launch a bridge subprocess with +the correct display/rendering environment. Simulators declare a default +platform; users can override via CLI (--render-platform) or task YAML. + +Built-in platforms: + auto — use native DISPLAY if available, fall back to xvfb + native — require existing DISPLAY + xvfb — always wrap with xvfb-run + egl — GPU-accelerated headless via EGL + headless — no display (simulator has native headless support) +""" + +from __future__ import annotations + +import os +from abc import ABC, abstractmethod +from pathlib import Path + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class RenderPlatform(ABC): + """Strategy interface for display/rendering backends.""" + + @property + @abstractmethod + def name(self) -> str: + """Short identifier (e.g. 'xvfb', 'egl').""" + ... + + @abstractmethod + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + """Optionally wrap the bridge launch command. + + Args: + cmd: The original command ``[python, bridge.py, ...]``. + screen_config: Screen resolution string, e.g. ``"1024x768x24"``. + + Returns: + The (possibly wrapped) command. + """ + ... + + def get_env_vars(self) -> dict[str, str]: + """Extra env vars needed by this platform (merged into subprocess).""" + return {} + + def get_system_deps(self) -> list[str]: + """System dependency names required by this platform.""" + return [] + + def is_available(self) -> bool: + """Whether this platform can run in the current environment.""" + return True + + +# -- Built-in implementations ------------------------------------------------ + + +class HeadlessPlatform(RenderPlatform): + """No display at all -- for simulators with native headless support.""" + + @property + def name(self) -> str: + return "headless" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + +class NativePlatform(RenderPlatform): + """Use the existing DISPLAY. Fails at validation if none is set.""" + + @property + def name(self) -> str: + return "native" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def is_available(self) -> bool: + return bool(os.environ.get("DISPLAY", "")) + + +class XvfbPlatform(RenderPlatform): + """Always wrap with ``xvfb-run``.""" + + @property + def name(self) -> str: + return "xvfb" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return [ + "xvfb-run", "-a", + "-s", f"-screen 0 {screen_config}", + ] + cmd + + def get_system_deps(self) -> list[str]: + return ["xvfb"] + + +class EGLPlatform(RenderPlatform): + """GPU-accelerated headless rendering via EGL (no X11 needed).""" + + @property + def name(self) -> str: + return "egl" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def get_env_vars(self) -> dict[str, str]: + env: dict[str, str] = {"PYOPENGL_PLATFORM": "egl"} + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return env + + def get_system_deps(self) -> list[str]: + return ["egl"] + + +class AutoPlatform(RenderPlatform): + """Detect native display; fall back to xvfb if unavailable.""" + + @property + def name(self) -> str: + return "auto" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + if os.environ.get("DISPLAY", ""): + return cmd + return XvfbPlatform().wrap_command(cmd, screen_config) + + +# -- Registry ----------------------------------------------------------------- + +_BUILTIN: dict[str, type[RenderPlatform]] = { + "auto": AutoPlatform, + "native": NativePlatform, + "xvfb": XvfbPlatform, + "egl": EGLPlatform, + "headless": HeadlessPlatform, +} + + +def get_render_platform(name: str) -> RenderPlatform: + """Instantiate a render platform by name. + + Raises: + ValueError: If name is not recognised. + """ + cls = _BUILTIN.get(name) + if cls is None: + raise ValueError( + f"Unknown render platform '{name}'. " + f"Available: {', '.join(sorted(_BUILTIN))}" + ) + return cls() + + +def available_platforms() -> list[str]: + """Return sorted list of registered platform names.""" + return sorted(_BUILTIN) diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py new file mode 100644 index 0000000..d5f0b97 --- /dev/null +++ b/tests/test_render_platform.py @@ -0,0 +1,188 @@ +"""Tests for render platform abstraction.""" + +from __future__ import annotations + +import os +from pathlib import Path +from unittest.mock import patch + +import pytest + + +class TestRenderPlatformRegistry: + """Test platform discovery and instantiation.""" + + def test_get_platform_returns_auto(self): + from easi.core.render_platform import get_render_platform + + platform = get_render_platform("auto") + assert platform.name == "auto" + + def test_get_platform_returns_xvfb(self): + from easi.core.render_platform import get_render_platform + + platform = get_render_platform("xvfb") + assert platform.name == "xvfb" + + def test_get_platform_returns_native(self): + from easi.core.render_platform import get_render_platform + + platform = get_render_platform("native") + assert platform.name == "native" + + def test_get_platform_returns_egl(self): + from easi.core.render_platform import get_render_platform + + platform = get_render_platform("egl") + assert platform.name == "egl" + + def test_get_platform_returns_headless(self): + from easi.core.render_platform import get_render_platform + + platform = get_render_platform("headless") + assert platform.name == "headless" + + def test_get_platform_unknown_raises(self): + from easi.core.render_platform import get_render_platform + + with pytest.raises(ValueError, match="Unknown render platform"): + get_render_platform("nonexistent") + + def test_available_platforms_returns_names(self): + from easi.core.render_platform import available_platforms + + names = available_platforms() + assert set(names) >= {"auto", "native", "xvfb", "egl", "headless"} + + +class TestHeadlessPlatform: + """Headless: no wrapping, no env vars.""" + + def test_wrap_command_passthrough(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("headless") + cmd = ["python", "bridge.py"] + assert p.wrap_command(cmd, "1024x768x24") == cmd + + def test_get_env_vars_empty(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("headless") + assert p.get_env_vars() == {} + + def test_get_system_deps_empty(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("headless") + assert p.get_system_deps() == [] + + +class TestXvfbPlatform: + """Xvfb: always wraps with xvfb-run.""" + + def test_wrap_command_prepends_xvfb_run(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("xvfb") + cmd = ["python", "bridge.py"] + wrapped = p.wrap_command(cmd, "1280x720x24") + assert wrapped[:2] == ["xvfb-run", "-a"] + assert "-screen 0 1280x720x24" in wrapped[3] + assert wrapped[-2:] == cmd + + def test_get_env_vars_empty(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("xvfb") + assert p.get_env_vars() == {} + + def test_get_system_deps_includes_xvfb(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("xvfb") + assert "xvfb" in p.get_system_deps() + + +class TestNativePlatform: + """Native: passthrough, requires DISPLAY.""" + + def test_wrap_command_passthrough(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("native") + cmd = ["python", "bridge.py"] + assert p.wrap_command(cmd, "1024x768x24") == cmd + + def test_get_env_vars_empty(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("native") + assert p.get_env_vars() == {} + + def test_is_available_true_when_display_set(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("native") + with patch.dict(os.environ, {"DISPLAY": ":0"}): + assert p.is_available() is True + + def test_is_available_false_when_no_display(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("native") + with patch.dict(os.environ, {}, clear=True): + assert p.is_available() is False + + +class TestEGLPlatform: + """EGL: no wrapping, sets PYOPENGL_PLATFORM.""" + + def test_wrap_command_passthrough(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("egl") + cmd = ["python", "bridge.py"] + assert p.wrap_command(cmd, "1024x768x24") == cmd + + def test_get_env_vars_sets_pyopengl(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("egl") + env = p.get_env_vars() + assert env["PYOPENGL_PLATFORM"] == "egl" + + def test_get_system_deps_includes_egl(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("egl") + assert "egl" in p.get_system_deps() + + +class TestAutoPlatform: + """Auto: native if DISPLAY exists, xvfb fallback otherwise.""" + + def test_wrap_command_uses_native_when_display_set(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("auto") + cmd = ["python", "bridge.py"] + with patch.dict(os.environ, {"DISPLAY": ":0"}): + assert p.wrap_command(cmd, "1024x768x24") == cmd + + def test_wrap_command_uses_xvfb_when_no_display(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("auto") + cmd = ["python", "bridge.py"] + env = os.environ.copy() + env.pop("DISPLAY", None) + with patch.dict(os.environ, env, clear=True): + wrapped = p.wrap_command(cmd, "1024x768x24") + assert wrapped[0] == "xvfb-run" + + def test_get_system_deps_empty(self): + from easi.core.render_platform import get_render_platform + + p = get_render_platform("auto") + assert p.get_system_deps() == [] From 6e2dad63be601eeb526b45dde58c4056a970ec49 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 10:47:18 +0800 Subject: [PATCH 079/239] feat: add render platform properties to BaseEnvironmentManager --- easi/core/base_env_manager.py | 49 +++++++++++++++++++++++++++++------ tests/test_render_platform.py | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 8 deletions(-) diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 71186e7..e02383c 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -71,25 +71,58 @@ def get_validation_import(self) -> str: """ ... + @property + def default_render_platform(self) -> str: + """Default rendering platform for this simulator. + + Override in subclasses. Common values: + "auto" -- native display if available, xvfb fallback + "headless" -- no display (simulator handles internally) + "egl" -- GPU-accelerated headless via EGL + + See ``easi.core.render_platform`` for all options. + """ + return "headless" + + @property + def supported_render_platforms(self) -> list[str]: + """Render platforms this simulator can use. + + Override in subclasses to advertise which platforms are compatible. + Validated when user passes ``--render-platform``. + """ + return [self.default_render_platform] + + @property + def screen_config(self) -> str: + """Screen resolution config (e.g. ``"1024x768x24"``). + + Used by platforms that create a virtual display (xvfb). + Override for custom resolution/depth. + """ + return "1024x768x24" + @property def needs_display(self) -> bool: - """Whether this simulator requires a display (X11/Xvfb). + """Whether this simulator requires a display (backward compat). - Override to return True for simulators that need it (e.g., AI2-THOR). + Derived from ``default_render_platform``. """ - return False + return self.default_render_platform != "headless" @property def xvfb_screen_config(self) -> str: - """Xvfb screen config. Override for custom resolution/depth.""" - return "1024x768x24" + """Backward compat alias for ``screen_config``.""" + return self.screen_config - def get_env_vars(self) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: """Return environment variables to inject into the bridge subprocess. Override in subclasses to provide simulator-specific env vars. - Use _get_template_variables() and _resolve_template() to build - paths relative to the conda env directory. + + Args: + render_platform_name: Active render platform name (e.g. "egl"). + Subclasses can use this to conditionally set env vars. Returns: Dict of env var name -> value. Empty dict by default. diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index d5f0b97..d2a7ad4 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -186,3 +186,51 @@ def test_get_system_deps_empty(self): p = get_render_platform("auto") assert p.get_system_deps() == [] + + +class TestBaseEnvManagerRenderPlatform: + """Verify env_manager exposes render platform config.""" + + def _make_stub(self, **overrides): + """Create a minimal concrete BaseEnvironmentManager subclass.""" + from easi.core.base_env_manager import BaseEnvironmentManager + + attrs = { + "simulator_name": property(lambda self: "stub"), + "version": property(lambda self: "v0"), + "get_conda_env_yaml_path": lambda self: Path("/fake/conda.yaml"), + "get_requirements_txt_path": lambda self: Path("/fake/req.txt"), + "get_system_deps": lambda self: [], + "get_validation_import": lambda self: "import sys", + } + attrs.update(overrides) + Stub = type("Stub", (BaseEnvironmentManager,), attrs) + return Stub() + + def test_default_render_platform_is_headless(self): + mgr = self._make_stub() + assert mgr.default_render_platform == "headless" + + def test_supported_render_platforms_default(self): + mgr = self._make_stub() + assert "headless" in mgr.supported_render_platforms + + def test_screen_config_default(self): + mgr = self._make_stub() + assert mgr.screen_config == "1024x768x24" + + def test_needs_display_false_for_headless(self): + mgr = self._make_stub() + assert mgr.needs_display is False + + def test_needs_display_true_when_platform_not_headless(self): + mgr = self._make_stub( + default_render_platform=property(lambda self: "auto"), + ) + assert mgr.needs_display is True + + def test_xvfb_screen_config_aliases_screen_config(self): + mgr = self._make_stub( + screen_config=property(lambda self: "1920x1080x24"), + ) + assert mgr.xvfb_screen_config == "1920x1080x24" From 904b1104d3eee73810bdead43dd556b49da7aa9d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 10:53:52 +0800 Subject: [PATCH 080/239] feat: SubprocessRunner uses RenderPlatform for command wrapping --- easi/simulators/subprocess_runner.py | 46 ++++++++------- tests/test_render_platform.py | 83 ++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 19 deletions(-) diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index ec95029..fd16804 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -7,7 +7,7 @@ - Crash recovery: Detects subprocess exit during polling - Cleanup: SIGTERM -> wait -> SIGKILL the entire process group; removes temp workspace -Supports xvfb-run wrapping for simulators that need a display. +Supports pluggable render platforms (xvfb, egl, native, headless, auto). """ from __future__ import annotations @@ -28,6 +28,7 @@ write_command, ) from easi.core.exceptions import SimulatorError, SimulatorTimeoutError +from easi.core.render_platform import RenderPlatform, get_render_platform from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -46,8 +47,13 @@ def __init__( self, python_executable: str, bridge_script_path: Path, + # -- New render-platform API -- + render_platform: RenderPlatform | None = None, + screen_config: str = "1024x768x24", + # -- Backward-compat (deprecated) -- needs_display: bool = False, xvfb_screen_config: str = "1024x768x24", + # -- Other params -- startup_timeout: float = 30.0, command_timeout: float = 300.0, poll_interval: float = 0.1, @@ -56,8 +62,18 @@ def __init__( ): self.python_executable = python_executable self.bridge_script_path = bridge_script_path - self.needs_display = needs_display - self.xvfb_screen_config = xvfb_screen_config + + # Resolve render platform: explicit > backward-compat fallback + if render_platform is not None: + self.render_platform = render_platform + self.screen_config = screen_config + elif needs_display: + self.render_platform = get_render_platform("auto") + self.screen_config = xvfb_screen_config + else: + self.render_platform = get_render_platform("headless") + self.screen_config = xvfb_screen_config + self.startup_timeout = startup_timeout self.command_timeout = command_timeout self.poll_interval = poll_interval @@ -175,18 +191,21 @@ def shutdown(self) -> None: self._workspace = None def _build_subprocess_env(self) -> dict[str, str] | None: - """Build env dict for subprocess, merging extra_env with os.environ. + """Build env dict for subprocess, merging platform + extra_env. For path-like vars (LD_LIBRARY_PATH, PATH, etc.), prepends the new value to the existing value with ':' separator. - Returns None if no extra_env (subprocess inherits parent env). + Returns None if no env vars to set (subprocess inherits parent env). """ - if not self.extra_env: + platform_env = self.render_platform.get_env_vars() + combined = {**platform_env, **(self.extra_env or {})} + + if not combined: return None env = os.environ.copy() - for key, value in self.extra_env.items(): + for key, value in combined.items(): if key in self._PREPEND_ENV_VARS and key in env: env[key] = f"{value}:{env[key]}" else: @@ -203,18 +222,7 @@ def _build_launch_command(self) -> list[str]: ] cmd.extend(self.extra_args) - if self.needs_display and not self._has_display(): - # Wrap with xvfb-run for headless environments - cmd = [ - "xvfb-run", "-a", - "-s", f"-screen 0 {self.xvfb_screen_config}", - ] + cmd - - return cmd - - def _has_display(self) -> bool: - """Check if an X display is available.""" - return bool(os.environ.get("DISPLAY", "")) + return self.render_platform.wrap_command(cmd, self.screen_config) # Pattern to extract log level from bridge output (e.g. "[WARNING]" or "[ERROR]") _BRIDGE_LEVEL_RE = re.compile(r"\[(\w+)\]") diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index d2a7ad4..ba79c53 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -234,3 +234,86 @@ def test_xvfb_screen_config_aliases_screen_config(self): screen_config=property(lambda self: "1920x1080x24"), ) assert mgr.xvfb_screen_config == "1920x1080x24" + + +class TestSubprocessRunnerRenderPlatform: + """Verify SubprocessRunner uses RenderPlatform for command wrapping.""" + + def test_accepts_render_platform_param(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + p = get_render_platform("headless") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=p, + ) + assert runner.render_platform.name == "headless" + + def test_build_command_uses_platform_wrap(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + p = get_render_platform("xvfb") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=p, + screen_config="1280x720x24", + ) + runner._workspace = Path("/tmp/fake_ws") + cmd = runner._build_launch_command() + assert cmd[0] == "xvfb-run" + assert "1280x720x24" in cmd[3] + + def test_build_command_headless_no_wrap(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + p = get_render_platform("headless") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=p, + ) + runner._workspace = Path("/tmp/fake_ws") + cmd = runner._build_launch_command() + assert cmd[0] == "/usr/bin/python3" + + def test_platform_env_vars_merged(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + p = get_render_platform("egl") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=p, + extra_env={"SIM_ROOT": "/opt/sim"}, + ) + env = runner._build_subprocess_env() + assert env["PYOPENGL_PLATFORM"] == "egl" + assert env["SIM_ROOT"] == "/opt/sim" + + def test_backward_compat_needs_display_still_works(self): + """Old callers passing needs_display=True get AutoPlatform.""" + from easi.simulators.subprocess_runner import SubprocessRunner + + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + needs_display=True, + xvfb_screen_config="1024x768x24", + ) + assert runner.render_platform.name == "auto" + + def test_backward_compat_needs_display_false_gets_headless(self): + from easi.simulators.subprocess_runner import SubprocessRunner + + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + needs_display=False, + ) + assert runner.render_platform.name == "headless" From 463fd84b13b3770116f5c4fd20498efc42a6fc35 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 11:01:55 +0800 Subject: [PATCH 081/239] feat: declare render platform preferences in all simulator env managers --- easi/simulators/ai2thor/v2_1_0/env_manager.py | 8 ++- easi/simulators/ai2thor/v5_0_0/env_manager.py | 12 ++-- .../coppeliasim/v4_1_0/env_manager.py | 22 ++++--- .../habitat_sim/v0_3_0/env_manager.py | 8 ++- .../omnigibson/v3_7_2/env_manager.py | 6 +- easi/simulators/tdw/v1_11_23/env_manager.py | 10 ++- tests/test_render_platform.py | 62 +++++++++++++++++++ 7 files changed, 104 insertions(+), 24 deletions(-) diff --git a/easi/simulators/ai2thor/v2_1_0/env_manager.py b/easi/simulators/ai2thor/v2_1_0/env_manager.py index aef6e4a..ea2c567 100644 --- a/easi/simulators/ai2thor/v2_1_0/env_manager.py +++ b/easi/simulators/ai2thor/v2_1_0/env_manager.py @@ -22,8 +22,12 @@ def version(self) -> str: return "v2_1_0" @property - def needs_display(self) -> bool: - return True # AI2-THOR Unity requires X11 + def default_render_platform(self) -> str: + return "auto" + + @property + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/ai2thor/v5_0_0/env_manager.py b/easi/simulators/ai2thor/v5_0_0/env_manager.py index c85e609..0e18488 100644 --- a/easi/simulators/ai2thor/v5_0_0/env_manager.py +++ b/easi/simulators/ai2thor/v5_0_0/env_manager.py @@ -19,12 +19,16 @@ def version(self) -> str: return "v5_0_0" @property - def needs_display(self) -> bool: - return True # AI2-THOR Unity requires X11 + def default_render_platform(self) -> str: + return "auto" @property - def xvfb_screen_config(self) -> str: - return "1280x720x24" # v5 supports higher resolution + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native"] + + @property + def screen_config(self) -> str: + return "1280x720x24" def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index b88f198..3a53aff 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -33,11 +33,15 @@ def version(self) -> str: return "v4_1_0" @property - def needs_display(self) -> bool: - return True # CoppeliaSim needs X11/Xvfb + def default_render_platform(self) -> str: + return "auto" @property - def xvfb_screen_config(self) -> str: + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native"] + + @property + def screen_config(self) -> str: return "1280x720x24" def get_conda_env_yaml_path(self) -> Path: @@ -52,7 +56,7 @@ def get_system_deps(self) -> list[str]: def get_validation_import(self) -> str: return "from pyrep import PyRep; print('PyRep OK')" - def get_env_vars(self) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: """Return CoppeliaSim env vars for bridge subprocess.""" binary_dir_name = self.installation_kwargs.get("binary_dir_name", "") if not binary_dir_name: @@ -69,10 +73,12 @@ def get_env_vars(self) -> dict[str, str]: "LD_LIBRARY_PATH": ld_path, "QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root, } - # Force Mesa EGL vendor for Xvfb (NVIDIA EGL crashes Xvfb on some systems) - mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") - if mesa_vendor.exists(): - env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + # Force Mesa EGL vendor for Xvfb (NVIDIA EGL crashes Xvfb on some systems). + # Skip when using the EGL platform — it handles __EGL_VENDOR_LIBRARY_FILENAMES itself. + if render_platform_name != "egl": + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) return env def post_install(self, context: dict) -> None: diff --git a/easi/simulators/habitat_sim/v0_3_0/env_manager.py b/easi/simulators/habitat_sim/v0_3_0/env_manager.py index 56cf3d6..c3bb72d 100644 --- a/easi/simulators/habitat_sim/v0_3_0/env_manager.py +++ b/easi/simulators/habitat_sim/v0_3_0/env_manager.py @@ -19,8 +19,12 @@ def version(self) -> str: return "v0_3_0" @property - def needs_display(self) -> bool: - return True # habitat-sim needs a display (xvfb on headless servers) + def default_render_platform(self) -> str: + return "auto" + + @property + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native", "egl"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 484dbe4..52d8124 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -78,10 +78,6 @@ def simulator_name(self) -> str: def version(self) -> str: return "v3_7_2" - @property - def needs_display(self) -> bool: - return False # Isaac Sim headless via OMNIGIBSON_HEADLESS=1 - def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" @@ -132,7 +128,7 @@ def get_python_executable(self) -> str: ) return str(local_python) - def get_env_vars(self) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: """Export env vars for headless rendering, EULA, and PYTHONHOME. PYTHONHOME is set to the conda env directory so the /tmp Python diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index 34ef8fc..ca03a4a 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -30,8 +30,12 @@ def version(self) -> str: return "v1_11_23" @property - def needs_display(self) -> bool: - return True # TDW Unity build requires X11 + def default_render_platform(self) -> str: + return "auto" + + @property + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" @@ -62,7 +66,7 @@ def env_is_ready(self) -> bool: return False return True - def get_env_vars(self) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: """Return TDW env vars for bridge subprocess.""" build_dir = self.installation_kwargs.get("build_dir_name", "") if not build_dir: diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index ba79c53..e291099 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -317,3 +317,65 @@ def test_backward_compat_needs_display_false_gets_headless(self): needs_display=False, ) assert runner.render_platform.name == "headless" + + +class TestSimulatorRenderPlatforms: + """Each simulator declares render platform preferences.""" + + def test_ai2thor_v2(self): + from easi.simulators.ai2thor.v2_1_0.env_manager import AI2ThorEnvManagerV210 + + mgr = AI2ThorEnvManagerV210() + assert mgr.default_render_platform == "auto" + assert "xvfb" in mgr.supported_render_platforms + assert "native" in mgr.supported_render_platforms + # backward compat + assert mgr.needs_display is True + + def test_ai2thor_v5(self): + from easi.simulators.ai2thor.v5_0_0.env_manager import AI2ThorEnvManagerV500 + + mgr = AI2ThorEnvManagerV500() + assert mgr.default_render_platform == "auto" + assert mgr.screen_config == "1280x720x24" + + def test_habitat(self): + from easi.simulators.habitat_sim.v0_3_0.env_manager import HabitatEnvManagerV030 + + mgr = HabitatEnvManagerV030() + assert mgr.default_render_platform == "auto" + assert "egl" in mgr.supported_render_platforms + + def test_coppeliasim(self): + from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + + mgr = CoppeliaSimEnvManagerV410() + assert mgr.default_render_platform == "auto" + assert mgr.screen_config == "1280x720x24" + + def test_coppeliasim_egl_skips_mesa_vendor(self): + """When render_platform is 'egl', CoppeliaSim should NOT set __EGL_VENDOR_LIBRARY_FILENAMES.""" + from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + + mgr = CoppeliaSimEnvManagerV410() + env = mgr.get_env_vars(render_platform_name="egl") + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in env + + def test_tdw(self): + from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager + + mgr = TDWEnvManager() + assert mgr.default_render_platform == "auto" + + def test_omnigibson(self): + from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + + mgr = OmniGibsonEnvManager() + assert mgr.default_render_platform == "headless" + assert mgr.needs_display is False + + def test_dummy(self): + from easi.simulators.dummy.v1.env_manager import DummyEnvManager + + mgr = DummyEnvManager() + assert mgr.default_render_platform == "headless" From 0e9df388c84fa37961397be93c9d2795c244f805 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 11:15:00 +0800 Subject: [PATCH 082/239] feat: add --render-platform to CLI with validation and YAML support --- easi/cli.py | 28 +++++- easi/evaluation/runner.py | 38 ++++++-- tests/test_env_vars_wiring.py | 8 ++ tests/test_evaluation_runner.py | 1 + tests/test_installation_kwargs.py | 4 + tests/test_render_platform.py | 150 ++++++++++++++++++++++++++++++ 6 files changed, 216 insertions(+), 13 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 368d894..673c88f 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -78,6 +78,9 @@ def build_parser() -> argparse.ArgumentParser: sim_test.add_argument("--steps", type=int, default=5, help="Number of steps") sim_test.add_argument("--timeout", type=float, default=200.0, help="Bridge startup timeout in seconds (default: 200)") + sim_test.add_argument( + "--render-platform", type=str, default=None, dest="render_platform", + help="Rendering platform override (auto, native, xvfb, egl, headless)") # --- start command --- start_parser = subparsers.add_parser("start", help="Run a full evaluation", parents=[common]) @@ -115,6 +118,9 @@ def build_parser() -> argparse.ArgumentParser: help="Path to a previous run directory to resume from") start_parser.add_argument("--refresh-data", action="store_true", dest="refresh_data", help="Delete cached dataset and re-download from source") + start_parser.add_argument( + "--render-platform", type=str, default=None, dest="render_platform", + help="Rendering platform: auto, native, xvfb, egl, headless (default: simulator's preference)") # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) @@ -247,8 +253,9 @@ def cmd_task_download(task_name: str, refresh_data: bool = False) -> None: logger.info("Task uses built-in episodes (no download needed).") -def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: +def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_name: str | None = None) -> None: from easi.core.episode import Action + from easi.core.render_platform import get_render_platform from easi.simulators.registry import create_env_manager, load_simulator_class from easi.simulators.subprocess_runner import SubprocessRunner @@ -256,16 +263,27 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float) -> None: SimClass = load_simulator_class(simulator) sim = SimClass() + # Resolve render platform + platform_name = render_platform_name or env_manager.default_render_platform + if platform_name not in env_manager.supported_render_platforms: + logger.error( + "Render platform '%s' not supported by %s. Supported: %s", + platform_name, simulator, env_manager.supported_render_platforms, + ) + sys.exit(1) + render_platform = get_render_platform(platform_name) + logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) + logger.info(" Render platform: %s", platform_name) - env_vars = env_manager.get_env_vars() + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), - needs_display=env_manager.needs_display, - xvfb_screen_config=env_manager.xvfb_screen_config, + render_platform=render_platform, + screen_config=env_manager.screen_config, startup_timeout=timeout, command_timeout=timeout, extra_env=env_vars or None, @@ -442,7 +460,7 @@ def main() -> None: elif args.command == "sim": if args.sim_action == "test": - cmd_sim_test(args.simulator, args.steps, args.timeout) + cmd_sim_test(args.simulator, args.steps, args.timeout, getattr(args, "render_platform", None)) else: parser.parse_args(["sim", "--help"]) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 76afcf1..ac8a080 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -63,6 +63,7 @@ def __init__( max_retries: int = 3, resume_dir: Path | str | None = None, refresh_data: bool = False, + render_platform: str | None = None, ): # Auto-capture all init args for config.json (before any mutation) frame = inspect.currentframe() @@ -85,6 +86,7 @@ def __init__( self.max_retries = max_retries self.resume_dir = Path(resume_dir) if resume_dir else None self.refresh_data = refresh_data + self.render_platform_name = render_platform timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") @@ -580,12 +582,6 @@ def _create_simulator(self, simulator_key: str, task=None): if task and task.simulator_kwargs: extra_args.extend(["--simulator-kwargs", _json.dumps(task.simulator_kwargs)]) - env_vars = env_manager.get_env_vars() - - # Merge task-level env_vars from simulator_configs.env_vars - if task and task.extra_env_vars: - env_vars = {**env_vars, **task.extra_env_vars} - # Extract runner-level timeouts from simulator_configs sim_configs = task.simulator_configs if task else {} runner_kwargs = {} @@ -594,11 +590,37 @@ def _create_simulator(self, simulator_key: str, task=None): if sim_configs.get("startup_timeout"): runner_kwargs["startup_timeout"] = float(sim_configs["startup_timeout"]) + # Resolve render platform: CLI > task YAML > env_manager default + from easi.core.render_platform import get_render_platform + + yaml_platform = sim_configs.get("render_platform") if task else None + platform_name = ( + self.render_platform_name + or yaml_platform + or env_manager.default_render_platform + ) + + if platform_name not in env_manager.supported_render_platforms: + raise ValueError( + f"Render platform '{platform_name}' is not supported by " + f"{env_manager.simulator_name}:{env_manager.version}. " + f"Supported: {env_manager.supported_render_platforms}" + ) + + render_platform = get_render_platform(platform_name) + + # Pass platform name to get_env_vars for conditional logic + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) + + # Merge task-level env_vars from simulator_configs.env_vars + if task and task.extra_env_vars: + env_vars = {**env_vars, **task.extra_env_vars} + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=bridge_path, - needs_display=env_manager.needs_display, - xvfb_screen_config=env_manager.xvfb_screen_config, + render_platform=render_platform, + screen_config=env_manager.screen_config, extra_args=extra_args, extra_env=env_vars or None, **runner_kwargs, diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index f54e300..8ec8264 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -14,10 +14,14 @@ def test_runner_passes_env_vars_to_subprocess(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.default_render_platform = "headless" + mock_env_mgr.supported_render_platforms = ["headless"] + mock_env_mgr.screen_config = "1024x768x24" mock_env_mgr.needs_display = False mock_env_mgr.xvfb_screen_config = "1024x768x24" mock_env_mgr.get_env_vars.return_value = {"SIM_ROOT": "/opt/sim"} @@ -42,10 +46,14 @@ def test_runner_passes_none_when_no_env_vars(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.default_render_platform = "headless" + mock_env_mgr.supported_render_platforms = ["headless"] + mock_env_mgr.screen_config = "1024x768x24" mock_env_mgr.needs_display = False mock_env_mgr.xvfb_screen_config = "1024x768x24" mock_env_mgr.get_env_vars.return_value = {} diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index c5ca42e..1a4a373 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -96,6 +96,7 @@ def test_cli_options_contains_all_init_args(self): "task_name", "agent_type", "output_dir", "data_dir", "max_episodes", "llm_base_url", "agent_seed", "backend", "model", "port", "llm_kwargs_raw", "max_retries", + "render_platform", } assert set(opts.keys()) == expected_keys diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 9004f8a..300036c 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -57,10 +57,14 @@ def test_runner_passes_installation_kwargs(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" + mock_env_mgr.default_render_platform = "headless" + mock_env_mgr.supported_render_platforms = ["headless"] + mock_env_mgr.screen_config = "1024x768x24" mock_env_mgr.needs_display = False mock_env_mgr.xvfb_screen_config = "1024x768x24" mock_env_mgr.get_env_vars.return_value = {} diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index e291099..c6e1884 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -379,3 +379,153 @@ def test_dummy(self): mgr = DummyEnvManager() assert mgr.default_render_platform == "headless" + + +from unittest.mock import MagicMock + + +class TestCLIRenderPlatform: + """Verify --render-platform is accepted by CLI parser.""" + + def test_start_parser_accepts_render_platform(self): + from easi.cli import build_parser + + parser = build_parser() + args = parser.parse_args(["start", "dummy_task", "--render-platform", "egl"]) + assert args.render_platform == "egl" + + def test_start_parser_default_is_none(self): + from easi.cli import build_parser + + parser = build_parser() + args = parser.parse_args(["start", "dummy_task"]) + assert args.render_platform is None + + def test_sim_test_parser_accepts_render_platform(self): + from easi.cli import build_parser + + parser = build_parser() + args = parser.parse_args(["sim", "test", "dummy", "--render-platform", "xvfb"]) + assert args.render_platform == "xvfb" + + +class TestRunnerRenderPlatformWiring: + """Verify EvaluationRunner resolves and passes render platform.""" + + def _make_mock_env_mgr(self): + mgr = MagicMock() + mgr.env_is_ready.return_value = True + mgr.get_python_executable.return_value = "/usr/bin/python3" + mgr.default_render_platform = "auto" + mgr.supported_render_platforms = ["auto", "xvfb", "native", "egl"] + mgr.screen_config = "1024x768x24" + mgr.needs_display = True + mgr.xvfb_screen_config = "1024x768x24" + mgr.get_env_vars.return_value = {} + return mgr + + def _make_mock_task(self, render_platform=None): + task = MagicMock() + task.additional_deps = [] + task.simulator_kwargs = {} + task.extra_env_vars = {} + task.simulator_configs = {} + if render_platform: + task.simulator_configs = {"render_platform": render_platform} + task.get_bridge_script_path.return_value = None + return task + + def test_default_uses_env_manager_platform(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = None + + mock_env_mgr = self._make_mock_env_mgr() + mock_sim_cls = MagicMock() + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1") + rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp.name == "auto" + + def test_cli_override_wins(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = "xvfb" + + mock_env_mgr = self._make_mock_env_mgr() + mock_sim_cls = MagicMock() + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1") + rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp.name == "xvfb" + + def test_yaml_override_used_when_no_cli(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = None + + mock_env_mgr = self._make_mock_env_mgr() + mock_task = self._make_mock_task(render_platform="egl") + mock_sim_cls = MagicMock() + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1", task=mock_task) + rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp.name == "egl" + + def test_cli_beats_yaml(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = "xvfb" + + mock_env_mgr = self._make_mock_env_mgr() + mock_task = self._make_mock_task(render_platform="egl") + mock_sim_cls = MagicMock() + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1", task=mock_task) + rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp.name == "xvfb" + + def test_unsupported_platform_raises(self): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = "egl" + + mock_env_mgr = self._make_mock_env_mgr() + mock_env_mgr.supported_render_platforms = ["auto", "xvfb"] # no egl + mock_sim_cls = MagicMock() + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + + with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + pytest.raises(ValueError, match="not supported"): + runner._create_simulator("fake:v1") From 46582be187f94fe27242810dad4a89d68b4e45c4 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 11:20:40 +0800 Subject: [PATCH 083/239] test: add render platform integration and config persistence tests --- tests/test_render_platform.py | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index c6e1884..665302b 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -529,3 +529,52 @@ def test_unsupported_platform_raises(self): patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ pytest.raises(ValueError, match="not supported"): runner._create_simulator("fake:v1") + + +class TestRenderPlatformEndToEnd: + """End-to-end: platform flows through runner to subprocess.""" + + def test_egl_env_vars_in_subprocess(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + platform = get_render_platform("egl") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=platform, + extra_env={"SIM_ROOT": "/opt/sim"}, + ) + env = runner._build_subprocess_env() + assert env["PYOPENGL_PLATFORM"] == "egl" + assert env["SIM_ROOT"] == "/opt/sim" + + def test_auto_wraps_xvfb_when_no_display(self): + from easi.core.render_platform import get_render_platform + from easi.simulators.subprocess_runner import SubprocessRunner + + platform = get_render_platform("auto") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/fake/bridge.py"), + render_platform=platform, + screen_config="1280x720x24", + ) + runner._workspace = Path("/tmp/fake_ws") + + env = os.environ.copy() + env.pop("DISPLAY", None) + with patch.dict(os.environ, env, clear=True): + cmd = runner._build_launch_command() + assert cmd[0] == "xvfb-run" + assert "1280x720x24" in cmd[3] + + def test_render_platform_saved_in_config(self): + """render_platform should be captured in _cli_options for config.json.""" + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner( + task_name="dummy_task", + render_platform="egl", + ) + assert runner._cli_options["render_platform"] == "egl" From 715142acf279f1d6392187744b31b17d75e186d9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 11:32:53 +0800 Subject: [PATCH 084/239] chore: remove redundant md files --- .gitignore | 3 + docs/plans/2026-02-15-retry-resume-design.md | 137 ---- docs/plans/2026-02-15-retry-resume-plan.md | 661 ------------------- 3 files changed, 3 insertions(+), 798 deletions(-) delete mode 100644 docs/plans/2026-02-15-retry-resume-design.md delete mode 100644 docs/plans/2026-02-15-retry-resume-plan.md diff --git a/.gitignore b/.gitignore index f78151e..0b654ac 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ __pycache__/ /build /datasets /results +/BEHAVIOR-1K +.worktrees/ +/docs/plans \ No newline at end of file diff --git a/docs/plans/2026-02-15-retry-resume-design.md b/docs/plans/2026-02-15-retry-resume-design.md deleted file mode 100644 index ce8404c..0000000 --- a/docs/plans/2026-02-15-retry-resume-design.md +++ /dev/null @@ -1,137 +0,0 @@ -# Retry & Resume Design - -## Goal - -Make evaluation runs resilient to transient LLM errors (timeouts, rate limits) and resumable after crashes. - -## Feature 1: Adaptive Retry - -Use LiteLLM's built-in `num_retries` parameter. LiteLLM uses tenacity internally for exponential backoff with jitter, and retries on `Timeout`, `RateLimitError`, `APIConnectionError`, and `InternalServerError`. - -### LLMClient - -`LLMClient.__init__` gains a `num_retries` parameter (default 3). It's passed through to `litellm.completion()`: - -```python -class LLMClient: - def __init__(self, model, base_url=None, num_retries=3, **kwargs): - self.num_retries = num_retries - ... - - def generate(self, messages, response_format=None): - call_kwargs = { - "model": self.model, - "messages": messages, - "num_retries": self.num_retries, - **self.default_kwargs, - } - ... -``` - -### CLI - -Add `--max-retries` (default 3) to `easi run`. Passed through: CLI -> `EvaluationRunner` -> `LLMClient(num_retries=...)`. - -### EvaluationRunner - -`__init__` gains `max_retries: int = 3`. In `_create_agent()`, passes it to `LLMClient`. - -## Feature 2: Resume - -Allow `--resume ` to continue a crashed run from where it left off. - -### How it works - -1. **Load existing config**: Read `config.json` from the resume dir. Validate `task_name` matches. -2. **Scan completed episodes**: Glob `episodes/*/result.json`. Each existing `result.json` = completed episode. Parse them into `all_results`. -3. **Re-run last completed episode**: The last episode may have been cut off mid-way. Pop it from `all_results`, clear its directory (delete `result.json`, `trajectory.jsonl`, `step_*.png`), and re-run it from scratch. -4. **Skip earlier episodes**: Start the episode loop from `len(all_results)` instead of 0. -5. **Reuse run_dir**: Don't create a new `run_id`. Write to the same directory. - -### _load_completed_results - -```python -def _load_completed_results(self, run_dir: Path) -> list[dict]: - episodes_dir = run_dir / "episodes" - result_files = sorted(episodes_dir.glob("*/result.json")) - - if not result_files: - return [] - - # Load all completed results except the last - all_results = [] - for rf in result_files[:-1]: - all_results.append(json.loads(rf.read_text())) - - # Clean the last episode directory for re-run - last_episode_dir = result_files[-1].parent - for f in last_episode_dir.iterdir(): - f.unlink() - - return all_results -``` - -### run() changes - -```python -def run(self, max_episodes=None): - if self.resume_dir: - run_dir = self.resume_dir - all_results = self._load_completed_results(run_dir) - start_index = len(all_results) - else: - run_dir = self.output_dir / self.task_name / self.run_id - all_results = [] - start_index = 0 - - ... - for i, episode in enumerate(episodes): - if i < start_index: - continue - ... -``` - -### CLI - -Add `--resume ` to `easi run`. Passed to `EvaluationRunner(resume_dir=...)`. - -### Example - -```bash -# First run — crashes at episode 15 -easi run ebalfred_base --agent react --backend openai --model gpt-4o - -# Resume — skips episodes 0-13, re-runs 14 (cleared), continues 15-49 -easi run ebalfred_base --agent react --backend openai --model gpt-4o \ - --resume logs/ebalfred_base/20260215_164200/ -``` - -## Files Changed - -| File | Change | -|---|---| -| `easi/llm/client.py` | Add `num_retries` param, pass to `litellm.completion()` | -| `easi/evaluation/runner.py` | Add `max_retries`, `resume_dir` params. Add `_load_completed_results()`. Modify `run()` for resume. | -| `easi/cli.py` | Add `--max-retries` (default 3) and `--resume` (path) flags | -| `tests/test_llm_client.py` | Test `num_retries` pass-through | -| `tests/test_e2e_evaluation.py` | Test resume: run 3 episodes, simulate crash, resume skips completed, re-runs last | - -## Data Flow - -``` -CLI --max-retries 3 --resume logs/ebalfred_base/20260215_164200/ - | - v -EvaluationRunner(max_retries=3, resume_dir=Path(...)) - | - +---> _load_completed_results(run_dir) - | scan episodes/*/result.json - | load results [0..N-2] - | clear episode dir [N-1] - | return results, start_index = N-1 - | - +---> _create_agent(...) - | LLMClient(num_retries=3) - | - +---> episode loop: skip i < start_index, run rest normally -``` diff --git a/docs/plans/2026-02-15-retry-resume-plan.md b/docs/plans/2026-02-15-retry-resume-plan.md deleted file mode 100644 index d4e5090..0000000 --- a/docs/plans/2026-02-15-retry-resume-plan.md +++ /dev/null @@ -1,661 +0,0 @@ -# Retry & Resume Implementation Plan - -> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. - -**Goal:** Make evaluation runs resilient to transient LLM errors and resumable after crashes. - -**Architecture:** Two independent features wired through CLI → EvaluationRunner → LLMClient. Retry uses LiteLLM's built-in `num_retries` parameter (exponential backoff with jitter). Resume scans existing `result.json` files to skip completed episodes. - -**Tech Stack:** Python, LiteLLM (`num_retries`), pytest, argparse - -**Design doc:** `docs/plans/2026-02-15-retry-resume-design.md` - ---- - -### Task 1: Add `num_retries` to LLMClient - -**Files:** -- Modify: `easi/llm/client.py:39-47` (constructor), `easi/llm/client.py:59-63` (generate call_kwargs) -- Test: `tests/test_llm_client.py` - -**Step 1: Write the failing tests** - -Add to `tests/test_llm_client.py`: - -```python -class TestLLMClientRetries: - def test_default_num_retries(self): - from easi.llm.client import LLMClient - client = LLMClient(model="openai/gpt-4o") - assert client.num_retries == 3 - - def test_custom_num_retries(self): - from easi.llm.client import LLMClient - client = LLMClient(model="openai/gpt-4o", num_retries=5) - assert client.num_retries == 5 - - @patch("easi.llm.client.litellm") - def test_num_retries_passed_to_litellm(self, mock_litellm): - from easi.llm.client import LLMClient - - mock_choice = MagicMock() - mock_choice.message.content = "ok" - mock_response = MagicMock() - mock_response.choices = [mock_choice] - mock_response.usage.prompt_tokens = 10 - mock_response.usage.completion_tokens = 5 - mock_litellm.completion.return_value = mock_response - mock_litellm.completion_cost.return_value = 0.0 - - client = LLMClient(model="openai/gpt-4o", num_retries=7) - client.generate([{"role": "user", "content": "hi"}]) - - call_kwargs = mock_litellm.completion.call_args - assert call_kwargs.kwargs.get("num_retries") == 7 - - @patch("easi.llm.client.litellm") - def test_zero_retries_passed_through(self, mock_litellm): - from easi.llm.client import LLMClient - - mock_choice = MagicMock() - mock_choice.message.content = "ok" - mock_response = MagicMock() - mock_response.choices = [mock_choice] - mock_response.usage.prompt_tokens = 10 - mock_response.usage.completion_tokens = 5 - mock_litellm.completion.return_value = mock_response - mock_litellm.completion_cost.return_value = 0.0 - - client = LLMClient(model="openai/gpt-4o", num_retries=0) - client.generate([{"role": "user", "content": "hi"}]) - - call_kwargs = mock_litellm.completion.call_args - assert call_kwargs.kwargs.get("num_retries") == 0 -``` - -**Step 2: Run tests to verify they fail** - -Run: `.venv/bin/pytest tests/test_llm_client.py::TestLLMClientRetries -v` -Expected: FAIL — `LLMClient` has no `num_retries` attribute - -**Step 3: Implement** - -In `easi/llm/client.py`, modify the constructor (lines 39-47): - -```python -def __init__( - self, - model: str, - base_url: str | None = None, - num_retries: int = 3, - **kwargs: Any, -): - self.model = model - self.base_url = base_url - self.num_retries = num_retries - self.default_kwargs = kwargs - self._usage = { - "prompt_tokens": 0, - "completion_tokens": 0, - "num_calls": 0, - "cost_usd": 0.0, - } -``` - -In `generate()` (lines 59-63), add `num_retries` to `call_kwargs`: - -```python -call_kwargs: dict[str, Any] = { - "model": self.model, - "messages": messages, - "num_retries": self.num_retries, - **self.default_kwargs, -} -``` - -**Step 4: Run tests to verify they pass** - -Run: `.venv/bin/pytest tests/test_llm_client.py -v` -Expected: ALL PASS (existing + new) - -**Step 5: Commit** - -```bash -git add easi/llm/client.py tests/test_llm_client.py -git commit -m "feat: add num_retries to LLMClient for LiteLLM retry support" -``` - ---- - -### Task 2: Wire `max_retries` through EvaluationRunner - -**Files:** -- Modify: `easi/evaluation/runner.py:47-69` (constructor), `easi/evaluation/runner.py:338-342` (LLMClient instantiation) -- Test: `tests/test_e2e_evaluation.py` - -**Step 1: Write the failing test** - -Add to `tests/test_e2e_evaluation.py`: - -```python -def test_max_retries_stored(self, tmp_path): - """Verify max_retries is stored and appears in config.""" - output_dir = tmp_path / "logs" - runner = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - max_retries=5, - ) - assert runner.max_retries == 5 - runner.run(max_episodes=1) - - run_dir = _find_run_dir(output_dir) - config = json.loads((run_dir / "config.json").read_text()) - assert config["cli_options"]["max_retries"] == 5 -``` - -**Step 2: Run test to verify it fails** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestE2EEvaluation::test_max_retries_stored -v` -Expected: FAIL — `EvaluationRunner.__init__()` got unexpected keyword `max_retries` - -**Step 3: Implement** - -In `easi/evaluation/runner.py`, add `max_retries` to constructor (line 59, after `port`): - -```python -def __init__( - self, - task_name: str, - agent_type: str = "dummy", - output_dir: Path | str = "./logs", - data_dir: Path | str = "./datasets", - llm_base_url: str | None = None, - agent_seed: int | None = None, - backend: str | None = None, - model: str = "default", - port: int = 8080, - llm_kwargs_raw: str | None = None, - max_retries: int = 3, -): - ... - self.max_retries = max_retries - ... -``` - -Add `max_retries` to the config dict in `run()` (inside `cli_options`): - -```python -"max_retries": self.max_retries, -``` - -In `_create_agent()`, pass `num_retries` to `LLMClient` (around line 338): - -```python -llm = LLMClient( - model=litellm_model, - base_url=base_url, - num_retries=self.max_retries, - **client_kwargs, -) -``` - -**Step 4: Run tests to verify they pass** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` -Expected: ALL PASS - -**Step 5: Commit** - -```bash -git add easi/evaluation/runner.py tests/test_e2e_evaluation.py -git commit -m "feat: wire max_retries through EvaluationRunner to LLMClient" -``` - ---- - -### Task 3: Add `--max-retries` CLI flag - -**Files:** -- Modify: `easi/cli.py:80-98` (run_parser args), `easi/cli.py:288-303` (cmd_run) - -**Step 1: Write the failing test** - -Add to `tests/test_e2e_evaluation.py` (or create a quick inline test): - -This is a CLI integration test. Since the existing tests are E2E with `EvaluationRunner`, we can verify the CLI parser separately: - -```python -def test_cli_max_retries_default(): - """CLI --max-retries defaults to 3.""" - from easi.cli import build_parser - parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) - assert args.max_retries == 3 - -def test_cli_max_retries_custom(): - """CLI --max-retries is parseable.""" - from easi.cli import build_parser - parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--max-retries", "5"]) - assert args.max_retries == 5 -``` - -Add these to a new `TestCLIParsing` class in `tests/test_e2e_evaluation.py`. - -**Step 2: Run test to verify it fails** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestCLIParsing -v` -Expected: FAIL — `args` has no attribute `max_retries` - -**Step 3: Implement** - -In `easi/cli.py`, add after line 98 (`--llm-kwargs`): - -```python -run_parser.add_argument("--max-retries", type=int, default=3, - help="Max LLM retry attempts on transient errors (default: 3)") -``` - -In `cmd_run` (line 288), add `max_retries` parameter and pass to `EvaluationRunner`: - -```python -def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, - llm_url, seed, backend, model, port, llm_kwargs_raw, max_retries): - from easi.evaluation.runner import EvaluationRunner - - runner = EvaluationRunner( - task_name=task_name, - agent_type=agent_type, - output_dir=output_dir, - data_dir=data_dir, - llm_base_url=llm_url, - agent_seed=seed, - backend=backend, - model=model, - port=port, - llm_kwargs_raw=llm_kwargs_raw, - max_retries=max_retries, - ) - ... -``` - -In `main()` dispatch (line 361), add `args.max_retries`: - -```python -cmd_run(args.task, args.agent, args.output_dir, args.data_dir, - args.max_episodes, args.llm_url, args.seed, - args.backend, args.model, args.port, args.llm_kwargs, - args.max_retries) -``` - -**Step 4: Run tests to verify they pass** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` -Expected: ALL PASS - -**Step 5: Commit** - -```bash -git add easi/cli.py tests/test_e2e_evaluation.py -git commit -m "feat: add --max-retries CLI flag for LLM retry control" -``` - ---- - -### Task 4: Add `--resume` CLI flag and `resume_dir` to EvaluationRunner - -**Files:** -- Modify: `easi/cli.py:98-99` (run_parser args), `easi/cli.py:288-303` (cmd_run) -- Modify: `easi/evaluation/runner.py:47-70` (constructor) - -**Step 1: Write the failing tests** - -Add to `TestCLIParsing` in `tests/test_e2e_evaluation.py`: - -```python -def test_cli_resume_default(): - """CLI --resume defaults to None.""" - from easi.cli import build_parser - parser = build_parser() - args = parser.parse_args(["run", "dummy_task"]) - assert args.resume is None - -def test_cli_resume_custom(): - """CLI --resume accepts a path.""" - from easi.cli import build_parser - parser = build_parser() - args = parser.parse_args(["run", "dummy_task", "--resume", "/tmp/logs/run_123"]) - assert args.resume == "/tmp/logs/run_123" -``` - -Add to `TestE2EEvaluation`: - -```python -def test_resume_dir_stored(self, tmp_path): - """Verify resume_dir is stored.""" - runner = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=tmp_path / "logs", - resume_dir=tmp_path / "old_run", - ) - assert runner.resume_dir == tmp_path / "old_run" -``` - -**Step 2: Run tests to verify they fail** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestCLIParsing::test_cli_resume_default tests/test_e2e_evaluation.py::TestCLIParsing::test_cli_resume_custom tests/test_e2e_evaluation.py::TestE2EEvaluation::test_resume_dir_stored -v` -Expected: FAIL - -**Step 3: Implement** - -In `easi/cli.py`, add after `--max-retries`: - -```python -run_parser.add_argument("--resume", type=str, default=None, - help="Path to a previous run directory to resume from") -``` - -In `easi/evaluation/runner.py` constructor, add `resume_dir`: - -```python -def __init__( - self, - ... - max_retries: int = 3, - resume_dir: Path | str | None = None, -): - ... - self.max_retries = max_retries - self.resume_dir = Path(resume_dir) if resume_dir else None - ... -``` - -In `easi/cli.py` `cmd_run`, add `resume` parameter and pass to `EvaluationRunner`: - -```python -def cmd_run(task_name, agent_type, output_dir, data_dir, max_episodes, - llm_url, seed, backend, model, port, llm_kwargs_raw, - max_retries, resume): - ... - runner = EvaluationRunner( - ... - max_retries=max_retries, - resume_dir=resume, - ) - ... -``` - -In `main()` dispatch, add `args.resume`: - -```python -cmd_run(args.task, args.agent, args.output_dir, args.data_dir, - args.max_episodes, args.llm_url, args.seed, - args.backend, args.model, args.port, args.llm_kwargs, - args.max_retries, args.resume) -``` - -**Step 4: Run tests to verify they pass** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` -Expected: ALL PASS - -**Step 5: Commit** - -```bash -git add easi/cli.py easi/evaluation/runner.py tests/test_e2e_evaluation.py -git commit -m "feat: add --resume CLI flag and resume_dir to EvaluationRunner" -``` - ---- - -### Task 5: Implement `_load_completed_results()` and resume logic in `run()` - -**Files:** -- Modify: `easi/evaluation/runner.py:94-185` (run method + new helper) -- Test: `tests/test_e2e_evaluation.py` - -**Step 1: Write the failing tests** - -Add to `TestE2EEvaluation` in `tests/test_e2e_evaluation.py`: - -```python -def test_resume_skips_completed_episodes(self, tmp_path): - """Resume skips completed episodes and re-runs the last one.""" - output_dir = tmp_path / "logs" - - # First run: complete 3 episodes - runner1 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - agent_seed=42, - ) - results1 = runner1.run() - assert len(results1) == 3 - - run_dir = _find_run_dir(output_dir) - - # Resume: should re-run episode 2 (last), skip 0 and 1 - runner2 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - resume_dir=run_dir, - agent_seed=42, - ) - results2 = runner2.run() - assert len(results2) == 3 # 2 loaded + 1 re-run (episode 2) - -def test_resume_clears_last_episode_dir(self, tmp_path): - """Resume clears the last episode directory before re-running.""" - output_dir = tmp_path / "logs" - - runner1 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - agent_seed=42, - ) - runner1.run() - - run_dir = _find_run_dir(output_dir) - episodes_dir = run_dir / "episodes" - episode_dirs = sorted(episodes_dir.iterdir()) - last_ep_dir = episode_dirs[-1] - - # Add a marker file to the last episode dir - marker = last_ep_dir / "marker.txt" - marker.write_text("should be deleted") - - runner2 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - resume_dir=run_dir, - agent_seed=42, - ) - runner2.run() - - # Marker should be gone (dir was cleared) - assert not marker.exists() - # But result.json should exist (re-run completed) - assert (last_ep_dir / "result.json").exists() - -def test_resume_produces_valid_summary(self, tmp_path): - """Resumed run produces a valid summary with all episodes.""" - output_dir = tmp_path / "logs" - - runner1 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - agent_seed=42, - ) - runner1.run() - - run_dir = _find_run_dir(output_dir) - - runner2 = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - resume_dir=run_dir, - agent_seed=42, - ) - results2 = runner2.run() - - summary = json.loads((run_dir / "summary.json").read_text()) - assert summary["num_episodes"] == 3 - -def test_resume_empty_run_dir(self, tmp_path): - """Resume with no completed episodes runs all from scratch.""" - output_dir = tmp_path / "logs" - run_dir = output_dir / "dummy_task" / "fake_run" - episodes_dir = run_dir / "episodes" - episodes_dir.mkdir(parents=True) - - # Write a minimal config.json so resume can read it - import json - config = {"run_id": "fake_run", "cli_options": {"task_name": "dummy_task"}} - (run_dir / "config.json").write_text(json.dumps(config)) - - runner = EvaluationRunner( - task_name="dummy_task", - agent_type="dummy", - output_dir=output_dir, - resume_dir=run_dir, - agent_seed=42, - ) - results = runner.run() - assert len(results) == 3 # All episodes run from scratch -``` - -**Step 2: Run tests to verify they fail** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py::TestE2EEvaluation::test_resume_skips_completed_episodes -v` -Expected: FAIL — resume logic not implemented - -**Step 3: Implement** - -Add `_load_completed_results()` method to `EvaluationRunner`: - -```python -def _load_completed_results(self, run_dir: Path) -> list[dict]: - """Load results from a previous run for resume. - - Returns results from all completed episodes except the last one. - The last episode directory is cleared for re-run (it may have been - interrupted mid-way). - """ - episodes_dir = run_dir / "episodes" - if not episodes_dir.exists(): - return [] - - result_files = sorted(episodes_dir.glob("*/result.json")) - if not result_files: - return [] - - # Load all completed results except the last - all_results = [] - for rf in result_files[:-1]: - all_results.append(json.loads(rf.read_text())) - - # Clear the last episode directory for re-run - last_episode_dir = result_files[-1].parent - for f in last_episode_dir.iterdir(): - f.unlink() - - return all_results -``` - -Modify `run()` to support resume — change the beginning of the method: - -```python -def run(self, max_episodes: int | None = None) -> list[dict]: - """Run evaluation and return per-episode metric dicts.""" - if self.resume_dir: - run_dir = self.resume_dir - all_results = self._load_completed_results(run_dir) - start_index = len(all_results) - logger.info( - "Resuming from %s — %d completed episodes, starting from %d", - run_dir, len(all_results), start_index, - ) - else: - run_dir = self.output_dir / self.task_name / self.run_id - all_results = [] - start_index = 0 - - episodes_dir = run_dir / "episodes" - episodes_dir.mkdir(parents=True, exist_ok=True) - - # 1. Load task - task = self._create_task() - episodes = task.load_episodes() - if max_episodes is not None: - episodes = episodes[:max_episodes] - - ... # rest stays the same until the episode loop - - for i, episode in enumerate(episodes): - if i < start_index: - continue - ... # existing episode loop body -``` - -**Step 4: Run tests to verify they pass** - -Run: `.venv/bin/pytest tests/test_e2e_evaluation.py -v` -Expected: ALL PASS - -**Step 5: Run the full test suite** - -Run: `.venv/bin/pytest tests/ -v --timeout=60` -Expected: ALL PASS - -**Step 6: Commit** - -```bash -git add easi/evaluation/runner.py tests/test_e2e_evaluation.py -git commit -m "feat: implement resume logic — scan completed episodes, re-run last" -``` - ---- - -## Dependency Graph - -``` -Task 1 (LLMClient num_retries) - └──> Task 2 (Runner max_retries wiring) - └──> Task 3 (CLI --max-retries) - -Task 4 (CLI --resume + resume_dir) - └──> Task 5 (Resume logic in run()) -``` - -Tasks 1-3 (retry) and Tasks 4-5 (resume) are independent chains. -Tasks 1+4 can run in parallel. Tasks 2+5 can run in parallel (after 1 and 4 respectively). - -## Verification - -```bash -# Full test suite -.venv/bin/pytest tests/ -v --timeout=60 - -# Quick CLI smoke test -.venv/bin/easi run dummy_task --agent dummy --max-retries 5 -.venv/bin/easi run dummy_task --agent dummy --resume logs/dummy_task// -``` - -## Files Changed Summary - -| File | Change | -|---|---| -| `easi/llm/client.py` | Add `num_retries` param (default 3), pass to `litellm.completion()` | -| `easi/evaluation/runner.py` | Add `max_retries` + `resume_dir` params, `_load_completed_results()`, resume logic in `run()` | -| `easi/cli.py` | Add `--max-retries` (default 3) and `--resume` (path) CLI flags | -| `tests/test_llm_client.py` | 4 new tests for `num_retries` | -| `tests/test_e2e_evaluation.py` | ~8 new tests for retry config + resume | From b52c56efc12dc340f9607fbd5bfc84e6750020ff Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 13:00:28 +0800 Subject: [PATCH 085/239] refactor: replace raw env var dicts with EnvVars dataclass Add EnvVars dataclass with replace/prepend semantics to render_platform.py. Remove backward-compat needs_display/xvfb_screen_config properties from BaseEnvironmentManager. Remove _PREPEND_ENV_VARS from SubprocessRunner and simplify _build_subprocess_env using EnvVars.merge/apply_to_env. Update all simulator env_managers to return EnvVars. Add explicit render_platform to all task YAML base templates. --- easi/cli.py | 2 +- easi/core/base_env_manager.py | 29 +--- easi/core/base_task.py | 1 + easi/core/render_platform.py | 52 +++++- easi/evaluation/runner.py | 6 +- .../coppeliasim/v4_1_0/env_manager.py | 13 +- .../omnigibson/v3_7_2/env_manager.py | 7 +- easi/simulators/subprocess_runner.py | 44 +---- easi/simulators/tdw/v1_11_23/env_manager.py | 7 +- easi/tasks/dummy_task/task.yaml | 4 + easi/tasks/ebalfred/_base.yaml | 1 + easi/tasks/ebhabitat/_base.yaml | 1 + easi/tasks/ebmanipulation/_base.yaml | 1 + easi/tasks/ebnavigation/_base.yaml | 1 + easi/tasks/hazard/_base.yaml | 1 + tests/test_bridge_refactor.py | 5 +- tests/test_coppeliasim_simulator.py | 30 ++-- tests/test_dummy_simulator.py | 13 +- tests/test_env_manager.py | 14 +- tests/test_env_vars_wiring.py | 14 +- tests/test_installation_kwargs.py | 5 +- tests/test_omnigibson_simulator.py | 14 +- tests/test_render_platform.py | 159 ++++++++++++------ tests/test_subprocess_runner.py | 17 +- tests/test_tdw_simulator.py | 6 +- 25 files changed, 269 insertions(+), 178 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 673c88f..1760395 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -286,7 +286,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam screen_config=env_manager.screen_config, startup_timeout=timeout, command_timeout=timeout, - extra_env=env_vars or None, + extra_env=env_vars if env_vars else None, ) try: diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index e02383c..da55553 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -102,20 +102,7 @@ def screen_config(self) -> str: """ return "1024x768x24" - @property - def needs_display(self) -> bool: - """Whether this simulator requires a display (backward compat). - - Derived from ``default_render_platform``. - """ - return self.default_render_platform != "headless" - - @property - def xvfb_screen_config(self) -> str: - """Backward compat alias for ``screen_config``.""" - return self.screen_config - - def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> "EnvVars": """Return environment variables to inject into the bridge subprocess. Override in subclasses to provide simulator-specific env vars. @@ -125,9 +112,11 @@ def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str Subclasses can use this to conditionally set env vars. Returns: - Dict of env var name -> value. Empty dict by default. + EnvVars instance. Empty by default. """ - return {} + from easi.core.render_platform import EnvVars + + return EnvVars() def get_env_name(self) -> str: """Conda environment name for this simulator version.""" @@ -153,8 +142,7 @@ def env_is_ready(self) -> bool: run_env = None if env_vars: import os - run_env = os.environ.copy() - run_env.update(env_vars) + run_env = env_vars.apply_to_env(os.environ.copy()) try: result = subprocess.run( @@ -249,8 +237,7 @@ def _do_install(self) -> None: validation_env = None if env_vars: import os - validation_env = os.environ.copy() - validation_env.update(env_vars) + validation_env = env_vars.apply_to_env(os.environ.copy()) with spinner("Validating environment"): self._run_command( [python_exec, "-c", self.get_validation_import()], @@ -307,7 +294,7 @@ def post_install(self, context: dict) -> None: def _run_post_install(self) -> None: """Build context and call post_install() hook.""" ctx = self._get_template_variables() - ctx["env_vars"] = self.get_env_vars() + ctx["env_vars"] = self.get_env_vars().to_flat_dict() self.post_install(ctx) def _download_and_extract( diff --git a/easi/core/base_task.py b/easi/core/base_task.py index 80cd4ac..cb5970f 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -142,6 +142,7 @@ def simulator_kwargs(self) -> dict: cfg.pop("env_vars", None) cfg.pop("command_timeout", None) cfg.pop("startup_timeout", None) + cfg.pop("render_platform", None) cfg["max_steps"] = self.max_steps return cfg diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py index 35c6870..82c8e23 100644 --- a/easi/core/render_platform.py +++ b/easi/core/render_platform.py @@ -16,6 +16,7 @@ import os from abc import ABC, abstractmethod +from dataclasses import dataclass, field from pathlib import Path from easi.utils.logging import get_logger @@ -23,6 +24,45 @@ logger = get_logger(__name__) +@dataclass +class EnvVars: + """Structured environment variables with replace/prepend semantics. + + ``replace`` vars overwrite any existing value. + ``prepend`` vars are prepended with ':' to any existing value (for PATH-like vars). + """ + + replace: dict[str, str] = field(default_factory=dict) + prepend: dict[str, str] = field(default_factory=dict) + + def to_flat_dict(self) -> dict[str, str]: + """Combine into single dict (for internal use like post_install).""" + return {**self.replace, **self.prepend} + + def apply_to_env(self, base: dict[str, str]) -> dict[str, str]: + """Merge into a base env dict (e.g. os.environ.copy()).""" + env = dict(base) + for k, v in self.replace.items(): + env[k] = v + for k, v in self.prepend.items(): + env[k] = f"{v}:{env[k]}" if k in env else v + return env + + def __bool__(self) -> bool: + return bool(self.replace) or bool(self.prepend) + + @classmethod + def merge(cls, *env_vars: EnvVars) -> EnvVars: + """Merge multiple EnvVars. Later values win for replace; prepend values concatenate.""" + replace: dict[str, str] = {} + prepend: dict[str, str] = {} + for ev in env_vars: + replace.update(ev.replace) + for k, v in ev.prepend.items(): + prepend[k] = f"{v}:{prepend[k]}" if k in prepend else v + return cls(replace=replace, prepend=prepend) + + class RenderPlatform(ABC): """Strategy interface for display/rendering backends.""" @@ -45,9 +85,9 @@ def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: """ ... - def get_env_vars(self) -> dict[str, str]: + def get_env_vars(self) -> EnvVars: """Extra env vars needed by this platform (merged into subprocess).""" - return {} + return EnvVars() def get_system_deps(self) -> list[str]: """System dependency names required by this platform.""" @@ -113,12 +153,12 @@ def name(self) -> str: def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: return cmd - def get_env_vars(self) -> dict[str, str]: - env: dict[str, str] = {"PYOPENGL_PLATFORM": "egl"} + def get_env_vars(self) -> EnvVars: + replace: dict[str, str] = {"PYOPENGL_PLATFORM": "egl"} mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") if mesa_vendor.exists(): - env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) - return env + replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return EnvVars(replace=replace) def get_system_deps(self) -> list[str]: return ["egl"] diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index ac8a080..ff1c778 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -610,11 +610,13 @@ def _create_simulator(self, simulator_key: str, task=None): render_platform = get_render_platform(platform_name) # Pass platform name to get_env_vars for conditional logic + from easi.core.render_platform import EnvVars + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) # Merge task-level env_vars from simulator_configs.env_vars if task and task.extra_env_vars: - env_vars = {**env_vars, **task.extra_env_vars} + env_vars = EnvVars.merge(env_vars, EnvVars(replace=task.extra_env_vars)) runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), @@ -622,7 +624,7 @@ def _create_simulator(self, simulator_key: str, task=None): render_platform=render_platform, screen_config=env_manager.screen_config, extra_args=extra_args, - extra_env=env_vars or None, + extra_env=env_vars if env_vars else None, **runner_kwargs, ) runner.launch() diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index 3a53aff..59aef3e 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -16,6 +16,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager +from easi.core.render_platform import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -56,11 +57,11 @@ def get_system_deps(self) -> list[str]: def get_validation_import(self) -> str: return "from pyrep import PyRep; print('PyRep OK')" - def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: """Return CoppeliaSim env vars for bridge subprocess.""" binary_dir_name = self.installation_kwargs.get("binary_dir_name", "") if not binary_dir_name: - return {} + return EnvVars() t = self._get_template_variables() coppeliasim_root = self._resolve_template( "{extras_dir}/" + binary_dir_name, t @@ -68,8 +69,10 @@ def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str # Include conda env lib dir so fontconfig/freetype/Qt deps resolve conda_lib = self._resolve_template("{env_dir}/lib", t) ld_path = f"{coppeliasim_root}:{conda_lib}" - env = { + replace: dict[str, str] = { "COPPELIASIM_ROOT": coppeliasim_root, + } + prepend: dict[str, str] = { "LD_LIBRARY_PATH": ld_path, "QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root, } @@ -78,8 +81,8 @@ def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str if render_platform_name != "egl": mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") if mesa_vendor.exists(): - env["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) - return env + replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return EnvVars(replace=replace, prepend=prepend) def post_install(self, context: dict) -> None: """Download CoppeliaSim, build PyRep, copy lua addon. diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 52d8124..48a9fb7 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -30,6 +30,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager +from easi.core.render_platform import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -128,7 +129,7 @@ def get_python_executable(self) -> str: ) return str(local_python) - def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: """Export env vars for headless rendering, EULA, and PYTHONHOME. PYTHONHOME is set to the conda env directory so the /tmp Python @@ -137,11 +138,11 @@ def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str conda_python = self._get_conda_python() # conda env dir is two levels up from bin/python conda_env_dir = str(Path(conda_python).resolve().parent.parent) - return { + return EnvVars(replace={ "OMNIGIBSON_HEADLESS": "1", "OMNI_KIT_ACCEPT_EULA": "YES", "PYTHONHOME": conda_env_dir, - } + }) def post_install(self, context: dict) -> None: """Replicate BEHAVIOR-1K setup.sh install process. diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index fd16804..4f1b4d9 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -28,7 +28,7 @@ write_command, ) from easi.core.exceptions import SimulatorError, SimulatorTimeoutError -from easi.core.render_platform import RenderPlatform, get_render_platform +from easi.core.render_platform import EnvVars, RenderPlatform from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -37,43 +37,22 @@ class SubprocessRunner: """Manages a bridge subprocess for a single simulator instance.""" - # Path-like env vars that should prepend rather than replace - _PREPEND_ENV_VARS = frozenset({ - "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "PATH", - "PYTHONPATH", "QT_QPA_PLATFORM_PLUGIN_PATH", - }) - def __init__( self, python_executable: str, bridge_script_path: Path, - # -- New render-platform API -- - render_platform: RenderPlatform | None = None, + render_platform: RenderPlatform, screen_config: str = "1024x768x24", - # -- Backward-compat (deprecated) -- - needs_display: bool = False, - xvfb_screen_config: str = "1024x768x24", - # -- Other params -- startup_timeout: float = 30.0, command_timeout: float = 300.0, poll_interval: float = 0.1, extra_args: list[str] | None = None, - extra_env: dict[str, str] | None = None, + extra_env: EnvVars | None = None, ): self.python_executable = python_executable self.bridge_script_path = bridge_script_path - - # Resolve render platform: explicit > backward-compat fallback - if render_platform is not None: - self.render_platform = render_platform - self.screen_config = screen_config - elif needs_display: - self.render_platform = get_render_platform("auto") - self.screen_config = xvfb_screen_config - else: - self.render_platform = get_render_platform("headless") - self.screen_config = xvfb_screen_config - + self.render_platform = render_platform + self.screen_config = screen_config self.startup_timeout = startup_timeout self.command_timeout = command_timeout self.poll_interval = poll_interval @@ -193,24 +172,15 @@ def shutdown(self) -> None: def _build_subprocess_env(self) -> dict[str, str] | None: """Build env dict for subprocess, merging platform + extra_env. - For path-like vars (LD_LIBRARY_PATH, PATH, etc.), prepends the new - value to the existing value with ':' separator. - Returns None if no env vars to set (subprocess inherits parent env). """ platform_env = self.render_platform.get_env_vars() - combined = {**platform_env, **(self.extra_env or {})} + combined = EnvVars.merge(platform_env, self.extra_env) if self.extra_env else platform_env if not combined: return None - env = os.environ.copy() - for key, value in combined.items(): - if key in self._PREPEND_ENV_VARS and key in env: - env[key] = f"{value}:{env[key]}" - else: - env[key] = value - return env + return combined.apply_to_env(os.environ.copy()) def _build_launch_command(self) -> list[str]: """Build the command to launch the bridge subprocess.""" diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index ca03a4a..4811556 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -13,6 +13,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager +from easi.core.render_platform import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -66,14 +67,14 @@ def env_is_ready(self) -> bool: return False return True - def get_env_vars(self, render_platform_name: str | None = None) -> dict[str, str]: + def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: """Return TDW env vars for bridge subprocess.""" build_dir = self.installation_kwargs.get("build_dir_name", "") if not build_dir: - return {} + return EnvVars() t = self._get_template_variables() build_path = self._resolve_template("{extras_dir}/" + build_dir, t) - return {"TDW_BUILD_PATH": build_path} + return EnvVars(replace={"TDW_BUILD_PATH": build_path}) def post_install(self, context: dict) -> None: """Download and extract TDW Unity build. diff --git a/easi/tasks/dummy_task/task.yaml b/easi/tasks/dummy_task/task.yaml index 2129c4c..43e3fdf 100644 --- a/easi/tasks/dummy_task/task.yaml +++ b/easi/tasks/dummy_task/task.yaml @@ -10,6 +10,10 @@ dataset: source: "local" path: null # null = use built-in dummy episodes +# Simulator config +simulator_configs: + render_platform: headless + # Episode limits max_steps: 100 diff --git a/easi/tasks/ebalfred/_base.yaml b/easi/tasks/ebalfred/_base.yaml index 915aabe..003020c 100644 --- a/easi/tasks/ebalfred/_base.yaml +++ b/easi/tasks/ebalfred/_base.yaml @@ -10,6 +10,7 @@ dataset: zip_files: - "tasks.zip" simulator_configs: + render_platform: auto quality: "MediumCloseFitShadows" screen_height: 500 screen_width: 500 diff --git a/easi/tasks/ebhabitat/_base.yaml b/easi/tasks/ebhabitat/_base.yaml index 91f14c6..730c8e5 100644 --- a/easi/tasks/ebhabitat/_base.yaml +++ b/easi/tasks/ebhabitat/_base.yaml @@ -11,6 +11,7 @@ dataset: - "simulator_data.zip" - "datasets.zip" simulator_configs: + render_platform: auto screen_height: 500 screen_width: 500 max_invalid_actions: 10 diff --git a/easi/tasks/ebmanipulation/_base.yaml b/easi/tasks/ebmanipulation/_base.yaml index c597078..d48d255 100644 --- a/easi/tasks/ebmanipulation/_base.yaml +++ b/easi/tasks/ebmanipulation/_base.yaml @@ -11,6 +11,7 @@ dataset: zip_files: - "simulator_data.zip" simulator_configs: + render_platform: auto screen_height: 500 screen_width: 500 max_steps: 15 diff --git a/easi/tasks/ebnavigation/_base.yaml b/easi/tasks/ebnavigation/_base.yaml index 25d03e6..bbd7515 100644 --- a/easi/tasks/ebnavigation/_base.yaml +++ b/easi/tasks/ebnavigation/_base.yaml @@ -8,6 +8,7 @@ dataset: repo_id: "oscarqjh/EB-Navigation_easi" subset: null simulator_configs: + render_platform: auto screen_height: 500 screen_width: 500 fov: 100 diff --git a/easi/tasks/hazard/_base.yaml b/easi/tasks/hazard/_base.yaml index 4d8c4c7..7ad108b 100644 --- a/easi/tasks/hazard/_base.yaml +++ b/easi/tasks/hazard/_base.yaml @@ -9,6 +9,7 @@ dataset: zip_files: - "simulator_data.zip" simulator_configs: + render_platform: auto screen_size: 512 port: 1071 use_cached_assets: false diff --git a/tests/test_bridge_refactor.py b/tests/test_bridge_refactor.py index bcb7858..3a6affe 100644 --- a/tests/test_bridge_refactor.py +++ b/tests/test_bridge_refactor.py @@ -301,11 +301,12 @@ def test_ebalfred_no_eval_set(self): kwargs = task.simulator_kwargs assert "eval_set" not in kwargs - def test_dummy_task_empty_simulator_configs(self): + def test_dummy_task_simulator_configs(self): from easi.tasks.dummy_task.task import DummyTask task = DummyTask() - assert task.simulator_configs == {} + assert task.simulator_configs == {"render_platform": "headless"} assert task.additional_deps == [] + # render_platform is stripped from simulator_kwargs (infra-only key) assert task.simulator_kwargs == {"max_steps": 100} def test_all_ebalfred_splits_have_configs(self): diff --git a/tests/test_coppeliasim_simulator.py b/tests/test_coppeliasim_simulator.py index 9b1d8e2..086251b 100644 --- a/tests/test_coppeliasim_simulator.py +++ b/tests/test_coppeliasim_simulator.py @@ -47,15 +47,15 @@ def test_env_name(self): mgr = create_env_manager("coppeliasim") assert mgr.get_env_name() == "easi_coppeliasim_v4_1_0" - def test_needs_display(self): + def test_default_render_platform(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert mgr.needs_display is True + assert mgr.default_render_platform == "auto" - def test_xvfb_screen_config(self): + def test_screen_config(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert mgr.xvfb_screen_config == "1280x720x24" + assert mgr.screen_config == "1280x720x24" def test_system_deps(self): from easi.simulators.registry import create_env_manager @@ -86,48 +86,48 @@ class TestEnvVars: def test_env_vars_has_coppeliasim_root(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert "COPPELIASIM_ROOT" in mgr.get_env_vars() + assert "COPPELIASIM_ROOT" in mgr.get_env_vars().replace def test_env_vars_has_ld_library_path(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert "LD_LIBRARY_PATH" in mgr.get_env_vars() + assert "LD_LIBRARY_PATH" in mgr.get_env_vars().prepend def test_env_vars_has_qt_platform(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert "QT_QPA_PLATFORM_PLUGIN_PATH" in mgr.get_env_vars() + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in mgr.get_env_vars().prepend def test_env_vars_no_unresolved_templates(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - for key, val in mgr.get_env_vars().items(): + for key, val in mgr.get_env_vars().to_flat_dict().items(): assert "{" not in val, f"Unresolved template in {key}: {val}" def test_env_vars_contain_coppeliasim_dir(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - root = mgr.get_env_vars()["COPPELIASIM_ROOT"] + root = mgr.get_env_vars().replace["COPPELIASIM_ROOT"] assert "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" in root assert "extras" in root def test_ld_library_path_includes_coppeliasim_root(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - env_vars = mgr.get_env_vars() - assert env_vars["COPPELIASIM_ROOT"] in env_vars["LD_LIBRARY_PATH"] - assert env_vars["COPPELIASIM_ROOT"] == env_vars["QT_QPA_PLATFORM_PLUGIN_PATH"] + ev = mgr.get_env_vars() + assert ev.replace["COPPELIASIM_ROOT"] in ev.prepend["LD_LIBRARY_PATH"] + assert ev.replace["COPPELIASIM_ROOT"] == ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] def test_ld_library_path_includes_conda_lib(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - env_vars = mgr.get_env_vars() - assert "/lib" in env_vars["LD_LIBRARY_PATH"] + ev = mgr.get_env_vars() + assert "/lib" in ev.prepend["LD_LIBRARY_PATH"] def test_empty_installation_kwargs_returns_empty_env_vars(self): from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 mgr = CoppeliaSimEnvManagerV410() # No installation_kwargs - assert mgr.get_env_vars() == {} + assert not mgr.get_env_vars() class TestSimulatorClass: diff --git a/tests/test_dummy_simulator.py b/tests/test_dummy_simulator.py index ae6bff7..5048bc3 100644 --- a/tests/test_dummy_simulator.py +++ b/tests/test_dummy_simulator.py @@ -14,12 +14,15 @@ @pytest.fixture def dummy_simulator(): """Create and start a dummy simulator, cleaning up after the test.""" + from easi.core.render_platform import get_render_platform + env_manager = DummyEnvManager() sim = DummySimulator() runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), + render_platform=get_render_platform("headless"), startup_timeout=10.0, command_timeout=10.0, ) @@ -84,17 +87,21 @@ def test_is_running(dummy_simulator): def test_dummy_simulator_with_env_vars_wiring(): - """Verify DummyEnvManager.get_env_vars() returns {} and doesn't break launch.""" + """Verify DummyEnvManager.get_env_vars() returns empty EnvVars and doesn't break launch.""" + from easi.core.render_platform import get_render_platform + env_manager = DummyEnvManager() - assert env_manager.get_env_vars() == {} + env_vars = env_manager.get_env_vars() + assert not env_vars # empty EnvVars is falsy sim = DummySimulator() runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), + render_platform=get_render_platform("headless"), startup_timeout=10.0, command_timeout=10.0, - extra_env=env_manager.get_env_vars() or None, + extra_env=env_vars if env_vars else None, ) runner.launch() try: diff --git a/tests/test_env_manager.py b/tests/test_env_manager.py index cd435c4..092ce9f 100644 --- a/tests/test_env_manager.py +++ b/tests/test_env_manager.py @@ -11,18 +11,22 @@ class TestEnvManagerGetEnvVars: """Tests for the get_env_vars() method.""" - def test_default_returns_empty_dict(self): + def test_default_returns_empty_envvars(self): + from easi.core.render_platform import EnvVars from easi.simulators.dummy.v1.env_manager import DummyEnvManager mgr = DummyEnvManager() - assert mgr.get_env_vars() == {} + result = mgr.get_env_vars() + assert isinstance(result, EnvVars) + assert not result - def test_returns_dict_type(self): + def test_returns_envvars_type(self): + from easi.core.render_platform import EnvVars from easi.simulators.dummy.v1.env_manager import DummyEnvManager mgr = DummyEnvManager() result = mgr.get_env_vars() - assert isinstance(result, dict) + assert isinstance(result, EnvVars) class TestEnvManagerPostInstall: @@ -33,7 +37,7 @@ def test_default_post_install_is_noop(self): mgr = DummyEnvManager() ctx = mgr._get_template_variables() - ctx["env_vars"] = mgr.get_env_vars() + ctx["env_vars"] = mgr.get_env_vars().to_flat_dict() mgr.post_install(ctx) # Should not raise def test_post_install_receives_context_keys(self): diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index 8ec8264..f7b2653 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -10,6 +10,7 @@ class TestEnvVarsWiring: """Verify env vars flow from env_manager to SubprocessRunner.""" def test_runner_passes_env_vars_to_subprocess(self): + from easi.core.render_platform import EnvVars from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -22,9 +23,7 @@ def test_runner_passes_env_vars_to_subprocess(self): mock_env_mgr.default_render_platform = "headless" mock_env_mgr.supported_render_platforms = ["headless"] mock_env_mgr.screen_config = "1024x768x24" - mock_env_mgr.needs_display = False - mock_env_mgr.xvfb_screen_config = "1024x768x24" - mock_env_mgr.get_env_vars.return_value = {"SIM_ROOT": "/opt/sim"} + mock_env_mgr.get_env_vars.return_value = EnvVars(replace={"SIM_ROOT": "/opt/sim"}) mock_sim_cls = MagicMock() mock_sim = mock_sim_cls.return_value @@ -39,9 +38,12 @@ def test_runner_passes_env_vars_to_subprocess(self): runner._create_simulator("fake:v1") call_kwargs = MockRunner.call_args - assert call_kwargs.kwargs.get("extra_env") == {"SIM_ROOT": "/opt/sim"} + extra_env = call_kwargs.kwargs.get("extra_env") + assert isinstance(extra_env, EnvVars) + assert extra_env.replace == {"SIM_ROOT": "/opt/sim"} def test_runner_passes_none_when_no_env_vars(self): + from easi.core.render_platform import EnvVars from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -54,9 +56,7 @@ def test_runner_passes_none_when_no_env_vars(self): mock_env_mgr.default_render_platform = "headless" mock_env_mgr.supported_render_platforms = ["headless"] mock_env_mgr.screen_config = "1024x768x24" - mock_env_mgr.needs_display = False - mock_env_mgr.xvfb_screen_config = "1024x768x24" - mock_env_mgr.get_env_vars.return_value = {} + mock_env_mgr.get_env_vars.return_value = EnvVars() mock_sim_cls = MagicMock() mock_sim = mock_sim_cls.return_value diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 300036c..5c9fd8f 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -53,6 +53,7 @@ class TestRunnerUsesFactory: """EvaluationRunner._create_simulator uses the factory.""" def test_runner_passes_installation_kwargs(self): + from easi.core.render_platform import EnvVars from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -65,9 +66,7 @@ def test_runner_passes_installation_kwargs(self): mock_env_mgr.default_render_platform = "headless" mock_env_mgr.supported_render_platforms = ["headless"] mock_env_mgr.screen_config = "1024x768x24" - mock_env_mgr.needs_display = False - mock_env_mgr.xvfb_screen_config = "1024x768x24" - mock_env_mgr.get_env_vars.return_value = {} + mock_env_mgr.get_env_vars.return_value = EnvVars() mock_sim_cls = MagicMock() mock_sim = mock_sim_cls.return_value diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py index 6a58d30..e648521 100644 --- a/tests/test_omnigibson_simulator.py +++ b/tests/test_omnigibson_simulator.py @@ -49,18 +49,18 @@ def test_env_name(self): mgr = OmniGibsonEnvManager() assert mgr.get_env_name() == "easi_omnigibson_v3_7_2" - def test_needs_display(self): + def test_default_render_platform_headless(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() - assert mgr.needs_display is False + assert mgr.default_render_platform == "headless" def test_env_vars(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() - env_vars = mgr.get_env_vars() - assert env_vars["OMNIGIBSON_HEADLESS"] == "1" - assert env_vars["OMNI_KIT_ACCEPT_EULA"] == "YES" - assert "PYTHONHOME" in env_vars + ev = mgr.get_env_vars() + assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" + assert ev.replace["OMNI_KIT_ACCEPT_EULA"] == "YES" + assert "PYTHONHOME" in ev.replace def test_get_python_executable_is_local(self): """Python executable should be a /tmp copy (NFS workaround).""" @@ -153,7 +153,7 @@ def test_create_env_manager(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("omnigibson:v3_7_2") assert mgr.simulator_name == "omnigibson" - assert mgr.needs_display is False + assert mgr.default_render_platform == "headless" def test_create_env_manager_has_installation_kwargs(self): from easi.simulators.registry import create_env_manager diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 665302b..10cb627 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -9,6 +9,78 @@ import pytest +class TestEnvVarsDataclass: + """Test the EnvVars dataclass.""" + + def test_empty_is_falsy(self): + from easi.core.render_platform import EnvVars + + assert not EnvVars() + + def test_replace_is_truthy(self): + from easi.core.render_platform import EnvVars + + assert EnvVars(replace={"FOO": "bar"}) + + def test_prepend_is_truthy(self): + from easi.core.render_platform import EnvVars + + assert EnvVars(prepend={"PATH": "/extra"}) + + def test_to_flat_dict(self): + from easi.core.render_platform import EnvVars + + ev = EnvVars(replace={"A": "1"}, prepend={"B": "2"}) + assert ev.to_flat_dict() == {"A": "1", "B": "2"} + + def test_apply_to_env_replace(self): + from easi.core.render_platform import EnvVars + + ev = EnvVars(replace={"FOO": "new"}) + result = ev.apply_to_env({"FOO": "old", "BAR": "keep"}) + assert result["FOO"] == "new" + assert result["BAR"] == "keep" + + def test_apply_to_env_prepend_existing(self): + from easi.core.render_platform import EnvVars + + ev = EnvVars(prepend={"PATH": "/new"}) + result = ev.apply_to_env({"PATH": "/old"}) + assert result["PATH"] == "/new:/old" + + def test_apply_to_env_prepend_missing(self): + from easi.core.render_platform import EnvVars + + ev = EnvVars(prepend={"LD_LIBRARY_PATH": "/lib"}) + result = ev.apply_to_env({}) + assert result["LD_LIBRARY_PATH"] == "/lib" + + def test_merge_replace_later_wins(self): + from easi.core.render_platform import EnvVars + + a = EnvVars(replace={"K": "a"}) + b = EnvVars(replace={"K": "b"}) + merged = EnvVars.merge(a, b) + assert merged.replace["K"] == "b" + + def test_merge_prepend_concatenates(self): + from easi.core.render_platform import EnvVars + + a = EnvVars(prepend={"PATH": "/a"}) + b = EnvVars(prepend={"PATH": "/b"}) + merged = EnvVars.merge(a, b) + assert merged.prepend["PATH"] == "/b:/a" + + def test_merge_mixed(self): + from easi.core.render_platform import EnvVars + + a = EnvVars(replace={"ROOT": "/opt"}, prepend={"PATH": "/a/bin"}) + b = EnvVars(replace={"HOME": "/home"}, prepend={"PATH": "/b/bin"}) + merged = EnvVars.merge(a, b) + assert merged.replace == {"ROOT": "/opt", "HOME": "/home"} + assert merged.prepend["PATH"] == "/b/bin:/a/bin" + + class TestRenderPlatformRegistry: """Test platform discovery and instantiation.""" @@ -66,10 +138,12 @@ def test_wrap_command_passthrough(self): assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform p = get_render_platform("headless") - assert p.get_env_vars() == {} + ev = p.get_env_vars() + assert isinstance(ev, EnvVars) + assert not ev def test_get_system_deps_empty(self): from easi.core.render_platform import get_render_platform @@ -92,10 +166,12 @@ def test_wrap_command_prepends_xvfb_run(self): assert wrapped[-2:] == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform p = get_render_platform("xvfb") - assert p.get_env_vars() == {} + ev = p.get_env_vars() + assert isinstance(ev, EnvVars) + assert not ev def test_get_system_deps_includes_xvfb(self): from easi.core.render_platform import get_render_platform @@ -115,10 +191,12 @@ def test_wrap_command_passthrough(self): assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform p = get_render_platform("native") - assert p.get_env_vars() == {} + ev = p.get_env_vars() + assert isinstance(ev, EnvVars) + assert not ev def test_is_available_true_when_display_set(self): from easi.core.render_platform import get_render_platform @@ -146,11 +224,12 @@ def test_wrap_command_passthrough(self): assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_sets_pyopengl(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform p = get_render_platform("egl") - env = p.get_env_vars() - assert env["PYOPENGL_PLATFORM"] == "egl" + ev = p.get_env_vars() + assert isinstance(ev, EnvVars) + assert ev.replace["PYOPENGL_PLATFORM"] == "egl" def test_get_system_deps_includes_egl(self): from easi.core.render_platform import get_render_platform @@ -219,21 +298,13 @@ def test_screen_config_default(self): mgr = self._make_stub() assert mgr.screen_config == "1024x768x24" - def test_needs_display_false_for_headless(self): - mgr = self._make_stub() - assert mgr.needs_display is False - - def test_needs_display_true_when_platform_not_headless(self): - mgr = self._make_stub( - default_render_platform=property(lambda self: "auto"), - ) - assert mgr.needs_display is True + def test_get_env_vars_returns_envvars(self): + from easi.core.render_platform import EnvVars - def test_xvfb_screen_config_aliases_screen_config(self): - mgr = self._make_stub( - screen_config=property(lambda self: "1920x1080x24"), - ) - assert mgr.xvfb_screen_config == "1920x1080x24" + mgr = self._make_stub() + ev = mgr.get_env_vars() + assert isinstance(ev, EnvVars) + assert not ev class TestSubprocessRunnerRenderPlatform: @@ -282,7 +353,7 @@ def test_build_command_headless_no_wrap(self): assert cmd[0] == "/usr/bin/python3" def test_platform_env_vars_merged(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("egl") @@ -290,33 +361,23 @@ def test_platform_env_vars_merged(self): python_executable="/usr/bin/python3", bridge_script_path=Path("/fake/bridge.py"), render_platform=p, - extra_env={"SIM_ROOT": "/opt/sim"}, + extra_env=EnvVars(replace={"SIM_ROOT": "/opt/sim"}), ) env = runner._build_subprocess_env() assert env["PYOPENGL_PLATFORM"] == "egl" assert env["SIM_ROOT"] == "/opt/sim" - def test_backward_compat_needs_display_still_works(self): - """Old callers passing needs_display=True get AutoPlatform.""" - from easi.simulators.subprocess_runner import SubprocessRunner - - runner = SubprocessRunner( - python_executable="/usr/bin/python3", - bridge_script_path=Path("/fake/bridge.py"), - needs_display=True, - xvfb_screen_config="1024x768x24", - ) - assert runner.render_platform.name == "auto" - - def test_backward_compat_needs_display_false_gets_headless(self): + def test_no_env_vars_returns_none(self): + from easi.core.render_platform import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner + p = get_render_platform("headless") runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/fake/bridge.py"), - needs_display=False, + render_platform=p, ) - assert runner.render_platform.name == "headless" + assert runner._build_subprocess_env() is None class TestSimulatorRenderPlatforms: @@ -329,8 +390,6 @@ def test_ai2thor_v2(self): assert mgr.default_render_platform == "auto" assert "xvfb" in mgr.supported_render_platforms assert "native" in mgr.supported_render_platforms - # backward compat - assert mgr.needs_display is True def test_ai2thor_v5(self): from easi.simulators.ai2thor.v5_0_0.env_manager import AI2ThorEnvManagerV500 @@ -358,8 +417,9 @@ def test_coppeliasim_egl_skips_mesa_vendor(self): from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 mgr = CoppeliaSimEnvManagerV410() - env = mgr.get_env_vars(render_platform_name="egl") - assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in env + ev = mgr.get_env_vars(render_platform_name="egl") + all_keys = set(ev.replace) | set(ev.prepend) + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in all_keys def test_tdw(self): from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager @@ -372,7 +432,6 @@ def test_omnigibson(self): mgr = OmniGibsonEnvManager() assert mgr.default_render_platform == "headless" - assert mgr.needs_display is False def test_dummy(self): from easi.simulators.dummy.v1.env_manager import DummyEnvManager @@ -413,15 +472,15 @@ class TestRunnerRenderPlatformWiring: """Verify EvaluationRunner resolves and passes render platform.""" def _make_mock_env_mgr(self): + from easi.core.render_platform import EnvVars + mgr = MagicMock() mgr.env_is_ready.return_value = True mgr.get_python_executable.return_value = "/usr/bin/python3" mgr.default_render_platform = "auto" mgr.supported_render_platforms = ["auto", "xvfb", "native", "egl"] mgr.screen_config = "1024x768x24" - mgr.needs_display = True - mgr.xvfb_screen_config = "1024x768x24" - mgr.get_env_vars.return_value = {} + mgr.get_env_vars.return_value = EnvVars() return mgr def _make_mock_task(self, render_platform=None): @@ -535,7 +594,7 @@ class TestRenderPlatformEndToEnd: """End-to-end: platform flows through runner to subprocess.""" def test_egl_env_vars_in_subprocess(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platform import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner platform = get_render_platform("egl") @@ -543,7 +602,7 @@ def test_egl_env_vars_in_subprocess(self): python_executable="/usr/bin/python3", bridge_script_path=Path("/fake/bridge.py"), render_platform=platform, - extra_env={"SIM_ROOT": "/opt/sim"}, + extra_env=EnvVars(replace={"SIM_ROOT": "/opt/sim"}), ) env = runner._build_subprocess_env() assert env["PYOPENGL_PLATFORM"] == "egl" diff --git a/tests/test_subprocess_runner.py b/tests/test_subprocess_runner.py index c07411d..5641b4c 100644 --- a/tests/test_subprocess_runner.py +++ b/tests/test_subprocess_runner.py @@ -5,6 +5,7 @@ import os from pathlib import Path +from easi.core.render_platform import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner @@ -15,14 +16,16 @@ def test_constructor_accepts_env_vars(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), - extra_env={"MY_VAR": "my_value"}, + render_platform=get_render_platform("headless"), + extra_env=EnvVars(replace={"MY_VAR": "my_value"}), ) - assert runner.extra_env == {"MY_VAR": "my_value"} + assert runner.extra_env.replace == {"MY_VAR": "my_value"} def test_default_env_is_none(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), ) assert runner.extra_env is None @@ -30,7 +33,8 @@ def test_build_env_merges_with_os_environ(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), - extra_env={"COPPELIASIM_ROOT": "/opt/coppeliasim"}, + render_platform=get_render_platform("headless"), + extra_env=EnvVars(replace={"COPPELIASIM_ROOT": "/opt/coppeliasim"}), ) env = runner._build_subprocess_env() assert env["COPPELIASIM_ROOT"] == "/opt/coppeliasim" @@ -40,6 +44,7 @@ def test_build_env_returns_none_when_no_extra(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), ) assert runner._build_subprocess_env() is None @@ -47,7 +52,8 @@ def test_extra_env_prepends_to_path_vars(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), - extra_env={"LD_LIBRARY_PATH": "/opt/sim/lib"}, + render_platform=get_render_platform("headless"), + extra_env=EnvVars(prepend={"LD_LIBRARY_PATH": "/opt/sim/lib"}), ) env = runner._build_subprocess_env() ld_path = env.get("LD_LIBRARY_PATH", "") @@ -60,7 +66,8 @@ def test_non_path_var_replaces(self): runner = SubprocessRunner( python_executable="/usr/bin/python3", bridge_script_path=Path("/dev/null"), - extra_env={"MY_EXISTING": "new_value"}, + render_platform=get_render_platform("headless"), + extra_env=EnvVars(replace={"MY_EXISTING": "new_value"}), ) env = runner._build_subprocess_env() assert env["MY_EXISTING"] == "new_value" diff --git a/tests/test_tdw_simulator.py b/tests/test_tdw_simulator.py index 30369fb..df491fb 100644 --- a/tests/test_tdw_simulator.py +++ b/tests/test_tdw_simulator.py @@ -58,10 +58,10 @@ def test_env_name(self): mgr = TDWEnvManager() assert mgr.get_env_name() == "easi_tdw_v1_11_23" - def test_needs_display(self): + def test_default_render_platform(self): from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager mgr = TDWEnvManager() - assert mgr.needs_display is True + assert mgr.default_render_platform == "auto" def test_system_deps(self): from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager @@ -114,4 +114,4 @@ def test_create_env_manager(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("tdw:v1_11_23") assert mgr.simulator_name == "tdw" - assert mgr.needs_display is True + assert mgr.default_render_platform == "auto" From e8395ba891e312036f0f5d1a9c5dbbe406e6cee3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 13:45:14 +0800 Subject: [PATCH 086/239] feat: support custom render platform classes via simulator manifest Allow simulators to register custom RenderPlatform subclasses in their manifest.yaml. resolve_render_platform() checks the manifest first, falling back to built-in platforms. Includes a DummyCustomPlatform example and tests for the full resolution chain. --- easi/cli.py | 9 +- easi/evaluation/runner.py | 4 +- easi/simulators/dummy/manifest.yaml | 2 + easi/simulators/dummy/v1/env_manager.py | 4 + easi/simulators/dummy/v1/render_platforms.py | 14 +++ easi/simulators/registry.py | 31 ++++++ tests/test_dummy_simulator.py | 8 ++ tests/test_env_vars_wiring.py | 8 +- tests/test_installation_kwargs.py | 4 +- tests/test_render_platform.py | 105 +++++++++++++++++++ 10 files changed, 181 insertions(+), 8 deletions(-) create mode 100644 easi/simulators/dummy/v1/render_platforms.py diff --git a/easi/cli.py b/easi/cli.py index 1760395..293ae9d 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -255,8 +255,11 @@ def cmd_task_download(task_name: str, refresh_data: bool = False) -> None: def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_name: str | None = None) -> None: from easi.core.episode import Action - from easi.core.render_platform import get_render_platform - from easi.simulators.registry import create_env_manager, load_simulator_class + from easi.simulators.registry import ( + create_env_manager, + load_simulator_class, + resolve_render_platform, + ) from easi.simulators.subprocess_runner import SubprocessRunner env_manager = create_env_manager(simulator) @@ -271,7 +274,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam platform_name, simulator, env_manager.supported_render_platforms, ) sys.exit(1) - render_platform = get_render_platform(platform_name) + render_platform = resolve_render_platform(simulator, platform_name) logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index ff1c778..413df65 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -591,7 +591,7 @@ def _create_simulator(self, simulator_key: str, task=None): runner_kwargs["startup_timeout"] = float(sim_configs["startup_timeout"]) # Resolve render platform: CLI > task YAML > env_manager default - from easi.core.render_platform import get_render_platform + from easi.simulators.registry import resolve_render_platform yaml_platform = sim_configs.get("render_platform") if task else None platform_name = ( @@ -607,7 +607,7 @@ def _create_simulator(self, simulator_key: str, task=None): f"Supported: {env_manager.supported_render_platforms}" ) - render_platform = get_render_platform(platform_name) + render_platform = resolve_render_platform(simulator_key, platform_name) # Pass platform name to get_env_vars for conditional logic from easi.core.render_platform import EnvVars diff --git a/easi/simulators/dummy/manifest.yaml b/easi/simulators/dummy/manifest.yaml index 47bcc61..18b0ad0 100644 --- a/easi/simulators/dummy/manifest.yaml +++ b/easi/simulators/dummy/manifest.yaml @@ -7,3 +7,5 @@ versions: simulator_class: "easi.simulators.dummy.v1.simulator.DummySimulator" env_manager_class: "easi.simulators.dummy.v1.env_manager.DummyEnvManager" python_version: "3.10" + render_platforms: + dummy_custom: "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" diff --git a/easi/simulators/dummy/v1/env_manager.py b/easi/simulators/dummy/v1/env_manager.py index 89915fa..b6c6638 100644 --- a/easi/simulators/dummy/v1/env_manager.py +++ b/easi/simulators/dummy/v1/env_manager.py @@ -39,6 +39,10 @@ def get_python_executable(self) -> str: """Use the current Python interpreter (no conda env needed for dummy).""" return sys.executable + @property + def supported_render_platforms(self) -> list[str]: + return ["headless", "dummy_custom"] + def env_is_ready(self) -> bool: """Dummy env is always ready (uses host Python).""" return True diff --git a/easi/simulators/dummy/v1/render_platforms.py b/easi/simulators/dummy/v1/render_platforms.py new file mode 100644 index 0000000..6c077e1 --- /dev/null +++ b/easi/simulators/dummy/v1/render_platforms.py @@ -0,0 +1,14 @@ +"""Custom render platforms for the dummy simulator (for testing).""" + +from easi.core.render_platform import EnvVars, HeadlessPlatform + + +class DummyCustomPlatform(HeadlessPlatform): + """A trivial custom platform that adds a marker env var.""" + + @property + def name(self) -> str: + return "dummy_custom" + + def get_env_vars(self) -> EnvVars: + return EnvVars(replace={"DUMMY_CUSTOM_PLATFORM": "1"}) diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 1f1696c..2f92c0a 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -33,6 +33,7 @@ class SimulatorEntry: env_manager_class: str # fully qualified class name python_version: str installation_kwargs: dict = field(default_factory=dict) + render_platforms: dict[str, str] = field(default_factory=dict) # platform_name -> FQN class # Module-level registry populated on first access @@ -63,6 +64,7 @@ def _discover_simulators() -> dict[str, SimulatorEntry]: env_manager_class=ver_info["env_manager_class"], python_version=ver_info.get("python_version", "3.10"), installation_kwargs=ver_info.get("installation_kwargs", {}), + render_platforms=ver_info.get("render_platforms", {}), ) # Register with explicit key: "ai2thor:v2_1_0" @@ -133,6 +135,35 @@ def create_env_manager(key: str): return cls(installation_kwargs=entry.installation_kwargs) +def resolve_render_platform(key: str, platform_name: str): + """Resolve a render platform, checking simulator manifest first, then built-ins. + + Args: + key: Simulator registry key (e.g. "coppeliasim:v4_1_0" or "coppeliasim"). + platform_name: Platform name (e.g. "xvfb", "isaac_headless"). + + Returns: + Instantiated RenderPlatform. + """ + from easi.core.render_platform import get_render_platform + + entry = get_simulator_entry(key) + custom_class_path = entry.render_platforms.get(platform_name) + + if custom_class_path: + cls = _import_class(custom_class_path) + instance = cls() + if instance.name != platform_name: + raise ValueError( + f"Custom render platform class '{custom_class_path}' has " + f"name '{instance.name}', expected '{platform_name}'" + ) + logger.trace("Using custom render platform '%s' from %s", platform_name, key) + return instance + + return get_render_platform(platform_name) + + def _import_class(fully_qualified_name: str): """Import a class from its fully qualified name (e.g., 'pkg.mod.ClassName').""" module_path, class_name = fully_qualified_name.rsplit(".", 1) diff --git a/tests/test_dummy_simulator.py b/tests/test_dummy_simulator.py index 5048bc3..42b926b 100644 --- a/tests/test_dummy_simulator.py +++ b/tests/test_dummy_simulator.py @@ -124,3 +124,11 @@ def test_registry_discovery(): entry_explicit = get_simulator_entry("dummy:v1") assert entry_explicit.name == "dummy" + + +def test_dummy_custom_platform_in_registry(): + """Test that the dummy simulator's custom render platform is in the registry.""" + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("dummy") + assert "dummy_custom" in entry.render_platforms diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index f7b2653..c768ee9 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -10,7 +10,7 @@ class TestEnvVarsWiring: """Verify env vars flow from env_manager to SubprocessRunner.""" def test_runner_passes_env_vars_to_subprocess(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platform import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -31,6 +31,8 @@ def test_runner_passes_env_vars_to_subprocess(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None @@ -43,7 +45,7 @@ def test_runner_passes_env_vars_to_subprocess(self): assert extra_env.replace == {"SIM_ROOT": "/opt/sim"} def test_runner_passes_none_when_no_env_vars(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platform import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -64,6 +66,8 @@ def test_runner_passes_none_when_no_env_vars(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 5c9fd8f..1351a05 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -53,7 +53,7 @@ class TestRunnerUsesFactory: """EvaluationRunner._create_simulator uses the factory.""" def test_runner_passes_installation_kwargs(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platform import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -74,6 +74,8 @@ def test_runner_passes_installation_kwargs(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr) as mock_factory, \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 10cb627..5339be4 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -440,6 +440,96 @@ def test_dummy(self): assert mgr.default_render_platform == "headless" +class TestCustomRenderPlatforms: + """Test custom render platform registration and resolution.""" + + def test_simulator_entry_has_empty_render_platforms(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor:v2_1_0") + assert entry.render_platforms == {} + + def test_simulator_entry_has_custom_render_platforms(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("dummy") + assert entry.render_platforms == { + "dummy_custom": "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" + } + + def test_resolve_falls_back_to_builtin(self): + from easi.core.render_platform import HeadlessPlatform + from easi.simulators.registry import resolve_render_platform + + platform = resolve_render_platform("dummy", "headless") + assert isinstance(platform, HeadlessPlatform) + assert platform.name == "headless" + + def test_resolve_uses_custom_class(self): + from easi.simulators.dummy.v1.render_platforms import DummyCustomPlatform + from easi.simulators.registry import resolve_render_platform + + platform = resolve_render_platform("dummy", "dummy_custom") + assert isinstance(platform, DummyCustomPlatform) + assert platform.name == "dummy_custom" + ev = platform.get_env_vars() + assert ev.replace == {"DUMMY_CUSTOM_PLATFORM": "1"} + + def test_resolve_name_mismatch_raises(self): + from easi.simulators.registry import resolve_render_platform + + # Patch the dummy entry to map "wrong_name" to the DummyCustomPlatform class + # (which has name "dummy_custom", not "wrong_name") + with patch("easi.simulators.registry._get_registry") as mock_reg: + from easi.simulators.registry import SimulatorEntry + + fake_entry = SimulatorEntry( + name="fake", version="v1", description="", + simulator_class="", env_manager_class="", + python_version="3.10", + render_platforms={ + "wrong_name": "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" + }, + ) + mock_reg.return_value = {"fake:v1": fake_entry} + with pytest.raises(ValueError, match="expected 'wrong_name'"): + resolve_render_platform("fake:v1", "wrong_name") + + def test_custom_shadows_builtin(self): + """A custom 'headless' class should be returned instead of the built-in.""" + from easi.core.render_platform import HeadlessPlatform + from easi.simulators.registry import resolve_render_platform + + with patch("easi.simulators.registry._get_registry") as mock_reg: + from easi.simulators.registry import SimulatorEntry + + fake_entry = SimulatorEntry( + name="fake", version="v1", description="", + simulator_class="", env_manager_class="", + python_version="3.10", + render_platforms={ + "headless": "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" + }, + ) + mock_reg.return_value = {"fake:v1": fake_entry} + # DummyCustomPlatform.name is "dummy_custom", not "headless", + # so this should raise a name mismatch error. + # To truly shadow, we need a class whose name IS "headless". + # Let's test the lookup path: if a custom class is found, it's used. + # We'll patch _import_class to return a class with name "headless". + from easi.core.render_platform import EnvVars + + class CustomHeadless(HeadlessPlatform): + def get_env_vars(self): + return EnvVars(replace={"CUSTOM": "1"}) + + with patch("easi.simulators.registry._import_class", return_value=CustomHeadless): + platform = resolve_render_platform("fake:v1", "headless") + assert isinstance(platform, CustomHeadless) + assert platform.name == "headless" + assert platform.get_env_vars().replace == {"CUSTOM": "1"} + + from unittest.mock import MagicMock @@ -495,6 +585,7 @@ def _make_mock_task(self, render_platform=None): return task def test_default_uses_env_manager_platform(self): + from easi.core.render_platform import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -507,6 +598,8 @@ def test_default_uses_env_manager_platform(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") @@ -514,6 +607,7 @@ def test_default_uses_env_manager_platform(self): assert rp.name == "auto" def test_cli_override_wins(self): + from easi.core.render_platform import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -526,6 +620,8 @@ def test_cli_override_wins(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") @@ -533,6 +629,7 @@ def test_cli_override_wins(self): assert rp.name == "xvfb" def test_yaml_override_used_when_no_cli(self): + from easi.core.render_platform import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -546,6 +643,8 @@ def test_yaml_override_used_when_no_cli(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) @@ -553,6 +652,7 @@ def test_yaml_override_used_when_no_cli(self): assert rp.name == "egl" def test_cli_beats_yaml(self): + from easi.core.render_platform import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -566,6 +666,8 @@ def test_cli_beats_yaml(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) @@ -573,6 +675,7 @@ def test_cli_beats_yaml(self): assert rp.name == "xvfb" def test_unsupported_platform_raises(self): + from easi.core.render_platform import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -586,6 +689,8 @@ def test_unsupported_platform_raises(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ + patch("easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name: get_render_platform(name)), \ pytest.raises(ValueError, match="not supported"): runner._create_simulator("fake:v1") From 2c211703c84111f0ee271a19273488f66e10377e Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 14:58:28 +0800 Subject: [PATCH 087/239] feat: move CoppeliaSim platform-specific env vars to custom render platform classes Pass env_manager to custom render platform constructors so they can compute simulator-specific paths (QT_QPA_PLATFORM_PLUGIN_PATH, Mesa EGL vendor). This moves platform-conditional logic out of env_manager into dedicated CoppeliaSimNative/Xvfb/AutoPlatform classes, keeping the env_manager focused on platform-agnostic vars (COPPELIASIM_ROOT, LD_LIBRARY_PATH). --- easi/cli.py | 2 +- easi/core/render_platform.py | 3 + easi/evaluation/runner.py | 2 +- easi/simulators/coppeliasim/manifest.yaml | 4 + .../coppeliasim/v4_1_0/env_manager.py | 24 ++-- .../coppeliasim/v4_1_0/render_platforms.py | 82 +++++++++++ easi/simulators/registry.py | 5 +- tests/test_coppeliasim_simulator.py | 7 +- tests/test_env_vars_wiring.py | 4 +- tests/test_installation_kwargs.py | 2 +- tests/test_render_platform.py | 128 ++++++++++++++++-- 11 files changed, 229 insertions(+), 34 deletions(-) create mode 100644 easi/simulators/coppeliasim/v4_1_0/render_platforms.py diff --git a/easi/cli.py b/easi/cli.py index 293ae9d..27c2d8c 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -274,7 +274,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam platform_name, simulator, env_manager.supported_render_platforms, ) sys.exit(1) - render_platform = resolve_render_platform(simulator, platform_name) + render_platform = resolve_render_platform(simulator, platform_name, env_manager=env_manager) logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py index 82c8e23..210061d 100644 --- a/easi/core/render_platform.py +++ b/easi/core/render_platform.py @@ -66,6 +66,9 @@ def merge(cls, *env_vars: EnvVars) -> EnvVars: class RenderPlatform(ABC): """Strategy interface for display/rendering backends.""" + def __init__(self, env_manager=None): + self._env_manager = env_manager + @property @abstractmethod def name(self) -> str: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 413df65..f4a3642 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -607,7 +607,7 @@ def _create_simulator(self, simulator_key: str, task=None): f"Supported: {env_manager.supported_render_platforms}" ) - render_platform = resolve_render_platform(simulator_key, platform_name) + render_platform = resolve_render_platform(simulator_key, platform_name, env_manager=env_manager) # Pass platform name to get_env_vars for conditional logic from easi.core.render_platform import EnvVars diff --git a/easi/simulators/coppeliasim/manifest.yaml b/easi/simulators/coppeliasim/manifest.yaml index 884d2f2..fbb57f2 100644 --- a/easi/simulators/coppeliasim/manifest.yaml +++ b/easi/simulators/coppeliasim/manifest.yaml @@ -7,6 +7,10 @@ versions: simulator_class: "easi.simulators.coppeliasim.v4_1_0.simulator.CoppeliaSimSimulatorV410" env_manager_class: "easi.simulators.coppeliasim.v4_1_0.env_manager.CoppeliaSimEnvManagerV410" python_version: "3.10" + render_platforms: + auto: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimAutoPlatform" + native: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimNativePlatform" + xvfb: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimXvfbPlatform" installation_kwargs: binary_url: "https://downloads.coppeliarobotics.com/V4_1_0/CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" binary_filename: "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index 59aef3e..5549c27 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -58,7 +58,11 @@ def get_validation_import(self) -> str: return "from pyrep import PyRep; print('PyRep OK')" def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: - """Return CoppeliaSim env vars for bridge subprocess.""" + """Return platform-agnostic CoppeliaSim env vars for bridge subprocess. + + Platform-specific vars (QT_QPA_PLATFORM_PLUGIN_PATH, __EGL_VENDOR_LIBRARY_FILENAMES) + are handled by custom render platform classes in render_platforms.py. + """ binary_dir_name = self.installation_kwargs.get("binary_dir_name", "") if not binary_dir_name: return EnvVars() @@ -69,20 +73,10 @@ def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: # Include conda env lib dir so fontconfig/freetype/Qt deps resolve conda_lib = self._resolve_template("{env_dir}/lib", t) ld_path = f"{coppeliasim_root}:{conda_lib}" - replace: dict[str, str] = { - "COPPELIASIM_ROOT": coppeliasim_root, - } - prepend: dict[str, str] = { - "LD_LIBRARY_PATH": ld_path, - "QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root, - } - # Force Mesa EGL vendor for Xvfb (NVIDIA EGL crashes Xvfb on some systems). - # Skip when using the EGL platform — it handles __EGL_VENDOR_LIBRARY_FILENAMES itself. - if render_platform_name != "egl": - mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") - if mesa_vendor.exists(): - replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) - return EnvVars(replace=replace, prepend=prepend) + return EnvVars( + replace={"COPPELIASIM_ROOT": coppeliasim_root}, + prepend={"LD_LIBRARY_PATH": ld_path}, + ) def post_install(self, context: dict) -> None: """Download CoppeliaSim, build PyRep, copy lua addon. diff --git a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py new file mode 100644 index 0000000..2ae6f1c --- /dev/null +++ b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py @@ -0,0 +1,82 @@ +"""Custom render platforms for CoppeliaSim V4.1.0. + +CoppeliaSim needs simulator-specific env vars (QT_QPA_PLATFORM_PLUGIN_PATH, +__EGL_VENDOR_LIBRARY_FILENAMES) that depend on the CoppeliaSim binary location. +These custom platforms compute the correct paths from the env_manager. +""" + +from __future__ import annotations + +import os +from pathlib import Path + +from easi.core.render_platform import ( + AutoPlatform, + EnvVars, + NativePlatform, + XvfbPlatform, +) + + +def _coppeliasim_xvfb_env_vars(env_manager) -> EnvVars: + """Compute CoppeliaSim env vars needed when running under Xvfb. + + Returns EnvVars with: + - QT_QPA_PLATFORM_PLUGIN_PATH prepended to coppeliasim_root + (bundled Qt plugins needed when no system display) + - __EGL_VENDOR_LIBRARY_FILENAMES set to Mesa vendor + (NVIDIA EGL crashes Xvfb on some systems) + """ + if env_manager is None: + return EnvVars() + binary_dir_name = env_manager.installation_kwargs.get("binary_dir_name", "") + if not binary_dir_name: + return EnvVars() + t = env_manager._get_template_variables() + coppeliasim_root = env_manager._resolve_template( + "{extras_dir}/" + binary_dir_name, t + ) + replace: dict[str, str] = {} + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return EnvVars( + replace=replace, + prepend={"QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root}, + ) + + +class CoppeliaSimNativePlatform(NativePlatform): + """Native display for CoppeliaSim — no bundled Qt plugins, no Mesa override.""" + + @property + def name(self) -> str: + return "native" + + +class CoppeliaSimXvfbPlatform(XvfbPlatform): + """Xvfb platform for CoppeliaSim — sets Qt plugin path + Mesa EGL vendor.""" + + @property + def name(self) -> str: + return "xvfb" + + def get_env_vars(self) -> EnvVars: + return _coppeliasim_xvfb_env_vars(self._env_manager) + + +class CoppeliaSimAutoPlatform(AutoPlatform): + """Auto-detect for CoppeliaSim — native if DISPLAY, xvfb otherwise. + + Env vars follow the same split: native mode skips Qt plugin path, + xvfb mode prepends it. + """ + + @property + def name(self) -> str: + return "auto" + + def get_env_vars(self) -> EnvVars: + if os.environ.get("DISPLAY", ""): + return EnvVars() + return _coppeliasim_xvfb_env_vars(self._env_manager) diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 2f92c0a..39c126f 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -135,12 +135,13 @@ def create_env_manager(key: str): return cls(installation_kwargs=entry.installation_kwargs) -def resolve_render_platform(key: str, platform_name: str): +def resolve_render_platform(key: str, platform_name: str, env_manager=None): """Resolve a render platform, checking simulator manifest first, then built-ins. Args: key: Simulator registry key (e.g. "coppeliasim:v4_1_0" or "coppeliasim"). platform_name: Platform name (e.g. "xvfb", "isaac_headless"). + env_manager: Optional env manager instance, passed to custom platform constructors. Returns: Instantiated RenderPlatform. @@ -152,7 +153,7 @@ def resolve_render_platform(key: str, platform_name: str): if custom_class_path: cls = _import_class(custom_class_path) - instance = cls() + instance = cls(env_manager=env_manager) if instance.name != platform_name: raise ValueError( f"Custom render platform class '{custom_class_path}' has " diff --git a/tests/test_coppeliasim_simulator.py b/tests/test_coppeliasim_simulator.py index 086251b..e1bacb5 100644 --- a/tests/test_coppeliasim_simulator.py +++ b/tests/test_coppeliasim_simulator.py @@ -93,10 +93,12 @@ def test_env_vars_has_ld_library_path(self): mgr = create_env_manager("coppeliasim") assert "LD_LIBRARY_PATH" in mgr.get_env_vars().prepend - def test_env_vars_has_qt_platform(self): + def test_env_vars_no_qt_platform(self): + """QT_QPA_PLATFORM_PLUGIN_PATH is now handled by custom render platform classes.""" from easi.simulators.registry import create_env_manager mgr = create_env_manager("coppeliasim") - assert "QT_QPA_PLATFORM_PLUGIN_PATH" in mgr.get_env_vars().prepend + ev = mgr.get_env_vars() + assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in ev.prepend def test_env_vars_no_unresolved_templates(self): from easi.simulators.registry import create_env_manager @@ -116,7 +118,6 @@ def test_ld_library_path_includes_coppeliasim_root(self): mgr = create_env_manager("coppeliasim") ev = mgr.get_env_vars() assert ev.replace["COPPELIASIM_ROOT"] in ev.prepend["LD_LIBRARY_PATH"] - assert ev.replace["COPPELIASIM_ROOT"] == ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] def test_ld_library_path_includes_conda_lib(self): from easi.simulators.registry import create_env_manager diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index c768ee9..5178802 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -32,7 +32,7 @@ def test_runner_passes_env_vars_to_subprocess(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None @@ -67,7 +67,7 @@ def test_runner_passes_none_when_no_env_vars(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 1351a05..0f1578d 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -75,7 +75,7 @@ def test_runner_passes_installation_kwargs(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr) as mock_factory, \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: mock_runner_instance = MockRunner.return_value mock_runner_instance.launch.return_value = None diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 5339be4..86952e7 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -412,14 +412,21 @@ def test_coppeliasim(self): assert mgr.default_render_platform == "auto" assert mgr.screen_config == "1280x720x24" - def test_coppeliasim_egl_skips_mesa_vendor(self): - """When render_platform is 'egl', CoppeliaSim should NOT set __EGL_VENDOR_LIBRARY_FILENAMES.""" + def test_coppeliasim_env_vars_are_platform_agnostic(self): + """CoppeliaSim env_manager should NOT set QT_QPA_PLATFORM_PLUGIN_PATH or __EGL_VENDOR_LIBRARY_FILENAMES. + + Those platform-specific vars are now handled by custom render platform classes. + """ from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 - mgr = CoppeliaSimEnvManagerV410() - ev = mgr.get_env_vars(render_platform_name="egl") + mgr = CoppeliaSimEnvManagerV410(installation_kwargs={"binary_dir_name": "CoppeliaSim"}) + ev = mgr.get_env_vars() all_keys = set(ev.replace) | set(ev.prepend) + assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in all_keys assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in all_keys + # Should still have the platform-agnostic vars + assert "COPPELIASIM_ROOT" in ev.replace + assert "LD_LIBRARY_PATH" in ev.prepend def test_tdw(self): from easi.simulators.tdw.v1_11_23.env_manager import TDWEnvManager @@ -530,6 +537,109 @@ def get_env_vars(self): assert platform.get_env_vars().replace == {"CUSTOM": "1"} +class TestCoppeliaSimCustomPlatforms: + """Test CoppeliaSim-specific custom render platform classes.""" + + def _make_mock_env_manager(self, binary_dir_name="CoppeliaSim"): + from unittest.mock import MagicMock + + mgr = MagicMock() + mgr.installation_kwargs = {"binary_dir_name": binary_dir_name} + mgr._get_template_variables.return_value = { + "env_dir": "/fake/envs/easi_coppeliasim_v4_1_0", + "extras_dir": "/fake/envs/easi_coppeliasim_v4_1_0/extras", + } + mgr._resolve_template.side_effect = lambda tmpl, t: tmpl.replace( + "{extras_dir}", t["extras_dir"] + ).replace("{env_dir}", t["env_dir"]) + return mgr + + def test_native_no_qt_plugin_path(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimNativePlatform, + ) + + mgr = self._make_mock_env_manager() + p = CoppeliaSimNativePlatform(env_manager=mgr) + assert p.name == "native" + ev = p.get_env_vars() + assert not ev # native platform returns empty env vars + + def test_xvfb_has_qt_plugin_path(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXvfbPlatform, + ) + + mgr = self._make_mock_env_manager() + p = CoppeliaSimXvfbPlatform(env_manager=mgr) + assert p.name == "xvfb" + ev = p.get_env_vars() + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] + + def test_xvfb_wraps_command(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXvfbPlatform, + ) + + p = CoppeliaSimXvfbPlatform() + cmd = ["python", "bridge.py"] + wrapped = p.wrap_command(cmd, "1280x720x24") + assert wrapped[0] == "xvfb-run" + + def test_auto_native_when_display(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimAutoPlatform, + ) + + mgr = self._make_mock_env_manager() + p = CoppeliaSimAutoPlatform(env_manager=mgr) + assert p.name == "auto" + with patch.dict(os.environ, {"DISPLAY": ":0"}): + ev = p.get_env_vars() + assert not ev # native mode: no Qt plugin path + + def test_auto_xvfb_when_no_display(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimAutoPlatform, + ) + + mgr = self._make_mock_env_manager() + p = CoppeliaSimAutoPlatform(env_manager=mgr) + env = os.environ.copy() + env.pop("DISPLAY", None) + with patch.dict(os.environ, env, clear=True): + ev = p.get_env_vars() + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + + def test_xvfb_no_env_manager_returns_empty(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXvfbPlatform, + ) + + p = CoppeliaSimXvfbPlatform() # no env_manager + ev = p.get_env_vars() + assert not ev + + def test_manifest_registers_custom_platforms(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("coppeliasim:v4_1_0") + assert "auto" in entry.render_platforms + assert "native" in entry.render_platforms + assert "xvfb" in entry.render_platforms + + def test_resolve_coppeliasim_custom_platform(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimAutoPlatform, + ) + from easi.simulators.registry import resolve_render_platform + + platform = resolve_render_platform("coppeliasim:v4_1_0", "auto") + assert isinstance(platform, CoppeliaSimAutoPlatform) + assert platform.name == "auto" + + from unittest.mock import MagicMock @@ -599,7 +709,7 @@ def test_default_uses_env_manager_platform(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") @@ -621,7 +731,7 @@ def test_cli_override_wins(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") @@ -644,7 +754,7 @@ def test_yaml_override_used_when_no_cli(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) @@ -667,7 +777,7 @@ def test_cli_beats_yaml(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) @@ -690,7 +800,7 @@ def test_unsupported_platform_raises(self): with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name: get_render_platform(name)), \ + side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ pytest.raises(ValueError, match="not supported"): runner._create_simulator("fake:v1") From 1b6c8a3c9b3ef7c4a289b633bccbc64de95ae723 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 14:23:56 +0800 Subject: [PATCH 088/239] [Feat] Add option to add object state history to prompt --- easi/tasks/hazard/_base.yaml | 1 + easi/tasks/hazard/bridge.py | 7 +++++++ easi/tasks/hazard/prompts.py | 39 +++++++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/easi/tasks/hazard/_base.yaml b/easi/tasks/hazard/_base.yaml index 7ad108b..b5d4993 100644 --- a/easi/tasks/hazard/_base.yaml +++ b/easi/tasks/hazard/_base.yaml @@ -25,6 +25,7 @@ agent: prompt_builder: "easi.tasks.hazard.prompts.HAZARDPromptBuilder" prompt_builder_kwargs: cot: false + show_object_history: false # Set to true to show temperature/water level changes over time generation_kwargs: temperature: 0.7 max_tokens: 512 diff --git a/easi/tasks/hazard/bridge.py b/easi/tasks/hazard/bridge.py index d4a491e..b46cae5 100644 --- a/easi/tasks/hazard/bridge.py +++ b/easi/tasks/hazard/bridge.py @@ -338,6 +338,12 @@ def _on_step(self, env, action_text): if values: env_record_snapshot[obj_id] = values[-1] + # Full history for object state history section + env_record_history = {} + for obj_id, values in self._env_change_record.items(): + if values: + env_record_history[obj_id] = values + # Build info info = { "task_success": float(all_targets_done), @@ -361,6 +367,7 @@ def _on_step(self, env, action_text): "current_seen_objects_id": json.dumps(self.current_seen_objects_id), "object_distances": json.dumps(object_distances), "env_change_record": json.dumps(env_record_snapshot), + "env_change_record_history": json.dumps(env_record_history), "target_categories": json.dumps(self.target_categories), } diff --git a/easi/tasks/hazard/prompts.py b/easi/tasks/hazard/prompts.py index 3062aba..3ce351a 100644 --- a/easi/tasks/hazard/prompts.py +++ b/easi/tasks/hazard/prompts.py @@ -46,9 +46,11 @@ def __init__( self, scenario: str = "fire", cot: bool = False, + show_object_history: bool = False, ): self.scenario = scenario self.cot = cot + self.show_object_history = show_object_history self._templates = _load_prompt_templates() self._value_dict = json.loads((_CONFIG_DIR / "value.json").read_text()) self._fire_dict = json.loads((_CONFIG_DIR / "fire.json").read_text()) @@ -76,8 +78,8 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: # Build action history (from memory, matching original format) history_desc = self._build_action_history(memory) - # Build object state history (empty -- original bug, see docstring) - object_history = self._build_object_state_history() + # Build object state history (tracking temperature/water level changes) + object_history = self._build_object_state_history(info) # Build available actions actions_desc = self._build_available_actions(available_plans) @@ -302,14 +304,37 @@ def _action_result_to_description(feedback: str) -> str: return "paused after taking 100 steps" return f"fail, because {feedback}" - def _build_object_state_history(self) -> str: + def _build_object_state_history(self, info: dict) -> str: """Build object state history section. - NOTE: In the original llm.py:run(), $OBJECT_HISTORY$ is never replaced - -- it remains as literal text in the prompt. This is a bug in the original. - We replicate by returning empty string (slightly better than literal placeholder). + Shows how object temperature/water_level has changed over time. + Format: "Object : -> -> Celsius" + + Controlled by show_object_history config (default: False for benchmark parity). """ - return "" + if not self.show_object_history: + return "" + + history = json.loads(info.get("env_change_record_history", "{}")) + if not history: + return "" + + lines = [] + for obj_id, values in history.items(): + if len(values) <= 1: + continue # No change to report + if self.scenario == "fire": + # Convert log_temp to Celsius and show progression + temps = [round(math.exp(v), 1) for v in values[-5:]] # Last 5 readings + progression = " -> ".join(str(t) for t in temps) + lines.append(f"Object {obj_id}: {progression} Celsius") + elif self.scenario == "flood": + # Show water level progression + levels = [round(v, 2) for v in values[-5:]] + progression = " -> ".join(str(l) for l in levels) + lines.append(f"Object {obj_id}: water level {progression} m") + + return "\n".join(lines) def _build_available_actions(self, plans: list[str]) -> str: """Format available plans as lettered options.""" From 3c33f6e8a39de9f985be4582dad867f8041d14ed Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 15:01:25 +0800 Subject: [PATCH 089/239] chore: add yolo11n.pt to gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0b654ac..3822a37 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ __pycache__/ /results /BEHAVIOR-1K .worktrees/ -/docs/plans \ No newline at end of file +/docs/plans +yolo11n.pt \ No newline at end of file From d97a8159eca9eef0e2270c9457e50a1d3926cc90 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 15:41:28 +0800 Subject: [PATCH 090/239] fix: always set Qt plugin path and control CoppeliaSim headless via platform env var MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CoppeliaSim needs QT_QPA_PLATFORM_PLUGIN_PATH for its bundled Qt plugins regardless of display mode — the NativePlatform was wrongly returning empty env vars, causing Qt initialization failures. Additionally, each platform class now sets COPPELIASIM_HEADLESS so the bridge uses CoppeliaSim's internal headless renderer on servers (where xvfb is only needed for Qt plugin loading), and GUI mode only when a real display is present. --- .../coppeliasim/v4_1_0/render_platforms.py | 70 ++++++++++++++----- easi/tasks/ebmanipulation/bridge.py | 9 +++ tests/test_render_platform.py | 13 ++-- 3 files changed, 69 insertions(+), 23 deletions(-) diff --git a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py index 2ae6f1c..2d7e802 100644 --- a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py +++ b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py @@ -3,6 +3,12 @@ CoppeliaSim needs simulator-specific env vars (QT_QPA_PLATFORM_PLUGIN_PATH, __EGL_VENDOR_LIBRARY_FILENAMES) that depend on the CoppeliaSim binary location. These custom platforms compute the correct paths from the env_manager. + +Additionally, each platform sets COPPELIASIM_HEADLESS so the bridge can +start CoppeliaSim in the correct mode: +- native: headless=False (user has a real display and wants GUI) +- xvfb: headless=True (xvfb is only for Qt plugins, not CoppeliaSim rendering) +- auto: headless=False if DISPLAY, True otherwise """ from __future__ import annotations @@ -18,14 +24,23 @@ ) -def _coppeliasim_xvfb_env_vars(env_manager) -> EnvVars: - """Compute CoppeliaSim env vars needed when running under Xvfb. +def _coppeliasim_qt_env_vars( + env_manager, *, include_mesa_egl: bool = False, headless: bool = True, +) -> EnvVars: + """Compute CoppeliaSim Qt env vars. + + CoppeliaSim always needs QT_QPA_PLATFORM_PLUGIN_PATH to find its bundled + Qt plugins (libqxcb.so, etc.), regardless of display mode. - Returns EnvVars with: - - QT_QPA_PLATFORM_PLUGIN_PATH prepended to coppeliasim_root - (bundled Qt plugins needed when no system display) - - __EGL_VENDOR_LIBRARY_FILENAMES set to Mesa vendor - (NVIDIA EGL crashes Xvfb on some systems) + Args: + env_manager: The CoppeliaSimEnvManager instance. + include_mesa_egl: If True, also set __EGL_VENDOR_LIBRARY_FILENAMES + to Mesa vendor (needed for Xvfb; NVIDIA EGL crashes Xvfb). + headless: Whether CoppeliaSim should use its headless renderer. + + Returns: + EnvVars with QT_QPA_PLATFORM_PLUGIN_PATH, COPPELIASIM_HEADLESS, + and optionally Mesa EGL. """ if env_manager is None: return EnvVars() @@ -36,10 +51,13 @@ def _coppeliasim_xvfb_env_vars(env_manager) -> EnvVars: coppeliasim_root = env_manager._resolve_template( "{extras_dir}/" + binary_dir_name, t ) - replace: dict[str, str] = {} - mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") - if mesa_vendor.exists(): - replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + replace: dict[str, str] = { + "COPPELIASIM_HEADLESS": "1" if headless else "0", + } + if include_mesa_egl: + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) return EnvVars( replace=replace, prepend={"QT_QPA_PLATFORM_PLUGIN_PATH": coppeliasim_root}, @@ -47,29 +65,40 @@ def _coppeliasim_xvfb_env_vars(env_manager) -> EnvVars: class CoppeliaSimNativePlatform(NativePlatform): - """Native display for CoppeliaSim — no bundled Qt plugins, no Mesa override.""" + """Native display for CoppeliaSim — Qt plugin path, no Mesa override, headless=False.""" @property def name(self) -> str: return "native" + def get_env_vars(self) -> EnvVars: + return _coppeliasim_qt_env_vars( + self._env_manager, include_mesa_egl=False, headless=False, + ) + class CoppeliaSimXvfbPlatform(XvfbPlatform): - """Xvfb platform for CoppeliaSim — sets Qt plugin path + Mesa EGL vendor.""" + """Xvfb platform for CoppeliaSim — Qt plugin path + Mesa EGL, headless=True. + + Xvfb provides a virtual X11 display for Qt plugin loading, but CoppeliaSim + itself should use its native headless renderer (libcoppeliaSimHeadless.so). + """ @property def name(self) -> str: return "xvfb" def get_env_vars(self) -> EnvVars: - return _coppeliasim_xvfb_env_vars(self._env_manager) + return _coppeliasim_qt_env_vars( + self._env_manager, include_mesa_egl=True, headless=True, + ) class CoppeliaSimAutoPlatform(AutoPlatform): """Auto-detect for CoppeliaSim — native if DISPLAY, xvfb otherwise. - Env vars follow the same split: native mode skips Qt plugin path, - xvfb mode prepends it. + Both modes need Qt plugin path. Only xvfb needs Mesa EGL override. + Headless follows display: False with real display, True without. """ @property @@ -77,6 +106,9 @@ def name(self) -> str: return "auto" def get_env_vars(self) -> EnvVars: - if os.environ.get("DISPLAY", ""): - return EnvVars() - return _coppeliasim_xvfb_env_vars(self._env_manager) + has_display = bool(os.environ.get("DISPLAY", "")) + return _coppeliasim_qt_env_vars( + self._env_manager, + include_mesa_egl=not has_display, + headless=not has_display, + ) diff --git a/easi/tasks/ebmanipulation/bridge.py b/easi/tasks/ebmanipulation/bridge.py index 1897d40..44960a0 100644 --- a/easi/tasks/ebmanipulation/bridge.py +++ b/easi/tasks/ebmanipulation/bridge.py @@ -19,6 +19,7 @@ from __future__ import annotations import json +import os import sys from pathlib import Path @@ -82,6 +83,13 @@ def _create_env(self, reset_config, simulator_kwargs): scene_bounds = simulator_kwargs.get( "scene_bounds", [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] ) + # COPPELIASIM_HEADLESS is set by CoppeliaSim's custom render platform classes. + # Falls back to simulator_kwargs, then defaults to True (EBManEnv default). + headless_env = os.environ.get("COPPELIASIM_HEADLESS") + if headless_env is not None: + headless = headless_env != "0" + else: + headless = simulator_kwargs.get("headless", True) self._resolution = resolution self._detection_box = simulator_kwargs.get("detection_box", True) @@ -92,6 +100,7 @@ def _create_env(self, reset_config, simulator_kwargs): scene_bounds=scene_bounds, voxel_size=voxel_size, rotation_resolution=rotation_resolution, + headless=headless, ) def _on_reset(self, env, reset_config): diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 86952e7..ba663cf 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -554,7 +554,7 @@ def _make_mock_env_manager(self, binary_dir_name="CoppeliaSim"): ).replace("{env_dir}", t["env_dir"]) return mgr - def test_native_no_qt_plugin_path(self): + def test_native_has_qt_plugin_path_and_headless_false(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( CoppeliaSimNativePlatform, ) @@ -563,9 +563,11 @@ def test_native_no_qt_plugin_path(self): p = CoppeliaSimNativePlatform(env_manager=mgr) assert p.name == "native" ev = p.get_env_vars() - assert not ev # native platform returns empty env vars + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace - def test_xvfb_has_qt_plugin_path(self): + def test_xvfb_has_qt_plugin_path_and_headless_true(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( CoppeliaSimXvfbPlatform, ) @@ -576,6 +578,7 @@ def test_xvfb_has_qt_plugin_path(self): ev = p.get_env_vars() assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] + assert ev.replace["COPPELIASIM_HEADLESS"] == "1" def test_xvfb_wraps_command(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( @@ -597,7 +600,8 @@ def test_auto_native_when_display(self): assert p.name == "auto" with patch.dict(os.environ, {"DISPLAY": ":0"}): ev = p.get_env_vars() - assert not ev # native mode: no Qt plugin path + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" def test_auto_xvfb_when_no_display(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( @@ -611,6 +615,7 @@ def test_auto_xvfb_when_no_display(self): with patch.dict(os.environ, env, clear=True): ev = p.get_env_vars() assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert ev.replace["COPPELIASIM_HEADLESS"] == "1" def test_xvfb_no_env_manager_returns_empty(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( From db88011b75f8a464ebbfb789fc6d6278e6143b84 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 15:45:28 +0800 Subject: [PATCH 091/239] fix: commit files --- easi/tasks/ebmanipulation/_base.yaml | 2 -- easi/tasks/ebmanipulation/vendor/EBManEnv.py | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/easi/tasks/ebmanipulation/_base.yaml b/easi/tasks/ebmanipulation/_base.yaml index d48d255..580c15f 100644 --- a/easi/tasks/ebmanipulation/_base.yaml +++ b/easi/tasks/ebmanipulation/_base.yaml @@ -24,8 +24,6 @@ simulator_configs: - "gymnasium" - "ultralytics" - "open3d" - env_vars: - QT_QPA_PLATFORM: "xcb" agent: prompt_builder: "easi.tasks.ebmanipulation.prompts.EBManipulationPromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ebmanipulation/vendor/EBManEnv.py b/easi/tasks/ebmanipulation/vendor/EBManEnv.py index 303205f..9b0804e 100644 --- a/easi/tasks/ebmanipulation/vendor/EBManEnv.py +++ b/easi/tasks/ebmanipulation/vendor/EBManEnv.py @@ -42,13 +42,14 @@ def __init__( scene_bounds: list[float] | None = None, voxel_size: int = 100, rotation_resolution: int = 3, + headless: bool = True, ): obs_config = ObservationConfig() obs_config.set_all(True) obs_config.set_image_size(img_size) action_mode = ActionMode(ArmActionMode.ABS_EE_POSE_PLAN_WORLD_FRAME) - self.env = Environment(action_mode, obs_config=obs_config, headless=True) + self.env = Environment(action_mode, obs_config=obs_config, headless=headless) self.env.launch() self._max_episode_steps = max_steps From e98c3814c756901d264ecfb17e263963699a0366 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 15:55:30 +0800 Subject: [PATCH 092/239] chore: remove redundant comments --- easi/core/base_env_manager.py | 12 ++++---- easi/evaluation/parallel_runner.py | 30 +++++++++---------- .../coppeliasim/v4_1_0/env_manager.py | 10 +++---- .../omnigibson/v3_7_2/env_manager.py | 14 ++++----- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index da55553..5cb68e6 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -202,10 +202,10 @@ def _do_install(self) -> None: env_name = self.get_env_name() logger.info("Installing environment %s for %s %s", env_name, self.simulator_name, self.version) - # Step 1: Check system deps + # Check system deps self._dep_checker.assert_all(self.get_system_deps()) - # Step 2: Create/update conda env + # Create/update conda env conda_yaml = self.get_conda_env_yaml_path() if conda_yaml.exists(): with spinner(f"Creating conda environment {env_name}"): @@ -213,12 +213,12 @@ def _do_install(self) -> None: else: logger.warning("No conda_env.yaml found at %s, skipping conda setup", conda_yaml) - # Step 3: Install uv in the conda env + # Install uv in the conda env python_exec = self.get_python_executable() with spinner("Installing uv"): self._run_command([python_exec, "-m", "pip", "install", "uv"], "pip install uv") - # Step 4: Install Python deps via uv + # Install Python deps via uv requirements = self.get_requirements_txt_path() if requirements.exists(): with spinner("Installing Python dependencies"): @@ -229,10 +229,10 @@ def _do_install(self) -> None: else: logger.warning("No requirements.txt found at %s, skipping uv install", requirements) - # Step 5: Run post-install hook (binary downloads, file copies, etc.) + # Run post-install hook (binary downloads, file copies, etc.) self._run_post_install() - # Step 6: Validate (with env vars so e.g. LD_LIBRARY_PATH is set) + # Validate (with env vars so e.g. LD_LIBRARY_PATH is set) env_vars = self.get_env_vars() validation_env = None if env_vars: diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index b1599ed..a1f5f0e 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -56,8 +56,8 @@ def run(self) -> list[dict]: "Start vLLM externally and pass --llm-url." ) - # --- Phase 1: Load task --- - logger.trace("Phase 1: Loading task") + # --- Load task --- + logger.trace("Loading task") task = self._create_task() if self.refresh_data: task.download_dataset(force=True) @@ -65,12 +65,12 @@ def run(self) -> list[dict]: if self.max_episodes is not None: episodes = episodes[: self.max_episodes] logger.trace( - "Phase 1: Task loaded. %d episodes, simulator_key=%s", + "Task loaded. %d episodes, simulator_key=%s", len(episodes), task.simulator_key, ) - # --- Phase 2: Resolve LLM backend + handle resume --- - logger.trace("Phase 2: Resolved LLM backend=%s, base_url=%s", backend, base_url) + # --- Resolve LLM backend + handle resume --- + logger.trace("Resolved LLM backend=%s, base_url=%s", backend, base_url) # Compute resolved generation kwargs (YAML defaults + CLI overrides) from easi.llm.utils import parse_llm_kwargs, split_kwargs @@ -96,8 +96,8 @@ def run(self) -> list[dict]: completed_results = [] start_index = 0 - # --- Phase 3: Create output directory and save config --- - logger.trace("Phase 3: Creating output directory and saving config") + # --- Create output directory and save config --- + logger.trace("Creating output directory and saving config") episodes_dir = run_dir / "episodes" episodes_dir.mkdir(parents=True, exist_ok=True) @@ -118,19 +118,19 @@ def run(self) -> list[dict]: if start_index >= len(episodes): logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) all_results = completed_results - # Skip to aggregation (Phase 7) + # Skip to aggregation wall_seconds = 0.0 results_list = [(i, r) for i, r in enumerate(all_results)] else: - # --- Phase 4: Fill episode queue (from start_index) --- + # --- Fill episode queue (from start_index) --- episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() for i, episode in enumerate(episodes): if i >= start_index: episode_queue.put((i, episode)) remaining = episode_queue.qsize() - logger.trace("Phase 4: Queued %d episodes (skipped %d completed)", remaining, start_index) + logger.trace("Queued %d episodes (skipped %d completed)", remaining, start_index) - # --- Phase 5: Prepare thread-safe collection --- + # --- Prepare thread-safe collection --- results_lock = threading.Lock() new_results: list[tuple[int, dict]] = [] progress = {"completed": 0, "failed": 0} @@ -274,8 +274,8 @@ def _worker(worker_id: int) -> None: worker_id, episodes_done, ) - # --- Phase 6: Launch worker threads --- - logger.trace("Phase 6: Launching %d worker threads", num_workers) + # --- Launch worker threads --- + logger.trace("Launching %d worker threads", num_workers) wall_start = time.monotonic() with ThreadPoolExecutor(max_workers=num_workers) as executor: @@ -295,14 +295,14 @@ def _worker(worker_id: int) -> None: results_list = [(i, r) for i, r in enumerate(completed_results)] results_list.extend(new_results) - # --- Phase 7: Sort results and aggregate --- + # --- Sort results and aggregate --- results_list.sort(key=lambda x: x[0]) all_results = [r for _, r in results_list] num_successful = sum(1 for r in all_results if "error" not in r) num_failed = len(all_results) - num_successful logger.trace( - "Phase 7: Results sorted. %d successful, %d failed", + "Results sorted. %d successful, %d failed", num_successful, num_failed, ) diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index 5549c27..9ef2e50 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -96,7 +96,7 @@ def post_install(self, context: dict) -> None: pyrep_git_url = self.installation_kwargs.get("pyrep_git_url") lua_addon_script = self.installation_kwargs.get("lua_addon_script") - # Step 1: Download + extract CoppeliaSim binary + # Download + extract CoppeliaSim binary if binary_url and binary_filename: logger.info("Downloading CoppeliaSim from %s", binary_url) self._download_and_extract( @@ -105,7 +105,7 @@ def post_install(self, context: dict) -> None: dest_dir=extras_dir, ) - # Step 2: Create versioned symlinks (PyRep links against libcoppeliaSim.so.1) + # Create versioned symlinks (PyRep links against libcoppeliaSim.so.1) if "COPPELIASIM_ROOT" in env_vars: coppeliasim_root = Path(env_vars["COPPELIASIM_ROOT"]) for lib_name in ["libcoppeliaSim.so", "libcoppeliaSimHeadless.so"]: @@ -115,11 +115,11 @@ def post_install(self, context: dict) -> None: symlink.symlink_to(lib_path.name) logger.info("Created symlink %s -> %s", symlink.name, lib_path.name) - # Step 3: Build env dict with COPPELIASIM_ROOT for PyRep's native build + # Build env dict with COPPELIASIM_ROOT for PyRep's native build build_env = os.environ.copy() build_env.update(env_vars) - # Step 3: pip install PyRep (C++ extensions link against CoppeliaSim) + # pip install PyRep (C++ extensions link against CoppeliaSim) if pyrep_git_url: logger.info("Installing PyRep from %s", pyrep_git_url) self._run_command( @@ -128,7 +128,7 @@ def post_install(self, context: dict) -> None: env=build_env, ) - # Step 4: Copy PyRep addon lua script into CoppeliaSim root + # Copy PyRep addon lua script into CoppeliaSim root if lua_addon_script and "COPPELIASIM_ROOT" in env_vars: coppeliasim_root = Path(env_vars["COPPELIASIM_ROOT"]) lua_src = Path(__file__).parent / lua_addon_script diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 48a9fb7..acbe5bb 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -154,27 +154,27 @@ def post_install(self, context: dict) -> None: extras_dir.mkdir(parents=True, exist_ok=True) python = self._get_conda_python() - # Step 1: Git clone BEHAVIOR-1K + # Git clone BEHAVIOR-1K self._clone_behavior_1k(extras_dir) behavior_1k_dir = extras_dir / "BEHAVIOR-1K" - # Step 2: Install PyTorch with CUDA + # Install PyTorch with CUDA self._install_pytorch(python) - # Step 3: Install bddl from cloned repo + # Install bddl from cloned repo self._install_bddl(python, behavior_1k_dir) - # Step 4: Install OmniGibson from cloned repo + # Install OmniGibson from cloned repo self._install_omnigibson(python, behavior_1k_dir) - # Step 5: Download + install Isaac Sim 4.5.0 wheels + # Download + install Isaac Sim 4.5.0 wheels self._install_isaac_sim(python) - # Step 6: Fix websockets conflict in Isaac Sim extscache + # Fix websockets conflict in Isaac Sim extscache self._fix_websockets_conflict(python) - # Step 7: Fix cffi compatibility + # Fix cffi compatibility self._fix_cffi(python) def _clone_behavior_1k(self, extras_dir: Path) -> None: From da099ae6da34ebca5257cbbc4feb49b785cb517d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 16:34:46 +0800 Subject: [PATCH 093/239] fix: removed redundant code --- easi/cli.py | 7 +++++-- easi/core/render_platform.py | 2 ++ easi/evaluation/metrics.py | 18 ------------------ easi/llm/client.py | 2 +- easi/simulators/registry.py | 9 +-------- easi/tasks/ebalfred/json_repair.py | 2 -- easi/tasks/registry.py | 10 +--------- 7 files changed, 10 insertions(+), 40 deletions(-) delete mode 100644 easi/tasks/ebalfred/json_repair.py diff --git a/easi/cli.py b/easi/cli.py index 27c2d8c..83efc64 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -378,7 +378,8 @@ def cmd_start(args): run_kwargs.pop("task_name", None) num_parallel = run_kwargs.pop("num_parallel", None) or 1 - from easi.evaluation.metrics import aggregate_metrics + from easi.core.episode import EpisodeRecord + from easi.evaluation.metrics import default_aggregate all_summaries: list[tuple[str, dict]] = [] @@ -405,7 +406,9 @@ def cmd_start(args): results = runner.run() logger.info("Completed %d episodes for %s.", len(results), task_name) - summary = aggregate_metrics(results) + records = [EpisodeRecord(episode={}, trajectory=[], episode_results=r) for r in results] + summary = {"num_episodes": len(results)} + summary.update(default_aggregate(records)) all_summaries.append((task_name, summary)) for key, value in summary.items(): logger.info(" %s: %s", key, value) diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py index 210061d..be7badf 100644 --- a/easi/core/render_platform.py +++ b/easi/core/render_platform.py @@ -57,6 +57,8 @@ def merge(cls, *env_vars: EnvVars) -> EnvVars: replace: dict[str, str] = {} prepend: dict[str, str] = {} for ev in env_vars: + if ev is None: + continue replace.update(ev.replace) for k, v in ev.prepend.items(): prepend[k] = f"{v}:{prepend[k]}" if k in prepend else v diff --git a/easi/evaluation/metrics.py b/easi/evaluation/metrics.py index 910ea88..100be28 100644 --- a/easi/evaluation/metrics.py +++ b/easi/evaluation/metrics.py @@ -39,21 +39,3 @@ def default_aggregate(records: list[EpisodeRecord]) -> dict: summary["avg_steps"] = summary["avg_num_steps"] return summary - - -def aggregate_metrics(results: list[dict]) -> dict: - """Legacy aggregate function for backward compatibility. - - Wraps default_aggregate() by converting plain dicts to EpisodeRecords. - New code should use task.aggregate_results() directly. - """ - if not results: - return {"num_episodes": 0} - - records = [ - EpisodeRecord(episode={}, trajectory=[], episode_results=r) - for r in results - ] - summary = {"num_episodes": len(results)} - summary.update(default_aggregate(records)) - return summary diff --git a/easi/llm/client.py b/easi/llm/client.py index 8b36a8e..5df6980 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -96,7 +96,7 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> raise self._track_usage(response) - content = response.choices[0].message.content + content = response.choices[0].message.content or "" logger.trace("LLM response: %s", content[:200] if content else "") return content diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 39c126f..95efa38 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -11,12 +11,12 @@ from __future__ import annotations -import importlib from dataclasses import dataclass, field from pathlib import Path import yaml +from easi.utils.import_utils import import_class as _import_class from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -165,13 +165,6 @@ def resolve_render_platform(key: str, platform_name: str, env_manager=None): return get_render_platform(platform_name) -def _import_class(fully_qualified_name: str): - """Import a class from its fully qualified name (e.g., 'pkg.mod.ClassName').""" - module_path, class_name = fully_qualified_name.rsplit(".", 1) - module = importlib.import_module(module_path) - return getattr(module, class_name) - - def refresh() -> None: """Force re-discovery of simulators (useful after adding new ones at runtime).""" global _registry diff --git a/easi/tasks/ebalfred/json_repair.py b/easi/tasks/ebalfred/json_repair.py deleted file mode 100644 index 49dc898..0000000 --- a/easi/tasks/ebalfred/json_repair.py +++ /dev/null @@ -1,2 +0,0 @@ -"""Backward-compatible re-export. Canonical location: easi.utils.json_repair.""" -from easi.utils.json_repair import fix_json # noqa: F401 diff --git a/easi/tasks/registry.py b/easi/tasks/registry.py index 390b86b..6ef86a9 100644 --- a/easi/tasks/registry.py +++ b/easi/tasks/registry.py @@ -10,12 +10,11 @@ from __future__ import annotations -import importlib from dataclasses import dataclass from pathlib import Path from easi.tasks.yaml_utils import resolve_task_yaml - +from easi.utils.import_utils import import_class as _import_class from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -113,13 +112,6 @@ def load_task_class(name: str): return _import_class(entry.task_class) -def _import_class(fully_qualified_name: str): - """Import a class from its fully qualified name.""" - module_path, class_name = fully_qualified_name.rsplit(".", 1) - module = importlib.import_module(module_path) - return getattr(module, class_name) - - def refresh() -> None: """Force re-discovery of tasks.""" global _registry From abf0ac527871264d6d3bfc2620f536d5f7b806ef Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 16:44:18 +0800 Subject: [PATCH 094/239] chore: updated cli reference --- docs/cli-reference.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/docs/cli-reference.md b/docs/cli-reference.md index 402a171..efd3196 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -64,6 +64,7 @@ easi start [TASK ...] [options] | `--num-parallel N` | Parallel simulator instances (default: 1). API backends only. | | `--max-episodes N` | Max episodes to run (default: all) | | `--seed SEED` | Random seed for agent reproducibility | +| `--render-platform PLATFORM` | Rendering platform override (default: simulator's preference). See [Render Platforms](#render-platforms). | ### Data & Output @@ -126,6 +127,10 @@ easi start --resume ./logs/ebalfred_base/20260215_093045_gpt-4o # Force dataset re-download easi start ebalfred_base --agent dummy --refresh-data +# Override render platform (e.g., force native display) +easi start ebmanipulation_base --agent react --backend openai --model gpt-4o \ + --render-platform native + # Verbose logging easi start ebalfred_base --agent dummy --verbosity TRACE ``` @@ -308,7 +313,7 @@ Creates: Run a smoke test on a simulator (reset + N steps). ``` -easi sim test [--steps N] [--timeout SECONDS] +easi sim test [--steps N] [--timeout SECONDS] [--render-platform PLATFORM] ``` | Argument | Description | @@ -316,6 +321,7 @@ easi sim test [--steps N] [--timeout SECONDS] | `simulator` | Simulator key (e.g., `dummy`, `ai2thor:v5_0_0`) | | `--steps N` | Number of steps to execute (default: 5) | | `--timeout SECONDS` | Bridge startup timeout (default: 200.0) | +| `--render-platform PLATFORM` | Rendering platform override (default: simulator's preference). See [Render Platforms](#render-platforms). | **Examples:** @@ -323,6 +329,7 @@ easi sim test [--steps N] [--timeout SECONDS] easi sim test dummy easi sim test ai2thor:v5_0_0 --steps 10 easi sim test ai2thor:v2_1_0 --steps 3 --timeout 300 +easi sim test coppeliasim:v4_1_0 --render-platform native ``` Executes `MoveAhead` for each step and reports observations and rewards. @@ -373,6 +380,39 @@ easi start ebalfred_base --agent react --backend openai \ --- +## Render Platforms + +Render platforms control how a simulator gets a display for rendering. Each simulator declares a default platform and a set of supported platforms in its manifest. Use `--render-platform` to override. + +### Built-in Platforms + +| Platform | Description | +|---|---| +| `auto` | Use native display if `DISPLAY` is set, fall back to xvfb | +| `native` | Require an existing `DISPLAY` (fails if none) | +| `xvfb` | Wrap with `xvfb-run` (virtual X11 framebuffer) | +| `egl` | GPU-accelerated headless rendering via EGL (no X11) | +| `headless` | No display at all (simulator has native headless support) | + +### Custom Platforms + +Some simulators register custom render platform classes in their manifest that extend the built-in platforms with simulator-specific environment variables. For example, CoppeliaSim defines custom `auto`, `native`, and `xvfb` platforms that set `QT_QPA_PLATFORM_PLUGIN_PATH` and control the `COPPELIASIM_HEADLESS` flag. + +Custom platforms are resolved automatically — when you pass `--render-platform xvfb` for a CoppeliaSim task, the CoppeliaSim-specific xvfb platform is used instead of the generic one. + +### Platform Defaults by Simulator + +| Simulator | Default | Supported | +|---|---|---| +| `dummy:v1` | `headless` | `headless` | +| `ai2thor:v2_1_0` | `auto` | `auto`, `native`, `xvfb` | +| `ai2thor:v5_0_0` | `auto` | `auto`, `native`, `xvfb` | +| `habitat_sim:v0_3_0` | `auto` | `auto`, `native`, `xvfb`, `egl` | +| `coppeliasim:v4_1_0` | `auto` | `auto`, `native`, `xvfb` | +| `tdw:v1_11_23` | `auto` | `auto`, `native`, `xvfb` | + +--- + ## Environment Variables The CLI itself does not use environment variables, but the LLM backends require API keys: From 004d93e43431a41cfe3c9e38541693727d1add2b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 23 Feb 2026 20:43:34 +0800 Subject: [PATCH 095/239] feat: add OmniGibson render platform classes (native + auto) Co-Authored-By: Claude Sonnet 4.6 --- .../omnigibson/v3_7_2/render_platforms.py | 35 +++++++++++++++++++ tests/test_omnigibson_simulator.py | 34 ++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 easi/simulators/omnigibson/v3_7_2/render_platforms.py diff --git a/easi/simulators/omnigibson/v3_7_2/render_platforms.py b/easi/simulators/omnigibson/v3_7_2/render_platforms.py new file mode 100644 index 0000000..3626ecf --- /dev/null +++ b/easi/simulators/omnigibson/v3_7_2/render_platforms.py @@ -0,0 +1,35 @@ +"""Custom render platforms for OmniGibson v3.7.2. + +Each platform sets OMNIGIBSON_HEADLESS so Isaac Sim starts in the correct mode: +- native: OMNIGIBSON_HEADLESS=0 (user has a real display, Isaac Sim GUI opens) +- auto: OMNIGIBSON_HEADLESS=0 if DISPLAY is set, 1 otherwise +""" + +from __future__ import annotations + +import os + +from easi.core.render_platform import AutoPlatform, EnvVars, NativePlatform + + +class OmniGibsonNativePlatform(NativePlatform): + """Native display for OmniGibson — Isaac Sim GUI window, OMNIGIBSON_HEADLESS=0.""" + + @property + def name(self) -> str: + return "native" + + def get_env_vars(self) -> EnvVars: + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0"}) + + +class OmniGibsonAutoPlatform(AutoPlatform): + """Auto-detect for OmniGibson — native mode if $DISPLAY is set, headless otherwise.""" + + @property + def name(self) -> str: + return "auto" + + def get_env_vars(self) -> EnvVars: + has_display = bool(os.environ.get("DISPLAY", "")) + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0" if has_display else "1"}) diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py index e648521..bfe6d11 100644 --- a/tests/test_omnigibson_simulator.py +++ b/tests/test_omnigibson_simulator.py @@ -160,3 +160,37 @@ def test_create_env_manager_has_installation_kwargs(self): mgr = create_env_manager("omnigibson") assert mgr.installation_kwargs["cuda_version"] == "12.4" assert "BEHAVIOR-1K" in mgr.installation_kwargs["behavior_1k_repo"] + + +class TestOmniGibsonRenderPlatforms: + """Test OmniGibsonNativePlatform and OmniGibsonAutoPlatform.""" + + def test_native_platform_name(self): + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform + assert OmniGibsonNativePlatform().name == "native" + + def test_native_platform_sets_headless_0(self): + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform + ev = OmniGibsonNativePlatform().get_env_vars() + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_native_platform_no_wrap(self): + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform + cmd = ["python", "bridge.py"] + assert OmniGibsonNativePlatform().wrap_command(cmd, "1024x768x24") == cmd + + def test_auto_platform_name(self): + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform + assert OmniGibsonAutoPlatform().name == "auto" + + def test_auto_platform_with_display(self, monkeypatch): + monkeypatch.setenv("DISPLAY", ":1") + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform + ev = OmniGibsonAutoPlatform().get_env_vars() + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_auto_platform_without_display(self, monkeypatch): + monkeypatch.delenv("DISPLAY", raising=False) + from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform + ev = OmniGibsonAutoPlatform().get_env_vars() + assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" From 942a99c927d9d2b5ff8cb37af213695dac61da54 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 11:12:12 +0800 Subject: [PATCH 096/239] feat: vendor minimal rearrangement environment code Vendor 6 files from ai2thor-rearrangement into easi/tasks/ai2thor_rearrangement_2023/vendor/: - rearrange/environment.py (core RearrangeTHOREnvironment) - rearrange/constants.py (object types, pickupable/openable lists) - rearrange/utils.py (action space, IOU, execute_action) - rearrange_constants.py (IOU/openness thresholds) - datagen/datagen_constants.py - datagen/datagen_utils.py All imports patched to easi.tasks.ai2thor_rearrangement_2023.vendor.* --- .../ai2thor_rearrangement_2023/__init__.py | 0 .../vendor/__init__.py | 0 .../vendor/datagen/__init__.py | 0 .../vendor/datagen/datagen_constants.py | 21 + .../vendor/datagen/datagen_utils.py | 165 ++ .../vendor/rearrange/__init__.py | 0 .../vendor/rearrange/constants.py | 199 +++ .../vendor/rearrange/environment.py | 1590 +++++++++++++++++ .../vendor/rearrange/utils.py | 521 ++++++ .../vendor/rearrange_constants.py | 7 + 10 files changed, 2503 insertions(+) create mode 100644 easi/tasks/ai2thor_rearrangement_2023/__init__.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/__init__.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/__init__.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_constants.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_utils.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/__init__.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/constants.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/utils.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange_constants.py diff --git a/easi/tasks/ai2thor_rearrangement_2023/__init__.py b/easi/tasks/ai2thor_rearrangement_2023/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/__init__.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/__init__.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_constants.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_constants.py new file mode 100644 index 0000000..026098d --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_constants.py @@ -0,0 +1,21 @@ +OBJECT_TYPES_TO_NOT_MOVE = { + "Apple", + "Bread", + "Cloth", + "HandTowel", + "HandTowelHolder", + "Towel", + "TowelHolder", + "KeyChain", + "Lettuce", + "Pillow", + "Potato", + "Tomato", +} +OBJECT_TYPES_THAT_CAN_HAVE_IDENTICAL_MESHES = [ + "AluminumFoil", + "CD", + "Dumbbell", + "Ladle", + "Vase", +] diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_utils.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_utils.py new file mode 100644 index 0000000..c09bbc5 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/datagen/datagen_utils.py @@ -0,0 +1,165 @@ +import random +from collections import defaultdict +from typing import List, Dict, Set, Optional, Any + +from ai2thor.controller import Controller + +from easi.tasks.ai2thor_rearrangement_2023.vendor.datagen.datagen_constants import OBJECT_TYPES_THAT_CAN_HAVE_IDENTICAL_MESHES +from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange_constants import OPENNESS_THRESHOLD + + +def get_scenes(stage: str) -> List[str]: + """Returns a list of iTHOR scene names for each stage.""" + assert stage in {"debug", "train", "train_unseen", "val", "valid", "test", "all"} + + if stage == "debug": + return ["FloorPlan1"] + + # [1-20] for train, [21-25] for val, [26-30] for test + if stage in ["train", "train_unseen"]: + scene_nums = range(1, 21) + elif stage in ["val", "valid"]: + scene_nums = range(21, 26) + elif stage == "test": + scene_nums = range(26, 31) + elif stage == "all": + scene_nums = range(1, 31) + else: + raise NotImplementedError + + kitchens = [f"FloorPlan{i}" for i in scene_nums] + living_rooms = [f"FloorPlan{200+i}" for i in scene_nums] + bedrooms = [f"FloorPlan{300+i}" for i in scene_nums] + bathrooms = [f"FloorPlan{400+i}" for i in scene_nums] + return kitchens + living_rooms + bedrooms + bathrooms + + +def filter_pickupable( + objects: List[Dict], object_types_to_not_move: Set[str] +) -> List[Dict]: + """Filters object data only for pickupable objects.""" + return [ + obj + for obj in objects + if obj["pickupable"] and not obj["objectType"] in object_types_to_not_move + ] + + +def get_random_seeds(max_seed: int = int(1e8)) -> Dict[str, int]: + # Generate random seeds for each stage + + # Train seed + random.seed(1329328939) + train_seed = random.randint(0, max_seed - 1) + + # Train unseen seed + random.seed(709384928) + train_unseen_seed = random.randint(0, max_seed - 1) + + # val seed + random.seed(3348958620) + val_seed = random.randint(0, max_seed - 1) + + # test seed + random.seed(289123396) + test_seed = random.randint(0, max_seed - 1) + + # Debug seed + random.seed(239084231) + debug_seed = random.randint(0, max_seed - 1) + + return { + "train": train_seed, + "train_unseen": train_unseen_seed, + "val": val_seed, + "valid": val_seed, + "test": test_seed, + "debug": debug_seed, + } + + +def check_object_opens(obj: Dict[str, Any], controller: Controller): + controller.step( + "OpenObject", objectId=obj["objectId"], openness=1.0, forceAction=True, + ) + obj_opened_fully = controller.last_event.metadata["lastActionSuccess"] + + controller.step( + "CloseObject", objectId=obj["objectId"], forceAction=True, + ) + obj_closed_fully = controller.last_event.metadata["lastActionSuccess"] + + return obj_opened_fully and obj_closed_fully + + +def get_object_by_name(name: str, controller: Controller): + return next( + o for o in controller.last_event.metadata["objects"] if o["name"] == name + ) + + +def open_objs( + object_names_to_open: List[str], controller: Controller +) -> Dict[str, Optional[float]]: + """Opens up the chosen pickupable objects if they're openable.""" + out: Dict[str, Optional[float]] = defaultdict(lambda: None) + for obj_name in object_names_to_open: + obj = get_object_by_name(obj_name, controller) + + last_openness = obj["openness"] + new_openness = last_openness + while abs(last_openness - new_openness) <= OPENNESS_THRESHOLD: + new_openness = random.random() + + event = controller.step( + "OpenObject", + objectId=obj["objectId"], + openness=new_openness, + forceAction=True, + ) + obj_after_open = get_object_by_name(obj_name, controller) + + if abs(obj_after_open["openness"] - new_openness) > 0.001: + raise RuntimeError( + f"In scene {event.metadata['sceneName']}, {obj['name']} was supposed to open to {new_openness}" + f" from {last_openness} but instead reached {obj_after_open['openness']}. Last action success was:" + f" {event.metadata['lastActionSuccess']}" + ) + + out[obj["name"]] = obj_after_open["openness"] + return out + + +def get_object_ids_to_not_move_from_object_types( + controller: Controller, object_types: Set[str] +) -> List[str]: + object_types = set(object_types) + return [ + o["objectId"] + for o in controller.last_event.metadata["objects"] + if o["objectType"] in object_types + ] + + +def remove_objects_until_all_have_identical_meshes(controller: Controller): + obj_type_to_obj_list = defaultdict(lambda: []) + for obj in controller.last_event.metadata["objects"]: + obj_type_to_obj_list[obj["objectType"]].append(obj) + + for obj_type in OBJECT_TYPES_THAT_CAN_HAVE_IDENTICAL_MESHES: + objs_of_type = list( + sorted(obj_type_to_obj_list[obj_type], key=lambda x: x["name"]) + ) + random.shuffle(objs_of_type) + objs_to_remove = objs_of_type[:-1] + for obj_to_remove in objs_to_remove: + obj_to_remove_name = obj_to_remove["name"] + obj_id_to_remove = next( + obj["objectId"] + for obj in controller.last_event.metadata["objects"] + if obj["name"] == obj_to_remove_name + ) + controller.step("RemoveFromScene", objectId=obj_id_to_remove) + if not controller.last_event.metadata["lastActionSuccess"]: + return False + return True diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/__init__.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/constants.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/constants.py new file mode 100644 index 0000000..21ad8f5 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/constants.py @@ -0,0 +1,199 @@ +import os +from pathlib import Path + +MAX_HAND_METERS = 0.5 +FOV = 90 + +REQUIRED_THOR_VERSION = "5.0.0" +STEP_SIZE = 0.25 + +# fmt: off +REARRANGE_SIM_OBJECTS = [ + # A + "AlarmClock", "AluminumFoil", "Apple", "AppleSliced", "ArmChair", + "BaseballBat", "BasketBall", "Bathtub", "BathtubBasin", "Bed", "Blinds", "Book", "Boots", "Bottle", "Bowl", "Box", + # B + "Bread", "BreadSliced", "ButterKnife", + # C + "Cabinet", "Candle", "CD", "CellPhone", "Chair", "Cloth", "CoffeeMachine", "CoffeeTable", "CounterTop", "CreditCard", + "Cup", "Curtains", + # D + "Desk", "DeskLamp", "Desktop", "DiningTable", "DishSponge", "DogBed", "Drawer", "Dresser", "Dumbbell", + # E + "Egg", "EggCracked", + # F + "Faucet", "Floor", "FloorLamp", "Footstool", "Fork", "Fridge", + # G + "GarbageBag", "GarbageCan", + # H + "HandTowel", "HandTowelHolder", "HousePlant", "Kettle", "KeyChain", "Knife", + # L + "Ladle", "Laptop", "LaundryHamper", "Lettuce", "LettuceSliced", "LightSwitch", + # M + "Microwave", "Mirror", "Mug", + # N + "Newspaper", + # O + "Ottoman", + # P + "Painting", "Pan", "PaperTowel", "Pen", "Pencil", "PepperShaker", "Pillow", "Plate", "Plunger", "Poster", "Pot", + "Potato", "PotatoSliced", + # R + "RemoteControl", "RoomDecor", + # S + "Safe", "SaltShaker", "ScrubBrush", "Shelf", "ShelvingUnit", "ShowerCurtain", "ShowerDoor", "ShowerGlass", + "ShowerHead", "SideTable", "Sink", "SinkBasin", "SoapBar", "SoapBottle", "Sofa", "Spatula", "Spoon", "SprayBottle", + "Statue", "Stool", "StoveBurner", "StoveKnob", + # T + "TableTopDecor", "TargetCircle", "TeddyBear", "Television", "TennisRacket", "TissueBox", "Toaster", "Toilet", + "ToiletPaper", "ToiletPaperHanger", "Tomato", "TomatoSliced", "Towel", "TowelHolder", "TVStand", + # V + "VacuumCleaner", "Vase", + # W + "Watch", "WateringCan", "Window", "WineBottle", +] +# fmt: on + + +# fmt: off +OBJECT_TYPES_WITH_PROPERTIES = { + "StoveBurner": {"openable": False, "receptacle": True, "pickupable": False}, + "Drawer": {"openable": True, "receptacle": True, "pickupable": False}, + "CounterTop": {"openable": False, "receptacle": True, "pickupable": False}, + "Cabinet": {"openable": True, "receptacle": True, "pickupable": False}, + "StoveKnob": {"openable": False, "receptacle": False, "pickupable": False}, + "Window": {"openable": False, "receptacle": False, "pickupable": False}, + "Sink": {"openable": False, "receptacle": True, "pickupable": False}, + "Floor": {"openable": False, "receptacle": True, "pickupable": False}, + "Book": {"openable": True, "receptacle": False, "pickupable": True}, + "Bottle": {"openable": False, "receptacle": False, "pickupable": True}, + "Knife": {"openable": False, "receptacle": False, "pickupable": True}, + "Microwave": {"openable": True, "receptacle": True, "pickupable": False}, + "Bread": {"openable": False, "receptacle": False, "pickupable": True}, + "Fork": {"openable": False, "receptacle": False, "pickupable": True}, + "Shelf": {"openable": False, "receptacle": True, "pickupable": False}, + "Potato": {"openable": False, "receptacle": False, "pickupable": True}, + "HousePlant": {"openable": False, "receptacle": False, "pickupable": False}, + "Toaster": {"openable": False, "receptacle": True, "pickupable": False}, + "SoapBottle": {"openable": False, "receptacle": False, "pickupable": True}, + "Kettle": {"openable": True, "receptacle": False, "pickupable": True}, + "Pan": {"openable": False, "receptacle": True, "pickupable": True}, + "Plate": {"openable": False, "receptacle": True, "pickupable": True}, + "Tomato": {"openable": False, "receptacle": False, "pickupable": True}, + "Vase": {"openable": False, "receptacle": False, "pickupable": True}, + "GarbageCan": {"openable": False, "receptacle": True, "pickupable": False}, + "Egg": {"openable": False, "receptacle": False, "pickupable": True}, + "CreditCard": {"openable": False, "receptacle": False, "pickupable": True}, + "WineBottle": {"openable": False, "receptacle": False, "pickupable": True}, + "Pot": {"openable": False, "receptacle": True, "pickupable": True}, + "Spatula": {"openable": False, "receptacle": False, "pickupable": True}, + "PaperTowelRoll": {"openable": False, "receptacle": False, "pickupable": True}, + "Cup": {"openable": False, "receptacle": True, "pickupable": True}, + "Fridge": {"openable": True, "receptacle": True, "pickupable": False}, + "CoffeeMachine": {"openable": False, "receptacle": True, "pickupable": False}, + "Bowl": {"openable": False, "receptacle": True, "pickupable": True}, + "SinkBasin": {"openable": False, "receptacle": True, "pickupable": False}, + "SaltShaker": {"openable": False, "receptacle": False, "pickupable": True}, + "PepperShaker": {"openable": False, "receptacle": False, "pickupable": True}, + "Lettuce": {"openable": False, "receptacle": False, "pickupable": True}, + "ButterKnife": {"openable": False, "receptacle": False, "pickupable": True}, + "Apple": {"openable": False, "receptacle": False, "pickupable": True}, + "DishSponge": {"openable": False, "receptacle": False, "pickupable": True}, + "Spoon": {"openable": False, "receptacle": False, "pickupable": True}, + "LightSwitch": {"openable": False, "receptacle": False, "pickupable": False}, + "Mug": {"openable": False, "receptacle": True, "pickupable": True}, + "ShelvingUnit": {"openable": False, "receptacle": True, "pickupable": False}, + "Statue": {"openable": False, "receptacle": False, "pickupable": True}, + "Stool": {"openable": False, "receptacle": True, "pickupable": False}, + "Faucet": {"openable": False, "receptacle": False, "pickupable": False}, + "Ladle": {"openable": False, "receptacle": False, "pickupable": True}, + "CellPhone": {"openable": False, "receptacle": False, "pickupable": True}, + "Chair": {"openable": False, "receptacle": True, "pickupable": False}, + "SideTable": {"openable": False, "receptacle": True, "pickupable": False}, + "DiningTable": {"openable": False, "receptacle": True, "pickupable": False}, + "Pen": {"openable": False, "receptacle": False, "pickupable": True}, + "SprayBottle": {"openable": False, "receptacle": False, "pickupable": True}, + "Curtains": {"openable": False, "receptacle": False, "pickupable": False}, + "Pencil": {"openable": False, "receptacle": False, "pickupable": True}, + "Blinds": {"openable": True, "receptacle": False, "pickupable": False}, + "GarbageBag": {"openable": False, "receptacle": False, "pickupable": False}, + "Safe": {"openable": True, "receptacle": True, "pickupable": False}, + "Painting": {"openable": False, "receptacle": False, "pickupable": False}, + "Box": {"openable": True, "receptacle": True, "pickupable": True}, + "Laptop": {"openable": True, "receptacle": False, "pickupable": True}, + "Television": {"openable": False, "receptacle": False, "pickupable": False}, + "TissueBox": {"openable": False, "receptacle": False, "pickupable": True}, + "KeyChain": {"openable": False, "receptacle": False, "pickupable": True}, + "FloorLamp": {"openable": False, "receptacle": False, "pickupable": False}, + "DeskLamp": {"openable": False, "receptacle": False, "pickupable": False}, + "Pillow": {"openable": False, "receptacle": False, "pickupable": True}, + "RemoteControl": {"openable": False, "receptacle": False, "pickupable": True}, + "Watch": {"openable": False, "receptacle": False, "pickupable": True}, + "Newspaper": {"openable": False, "receptacle": False, "pickupable": True}, + "ArmChair": {"openable": False, "receptacle": True, "pickupable": False}, + "CoffeeTable": {"openable": False, "receptacle": True, "pickupable": False}, + "TVStand": {"openable": False, "receptacle": True, "pickupable": False}, + "Sofa": {"openable": False, "receptacle": True, "pickupable": False}, + "WateringCan": {"openable": False, "receptacle": False, "pickupable": True}, + "Boots": {"openable": False, "receptacle": False, "pickupable": True}, + "Ottoman": {"openable": False, "receptacle": True, "pickupable": False}, + "Desk": {"openable": False, "receptacle": True, "pickupable": False}, + "Dresser": {"openable": False, "receptacle": True, "pickupable": False}, + "Mirror": {"openable": False, "receptacle": False, "pickupable": False}, + "DogBed": {"openable": False, "receptacle": True, "pickupable": False}, + "Candle": {"openable": False, "receptacle": False, "pickupable": True}, + "RoomDecor": {"openable": False, "receptacle": False, "pickupable": False}, + "Bed": {"openable": False, "receptacle": True, "pickupable": False}, + "BaseballBat": {"openable": False, "receptacle": False, "pickupable": True}, + "BasketBall": {"openable": False, "receptacle": False, "pickupable": True}, + "AlarmClock": {"openable": False, "receptacle": False, "pickupable": True}, + "CD": {"openable": False, "receptacle": False, "pickupable": True}, + "TennisRacket": {"openable": False, "receptacle": False, "pickupable": True}, + "TeddyBear": {"openable": False, "receptacle": False, "pickupable": True}, + "Poster": {"openable": False, "receptacle": False, "pickupable": False}, + "Cloth": {"openable": False, "receptacle": False, "pickupable": True}, + "Dumbbell": {"openable": False, "receptacle": False, "pickupable": True}, + "LaundryHamper": {"openable": True, "receptacle": True, "pickupable": False}, + "TableTopDecor": {"openable": False, "receptacle": False, "pickupable": True}, + "Desktop": {"openable": False, "receptacle": False, "pickupable": False}, + "Footstool": {"openable": False, "receptacle": True, "pickupable": True}, + "BathtubBasin": {"openable": False, "receptacle": True, "pickupable": False}, + "ShowerCurtain": {"openable": True, "receptacle": False, "pickupable": False}, + "ShowerHead": {"openable": False, "receptacle": False, "pickupable": False}, + "Bathtub": {"openable": False, "receptacle": True, "pickupable": False}, + "Towel": {"openable": False, "receptacle": False, "pickupable": True}, + "HandTowel": {"openable": False, "receptacle": False, "pickupable": True}, + "Plunger": {"openable": False, "receptacle": False, "pickupable": True}, + "TowelHolder": {"openable": False, "receptacle": True, "pickupable": False}, + "ToiletPaperHanger": {"openable": False, "receptacle": True, "pickupable": False}, + "SoapBar": {"openable": False, "receptacle": False, "pickupable": True}, + "ToiletPaper": {"openable": False, "receptacle": False, "pickupable": True}, + "HandTowelHolder": {"openable": False, "receptacle": True, "pickupable": False}, + "ScrubBrush": {"openable": False, "receptacle": False, "pickupable": True}, + "Toilet": {"openable": True, "receptacle": True, "pickupable": False}, + "ShowerGlass": {"openable": False, "receptacle": False, "pickupable": False}, + "ShowerDoor": {"openable": True, "receptacle": False, "pickupable": False}, + "AluminumFoil": {"openable": False, "receptacle": False, "pickupable": True}, + "VacuumCleaner": {"openable": False, "receptacle": False, "pickupable": False} +} +# fmt: on + +PICKUPABLE_OBJECTS = list( + sorted( + [ + object_type + for object_type, properties in OBJECT_TYPES_WITH_PROPERTIES.items() + if properties["pickupable"] + ] + ) +) + +OPENABLE_OBJECTS = list( + sorted( + [ + object_type + for object_type, properties in OBJECT_TYPES_WITH_PROPERTIES.items() + if properties["openable"] and not properties["pickupable"] + ] + ) +) diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py new file mode 100644 index 0000000..8b09cb1 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py @@ -0,0 +1,1590 @@ +import enum +import math +import pprint +import random +import traceback +from collections import OrderedDict +from typing import Dict, Any, Tuple, Optional, Callable, List, Union, Sequence + +import ai2thor +import ai2thor.controller +import ai2thor.fifo_server +import ai2thor.server +import ai2thor.wsgi_server +import numpy as np +from packaging import version +from torch.distributions.utils import lazy_property + +from allenact.utils.system import get_logger +from allenact_plugins.ithor_plugin.ithor_environment import IThorEnvironment +from allenact_plugins.ithor_plugin.ithor_util import ( + round_to_factor, + include_object_data, +) +from easi.tasks.ai2thor_rearrangement_2023.vendor.datagen.datagen_constants import OBJECT_TYPES_TO_NOT_MOVE +from easi.tasks.ai2thor_rearrangement_2023.vendor.datagen.datagen_utils import ( + open_objs, + get_object_ids_to_not_move_from_object_types, + remove_objects_until_all_have_identical_meshes, +) +from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.constants import ( + REQUIRED_THOR_VERSION, + MAX_HAND_METERS, +) +from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.utils import ( + BoundedFloat, + RearrangeActionSpace, + PoseMismatchError, + ObjectInteractablePostionsCache, + execute_action, + get_pose_info, + iou_box_3d, +) +from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange_constants import IOU_THRESHOLD, OPENNESS_THRESHOLD, POSITION_DIFF_BARRIER + + +class RearrangeMode(enum.Enum): + """Different modes allowed in RearrangeTHOREnvironment.""" + + MANIPULATE = "MANIPULATE" + SNAP = "SNAP" + + +class RearrangeTaskSpec: + """Data container encapsulating how a single rearrangement instance should + be initialized. + + The rearrangement datasets are structured as large dictionaries of the form + ```python + { + SCENE_NAME: [ + { + DATA_DEFINING_A_SINGLE_REARRANGE_TASK + }, + ... + ], + ... + } + ``` + + This `RearrangeTaskSpec` is used to encapsulate the `DATA_DEFINING_A_SINGLE_REARRANGE_TASK` + which allows us to use autocomplete and type checking rather than passing around raw dictionaries. + + # Attributes + scene : A string specifying the AI2-THOR scene (e.g "FloorPlan18") in which to run the rearrange task. + stage : A string specifying the type of instance this is data corresponds to (e.g. "train", "val", "test", etc.) + agent_position : A Dict[str, float] specifying the "x", "y", and "z" coordinates of the agent's starting position. + agent_rotation: A float specifying the agents starting rotation (in degrees). + openable_data : A sequence of dictionaries specifying the degree to which certain objects in the scene should be open + in the walkthrough and unshuffle phases. E.g. the openness of a particular cabinent might be specified by the + dictionary: + ```python + { + "name": "Cabinet_a8b4237f", + "objectName": "Cabinet_a8b4237f", + "objectId": "Cabinet|+01.31|+02.46|+04.36", + "start_openness": 0.6170539671128578, + "target_openness": 0.8788923191809455 + } + ``` + where `start_openness` is the degree to which the cabinent is open at the start of the unshuffle phase. + starting_poses : A sequence of dictionaries specifying the poses of all pickupable objects at the start + of the unshuffle phase. E.g. one such dictionary might look like: + ```python + { + "name": "Bowl_803d17c0", + "objectName": "Bowl_803d17c0", + "position": { + "x": -0.5572903156280518, + "y": 0.8256161212921143, + "z": 6.25293493270874, + }, + "rotation": { + "x": 359.9241943359375, + "y": -0.00041645264718681574, + "z": 0.004868899006396532, + }, + } + ``` + target_poses : Similar to `starting_poses` but specifying the poses of objects during the walkthrough phase. + runtime_sample : If `True`, then this task is meant to randomly specified at runtime. That is, the above fields + (except for the `scene`) are to be left as `None` and the RearrangeTHOREnvironment will randomly generate + them instead (this may be slow). + runtime_data : A Dict[str, Any] into which the `RearrangeTHOREnvironment` may cache data for efficiency. + metrics : Any additional metrics that might be associated with a task specification. For instance, the + rearrangement dataset dictionaries include metrics such as `open_diff_count` which records the number + of objects who differ in openness at the start of the walkthrough/unshuffle phases. + """ + + def __init__( + self, + scene: str, + stage: Optional[str] = None, + agent_position: Optional[Dict[str, float]] = None, + agent_rotation: Optional[float] = None, + openable_data: Optional[Sequence[Dict[str, Any]]] = None, + starting_poses: Optional[Sequence[Dict[str, Any]]] = None, + target_poses: Optional[Sequence[Dict[str, Any]]] = None, + runtime_sample: bool = False, + runtime_data: Optional[Dict[str, Any]] = None, + **metrics, + ): + """Instantiate a `RearrangeTaskSpec` object.""" + self.scene = scene + self.stage = stage + self.agent_position = agent_position + self.agent_rotation = agent_rotation + self.openable_data = openable_data + self.starting_poses = starting_poses + self.target_poses = target_poses + self.runtime_sample = runtime_sample + self.runtime_data: Dict[str, Any] = ( + runtime_data if runtime_data is not None else {} + ) + self.metrics = metrics + + def __str__(self): + """String representation of a `RearrangeTaskSpec` object.""" + return pprint.pformat(self.__dict__) + + @property + def unique_id(self): + if self.runtime_sample: + raise NotImplementedError("Cannot create a unique id for a runtime sample.") + return f"{self.scene}__{self.stage}__{self.metrics['index']}" + + +class RearrangeTHOREnvironment: + """Custom AI2-THOR Controller for the task of object rearrangement. + + # Attributes + mode : The current mode of rearrangement. Takes one of the values of RearrangeMode + (RearrangeMode.SNAP or RearrangeMode.MANIPULATE). + force_cache_reset : Whether or not we should force cache resets when using the `drop_held_object_with_snap` action. + Setting this value to `False` results in higher FPS at the expense of possibly having `drop_held_object_with_snap` + work/fail when it shouldn't. Setting `force_cache_reset` to `True` is recommended during validation/testing. + obj_name_to_walkthrough_start_pose : Dictionary mapping AI2-THOR object names to their poses (positions & rotations) + before they were shuffled (i.e. what the agent sees at the start of the walkthrough phase). + This will be changed after every call to `reset`. + obj_name_to_unshuffle_start_pose : Same as `obj_name_to_walkthrough_start_pose` but mapping object names to their poses (positions & + rotations) just after they were shuffled, i.e. what the agent sees at the start of the unshuffle phase). + current_task_spec : A `RearrangeTaskSpec` object specifying the current rearrangement task details. + controller : A ai2thor controller used to execute all the actions. + shuffle_called : `True` if the objects have been shuffled so that we're in the `unshuffle` phase. Otherwise `False`. + """ + + def __init__( + self, + mode: RearrangeMode = RearrangeMode.SNAP, + force_cache_reset: Optional[bool] = None, + controller_kwargs: Optional[Dict[str, Any]] = None, + enhanced_physics_determinism: bool = True, + ): + """Initialize a new rearrangement controller. + + # Parameters + mode : See description of this class' attributes. + controller_kwargs : Dictionary specifying any keyword arguments to be passed + when initializing the `ai2thor.controller.Controller` (e.g. width/height). + """ + if ai2thor.__version__ is not None: # Allows for custom THOR installs + if ( + ai2thor.__version__ not in ["0.0.1", None] + and (not ai2thor.__version__.startswith("0+")) + and version.parse(ai2thor.__version__) + < version.parse(REQUIRED_THOR_VERSION) + ): + raise ImportError( + f"To run the rearrangment baseline experiments you must use" + f" ai2thor version {REQUIRED_THOR_VERSION} or higher." + ) + + # Saving attributes + if mode == RearrangeMode.SNAP: + assert ( + force_cache_reset is not None + ), "When in RearrangeMode.SNAP mode you must specify a value for `force_cache_reset`" + else: + force_cache_reset = force_cache_reset + self.force_cache_reset = force_cache_reset + self.mode = mode + self._controller_kwargs = {} if controller_kwargs is None else controller_kwargs + self._enhanced_physics_determinism = enhanced_physics_determinism + + self.physics_step_kwargs = {} + if self._enhanced_physics_determinism: + self.physics_step_kwargs = { + "actionSimulationSeconds": 0.26, + "fixedDeltaTime": 0.02, + } + + # Cache of where objects can be interacted with + self._interactable_positions_cache = ObjectInteractablePostionsCache() + + # Object poses at start of walkthrough and unshuffle phases. + # Reset after every call to reset and shuffle respectively. + self.obj_name_to_walkthrough_start_pose: Optional[Dict[str, Dict]] = None + self.obj_name_to_unshuffle_start_pose: Optional[Dict[str, Dict]] = None + self._cached_poses: Optional[Tuple[List, List, List]] = None + + # Current task specification + self.current_task_spec: Optional[RearrangeTaskSpec] = None + + # Caches of starting unshuffle/walkthrough object poses and other information. Reset on every call to reset + self._sorted_and_extracted_walkthrough_start_poses: Optional[List] = None + self._sorted_and_extracted_unshuffle_start_poses: Optional[List] = None + self._have_warned_about_mismatch = False + self._agent_signals_done = False # Also reset on `shuffle()` + + # instance masks now not supported. But an Exception would be thrown if + # `mode == RearrangeMode.MANIPULATE` and render_instance_masks is True, since masks are + # only available on RearrangeMode.SNAP mode. + self._render_instance_masks: bool = False + if self.mode == RearrangeMode.MANIPULATE and self._render_instance_masks: + raise Exception( + "render_instance_masks is only available on RearrangeMode.SNAP mode." + ) + + # local thor controller to execute all the actions + self.controller = self.create_controller() + + # always begin in walkthrough phase + self.shuffle_called = False + + def create_controller(self): + """Create the ai2thor controller.""" + + assert ("width" in self._controller_kwargs) == ( + "height" in self._controller_kwargs + ), "Either controller_kwargs must contain either both of width/height or neither." + self._controller_kwargs["width"] = self._controller_kwargs.get("width", 300) + self._controller_kwargs["height"] = self._controller_kwargs.get("height", 300) + + controller = ai2thor.controller.Controller( + **{ + "scene": "FloorPlan17_physics", + # "server_class": ai2thor.fifo_server.FifoServer, + # "server_class": ai2thor.wsgi_server.WsgiServer, # Possibly useful in debugging + **self._controller_kwargs, + }, + ) + return controller + + @property + def held_object(self) -> Optional[Dict[str, Any]]: + """Return the data corresponding to the object held by the agent (if + any).""" + with include_object_data(self.controller): + metadata = self.controller.last_event.metadata + + if len(metadata["inventoryObjects"]) == 0: + return None + + assert len(metadata["inventoryObjects"]) <= 1 + + held_obj_id = metadata["inventoryObjects"][0]["objectId"] + return next(o for o in metadata["objects"] if o["objectId"] == held_obj_id) + + def get_agent_location(self) -> Dict[str, Union[float, int, bool]]: + """Returns the agent's current location. + + # Returns + + A dictionary of the form + ```python + { + "x": X_POSITION_IN_SPACE, # float + "y": Y_POSITION_IN_SPACE, # float + "z": Z_POSITION_IN_SPACE, # float + "rotation": AGENTS_ROTATION_ABOUT_THE_Y_AXIS_IN_DEGREES, # float or int + "horizon": AGENTS_CAMERA_ANGLE_IN_DEGREES, # float (0 degrees is horizontal) + "standing": WHETHER_OR_NOT_THE_AGENT_IS_STANDING, # boolean + } + ``` + """ + metadata = self.controller.last_event.metadata + return { + "x": metadata["agent"]["position"]["x"], + "y": metadata["agent"]["position"]["y"], + "z": metadata["agent"]["position"]["z"], + "rotation": metadata["agent"]["rotation"]["y"], + "horizon": metadata["agent"]["cameraHorizon"], + "standing": metadata.get("isStanding", metadata["agent"].get("isStanding")), + } + + @property + def observation(self) -> Tuple[np.array, Optional[np.array]]: + """Return the current (RGB, depth, Optional[instance masks]) frames. + + # Returns + A tuple containing a + * RGB frame is of shape (height)x(width)x3 with integer entries in [0:255]. + * depth frame is of shape (height)x(width) with unscaled entries representing the + meter distance from the agent to the pixel. This will be `None` if the controller_kwargs + passed to the initializer did not specify that depth images should be returned by AI2-THOR. + """ + rgb = self.last_event.frame + depth = ( + self.last_event.depth_frame + if hasattr(self.last_event, "depth_frame") + else None + ) + return rgb, depth + + @lazy_property + def walkthrough_action_space(self) -> RearrangeActionSpace: + """Return the RearrangeActionSpace for the walkthrough phase based on + the RearrangeMode.""" + + # Walkthrough actions + actions: Dict[Callable, Dict[str, BoundedFloat]] = { + self.move_ahead: {}, + self.move_right: {}, + self.move_left: {}, + self.move_back: {}, + self.rotate_right: {}, + self.rotate_left: {}, + self.stand: {}, + self.crouch: {}, + self.look_up: {}, + self.look_down: {}, + self.done: {}, + } + + return RearrangeActionSpace(actions) + + @lazy_property + def unshuffle_action_space(self) -> RearrangeActionSpace: + """Return the RearrangeActionSpace for the unshuffle phase based on the + RearrangeMode.""" + actions = {**self.walkthrough_action_space.actions} + + # additional shuffle allowed actions + actions.update( + { + self.open_object: { + "x": BoundedFloat(low=0, high=1), + "y": BoundedFloat(low=0, high=1), + "openness": BoundedFloat(low=0, high=1), + }, + self.pickup_object: { + "x": BoundedFloat(low=0, high=1), + "y": BoundedFloat(low=0, high=1), + }, + self.push_object: { + "x": BoundedFloat(low=0, high=1), + "y": BoundedFloat(low=0, high=1), + "rel_x_force": BoundedFloat(low=-0.5, high=0.5), + "rel_y_force": BoundedFloat(low=-0.5, high=0.5), + "rel_z_force": BoundedFloat(low=-0.5, high=0.5), + "force_magnitude": BoundedFloat(low=0, high=1), + }, + self.move_held_object: { + "x_meters": BoundedFloat(low=-0.5, high=0.5), + "y_meters": BoundedFloat(low=-0.5, high=0.5), + "z_meters": BoundedFloat(low=-0.5, high=0.5), + }, + self.rotate_held_object: { + "x": BoundedFloat(low=-0.5, high=0.5), + "y": BoundedFloat(low=-0.5, high=0.5), + "z": BoundedFloat(low=-0.5, high=0.5), + }, + self.drop_held_object: {}, + } + ) + + if self.mode == RearrangeMode.SNAP: + actions.update({self.drop_held_object_with_snap: {}}) + + return RearrangeActionSpace(actions) + + @property + def action_space(self) -> RearrangeActionSpace: + """Return the RearrangeActionSpace based on the RearrangeMode and + whether we are in the unshuffle phase.""" + + if self.shuffle_called: + return self.unshuffle_action_space + else: + return self.walkthrough_action_space + + def open_object(self, x: float, y: float, openness: float) -> bool: + """Open the object corresponding to x/y to openness. + + The action will not be successful if the specified openness would + cause a collision or if the object at x/y is not openable. + + # Parameters + x : (float, min=0.0, max=1.0) horizontal percentage from the last frame + that the target object is located. + y : (float, min=0.0, max=1.0) vertical percentage from the last frame + that the target object is located. + + # Returns + `True` if the action was successful, otherwise `False`. + """ + # If an object is already open, THOR doesn't support changing + # it's openness without first closing it. So we simply try to first + # close the object before reopening it. + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.open_object, + thor_action="OpenObject", + error_message=( + "x/y/openness must be in [0:1] and we must be in the unshuffle phase." + ), + x=x, + y=y, + openness=openness, + default_thor_kwargs=self.physics_step_kwargs, + ) + + def pickup_object(self, x: float, y: float) -> bool: + """Pick up the object corresponding to x/y. + + The action will not be successful if the object at x/y is not + pickupable. + + # Parameters + x : (float, min=0.0, max=1.0) horizontal percentage from the last frame + that the target object is located. + y : (float, min=0.0, max=1.0) vertical percentage from the last frame + that the target object is located. + + # Returns + `True` if the action was successful, otherwise `False`. + """ + if len(self.last_event.metadata["inventoryObjects"]) != 0: + return False + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.pickup_object, + thor_action="PickupObject", + error_message="x/y must be in [0:1] and we must be in the unshuffle phase.", + x=x, + y=y, + default_thor_kwargs=self.physics_step_kwargs, + ) + + def push_object( + self, + x: float, + y: float, + rel_x_force: float, + rel_y_force: float, + rel_z_force: float, + force_magnitude: float, + ) -> bool: + """Push an object along a surface. + + The action will not be successful if the object at x/y is not moveable. + + # Parameters + x : (float, min=0.0, max=1.0) horizontal percentage from the last frame + that the target object is located. + y : (float, min=0.0, max=1.0) vertical percentage from the last frame + that the target object is located. + rel_x_force : (float, min=-0.5, max=0.5) amount of relative force + applied along the x axis. + rel_y_force : (float, min=-0.5, max=0.5) amount of relative force + applied along the y axis. + rel_z_force : (float, min=-0.5, max=0.5) amount of relative force + applied along the z axis. + force_magnitude : (float, min=0, max=1) relative amount of force + applied during this push action. Within AI2-THOR, the force is + rescaled to be between 0 and 50 newtons, which is estimated to + sufficiently move all pickupable objects. + + # Returns + `True` if the action was successful, otherwise `False`. + """ + + def preprocess_kwargs(kwargs: Dict[str, Any]): + direction = {} + for k in ["x", "y", "z"]: + force_key = f"rel_{k}_force" + direction[k] = kwargs[force_key] + del kwargs[force_key] + kwargs["direction"] = direction + kwargs["force_magnitude"] = 50 * kwargs["force_magnitude"] + + # TODO: is this really the definition of success we want? + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.pickup_object, + thor_action="TouchThenApplyForce", + error_message="Error in call to pickup object." + " Must be in unshuffle phase (i.e., call shuffle())," + " x,y,force_magnitude must be in [0:1]," + " and rel_(x/y/z)_force must be in [-0.5:0.5]", + default_thor_kwargs=dict(handDistance=1.5, **self.physics_step_kwargs), + preprocess_kwargs_inplace=preprocess_kwargs, + x=x, + y=y, + rel_x_force=rel_x_force, + rel_y_force=rel_y_force, + rel_z_force=rel_z_force, + moveMagnitude=force_magnitude, + ) + + def move_ahead(self) -> bool: + """Move the agent ahead from its facing direction by 0.25 meters.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.move_ahead, + thor_action="MoveAhead", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def move_back(self) -> bool: + """Move the agent back from its facing direction by 0.25 meters.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.move_back, + thor_action="MoveBack", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def move_right(self) -> bool: + """Move the agent right from its facing direction by 0.25 meters.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.move_right, + thor_action="MoveRight", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def move_left(self) -> bool: + """Move the agent left from its facing direction by 0.25 meters.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.move_left, + thor_action="MoveLeft", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def rotate_left(self) -> bool: + """Rotate the agent left from its facing direction.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.rotate_left, + thor_action="RotateLeft", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def rotate_right(self) -> bool: + """Rotate the agent left from its facing direction.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.rotate_right, + thor_action="RotateRight", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def stand(self) -> bool: + """Stand the agent from the crouching position.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.stand, + thor_action="Stand", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def crouch(self) -> bool: + """Crouch the agent from the standing position.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.crouch, + thor_action="Crouch", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def look_up(self) -> bool: + """Turn the agent's head and camera up by 30 degrees.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.look_up, + thor_action="LookUp", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def look_down(self) -> bool: + """Turn the agent's head and camera down by 30 degrees.""" + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.look_down, + thor_action="LookDown", + default_thor_kwargs=self.physics_step_kwargs, + ) + + def done(self) -> bool: + """Agent's signal that it's completed its current rearrangement phase. + + Note that we do not automatically switch from the walkthrough + phase to the unshuffling phase, and vice-versa, that is up to + the user. This allows users to call .poses after the agent calls + done, and have it correspond to the current episode. + """ + self._agent_signals_done = True + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.done, + thor_action="Done", + ) + + def move_held_object( + self, x_meters: float, y_meters: float, z_meters: float + ) -> bool: + """Move the object in the agent's hand by the specified amount. + + The maximum magnitude that the object + can move in one time step is 0.5 meters. If the calculated magnitude is + above 0.5, it's magnitude will be clipped to 0.5. + + The action is successful in the case that the agent is holding an + object and moving the object by the specified amount does not bump + into an object. + + # Parameters + x_meters : (float, min=-0.5, max=0.5) movement meters along the x-axis. + y_meters : (float, min=-0.5, max=0.5) movement meters along the y-axis. + z_meters : (float, min=-0.5, max=0.5) movement meters along the z-axis. + + # Exceptions + In walkthrough phase. This method can only be called within the + unshuffle phase. The shuffle phase starts with controller.shuffle() + and ends with controller.reset(). + """ + mag = math.sqrt(x_meters ** 2 + y_meters ** 2 + z_meters ** 2) + + # clips the max value at MAX_HAND_METERS. + if MAX_HAND_METERS > mag: + scale = MAX_HAND_METERS / mag + x_meters *= scale + y_meters *= scale + z_meters *= scale + + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.move_held_object, + thor_action="MoveHandDelta", + updated_kwarg_names={"x_meters": "x", "y_meters": "y", "z_meters": "z"}, + x_meters=x_meters, + y_meters=y_meters, + z_meters=z_meters, + default_thor_kwargs=self.physics_step_kwargs, + ) + + def rotate_held_object(self, x: float, y: float, z: float) -> bool: + """Rotate the object in the agent's hand by the specified degrees. + + The rotation parameters are scaled linearly to put rotations + between [-90:90] degrees. The action is only successful agent is holding an object. + + # Parameters + x : (float, min=-0.5, max=0.5) rotation along the x-axis. + y : (float, min=-0.5, max=0.5) rotation along the y-axis. + z : (float, min=-0.5, max=0.5) rotation along the z-axis. + """ + + def rescale_xyz(kwargs: Dict[str, Any]): + for k in ["x", "y", "z"]: + kwargs[k] = 180 * kwargs[k] + + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.rotate_held_object, + thor_action="RotateHand", + preprocess_kwargs_inplace=rescale_xyz, + x=x, + y=y, + z=z, + default_thor_kwargs=self.physics_step_kwargs, + ) + + def drop_held_object(self) -> bool: + """Drop the object in the agent's hand. + + The action is only successful agent is holding an object. + """ + return execute_action( + controller=self.controller, + action_space=self.action_space, + action_fn=self.drop_held_object, + thor_action="DropHandObject", + default_thor_kwargs={"autoSimulation": False, **self.physics_step_kwargs,}, + ) + + def drop_held_object_with_snap(self) -> bool: + """Drop the object in the agent's hand to the target position. + + Exception is raised if shuffle has not yet been called on the current + episode or the agent is in default mode. + + For this action to work: + 1. The agent must be within 1.5 meters from the goal object's + position, observed during the walkthrough phase. + 2. The agent must be looking in the direction of where it was + located in the walkthrough phase. + + Otherwise, the object will be placed in a visible receptacle or + if this also fails, it will be simply dropped. + + # Returns + + `True` if the drop was successful, otherwise `False`. + """ + if not self.shuffle_called: + raise Exception("Must be in unshuffle stage.") + if not self.mode == RearrangeMode.SNAP: + raise Exception("Must be in RearrangeMode.SNAP mode.") + + # round positions to 2 decimals + DEC = 2 + + with include_object_data(self.controller): + event = self.controller.last_event + held_obj = self.held_object + + if held_obj is None: + return False + + # When dropping up an object, make it breakable. + self.controller.step( + "MakeObjectBreakable", objectId=self.held_object["objectId"] + ) + + agent = event.metadata["agent"] + goal_pose = self.obj_name_to_walkthrough_start_pose[held_obj["name"]] + goal_pos = goal_pose["position"] + goal_rot = goal_pose["rotation"] + good_positions_to_drop_from = self._interactable_positions_cache.get( + scene_name=self.last_event.metadata["sceneName"], + obj={**held_obj, **{"position": goal_pos, "rotation": goal_rot},}, + controller=self.controller, + force_cache_refresh=self.force_cache_reset, # Forcing cache resets when not training. + ) + + def position_to_tuple(position: Dict[str, float]): + return tuple(round(position[k], DEC) for k in ["x", "y", "z"]) + + agent_xyz = position_to_tuple(agent["position"]) + agent_rot = (round(agent["rotation"]["y"] / 90) * 90) % 360 + agent_standing = int(agent["isStanding"]) + agent_horizon = round(agent["cameraHorizon"]) + + for valid_agent_pos in good_positions_to_drop_from: + # Checks if the agent is close enough to the target + # for the object to be snapped to the target location. + valid_xyz = position_to_tuple(valid_agent_pos) + valid_rot = (round(valid_agent_pos["rotation"] / 90) * 90) % 360 + valid_standing = int(valid_agent_pos["standing"]) + valid_horizon = round(valid_agent_pos["horizon"]) + if ( + valid_xyz == agent_xyz # Position + and valid_rot == agent_rot # Rotation + and valid_standing == agent_standing # Standing + and round(valid_horizon) == agent_horizon # Horizon + ): + # Try a few locations near the target for robustness' sake + positions = [ + { + "x": goal_pos["x"] + 0.001 * xoff, + "y": goal_pos["y"] + 0.001 * yoff, + "z": goal_pos["z"] + 0.001 * zoff, + } + for xoff in [0, -1, 1] + for zoff in [0, -1, 1] + for yoff in [0, 1, 2] + ] + self.controller.step( + action="TeleportObject", + objectId=held_obj["objectId"], + rotation=goal_rot, + positions=positions, + forceKinematic=True, + allowTeleportOutOfHand=True, + makeUnbreakable=True, + ) + break + + if self.held_object is None: + # If we aren't holding the object anymore, then let's check if it + # was placed into the right location. + if self.are_poses_equal( + goal_pose=get_pose_info(goal_pose), + cur_pose=next( + get_pose_info(o) + for o in self.last_event.metadata["objects"] + if o["name"] == goal_pose["name"] + ), + treat_broken_as_unequal=True, + ): + return True + else: + return False + + # We couldn't teleport the object to the target location, let's try placing it + # in a visible receptacle. + possible_receptacles = [ + o for o in event.metadata["objects"] if o["visible"] and o["receptacle"] + ] + possible_receptacles = sorted( + possible_receptacles, key=lambda o: (o["distance"], o["objectId"]) + ) + for possible_receptacle in possible_receptacles: + self.controller.step( + action="PutObject", + objectId=possible_receptacle["objectId"], + **self.physics_step_kwargs, + ) + if self.controller.last_event.metadata["lastActionSuccess"]: + break + + # We failed to place the object into a receptacle, let's just drop it. + if len(possible_receptacles) == 0 or ( + not self.controller.last_event.metadata["lastActionSuccess"] + ): + self.controller.step( + "DropHeldObjectAhead", + forceAction=True, + autoSimulation=False, + **{**self.physics_step_kwargs, "actionSimulationSeconds": 1.5}, + ) + + return False + + @property + def last_event(self) -> ai2thor.server.Event: + """Return the AI2-THOR Event from the most recent controller action.""" + return self.controller.last_event + + @property + def scene(self) -> str: + """Return the current AI2-THOR scene name.""" + return self.controller.last_event.metadata["sceneName"].replace("_physics", "") + + @staticmethod + def compare_poses( + goal_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + cur_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + ) -> Union[Dict[str, Any], List[Dict[str, Any]]]: + """Compare two object poses and return where they differ. + + The `goal_pose` must not have the object as broken. + + # Parameters + goal_pose : The goal pose of the object. + cur_pose : The current pose of the object. + + # Returns + A dictionary with the following keys keys and values + * "broken" - `True` if the `cur_pose` is broken in which case all below values are `None`, otherwise `False`. + * "iou" - The IOU overlap between the two object poses (min==0, max==1) using their 3d bounding boxes. Computed + using an approximate sampling procedure. If the `position_dist` (see below) is <0.01 and the `rotation_dist` + is <10.0 then the IOU computation is short circuited and a value of 1 is returned. + * "openness_diff" - `None` if the object types are not openable. Otherwise this equals the absolute difference + between the `openness` values of the two poses. + * "position_dist" - The euclidean distance between the positions of the center points of the two poses. + * "rotation_dist" - The angle (in degrees) between the two poses. See the + `IThorEnvironment.angle_between_rotations` function for more information. + """ + if isinstance(goal_pose, Sequence): + assert isinstance(cur_pose, Sequence) + return [ + RearrangeTHOREnvironment.compare_poses(goal_pose=gp, cur_pose=cp) + for gp, cp in zip(goal_pose, cur_pose) + ] + + assert goal_pose["type"] == cur_pose["type"] + assert not goal_pose["broken"] + + if cur_pose["broken"]: + return { + "broken": True, + "iou": None, + "openness_diff": None, + "position_dist": None, + "rotation_dist": None, + } + + if goal_pose["bounding_box"] is None and cur_pose["bounding_box"] is None: + iou = None + position_dist = None + rotation_dist = None + else: + position_dist = IThorEnvironment.position_dist( + goal_pose["position"], cur_pose["position"] + ) + rotation_dist = IThorEnvironment.angle_between_rotations( + goal_pose["rotation"], cur_pose["rotation"] + ) + if position_dist < 1e-2 and rotation_dist < 10.0: + iou = 1.0 + else: + try: + iou = iou_box_3d( + goal_pose["bounding_box"], cur_pose["bounding_box"] + ) + except Exception as _: + get_logger().warning( + "Could not compute IOU, will assume it was 0. Error during IOU computation:" + f"\n{traceback.format_exc()}" + ) + iou = 0 + + if goal_pose["openness"] is None and cur_pose["openness"] is None: + openness_diff = None + else: + openness_diff = abs(goal_pose["openness"] - cur_pose["openness"]) + + return { + "broken": False, + "iou": iou, + "openness_diff": openness_diff, + "position_dist": position_dist, + "rotation_dist": rotation_dist, + } + + @classmethod + def pose_difference_energy( + cls, + goal_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + cur_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + min_iou: float = IOU_THRESHOLD, + open_tol: float = OPENNESS_THRESHOLD, + pos_barrier: float = POSITION_DIFF_BARRIER, + ) -> Union[float, np.ndarray]: + """Computes the energy between two poses. + + The energy (taking values in [0:1]) between two poses provides a soft and holistic measure of how + far apart two poses are. If the energy is near 1 then the two poses are very dissimilar, if the energy + is near 1 then the two poses are nearly equal. + + # Parameters + goal_pose : The goal pose of the object. + cur_pose : The current pose of the object. + min_iou : As the IOU between the two poses increases between [0:min_iou] the contribution to the energy + corresponding solely to the to the IOU decrease from 0.5 to 0 in a linear fashion. + open_tol: If the object is openable, then if the absolute openness difference is less than `open_tol` + the energy is 0. Otherwise the pose energy is 1. + pos_barrier: If two poses are separated by a large distance, we would like to decrease the energy as + the two poses are brought closer together. The `pos_barrier` controls when this energy decrease begins, + namely at its default value of 2.0, the contribution of the distance to + the energy decreases linearly from 0.5 to 0 as the distance between the two poses decreases from + 2 meters to 0 meters. + """ + if isinstance(goal_pose, Sequence): + assert isinstance(cur_pose, Sequence) + return np.array( + [ + cls.pose_difference_energy( + goal_pose=p0, + cur_pose=p1, + min_iou=min_iou, + open_tol=open_tol, + pos_barrier=pos_barrier, + ) + for p0, p1 in zip(goal_pose, cur_pose) + ] + ) + assert not goal_pose["broken"] + + pose_diff = cls.compare_poses(goal_pose=goal_pose, cur_pose=cur_pose) + if pose_diff["broken"]: + return 1.0 + + if pose_diff["openness_diff"] is None or goal_pose["pickupable"]: + gbb = np.array(goal_pose["bounding_box"]) + cbb = np.array(cur_pose["bounding_box"]) + + iou = pose_diff["iou"] + iou_energy = max(1 - iou / min_iou, 0) + + if iou > 0: + position_dist_energy = 0.0 + else: + min_pairwise_dist_between_corners = np.sqrt( + ( + ( + np.tile(gbb, (1, 8)).reshape(-1, 3) + - np.tile(cbb, (8, 1)).reshape(-1, 3) + ) + ** 2 + ).sum(1) + ).min() + position_dist_energy = min( + min_pairwise_dist_between_corners / pos_barrier, 1.0 + ) + + return 0.5 * iou_energy + 0.5 * position_dist_energy + + else: + return 1.0 * (pose_diff["openness_diff"] > open_tol) + + @classmethod + def are_poses_equal( + cls, + goal_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + cur_pose: Union[Dict[str, Any], Sequence[Dict[str, Any]]], + min_iou: float = 0.5, + open_tol: float = 0.2, + treat_broken_as_unequal: bool = False, + ) -> Union[bool, np.ndarray]: + """Determine if two object poses are equal (up to allowed error). + + The `goal_pose` must not have the object as broken. + + # Parameters + goal_pose : The goal pose of the object. + cur_pose : The current pose of the object. + min_iou : If the two objects are pickupable objects, they are considered equal if their IOU is `>=min_iou`. + open_tol: If the object is openable and not pickupable, then the poses are considered equal if the absolute + openness difference is less than `open_tol`. + treat_broken_as_unequal : If `False` an exception will be thrown if the `cur_pose` is broken. If `True`, then + if `cur_pose` is broken this function will always return `False`. + """ + if isinstance(goal_pose, Sequence): + assert isinstance(cur_pose, Sequence) + return np.array( + [ + cls.are_poses_equal( + goal_pose=p0, + cur_pose=p1, + min_iou=min_iou, + open_tol=open_tol, + treat_broken_as_unequal=treat_broken_as_unequal, + ) + for p0, p1 in zip(goal_pose, cur_pose) + ] + ) + assert not goal_pose["broken"] + + if cur_pose["broken"]: + if treat_broken_as_unequal: + return False + else: + raise RuntimeError( + f"Cannot determine if poses of two objects are" + f" equal if one is broken object ({goal_pose} v.s. {cur_pose})." + ) + + pose_diff = cls.compare_poses(goal_pose=goal_pose, cur_pose=cur_pose) + + return (pose_diff["iou"] is None or pose_diff["iou"] > min_iou) and ( + pose_diff["openness_diff"] is None or pose_diff["openness_diff"] <= open_tol + ) + + @property + def all_rearranged_or_broken(self): + """Return if every object is simultaneously broken or in its correct + pose. + + The unshuffle agent can make no more progress on its task in the + case that that every object is either (1) in its correct + position or (2) broken so that it can never be placed in its + correct position. This function simply returns whether this is + the case. + """ + return all( + cp["broken"] or self.are_poses_equal(goal_pose=gp, cur_pose=cp) + for _, gp, cp in zip(*self.poses) + ) + + @property + def poses( + self, + ) -> Tuple[List[Dict[str, Any]], List[Dict[str, Any]], List[Dict[str, Any]]]: + """Return (unshuffle start, walkthrough start, current) pose for every + object in the scene. + + Can only be called during the unshuffle phase. + + # Returns + A Tuple of containing three ordered lists of object poses `(unshuffle_start_poses, walkthrough_start_poses, current_poses)` + such that, for `0 <= i < len(current_poses)`, + * `unshuffle_start_poses[i]` - corresponds to the pose of the ith object at the start of the unshuffle phase. + * `walkthrough_start_poses[i]` - corresponds to the pose of the ith object at the start of the walkthrough phase. + * `current_poses[i]` - corresponds to the pose of the ith object in the current environment. + During the unshuffle phase is commonly useful to compare `current_poses[i]` against `walkthrough_start_poses[i]` + to get a sense of the agent's progress towards placing the objects into their correct locations. + """ + # Ensure we are in the unshuffle phase. + if not self.shuffle_called: + raise Exception("shuffle() must be called before accessing poses") + + # Get current object information + with include_object_data(self.controller): + obj_name_to_current_obj = self._obj_list_to_obj_name_to_pose_dict( + self.controller.last_event.metadata["objects"] + ) + + ordered_obj_names = list(self.obj_name_to_walkthrough_start_pose.keys()) + + current_objs_list = [] + for obj_name in ordered_obj_names: + if obj_name not in obj_name_to_current_obj: + # obj_name_to_predicted_obj can have more objects than goal objects + # (breaking objects can generate new ones) + # The other way (more goal poses than predicted objs) is a problem, we will + # assume that the disappeared objects are broken + if not self._have_warned_about_mismatch: + # Don't want to warn many many times during single episode + self._have_warned_about_mismatch = True + usos = set(self.obj_name_to_unshuffle_start_pose.keys()) + wsos = set(self.obj_name_to_walkthrough_start_pose.keys()) + cos = set(obj_name_to_current_obj.keys()) + get_logger().warning( + f"Mismatch between walkthrough start, unshuffle start, and current pose objects." + f"\nscene = {self.scene}, index {self.current_task_spec.metrics.get('index')}" + f"\nusos-wsos, wsos-usos = {usos - wsos}, {wsos - usos}" + f"\ncos-usos, usos-cos = {cos - usos}, {usos - cos}" + f"\ncos-wsos, wsos-cos = {cos - wsos}, {wsos - cos}" + ) + obj_name_to_current_obj[obj_name] = { + **self.obj_name_to_walkthrough_start_pose[obj_name], + "isBroken": True, + "broken": True, + "position": None, + "rotation": None, + "openness": None, + } + current_objs_list.append(obj_name_to_current_obj[obj_name]) + + # We build a cache of object poses corresponding to the start of the walkthrough/unshuffle phases + # as these remain the same until the `reset` function is called. + if self._sorted_and_extracted_walkthrough_start_poses is None: + broken_obj_names = [ + obj_name + for obj_name in ordered_obj_names + if self.obj_name_to_walkthrough_start_pose[obj_name]["isBroken"] + ] + if len(broken_obj_names) != 0: + if not self.current_task_spec.runtime_sample: + # Don't worry about reporting broken objects when using + # a "runtime_sample" task spec as these types of things are + # more common. + get_logger().warning( + f"BROKEN GOAL OBJECTS!" + f"\nIn scene {self.scene}" + f"\ntask spec {self.current_task_spec}" + f"\nbroken objects {broken_obj_names}" + ) + + # If we find a broken goal object, we will simply pretend as though it was not + # broken. This means the agent can never succeed in unshuffling, this means it is + # possible that even a perfect agent will not succeed for some tasks. + for broken_obj_name in broken_obj_names: + self.obj_name_to_walkthrough_start_pose[broken_obj_name][ + "isBroken" + ] = False + self.obj_name_to_unshuffle_start_pose[broken_obj_name][ + "isBroken" + ] = False + ordered_obj_names = list(self.obj_name_to_walkthrough_start_pose.keys()) + + walkthrough_start_poses = tuple( + self.obj_name_to_walkthrough_start_pose[k] for k in ordered_obj_names + ) + unshuffle_start_poses = tuple( + self.obj_name_to_unshuffle_start_pose[k] for k in ordered_obj_names + ) + self._sorted_and_extracted_unshuffle_start_poses = get_pose_info( + unshuffle_start_poses + ) + self._sorted_and_extracted_walkthrough_start_poses = get_pose_info( + walkthrough_start_poses + ) + + return ( + self._sorted_and_extracted_unshuffle_start_poses, + self._sorted_and_extracted_walkthrough_start_poses, + get_pose_info(current_objs_list), + ) + + def _runtime_reset( + self, task_spec: RearrangeTaskSpec, force_axis_aligned_start: bool + ): + """Randomly initialize a scene at runtime. + + Rather than using a predefined collection of object states, + randomly generate these positions at runtime. This may be useful for obtaining more + diverse training examples. + + # Parameters + task_spec : The RearrangeTaskSpec for this runtime sample. `task_spec.runtime_sample` should be `True`. + force_axis_aligned_start : If `True`, this will force the agent's start rotation to be 'axis aligned', i.e. + to equal to 0, 90, 180, or 270 degrees. + """ + assert ( + task_spec.runtime_sample + ), "Attempted to use a runtime reset with a task spec which has a `False` `runtime_sample` property." + + # For efficiency reasons, we do not completely reset the ai2thor scene (which + # will reset all object states to a default configuration and restore broken + # objects to their unbroken state) on every call to `_runtime_reset` if the scene name hasn't changed. Instead + # we reset the ai2thor scene only every 25 calls. + if ( + task_spec.scene != self.scene + or self.current_task_spec.runtime_data["count"] >= 25 + ): + count = 1 + self.controller.reset(task_spec.scene) + + if self._enhanced_physics_determinism: + self.controller.step("PausePhysicsAutoSim") + + remove_objects_until_all_have_identical_meshes(self.controller) + self.controller.step( + "InitialRandomSpawn", forceVisible=True, placeStationary=True, + ) + md = self.controller.step("GetReachablePositions").metadata + assert md["lastActionSuccess"] + reachable_positions = md["actionReturn"] + else: + count = 1 + self.current_task_spec.runtime_data["count"] + reachable_positions = self.current_task_spec.runtime_data[ + "reachable_positions" + ] + + self.current_task_spec = task_spec + self.current_task_spec.stage = "Unknown" + self.current_task_spec.runtime_data = { + "count": count, + "reachable_positions": reachable_positions, + } + + with include_object_data(self.controller): + random.shuffle(reachable_positions) + + # set agent position + max_teleports = min(10, len(reachable_positions)) + for teleport_count, pos in enumerate(reachable_positions): + rot = 30 * random.randint(0, 11) + if force_axis_aligned_start: + rot = round_to_factor(30 * random.randint(0, 11), 90) + md = self.controller.step( + "TeleportFull", + **pos, + rotation={"x": 0, "y": rot, "z": 0}, + horizon=0.0, + standing=True, + forceAction=teleport_count == max_teleports - 1, + ).metadata + if md["lastActionSuccess"]: + break + else: + raise RuntimeError("No reachable positions?") + + assert md["lastActionSuccess"] + self.current_task_spec.agent_position = pos + self.current_task_spec.agent_rotation = rot + self.current_task_spec.runtime_data["starting_objects"] = md["objects"] + + def _task_spec_reset( + self, task_spec: RearrangeTaskSpec, force_axis_aligned_start: bool + ): + """Initialize a ai2thor environment from a (non-runtime sample) task + specification (i.e. an exhaustive collection of object poses for the + walkthrough and unshuffle phase). + + After this call, the environment will be ready for use in the walkthrough phase. + + # Parameters + task_spec : The RearrangeTaskSpec for this task. `task_spec.runtime_sample` should be `False`. + force_axis_aligned_start : If `True`, this will force the agent's start rotation to be 'axis aligned', i.e. + to equal to 0, 90, 180, or 270 degrees. + """ + assert ( + not task_spec.runtime_sample + ), "`_task_spec_reset` requires that `task_spec.runtime_sample` is `False`." + + self.current_task_spec = task_spec + + self.controller.reset(self.current_task_spec.scene) + if self._enhanced_physics_determinism: + self.controller.step("PausePhysicsAutoSim") + + if force_axis_aligned_start: + self.current_task_spec.agent_rotation = round_to_factor( + self.current_task_spec.agent_rotation, 90 + ) + + # set agent position + pos = self.current_task_spec.agent_position + rot = {"x": 0, "y": self.current_task_spec.agent_rotation, "z": 0} + self.controller.step( + "TeleportFull", + **pos, + rotation=rot, + horizon=0.0, + standing=True, + forceAction=True, + ) + + # show object metadata + with include_object_data(self.controller): + # open objects + for obj in self.current_task_spec.openable_data: + # id is re-found due to possible floating point errors + current_obj_info = next( + l_obj + for l_obj in self.last_event.metadata["objects"] + if l_obj["name"] == obj["name"] + ) + self.controller.step( + action="OpenObject", + objectId=current_obj_info["objectId"], + openness=obj["target_openness"], + forceAction=True, + **self.physics_step_kwargs, + ) + + # arrange walkthrough poses for pickupable objects + self.controller.step( + "SetObjectPoses", + objectPoses=self.current_task_spec.target_poses, + placeStationary=False, + enablePhysicsJitter=True, + forceRigidbodySleep=True, + skipMoveable=True, + ) + assert self.controller.last_event.metadata["lastActionSuccess"] + + def reset( + self, task_spec: RearrangeTaskSpec, force_axis_aligned_start: bool = False, + ) -> None: + """Reset the environment with respect to the new task specification. + + The environment will start in the walkthrough phase. + + # Parameters + task_spec : The `RearrangeTaskSpec` defining environment state. + force_axis_aligned_start : If `True`, this will force the agent's start rotation to be 'axis aligned', i.e. + to equal to 0, 90, 180, or 270 degrees. + """ + if task_spec.runtime_sample: + self._runtime_reset( + task_spec=task_spec, force_axis_aligned_start=force_axis_aligned_start + ) + else: + self._task_spec_reset( + task_spec=task_spec, force_axis_aligned_start=force_axis_aligned_start, + ) + + self.shuffle_called = False + self.obj_name_to_walkthrough_start_pose = self._obj_list_to_obj_name_to_pose_dict( + self.last_event.metadata["objects"] + ) + + self._have_warned_about_mismatch = False + self._sorted_and_extracted_walkthrough_start_poses = None + self._sorted_and_extracted_unshuffle_start_poses = None + self._agent_signals_done = False + + def _runtime_shuffle(self): + """Randomly shuffle objects in the environment to start the unshuffle + phase. + + Also resets the agent's position to its start position. + """ + assert (not self.shuffle_called) and self.current_task_spec.runtime_sample + + task_spec = self.current_task_spec + + # set agent position + pos = task_spec.agent_position + rot = {"x": 0, "y": task_spec.agent_rotation, "z": 0} + self.controller.step( + "TeleportFull", + **pos, + rotation=rot, + horizon=0.0, + standing=True, + forceAction=True, + ) + + # Randomly shuffle a subset of objects. + nobjects_to_move = random.randint(1, 5) + pickupable = [ + o for o in task_spec.runtime_data["starting_objects"] if o["pickupable"] + ] + random.shuffle(pickupable) + + pickupable.sort( + key=lambda x: 1 * (x["objectType"] in OBJECT_TYPES_TO_NOT_MOVE), + reverse=True, + ) + objects_to_not_move = pickupable[:-nobjects_to_move] + + object_ids_not_to_move = [o["objectId"] for o in objects_to_not_move] + object_ids_not_to_move.extend( + get_object_ids_to_not_move_from_object_types( + controller=self.controller, object_types=OBJECT_TYPES_TO_NOT_MOVE, + ) + ) + self.controller.step( + "InitialRandomSpawn", + excludedObjectIds=object_ids_not_to_move, + forceVisible=True, + placeStationary=True, + ) + + # Randomly open some subset of objects. + num_objects_to_open = random.randint(0, 1) + openable_objects = [ + o + for o in self.last_event.metadata["objects"] + if o["openable"] and not o["pickupable"] + ] + random.shuffle(openable_objects) + open_objs( + objects_to_open=openable_objects[:num_objects_to_open], + controller=self.controller, + ) + + self.current_task_spec.runtime_data[ + "target_objects" + ] = self.last_event.metadata["objects"] + + def _task_spec_shuffle(self, reset: bool = False): + """Shuffle objects in the environment to start the unshuffle phase + using the current task specification. + + Also resets the agent's position to its start position. + """ + assert not (self.current_task_spec.runtime_sample or self.shuffle_called) + + task_spec = self.current_task_spec + + # TODO: No need to reset every time right? + if reset: + self.controller.reset(self.scene) + if self._enhanced_physics_determinism: + self.controller.step("PausePhysicsAutoSim") + + # set agent position + pos = task_spec.agent_position + rot = {"x": 0, "y": task_spec.agent_rotation, "z": 0} + self.controller.step( + "TeleportFull", + **pos, + rotation=rot, + horizon=0.0, + standing=True, + forceAction=True, + ) + + # open objects + with include_object_data(self.controller): + for obj in task_spec.openable_data: + # id is re-found due to possible floating point errors + current_obj_info = next( + l_obj + for l_obj in self.last_event.metadata["objects"] + if l_obj["name"] == obj["name"] + ) + + self.controller.step( + action="OpenObject", + objectId=current_obj_info["objectId"], + openness=obj["start_openness"], + forceAction=True, + **( + self.physics_step_kwargs + if obj is task_spec.openable_data[-1] + else {} + ), + ) + + # arrange unshuffle start poses for pickupable objects + self.controller.step( + "SetObjectPoses", + objectPoses=task_spec.starting_poses, + placeStationary=False, + enablePhysicsJitter=True, + forceRigidbodySleep=True, + skipMoveable=True, + ) + assert self.controller.last_event.metadata["lastActionSuccess"] + + def shuffle(self, require_reset: bool = False): + """Shuffle objects in the environment to start the unshuffle phase.""" + + assert not self.shuffle_called + + runtime_sample = self.current_task_spec.runtime_sample + if runtime_sample: + self._runtime_shuffle() + else: + self._task_spec_shuffle(reset=require_reset) + + # Save object metadata + with include_object_data(self.controller): + self.obj_name_to_unshuffle_start_pose = self._obj_list_to_obj_name_to_pose_dict( + self.last_event.metadata["objects"] + ) + + if len(self.obj_name_to_unshuffle_start_pose) != len( + self.obj_name_to_walkthrough_start_pose + ): + if runtime_sample or require_reset: + walkthrough_start_obj_names = set( + self.obj_name_to_walkthrough_start_pose.keys() + ) + unshuffle_start_obj_names = set( + self.obj_name_to_unshuffle_start_pose.keys() + ) + raise PoseMismatchError( + "Irrecoverable difference between walkthrough and unshuffle phase objects." + f"\ng-i, i-g = {walkthrough_start_obj_names - unshuffle_start_obj_names}," + f" {unshuffle_start_obj_names - walkthrough_start_obj_names}" + ) + else: + self.shuffle(require_reset=True) + + self.shuffle_called = True + self._agent_signals_done = False + + @staticmethod + def _obj_list_to_obj_name_to_pose_dict( + objects: List[Dict[str, Any]] + ) -> OrderedDict: + """Helper function to transform a list of object data dicts into a + dictionary.""" + objects = [ + o + for o in objects + if o["openable"] or o.get("objectOrientedBoundingBox") is not None + ] + d = OrderedDict( + (o["name"], o) for o in sorted(objects, key=lambda x: x["name"]) + ) + assert len(d) == len(objects) + return d + + def stop(self): + """Terminate the current AI2-THOR session.""" + try: + self.controller.stop() + except Exception as _: + pass + + def __del__(self): + self.stop() diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/utils.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/utils.py new file mode 100644 index 0000000..7f45772 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/utils.py @@ -0,0 +1,521 @@ +import logging +import random +from typing import Dict, Callable, Tuple, Union, List, Any, Optional, Sequence + +import ai2thor.controller +import lru +import numpy as np +from allenact.utils.system import ImportChecker +from allenact_plugins.ithor_plugin.ithor_environment import IThorEnvironment +from allenact_plugins.ithor_plugin.ithor_util import include_object_data + +_UNIFORM_BOX_CACHE = {} + + +def save_frames_to_mp4(frames: Sequence[np.ndarray], file_name: str, fps=3): + import matplotlib.pyplot as plt + from matplotlib import animation + import pylab + + h, w, _ = frames[0].shape + aspect_ratio = w / h + fig = plt.figure(figsize=(5 * aspect_ratio, 5)) + ax = fig.add_subplot(111) + ax.set_frame_on(False) + fig.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=None, hspace=None) + ax.set_aspect("equal") + ax.get_xaxis().set_visible(False) + ax.get_yaxis().set_visible(False) + + im = ax.imshow(frames[0], cmap="gray", interpolation="nearest") + im.set_clim([0, 255]) + + pylab.tight_layout() + + def update_img(n): + if n >= len(frames): + im.set_data(frames[-1]) + else: + im.set_data(frames[n]) + return im + + ani = animation.FuncAnimation(fig, update_img, len(frames) - 1, interval=200) + writer = animation.writers["ffmpeg"](fps=fps) + + ani.save(file_name, writer=writer, dpi=300) + + +def hand_in_initial_position( + controller: ai2thor.controller.Controller, ignore_rotation: bool = False +): + metadata = controller.last_event.metadata + return IThorEnvironment.position_dist( + metadata["heldObjectPose"]["localPosition"], {"x": 0, "y": -0.16, "z": 0.38}, + ) < 1e-4 and ( + ignore_rotation + or IThorEnvironment.angle_between_rotations( + metadata["heldObjectPose"]["localRotation"], + {"x": -metadata["agent"]["cameraHorizon"], "y": 0, "z": 0}, + ) + < 1e-2 + ) + + +class BoundedFloat(object): + """Declare a bounded float placeholder variable.""" + + def __init__(self, low: float, high: float): + """High is the max float value, low is the min (both inclusive).""" + self.types = {float, int, np.float64} + if type(low) not in self.types or type(high) not in self.types: + raise ValueError("Bounds must both be floats.") + if low > high: + raise ValueError("low must be less than high.") + self.low = low + self.high = high + + def sample(self) -> float: + """Return a random float within the initialized range.""" + return random.random() * (self.high - self.low) + self.low + + def __contains__(self, n: float): + """Assert n is within this classes bounded range.""" + if type(n) not in self.types: + raise ValueError("n must be a float (or an int).") + return self.low <= n <= self.high + + +class RearrangeActionSpace(object): + """Control which actions with bounded variables can be executed.""" + + def __init__(self, actions: Dict[Callable, Dict[str, BoundedFloat]]): + """Build a new AI2-THOR action space. + + Attributes + :actions (Dict[Callable, Dict[str, BoundedFloat]]) must be in the form + { + : { + '': , + '': , + '': , + '': , + ... + }, + ... + }, + where the action variables are in the value and the callable function + is the key. + """ + self.keys = list(actions.keys()) + self.actions = actions + + def execute_random_action(self, log_choice: bool = True) -> None: + """Execute a random action within the specified action space.""" + action = random.choice(self.keys) + kwargs = { + name: bounds.sample() for name, bounds in self.actions[action].items() + } + + # logging + if log_choice: + kwargs_str = str("".join(f" {k}: {v},\n" for k, v in kwargs.items())) + kwargs_str = "\n" + kwargs_str[:-2] if kwargs_str else "" + logging.info(f"Executing {action.__name__}(" + kwargs_str + ")") + + action(**kwargs) + + def __contains__( + self, action_fn_and_kwargs: Tuple[Callable, Dict[str, float]] + ) -> bool: + """Return if action_fn with variables is valid in this ActionSpace.""" + action_fn, variables = action_fn_and_kwargs + + # asserts the action is valid + if action_fn not in self.actions: + return False + + # asserts the variables are valid + for name, x in variables.items(): + if x not in self.actions[action_fn][name]: + return False + + return True + + def __str__(self) -> str: + """Return a string representation of the action space.""" + return self.__repr__() + + def __repr__(self) -> str: + """Return a string representation of the action space.""" + s = "" + tab = " " * 2 # default tabs have like 8 spaces on shells + for action_fn, vars in self.actions.items(): + fn_name = action_fn.__name__ + vstr = "" + for i, (var_name, bound) in enumerate(vars.items()): + low = bound.low + high = bound.high + vstr += f"{tab * 2}{var_name}: float(low={low}, high={high})" + vstr += "\n" if i + 1 == len(vars) else ",\n" + vstr = "\n" + vstr[:-1] if vstr else "" + s += f"{tab}{fn_name}({vstr}),\n" + s = s[:-2] if s else "" + return "ActionSpace(\n" + s + "\n)" + + +def extract_obj_data(obj): + """Return object evaluation metrics based on the env state.""" + if "type" in obj: + return { + "type": obj["type"], + "position": obj["position"], + "rotation": obj["rotation"], + "openness": obj["openness"], + "pickupable": obj["pickupable"], + "broken": obj["broken"], + "bounding_box": obj["bounding_box"], + "objectId": obj["objectId"], + "name": obj["name"], + "parentReceptacles": obj.get("parentReceptacles", []), + } + return { + "type": obj["objectType"], + "position": obj["position"], + "rotation": obj["rotation"], + "openness": obj["openness"] if obj["openable"] else None, + "pickupable": obj["pickupable"], + "broken": obj["isBroken"], + "objectId": obj["objectId"], + "name": obj["name"], + "parentReceptacles": obj.get("parentReceptacles", []), + "bounding_box": obj["objectOrientedBoundingBox"]["cornerPoints"] + if obj["objectOrientedBoundingBox"] + else None, + } + + +def get_pose_info( + objs: Union[Sequence[Dict[str, Any]], Dict[str, Any]] +) -> Union[List[Dict[str, Any]], Dict[str, Any]]: + """Return data about each specified object. + + For each object, the return consists of its type, position, + rotation, openness, and bounding box. + """ + # list of objects + if isinstance(objs, Sequence): + return [extract_obj_data(obj) for obj in objs] + # single object + return extract_obj_data(objs) + + +def execute_action( + controller: ai2thor.controller.Controller, + action_space: RearrangeActionSpace, + action_fn: Callable, + thor_action: str, + error_message: str = "", + updated_kwarg_names: Optional[Dict[str, str]] = None, + default_thor_kwargs: Optional[Dict[str, Any]] = None, + preprocess_kwargs_inplace: Optional[Callable] = None, + **kwargs: float, +) -> bool: + """Execute a bounded action within the AI2-THOR controller.""" + if updated_kwarg_names is None: + updated_kwarg_names = {} + if default_thor_kwargs is None: + default_thor_kwargs = {} + + if (action_fn, kwargs) not in action_space: # Checks that values are in bounds + raise ValueError( + error_message + + f" action_fn=={action_fn}, kwargs=={kwargs}, action_space=={action_space}." + ) + + if preprocess_kwargs_inplace is not None: + if len(updated_kwarg_names) != 0: + raise NotImplementedError( + "Cannot have non-empty `updated_kwarg_names` and a non-None `preprocess_kwargs_inplace` argument." + ) + preprocess_kwargs_inplace(kwargs) + + # get rid of bad variable names + for better_kwarg, thor_kwarg in updated_kwarg_names.items(): + kwargs[thor_kwarg] = kwargs[better_kwarg] + del kwargs[better_kwarg] + + for name, value in default_thor_kwargs.items(): + kwargs[name] = value + + event = controller.step(thor_action, **kwargs) + return event.metadata["lastActionSuccess"] + + +def _iou_slow( + b1: Sequence[Sequence[float]], + b2: Sequence[Sequence[float]], + num_points: int = 2197, +) -> float: + """Calculate the IoU between 3d bounding boxes b1 and b2.""" + + with ImportChecker("To use `_iou_slow` you must first install `scipy`."): + from scipy.spatial.qhull import ConvexHull, Delaunay + + b1 = np.array(b1) if not isinstance(b1, np.ndarray) else b1 + b2 = np.array(b2) if not isinstance(b2, np.ndarray) else b2 + + def _outer_bounds( + points_1: np.ndarray, points_2: np.ndarray + ) -> Dict[str, Dict[str, float]]: + """Sample points from the outer bounds formed by points_1/2.""" + assert points_1.shape == points_2.shape + bounds = dict() + for i in range(points_1.shape[0]): + x1, y1, z1 = points_1[i] + x2, y2, z2 = points_2[i] + points = [ + (x1, "x"), + (x2, "x"), + (y1, "y"), + (y2, "y"), + (z1, "z"), + (z2, "z"), + ] + for val, d_key in points: + if d_key not in bounds: + bounds[d_key] = {"min": val, "max": val} + else: + if val > bounds[d_key]["max"]: + bounds[d_key]["max"] = val + elif val < bounds[d_key]["min"]: + bounds[d_key]["min"] = val + return bounds + + def _in_box(box: np.ndarray, points: np.ndarray) -> np.ndarray: + """For each point, return if its in the hull.""" + hull = ConvexHull(box) + deln = Delaunay(box[hull.vertices]) + return deln.find_simplex(points) >= 0 + + bounds = _outer_bounds(b1, b2) + dim_points = int(num_points ** (1 / 3)) + + xs = np.linspace(bounds["x"]["min"], bounds["x"]["max"], dim_points) + ys = np.linspace(bounds["y"]["min"], bounds["y"]["max"], dim_points) + zs = np.linspace(bounds["z"]["min"], bounds["z"]["max"], dim_points) + points = np.array([[x, y, z] for x in xs for y in ys for z in zs], copy=False) + + in_b1 = _in_box(b1, points) + in_b2 = _in_box(b2, points) + + intersection = np.count_nonzero(in_b1 * in_b2) + union = np.count_nonzero(in_b1 + in_b2) + iou = intersection / union if union else 0 + return iou + + +def get_basis_for_3d_box(corners: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: + assert corners[0].sum() == 0.0 + + without_first = corners[1:] + magnitudes1 = np.sqrt((without_first * without_first).sum(1)) + v0_ind = np.argmin(magnitudes1) + v0_mag = magnitudes1[v0_ind] + + if v0_mag < 1e-8: + raise RuntimeError(f"Could not find basis for {corners}") + + v0 = without_first[np.argmin(magnitudes1)] / v0_mag + + orth_to_v0 = (v0.reshape(1, -1) * without_first).sum(-1) < v0_mag / 2.0 + inds_orth_to_v0 = np.where(orth_to_v0)[0] + v1_ind = inds_orth_to_v0[np.argmin(magnitudes1[inds_orth_to_v0])] + v1_mag = magnitudes1[v1_ind] + v1 = without_first[v1_ind, :] / magnitudes1[v1_ind] + + orth_to_v1 = (v1.reshape(1, -1) * without_first).sum(-1) < v1_mag / 2.0 + inds_orth_to_v0_and_v1 = np.where(orth_to_v0 & orth_to_v1)[0] + + if len(inds_orth_to_v0_and_v1) != 1: + raise RuntimeError(f"Could not find basis for {corners}") + + v2_ind = inds_orth_to_v0_and_v1[0] + v2 = without_first[v2_ind, :] / magnitudes1[v2_ind] + + orth_mat = np.stack((v0, v1, v2), axis=1) # Orthonormal matrix + + return orth_mat, magnitudes1[[v0_ind, v1_ind, v2_ind]] + + +def uniform_box_points(n): + if n not in _UNIFORM_BOX_CACHE: + start = 1.0 / (2 * n) + lin_space = np.linspace(start, 1 - start, num=n).reshape(n, 1) + mat = lin_space + for i in range(2): + mat = np.concatenate( + (np.repeat(lin_space, mat.shape[0], 0), np.tile(mat, (n, 1))), axis=1, + ) + _UNIFORM_BOX_CACHE[n] = mat + + return _UNIFORM_BOX_CACHE[n] + + +def iou_box_3d(b1: Sequence[Sequence[float]], b2: Sequence[Sequence[float]]) -> float: + """Calculate the IoU between 3d bounding boxes b1 and b2.""" + b1 = np.array(b1) + b2 = np.array(b2) + + assert b1.shape == b2.shape == (8, 3) + + b1_center = b1[:1, :] + b1 = b1 - b1_center + b1_orth_basis, b1_mags = get_basis_for_3d_box(corners=b1) + + b2 = (b2 - b1_center) @ b1_orth_basis + b2_center = b2[:1, :] + b2 = b2 - b2_center + + b2_orth_basis, b2_mags = get_basis_for_3d_box(corners=b2) + + sampled_points = b2_center.reshape(1, 3) + ( + uniform_box_points(13) @ (b2_mags.reshape(-1, 1) * np.transpose(b2_orth_basis)) + ) + + prop_intersection = ( + np.logical_and( + sampled_points > -1e-3, sampled_points <= 1e-3 + b1_mags.reshape(1, 3) + ) + .all(-1) + .mean() + ) + + b1_vol = np.prod(b1_mags) + b2_vol = np.prod(b2_mags) + intersect_vol = b2_vol * prop_intersection + + return intersect_vol / (b1_vol + b2_vol - intersect_vol) + + +class PoseMismatchError(Exception): + pass + + +class ObjectInteractablePostionsCache: + def __init__(self, max_size: int = 20000, ndigits=2): + self._key_to_positions = lru.LRU(size=max_size) + + self.ndigits = ndigits + self.max_size = max_size + + def _get_key(self, scene_name: str, obj: Dict[str, Any]): + p = obj["position"] + return ( + scene_name, + obj["type"] if "type" in obj else obj["objectType"], + round(p["x"], self.ndigits), + round(p["y"], self.ndigits), + round(p["z"], self.ndigits), + ) + + def get( + self, + scene_name: str, + obj: Dict[str, Any], + controller: ai2thor.controller.Controller, + reachable_positions: Optional[Sequence[Dict[str, float]]] = None, + force_cache_refresh: bool = False, + ) -> List[Dict[str, Union[float, int, bool]]]: + scene_name = scene_name.replace("_physics", "") + obj_key = self._get_key(scene_name=scene_name, obj=obj) + + if force_cache_refresh or obj_key not in self._key_to_positions: + with include_object_data(controller): + metadata = controller.last_event.metadata + + cur_scene_name = metadata["sceneName"].replace("_physics", "") + assert ( + scene_name == cur_scene_name + ), f"Scene names must match when filling a cache miss ({scene_name} != {cur_scene_name})." + + obj_in_scene = next( + (o for o in metadata["objects"] if o["name"] == obj["name"]), None, + ) + if obj_in_scene is None: + raise RuntimeError( + f"Object with name {obj['name']} must be in the scene when filling a cache miss" + ) + + desired_pos = obj["position"] + desired_rot = obj["rotation"] + + cur_pos = obj_in_scene["position"] + cur_rot = obj_in_scene["rotation"] + + should_teleport = ( + IThorEnvironment.position_dist(desired_pos, cur_pos) >= 1e-3 + or IThorEnvironment.rotation_dist(desired_rot, cur_rot) >= 1 + ) + + object_held = obj_in_scene["isPickedUp"] + physics_was_unpaused = controller.last_event.metadata.get( + "physicsAutoSimulation", True + ) + if should_teleport: + if object_held: + if not hand_in_initial_position( + controller=controller, ignore_rotation=True + ): + raise NotImplementedError + + if physics_was_unpaused: + controller.step("PausePhysicsAutoSim") + assert controller.last_event.metadata["lastActionSuccess"] + + event = controller.step( + "TeleportObject", + objectId=obj_in_scene["objectId"], + rotation=desired_rot, + **desired_pos, + forceAction=True, + allowTeleportOutOfHand=True, + forceKinematic=True, + ) + assert event.metadata["lastActionSuccess"] + + metadata = controller.step( + action="GetInteractablePoses", + objectId=obj["objectId"], + positions=reachable_positions, + ).metadata + assert metadata["lastActionSuccess"] + self._key_to_positions[obj_key] = metadata["actionReturn"] + + if should_teleport: + if object_held: + if hand_in_initial_position( + controller=controller, ignore_rotation=True + ): + controller.step( + "PickupObject", + objectId=obj_in_scene["objectId"], + forceAction=True, + ) + assert controller.last_event.metadata["lastActionSuccess"] + + if physics_was_unpaused: + controller.step("UnpausePhysicsAutoSim") + assert controller.last_event.metadata["lastActionSuccess"] + else: + raise NotImplementedError + else: + event = controller.step( + "TeleportObject", + objectId=obj_in_scene["objectId"], + rotation=cur_rot, + **cur_pos, + forceAction=True, + ) + assert event.metadata["lastActionSuccess"] + + return self._key_to_positions[obj_key] diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange_constants.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange_constants.py new file mode 100644 index 0000000..d1b7b56 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange_constants.py @@ -0,0 +1,7 @@ +import os +from pathlib import Path + +ABS_PATH_OF_REARRANGE_TOP_LEVEL_DIR = os.path.abspath(os.path.dirname(Path(__file__))) +IOU_THRESHOLD = 0.5 +OPENNESS_THRESHOLD = 0.2 +POSITION_DIFF_BARRIER = 2.0 From f4ba251563e5c7c33dfc948bf30091fe4b658990 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 11:16:39 +0800 Subject: [PATCH 097/239] feat: add rearrangement 84-action space module --- .../ai2thor_rearrangement_2023/actions.py | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 easi/tasks/ai2thor_rearrangement_2023/actions.py diff --git a/easi/tasks/ai2thor_rearrangement_2023/actions.py b/easi/tasks/ai2thor_rearrangement_2023/actions.py new file mode 100644 index 0000000..fd51753 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/actions.py @@ -0,0 +1,62 @@ +"""AI2-THOR Rearrangement action space (84 discrete actions). + +Matches the original baseline_configs/rearrange_base.py exactly. +Uses regex-based PascalCase->snake_case to avoid stringcase dependency. +""" +from __future__ import annotations + +import re + +from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.constants import ( + OBJECT_TYPES_WITH_PROPERTIES, +) + + +def _pascal_to_snake(name: str) -> str: + """Convert PascalCase to snake_case (matches stringcase.snakecase behavior).""" + s = re.sub(r"([A-Z]+)([A-Z][a-z])", r"\1_\2", name) + s = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", s) + return s.lower() + + +# 62 pickup actions (pickupable objects from OBJECT_TYPES_WITH_PROPERTIES) +PICKUP_ACTIONS = tuple(sorted( + f"pickup_{_pascal_to_snake(obj_type)}" + for obj_type, props in OBJECT_TYPES_WITH_PROPERTIES.items() + if props["pickupable"] +)) + +# 10 open actions (openable non-pickupable objects) +OPEN_ACTIONS = tuple(sorted( + f"open_by_type_{_pascal_to_snake(obj_type)}" + for obj_type, props in OBJECT_TYPES_WITH_PROPERTIES.items() + if props["openable"] and not props["pickupable"] +)) + +# 12 navigation actions (matching rearrange_base.py order) +NAVIGATION_ACTIONS = ( + "done", + "move_ahead", + "move_left", + "move_right", + "move_back", + "rotate_right", + "rotate_left", + "stand", + "crouch", + "look_up", + "look_down", + "drop_held_object_with_snap", +) + +# Full 84-action space in original order: nav + open + pickup +ALL_ACTIONS = NAVIGATION_ACTIONS + OPEN_ACTIONS + PICKUP_ACTIONS + +# Mappings for bridge +ACTION_NAME_TO_ID = {name: i for i, name in enumerate(ALL_ACTIONS)} +ACTION_ID_TO_NAME = {i: name for i, name in enumerate(ALL_ACTIONS)} + + +def get_action_space() -> list[str]: + """Return the rearrangement discrete action space (84 actions).""" + return list(ALL_ACTIONS) From 928c595a86edd846d4df183dac29953ff0f3b301 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 11:37:21 +0800 Subject: [PATCH 098/239] feat: add rearrangement task YAMLs for 5 splits --- .../ai2thor_rearrangement_2023/_base.yaml | 32 +++++++++++++++++++ .../ai2thor_rearrangement_2023_combined.yaml | 6 ++++ ...ai2thor_rearrangement_2023_eval_train.yaml | 6 ++++ .../ai2thor_rearrangement_2023_test.yaml | 6 ++++ .../ai2thor_rearrangement_2023_train.yaml | 6 ++++ .../ai2thor_rearrangement_2023_val.yaml | 6 ++++ 6 files changed, 62 insertions(+) create mode 100644 easi/tasks/ai2thor_rearrangement_2023/_base.yaml create mode 100644 easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_combined.yaml create mode 100644 easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_eval_train.yaml create mode 100644 easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_test.yaml create mode 100644 easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_train.yaml create mode 100644 easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_val.yaml diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml new file mode 100644 index 0000000..ee6fb8b --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -0,0 +1,32 @@ +display_name: "AI2-THOR Rearrangement 2023" +description: "AI2-THOR Rearrangement Challenge — move shuffled objects back to goal poses" +simulator: "ai2thor:v5_0_0" +task_class: "easi.tasks.ai2thor_rearrangement_2023.task.AI2THORRearrangement2023Task" +max_steps: 500 +dataset: + source: huggingface + repo_id: "oscarqjh/ai2thor-rearrangement-2023_easi" + subset: null +simulator_configs: + render_platform: auto + screen_height: 224 + screen_width: 224 + fov: 90 + grid_size: 0.25 + rotate_step_degrees: 90 + visibility_distance: 1.5 + snap_to_grid: true + quality: "Very Low" + # Sensor toggles + use_rgb: true + use_depth: false + use_gps: true +agent: + prompt_builder: "easi.tasks.ai2thor_rearrangement_2023.prompts.AI2THORRearrangement2023PromptBuilder" + prompt_builder_kwargs: + use_feedback: true + chat_history: true + message_window_len: 10 + generation_kwargs: + temperature: 0 + max_tokens: 2048 diff --git a/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_combined.yaml b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_combined.yaml new file mode 100644 index 0000000..859d8cd --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_combined.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: ai2thor_rearrangement_2023_combined +display_name: "AI2-THOR Rearrangement 2023 Combined" +description: "Official evaluation set — 2800 episodes (eval_train + val + test)" +dataset: + split: "combined" diff --git a/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_eval_train.yaml b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_eval_train.yaml new file mode 100644 index 0000000..ecd2411 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_eval_train.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: ai2thor_rearrangement_2023_eval_train +display_name: "AI2-THOR Rearrangement 2023 Eval-Train" +description: "Evaluation subset of train — 800 episodes across 80 scenes" +dataset: + split: "eval_train" diff --git a/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_test.yaml b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_test.yaml new file mode 100644 index 0000000..c6befd3 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_test.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: ai2thor_rearrangement_2023_test +display_name: "AI2-THOR Rearrangement 2023 Test" +description: "Test split — 1000 episodes across 20 scenes" +dataset: + split: "test" diff --git a/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_train.yaml b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_train.yaml new file mode 100644 index 0000000..a9624b6 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_train.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: ai2thor_rearrangement_2023_train +display_name: "AI2-THOR Rearrangement 2023 Train" +description: "Training split — 4000 episodes across 80 scenes" +dataset: + split: "train" diff --git a/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_val.yaml b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_val.yaml new file mode 100644 index 0000000..a3bb356 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/ai2thor_rearrangement_2023_val.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: ai2thor_rearrangement_2023_val +display_name: "AI2-THOR Rearrangement 2023 Validation" +description: "Validation split — 1000 episodes across 20 scenes" +dataset: + split: "val" From 9bdb41e9725c3ab22858d9c067e834db0b4f13ee Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 11:49:40 +0800 Subject: [PATCH 099/239] feat: add AI2THORRearrangement2023Task with 6 paper metrics --- easi/tasks/ai2thor_rearrangement_2023/task.py | 151 +++++++++++++ tests/test_ai2thor_rearrangement_2023_task.py | 198 ++++++++++++++++++ 2 files changed, 349 insertions(+) create mode 100644 easi/tasks/ai2thor_rearrangement_2023/task.py create mode 100644 tests/test_ai2thor_rearrangement_2023_task.py diff --git a/easi/tasks/ai2thor_rearrangement_2023/task.py b/easi/tasks/ai2thor_rearrangement_2023/task.py new file mode 100644 index 0000000..8c3c5e1 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/task.py @@ -0,0 +1,151 @@ +"""AI2-THOR Rearrangement task for EASI. + +Adapts the AI2-THOR Rearrangement Challenge to EASI's task interface. +Supports 5 splits via per-split YAML configs. +Computes all 6 paper metrics: SR, SRwD, PuSR, PuLen, SuLen, Len. +""" +from __future__ import annotations + +import json +import math +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.ai2thor_rearrangement_2023.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class AI2THORRearrangement2023Task(BaseTask): + """AI2-THOR Rearrangement Challenge task.""" + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "ai2thor_rearrangement_2023_val.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get( + "instruction", + "Rearrange objects to match the goal configuration.", + ) + + def format_reset_config(self, episode: dict) -> dict: + """Convert HF dataset row to bridge reset config. + + Complex fields (poses, openable_data) stay as JSON strings; + the bridge deserializes them. + """ + return { + "episode_id": episode.get("id", "unknown"), + "scene": episode["scene"], + "instruction": self.get_instruction(episode), + "agent_position": episode["agent_position"], # JSON string + "agent_rotation": episode["agent_rotation"], # int + "starting_poses": episode["starting_poses"], # JSON string + "target_poses": episode["target_poses"], # JSON string + "openable_data": episode["openable_data"], # JSON string + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract the 6 paper metrics from trajectory. + + The bridge reports rearrangement metrics in StepResult.info. + Pickup metrics (PuSR, PuLen) are computed from the action log. + """ + if not trajectory: + return { + "success": 0.0, + "prop_fixed_strict": 0.0, + "energy_prop": 1.0, + "num_steps": 0.0, + "pickup_success_rate": 0.0, + "num_pickup_actions": 0.0, + "success_length": float("nan"), + } + + last_info = trajectory[-1].info or {} + success = float(last_info.get("success", 0.0)) + num_steps = float(len(trajectory)) + + # Compute PuSR and PuLen from action log in trajectory + pickup_total = 0 + pickup_success = 0 + for step in trajectory: + info = step.info or {} + action_name = info.get("action_name", "") + if action_name.startswith("pickup_"): + pickup_total += 1 + if info.get("action_success", False): + pickup_success += 1 + + pickup_success_rate = ( + pickup_success / pickup_total if pickup_total > 0 else 0.0 + ) + + # SuLen: episode length IF successful, else NaN + success_length = num_steps if success > 0.5 else float("nan") + + return { + "success": success, + "prop_fixed_strict": float(last_info.get("prop_fixed_strict", 0.0)), + "energy_prop": float(last_info.get("energy_prop", 1.0)), + "num_steps": num_steps, + "pickup_success_rate": pickup_success_rate, + "num_pickup_actions": float(pickup_total), + "success_length": success_length, + } + + def aggregate_results( + self, records: list[EpisodeRecord] + ) -> dict[str, float]: + """Aggregate metrics across episodes. + + Handles NaN success_length (only averages successful episodes). + """ + if not records: + return {} + + # Collect all metric keys + all_keys = set() + for r in records: + all_keys.update(r.episode_results.keys()) + + agg = {} + for key in sorted(all_keys): + values = [] + for r in records: + v = r.episode_results.get(key) + if v is not None and not (isinstance(v, float) and math.isnan(v)): + values.append(v) + if values: + agg[key] = sum(values) / len(values) + else: + agg[key] = float("nan") + + return agg + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download.""" + return [ + { + "id": "FloorPlan21__smoke_test", + "scene": "FloorPlan21", + "agent_position": json.dumps( + {"x": -1.0, "y": 0.87, "z": -1.0} + ), + "agent_rotation": 0, + "starting_poses": json.dumps([]), + "target_poses": json.dumps([]), + "openable_data": json.dumps([]), + "instruction": "Smoke test — no objects to rearrange.", + }, + ] diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py new file mode 100644 index 0000000..a11d4f2 --- /dev/null +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -0,0 +1,198 @@ +"""Tests for AI2THORRearrangement2023Task (offline, no simulator).""" +from __future__ import annotations + +import json +import math +from pathlib import Path + +import pytest + +from easi.core.episode import EpisodeRecord, Observation, StepResult + + +def _make_task(): + from easi.tasks.ai2thor_rearrangement_2023.task import AI2THORRearrangement2023Task + return AI2THORRearrangement2023Task( + split_yaml_path=Path(__file__).resolve().parent.parent + / "easi" / "tasks" / "ai2thor_rearrangement_2023" / "ai2thor_rearrangement_2023_val.yaml" + ) + + +class TestTaskRegistration: + def test_all_splits_registered(self): + from easi.tasks.registry import list_tasks + tasks = list_tasks() + for split in ("train", "eval_train", "val", "test", "combined"): + assert f"ai2thor_rearrangement_2023_{split}" in tasks + + def test_simulator_key(self): + from easi.tasks.registry import get_task_entry + entry = get_task_entry("ai2thor_rearrangement_2023_val") + assert entry.simulator_key == "ai2thor:v5_0_0" + + def test_max_steps(self): + from easi.tasks.registry import get_task_entry + entry = get_task_entry("ai2thor_rearrangement_2023_val") + assert entry.max_steps == 500 + + +class TestActionSpace: + def test_action_count(self): + task = _make_task() + assert len(task.action_space) == 84 + + def test_no_duplicates(self): + task = _make_task() + assert len(task.action_space) == len(set(task.action_space)) + + def test_key_actions_present(self): + task = _make_task() + actions = set(task.action_space) + assert "done" in actions + assert "move_ahead" in actions + assert "drop_held_object_with_snap" in actions + assert "pickup_bowl" in actions + assert "open_by_type_fridge" in actions + assert "open_by_type_cabinet" in actions + + +class TestFormatResetConfig: + def test_basic_format(self): + task = _make_task() + episode = { + "id": "FloorPlan21__0", + "scene": "FloorPlan21", + "agent_position": json.dumps({"x": -1.0, "y": 0.87, "z": -1.0}), + "agent_rotation": 30, + "starting_poses": json.dumps([{"name": "Bowl_123", "position": {"x": 0, "y": 1, "z": 0}}]), + "target_poses": json.dumps([{"name": "Bowl_123", "position": {"x": 1, "y": 1, "z": 1}}]), + "openable_data": json.dumps([]), + "instruction": "Move the Bowl back.", + } + config = task.format_reset_config(episode) + assert config["scene"] == "FloorPlan21" + assert config["agent_rotation"] == 30 + # JSON strings passed through to bridge + assert isinstance(config["starting_poses"], str) + assert isinstance(config["target_poses"], str) + + +class TestEvaluateEpisode: + def test_success_metrics(self): + task = _make_task() + episode = {"id": "test"} + obs = Observation(rgb_path="/tmp/fake.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=False, info={ + "action_name": "move_ahead", "action_success": True, + }), + StepResult(observation=obs, reward=0.0, done=False, info={ + "action_name": "pickup_bowl", "action_success": True, + }), + StepResult(observation=obs, reward=0.0, done=True, info={ + "success": 1.0, "prop_fixed_strict": 1.0, "energy_prop": 0.0, + "num_initially_misplaced": 1, "num_fixed": 1, + "num_newly_misplaced": 0, "num_broken": 0, + "action_name": "done", "action_success": True, + }), + ] + metrics = task.evaluate_episode(episode, trajectory) + assert metrics["success"] == 1.0 + assert metrics["prop_fixed_strict"] == 1.0 + assert metrics["num_steps"] == 3.0 + # PuSR: 1 successful pickup / 1 total pickup = 1.0 + assert metrics["pickup_success_rate"] == 1.0 + # PuLen: 1 pickup action + assert metrics["num_pickup_actions"] == 1.0 + # SuLen: episode succeeded, so success_length = 3 + assert metrics["success_length"] == 3.0 + + def test_failed_episode(self): + task = _make_task() + obs = Observation(rgb_path="/tmp/fake.png") + trajectory = [ + StepResult(observation=obs, reward=0.0, done=True, info={ + "success": 0.0, "prop_fixed_strict": 0.0, "energy_prop": 0.8, + "num_initially_misplaced": 2, "num_fixed": 0, + "num_newly_misplaced": 0, "num_broken": 0, + "action_name": "done", "action_success": True, + }), + ] + metrics = task.evaluate_episode({"id": "test"}, trajectory) + assert metrics["success"] == 0.0 + # SuLen should be NaN for failed episodes + assert math.isnan(metrics["success_length"]) + + def test_empty_trajectory(self): + task = _make_task() + metrics = task.evaluate_episode({"id": "test"}, []) + assert metrics["success"] == 0.0 + assert metrics["num_steps"] == 0.0 + + def test_pickup_success_rate_partial(self): + task = _make_task() + obs = Observation(rgb_path="/tmp/fake.png") + trajectory = [ + StepResult(observation=obs, info={ + "action_name": "pickup_bowl", "action_success": False, + }), + StepResult(observation=obs, info={ + "action_name": "pickup_bowl", "action_success": True, + }), + StepResult(observation=obs, done=True, info={ + "success": 0.0, "prop_fixed_strict": 0.0, + "action_name": "done", "action_success": True, + }), + ] + metrics = task.evaluate_episode({"id": "test"}, trajectory) + # PuSR: 1 success / 2 total = 0.5 + assert metrics["pickup_success_rate"] == 0.5 + assert metrics["num_pickup_actions"] == 2.0 + + +class TestGetInstruction: + def test_uses_episode_instruction(self): + task = _make_task() + episode = {"instruction": "Move the Bowl back to the counter."} + assert task.get_instruction(episode) == "Move the Bowl back to the counter." + + +class TestBuiltinEpisodes: + def test_has_builtin(self): + task = _make_task() + episodes = task._get_builtin_episodes() + assert len(episodes) >= 1 + assert "scene" in episodes[0] + assert "instruction" in episodes[0] + + +class TestAggregateResults: + def test_aggregate_filters_nan_success_length(self): + """success_length NaN values should not affect the average.""" + task = _make_task() + + records = [] + # Successful episode (3 steps) + records.append(EpisodeRecord( + episode={"id": "ep1"}, trajectory=[], + episode_results={ + "success": 1.0, "prop_fixed_strict": 1.0, + "num_steps": 3.0, "success_length": 3.0, + "pickup_success_rate": 1.0, "num_pickup_actions": 1.0, + }, + )) + # Failed episode (5 steps, NaN success_length) + records.append(EpisodeRecord( + episode={"id": "ep2"}, trajectory=[], + episode_results={ + "success": 0.0, "prop_fixed_strict": 0.0, + "num_steps": 5.0, "success_length": float("nan"), + "pickup_success_rate": 0.0, "num_pickup_actions": 2.0, + }, + )) + + agg = task.aggregate_results(records) + assert agg["success"] == 0.5 # 1/2 + assert agg["num_steps"] == 4.0 # (3+5)/2 + # success_length should average only non-NaN: 3.0 + assert agg["success_length"] == 3.0 From 4f3fdab66a814957e371236473a87555e8f20284 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 12:14:14 +0800 Subject: [PATCH 100/239] feat: add rearrangement bridge and prompt builder Bridge: SNAP mode wrapper with 84 discrete actions, sensor toggles, PuSR/PuLen tracking, and pose energy metrics at episode end. Prompts: Multi-modal prompt builder with GPS overlay, action planning, and structured JSON output parsing. --- .../ai2thor_rearrangement_2023/bridge.py | 316 ++++++++++++++++++ .../ai2thor_rearrangement_2023/prompts.py | 205 ++++++++++++ 2 files changed, 521 insertions(+) create mode 100644 easi/tasks/ai2thor_rearrangement_2023/bridge.py create mode 100644 easi/tasks/ai2thor_rearrangement_2023/prompts.py diff --git a/easi/tasks/ai2thor_rearrangement_2023/bridge.py b/easi/tasks/ai2thor_rearrangement_2023/bridge.py new file mode 100644 index 0000000..66b7cd2 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/bridge.py @@ -0,0 +1,316 @@ +"""EASI bridge for AI2-THOR Rearrangement Challenge. + +Runs inside the easi_ai2thor_v5_0_0 conda env (Python 3.10). +Wraps RearrangeTHOREnvironment in SNAP mode with 84 discrete actions. +""" +from __future__ import annotations + +import json +import re +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge + + +def _snake_to_pascal(name: str) -> str: + """Convert snake_case to PascalCase (inverse of _pascal_to_snake in actions.py).""" + return "".join(word.capitalize() for word in name.split("_")) + + +class AI2THORRearrangement2023Bridge(BaseBridge): + """Bridge for 1-phase rearrangement (unshuffle only, SNAP mode).""" + + def _create_env(self, reset_config, simulator_kwargs): + from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.environment import ( + RearrangeTHOREnvironment, + RearrangeMode, + ) + + screen_h = simulator_kwargs.get("screen_height", 224) + screen_w = simulator_kwargs.get("screen_width", 224) + fov = simulator_kwargs.get("fov", 90) + grid_size = simulator_kwargs.get("grid_size", 0.25) + rotate_step = simulator_kwargs.get("rotate_step_degrees", 90) + vis_dist = simulator_kwargs.get("visibility_distance", 1.5) + snap = simulator_kwargs.get("snap_to_grid", True) + quality = simulator_kwargs.get("quality", "Very Low") + + # Sensor toggles + self._use_rgb = simulator_kwargs.get("use_rgb", True) + self._use_depth = simulator_kwargs.get("use_depth", False) + self._use_gps = simulator_kwargs.get("use_gps", True) + + controller_kwargs = { + "width": screen_w, + "height": screen_h, + "fieldOfView": fov, + "gridSize": grid_size, + "rotateStepDegrees": rotate_step, + "visibilityDistance": vis_dist, + "snapToGrid": snap, + "quality": quality, + "renderDepthImage": self._use_depth, + "fastActionEmit": True, + } + + env = RearrangeTHOREnvironment( + mode=RearrangeMode.SNAP, + controller_kwargs=controller_kwargs, + force_cache_reset=True, + ) + + # Action tracking for PuSR/PuLen metrics + self._actions_taken = [] + self._actions_taken_success = [] + + return env + + def _on_reset(self, env, reset_config): + from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.environment import ( + RearrangeTaskSpec, + ) + + # Deserialize JSON strings from HF dataset + agent_position = json.loads(reset_config["agent_position"]) if isinstance( + reset_config["agent_position"], str + ) else reset_config["agent_position"] + starting_poses = json.loads(reset_config["starting_poses"]) if isinstance( + reset_config["starting_poses"], str + ) else reset_config["starting_poses"] + target_poses = json.loads(reset_config["target_poses"]) if isinstance( + reset_config["target_poses"], str + ) else reset_config["target_poses"] + openable_data = json.loads(reset_config["openable_data"]) if isinstance( + reset_config["openable_data"], str + ) else reset_config["openable_data"] + + task_spec = RearrangeTaskSpec( + scene=reset_config["scene"], + agent_position=agent_position, + agent_rotation=int(reset_config["agent_rotation"]), + starting_poses=starting_poses, + target_poses=target_poses, + openable_data=openable_data, + stage="eval", + ) + + # Reset (walkthrough phase) then immediately shuffle (unshuffle phase) + env.reset(task_spec=task_spec, force_axis_aligned_start=True) + env.shuffle() + + # Clear action tracking + self._actions_taken = [] + self._actions_taken_success = [] + + # No-op to get initial state + return env.step("Pass") + + def _on_step(self, env, action_text): + action_name = action_text.strip().lower() + + action_success = False + + if action_name == "done": + # Episode end — compute final metrics + info = self._build_info(env, action_name, True) + info.update(self._compute_final_metrics(env)) + rgb = self._get_rgb(env) + return rgb, 0.0, True, info + + elif action_name in ( + "move_ahead", "move_left", "move_right", "move_back", + "rotate_right", "rotate_left", "stand", "crouch", + "look_up", "look_down", + ): + action_success = getattr(env, action_name)() + + elif action_name == "drop_held_object_with_snap": + action_success = env.drop_held_object_with_snap() + + elif action_name.startswith("pickup_"): + action_success = self._do_pickup(env, action_name) + + elif action_name.startswith("open_by_type_"): + action_success = self._do_open(env, action_name) + + # Track actions for PuSR/PuLen + self._actions_taken.append(action_name) + self._actions_taken_success.append(action_success) + + rgb = self._get_rgb(env) + info = self._build_info(env, action_name, action_success) + feedback = "success" if action_success else "action failed" + info["feedback"] = feedback + + return rgb, 0.0, False, info + + def _do_pickup(self, env, action_name: str) -> bool: + """Pick up the nearest visible object of the given type.""" + from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.environment import ( + include_object_data, + ) + + with include_object_data(env.controller): + metadata = env.last_event.metadata + + if len(metadata["inventoryObjects"]) != 0: + return False + + # Convert snake_case action to PascalCase object type + obj_type_snake = action_name.replace("pickup_", "") + obj_type = _snake_to_pascal(obj_type_snake) + + candidates = [ + o for o in metadata["objects"] + if o["visible"] and o["objectType"] == obj_type + ] + if not candidates: + return False + + # Sort by distance, pick closest + candidates.sort(key=lambda o: (o["distance"], o["name"])) + obj_id = candidates[0]["objectId"] + + env.controller.step( + "PickupObject", + objectId=obj_id, + **env.physics_step_kwargs, + ) + return env.controller.last_event.metadata["lastActionSuccess"] + + def _do_open(self, env, action_name: str) -> bool: + """Toggle openness of the nearest visible openable object.""" + from easi.tasks.ai2thor_rearrangement_2023.vendor.rearrange.environment import ( + include_object_data, + ) + + with include_object_data(env.controller): + metadata = env.last_event.metadata + + obj_type_snake = action_name.replace("open_by_type_", "") + obj_type = _snake_to_pascal(obj_type_snake) + + candidates = [ + o for o in metadata["objects"] + if o["visible"] and o["objectType"] == obj_type and o["openable"] + ] + if not candidates: + return False + + # Sort by distance, pick closest + candidates.sort(key=lambda o: (o["distance"], o["name"])) + obj = candidates[0] + + # Toggle: if open -> close, if closed -> open + if obj["isOpen"] or obj.get("openness", 0) > 0.5: + env.controller.step( + "CloseObject", + objectId=obj["objectId"], + **env.physics_step_kwargs, + ) + else: + env.controller.step( + "OpenObject", + objectId=obj["objectId"], + openness=1.0, + **env.physics_step_kwargs, + ) + return env.controller.last_event.metadata["lastActionSuccess"] + + def _get_rgb(self, env) -> np.ndarray: + """Extract RGB frame from environment.""" + return env.last_event.frame.copy() + + def _build_info(self, env, action_name: str, action_success: bool) -> dict: + """Build info dict with sensor data and action feedback.""" + info = { + "action_name": action_name, + "action_success": action_success, + } + + # GPS data (if enabled) + if self._use_gps: + loc = env.get_agent_location() + info["agent_x"] = float(loc["x"]) + info["agent_y"] = float(loc["y"]) + info["agent_z"] = float(loc["z"]) + info["agent_rotation"] = float(loc["rotation"]) + info["agent_horizon"] = float(loc["horizon"]) + info["agent_standing"] = float(loc.get("standing", True)) + + # Held object info + held = env.held_object + info["held_object"] = held["objectType"] if held else "none" + + return info + + def _compute_final_metrics(self, env) -> dict: + """Compute rearrangement metrics at episode end (when done is called).""" + ips, gps, cps = env.poses + + start_energies = env.pose_difference_energy(gps, ips) + end_energies = env.pose_difference_energy(gps, cps) + start_energy = float(start_energies.sum()) + end_energy = float(end_energies.sum()) + + start_misplaced = start_energies > 0.0 + end_misplaced = end_energies > 0.0 + + num_initially_misplaced = int(start_misplaced.sum()) + num_fixed = int( + num_initially_misplaced - (start_misplaced & end_misplaced).sum() + ) + num_newly_misplaced = int( + (end_misplaced & ~start_misplaced).sum() + ) + num_broken = sum(1 for cp in cps if cp.get("broken", False)) + + prop_fixed = ( + 1.0 + if num_initially_misplaced == 0 + else num_fixed / num_initially_misplaced + ) + + return { + "success": float(end_energy == 0), + "prop_fixed_strict": float( + (num_newly_misplaced == 0) * prop_fixed + ), + "energy_prop": ( + end_energy / start_energy if start_energy > 0 else 0.0 + ), + "start_energy": start_energy, + "end_energy": end_energy, + "num_initially_misplaced": num_initially_misplaced, + "num_fixed": num_fixed, + "num_newly_misplaced": num_newly_misplaced, + "num_broken": num_broken, + } + + def _extract_image(self, obs): + """Extract RGB from observation.""" + if isinstance(obs, np.ndarray): + return obs + if isinstance(obs, tuple): + return obs[0] + return obs + + def _extract_info(self, info): + """Filter info to JSON-serializable types.""" + if not isinstance(info, dict): + return {} + return { + k: v for k, v in info.items() + if isinstance(v, (int, float, str, bool)) + } + + +if __name__ == "__main__": + AI2THORRearrangement2023Bridge.main() diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py new file mode 100644 index 0000000..f9b1c81 --- /dev/null +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -0,0 +1,205 @@ +"""Prompt builder for AI2-THOR Rearrangement task. + +Constructs multi-modal prompts with observation images, GPS data, +action history, and structured JSON output schema. +""" +from __future__ import annotations + +import json + +from easi.agents.prompt_builder import _encode_image_base64, validate_action_name +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.json_repair import fix_json +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """\ +You are an embodied AI agent performing an object rearrangement task in a 3D indoor environment (AI2-THOR). + +## Goal +{instruction} + +## Available Actions +{action_list} + +## Action Types +- **Navigation**: move_ahead (0.25m step), move_left/right/back, rotate_left/right (90°), look_up/look_down (30°), stand/crouch +- **Pickup**: pickup_ — picks up the nearest visible object of that type (must have empty hands) +- **Drop**: drop_held_object_with_snap — drops held object, snapping to goal position if close enough +- **Open/Close**: open_by_type_ — toggles openness of nearest visible cabinet/drawer/fridge/etc. +- **Done**: Signal that all objects are in their correct positions + +## Strategy +1. Look around to survey the scene and identify misplaced objects +2. Navigate to a misplaced object +3. Pick it up with the matching pickup_ action +4. Navigate toward where it belongs (near its goal position) +5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close +6. Repeat for remaining misplaced objects +7. Say "done" when finished + +## Rules +- You can hold only ONE object at a time +- drop_held_object_with_snap works best when the goal location is visible +- If pickup fails, try moving closer or adjusting your view angle +- Grid movement: 0.25m steps, 90° rotations +""" + +OUTPUT_SCHEMA = """\ +Respond in this exact JSON format: +```json +{{ + "observation": "describe what you see", + "reasoning": "what to do next and why", + "plan": [ + {{"action_name": ""}}, + ... + ] +}} +``` +Plan 1-5 actions. Use exact action names from the list above.""" + + +class AI2THORRearrangement2023PromptBuilder: + """Prompt builder for the rearrangement task.""" + + def __init__( + self, + use_feedback: bool = True, + chat_history: bool = True, + message_window_len: int = 10, + **kwargs, + ): + self.use_feedback = use_feedback + self.chat_history = chat_history + self.message_window_len = message_window_len + self._action_list_str = "" + self._action_name_set: set[str] = set() + + def set_action_space(self, actions: list[str]): + self._action_name_set = set(actions) + parts = [f"{i}: {a}" for i, a in enumerate(actions)] + self._action_list_str = ", ".join(parts) + + def build_messages(self, memory: AgentMemory) -> list[dict]: + instruction = memory.task_description or "Rearrange objects to match the goal." + + system_text = SYSTEM_PROMPT.format( + instruction=instruction, + action_list=self._action_list_str, + ) + + messages = [{"role": "system", "content": system_text}] + + # Chat history (if enabled) + if self.chat_history and memory.steps: + window = memory.steps[-self.message_window_len:] + for step in window: + user_content = self._make_history_content(step) + messages.append({"role": "user", "content": user_content}) + if step.llm_response: + messages.append({ + "role": "assistant", + "content": step.llm_response, + }) + + # Current turn + user_content = self._make_current_content(memory) + messages.append({"role": "user", "content": user_content}) + + return messages + + def _make_history_content(self, step) -> list[dict]: + content = [] + if step.observation and step.observation.rgb_path: + img_url = _encode_image_base64(step.observation.rgb_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + + text = "Observation." + if self.use_feedback and step.feedback: + text += f"\nFeedback: {step.feedback}" + + # GPS overlay from step info + gps_text = self._format_gps(step.info) + if gps_text: + text += f"\n{gps_text}" + + content.append({"type": "text", "text": text}) + return content + + def _make_current_content(self, memory: AgentMemory) -> list[dict]: + content = [] + + if memory.current_observation and memory.current_observation.rgb_path: + img_url = _encode_image_base64(memory.current_observation.rgb_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + + if memory.is_first_turn: + text = "First observation. Begin the rearrangement task." + else: + text = "Current observation." + if self.use_feedback and memory.steps: + last = memory.steps[-1] + if last.feedback: + text += f"\nFeedback: {last.feedback}" + + # GPS from last step info + if memory.steps: + gps_text = self._format_gps(memory.steps[-1].info) + if gps_text: + text += f"\n{gps_text}" + held = (memory.steps[-1].info or {}).get("held_object", "none") + text += f"\nHolding: {held}" + + text += f"\n\n{OUTPUT_SCHEMA}" + content.append({"type": "text", "text": text}) + return content + + def _format_gps(self, info: dict | None) -> str: + if not info: + return "" + parts = [] + if "agent_x" in info: + parts.append( + f"Position: ({info['agent_x']:.2f}, {info['agent_y']:.2f}, {info['agent_z']:.2f})" + ) + if "agent_rotation" in info: + parts.append(f"Rotation: {info['agent_rotation']:.0f}") + if "agent_horizon" in info: + parts.append(f"Horizon: {info['agent_horizon']:.0f}") + return "GPS: " + ", ".join(parts) if parts else "" + + def parse_response( + self, llm_response: str, memory: AgentMemory + ) -> list[Action]: + try: + fixed = fix_json(llm_response) + data = json.loads(fixed) + except (json.JSONDecodeError, ValueError): + logger.warning("Failed to parse LLM response as JSON") + return [Action(action_name="done")] + + plan = data.get("plan", []) + if not plan: + return [Action(action_name="done")] + + actions = [] + for entry in plan: + name = entry.get("action_name", "") + if name in self._action_name_set: + actions.append(Action(action_name=name)) + else: + logger.warning("Unknown action '%s', stopping plan", name) + break + + return actions if actions else [Action(action_name="done")] From c6a78c857642a1f73a4c2350a30a8b37cce31fa4 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 12:19:31 +0800 Subject: [PATCH 101/239] test: add prompt builder and bridge path tests --- tests/test_ai2thor_rearrangement_2023_task.py | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py index a11d4f2..984c3f5 100644 --- a/tests/test_ai2thor_rearrangement_2023_task.py +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -196,3 +196,64 @@ def test_aggregate_filters_nan_success_length(self): assert agg["num_steps"] == 4.0 # (3+5)/2 # success_length should average only non-NaN: 3.0 assert agg["success_length"] == 3.0 + + +class TestPromptBuilder: + def _make_builder(self): + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + builder = AI2THORRearrangement2023PromptBuilder() + builder.set_action_space(["done", "move_ahead", "pickup_bowl"]) + return builder + + def test_set_action_space(self): + builder = self._make_builder() + assert "done" in builder._action_name_set + assert "move_ahead" in builder._action_name_set + assert "pickup_bowl" in builder._action_name_set + + def test_parse_valid_response(self): + from easi.core.memory import AgentMemory + builder = self._make_builder() + memory = AgentMemory() + response = json.dumps({ + "observation": "I see a kitchen", + "reasoning": "Need to find bowl", + "plan": [ + {"action_name": "move_ahead"}, + {"action_name": "pickup_bowl"}, + ] + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "move_ahead" + assert actions[1].action_name == "pickup_bowl" + + def test_parse_invalid_response_returns_done(self): + from easi.core.memory import AgentMemory + builder = self._make_builder() + memory = AgentMemory() + actions = builder.parse_response("not json", memory) + assert len(actions) == 1 + assert actions[0].action_name == "done" + + def test_parse_unknown_action_stops_plan(self): + from easi.core.memory import AgentMemory + builder = self._make_builder() + memory = AgentMemory() + response = json.dumps({ + "plan": [ + {"action_name": "move_ahead"}, + {"action_name": "fly_away"}, + ] + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 + assert actions[0].action_name == "move_ahead" + + +class TestBridgeScript: + def test_bridge_path_exists(self): + task = _make_task() + bridge_path = task.get_bridge_script_path() + assert bridge_path.exists() + assert bridge_path.name == "bridge.py" From 1d2cf4ae6e3c311a89e976d4c7849a5606230f5b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 13:12:55 +0800 Subject: [PATCH 102/239] fix: use correct argparse dest name in e2e test Namespaces The CLI argparse uses dest="refresh_data" but the test Namespaces used "redownload", which leaked through **run_kwargs into EvaluationRunner.__init__() as an unexpected keyword argument. --- tests/test_e2e_evaluation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index bf72477..8a53b21 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -524,7 +524,7 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): llm_kwargs_raw=None, max_retries=None, resume_dir=str(run_dir), - redownload=False, + refresh_data=False, ) cmd_start(args) @@ -632,7 +632,7 @@ def test_sequential_single_task_via_flag(self, tmp_path): llm_kwargs_raw=None, max_retries=None, resume_dir=None, - redownload=False, + refresh_data=False, ) cmd_start(args) @@ -663,7 +663,7 @@ def test_resume_blocked_with_multi_task(self): llm_kwargs_raw=None, max_retries=None, resume_dir="/tmp/some/path", - redownload=False, + refresh_data=False, ) with pytest.raises(SystemExit): cmd_start(args) From 17494cea7faea7fe958fea38dda48af51ee90fea Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 13:13:53 +0800 Subject: [PATCH 103/239] fix: remove xvfb system deps --- easi/simulators/ai2thor/v5_0_0/env_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/simulators/ai2thor/v5_0_0/env_manager.py b/easi/simulators/ai2thor/v5_0_0/env_manager.py index 0e18488..842359f 100644 --- a/easi/simulators/ai2thor/v5_0_0/env_manager.py +++ b/easi/simulators/ai2thor/v5_0_0/env_manager.py @@ -37,7 +37,7 @@ def get_requirements_txt_path(self) -> Path: return Path(__file__).parent / "requirements.txt" def get_system_deps(self) -> list[str]: - return ["conda", "xvfb"] + return ["conda"] def get_validation_import(self) -> str: return "import ai2thor; assert ai2thor.__version__.startswith('5.')" From 08123bd19772bb34c5478bc4ac9f4fa0fcf2f529 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 15:20:35 +0800 Subject: [PATCH 104/239] fix: OmniGibson simulator now passes smoke test --- easi/simulators/omnigibson/manifest.yaml | 3 ++ easi/simulators/omnigibson/v3_7_2/bridge.py | 30 +++++++++++-------- .../omnigibson/v3_7_2/env_manager.py | 24 ++++++++++++--- tests/test_omnigibson_simulator.py | 23 ++++++++++---- tests/test_render_platform.py | 2 +- 5 files changed, 60 insertions(+), 22 deletions(-) diff --git a/easi/simulators/omnigibson/manifest.yaml b/easi/simulators/omnigibson/manifest.yaml index fb63093..1d9c54b 100644 --- a/easi/simulators/omnigibson/manifest.yaml +++ b/easi/simulators/omnigibson/manifest.yaml @@ -7,6 +7,9 @@ versions: simulator_class: "easi.simulators.omnigibson.v3_7_2.simulator.OmniGibsonSimulator" env_manager_class: "easi.simulators.omnigibson.v3_7_2.env_manager.OmniGibsonEnvManager" python_version: "3.10" + render_platforms: + native: "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonNativePlatform" + auto: "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonAutoPlatform" installation_kwargs: cuda_version: "12.4" behavior_1k_repo: "https://github.com/StanfordVL/BEHAVIOR-1K.git" diff --git a/easi/simulators/omnigibson/v3_7_2/bridge.py b/easi/simulators/omnigibson/v3_7_2/bridge.py index 457aec5..d5f513b 100644 --- a/easi/simulators/omnigibson/v3_7_2/bridge.py +++ b/easi/simulators/omnigibson/v3_7_2/bridge.py @@ -4,11 +4,15 @@ It communicates with the parent process via filesystem IPC. Provides an OmniGibsonBridge that handles: -- Minimal OmniGibson environment creation (Scene + DummyTask, no dataset) +- Minimal OmniGibson environment creation (Scene + DummyTask, no dataset required) - Action execution and observation capture - Main IPC loop (reset/step/close) -Headless mode is enabled via OMNIGIBSON_HEADLESS=1 env var (set by env_manager). +Rendering mode is controlled via OMNIGIBSON_HEADLESS env var, set by the active +render platform class (OmniGibsonNativePlatform or OmniGibsonAutoPlatform). + +Note: Isaac Sim takes 60-120 seconds to start on first launch. Use --timeout 300 +or more when running easi sim test for OmniGibson. Usage: python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] @@ -36,6 +40,10 @@ class OmniGibsonBridge(BaseBridge): def _create_env(self, reset_config, simulator_kwargs): """Create minimal OmniGibson env (no dataset needed). + The default smoke-test config uses an empty scene (no robots) so that + the omnigibson-robot-assets dataset is not required. Pass a full + og_config in simulator_kwargs to use robots in production. + Args: reset_config: Episode reset configuration. simulator_kwargs: From task YAML's simulator_configs. @@ -49,12 +57,6 @@ def _create_env(self, reset_config, simulator_kwargs): cfg = { "scene": {"type": "Scene"}, - "robots": [{ - "type": "R1", - "obs_modalities": ["rgb"], - "action_type": "continuous", - "action_normalize": True, - }], "task": {"type": "DummyTask"}, } # Allow full config override from simulator_kwargs @@ -72,13 +74,17 @@ def _on_reset(self, env, reset_config): def _on_step(self, env, action_text): """Execute zero action (for smoke test) or parse action_text. - For smoke testing, sends a zero action vector. Task-specific - subclasses should override for meaningful action parsing. + For smoke testing, sends a zero action vector. If the environment + has no robots (default smoke test), passes an empty action. + Task-specific subclasses should override for meaningful action parsing. """ import torch as th - action_dim = env.action_space.shape[0] - action = th.zeros(action_dim) + if env.robots: + action_dim = env.action_space.shape[0] + action = th.zeros(action_dim) + else: + action = th.zeros(0) obs, reward, terminated, truncated, info = env.step(action) return obs, float(reward), terminated or truncated, info diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 48a9fb7..3b3d52b 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -12,8 +12,8 @@ 7. Fix websockets conflict in Isaac Sim extscache (post_install) 8. Fix cffi compatibility (post_install) -Headless mode: OMNIGIBSON_HEADLESS=1 uses Isaac Sim's native headless rendering -(no Xvfb needed). +Rendering mode is controlled via OMNIGIBSON_HEADLESS, set by the active render +platform class (OmniGibsonNativePlatform or OmniGibsonAutoPlatform). No Xvfb needed. NFS workaround: On NFS/FUSE filesystems, /proc/self/exe can resolve to "python3.10 (deleted)" which crashes Isaac Sim's Carbonite library. The @@ -79,6 +79,14 @@ def simulator_name(self) -> str: def version(self) -> str: return "v3_7_2" + @property + def default_render_platform(self) -> str: + return "native" + + @property + def supported_render_platforms(self) -> list[str]: + return ["native", "auto"] + def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" @@ -115,6 +123,12 @@ def get_python_executable(self) -> str: # Resolve symlinks to get the real binary real_binary = str(Path(conda_python).resolve()) + # Guard: if the conda env doesn't exist yet (e.g. during env_is_ready() + # before installation), return the raw path so the caller can detect + # non-existence via Path(path).exists() rather than crashing on copy. + if not Path(real_binary).exists(): + return conda_python + tmp_dir = tempfile.mkdtemp(prefix="easi_python_") local_python = Path(tmp_dir) / "python3" shutil.copy2(real_binary, str(local_python)) @@ -130,7 +144,10 @@ def get_python_executable(self) -> str: return str(local_python) def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: - """Export env vars for headless rendering, EULA, and PYTHONHOME. + """Export env vars for EULA acceptance and PYTHONHOME. + + OMNIGIBSON_HEADLESS is set by the render platform (OmniGibsonNativePlatform + or OmniGibsonAutoPlatform), not here. PYTHONHOME is set to the conda env directory so the /tmp Python copy can find the conda env's stdlib and site-packages. @@ -139,7 +156,6 @@ def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: # conda env dir is two levels up from bin/python conda_env_dir = str(Path(conda_python).resolve().parent.parent) return EnvVars(replace={ - "OMNIGIBSON_HEADLESS": "1", "OMNI_KIT_ACCEPT_EULA": "YES", "PYTHONHOME": conda_env_dir, }) diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py index bfe6d11..bf49378 100644 --- a/tests/test_omnigibson_simulator.py +++ b/tests/test_omnigibson_simulator.py @@ -34,6 +34,15 @@ def test_manifest_installation_kwargs(self): assert "BEHAVIOR-1K" in kwargs["behavior_1k_repo"] assert kwargs["behavior_1k_tag"] == "v3.7.2" + def test_manifest_render_platforms(self): + with open("easi/simulators/omnigibson/manifest.yaml") as f: + data = yaml.safe_load(f) + rp = data["versions"]["v3_7_2"].get("render_platforms", {}) + assert "native" in rp, "missing 'native' render platform" + assert "auto" in rp, "missing 'auto' render platform" + assert "render_platforms.OmniGibsonNativePlatform" in rp["native"] + assert "render_platforms.OmniGibsonAutoPlatform" in rp["auto"] + class TestOmniGibsonEnvManager: """Test OmniGibsonEnvManager class.""" @@ -49,23 +58,27 @@ def test_env_name(self): mgr = OmniGibsonEnvManager() assert mgr.get_env_name() == "easi_omnigibson_v3_7_2" - def test_default_render_platform_headless(self): + def test_default_render_platform_native(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() - assert mgr.default_render_platform == "headless" + assert mgr.default_render_platform == "native" def test_env_vars(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() ev = mgr.get_env_vars() - assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" + assert "OMNIGIBSON_HEADLESS" not in ev.replace assert ev.replace["OMNI_KIT_ACCEPT_EULA"] == "YES" assert "PYTHONHOME" in ev.replace - def test_get_python_executable_is_local(self): + def test_get_python_executable_is_local(self, monkeypatch): """Python executable should be a /tmp copy (NFS workaround).""" + import sys from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() + # Mock _get_conda_python to return a real existing binary so the copy + # can succeed without the conda env being installed. + monkeypatch.setattr(mgr, "_get_conda_python", lambda: sys.executable) python_path = mgr.get_python_executable() assert python_path.startswith("/tmp/easi_python_") assert Path(python_path).exists() @@ -153,7 +166,7 @@ def test_create_env_manager(self): from easi.simulators.registry import create_env_manager mgr = create_env_manager("omnigibson:v3_7_2") assert mgr.simulator_name == "omnigibson" - assert mgr.default_render_platform == "headless" + assert mgr.default_render_platform == "native" def test_create_env_manager_has_installation_kwargs(self): from easi.simulators.registry import create_env_manager diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index ba663cf..dca0901 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -438,7 +438,7 @@ def test_omnigibson(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager mgr = OmniGibsonEnvManager() - assert mgr.default_render_platform == "headless" + assert mgr.default_render_platform == "native" def test_dummy(self): from easi.simulators.dummy.v1.env_manager import DummyEnvManager From 59a2aa772e5532e5ab1980e058390b6f9237508b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 13:22:33 +0800 Subject: [PATCH 105/239] fix: replace torch.lazy_property with functools.cached_property The vendored environment.py imported lazy_property from torch, but torch is not available in the ai2thor conda env. functools.cached_property is functionally identical and requires no extra dependencies. --- .../ai2thor_rearrangement_2023/vendor/rearrange/environment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py index 8b09cb1..dd27443 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py @@ -13,7 +13,7 @@ import ai2thor.wsgi_server import numpy as np from packaging import version -from torch.distributions.utils import lazy_property +from functools import cached_property as lazy_property from allenact.utils.system import get_logger from allenact_plugins.ithor_plugin.ithor_environment import IThorEnvironment From 2dcfd64053abca19ffe23379d6ff91dcc694a6e0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 13:32:37 +0800 Subject: [PATCH 106/239] fix: add allenact as additional_deps, revert inlined stubs The vendored environment.py uses allenact utilities (IThorEnvironment, include_object_data, round_to_factor) extensively. Instead of inlining them, declare allenact as additional_deps in the task YAML so they get installed into the simulator conda env. Keep the torch->functools.cached_property replacement since lazy_property is a trivial decorator. --- easi/tasks/ai2thor_rearrangement_2023/_base.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml index ee6fb8b..8f09f59 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -17,6 +17,9 @@ simulator_configs: visibility_distance: 1.5 snap_to_grid: true quality: "Very Low" + additional_deps: + - "allenact>=0.5.1" + - "allenact_plugins[ithor]>=0.5.1" # Sensor toggles use_rgb: true use_depth: false From cd35ade738539f4ebb186966120243d643e36949 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 14:06:28 +0800 Subject: [PATCH 107/239] fix: add lru-dict dep and fix bridge reset - Add lru-dict to additional_deps (used by vendored utils.py) - Fix _on_reset: use env.controller.step("Pass") instead of env.step("Pass") since RearrangeTHOREnvironment delegates to its controller for AI2-THOR actions --- easi/tasks/ai2thor_rearrangement_2023/_base.yaml | 1 + easi/tasks/ai2thor_rearrangement_2023/bridge.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml index 8f09f59..be7fc75 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -20,6 +20,7 @@ simulator_configs: additional_deps: - "allenact>=0.5.1" - "allenact_plugins[ithor]>=0.5.1" + - "lru-dict" # Sensor toggles use_rgb: true use_depth: false diff --git a/easi/tasks/ai2thor_rearrangement_2023/bridge.py b/easi/tasks/ai2thor_rearrangement_2023/bridge.py index 66b7cd2..7e7c3f5 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/bridge.py +++ b/easi/tasks/ai2thor_rearrangement_2023/bridge.py @@ -109,8 +109,9 @@ def _on_reset(self, env, reset_config): self._actions_taken = [] self._actions_taken_success = [] - # No-op to get initial state - return env.step("Pass") + # No-op to get initial observation + env.controller.step("Pass") + return env.last_event.frame.copy() def _on_step(self, env, action_text): action_name = action_text.strip().lower() From 6e1ff8b26c187ac21d0afb14784293c60a9e58a4 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 15:23:30 +0800 Subject: [PATCH 108/239] fix: AI2-THOR rearrangement prompt issues and v5 compatibility - Fix empty action list by lazy-initializing from memory.action_space - Add goal image support via walkthrough env (1-phase track) - Fix step.info AttributeError by using step.observation.metadata - Set enhanced_physics_determinism=False to avoid v5 kwarg errors - Replace removed DropHeldObjectAhead with DropHandObject for v5 - Add tests for lazy-init, GPS metadata, and goal image content --- .../ai2thor_rearrangement_2023/_base.yaml | 1 + .../ai2thor_rearrangement_2023/bridge.py | 81 ++++++++++++++++- .../ai2thor_rearrangement_2023/prompts.py | 89 ++++++++++++++----- .../vendor/rearrange/environment.py | 5 +- tests/test_ai2thor_rearrangement_2023_task.py | 86 ++++++++++++++++++ 5 files changed, 236 insertions(+), 26 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml index be7fc75..109ac7a 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -25,6 +25,7 @@ simulator_configs: use_rgb: true use_depth: false use_gps: true + use_goal_image: true agent: prompt_builder: "easi.tasks.ai2thor_rearrangement_2023.prompts.AI2THORRearrangement2023PromptBuilder" prompt_builder_kwargs: diff --git a/easi/tasks/ai2thor_rearrangement_2023/bridge.py b/easi/tasks/ai2thor_rearrangement_2023/bridge.py index 7e7c3f5..ac85d18 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/bridge.py +++ b/easi/tasks/ai2thor_rearrangement_2023/bridge.py @@ -2,6 +2,10 @@ Runs inside the easi_ai2thor_v5_0_0 conda env (Python 3.10). Wraps RearrangeTHOREnvironment in SNAP mode with 84 discrete actions. + +For the 1-phase track, maintains a second "walkthrough" environment +that stays in the goal state to provide goal images from the agent's +current viewpoint at each step. """ from __future__ import annotations @@ -46,8 +50,9 @@ def _create_env(self, reset_config, simulator_kwargs): self._use_rgb = simulator_kwargs.get("use_rgb", True) self._use_depth = simulator_kwargs.get("use_depth", False) self._use_gps = simulator_kwargs.get("use_gps", True) + self._use_goal_image = simulator_kwargs.get("use_goal_image", True) - controller_kwargs = { + self._controller_kwargs = { "width": screen_w, "height": screen_h, "fieldOfView": fov, @@ -60,12 +65,29 @@ def _create_env(self, reset_config, simulator_kwargs): "fastActionEmit": True, } + # enhanced_physics_determinism=False: the physics_step_kwargs + # (actionSimulationSeconds, fixedDeltaTime) from older AI2-THOR are + # not uniformly accepted by v5 actions (e.g. Crouch takes no args, + # RotateRight rejects actionSimulationSeconds). Disable to avoid + # ValueError on unsupported kwargs. env = RearrangeTHOREnvironment( mode=RearrangeMode.SNAP, - controller_kwargs=controller_kwargs, + controller_kwargs=dict(self._controller_kwargs), force_cache_reset=True, + enhanced_physics_determinism=False, ) + # Create walkthrough env for goal images (1-phase track) + if self._use_goal_image: + self._walkthrough_env = RearrangeTHOREnvironment( + mode=RearrangeMode.SNAP, + controller_kwargs=dict(self._controller_kwargs), + force_cache_reset=True, + enhanced_physics_determinism=False, + ) + else: + self._walkthrough_env = None + # Action tracking for PuSR/PuLen metrics self._actions_taken = [] self._actions_taken_success = [] @@ -105,6 +127,12 @@ def _on_reset(self, env, reset_config): env.reset(task_spec=task_spec, force_axis_aligned_start=True) env.shuffle() + # Setup walkthrough env (stays in goal state — no shuffle) + if self._walkthrough_env is not None: + self._walkthrough_env.reset( + task_spec=task_spec, force_axis_aligned_start=True + ) + # Clear action tracking self._actions_taken = [] self._actions_taken_success = [] @@ -113,6 +141,15 @@ def _on_reset(self, env, reset_config): env.controller.step("Pass") return env.last_event.frame.copy() + def reset(self, reset_config): + """Override to add initial goal image to the reset response.""" + response = super().reset(reset_config) + if self._walkthrough_env is not None: + goal_rgb = self._get_goal_frame(self.env) + goal_path = self._save_goal_image(goal_rgb) + response.setdefault("info", {})["goal_rgb_path"] = goal_path + return response + def _on_step(self, env, action_text): action_name = action_text.strip().lower() @@ -150,6 +187,12 @@ def _on_step(self, env, action_text): feedback = "success" if action_success else "action failed" info["feedback"] = feedback + # Capture goal image (walkthrough env teleported to current agent position) + if self._walkthrough_env is not None: + goal_rgb = self._get_goal_frame(env) + goal_path = self._save_goal_image(goal_rgb) + info["goal_rgb_path"] = goal_path + return rgb, 0.0, False, info def _do_pickup(self, env, action_name: str) -> bool: @@ -229,6 +272,33 @@ def _get_rgb(self, env) -> np.ndarray: """Extract RGB frame from environment.""" return env.last_event.frame.copy() + def _get_goal_frame(self, env) -> np.ndarray: + """Teleport walkthrough env agent to current position and capture goal frame. + + This implements the 1-phase track observation: the agent sees what the + scene SHOULD look like from its current viewpoint. + """ + loc = env.get_agent_location() + self._walkthrough_env.controller.step( + "TeleportFull", + x=loc["x"], y=loc["y"], z=loc["z"], + rotation={"x": 0, "y": loc["rotation"], "z": 0}, + horizon=loc["horizon"], + standing=loc.get("standing", True), + forceAction=True, + ) + return self._walkthrough_env.last_event.frame.copy() + + def _save_goal_image(self, image_array: np.ndarray) -> str: + """Save goal frame as PNG, return path string.""" + from PIL import Image + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + goal_path = save_dir / ("step_%04d_goal.png" % self.step_count) + Image.fromarray(image_array).save(str(goal_path)) + return str(goal_path) + def _build_info(self, env, action_name: str, action_success: bool) -> dict: """Build info dict with sensor data and action feedback.""" info = { @@ -312,6 +382,13 @@ def _extract_info(self, info): if isinstance(v, (int, float, str, bool)) } + def close(self): + """Shut down both envs.""" + if self._walkthrough_env is not None: + self._walkthrough_env.stop() + self._walkthrough_env = None + super().close() + if __name__ == "__main__": AI2THORRearrangement2023Bridge.main() diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py index f9b1c81..9192676 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/prompts.py +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -2,6 +2,9 @@ Constructs multi-modal prompts with observation images, GPS data, action history, and structured JSON output schema. + +For the 1-phase track, each step includes both the current (shuffled) +observation and a goal (walkthrough) image from the same viewpoint. """ from __future__ import annotations @@ -21,6 +24,13 @@ ## Goal {instruction} +## Observations +You receive two images at each step: +1. **Current scene** — what the environment looks like RIGHT NOW (shuffled state) +2. **Goal scene** — what the environment SHOULD look like from the same viewpoint (target state) + +Compare these two images to identify which objects are misplaced and where they should go. + ## Available Actions {action_list} @@ -32,10 +42,10 @@ - **Done**: Signal that all objects are in their correct positions ## Strategy -1. Look around to survey the scene and identify misplaced objects +1. Compare the current and goal images to identify misplaced objects 2. Navigate to a misplaced object 3. Pick it up with the matching pickup_ action -4. Navigate toward where it belongs (near its goal position) +4. Navigate toward where it belongs (compare with goal image) 5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close 6. Repeat for remaining misplaced objects 7. Say "done" when finished @@ -51,7 +61,7 @@ Respond in this exact JSON format: ```json {{ - "observation": "describe what you see", + "observation": "describe what you see in current vs goal images", "reasoning": "what to do next and why", "plan": [ {{"action_name": ""}}, @@ -84,6 +94,10 @@ def set_action_space(self, actions: list[str]): self._action_list_str = ", ".join(parts) def build_messages(self, memory: AgentMemory) -> list[dict]: + # Lazy-init action space from memory (set by agent constructor) + if not self._action_list_str and memory.action_space: + self.set_action_space(memory.action_space) + instruction = memory.task_description or "Rearrange objects to match the goal." system_text = SYSTEM_PROMPT.format( @@ -113,6 +127,9 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: def _make_history_content(self, step) -> list[dict]: content = [] + metadata = step.observation.metadata if step.observation else {} + + # Current observation image if step.observation and step.observation.rgb_path: img_url = _encode_image_base64(step.observation.rgb_path) if img_url: @@ -121,12 +138,22 @@ def _make_history_content(self, step) -> list[dict]: "image_url": {"url": img_url}, }) - text = "Observation." + # Goal image (walkthrough state from same viewpoint) + goal_path = metadata.get("goal_rgb_path") + if goal_path: + img_url = _encode_image_base64(goal_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + + text = "Observation (image 1: current, image 2: goal)." if self.use_feedback and step.feedback: text += f"\nFeedback: {step.feedback}" - # GPS overlay from step info - gps_text = self._format_gps(step.info) + # GPS overlay from observation metadata + gps_text = self._format_gps(metadata) if gps_text: text += f"\n{gps_text}" @@ -135,7 +162,12 @@ def _make_history_content(self, step) -> list[dict]: def _make_current_content(self, memory: AgentMemory) -> list[dict]: content = [] + metadata = ( + memory.current_observation.metadata + if memory.current_observation else {} + ) + # Current observation image if memory.current_observation and memory.current_observation.rgb_path: img_url = _encode_image_base64(memory.current_observation.rgb_path) if img_url: @@ -144,39 +176,54 @@ def _make_current_content(self, memory: AgentMemory) -> list[dict]: "image_url": {"url": img_url}, }) + # Goal image (walkthrough state from same viewpoint) + goal_path = metadata.get("goal_rgb_path") + if goal_path: + img_url = _encode_image_base64(goal_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + + has_goal = bool(goal_path) + img_label = " (image 1: current, image 2: goal)" if has_goal else "" + if memory.is_first_turn: - text = "First observation. Begin the rearrangement task." + text = f"First observation{img_label}. Begin the rearrangement task." else: - text = "Current observation." + text = f"Current observation{img_label}." if self.use_feedback and memory.steps: last = memory.steps[-1] if last.feedback: text += f"\nFeedback: {last.feedback}" - # GPS from last step info + # GPS and held-object from last step's observation metadata if memory.steps: - gps_text = self._format_gps(memory.steps[-1].info) + last_metadata = memory.steps[-1].observation.metadata if memory.steps[-1].observation else {} + gps_text = self._format_gps(last_metadata) if gps_text: text += f"\n{gps_text}" - held = (memory.steps[-1].info or {}).get("held_object", "none") + held = last_metadata.get("held_object", "none") text += f"\nHolding: {held}" text += f"\n\n{OUTPUT_SCHEMA}" content.append({"type": "text", "text": text}) return content - def _format_gps(self, info: dict | None) -> str: - if not info: + def _format_gps(self, metadata: dict | None) -> str: + if not metadata: return "" parts = [] - if "agent_x" in info: - parts.append( - f"Position: ({info['agent_x']:.2f}, {info['agent_y']:.2f}, {info['agent_z']:.2f})" - ) - if "agent_rotation" in info: - parts.append(f"Rotation: {info['agent_rotation']:.0f}") - if "agent_horizon" in info: - parts.append(f"Horizon: {info['agent_horizon']:.0f}") + if "agent_x" in metadata: + x = float(metadata["agent_x"]) + y = float(metadata["agent_y"]) + z = float(metadata["agent_z"]) + parts.append(f"Position: ({x:.2f}, {y:.2f}, {z:.2f})") + if "agent_rotation" in metadata: + parts.append(f"Rotation: {float(metadata['agent_rotation']):.0f}") + if "agent_horizon" in metadata: + parts.append(f"Horizon: {float(metadata['agent_horizon']):.0f}") return "GPS: " + ", ".join(parts) if parts else "" def parse_response( diff --git a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py index dd27443..1b0a156 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py +++ b/easi/tasks/ai2thor_rearrangement_2023/vendor/rearrange/environment.py @@ -861,11 +861,10 @@ def position_to_tuple(position: Dict[str, float]): if len(possible_receptacles) == 0 or ( not self.controller.last_event.metadata["lastActionSuccess"] ): + # DropHeldObjectAhead was removed in AI2-THOR v5; use DropHandObject self.controller.step( - "DropHeldObjectAhead", + "DropHandObject", forceAction=True, - autoSimulation=False, - **{**self.physics_step_kwargs, "actionSimulationSeconds": 1.5}, ) return False diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py index 984c3f5..51297c0 100644 --- a/tests/test_ai2thor_rearrangement_2023_task.py +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -211,6 +211,92 @@ def test_set_action_space(self): assert "move_ahead" in builder._action_name_set assert "pickup_bowl" in builder._action_name_set + def test_lazy_init_action_space(self): + """build_messages should lazy-init action space from memory.action_space.""" + from easi.core.memory import AgentMemory + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + + builder = AI2THORRearrangement2023PromptBuilder() + # Action space NOT set via set_action_space — should be empty + assert builder._action_list_str == "" + + memory = AgentMemory(action_space=["done", "move_ahead", "pickup_bowl"]) + memory.current_observation = Observation(rgb_path="/tmp/fake.png") + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + # After build_messages, action list should be populated from memory + assert "done" in builder._action_list_str + assert "move_ahead" in builder._action_list_str + # System message should contain action list + system_content = messages[0]["content"] + assert "move_ahead" in system_content + + def test_gps_from_observation_metadata(self): + """GPS data should come from step.observation.metadata (not step.info).""" + from easi.core.memory import AgentMemory + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + + builder = AI2THORRearrangement2023PromptBuilder() + builder.set_action_space(["done", "move_ahead"]) + + memory = AgentMemory(action_space=["done", "move_ahead"]) + # Record a step with GPS in observation metadata + obs_with_gps = Observation( + rgb_path="/tmp/fake.png", + metadata={ + "agent_x": 1.5, "agent_y": 0.87, "agent_z": -2.0, + "agent_rotation": 90.0, "agent_horizon": 0.0, + "held_object": "Bowl", + }, + ) + from easi.core.episode import Action + memory.record_step(obs_with_gps, Action(action_name="move_ahead"), llm_response="test") + memory.record_feedback("success") + + memory.current_observation = Observation(rgb_path="/tmp/fake2.png") + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + # The current turn message should include GPS and held object + last_user = messages[-1] + text_parts = [p["text"] for p in last_user["content"] if p.get("type") == "text"] + text = " ".join(text_parts) + assert "1.50" in text # agent_x + assert "Holding: Bowl" in text + + def test_goal_image_in_content(self): + """When goal_rgb_path is in metadata, build_messages should include it.""" + from easi.core.memory import AgentMemory + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + import tempfile, os + from PIL import Image + import numpy as np + + builder = AI2THORRearrangement2023PromptBuilder() + builder.set_action_space(["done", "move_ahead"]) + + # Create real temp images so _encode_image_base64 works + with tempfile.TemporaryDirectory() as tmpdir: + img = Image.fromarray(np.zeros((4, 4, 3), dtype=np.uint8)) + obs_path = os.path.join(tmpdir, "obs.png") + goal_path = os.path.join(tmpdir, "goal.png") + img.save(obs_path) + img.save(goal_path) + + memory = AgentMemory(action_space=["done", "move_ahead"]) + memory.current_observation = Observation( + rgb_path=obs_path, + metadata={"goal_rgb_path": goal_path}, + ) + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + last_user = messages[-1] + # Should have 2 images (current + goal) + 1 text + image_parts = [p for p in last_user["content"] if p.get("type") == "image_url"] + assert len(image_parts) == 2 + def test_parse_valid_response(self): from easi.core.memory import AgentMemory builder = self._make_builder() From e954703f6fcfd7e888d155bdd57f724ad4815974 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 15:47:16 +0800 Subject: [PATCH 109/239] feat: dynamic sensor descriptions in prompt and depth image capture - Make system prompt observations section dynamic based on sensor toggles (use_rgb, use_depth, use_gps, use_goal_image) - Add clear explanations of each sensor type (RGB, Depth, GPS) - Label images explicitly in messages (Image 1: RGB current, etc.) - Implement depth frame capture in bridge (grayscale PNG, close=bright) - Gate GPS text in prompt by use_gps toggle - Adapt strategy section based on goal image availability - Add sensor toggles to prompt_builder_kwargs in _base.yaml - Add 7 new tests for sensor toggles and dynamic prompt content --- .../ai2thor_rearrangement_2023/_base.yaml | 5 + .../ai2thor_rearrangement_2023/bridge.py | 34 ++- .../ai2thor_rearrangement_2023/prompts.py | 229 +++++++++++++----- tests/test_ai2thor_rearrangement_2023_task.py | 169 +++++++++++++ 4 files changed, 372 insertions(+), 65 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml index 109ac7a..ef15fda 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -32,6 +32,11 @@ agent: use_feedback: true chat_history: true message_window_len: 10 + # Sensor toggles (must match simulator_configs) + use_rgb: true + use_depth: false + use_gps: true + use_goal_image: true generation_kwargs: temperature: 0 max_tokens: 2048 diff --git a/easi/tasks/ai2thor_rearrangement_2023/bridge.py b/easi/tasks/ai2thor_rearrangement_2023/bridge.py index ac85d18..85db9b4 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/bridge.py +++ b/easi/tasks/ai2thor_rearrangement_2023/bridge.py @@ -142,8 +142,13 @@ def _on_reset(self, env, reset_config): return env.last_event.frame.copy() def reset(self, reset_config): - """Override to add initial goal image to the reset response.""" + """Override to add initial depth + goal images to the reset response.""" response = super().reset(reset_config) + if self._use_depth: + depth_frame = self.env.last_event.depth_frame + if depth_frame is not None: + depth_path = self._save_depth_image(depth_frame) + response.setdefault("info", {})["depth_path"] = depth_path if self._walkthrough_env is not None: goal_rgb = self._get_goal_frame(self.env) goal_path = self._save_goal_image(goal_rgb) @@ -187,6 +192,13 @@ def _on_step(self, env, action_text): feedback = "success" if action_success else "action failed" info["feedback"] = feedback + # Capture depth image (if enabled) + if self._use_depth: + depth_frame = env.last_event.depth_frame + if depth_frame is not None: + depth_path = self._save_depth_image(depth_frame) + info["depth_path"] = depth_path + # Capture goal image (walkthrough env teleported to current agent position) if self._walkthrough_env is not None: goal_rgb = self._get_goal_frame(env) @@ -299,6 +311,26 @@ def _save_goal_image(self, image_array: np.ndarray) -> str: Image.fromarray(image_array).save(str(goal_path)) return str(goal_path) + def _save_depth_image(self, depth_array: np.ndarray) -> str: + """Save depth frame as grayscale PNG (closer = brighter), return path. + + AI2-THOR's depth_frame contains float32 distance values in meters. + We normalise to [0, 255] clipped at the visibility distance, then + invert so that nearby surfaces are bright and far surfaces are dark. + """ + from PIL import Image + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + depth_path = save_dir / ("step_%04d_depth.png" % self.step_count) + + max_depth = self._controller_kwargs.get("visibilityDistance", 1.5) + clipped = np.clip(depth_array, 0, max_depth) + normalised = 1.0 - (clipped / max_depth) # invert: close=bright + uint8_depth = (normalised * 255).astype(np.uint8) + Image.fromarray(uint8_depth, mode="L").save(str(depth_path)) + return str(depth_path) + def _build_info(self, env, action_name: str, action_success: bool) -> dict: """Build info dict with sensor data and action feedback.""" info = { diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py index 9192676..ff32cd0 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/prompts.py +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -3,8 +3,9 @@ Constructs multi-modal prompts with observation images, GPS data, action history, and structured JSON output schema. -For the 1-phase track, each step includes both the current (shuffled) -observation and a goal (walkthrough) image from the same viewpoint. +Sensor inputs (RGB, Depth, Goal image, GPS) are individually toggleable +via prompt_builder_kwargs. The system prompt and per-step image labels +adapt automatically to reflect which sensors are active. """ from __future__ import annotations @@ -18,6 +19,8 @@ logger = get_logger(__name__) +# --- System prompt template (observations section is injected dynamically) --- + SYSTEM_PROMPT = """\ You are an embodied AI agent performing an object rearrangement task in a 3D indoor environment (AI2-THOR). @@ -25,11 +28,8 @@ {instruction} ## Observations -You receive two images at each step: -1. **Current scene** — what the environment looks like RIGHT NOW (shuffled state) -2. **Goal scene** — what the environment SHOULD look like from the same viewpoint (target state) - -Compare these two images to identify which objects are misplaced and where they should go. +At each step you receive the following sensor inputs: +{observation_description} ## Available Actions {action_list} @@ -42,13 +42,7 @@ - **Done**: Signal that all objects are in their correct positions ## Strategy -1. Compare the current and goal images to identify misplaced objects -2. Navigate to a misplaced object -3. Pick it up with the matching pickup_ action -4. Navigate toward where it belongs (compare with goal image) -5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close -6. Repeat for remaining misplaced objects -7. Say "done" when finished +{strategy} ## Rules - You can hold only ONE object at a time @@ -61,7 +55,7 @@ Respond in this exact JSON format: ```json {{ - "observation": "describe what you see in current vs goal images", + "observation": "describe what you see in the observation images", "reasoning": "what to do next and why", "plan": [ {{"action_name": ""}}, @@ -73,18 +67,31 @@ class AI2THORRearrangement2023PromptBuilder: - """Prompt builder for the rearrangement task.""" + """Prompt builder for the rearrangement task. + + Sensor toggles (use_rgb, use_depth, use_gps, use_goal_image) control + both what appears in the system prompt description and what sensor + data is included in per-step messages. + """ def __init__( self, use_feedback: bool = True, chat_history: bool = True, message_window_len: int = 10, + use_rgb: bool = True, + use_depth: bool = False, + use_gps: bool = True, + use_goal_image: bool = True, **kwargs, ): self.use_feedback = use_feedback self.chat_history = chat_history self.message_window_len = message_window_len + self.use_rgb = use_rgb + self.use_depth = use_depth + self.use_gps = use_gps + self.use_goal_image = use_goal_image self._action_list_str = "" self._action_name_set: set[str] = set() @@ -93,6 +100,74 @@ def set_action_space(self, actions: list[str]): parts = [f"{i}: {a}" for i, a in enumerate(actions)] self._action_list_str = ", ".join(parts) + # --- System prompt helpers --- + + def _build_observation_description(self) -> str: + """Build the observation section of the system prompt based on active sensors.""" + sections = [] + idx = 1 + + if self.use_rgb: + sections.append( + f"- **RGB Image — Current Scene** (Image {idx}): A first-person " + f"camera view showing the environment as it looks RIGHT NOW " + f"(shuffled state). Objects may be misplaced relative to the goal." + ) + idx += 1 + + if self.use_depth: + sections.append( + f"- **Depth Image** (Image {idx}): A grayscale depth map from " + f"the agent's viewpoint. Brighter pixels are closer, darker " + f"pixels are farther away. Use this to judge distances to " + f"objects and obstacles." + ) + idx += 1 + + if self.use_goal_image: + sections.append( + f"- **RGB Image — Goal Scene** (Image {idx}): A first-person " + f"camera view from the SAME position showing what the " + f"environment SHOULD look like (target state). Compare with " + f"the current scene to identify misplaced objects." + ) + idx += 1 + + if self.use_gps: + sections.append( + "- **GPS Data** (text): The agent's 3D position (x, y, z) in " + "meters where y is the vertical axis (height). Yaw rotation in " + "degrees (0°–360°). Horizon angle: 0° = looking straight " + "ahead, positive = looking down, negative = looking up. Also " + "reports which object the agent is currently holding, if any." + ) + + return "\n".join(sections) if sections else "No sensor inputs configured." + + def _build_strategy(self) -> str: + """Build the strategy section based on whether goal images are available.""" + if self.use_goal_image: + return ( + "1. Compare the current and goal images to identify misplaced objects\n" + "2. Navigate to a misplaced object\n" + "3. Pick it up with the matching pickup_ action\n" + "4. Navigate toward where it belongs (compare with goal image)\n" + "5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close\n" + "6. Repeat for remaining misplaced objects\n" + '7. Say "done" when finished' + ) + return ( + "1. Explore the environment to identify objects that appear misplaced\n" + "2. Navigate to a misplaced object\n" + "3. Pick it up with the matching pickup_ action\n" + "4. Navigate to where it should go based on context\n" + "5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close\n" + "6. Repeat for remaining misplaced objects\n" + '7. Say "done" when finished' + ) + + # --- Message building --- + def build_messages(self, memory: AgentMemory) -> list[dict]: # Lazy-init action space from memory (set by agent constructor) if not self._action_list_str and memory.action_space: @@ -102,7 +177,9 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: system_text = SYSTEM_PROMPT.format( instruction=instruction, + observation_description=self._build_observation_description(), action_list=self._action_list_str, + strategy=self._build_strategy(), ) messages = [{"role": "system", "content": system_text}] @@ -125,69 +202,89 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: return messages - def _make_history_content(self, step) -> list[dict]: - content = [] - metadata = step.observation.metadata if step.observation else {} - - # Current observation image - if step.observation and step.observation.rgb_path: - img_url = _encode_image_base64(step.observation.rgb_path) + def _add_images( + self, content: list, rgb_path: str | None, metadata: dict, + ) -> str: + """Append sensor images to *content* list. + + Returns a parenthetical label string like + ``" (Image 1: RGB current, Image 2: Depth, Image 3: RGB goal)"`` + that describes the images actually added. + """ + labels: list[str] = [] + idx = 1 + + # 1. RGB current scene + if self.use_rgb and rgb_path: + img_url = _encode_image_base64(rgb_path) if img_url: content.append({ "type": "image_url", "image_url": {"url": img_url}, }) + labels.append(f"Image {idx}: RGB current") + idx += 1 + + # 2. Depth map + if self.use_depth: + depth_path = metadata.get("depth_path") + if depth_path: + img_url = _encode_image_base64(depth_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + labels.append(f"Image {idx}: Depth") + idx += 1 + + # 3. Goal scene (walkthrough state from same viewpoint) + if self.use_goal_image: + goal_path = metadata.get("goal_rgb_path") + if goal_path: + img_url = _encode_image_base64(goal_path) + if img_url: + content.append({ + "type": "image_url", + "image_url": {"url": img_url}, + }) + labels.append(f"Image {idx}: RGB goal") + idx += 1 - # Goal image (walkthrough state from same viewpoint) - goal_path = metadata.get("goal_rgb_path") - if goal_path: - img_url = _encode_image_base64(goal_path) - if img_url: - content.append({ - "type": "image_url", - "image_url": {"url": img_url}, - }) + return f" ({', '.join(labels)})" if labels else "" + + def _make_history_content(self, step) -> list[dict]: + content: list[dict] = [] + metadata = step.observation.metadata if step.observation else {} + rgb_path = step.observation.rgb_path if step.observation else None - text = "Observation (image 1: current, image 2: goal)." + img_label = self._add_images(content, rgb_path, metadata) + + text = f"Observation{img_label}." if self.use_feedback and step.feedback: text += f"\nFeedback: {step.feedback}" # GPS overlay from observation metadata - gps_text = self._format_gps(metadata) - if gps_text: - text += f"\n{gps_text}" + if self.use_gps: + gps_text = self._format_gps(metadata) + if gps_text: + text += f"\n{gps_text}" content.append({"type": "text", "text": text}) return content def _make_current_content(self, memory: AgentMemory) -> list[dict]: - content = [] + content: list[dict] = [] metadata = ( memory.current_observation.metadata if memory.current_observation else {} ) + rgb_path = ( + memory.current_observation.rgb_path + if memory.current_observation else None + ) - # Current observation image - if memory.current_observation and memory.current_observation.rgb_path: - img_url = _encode_image_base64(memory.current_observation.rgb_path) - if img_url: - content.append({ - "type": "image_url", - "image_url": {"url": img_url}, - }) - - # Goal image (walkthrough state from same viewpoint) - goal_path = metadata.get("goal_rgb_path") - if goal_path: - img_url = _encode_image_base64(goal_path) - if img_url: - content.append({ - "type": "image_url", - "image_url": {"url": img_url}, - }) - - has_goal = bool(goal_path) - img_label = " (image 1: current, image 2: goal)" if has_goal else "" + img_label = self._add_images(content, rgb_path, metadata) if memory.is_first_turn: text = f"First observation{img_label}. Begin the rearrangement task." @@ -200,10 +297,14 @@ def _make_current_content(self, memory: AgentMemory) -> list[dict]: # GPS and held-object from last step's observation metadata if memory.steps: - last_metadata = memory.steps[-1].observation.metadata if memory.steps[-1].observation else {} - gps_text = self._format_gps(last_metadata) - if gps_text: - text += f"\n{gps_text}" + last_metadata = ( + memory.steps[-1].observation.metadata + if memory.steps[-1].observation else {} + ) + if self.use_gps: + gps_text = self._format_gps(last_metadata) + if gps_text: + text += f"\n{gps_text}" held = last_metadata.get("held_object", "none") text += f"\nHolding: {held}" @@ -221,9 +322,9 @@ def _format_gps(self, metadata: dict | None) -> str: z = float(metadata["agent_z"]) parts.append(f"Position: ({x:.2f}, {y:.2f}, {z:.2f})") if "agent_rotation" in metadata: - parts.append(f"Rotation: {float(metadata['agent_rotation']):.0f}") + parts.append(f"Rotation: {float(metadata['agent_rotation']):.0f}\u00b0") if "agent_horizon" in metadata: - parts.append(f"Horizon: {float(metadata['agent_horizon']):.0f}") + parts.append(f"Horizon: {float(metadata['agent_horizon']):.0f}\u00b0") return "GPS: " + ", ".join(parts) if parts else "" def parse_response( diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py index 51297c0..df11254 100644 --- a/tests/test_ai2thor_rearrangement_2023_task.py +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -296,6 +296,175 @@ def test_goal_image_in_content(self): # Should have 2 images (current + goal) + 1 text image_parts = [p for p in last_user["content"] if p.get("type") == "image_url"] assert len(image_parts) == 2 + # Text should label images explicitly + text_parts = [p["text"] for p in last_user["content"] if p.get("type") == "text"] + text = " ".join(text_parts) + assert "Image 1: RGB current" in text + assert "Image 2: RGB goal" in text + + def test_depth_image_in_content(self): + """When use_depth=True and depth_path in metadata, include depth image.""" + from easi.core.memory import AgentMemory + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + import tempfile, os + from PIL import Image + import numpy as np + + builder = AI2THORRearrangement2023PromptBuilder(use_depth=True) + builder.set_action_space(["done", "move_ahead"]) + + with tempfile.TemporaryDirectory() as tmpdir: + img = Image.fromarray(np.zeros((4, 4, 3), dtype=np.uint8)) + depth_img = Image.fromarray(np.zeros((4, 4), dtype=np.uint8), mode="L") + obs_path = os.path.join(tmpdir, "obs.png") + depth_path = os.path.join(tmpdir, "depth.png") + goal_path = os.path.join(tmpdir, "goal.png") + img.save(obs_path) + depth_img.save(depth_path) + img.save(goal_path) + + memory = AgentMemory(action_space=["done", "move_ahead"]) + memory.current_observation = Observation( + rgb_path=obs_path, + metadata={ + "depth_path": depth_path, + "goal_rgb_path": goal_path, + }, + ) + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + last_user = messages[-1] + # Should have 3 images (RGB + Depth + Goal) + image_parts = [p for p in last_user["content"] if p.get("type") == "image_url"] + assert len(image_parts) == 3 + # Text labels should reflect all three + text_parts = [p["text"] for p in last_user["content"] if p.get("type") == "text"] + text = " ".join(text_parts) + assert "Image 1: RGB current" in text + assert "Image 2: Depth" in text + assert "Image 3: RGB goal" in text + + def test_depth_excluded_when_toggled_off(self): + """When use_depth=False (default), depth_path in metadata is ignored.""" + from easi.core.memory import AgentMemory + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + import tempfile, os + from PIL import Image + import numpy as np + + builder = AI2THORRearrangement2023PromptBuilder(use_depth=False) + builder.set_action_space(["done", "move_ahead"]) + + with tempfile.TemporaryDirectory() as tmpdir: + img = Image.fromarray(np.zeros((4, 4, 3), dtype=np.uint8)) + obs_path = os.path.join(tmpdir, "obs.png") + depth_path = os.path.join(tmpdir, "depth.png") + img.save(obs_path) + img.save(depth_path) + + memory = AgentMemory(action_space=["done", "move_ahead"]) + memory.current_observation = Observation( + rgb_path=obs_path, + metadata={"depth_path": depth_path}, + ) + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + last_user = messages[-1] + # Should have only 1 image (RGB current), depth excluded + image_parts = [p for p in last_user["content"] if p.get("type") == "image_url"] + assert len(image_parts) == 1 + + def test_dynamic_system_prompt_all_sensors(self): + """System prompt should describe all active sensors.""" + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + from easi.core.memory import AgentMemory + + builder = AI2THORRearrangement2023PromptBuilder( + use_rgb=True, use_depth=True, use_gps=True, use_goal_image=True, + ) + builder.set_action_space(["done"]) + memory = AgentMemory(action_space=["done"]) + memory.current_observation = Observation(rgb_path="/tmp/fake.png") + memory.task_description = "Test." + + messages = builder.build_messages(memory) + system = messages[0]["content"] + assert "RGB Image — Current Scene" in system + assert "Depth Image" in system + assert "RGB Image — Goal Scene" in system + assert "GPS Data" in system + + def test_dynamic_system_prompt_rgb_only(self): + """System prompt should only mention RGB when other sensors are off.""" + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + from easi.core.memory import AgentMemory + + builder = AI2THORRearrangement2023PromptBuilder( + use_rgb=True, use_depth=False, use_gps=False, use_goal_image=False, + ) + builder.set_action_space(["done"]) + memory = AgentMemory(action_space=["done"]) + memory.current_observation = Observation(rgb_path="/tmp/fake.png") + memory.task_description = "Test." + + messages = builder.build_messages(memory) + system = messages[0]["content"] + assert "RGB Image — Current Scene" in system + assert "Depth Image" not in system + assert "RGB Image — Goal Scene" not in system + assert "GPS Data" not in system + + def test_strategy_adapts_to_goal_image_toggle(self): + """Strategy section changes based on whether goal images are available.""" + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + from easi.core.memory import AgentMemory + + with_goal = AI2THORRearrangement2023PromptBuilder(use_goal_image=True) + with_goal.set_action_space(["done"]) + mem = AgentMemory(action_space=["done"]) + mem.current_observation = Observation(rgb_path="/tmp/fake.png") + mem.task_description = "Test." + system_with = with_goal.build_messages(mem)[0]["content"] + + without_goal = AI2THORRearrangement2023PromptBuilder(use_goal_image=False) + without_goal.set_action_space(["done"]) + system_without = without_goal.build_messages(mem)[0]["content"] + + assert "Compare the current and goal images" in system_with + assert "Compare the current and goal images" not in system_without + assert "Explore the environment" in system_without + + def test_gps_excluded_when_toggled_off(self): + """GPS text should not appear when use_gps=False.""" + from easi.core.memory import AgentMemory + from easi.core.episode import Action + from easi.tasks.ai2thor_rearrangement_2023.prompts import AI2THORRearrangement2023PromptBuilder + + builder = AI2THORRearrangement2023PromptBuilder(use_gps=False) + builder.set_action_space(["done", "move_ahead"]) + + memory = AgentMemory(action_space=["done", "move_ahead"]) + obs_with_gps = Observation( + rgb_path="/tmp/fake.png", + metadata={ + "agent_x": 1.5, "agent_y": 0.87, "agent_z": -2.0, + "agent_rotation": 90.0, "agent_horizon": 0.0, + "held_object": "Bowl", + }, + ) + memory.record_step(obs_with_gps, Action(action_name="move_ahead"), llm_response="test") + memory.record_feedback("success") + memory.current_observation = Observation(rgb_path="/tmp/fake2.png") + memory.task_description = "Rearrange objects." + + messages = builder.build_messages(memory) + last_user = messages[-1] + text_parts = [p["text"] for p in last_user["content"] if p.get("type") == "text"] + text = " ".join(text_parts) + assert "GPS:" not in text + assert "Position:" not in text def test_parse_valid_response(self): from easi.core.memory import AgentMemory From b4127abb54f8947080d5ea36454c986260004c8c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 15:48:00 +0800 Subject: [PATCH 110/239] chore: remove obsolete backward-compat tests - Remove test_backward_compat_import for old json_repair import path - Remove TestAggregateMetricsBackwardCompat for deprecated aggregate_metrics --- tests/test_json_repair.py | 5 ----- tests/test_metrics.py | 15 --------------- 2 files changed, 20 deletions(-) diff --git a/tests/test_json_repair.py b/tests/test_json_repair.py index f6dad8c..b1103c8 100644 --- a/tests/test_json_repair.py +++ b/tests/test_json_repair.py @@ -69,8 +69,3 @@ def test_full_llm_output_with_single_quotes(self): data = json.loads(result) assert data["executable_plan"][0]["action_id"] == 14 assert data["executable_plan"][0]["action_name"] == "find a Mug" - - def test_backward_compat_import(self): - """Old import path still works via re-export.""" - from easi.tasks.ebalfred.json_repair import fix_json as old_fix_json - assert old_fix_json is fix_json diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 096b5a2..d6591ee 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -140,21 +140,6 @@ def aggregate_results(self, records): assert agg["total_steps"] == 3.0 -class TestAggregateMetricsBackwardCompat: - """Verify old aggregate_metrics() still works for any existing callers.""" - - def test_aggregate_metrics_unchanged(self): - from easi.evaluation.metrics import aggregate_metrics - results = [ - {"success": 1.0, "num_steps": 10.0}, - {"success": 0.0, "num_steps": 20.0}, - ] - summary = aggregate_metrics(results) - assert summary["num_episodes"] == 2 - assert summary["avg_success"] == 0.5 - assert summary["success_rate"] == 0.5 - - class TestSummaryJsonStructure: """Test that summary.json nests metrics under 'metrics' key.""" From 33da190c6f3faa7741046b1b80bc3a1a5a6ee4e3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 15:53:19 +0800 Subject: [PATCH 111/239] fix: aggregate_results crashes on non-numeric episode_results values The runner injects string fields (episode_id, instruction) into the metrics dict which ends up in episode_results. The aggregation was trying to sum() these strings. Filter to (int, float) only. --- easi/tasks/ai2thor_rearrangement_2023/task.py | 4 +-- tests/test_ai2thor_rearrangement_2023_task.py | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/task.py b/easi/tasks/ai2thor_rearrangement_2023/task.py index 8c3c5e1..c4588d6 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/task.py +++ b/easi/tasks/ai2thor_rearrangement_2023/task.py @@ -124,8 +124,8 @@ def aggregate_results( values = [] for r in records: v = r.episode_results.get(key) - if v is not None and not (isinstance(v, float) and math.isnan(v)): - values.append(v) + if isinstance(v, (int, float)) and not math.isnan(v): + values.append(float(v)) if values: agg[key] = sum(values) / len(values) else: diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py index df11254..167f9ab 100644 --- a/tests/test_ai2thor_rearrangement_2023_task.py +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -197,6 +197,40 @@ def test_aggregate_filters_nan_success_length(self): # success_length should average only non-NaN: 3.0 assert agg["success_length"] == 3.0 + def test_aggregate_skips_non_numeric_values(self): + """String fields (episode_id, instruction) injected by the runner must not crash sum().""" + task = _make_task() + + records = [ + EpisodeRecord( + episode={"id": "ep1"}, trajectory=[], + episode_results={ + "success": 1.0, "num_steps": 3.0, + # Runner injects these string fields into episode_results + "episode_id": "FloorPlan21__0", + "instruction": "Move the bowl.", + "elapsed_seconds": 5.2, + }, + ), + EpisodeRecord( + episode={"id": "ep2"}, trajectory=[], + episode_results={ + "success": 0.0, "num_steps": 7.0, + "episode_id": "FloorPlan22__0", + "instruction": "Move the cup.", + "elapsed_seconds": 8.1, + }, + ), + ] + # Should not raise TypeError + agg = task.aggregate_results(records) + assert agg["success"] == 0.5 + assert agg["num_steps"] == 5.0 + assert agg["elapsed_seconds"] == pytest.approx(6.65) + # String keys should be NaN (skipped) + assert math.isnan(agg["episode_id"]) + assert math.isnan(agg["instruction"]) + class TestPromptBuilder: def _make_builder(self): From f3997bbd62d36b274bd18304c78b828f38ddd61a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 16:28:49 +0800 Subject: [PATCH 112/239] fix: aggregate only official metrics + runtime stats in summary Restrict aggregation to the 6 paper metrics (SR, SRwD, PuSR, PuLen, SuLen, Len) plus runtime stats (avg/total elapsed seconds, avg LLM calls). Excludes runner-injected junk keys (episode_id, instruction, llm_usage dict) from summary.json metrics. --- easi/tasks/ai2thor_rearrangement_2023/task.py | 39 +++++++++++++++---- tests/test_ai2thor_rearrangement_2023_task.py | 39 +++++++++++++------ 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/task.py b/easi/tasks/ai2thor_rearrangement_2023/task.py index c4588d6..4be2594 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/task.py +++ b/easi/tasks/ai2thor_rearrangement_2023/task.py @@ -104,23 +104,29 @@ def evaluate_episode( "success_length": success_length, } + # The 6 official paper metrics (+ num_steps for convenience) + METRIC_KEYS = ( + "success", # SR — Episode Success % + "prop_fixed_strict", # SRwD — Ep-Success w/o Disturbance % + "pickup_success_rate", # PuSR — PickUp Success % + "num_pickup_actions", # PuLen — Ep-Len for PickUp + "success_length", # SuLen — Ep-Len for Success + "num_steps", # Len — Ep-Len + ) + def aggregate_results( self, records: list[EpisodeRecord] ) -> dict[str, float]: - """Aggregate metrics across episodes. + """Aggregate the 6 official paper metrics plus runtime stats. Handles NaN success_length (only averages successful episodes). """ if not records: return {} - # Collect all metric keys - all_keys = set() - for r in records: - all_keys.update(r.episode_results.keys()) - + # 1. Official paper metrics agg = {} - for key in sorted(all_keys): + for key in self.METRIC_KEYS: values = [] for r in records: v = r.episode_results.get(key) @@ -131,6 +137,25 @@ def aggregate_results( else: agg[key] = float("nan") + # 2. Runtime stats + elapsed_values = [] + llm_call_counts = [] + for r in records: + elapsed = r.episode_results.get("elapsed_seconds") + if isinstance(elapsed, (int, float)): + elapsed_values.append(float(elapsed)) + + usage = r.episode_results.get("llm_usage") + if isinstance(usage, dict): + calls = usage.get("total_calls", 0) + llm_call_counts.append(float(calls)) + + if elapsed_values: + agg["avg_elapsed_seconds"] = sum(elapsed_values) / len(elapsed_values) + agg["total_elapsed_seconds"] = sum(elapsed_values) + if llm_call_counts: + agg["avg_llm_calls"] = sum(llm_call_counts) / len(llm_call_counts) + return agg def _get_builtin_episodes(self) -> list[dict]: diff --git a/tests/test_ai2thor_rearrangement_2023_task.py b/tests/test_ai2thor_rearrangement_2023_task.py index 167f9ab..bd236f9 100644 --- a/tests/test_ai2thor_rearrangement_2023_task.py +++ b/tests/test_ai2thor_rearrangement_2023_task.py @@ -197,39 +197,54 @@ def test_aggregate_filters_nan_success_length(self): # success_length should average only non-NaN: 3.0 assert agg["success_length"] == 3.0 - def test_aggregate_skips_non_numeric_values(self): - """String fields (episode_id, instruction) injected by the runner must not crash sum().""" + def test_aggregate_only_official_metrics_and_runtime_stats(self): + """Aggregation outputs 6 paper metrics + runtime stats, nothing else.""" task = _make_task() records = [ EpisodeRecord( episode={"id": "ep1"}, trajectory=[], episode_results={ - "success": 1.0, "num_steps": 3.0, - # Runner injects these string fields into episode_results + "success": 1.0, "prop_fixed_strict": 1.0, + "num_steps": 3.0, "success_length": 3.0, + "pickup_success_rate": 1.0, "num_pickup_actions": 1.0, + # Runner-injected fields "episode_id": "FloorPlan21__0", "instruction": "Move the bowl.", - "elapsed_seconds": 5.2, + "elapsed_seconds": 5.0, + "llm_usage": {"total_calls": 2, "total_tokens": 100}, }, ), EpisodeRecord( episode={"id": "ep2"}, trajectory=[], episode_results={ - "success": 0.0, "num_steps": 7.0, + "success": 0.0, "prop_fixed_strict": 0.0, + "num_steps": 7.0, "success_length": float("nan"), + "pickup_success_rate": 0.5, "num_pickup_actions": 2.0, "episode_id": "FloorPlan22__0", "instruction": "Move the cup.", - "elapsed_seconds": 8.1, + "elapsed_seconds": 9.0, + "llm_usage": {"total_calls": 4, "total_tokens": 200}, }, ), ] - # Should not raise TypeError agg = task.aggregate_results(records) + + # Official paper metrics assert agg["success"] == 0.5 assert agg["num_steps"] == 5.0 - assert agg["elapsed_seconds"] == pytest.approx(6.65) - # String keys should be NaN (skipped) - assert math.isnan(agg["episode_id"]) - assert math.isnan(agg["instruction"]) + assert agg["success_length"] == 3.0 # only successful ep + + # Runtime stats + assert agg["avg_elapsed_seconds"] == 7.0 + assert agg["total_elapsed_seconds"] == 14.0 + assert agg["avg_llm_calls"] == 3.0 + + # Junk keys excluded + assert "episode_id" not in agg + assert "instruction" not in agg + assert "elapsed_seconds" not in agg + assert "llm_usage" not in agg class TestPromptBuilder: From 1840cf2e59b55b75d0635f8e3ccd6d72a4e8c265 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 17:27:30 +0800 Subject: [PATCH 113/239] fix: warn agent that all objects are evaluated, not just listed ones Success requires ALL objects in the scene to be in their goal positions. Add warning after the Goal section explaining this, and add a rule to avoid disturbing already-correct objects while navigating. --- easi/tasks/ai2thor_rearrangement_2023/prompts.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py index ff32cd0..36fe5f2 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/prompts.py +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -27,6 +27,8 @@ ## Goal {instruction} +**Important:** You are evaluated on the final state of ALL objects in the scene, not just the ones listed above. If you accidentally bump into or displace objects that were already in their correct positions, it counts against you. Navigate carefully. + ## Observations At each step you receive the following sensor inputs: {observation_description} @@ -49,6 +51,7 @@ - drop_held_object_with_snap works best when the goal location is visible - If pickup fails, try moving closer or adjusting your view angle - Grid movement: 0.25m steps, 90° rotations +- **Do NOT disturb objects already in their correct positions** — avoid bumping into furniture or pushing items while navigating. Take careful, minimal paths. """ OUTPUT_SCHEMA = """\ From 1d18edd7e0b64f5bec7e112532671aee891837ca Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 24 Feb 2026 20:10:13 +0800 Subject: [PATCH 114/239] fix: remove stale object-list reference from prompt warning Instruction no longer lists specific displaced objects, so remove "not just the ones listed above" phrasing. --- easi/tasks/ai2thor_rearrangement_2023/prompts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py index 36fe5f2..f5e9f62 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/prompts.py +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -27,7 +27,7 @@ ## Goal {instruction} -**Important:** You are evaluated on the final state of ALL objects in the scene, not just the ones listed above. If you accidentally bump into or displace objects that were already in their correct positions, it counts against you. Navigate carefully. +**Important:** You are evaluated on the final state of ALL objects in the scene. If you accidentally bump into or displace objects that are already in their correct positions, it counts against you. Navigate carefully. ## Observations At each step you receive the following sensor inputs: From d214f7f7d264441f1a05ac026e27d0a93d2bb28d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 25 Feb 2026 10:41:54 +0800 Subject: [PATCH 115/239] feat: add AI2-THOR v3.3.5 simulator (arm mode) for ManipulaTHOR Adds a new simulator version targeting the exact ai2thor commit used by ManipulaTHOR (a84dd29). Includes conda env (Python 3.8), env manager, simulator stub, generic arm-mode bridge with IPC, and 16 tests. --- easi/simulators/ai2thor/manifest.yaml | 5 + easi/simulators/ai2thor/v3_3_5/__init__.py | 6 + easi/simulators/ai2thor/v3_3_5/bridge.py | 255 ++++++++++++++++++ easi/simulators/ai2thor/v3_3_5/conda_env.yaml | 6 + easi/simulators/ai2thor/v3_3_5/env_manager.py | 42 +++ .../ai2thor/v3_3_5/requirements.txt | 4 + easi/simulators/ai2thor/v3_3_5/simulator.py | 21 ++ tests/test_ai2thor_v335_simulator.py | 142 ++++++++++ 8 files changed, 481 insertions(+) create mode 100644 easi/simulators/ai2thor/v3_3_5/__init__.py create mode 100644 easi/simulators/ai2thor/v3_3_5/bridge.py create mode 100644 easi/simulators/ai2thor/v3_3_5/conda_env.yaml create mode 100644 easi/simulators/ai2thor/v3_3_5/env_manager.py create mode 100644 easi/simulators/ai2thor/v3_3_5/requirements.txt create mode 100644 easi/simulators/ai2thor/v3_3_5/simulator.py create mode 100644 tests/test_ai2thor_v335_simulator.py diff --git a/easi/simulators/ai2thor/manifest.yaml b/easi/simulators/ai2thor/manifest.yaml index d6d8356..96de5a6 100644 --- a/easi/simulators/ai2thor/manifest.yaml +++ b/easi/simulators/ai2thor/manifest.yaml @@ -7,6 +7,11 @@ versions: simulator_class: "easi.simulators.ai2thor.v2_1_0.simulator.AI2ThorSimulatorV210" env_manager_class: "easi.simulators.ai2thor.v2_1_0.env_manager.AI2ThorEnvManagerV210" python_version: "3.8" + v3_3_5: + description: "AI2-THOR ~3.3.5 (arm mode) — used by manipulathor" + simulator_class: "easi.simulators.ai2thor.v3_3_5.simulator.AI2ThorSimulatorV335" + env_manager_class: "easi.simulators.ai2thor.v3_3_5.env_manager.AI2ThorEnvManagerV335" + python_version: "3.8" v5_0_0: description: "AI2-THOR 5.0.0 — currently used by eb-navigation" simulator_class: "easi.simulators.ai2thor.v5_0_0.simulator.AI2ThorSimulatorV500" diff --git a/easi/simulators/ai2thor/v3_3_5/__init__.py b/easi/simulators/ai2thor/v3_3_5/__init__.py new file mode 100644 index 0000000..98bbdb3 --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/__init__.py @@ -0,0 +1,6 @@ +"""AI2-THOR v3.3.5 (arm-mode API for ManipulaTHOR).""" + +from easi.simulators.ai2thor.v3_3_5.env_manager import AI2ThorEnvManagerV335 +from easi.simulators.ai2thor.v3_3_5.simulator import AI2ThorSimulatorV335 + +__all__ = ["AI2ThorSimulatorV335", "AI2ThorEnvManagerV335"] diff --git a/easi/simulators/ai2thor/v3_3_5/bridge.py b/easi/simulators/ai2thor/v3_3_5/bridge.py new file mode 100644 index 0000000..99202d9 --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/bridge.py @@ -0,0 +1,255 @@ +"""Generic bridge for AI2-THOR v3.3.5 (arm-mode). + +Runs inside the easi_ai2thor_v3_3_5 conda env (Python 3.8). +Configures the controller with agentMode='arm' and FifoServer. +Task-specific bridges should subclass BaseBridge in the task layer. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import ( + poll_for_command, + write_response, + write_status, +) +from easi.communication.schemas import ( + make_error_response, + make_observation_response, + parse_action_from_command, +) +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + +# Exact ai2thor commit used by ManipulaTHOR — tells the Controller which +# build to download instead of trying `git log` in site-packages. +COMMIT_ID = "a84dd29471ec2201f583de00257d84fac1a03de2" + +# Default controller kwargs for arm-mode AI2-THOR +DEFAULT_CONTROLLER_KWARGS = { + "gridSize": 0.25, + "width": 224, + "height": 224, + "visibilityDistance": 1.0, + "agentMode": "arm", + "fieldOfView": 100, + "agentControllerType": "mid-level", + "useMassThreshold": True, + "massThreshold": 10, + "autoSimulation": False, + "autoSyncTransforms": True, +} + + +class AI2ThorV335Bridge: + """Generic bridge for AI2-THOR v3.3.5 arm-mode.""" + + def __init__(self, workspace, data_dir=None, simulator_kwargs=None): + self.workspace = Path(workspace) + self.data_dir = Path(data_dir) if data_dir else None + self.simulator_kwargs = simulator_kwargs or {} + self.controller = None + self.step_count = 0 + self.episode_output_dir = None + + def start(self): + """Initialize the AI2-THOR controller.""" + import ai2thor.controller + import ai2thor.fifo_server + + kwargs = dict(DEFAULT_CONTROLLER_KWARGS) + # Allow simulator_kwargs to override defaults + for k in ( + "width", "height", "gridSize", "fieldOfView", + "visibilityDistance", "agentMode", "agentControllerType", + "renderDepthImage", + ): + if k in self.simulator_kwargs: + kwargs[k] = self.simulator_kwargs[k] + + kwargs["server_class"] = ai2thor.fifo_server.FifoServer + kwargs["commit_id"] = COMMIT_ID + self.controller = ai2thor.controller.Controller(**kwargs) + logger.info("AI2-THOR v3.3.5 controller started (arm mode)") + + def stop(self): + """Shut down the controller.""" + if self.controller is not None: + self.controller.stop() + self.controller = None + + def reset(self, reset_config): + """Reset to a scene. Returns IPC response dict.""" + scene = reset_config.get("scene", "FloorPlan1") + self.step_count = 0 + + self.controller.reset(scene) + # Standard arm-mode setup commands + self.controller.step(action="MakeAllObjectsMoveable") + self.controller.step( + action="MakeObjectsStaticKinematicMassThreshold" + ) + + self.episode_output_dir = reset_config.get("episode_output_dir") + return self._make_observation_response( + self.controller.last_event, + ) + + def step(self, action_name): + """Execute an action. Returns IPC response dict.""" + self.step_count += 1 + + success = False + done = False + + if action_name in ("done", "DoneMidLevel"): + done = True + success = True + else: + event = self.controller.step(action=action_name) + success = event.metadata["lastActionSuccess"] + + info = { + "action_name": action_name, + "action_success": success, + "feedback": "success" if success else "action failed", + } + + return self._make_observation_response( + self.controller.last_event, + reward=0.0, + done=done, + info=info, + ) + + def _make_observation_response( + self, event, reward=0.0, done=False, info=None, + ): + """Save RGB frame and build IPC response dict.""" + from PIL import Image + + save_dir = ( + Path(self.episode_output_dir) + if self.episode_output_dir + else self.workspace + ) + save_dir.mkdir(parents=True, exist_ok=True) + + rgb = ( + event.frame.copy() + if event.frame is not None + else np.zeros((224, 224, 3), dtype=np.uint8) + ) + rgb_path = save_dir / f"step_{self.step_count:04d}.png" + Image.fromarray(rgb).save(str(rgb_path)) + + agent = event.metadata.get("agent", {}) + pos = agent.get("position", {}) + rot = agent.get("rotation", {}) + pose = [ + pos.get("x", 0), + pos.get("y", 0), + pos.get("z", 0), + rot.get("y", 0), + agent.get("cameraHorizon", 0), + 0, + ] + + return make_observation_response( + rgb_path=str(rgb_path), + agent_pose=pose, + metadata={"step": str(self.step_count)}, + reward=reward, + done=done, + info=info, + ) + + def run(self): + """Main IPC loop.""" + self.start() + write_status(self.workspace, ready=True) + + while True: + command = poll_for_command(self.workspace, timeout=300.0) + cmd_type = command.get("type") + + if cmd_type == "reset": + reset_config = command.get("config", {}) + self.episode_output_dir = reset_config.get( + "episode_output_dir" + ) + + try: + response = self.reset(reset_config) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Reset failed") + write_response( + self.workspace, make_error_response(str(e)) + ) + + elif cmd_type == "step": + action = parse_action_from_command(command) + logger.trace( + "Step %d: action=%s", + self.step_count + 1, + action.action_name, + ) + + try: + response = self.step(action.action_name) + write_response(self.workspace, response) + except Exception as e: + logger.exception("Step failed") + write_response( + self.workspace, make_error_response(str(e)) + ) + + elif cmd_type == "close": + logger.info("Close command received") + self.stop() + write_response(self.workspace, {"status": "ok"}) + break + + else: + write_response( + self.workspace, + make_error_response("Unknown command: %s" % cmd_type), + ) + + +def main(): + parser = argparse.ArgumentParser( + description="AI2-THOR v3.3.5 generic bridge (arm mode)" + ) + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--data-dir", type=Path, default=None) + parser.add_argument("--simulator-kwargs", type=str, default=None) + args, _ = parser.parse_known_args() + + setup_logging("DEBUG") + sim_kwargs = ( + json.loads(args.simulator_kwargs) + if args.simulator_kwargs + else {} + ) + bridge = AI2ThorV335Bridge( + workspace=args.workspace, + data_dir=args.data_dir, + simulator_kwargs=sim_kwargs, + ) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/ai2thor/v3_3_5/conda_env.yaml b/easi/simulators/ai2thor/v3_3_5/conda_env.yaml new file mode 100644 index 0000000..38b490d --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/conda_env.yaml @@ -0,0 +1,6 @@ +name: easi_ai2thor_v3_3_5 +channels: + - conda-forge + - defaults +dependencies: + - python=3.8 diff --git a/easi/simulators/ai2thor/v3_3_5/env_manager.py b/easi/simulators/ai2thor/v3_3_5/env_manager.py new file mode 100644 index 0000000..f9f18cf --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/env_manager.py @@ -0,0 +1,42 @@ +"""Environment manager for AI2-THOR v3.3.5 (arm-mode API). + +Used by ManipulaTHOR. Requires Python 3.8 and Xvfb. +Installs AI2-THOR from git commit a84dd29 (~v3.3.5). +""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class AI2ThorEnvManagerV335(BaseEnvironmentManager): + """Environment manager for AI2-THOR 3.3.5.""" + + @property + def simulator_name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v3_3_5" + + @property + def default_render_platform(self) -> str: + return "auto" + + @property + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native"] + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb"] + + def get_validation_import(self) -> str: + return "import ai2thor; print(f'ai2thor {ai2thor.__version__}')" diff --git a/easi/simulators/ai2thor/v3_3_5/requirements.txt b/easi/simulators/ai2thor/v3_3_5/requirements.txt new file mode 100644 index 0000000..30fff77 --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/requirements.txt @@ -0,0 +1,4 @@ +ai2thor @ git+https://github.com/allenai/ai2thor.git@a84dd29471ec2201f583de00257d84fac1a03de2 +numpy<1.24 +Pillow +scipy diff --git a/easi/simulators/ai2thor/v3_3_5/simulator.py b/easi/simulators/ai2thor/v3_3_5/simulator.py new file mode 100644 index 0000000..d1cdcb8 --- /dev/null +++ b/easi/simulators/ai2thor/v3_3_5/simulator.py @@ -0,0 +1,21 @@ +"""AI2-THOR v3.3.5 simulator (arm-mode, ManipulaTHOR).""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class AI2ThorSimulatorV335(BaseSimulator): + """AI2-THOR v3.3.5 simulator stub.""" + + @property + def name(self) -> str: + return "ai2thor" + + @property + def version(self) -> str: + return "v3_3_5" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/tests/test_ai2thor_v335_simulator.py b/tests/test_ai2thor_v335_simulator.py new file mode 100644 index 0000000..aa8685a --- /dev/null +++ b/tests/test_ai2thor_v335_simulator.py @@ -0,0 +1,142 @@ +"""Tests for AI2-THOR v3.3.5 simulator registration and configuration.""" +from __future__ import annotations + +import pytest + + +class TestRegistryDiscovery: + """Verify v3_3_5 is auto-discovered by the simulator registry.""" + + def test_explicit_key_registered(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor:v3_3_5") + assert entry.name == "ai2thor" + assert entry.version == "v3_3_5" + + def test_listed_in_registry(self): + from easi.simulators.registry import list_simulators + + sims = list_simulators() + assert "ai2thor:v3_3_5" in sims + + def test_default_is_not_v335(self): + """v5_0_0 should remain the default, not v3_3_5.""" + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor") + assert entry.version == "v5_0_0" + + def test_python_version(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor:v3_3_5") + assert entry.python_version == "3.8" + + def test_description(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor:v3_3_5") + assert "arm mode" in entry.description + assert "manipulathor" in entry.description + + +class TestEnvManager: + """Test env_manager properties without actually installing.""" + + def test_simulator_name(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.simulator_name == "ai2thor" + + def test_version(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.version == "v3_3_5" + + def test_env_name(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.get_env_name() == "easi_ai2thor_v3_3_5" + + def test_conda_env_yaml_exists(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.get_conda_env_yaml_path().exists() + + def test_requirements_txt_exists(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.get_requirements_txt_path().exists() + + def test_system_deps_include_xvfb(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + deps = mgr.get_system_deps() + assert "conda" in deps + assert "xvfb" in deps + + def test_supported_render_platforms(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + platforms = mgr.supported_render_platforms + assert "auto" in platforms + assert "xvfb" in platforms + assert "native" in platforms + + def test_default_render_platform(self): + from easi.simulators.ai2thor.v3_3_5.env_manager import ( + AI2ThorEnvManagerV335, + ) + + mgr = AI2ThorEnvManagerV335() + assert mgr.default_render_platform == "auto" + + +class TestSimulator: + """Test simulator stub properties.""" + + def test_name(self): + from easi.simulators.ai2thor.v3_3_5.simulator import ( + AI2ThorSimulatorV335, + ) + + sim = AI2ThorSimulatorV335() + assert sim.name == "ai2thor" + + def test_version(self): + from easi.simulators.ai2thor.v3_3_5.simulator import ( + AI2ThorSimulatorV335, + ) + + sim = AI2ThorSimulatorV335() + assert sim.version == "v3_3_5" + + def test_bridge_path_exists(self): + from easi.simulators.ai2thor.v3_3_5.simulator import ( + AI2ThorSimulatorV335, + ) + + sim = AI2ThorSimulatorV335() + assert sim._get_bridge_script_path().exists() From 0490a041857715fcb451abfd1216d7d4218abfba Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 26 Feb 2026 11:40:35 +0800 Subject: [PATCH 116/239] feat: add ManipulaTHOR Arm Point Navigation task integration Integrate ManipulaTHOR APND benchmark into EASI with 13 discrete actions, 6 paper-aligned metrics, GPS sensors, depth colormap rendering, toggleable verbose feedback, and 6 dataset splits from HuggingFace. --- .../ai2thor/v3_3_5/requirements.txt | 1 + easi/tasks/manipulathor/__init__.py | 0 easi/tasks/manipulathor/_base.yaml | 33 + easi/tasks/manipulathor/actions.py | 58 ++ easi/tasks/manipulathor/bridge.py | 138 ++++ .../config/manipulathor_examples.json | 4 + .../manipulathor_seen_scenes_novel.yaml | 9 + .../manipulathor/manipulathor_test_novel.yaml | 9 + .../manipulathor/manipulathor_test_seen.yaml | 9 + .../manipulathor/manipulathor_train.yaml | 9 + .../manipulathor/manipulathor_val_novel.yaml | 9 + .../manipulathor/manipulathor_val_seen.yaml | 9 + easi/tasks/manipulathor/prompts.py | 280 ++++++++ easi/tasks/manipulathor/task.py | 158 +++++ easi/tasks/manipulathor/vendor/__init__.py | 0 .../manipulathor/vendor/manipulathor_env.py | 617 ++++++++++++++++++ tests/test_manipulathor_task.py | 394 +++++++++++ 17 files changed, 1737 insertions(+) create mode 100644 easi/tasks/manipulathor/__init__.py create mode 100644 easi/tasks/manipulathor/_base.yaml create mode 100644 easi/tasks/manipulathor/actions.py create mode 100644 easi/tasks/manipulathor/bridge.py create mode 100644 easi/tasks/manipulathor/config/manipulathor_examples.json create mode 100644 easi/tasks/manipulathor/manipulathor_seen_scenes_novel.yaml create mode 100644 easi/tasks/manipulathor/manipulathor_test_novel.yaml create mode 100644 easi/tasks/manipulathor/manipulathor_test_seen.yaml create mode 100644 easi/tasks/manipulathor/manipulathor_train.yaml create mode 100644 easi/tasks/manipulathor/manipulathor_val_novel.yaml create mode 100644 easi/tasks/manipulathor/manipulathor_val_seen.yaml create mode 100644 easi/tasks/manipulathor/prompts.py create mode 100644 easi/tasks/manipulathor/task.py create mode 100644 easi/tasks/manipulathor/vendor/__init__.py create mode 100644 easi/tasks/manipulathor/vendor/manipulathor_env.py create mode 100644 tests/test_manipulathor_task.py diff --git a/easi/simulators/ai2thor/v3_3_5/requirements.txt b/easi/simulators/ai2thor/v3_3_5/requirements.txt index 30fff77..5f781c7 100644 --- a/easi/simulators/ai2thor/v3_3_5/requirements.txt +++ b/easi/simulators/ai2thor/v3_3_5/requirements.txt @@ -2,3 +2,4 @@ ai2thor @ git+https://github.com/allenai/ai2thor.git@a84dd29471ec2201f583de00257 numpy<1.24 Pillow scipy +matplotlib diff --git a/easi/tasks/manipulathor/__init__.py b/easi/tasks/manipulathor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/manipulathor/_base.yaml b/easi/tasks/manipulathor/_base.yaml new file mode 100644 index 0000000..12f36cb --- /dev/null +++ b/easi/tasks/manipulathor/_base.yaml @@ -0,0 +1,33 @@ +display_name: "ManipulaTHOR" +description: "ManipulaTHOR Arm Point Navigation — pick up an object and move it to a goal location in AI2-THOR kitchens" +simulator: "ai2thor:v3_3_5" +task_class: "easi.tasks.manipulathor.task.ManipulaTHORTask" + +max_steps: 200 + +dataset: + source: huggingface + repo_id: "oscarqjh/manipulathor_easi" + +simulator_configs: + render_platform: auto + width: 224 + height: 224 + renderDepthImage: true + verbose_feedback: true + additional_deps: + - "matplotlib" + +agent: + prompt_builder: "easi.tasks.manipulathor.prompts.ManipulaTHORPromptBuilder" + prompt_builder_kwargs: + n_shot: 0 + use_feedback: true + chat_history: false + max_steps: 200 + use_rgb: true + use_gps: true + use_depth: false + generation_kwargs: + temperature: 0 + max_tokens: 2048 diff --git a/easi/tasks/manipulathor/actions.py b/easi/tasks/manipulathor/actions.py new file mode 100644 index 0000000..d4be0c4 --- /dev/null +++ b/easi/tasks/manipulathor/actions.py @@ -0,0 +1,58 @@ +"""ManipulaTHOR Arm Point Navigation action space and constants.""" + +# --- Action names (from ithor_arm_constants.py) --- +MOVE_ARM_HEIGHT_P = "MoveArmHeightP" +MOVE_ARM_HEIGHT_M = "MoveArmHeightM" +MOVE_ARM_X_P = "MoveArmXP" +MOVE_ARM_X_M = "MoveArmXM" +MOVE_ARM_Y_P = "MoveArmYP" +MOVE_ARM_Y_M = "MoveArmYM" +MOVE_ARM_Z_P = "MoveArmZP" +MOVE_ARM_Z_M = "MoveArmZM" +MOVE_AHEAD = "MoveAheadContinuous" +ROTATE_RIGHT = "RotateRightContinuous" +ROTATE_LEFT = "RotateLeftContinuous" +PICKUP = "PickUpMidLevel" +DONE = "DoneMidLevel" + +# Ordered action list (matches original ArmPointNavTask._actions) +ACTION_SPACE = [ + MOVE_ARM_HEIGHT_P, + MOVE_ARM_HEIGHT_M, + MOVE_ARM_X_P, + MOVE_ARM_X_M, + MOVE_ARM_Y_P, + MOVE_ARM_Y_M, + MOVE_ARM_Z_P, + MOVE_ARM_Z_M, + MOVE_AHEAD, + ROTATE_RIGHT, + ROTATE_LEFT, + PICKUP, + DONE, +] + +# --- Constants (from ithor_arm_constants.py) --- +MOVE_ARM_CONSTANT = 0.05 +MOVE_ARM_HEIGHT_CONSTANT = MOVE_ARM_CONSTANT +MOVE_THR = 0.01 # Threshold for disturbance detection +ARM_MIN_HEIGHT = 0.450998873 +ARM_MAX_HEIGHT = 1.8009994 +AGENT_BASE_LOCATION_Y = 0.9009995460510254 + +ADITIONAL_ARM_ARGS = { + "disableRendering": True, + "returnToStart": True, + "speed": 1, +} + +# MAX_STEPS from original paper +MAX_STEPS = 200 + +# AI2-THOR commit used by ManipulaTHOR +MANIPULATHOR_COMMIT_ID = "a84dd29471ec2201f583de00257d84fac1a03de2" + + +def get_action_space() -> list: + """Return the ManipulaTHOR action space as a list of action name strings.""" + return list(ACTION_SPACE) diff --git a/easi/tasks/manipulathor/bridge.py b/easi/tasks/manipulathor/bridge.py new file mode 100644 index 0000000..78f97d0 --- /dev/null +++ b/easi/tasks/manipulathor/bridge.py @@ -0,0 +1,138 @@ +"""ManipulaTHOR bridge for EASI's filesystem IPC protocol. + +Runs in the easi_ai2thor_v3_3_5 conda env (Python 3.8). +Extends BaseBridge to wrap ManipulaTHOREnv. +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +# Ensure repo root is importable +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ManipulaTHORBridge(BaseBridge): + """Bridge for ManipulaTHOR Arm Point Navigation task. + + Wraps ManipulaTHOREnv in EASI's IPC protocol. Adds GPS state + sensors and depth information to observations. + """ + + def _create_env(self, reset_config, simulator_kwargs): + from easi.tasks.manipulathor.vendor.manipulathor_env import ManipulaTHOREnv + + # Pass any controller overrides from simulator_kwargs + controller_kwargs = {} + for k in ("width", "height", "gridSize", "fieldOfView", + "visibilityDistance", "renderDepthImage"): + if k in simulator_kwargs: + controller_kwargs[k] = simulator_kwargs[k] + + # Enable depth rendering for GPS-like observations + controller_kwargs.setdefault("renderDepthImage", True) + + verbose_feedback = simulator_kwargs.get("verbose_feedback", True) + env = ManipulaTHOREnv( + controller_kwargs=controller_kwargs, + verbose_feedback=verbose_feedback, + ) + return env + + def _on_reset(self, env, reset_config): + """Parse reset_config and delegate to ManipulaTHOREnv.reset().""" + # Parse JSON strings from HF dataset back to dicts + config = dict(reset_config) + for key in ("source_position", "target_position", + "initial_agent_pose", "arm_starting_pose"): + if isinstance(config.get(key), str): + config[key] = json.loads(config[key]) + + return env.reset(config) + + def _on_step(self, env, action_text): + """Execute named action via ManipulaTHOREnv.step().""" + return env.step(action_text) + + def _extract_image(self, obs): + """Extract RGB frame from observation dict.""" + return obs["frame"] + + def _extract_info(self, info): + """Pass through all metric fields from ManipulaTHOREnv.""" + return {k: v for k, v in info.items() + if isinstance(v, (int, float, str, bool))} + + def _save_images(self, obs): + """Save RGB and depth images with _.png naming.""" + from PIL import Image + import matplotlib + matplotlib.use("Agg") + import matplotlib.cm as cm + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + step_id = "%04d" % self.step_count + + # RGB + rgb_path = save_dir / f"{step_id}_rgb.png" + Image.fromarray(obs["frame"]).save(str(rgb_path)) + + # Depth (turbo colormap PNG) + depth_path = None + if obs.get("depth_frame") is not None: + depth = obs["depth_frame"] + d_min, d_max = depth.min(), depth.max() + if d_max - d_min > 1e-6: + depth_norm = (depth - d_min) / (d_max - d_min) + else: + depth_norm = np.zeros_like(depth) + colormap = cm.get_cmap("turbo") + depth_colored = (colormap(depth_norm)[:, :, :3] * 255).astype(np.uint8) + depth_path = save_dir / f"{step_id}_depth.png" + Image.fromarray(depth_colored).save(str(depth_path)) + depth_path = str(depth_path) + + return str(rgb_path), depth_path + + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Override to add GPS state + depth to observation metadata.""" + rgb_path, depth_path = self._save_images(obs) + + # Build metadata with GPS state + metadata = {"step": str(self.step_count)} + if self.env is not None: + gps = self.env.get_gps_state() + metadata["relative_current_obj_state"] = json.dumps(gps["relative_current_obj_state"]) + metadata["relative_obj_to_goal"] = json.dumps(gps["relative_obj_to_goal"]) + metadata["relative_agent_arm_to_obj"] = json.dumps(gps["relative_agent_arm_to_obj"]) + metadata["pickedup_object"] = str(gps["pickedup_object"]) + + # Build info + clean_info = self._extract_info(info or {}) + clean_info["step"] = str(self.step_count) + + from easi.communication.schemas import make_observation_response + return make_observation_response( + rgb_path=rgb_path, + depth_path=depth_path, + agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + metadata=metadata, + reward=reward, + done=done, + info=clean_info, + ) + + +if __name__ == "__main__": + ManipulaTHORBridge.main() diff --git a/easi/tasks/manipulathor/config/manipulathor_examples.json b/easi/tasks/manipulathor/config/manipulathor_examples.json new file mode 100644 index 0000000..41c0205 --- /dev/null +++ b/easi/tasks/manipulathor/config/manipulathor_examples.json @@ -0,0 +1,4 @@ +[ + "Task: Pick up the Apple and move it to the target location.\nObject state: The Apple is 0.3m ahead and 0.1m to the right. Goal is 1.2m ahead. Arm is 0.5m from the object. Object not held.\nStep 0: I see a kitchen counter. The Apple is on the counter ahead of me. The goal location is further ahead. I need to first approach the Apple, extend my arm to reach it, pick it up, then navigate to the goal.\nPlan: Move arm forward to approach object, pick up, navigate to goal.\nActions: [{\"action_id\": 6, \"action_name\": \"MoveArmZP\"}, {\"action_id\": 6, \"action_name\": \"MoveArmZP\"}, {\"action_id\": 11, \"action_name\": \"PickUpMidLevel\"}]", + "Task: Pick up the Mug and move it to the target location.\nObject state: The Mug is 0.1m ahead. Object is held. Goal is 0.8m ahead and 0.2m to the left. Arm is holding the object.\nStep 5: I have picked up the Mug. Now I need to navigate towards the goal position. The goal is ahead and to the left.\nPlan: Move ahead, rotate left to align with goal, move arm to place.\nActions: [{\"action_id\": 8, \"action_name\": \"MoveAheadContinuous\"}, {\"action_id\": 10, \"action_name\": \"RotateLeftContinuous\"}, {\"action_id\": 8, \"action_name\": \"MoveAheadContinuous\"}]" +] diff --git a/easi/tasks/manipulathor/manipulathor_seen_scenes_novel.yaml b/easi/tasks/manipulathor/manipulathor_seen_scenes_novel.yaml new file mode 100644 index 0000000..b6727e3 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_seen_scenes_novel.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_seen_scenes_novel +display_name: "ManipulaTHOR SeenScenes-NovelObj" +description: "Seen scenes with novel objects — 19 train scenes, 6 novel objects, 6840 episodes" +dataset: + split: "seen_scenes_novel_obj" +agent: + prompt_builder_kwargs: + split: "seen_scenes_novel" diff --git a/easi/tasks/manipulathor/manipulathor_test_novel.yaml b/easi/tasks/manipulathor/manipulathor_test_novel.yaml new file mode 100644 index 0000000..49290c6 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_test_novel.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_test_novel +display_name: "ManipulaTHOR Test-NovelObj" +description: "Test split with novel objects — 5 test scenes, 6 novel objects, 1800 episodes" +dataset: + split: "test_novel_obj" +agent: + prompt_builder_kwargs: + split: "test_novel" diff --git a/easi/tasks/manipulathor/manipulathor_test_seen.yaml b/easi/tasks/manipulathor/manipulathor_test_seen.yaml new file mode 100644 index 0000000..d160281 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_test_seen.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_test_seen +display_name: "ManipulaTHOR Test-SeenObj" +description: "Test split with seen objects — 5 test scenes, 6 seen objects, 1800 episodes" +dataset: + split: "test_seen_obj" +agent: + prompt_builder_kwargs: + split: "test_seen" diff --git a/easi/tasks/manipulathor/manipulathor_train.yaml b/easi/tasks/manipulathor/manipulathor_train.yaml new file mode 100644 index 0000000..cffd338 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_train.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_train +display_name: "ManipulaTHOR Train" +description: "Training split — 19 scenes, 6 seen objects, 6840 episodes" +dataset: + split: "train" +agent: + prompt_builder_kwargs: + split: "train" diff --git a/easi/tasks/manipulathor/manipulathor_val_novel.yaml b/easi/tasks/manipulathor/manipulathor_val_novel.yaml new file mode 100644 index 0000000..a8da382 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_val_novel.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_val_novel +display_name: "ManipulaTHOR Val-NovelObj" +description: "Validation split with novel objects — 5 val scenes, 6 novel objects, 1800 episodes" +dataset: + split: "val_novel_obj" +agent: + prompt_builder_kwargs: + split: "val_novel" diff --git a/easi/tasks/manipulathor/manipulathor_val_seen.yaml b/easi/tasks/manipulathor/manipulathor_val_seen.yaml new file mode 100644 index 0000000..3b99e21 --- /dev/null +++ b/easi/tasks/manipulathor/manipulathor_val_seen.yaml @@ -0,0 +1,9 @@ +extends: _base.yaml +name: manipulathor_val_seen +display_name: "ManipulaTHOR Val-SeenObj" +description: "Validation split with seen objects — 5 val scenes, 6 seen objects, 1800 episodes" +dataset: + split: "val_seen_obj" +agent: + prompt_builder_kwargs: + split: "val_seen" diff --git a/easi/tasks/manipulathor/prompts.py b/easi/tasks/manipulathor/prompts.py new file mode 100644 index 0000000..2d517cf --- /dev/null +++ b/easi/tasks/manipulathor/prompts.py @@ -0,0 +1,280 @@ +"""ManipulaTHOR prompt builder for EASI LLM agents. + +Presents RGB image + GPS state sensors + action history. +Outputs JSON with executable plan of named action IDs. +""" +from __future__ import annotations + +import json +from pathlib import Path +from typing import Optional + +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.tasks.manipulathor.actions import ACTION_SPACE +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# ── System prompt template ────────────────────────────────────────────────── + +SYSTEM_PROMPT = """You are a robotic arm agent in a kitchen environment. Your task is to pick up a target object and move it to a goal location. + +## Environment +- You control a robotic arm mounted on a mobile base in a kitchen (AI2-THOR simulator). +- You observe: an RGB image from the agent's camera{sensor_note}. +- Each arm movement moves 0.05m. Navigation moves 0.2m forward or rotates 45°. +- Maximum {max_steps} steps per episode. + +## Available Actions (choose by ID 0-{max_id}): +{action_list} +{gps_description} +## Strategy for Using GPS Sensors +The GPS sensors give you precise spatial information in YOUR reference frame (agent-relative coordinates). + +**Phase 1 — Approach the object:** +- Check "Arm-to-Object Distance": this tells you how far your arm tip is from the target object on each axis. +- Positive X means the object is to your right; positive Z means it is ahead of you. +- Use MoveArmXP/XM, MoveArmYP/YM, MoveArmZP/ZM to reduce arm-to-object distance on each axis. +- Use MoveAheadContinuous / RotateLeft / RotateRight if the object is far (>0.5m) — navigation is faster than arm movement. + +**Phase 2 — Pick up the object:** +- When arm-to-object distance is small on all axes (<0.1m), use PickUpMidLevel (action 11). +- After pickup, check "Object Held" — it should read "Yes". + +**Phase 3 — Navigate to the goal:** +- Check "Object-to-Goal Distance": this tells you how far the object is from the goal. +- Navigate (MoveAhead, Rotate) to reduce the distance. The object moves with you when held. +- Use arm movements for fine positioning when close to the goal. + +**Phase 4 — Place and finish:** +- When Object-to-Goal Distance is small on all axes (<0.1m), use DoneMidLevel (action 12). + +{examples}""" + +OUTPUT_TEMPLATE = """ + +## Output Format +Respond in JSON with this exact structure: +```json +{{ + "visual_state_description": "Describe what you see in the image and the GPS state", + "reasoning_and_reflection": "Your reasoning about the current state and what to do next", + "language_plan": "Your plan in natural language", + "executable_plan": [ + {{"action_id": , "action_name": ""}}, + ... + ] +}} +``` +Output 1-5 actions in the executable_plan. Choose action IDs from the available actions list.""" + + +# ── Prompt builder ────────────────────────────────────────────────────────── + +class ManipulaTHORPromptBuilder: + """Formats ManipulaTHOR observations for VLM, parses responses into named actions.""" + + def __init__( + self, + n_shot: int = 0, + split: str = "test_seen", + use_feedback: bool = True, + chat_history: bool = False, + max_steps: int = 200, + use_rgb: bool = True, + use_gps: bool = True, + use_depth: bool = False, + ): + self.n_shot = n_shot + self.split = split + self.use_feedback = use_feedback + self.chat_history = chat_history + self.max_steps = max_steps + self.use_rgb = use_rgb + self.use_gps = use_gps + self.use_depth = use_depth + + # Load few-shot examples + examples_file = Path(__file__).parent / "config" / "manipulathor_examples.json" + if examples_file.exists(): + with open(examples_file) as f: + self._examples = json.load(f) + else: + self._examples = [] + + # Build action list string + self._action_list = "\n".join( + f" {i}: {name}" for i, name in enumerate(ACTION_SPACE) + ) + self._action_id_map = {name: i for i, name in enumerate(ACTION_SPACE)} + self._id_action_map = {i: name for i, name in enumerate(ACTION_SPACE)} + + def set_action_space(self, actions: list) -> None: + """Update action space (called by agent).""" + pass # ManipulaTHOR has a fixed action space + + def build_messages(self, memory: AgentMemory) -> list: + """Build OpenAI message format from agent memory.""" + prompt = self._build_prompt_text(memory) + return self._wrap_as_user_message(prompt, memory.current_observation) + + def _build_prompt_text(self, memory: AgentMemory) -> str: + """Build the full prompt text.""" + max_id = len(ACTION_SPACE) - 1 + + # Build examples section + examples_str = "" + if self.n_shot >= 1 and self._examples: + examples_str = "\n\n## Examples\n" + "\n\n".join( + f"### Example {i+1}:\n{ex}" + for i, ex in enumerate(self._examples[:self.n_shot]) + ) + + # Build sensor note for system prompt + sensor_parts = [] + if self.use_gps: + sensor_parts.append("GPS-like state sensors showing spatial relationships") + if self.use_depth: + sensor_parts.append("a depth image (colormap)") + sensor_note = (", and " + ", ".join(sensor_parts)) if sensor_parts else "" + + # GPS description section (only if GPS enabled) + gps_description = "" + if self.use_gps: + gps_description = """ +## GPS State Sensors +At each step you receive: +- **Object State** (6D): object position (x,y,z) and rotation (rx,ry,rz) relative to agent +- **Object-to-Goal Distance** (3D): absolute x,y,z distance from object to goal in agent frame +- **Arm-to-Object Distance** (3D): absolute x,y,z distance from arm tip to object in agent frame +- **Object Held**: whether you are currently holding the object + +""" + + # System prompt + prompt = SYSTEM_PROMPT.format( + max_steps=self.max_steps, + max_id=max_id, + action_list=self._action_list, + examples=examples_str, + sensor_note=sensor_note, + gps_description=gps_description, + ) + + # Task instruction + task_desc = memory.task_description + prompt += f"\n\n## Current Task: {task_desc}" + + # GPS state from current observation metadata (only if GPS enabled) + obs = memory.current_observation + if self.use_gps and obs and obs.metadata: + prompt += "\n\n## Current GPS State:" + gps_fields = [ + ("relative_current_obj_state", "Object Position & Rotation (agent-relative)"), + ("relative_obj_to_goal", "Object-to-Goal Distance"), + ("relative_agent_arm_to_obj", "Arm-to-Object Distance"), + ("pickedup_object", "Object Held"), + ] + for key, label in gps_fields: + val = obs.metadata.get(key) + if val is not None: + if key == "pickedup_object": + held = float(val) > 0.5 + prompt += f"\n- {label}: {'Yes' if held else 'No'}" + else: + try: + arr = json.loads(val) if isinstance(val, str) else val + formatted = [f"{v:.3f}" for v in arr] + prompt += f"\n- {label}: [{', '.join(formatted)}]" + except (json.JSONDecodeError, TypeError): + prompt += f"\n- {label}: {val}" + + # Action history + feedback + action_history = getattr(memory, 'action_history', []) + if action_history: + prompt += "\n\n## Action History:" + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + prompt += f"\nStep {i+1}: action {action_id} ({action_name}) — {feedback}" + else: + prompt += f"\nStep {i+1}: action {action_id} ({action_name})" + + prompt += "\n\nBased on the action history and current state, plan your next actions." + + prompt += OUTPUT_TEMPLATE + return prompt + + def _wrap_as_user_message(self, prompt: str, observation) -> list: + """Wrap prompt + images as OpenAI user message. + + Includes RGB and/or depth images based on use_rgb and use_depth toggles. + """ + import base64 + + content = [] + + def _add_image(path, label): + try: + with open(path, "rb") as f: + b64 = base64.b64encode(f.read()).decode("utf-8") + content.append({ + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{b64}"}, + }) + except FileNotFoundError: + logger.warning("%s image not found: %s", label, path) + + # Add RGB image (before text, matching EASI convention) + if self.use_rgb and observation and observation.rgb_path: + _add_image(observation.rgb_path, "RGB") + + # Add depth colormap image if enabled + if self.use_depth and observation and observation.depth_path: + _add_image(observation.depth_path, "Depth") + + content.append({"type": "text", "text": prompt}) + return [{"role": "user", "content": content}] + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list: + """Parse LLM JSON response into Action objects.""" + from easi.utils.json_repair import fix_json + + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError: + logger.warning("Failed to parse LLM response as JSON") + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + + action_name = None + if "action_id" in entry: + aid = entry["action_id"] + if isinstance(aid, int) and 0 <= aid < len(ACTION_SPACE): + action_name = self._id_action_map[aid] + if action_name is None: + action_name = entry.get("action_name", "") + + if action_name in self._action_id_map: + actions.append(Action(action_name=action_name)) + else: + logger.warning("Invalid action: '%s'", action_name) + break + + return actions + + def get_response_format(self, memory: AgentMemory) -> Optional[dict]: + """Return JSON schema for structured output (optional).""" + return None # Use free-form JSON for now diff --git a/easi/tasks/manipulathor/task.py b/easi/tasks/manipulathor/task.py new file mode 100644 index 0000000..5d961bb --- /dev/null +++ b/easi/tasks/manipulathor/task.py @@ -0,0 +1,158 @@ +"""ManipulaTHOR Arm Point Navigation task for EASI.""" +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.manipulathor.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ManipulaTHORTask(BaseTask): + """ManipulaTHOR Arm Point Navigation benchmark. + + 6 evaluation splits, 13 discrete actions, 6 paper-aligned metrics. + Uses AI2-THOR v3.3.5 in arm mode via subprocess bridge. + """ + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def _build_action_space(self) -> list: + return get_action_space() + + def get_instruction(self, episode: dict) -> str: + object_type = episode.get("object_type", "object") + return f"Pick up the {object_type} and move it to the goal location." + + def format_reset_config(self, episode: dict) -> dict: + """Convert HF episode row to bridge reset config. + + HF dataset fields: id, scene, object_type, object_id, + source_position (JSON str), target_position (JSON str), + initial_agent_pose (JSON str), arm_starting_pose (JSON str), ... + """ + return { + "episode_id": str(episode.get("id", "unknown")), + "scene": episode["scene"], + "object_type": episode.get("object_type", ""), + "object_id": episode["object_id"], + "source_position": episode["source_position"], # JSON str or dict + "target_position": episode["target_position"], # JSON str or dict + "initial_agent_pose": episode["initial_agent_pose"], # JSON str or dict + "arm_starting_pose": episode.get("arm_starting_pose"), # JSON str or dict + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult], + ) -> dict[str, float]: + """Extract per-episode metrics from trajectory. + + Returns dict with keys matching the 6 paper metrics: + - episode_success: 1.0 if task completed successfully + - pickup_success: 1.0 if object was picked up + - success_wo_disturb: 1.0 if success without moving other objects + - eplen_pickup: steps until pickup (0 if not picked up) + - eplen_success: total steps if successful (0 if not) + - num_steps: total episode length + """ + if not trajectory: + return { + "episode_success": 0.0, + "pickup_success": 0.0, + "success_wo_disturb": 0.0, + "eplen_pickup": 0.0, + "eplen_success": 0.0, + "num_steps": 0.0, + } + + last = trajectory[-1] + episode_success = last.info.get("episode_success", 0.0) + pickup_success = last.info.get("pickup_success", 0.0) + success_wo_disturb = last.info.get("success_wo_disturb", 0.0) + eplen_pickup = last.info.get("eplen_pickup", 0.0) + eplen_success = last.info.get("eplen_success", 0.0) + num_steps = float(len(trajectory)) + + return { + "episode_success": float(episode_success), + "pickup_success": float(pickup_success), + "success_wo_disturb": float(success_wo_disturb), + "eplen_pickup": float(eplen_pickup), + "eplen_success": float(eplen_success), + "num_steps": num_steps, + } + + def aggregate_results( + self, records: list[EpisodeRecord], + ) -> dict[str, float]: + """Custom aggregation for ManipulaTHOR's 6 paper metrics. + + Three metrics are simple averages across all episodes: + - Episode Success % + - PickUp Success % + - Ep-Len (average steps) + + One metric averages only over successful episodes: + - Ep-Success w/o Disturbance %: success_wo_disturb / num_successful + (Note: in the paper this is reported as a rate, not conditional avg. + We report both: the rate and the conditional average.) + + Two metrics are conditional averages: + - Ep-Len for PickUp: average eplen_pickup where pickup occurred + - Ep-Len for Success: average eplen_success where success occurred + """ + if not records: + return {} + + n = len(records) + + # Unconditional averages + ep_success_sum = sum(r.episode_results["episode_success"] for r in records) + pickup_sum = sum(r.episode_results["pickup_success"] for r in records) + steps_sum = sum(r.episode_results["num_steps"] for r in records) + + # Ep-Success w/o Disturbance: + # The paper reports this as a percentage of ALL episodes (not just successes). + # From the original code: result["metric/average/success_wo_disturb"] = (len(objects_moved) == 1) + # This is only set when _success is True, otherwise it's 0. + # So the paper metric = sum(success_wo_disturb) / n + wo_disturb_sum = sum(r.episode_results["success_wo_disturb"] for r in records) + + # Conditional: Ep-Len for PickUp (only episodes where pickup occurred) + pickup_episodes = [ + r for r in records if r.episode_results["pickup_success"] > 0 + ] + avg_eplen_pickup = ( + sum(r.episode_results["eplen_pickup"] for r in pickup_episodes) / len(pickup_episodes) + if pickup_episodes else 0.0 + ) + + # Conditional: Ep-Len for Success (only successful episodes) + success_episodes = [ + r for r in records if r.episode_results["episode_success"] > 0 + ] + avg_eplen_success = ( + sum(r.episode_results["eplen_success"] for r in success_episodes) / len(success_episodes) + if success_episodes else 0.0 + ) + + return { + "episode_success_rate": round(ep_success_sum / n, 4), + "pickup_success_rate": round(pickup_sum / n, 4), + "success_wo_disturb_rate": round(wo_disturb_sum / n, 4), + "avg_eplen_pickup": round(avg_eplen_pickup, 1), + "avg_eplen_success": round(avg_eplen_success, 1), + "avg_eplen": round(steps_sum / n, 1), + # Convenience aliases + "success_rate": round(ep_success_sum / n, 4), + "num_episodes": n, + "num_successful": len(success_episodes), + "num_picked_up": len(pickup_episodes), + } diff --git a/easi/tasks/manipulathor/vendor/__init__.py b/easi/tasks/manipulathor/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/manipulathor/vendor/manipulathor_env.py b/easi/tasks/manipulathor/vendor/manipulathor_env.py new file mode 100644 index 0000000..ef6c120 --- /dev/null +++ b/easi/tasks/manipulathor/vendor/manipulathor_env.py @@ -0,0 +1,617 @@ +"""Self-contained ManipulaTHOR environment wrapping ai2thor.controller. + +Extracts essential logic from the original ManipulaTHOR codebase without +AllenAct dependencies. Handles episode setup, action execution, GPS sensor +computation, and metric state tracking. + +Reference files from original repo: +- ithor_arm/ithor_arm_environment.py (ManipulaTHOREnvironment) +- ithor_arm/ithor_arm_tasks.py (ArmPointNavTask) +- ithor_arm/ithor_arm_constants.py (constants) +- ithor_arm/arm_calculation_utils.py (coordinate transforms) +- ithor_arm/ithor_arm_task_samplers.py (episode setup) +""" +from __future__ import annotations + +import copy +import math +from typing import Any, Dict, List, Optional, Tuple + +import numpy as np + +# NOTE: ai2thor and scipy are available in the v3.3.5 conda env +import ai2thor.controller +import ai2thor.fifo_server +from scipy.spatial.transform import Rotation as R + +from easi.tasks.manipulathor.actions import ( + ACTION_SPACE, + ADITIONAL_ARM_ARGS, + AGENT_BASE_LOCATION_Y, + ARM_MAX_HEIGHT, + ARM_MIN_HEIGHT, + DONE, + MANIPULATHOR_COMMIT_ID, + MOVE_AHEAD, + MOVE_ARM_CONSTANT, + MOVE_ARM_HEIGHT_CONSTANT, + MOVE_THR, + PICKUP, + ROTATE_LEFT, + ROTATE_RIGHT, +) +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +# ── Coordinate transform utilities (from arm_calculation_utils.py) ────────── + +def _make_rotation_matrix(position: dict, rotation: dict) -> np.ndarray: + mat = np.zeros((4, 4)) + r = R.from_euler("xyz", [rotation["x"], rotation["y"], rotation["z"]], degrees=True) + mat[:3, :3] = r.as_matrix() + mat[3, 3] = 1 + mat[:3, 3] = [position["x"], position["y"], position["z"]] + return mat + + +def _position_rotation_from_mat(matrix: np.ndarray) -> dict: + rotation = R.from_matrix(matrix[:3, :3]).as_euler("xyz", degrees=True) + pos = matrix[:3, 3] + return { + "position": {"x": float(pos[0]), "y": float(pos[1]), "z": float(pos[2])}, + "rotation": {"x": float(rotation[0]), "y": float(rotation[1]), "z": float(rotation[2])}, + } + + +# Pre-computed inverse rotation matrices for agent-relative transforms +_INVERSE_ROTATIONS = {} +for _deg in range(0, 361, 45): + _r = R.from_euler("xyz", [0, _deg % 360, 0], degrees=True) + _INVERSE_ROTATIONS[_deg % 360] = np.linalg.inv(_r.as_matrix()) + + +def _find_closest_inverse(deg: float) -> np.ndarray: + for k, v in _INVERSE_ROTATIONS.items(): + if abs(k - deg) < 5: + return v + r = R.from_euler("xyz", [0, deg, 0], degrees=True) + return np.linalg.inv(r.as_matrix()) + + +def convert_world_to_agent_coordinate(world_obj: dict, agent_state: dict) -> dict: + """Convert world-frame object state to agent-relative coordinates. + + Safety: original code asserts agent only rotates around Y-axis. We warn + instead of asserting so the bridge doesn't crash mid-episode. + """ + pos = agent_state["position"] + rot = agent_state["rotation"] + + # Safety check: agent should only rotate around Y-axis (from original code) + if abs(rot.get("x", 0)) > 0.01 or abs(rot.get("z", 0)) > 0.01: + logger.warning( + "Agent rotation has non-zero x/z: %s — coordinate transform may be inaccurate", + rot, + ) + + agent_translation = [pos["x"], pos["y"], pos["z"]] + inv_rot = _find_closest_inverse(rot["y"]) + obj_mat = _make_rotation_matrix(world_obj["position"], world_obj.get("rotation", {"x": 0, "y": 0, "z": 0})) + obj_translation = np.matmul(inv_rot, obj_mat[:3, 3] - agent_translation) + obj_mat[:3, 3] = obj_translation + return _position_rotation_from_mat(obj_mat) + + +def _diff_position(p1: dict, p2: dict) -> dict: + """Absolute difference between two position dicts.""" + return {k: abs(p1[k] - p2[k]) for k in p1.keys()} + + +def _position_distance(s1: dict, s2: dict) -> float: + """Euclidean distance between two objects with 'position' keys.""" + p1, p2 = s1["position"], s2["position"] + return math.sqrt( + (p1["x"] - p2["x"]) ** 2 + + (p1["y"] - p2["y"]) ** 2 + + (p1["z"] - p2["z"]) ** 2 + ) + + +def _correct_nan_inf(d: dict) -> dict: + """Replace NaN/Inf values with 0.""" + return {k: (0 if (v != v or math.isinf(v)) else v) for k, v in d.items()} + + +# ── Main Environment ──────────────────────────────────────────────────────── + +# Default controller kwargs (from ENV_ARGS in ithor_arm_constants.py) +DEFAULT_CONTROLLER_KWARGS = { + "gridSize": 0.25, + "width": 224, + "height": 224, + "visibilityDistance": 1.0, + "agentMode": "arm", + "fieldOfView": 100, + "agentControllerType": "mid-level", + "useMassThreshold": True, + "massThreshold": 10, + "autoSimulation": False, + "autoSyncTransforms": True, +} + + +class ManipulaTHOREnv: + """Self-contained ManipulaTHOR environment for EASI bridge. + + Provides: + - Episode setup (reset scene, init arm, transport object, teleport agent) + - Action execution (13 discrete actions) + - GPS sensor computation (4 state vectors) + - Metric state tracking (success, pickup, disturbance) + """ + + def __init__(self, controller_kwargs: Optional[dict] = None, + verbose_feedback: bool = True): + self.controller: Optional[ai2thor.controller.Controller] = None + self._controller_kwargs = controller_kwargs or {} + self.verbose_feedback = verbose_feedback + + # Episode state + self.object_id: Optional[str] = None + self.object_type: Optional[str] = None + self.target_position: Optional[dict] = None # {"x":..., "y":..., "z":...} + self.source_position: Optional[dict] = None + self.initial_object_locations: Optional[dict] = None + + # Metric state + self.object_picked_up: bool = False + self.eplen_pickup: int = 0 + self._took_done_action: bool = False + self._success: bool = False + self._step_count: int = 0 + + def start(self): + """Initialize the AI2-THOR controller.""" + kwargs = dict(DEFAULT_CONTROLLER_KWARGS) + for k, v in self._controller_kwargs.items(): + kwargs[k] = v + kwargs["server_class"] = ai2thor.fifo_server.FifoServer + kwargs["commit_id"] = MANIPULATHOR_COMMIT_ID + self.controller = ai2thor.controller.Controller(**kwargs) + logger.info("ManipulaTHOR controller started (arm mode, commit=%s)", MANIPULATHOR_COMMIT_ID) + + def stop(self): + """Shut down the controller.""" + if self.controller is not None: + self.controller.stop() + self.controller = None + + def reset(self, reset_config: dict) -> dict: + """Reset to an episode. Returns initial observation dict. + + Args: + reset_config: Dict with keys: + scene, object_id, object_type, + source_position (dict), target_position (dict), + initial_agent_pose (dict), arm_starting_pose (dict) + + Returns: + obs dict with keys: frame, depth_frame, metadata + """ + if self.controller is None: + self.start() + + scene = reset_config["scene"] + self.object_id = reset_config["object_id"] + self.object_type = reset_config.get("object_type", "") + self.source_position = reset_config["source_position"] + self.target_position = reset_config["target_position"] + + # Reset metric state + self.object_picked_up = False + self.eplen_pickup = 0 + self._took_done_action = False + self._success = False + self._step_count = 0 + + # 1. Reset scene + standard setup + self._reset_scene(scene) + + # 2. Initialize arm + arm_pose = reset_config.get("arm_starting_pose") + self._initialize_arm(arm_pose) + + # 3. Transport object to source position + self._transport_object(self.object_id, self.source_position) + + # 4. Teleport agent to initial pose + agent_pose = reset_config["initial_agent_pose"] + self._teleport_agent(agent_pose) + + # 5. Record initial object locations for disturbance metric + self.initial_object_locations = self._get_current_object_locations() + + return self._build_obs() + + def step(self, action_name: str) -> Tuple[dict, float, bool, dict]: + """Execute one action. Returns (obs, reward, done, info). + + Returns: + obs: dict with keys: frame, depth_frame, metadata + reward: float (always 0.0 — no reward shaping for LLM eval) + done: bool + info: dict with metric fields + """ + self._step_count += 1 + + # Execute the action + action_success = self._execute_action(action_name) + + # Check pickup status + if not self.object_picked_up and self._is_object_in_hand(): + self.object_picked_up = True + self.eplen_pickup = self._step_count + + # Handle DONE action + done = False + if action_name == DONE: + self._took_done_action = True + done = True + obj_state = self._get_object_by_id(self.object_id) + goal_state = {"position": self.target_position} + self._success = ( + self.object_picked_up + and self._obj_state_proximity(obj_state, goal_state) + ) + action_success = self._success + + # Build info dict with all metric-relevant fields + info = { + "last_action_success": float(action_success), + "action_name": action_name, + "object_picked_up": float(self.object_picked_up), + "episode_success": float(self._success), + "pickup_success": float(self.object_picked_up), + } + + # Compute additional metrics on success + if self._success: + moved = self._get_objects_moved() + info["success_wo_disturb"] = float(len(moved) == 1) + info["eplen_success"] = float(self._step_count) + info["num_objects_disturbed"] = float(max(0, len(moved) - 1)) + + if self.object_picked_up and self.eplen_pickup > 0: + info["eplen_pickup"] = float(self.eplen_pickup) + + # Distance metrics (useful for feedback) + info["obj_to_goal_distance"] = self._obj_distance_from_goal() + info["arm_to_obj_distance"] = self._arm_distance_from_obj() + + # Feedback string for prompt builder + if action_success: + info["feedback"] = f"Action '{action_name}' succeeded." + else: + if self.verbose_feedback: + error_msg = self.controller.last_event.metadata.get("errorMessage", "") + if error_msg: + info["feedback"] = f"Action '{action_name}' failed. Reason: {error_msg}" + else: + info["feedback"] = f"Action '{action_name}' failed." + else: + info["feedback"] = f"Action '{action_name}' failed." + + if self._success: + info["feedback"] += " Task completed successfully!" + elif self._took_done_action and not self._success: + info["feedback"] += " Task failed — object not at goal position." + + obs = self._build_obs() + return obs, 0.0, done, info + + # ── Observation building ──────────────────────────────────────────── + + def _build_obs(self) -> dict: + """Build observation dict from current controller state.""" + event = self.controller.last_event + return { + "frame": event.frame.copy() if event.frame is not None else np.zeros((224, 224, 3), dtype=np.uint8), + "depth_frame": event.depth_frame.copy() if hasattr(event, 'depth_frame') and event.depth_frame is not None else None, + "metadata": event.metadata, + } + + def get_gps_state(self) -> dict: + """Compute GPS-like state sensors matching original ManipulaTHOR. + + Returns dict with: + relative_current_obj_state: list[float] (6,) — object pos+rot in agent frame + relative_obj_to_goal: list[float] (3,) — object-to-goal distance in agent frame + relative_agent_arm_to_obj: list[float] (3,) — arm-to-object distance in agent frame + pickedup_object: float — 1.0 if held, 0.0 otherwise + """ + agent_state = self.controller.last_event.metadata["agent"] + obj_info = self._get_object_by_id(self.object_id) + + # 1. relative_current_obj_state (6D): object pos+rot in agent frame + rel_obj = convert_world_to_agent_coordinate(obj_info, agent_state) + rel_obj_state = [ + rel_obj["position"]["x"], rel_obj["position"]["y"], rel_obj["position"]["z"], + rel_obj["rotation"]["x"], rel_obj["rotation"]["y"], rel_obj["rotation"]["z"], + ] + + # 2. relative_obj_to_goal (3D): distance from object to goal in agent frame + target_state = { + "position": self.target_position, + "rotation": {"x": 0, "y": 0, "z": 0}, + } + rel_curr = convert_world_to_agent_coordinate(obj_info, agent_state) + rel_goal = convert_world_to_agent_coordinate(target_state, agent_state) + obj_to_goal = _diff_position(rel_curr["position"], rel_goal["position"]) + rel_obj_to_goal = [obj_to_goal["x"], obj_to_goal["y"], obj_to_goal["z"]] + + # 3. relative_agent_arm_to_obj (3D): arm-to-object distance in agent frame + hand_state = self._get_absolute_hand_state() + rel_obj_agent = convert_world_to_agent_coordinate(obj_info, agent_state) + rel_hand = convert_world_to_agent_coordinate(hand_state, agent_state) + arm_to_obj = _diff_position(rel_obj_agent["position"], rel_hand["position"]) + rel_arm_to_obj = [arm_to_obj["x"], arm_to_obj["y"], arm_to_obj["z"]] + + # 4. pickedup_object + picked_up = 1.0 if self.object_picked_up else 0.0 + + return { + "relative_current_obj_state": rel_obj_state, + "relative_obj_to_goal": rel_obj_to_goal, + "relative_agent_arm_to_obj": rel_arm_to_obj, + "pickedup_object": picked_up, + } + + # ── Scene & arm setup ─────────────────────────────────────────────── + + def _reset_scene(self, scene: str): + """Reset scene with standard ManipulaTHOR setup commands.""" + self.controller.reset(scene) + self.controller.step(action="MakeAllObjectsMoveable") + self.controller.step(action="MakeObjectsStaticKinematicMassThreshold") + # Make all breakable objects unbreakable + breakable = set( + o["objectType"] + for o in self.controller.last_event.metadata["objects"] + if o.get("breakable") + ) + for obj_type in breakable: + self.controller.step(action="MakeObjectsOfTypeUnbreakable", objectType=obj_type) + + def _initialize_arm(self, arm_pose: Optional[dict] = None): + """Initialize arm to starting position (from arm_calculation_utils.initialize_arm). + + Args: + arm_pose: Dict with keys x, y, z, rotation, horizon. + If None, uses a sensible default. + """ + if arm_pose: + self.controller.step(dict( + action="TeleportFull", + standing=True, + x=arm_pose["x"], + y=arm_pose["y"], + z=arm_pose["z"], + rotation=dict(x=0, y=arm_pose["rotation"], z=0), + horizon=arm_pose["horizon"], + )) + self.controller.step(dict( + action="MoveArm", + position=dict(x=0.0, y=0, z=0.35), + **ADITIONAL_ARM_ARGS, + )) + self.controller.step(dict( + action="MoveArmBase", + y=0.8, + **ADITIONAL_ARM_ARGS, + )) + + def _transport_object(self, object_id: str, position: dict): + """Place object at a specific position (from transport_wrapper).""" + self.controller.step( + action="PlaceObjectAtPoint", + objectId=object_id, + position=position, + forceKinematic=True, + ) + self.controller.step(action="AdvancePhysicsStep", simSeconds=1.0) + + def _teleport_agent(self, agent_pose: dict): + """Teleport agent to a specific pose. + + Handles FLAT format from HF dataset: {x, y, z, rotation, horizon} + where 'rotation' is a float (Y-axis degrees) and 'horizon' is camera tilt. + """ + self.controller.step(dict( + action="TeleportFull", + standing=True, + x=agent_pose["x"], + y=agent_pose["y"], + z=agent_pose["z"], + rotation=dict(x=0, y=agent_pose["rotation"], z=0), + horizon=agent_pose["horizon"], + )) + + # ── Action execution ──────────────────────────────────────────────── + + def _execute_action(self, action_name: str) -> bool: + """Execute a named action and return success bool. + + Implements the action dispatch logic from ManipulaTHOREnvironment.step(). + """ + if action_name == DONE: + self.controller.step(action="Pass") + return True # success determined separately + + if action_name == PICKUP: + return self._execute_pickup() + + if "MoveArm" in action_name: + return self._execute_arm_action(action_name) + + if "Continuous" in action_name: + return self._execute_nav_action(action_name) + + logger.warning("Unknown action: %s", action_name) + return False + + def _execute_pickup(self) -> bool: + """Execute PickUpMidLevel action (from ManipulaTHOREnvironment.step).""" + if self._is_object_in_hand(): + self.controller.step(action="Pass") + return True + + pickupable = self.controller.last_event.metadata["arm"].get("pickupableObjects", []) + if self.object_id in pickupable: + self.controller.step(action="PickupObject") + held = self.controller.last_event.metadata["arm"].get("heldObjects", []) + if held and self.object_id not in held: + self.controller.step(action="ReleaseObject") + + self.controller.step(action="Pass") + return self._is_object_in_hand() + + def _execute_arm_action(self, action_name: str) -> bool: + """Execute arm movement action.""" + action_dict = dict(action=action_name) + action_dict.update(copy.deepcopy(ADITIONAL_ARM_ARGS)) + base_pos = self._get_current_arm_state() + + if "MoveArmHeight" in action_name: + action_dict["action"] = "MoveArmBase" + if action_name == "MoveArmHeightP": + base_pos["h"] += MOVE_ARM_HEIGHT_CONSTANT + elif action_name == "MoveArmHeightM": + base_pos["h"] -= MOVE_ARM_HEIGHT_CONSTANT + action_dict["y"] = base_pos["h"] + else: + action_dict["action"] = "MoveArm" + deltas = { + "MoveArmXP": ("x", MOVE_ARM_CONSTANT), + "MoveArmXM": ("x", -MOVE_ARM_CONSTANT), + "MoveArmYP": ("y", MOVE_ARM_CONSTANT), + "MoveArmYM": ("y", -MOVE_ARM_CONSTANT), + "MoveArmZP": ("z", MOVE_ARM_CONSTANT), + "MoveArmZM": ("z", -MOVE_ARM_CONSTANT), + } + axis, delta = deltas[action_name] + base_pos[axis] += delta + action_dict["position"] = { + k: v for k, v in base_pos.items() if k in ("x", "y", "z") + } + + self.controller.step(action_dict) + return self.controller.last_event.metadata["lastActionSuccess"] + + def _execute_nav_action(self, action_name: str) -> bool: + """Execute navigation action.""" + action_dict = dict(action=action_name) + action_dict.update(copy.deepcopy(ADITIONAL_ARM_ARGS)) + + if action_name == MOVE_AHEAD: + action_dict["action"] = "MoveAgent" + action_dict["ahead"] = 0.2 + elif action_name == ROTATE_RIGHT: + action_dict["action"] = "RotateAgent" + action_dict["degrees"] = 45 + elif action_name == ROTATE_LEFT: + action_dict["action"] = "RotateAgent" + action_dict["degrees"] = -45 + + self.controller.step(action_dict) + return self.controller.last_event.metadata["lastActionSuccess"] + + # ── State queries ─────────────────────────────────────────────────── + + def _is_object_in_hand(self) -> bool: + held = self.controller.last_event.metadata["arm"].get("heldObjects", []) + return self.object_id in held + + def _get_object_by_id(self, object_id: str) -> Optional[dict]: + for o in self.controller.last_event.metadata["objects"]: + if o["objectId"] == object_id: + o["position"] = _correct_nan_inf(o["position"]) + return o + return None + + def _get_absolute_hand_state(self) -> dict: + joints = self.controller.last_event.metadata["arm"]["joints"] + arm = copy.deepcopy(joints[-1]) + xyz = _correct_nan_inf(arm["position"]) + return {"position": xyz, "rotation": {"x": 0, "y": 0, "z": 0}} + + def _get_current_arm_state(self) -> dict: + """Get arm state in root-relative coordinates + normalized height.""" + event = self.controller.last_event + offset = event.metadata["agent"]["position"]["y"] - AGENT_BASE_LOCATION_Y + h_min = ARM_MIN_HEIGHT + offset + h_max = ARM_MAX_HEIGHT + offset + joints = event.metadata["arm"]["joints"] + arm = joints[-1] + xyz = copy.deepcopy(arm["rootRelativePosition"]) + height_arm = joints[0]["position"]["y"] + xyz["h"] = (height_arm - h_min) / (h_max - h_min) + return {k: (0 if (v != v or math.isinf(v)) else v) for k, v in xyz.items()} + + def _get_current_object_locations(self) -> dict: + result = {} + for o in self.controller.last_event.metadata["objects"]: + result[o["objectId"]] = dict( + position=copy.deepcopy(o["position"]), + rotation=copy.deepcopy(o["rotation"]), + ) + return result + + def _obj_state_proximity(self, obj_state: dict, goal_state: dict) -> bool: + """Check if object is within 0.1m of goal (per axis).""" + eps = MOVE_ARM_CONSTANT * 2 # = 0.1 + p1, p2 = obj_state["position"], goal_state["position"] + return ( + abs(p1["x"] - p2["x"]) < eps + and abs(p1["y"] - p2["y"]) < eps + and abs(p1["z"] - p2["z"]) < eps + ) + + def _obj_distance_from_goal(self) -> float: + obj = self._get_object_by_id(self.object_id) + if obj is None: + return float("inf") + return _position_distance(obj, {"position": self.target_position}) + + def _arm_distance_from_obj(self) -> float: + obj = self._get_object_by_id(self.object_id) + if obj is None: + return float("inf") + hand = self._get_absolute_hand_state() + return _position_distance(obj, hand) + + def _get_objects_moved(self) -> list: + """Return list of object IDs that moved since episode start.""" + if self.initial_object_locations is None: + return [] + current = self._get_current_object_locations() + moved = [] + for oid in current: + if oid not in self.initial_object_locations: + continue + curr_pose = current[oid] + init_pose = self.initial_object_locations[oid] + if not self._close_enough(curr_pose, init_pose, MOVE_THR): + moved.append(oid) + return moved + + @staticmethod + def _close_enough(current: dict, initial: dict, threshold: float) -> bool: + """Check if position and rotation are within threshold (per axis).""" + for k in ("x", "y", "z"): + if abs(current["position"][k] - initial["position"][k]) > threshold: + return False + if abs(current["rotation"][k] - initial["rotation"][k]) > threshold: + return False + return True diff --git a/tests/test_manipulathor_task.py b/tests/test_manipulathor_task.py new file mode 100644 index 0000000..6870b09 --- /dev/null +++ b/tests/test_manipulathor_task.py @@ -0,0 +1,394 @@ +"""Tests for ManipulaTHOR task integration (offline, no AI2-THOR).""" +import json +from pathlib import Path +from unittest.mock import MagicMock, patch + +import pytest + +from easi.core.episode import Action, EpisodeRecord, Observation, StepResult + + +# ── Task class tests ──────────────────────────────────────────────────────── + +class TestManipulaTHORTask: + """Test task class methods.""" + + @pytest.fixture + def task(self): + from easi.tasks.manipulathor.task import ManipulaTHORTask + return ManipulaTHORTask() + + def test_action_space(self, task): + assert len(task.action_space) == 13 + assert "MoveArmHeightP" in task.action_space + assert "PickUpMidLevel" in task.action_space + assert "DoneMidLevel" in task.action_space + assert "MoveAheadContinuous" in task.action_space + + def test_max_steps(self, task): + assert task.max_steps == 200 + + def test_simulator_key(self, task): + assert task.simulator_key == "ai2thor:v3_3_5" + + def test_bridge_script_path(self, task): + bridge = task.get_bridge_script_path() + assert bridge is not None + assert bridge.name == "bridge.py" + assert bridge.exists() + + def test_get_instruction(self, task): + episode = {"object_type": "Apple"} + assert task.get_instruction(episode) == "Pick up the Apple and move it to the goal location." + + def test_get_instruction_default(self, task): + episode = {} + assert task.get_instruction(episode) == "Pick up the object and move it to the goal location." + + def test_format_reset_config(self, task): + episode = { + "id": 42, + "scene": "FloorPlan2_physics", + "object_type": "Apple", + "object_id": "Apple|+01.98|+00.77|-00.04", + "source_position": '{"x": 1.0, "y": 0.5, "z": -0.3}', + "target_position": '{"x": 2.0, "y": 0.8, "z": 0.1}', + "initial_agent_pose": '{"x": 0.0, "y": 0.9, "z": 0.0, "rotation": 90, "horizon": 10}', + "arm_starting_pose": '{"x": 0.5, "y": 0.9, "z": 0.2, "rotation": 0, "horizon": 30}', + } + config = task.format_reset_config(episode) + assert config["episode_id"] == "42" + assert config["scene"] == "FloorPlan2_physics" + assert config["object_id"] == "Apple|+01.98|+00.77|-00.04" + assert config["source_position"] == '{"x": 1.0, "y": 0.5, "z": -0.3}' + assert config["target_position"] == '{"x": 2.0, "y": 0.8, "z": 0.1}' + + def test_evaluate_episode_success(self, task): + """Successful episode with pickup and success.""" + trajectory = [ + StepResult( + observation=Observation(rgb_path="/tmp/test.png"), + info={"episode_success": 0.0, "pickup_success": 0.0}, + ), + StepResult( + observation=Observation(rgb_path="/tmp/test.png"), + info={ + "episode_success": 1.0, + "pickup_success": 1.0, + "success_wo_disturb": 1.0, + "eplen_pickup": 3.0, + "eplen_success": 5.0, + }, + ), + ] + metrics = task.evaluate_episode({}, trajectory) + assert metrics["episode_success"] == 1.0 + assert metrics["pickup_success"] == 1.0 + assert metrics["success_wo_disturb"] == 1.0 + assert metrics["eplen_pickup"] == 3.0 + assert metrics["eplen_success"] == 5.0 + assert metrics["num_steps"] == 2.0 + + def test_evaluate_episode_failure(self, task): + """Failed episode — no pickup, no success.""" + trajectory = [ + StepResult( + observation=Observation(rgb_path="/tmp/test.png"), + info={"episode_success": 0.0, "pickup_success": 0.0}, + ), + ] + metrics = task.evaluate_episode({}, trajectory) + assert metrics["episode_success"] == 0.0 + assert metrics["pickup_success"] == 0.0 + assert metrics["success_wo_disturb"] == 0.0 + assert metrics["num_steps"] == 1.0 + + def test_evaluate_episode_empty(self, task): + metrics = task.evaluate_episode({}, []) + assert metrics["episode_success"] == 0.0 + assert metrics["num_steps"] == 0.0 + + def test_aggregate_results(self, task): + """Test custom aggregation with conditional averages.""" + records = [ + # Episode 1: success, no disturbance, pickup at step 5, 10 total steps + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "episode_success": 1.0, + "pickup_success": 1.0, + "success_wo_disturb": 1.0, + "eplen_pickup": 5.0, + "eplen_success": 10.0, + "num_steps": 10.0, + }, + ), + # Episode 2: success with disturbance, pickup at step 8, 15 total steps + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "episode_success": 1.0, + "pickup_success": 1.0, + "success_wo_disturb": 0.0, + "eplen_pickup": 8.0, + "eplen_success": 15.0, + "num_steps": 15.0, + }, + ), + # Episode 3: pickup only, no success, 20 steps + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "episode_success": 0.0, + "pickup_success": 1.0, + "success_wo_disturb": 0.0, + "eplen_pickup": 12.0, + "eplen_success": 0.0, + "num_steps": 20.0, + }, + ), + # Episode 4: total failure, 25 steps + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "episode_success": 0.0, + "pickup_success": 0.0, + "success_wo_disturb": 0.0, + "eplen_pickup": 0.0, + "eplen_success": 0.0, + "num_steps": 25.0, + }, + ), + ] + summary = task.aggregate_results(records) + + # Unconditional averages + assert summary["episode_success_rate"] == 0.5 # 2/4 + assert summary["pickup_success_rate"] == 0.75 # 3/4 + assert summary["success_wo_disturb_rate"] == 0.25 # 1/4 + assert summary["avg_eplen"] == 17.5 # (10+15+20+25)/4 + + # Conditional: only episodes where pickup occurred (3 episodes) + assert summary["avg_eplen_pickup"] == pytest.approx( + (5.0 + 8.0 + 12.0) / 3, abs=0.1 + ) + + # Conditional: only successful episodes (2 episodes) + assert summary["avg_eplen_success"] == pytest.approx( + (10.0 + 15.0) / 2, abs=0.1 + ) + + def test_aggregate_results_empty(self, task): + assert task.aggregate_results([]) == {} + + +# ── Actions tests ─────────────────────────────────────────────────────────── + +class TestActions: + def test_action_space_length(self): + from easi.tasks.manipulathor.actions import get_action_space + actions = get_action_space() + assert len(actions) == 13 + + def test_action_names(self): + from easi.tasks.manipulathor.actions import ACTION_SPACE + expected = { + "MoveArmHeightP", "MoveArmHeightM", + "MoveArmXP", "MoveArmXM", + "MoveArmYP", "MoveArmYM", + "MoveArmZP", "MoveArmZM", + "MoveAheadContinuous", + "RotateRightContinuous", "RotateLeftContinuous", + "PickUpMidLevel", "DoneMidLevel", + } + assert set(ACTION_SPACE) == expected + + def test_constants(self): + from easi.tasks.manipulathor.actions import ( + MOVE_ARM_CONSTANT, MOVE_THR, MAX_STEPS, MANIPULATHOR_COMMIT_ID, + ) + assert MOVE_ARM_CONSTANT == 0.05 + assert MOVE_THR == 0.01 + assert MAX_STEPS == 200 + assert len(MANIPULATHOR_COMMIT_ID) == 40 # SHA-1 hash + + +# ── Prompt builder tests ──────────────────────────────────────────────────── + +class TestPromptBuilder: + @pytest.fixture + def builder(self): + from easi.tasks.manipulathor.prompts import ManipulaTHORPromptBuilder + return ManipulaTHORPromptBuilder(n_shot=0, use_rgb=True, use_gps=True, use_depth=False) + + def test_build_messages_first_turn(self, builder, tmp_path): + """First turn: image + system prompt + GPS state.""" + # Create a dummy image + img_path = tmp_path / "step_0000.png" + import numpy as np + from PIL import Image + Image.fromarray(np.zeros((224, 224, 3), dtype=np.uint8)).save(str(img_path)) + + memory = MagicMock() + memory.task_description = "Pick up the Apple and move it to the target location." + memory.action_history = [] + memory.current_observation = Observation( + rgb_path=str(img_path), + metadata={ + "relative_current_obj_state": "[0.3, 0.1, 0.5, 0.0, 0.0, 0.0]", + "relative_obj_to_goal": "[0.8, 0.2, 0.1]", + "relative_agent_arm_to_obj": "[0.2, 0.0, 0.3]", + "pickedup_object": "0.0", + }, + ) + + messages = builder.build_messages(memory) + assert len(messages) == 1 + assert messages[0]["role"] == "user" + content = messages[0]["content"] + # Should have image + text + assert any(c["type"] == "image_url" for c in content) + assert any(c["type"] == "text" for c in content) + + text = next(c["text"] for c in content if c["type"] == "text") + assert "Pick up the Apple" in text + assert "GPS State" in text + assert "Object Held: No" in text + assert "Strategy for Using GPS Sensors" in text + + def test_build_messages_gps_disabled(self, tmp_path): + """When use_gps=False, no GPS section in prompt.""" + from easi.tasks.manipulathor.prompts import ManipulaTHORPromptBuilder + builder = ManipulaTHORPromptBuilder(use_gps=False) + + img_path = tmp_path / "step_0000.png" + import numpy as np + from PIL import Image + Image.fromarray(np.zeros((224, 224, 3), dtype=np.uint8)).save(str(img_path)) + + memory = MagicMock() + memory.task_description = "Pick up the Apple." + memory.action_history = [] + memory.current_observation = Observation( + rgb_path=str(img_path), + metadata={"pickedup_object": "0.0"}, + ) + messages = builder.build_messages(memory) + text = next(c["text"] for c in messages[0]["content"] if c["type"] == "text") + assert "GPS State" not in text + + def test_build_messages_with_history(self, builder, tmp_path): + """Subsequent turn: includes action history.""" + img_path = tmp_path / "step_0001.png" + import numpy as np + from PIL import Image + Image.fromarray(np.zeros((224, 224, 3), dtype=np.uint8)).save(str(img_path)) + + memory = MagicMock() + memory.task_description = "Pick up the Apple." + memory.action_history = [ + ("MoveArmZP", "Action 'MoveArmZP' succeeded."), + ("MoveArmZP", "Action 'MoveArmZP' failed."), + ] + memory.current_observation = Observation( + rgb_path=str(img_path), + metadata={ + "relative_current_obj_state": "[0.1, 0.1, 0.2, 0.0, 0.0, 0.0]", + "relative_obj_to_goal": "[0.6, 0.2, 0.1]", + "relative_agent_arm_to_obj": "[0.05, 0.0, 0.1]", + "pickedup_object": "0.0", + }, + ) + + messages = builder.build_messages(memory) + text = next(c["text"] for c in messages[0]["content"] if c["type"] == "text") + assert "Action History" in text + assert "MoveArmZP" in text + assert "succeeded" in text + + def test_parse_response_valid(self, builder): + """Parse valid JSON response.""" + memory = MagicMock() + response = json.dumps({ + "visual_state_description": "I see a kitchen.", + "reasoning_and_reflection": "Need to reach the apple.", + "language_plan": "Move arm forward, then pick up.", + "executable_plan": [ + {"action_id": 6, "action_name": "MoveArmZP"}, + {"action_id": 11, "action_name": "PickUpMidLevel"}, + ], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "MoveArmZP" + assert actions[1].action_name == "PickUpMidLevel" + + def test_parse_response_by_id_only(self, builder): + """Parse response with action_id but no action_name.""" + memory = MagicMock() + response = json.dumps({ + "executable_plan": [ + {"action_id": 8}, # MoveAheadContinuous + {"action_id": 12}, # DoneMidLevel + ], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "MoveAheadContinuous" + assert actions[1].action_name == "DoneMidLevel" + + def test_parse_response_invalid_json(self, builder): + """Malformed JSON returns empty list.""" + memory = MagicMock() + actions = builder.parse_response("not json", memory) + assert actions == [] + + def test_parse_response_invalid_action(self, builder): + """Invalid action name stops parsing.""" + memory = MagicMock() + response = json.dumps({ + "executable_plan": [ + {"action_id": 6, "action_name": "MoveArmZP"}, + {"action_id": 99, "action_name": "InvalidAction"}, + {"action_id": 8, "action_name": "MoveAheadContinuous"}, + ], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 # Stops at invalid action + assert actions[0].action_name == "MoveArmZP" + + +# ── YAML and registry tests ──────────────────────────────────────────────── + +class TestYAMLConfig: + def test_base_yaml_loads(self): + from easi.tasks.yaml_utils import resolve_task_yaml + base = Path(__file__).parent.parent / "easi" / "tasks" / "manipulathor" / "_base.yaml" + config = resolve_task_yaml(base) + assert config["simulator"] == "ai2thor:v3_3_5" + assert config["max_steps"] == 200 + assert "ManipulaTHOR" in config["display_name"] + + def test_split_yaml_inherits(self): + from easi.tasks.yaml_utils import resolve_task_yaml + split = Path(__file__).parent.parent / "easi" / "tasks" / "manipulathor" / "manipulathor_test_seen.yaml" + config = resolve_task_yaml(split) + assert config["name"] == "manipulathor_test_seen" + assert config["simulator"] == "ai2thor:v3_3_5" # inherited + assert config["dataset"]["split"] == "test_seen_obj" + + def test_all_splits_registered(self): + """All 6 ManipulaTHOR splits should be discoverable.""" + from easi.tasks.registry import list_tasks + all_tasks = list_tasks() + manipulathor_tasks = [t for t in all_tasks if t.startswith("manipulathor_")] + assert len(manipulathor_tasks) == 6 + expected = { + "manipulathor_train", + "manipulathor_val_seen", + "manipulathor_val_novel", + "manipulathor_test_seen", + "manipulathor_test_novel", + "manipulathor_seen_scenes_novel", + } + assert set(manipulathor_tasks) == expected From 100467b0f085065d69caa3f066a5f3e1efe8c836 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 15:09:26 +0800 Subject: [PATCH 117/239] feat: add runtime and data_dir fields to SimulatorEntry --- easi/simulators/registry.py | 4 ++ tests/test_docker_isolation.py | 67 ++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 tests/test_docker_isolation.py diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 95efa38..3023769 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -34,6 +34,8 @@ class SimulatorEntry: python_version: str installation_kwargs: dict = field(default_factory=dict) render_platforms: dict[str, str] = field(default_factory=dict) # platform_name -> FQN class + runtime: str = "conda" # "conda" or "docker" + data_dir: str = "" # default data directory (from manifest top-level) # Module-level registry populated on first access @@ -65,6 +67,8 @@ def _discover_simulators() -> dict[str, SimulatorEntry]: python_version=ver_info.get("python_version", "3.10"), installation_kwargs=ver_info.get("installation_kwargs", {}), render_platforms=ver_info.get("render_platforms", {}), + runtime=ver_info.get("runtime", "conda"), + data_dir=manifest.get("data_dir", ""), ) # Register with explicit key: "ai2thor:v2_1_0" diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py new file mode 100644 index 0000000..19af224 --- /dev/null +++ b/tests/test_docker_isolation.py @@ -0,0 +1,67 @@ +# tests/test_docker_isolation.py +"""Tests for Docker simulator isolation layer.""" + +from __future__ import annotations + +import json +import os +from pathlib import Path +from unittest.mock import patch, MagicMock + + +class TestSimulatorEntryRuntime: + """SimulatorEntry supports runtime field.""" + + def test_default_runtime_is_conda(self): + from easi.simulators.registry import SimulatorEntry + + entry = SimulatorEntry( + name="test_sim", + version="v1", + description="test", + simulator_class="easi.simulators.dummy.v1.simulator.DummySimulator", + env_manager_class="easi.simulators.dummy.v1.env_manager.DummyEnvManager", + python_version="3.10", + ) + assert entry.runtime == "conda" + + def test_runtime_can_be_docker(self): + from easi.simulators.registry import SimulatorEntry + + entry = SimulatorEntry( + name="test_sim", + version="v1", + description="test", + simulator_class="easi.simulators.dummy.v1.simulator.DummySimulator", + env_manager_class="easi.simulators.dummy.v1.env_manager.DummyEnvManager", + python_version="3.10", + runtime="docker", + ) + assert entry.runtime == "docker" + + def test_data_dir_default_empty(self): + from easi.simulators.registry import SimulatorEntry + + entry = SimulatorEntry( + name="test_sim", + version="v1", + description="test", + simulator_class="easi.simulators.dummy.v1.simulator.DummySimulator", + env_manager_class="easi.simulators.dummy.v1.env_manager.DummyEnvManager", + python_version="3.10", + ) + assert entry.data_dir == "" + + def test_data_dir_can_be_set(self): + from easi.simulators.registry import SimulatorEntry + + entry = SimulatorEntry( + name="test_sim", + version="v1", + description="test", + simulator_class="easi.simulators.dummy.v1.simulator.DummySimulator", + env_manager_class="easi.simulators.dummy.v1.env_manager.DummyEnvManager", + python_version="3.10", + data_dir="/datasets/test", + ) + assert entry.data_dir == "/datasets/test" From 5832cdeca7df776ec8b7ee7c1e541a1f79dec66d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 15:26:44 +0800 Subject: [PATCH 118/239] feat: add DockerEnvironmentManager base class --- easi/core/docker_env_manager.py | 197 ++++++++++++++++++++++++++++++++ tests/test_docker_isolation.py | 123 ++++++++++++++++++++ 2 files changed, 320 insertions(+) create mode 100644 easi/core/docker_env_manager.py diff --git a/easi/core/docker_env_manager.py b/easi/core/docker_env_manager.py new file mode 100644 index 0000000..a381f6b --- /dev/null +++ b/easi/core/docker_env_manager.py @@ -0,0 +1,197 @@ +"""Docker-based environment manager for simulators that require containerization. + +Parallel to BaseEnvironmentManager (conda-based). Docker simulators subclass this +instead. The bridge code inside the container is identical — same BaseBridge, +same filesystem IPC. +""" + +from __future__ import annotations + +import subprocess +from abc import ABC, abstractmethod +from pathlib import Path + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class DockerEnvironmentManager(ABC): + """Abstract base for Docker-isolated simulator environments. + + Subclasses must define: simulator_name, version, image_name, + dockerfile_path, gpu_required, container_python_path, + container_data_mount, easi_mount, get_system_deps(). + """ + + def __init__(self, installation_kwargs: dict | None = None): + self.installation_kwargs = installation_kwargs or {} + + # --- Abstract properties (subclass must implement) --- + + @property + @abstractmethod + def simulator_name(self) -> str: + """Name of the simulator (e.g., 'matterport3d').""" + ... + + @property + @abstractmethod + def version(self) -> str: + """Version identifier (e.g., 'v0_1').""" + ... + + @property + @abstractmethod + def image_name(self) -> str: + """Docker image name (e.g., 'easi_matterport3d_v0_1').""" + ... + + @property + @abstractmethod + def dockerfile_path(self) -> Path: + """Path to Dockerfile for building the image.""" + ... + + @property + @abstractmethod + def gpu_required(self) -> bool: + """Whether the container needs GPU access (--gpus all).""" + ... + + @property + @abstractmethod + def container_python_path(self) -> str: + """Python executable path inside the container.""" + ... + + @property + @abstractmethod + def container_data_mount(self) -> str: + """Mount point for simulator scene data inside the container.""" + ... + + @property + @abstractmethod + def easi_mount(self) -> str: + """Mount point for EASI repo inside the container (read-only).""" + ... + + # --- Concrete methods --- + + @abstractmethod + def get_system_deps(self) -> list[str]: + """System dependencies (e.g., ['docker'] or ['docker', 'nvidia-docker']).""" + ... + + def get_env_vars(self) -> dict[str, str]: + """Environment variables to set inside the container. Override if needed.""" + return {} + + def get_env_name(self) -> str: + """Return a name for this environment (used for display/logging).""" + return f"docker:{self.image_name}" + + def env_is_ready(self) -> bool: + """Check if the Docker image exists.""" + try: + result = subprocess.run( + ["docker", "image", "inspect", self.image_name], + capture_output=True, + timeout=10, + ) + return result.returncode == 0 + except Exception: + return False + + def install(self) -> None: + """Build the Docker image and run post_install (e.g., dataset download).""" + if not self.env_is_ready(): + dockerfile = self.dockerfile_path + if not dockerfile.exists(): + raise FileNotFoundError(f"Dockerfile not found: {dockerfile}") + + build_context = dockerfile.parent + logger.info( + "Building Docker image %s from %s ...", + self.image_name, + dockerfile, + ) + subprocess.run( + [ + "docker", "build", + "-t", self.image_name, + "-f", str(dockerfile), + str(build_context), + ], + check=True, + ) + logger.info("Docker image %s built successfully.", self.image_name) + else: + logger.info("Docker image %s already exists.", self.image_name) + + # Run post-install hook (e.g., dataset download) + self.post_install() + + def post_install(self) -> None: + """Hook for subclasses to run after image build (e.g., download datasets). + + Called by install() after the Docker image is ready. + Default is a no-op. + """ + pass + + def remove(self) -> None: + """Remove the Docker image.""" + logger.info("Removing Docker image %s ...", self.image_name) + subprocess.run( + ["docker", "rmi", self.image_name], + capture_output=True, + ) + + def build_docker_run_command( + self, + bridge_command: list[str], + workspace_dir: str | None = None, + episode_output_dir: str | None = None, + data_dir: str | None = None, + ) -> list[str]: + """Build a `docker run` command for launching the bridge. + + Mounts IPC workspace, episode output dir, EASI repo, and scene data + at the same host paths (so rgb_path in response.json works on both sides). + """ + easi_repo_root = str(Path(__file__).resolve().parents[1]) + + cmd = ["docker", "run", "--rm"] + + # GPU + if self.gpu_required: + cmd.extend(["--gpus", "all"]) + + # Volume mounts (same path on host and container for IPC compatibility) + if workspace_dir: + cmd.extend(["-v", f"{workspace_dir}:{workspace_dir}"]) + if episode_output_dir: + cmd.extend(["-v", f"{episode_output_dir}:{episode_output_dir}"]) + + # Data mount (host path -> container mount point) + if data_dir: + cmd.extend(["-v", f"{data_dir}:{self.container_data_mount}:ro"]) + + # EASI repo (read-only) + cmd.extend(["-v", f"{easi_repo_root}:{self.easi_mount}:ro"]) + + # Environment variables + cmd.extend(["-e", "PYTHONUNBUFFERED=1"]) # real-time log output + env_vars = self.get_env_vars() + for key, value in env_vars.items(): + cmd.extend(["-e", f"{key}={value}"]) + + # Image name + cmd.append(self.image_name) + + # Bridge command + cmd.extend(bridge_command) + + return cmd diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index 19af224..5adfb04 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -65,3 +65,126 @@ def test_data_dir_can_be_set(self): data_dir="/datasets/test", ) assert entry.data_dir == "/datasets/test" + + +class TestDockerEnvironmentManager: + """Tests for DockerEnvironmentManager base class.""" + + def _make_manager(self, **overrides): + """Create a concrete DockerEnvironmentManager for testing.""" + from easi.core.docker_env_manager import DockerEnvironmentManager + + defaults = dict( + _simulator_name="test_docker_sim", + _version="v1", + _image_name="easi_test_docker_sim_v1", + _dockerfile_path=Path("/tmp/Dockerfile"), + _gpu_required=False, + _container_python_path="/usr/bin/python3", + _container_data_mount="/data", + _easi_mount="/opt/easi", + _system_deps=["docker"], + ) + defaults.update(overrides) + + class ConcreteDockerEnvManager(DockerEnvironmentManager): + @property + def simulator_name(self): + return defaults["_simulator_name"] + + @property + def version(self): + return defaults["_version"] + + @property + def image_name(self): + return defaults["_image_name"] + + @property + def dockerfile_path(self): + return defaults["_dockerfile_path"] + + @property + def gpu_required(self): + return defaults["_gpu_required"] + + @property + def container_python_path(self): + return defaults["_container_python_path"] + + @property + def container_data_mount(self): + return defaults["_container_data_mount"] + + @property + def easi_mount(self): + return defaults["_easi_mount"] + + def get_system_deps(self): + return defaults["_system_deps"] + + return ConcreteDockerEnvManager() + + def test_image_name(self): + mgr = self._make_manager() + assert mgr.image_name == "easi_test_docker_sim_v1" + + def test_gpu_required_default_false(self): + mgr = self._make_manager() + assert mgr.gpu_required is False + + def test_gpu_required_true(self): + mgr = self._make_manager(_gpu_required=True) + assert mgr.gpu_required is True + + def test_system_deps_includes_docker(self): + mgr = self._make_manager() + assert "docker" in mgr.get_system_deps() + + def test_system_deps_includes_nvidia_docker_when_gpu(self): + mgr = self._make_manager(_gpu_required=True, _system_deps=["docker", "nvidia-docker"]) + deps = mgr.get_system_deps() + assert "nvidia-docker" in deps + + def test_env_is_ready_false_when_no_docker(self): + """env_is_ready returns False when docker image doesn't exist.""" + mgr = self._make_manager() + with patch("subprocess.run") as mock_run: + mock_run.side_effect = Exception("docker not found") + assert mgr.env_is_ready() is False + + def test_env_is_ready_true_when_image_exists(self): + """env_is_ready returns True when docker image inspect succeeds.""" + mgr = self._make_manager() + with patch("subprocess.run") as mock_run: + mock_run.return_value = MagicMock(returncode=0) + assert mgr.env_is_ready() is True + + def test_build_docker_run_command_basic(self): + """Build docker run command without GPU.""" + mgr = self._make_manager() + cmd = mgr.build_docker_run_command( + bridge_command=["/usr/bin/python3", "/opt/easi/bridge.py", "--workspace", "/tmp/easi_xxx"], + workspace_dir="/tmp/easi_xxx", + episode_output_dir="/logs/ep_0", + data_dir="/host/data", + ) + assert "docker" in cmd[0] + assert "--rm" in cmd + assert "--gpus" not in cmd + # Check volume mounts + cmd_str = " ".join(cmd) + assert "/tmp/easi_xxx" in cmd_str + assert "/logs/ep_0" in cmd_str + assert "/host/data" in cmd_str + + def test_build_docker_run_command_with_gpu(self): + """Build docker run command with GPU.""" + mgr = self._make_manager(_gpu_required=True) + cmd = mgr.build_docker_run_command( + bridge_command=["/usr/bin/python3", "/opt/easi/bridge.py"], + workspace_dir="/tmp/easi_xxx", + ) + assert "--gpus" in cmd + idx = cmd.index("--gpus") + assert cmd[idx + 1] == "all" From 6fcb5275fbdd92b45598476df0a7736eae5175be Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 15:39:19 +0800 Subject: [PATCH 119/239] feat: add Docker launch mode to SubprocessRunner --- easi/simulators/subprocess_runner.py | 82 ++++++++++++++++++++++++++++ tests/test_docker_isolation.py | 46 ++++++++++++++++ 2 files changed, 128 insertions(+) diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 4f1b4d9..9f24794 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -124,6 +124,63 @@ def launch(self) -> None: raise SimulatorError(f"{exc}\n\nBridge output:\n{output}") from exc raise + def launch_docker( + self, + docker_env_manager, + episode_output_dir: str | None = None, + data_dir: str | None = None, + ) -> None: + """Launch bridge subprocess inside a Docker container.""" + if self._process is not None: + raise RuntimeError("Subprocess already running") + + self._workspace = create_workspace() + self._output_lines.clear() + cmd = self._build_docker_launch_command( + docker_env_manager=docker_env_manager, + workspace_dir=str(self._workspace), + episode_output_dir=episode_output_dir, + data_dir=data_dir, + ) + + logger.info("Launching Docker bridge: %s", " ".join(cmd[:6]) + " ...") + logger.trace("Full Docker command: %s", " ".join(cmd)) + self._process = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, + preexec_fn=os.setsid, + ) + + # Start output reader thread + self._reader_thread = threading.Thread( + target=self._stream_output, daemon=True + ) + self._reader_thread.start() + + # Wait for bridge to signal ready + try: + status = poll_for_status( + self._workspace, + poll_interval=self.poll_interval, + timeout=self.startup_timeout, + process=self._process, + ) + if not status.get("ready", False): + output = self._get_recent_output() + raise SimulatorError( + f"Docker bridge reported not ready. Output:\n{output}" + ) + logger.info("Docker bridge subprocess ready (PID: %d)", self._process.pid) + except (SimulatorError, SimulatorTimeoutError) as exc: + output = self._get_recent_output() + self.shutdown() + if output: + raise SimulatorError(f"{exc}\n\nDocker bridge output:\n{output}") from exc + raise + def send_command(self, command: dict, timeout: float | None = None) -> dict: """Send a command to the bridge and wait for the response. @@ -194,6 +251,31 @@ def _build_launch_command(self) -> list[str]: return self.render_platform.wrap_command(cmd, self.screen_config) + def _build_docker_launch_command( + self, + docker_env_manager, + workspace_dir: str, + episode_output_dir: str | None = None, + data_dir: str | None = None, + ) -> list[str]: + """Build launch command using docker run via DockerEnvironmentManager.""" + bridge_command = [ + docker_env_manager.container_python_path, + str(Path(docker_env_manager.easi_mount) / self.bridge_script_path.relative_to( + Path(__file__).resolve().parents[1] + )), + "--workspace", + workspace_dir, + ] + bridge_command.extend(self.extra_args) + + return docker_env_manager.build_docker_run_command( + bridge_command=bridge_command, + workspace_dir=workspace_dir, + episode_output_dir=episode_output_dir, + data_dir=data_dir, + ) + # Pattern to extract log level from bridge output (e.g. "[WARNING]" or "[ERROR]") _BRIDGE_LEVEL_RE = re.compile(r"\[(\w+)\]") diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index 5adfb04..9b3a826 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -188,3 +188,49 @@ def test_build_docker_run_command_with_gpu(self): assert "--gpus" in cmd idx = cmd.index("--gpus") assert cmd[idx + 1] == "all" + + +class TestSubprocessRunnerDockerMode: + """Tests for Docker launch mode in SubprocessRunner.""" + + def test_launch_docker_builds_correct_command(self): + """launch_docker() builds a docker run command and spawns it.""" + from easi.core.docker_env_manager import DockerEnvironmentManager + from easi.simulators.subprocess_runner import SubprocessRunner + from easi.core.render_platform import get_render_platform + + # Use a real bridge script path under the EASI repo root so that + # relative_to() in _build_docker_launch_command works correctly. + repo_root = Path(__file__).resolve().parents[1] + bridge_path = repo_root / "easi" / "simulators" / "dummy" / "v1" / "bridge.py" + + # Create a mock docker env manager + mock_mgr = MagicMock(spec=DockerEnvironmentManager) + mock_mgr.image_name = "easi_test_v1" + mock_mgr.gpu_required = False + mock_mgr.container_python_path = "/usr/bin/python3" + mock_mgr.easi_mount = "/opt/easi" + mock_mgr.build_docker_run_command.return_value = [ + "docker", "run", "--rm", + "-v", "/tmp/easi_xxx:/tmp/easi_xxx", + "easi_test_v1", + "/usr/bin/python3", "/opt/easi/easi/simulators/dummy/v1/bridge.py", + "--workspace", "/tmp/easi_xxx", + ] + + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=bridge_path, + render_platform=get_render_platform("headless"), + ) + + cmd = runner._build_docker_launch_command( + docker_env_manager=mock_mgr, + workspace_dir="/tmp/easi_xxx", + ) + mock_mgr.build_docker_run_command.assert_called_once() + assert cmd[0] == "docker" + + # Note: Docker containers use --rm and foreground mode. + # Shutdown uses the same process-tree kill as conda mode. + # The --rm flag ensures container cleanup after process exit. From f5fe1e0fa7d88a4c022f288358df3250c374659f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 16:04:31 +0800 Subject: [PATCH 120/239] feat: add docker system dependency check --- easi/utils/system_deps.py | 9 +++++++++ tests/test_docker_isolation.py | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/easi/utils/system_deps.py b/easi/utils/system_deps.py index 5ee76ac..1ca6b33 100644 --- a/easi/utils/system_deps.py +++ b/easi/utils/system_deps.py @@ -34,6 +34,15 @@ "check_command": ["which", "conda"], "install_hint": "Install Miniconda: https://docs.conda.io/en/latest/miniconda.html", }, + "docker": { + "check_command": ["docker", "--version"], + "install_hint": "Install Docker: https://docs.docker.com/engine/install/", + }, + "nvidia-docker": { + "check_command": ["docker", "info"], + "check_grep": "nvidia", + "install_hint": "Install NVIDIA Container Toolkit: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html", + }, } diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index 9b3a826..8d28eaa 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -234,3 +234,23 @@ def test_launch_docker_builds_correct_command(self): # Note: Docker containers use --rm and foreground mode. # Shutdown uses the same process-tree kill as conda mode. # The --rm flag ensures container cleanup after process exit. + + +class TestDockerSystemDeps: + """Test docker system dependency checking.""" + + def test_docker_dep_registered(self): + """Docker dependency checker is registered.""" + from easi.utils.system_deps import SystemDependencyChecker + + checker = SystemDependencyChecker() + result = checker.check("docker") + assert isinstance(result, bool) + + def test_nvidia_docker_dep_registered(self): + """nvidia-docker dependency checker is registered.""" + from easi.utils.system_deps import SystemDependencyChecker + + checker = SystemDependencyChecker() + result = checker.check("nvidia-docker") + assert isinstance(result, bool) From 6cb48b0fcb680a29ce57001767188c34cbc8356b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 16:49:02 +0800 Subject: [PATCH 121/239] feat: add Matterport3D simulator scaffold (first Docker user) --- easi/simulators/matterport3d/__init__.py | 0 easi/simulators/matterport3d/manifest.yaml | 19 ++ easi/simulators/matterport3d/v0_1/Dockerfile | 29 +++ easi/simulators/matterport3d/v0_1/__init__.py | 0 easi/simulators/matterport3d/v0_1/bridge.py | 114 ++++++++++++ .../matterport3d/v0_1/env_manager.py | 169 ++++++++++++++++++ .../simulators/matterport3d/v0_1/simulator.py | 22 +++ tests/test_matterport3d_simulator.py | 79 ++++++++ 8 files changed, 432 insertions(+) create mode 100644 easi/simulators/matterport3d/__init__.py create mode 100644 easi/simulators/matterport3d/manifest.yaml create mode 100644 easi/simulators/matterport3d/v0_1/Dockerfile create mode 100644 easi/simulators/matterport3d/v0_1/__init__.py create mode 100644 easi/simulators/matterport3d/v0_1/bridge.py create mode 100644 easi/simulators/matterport3d/v0_1/env_manager.py create mode 100644 easi/simulators/matterport3d/v0_1/simulator.py create mode 100644 tests/test_matterport3d_simulator.py diff --git a/easi/simulators/matterport3d/__init__.py b/easi/simulators/matterport3d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/matterport3d/manifest.yaml b/easi/simulators/matterport3d/manifest.yaml new file mode 100644 index 0000000..3941138 --- /dev/null +++ b/easi/simulators/matterport3d/manifest.yaml @@ -0,0 +1,19 @@ +name: matterport3d +display_name: "Matterport3D Simulator" +default_version: "v0_1" +data_dir: "/datasets/matterport3d" + +versions: + v0_1: + runtime: docker + description: "Matterport3DSimulator with EGL rendering (Python 3.8)" + simulator_class: "easi.simulators.matterport3d.v0_1.simulator.Matterport3DSimulator" + env_manager_class: "easi.simulators.matterport3d.v0_1.env_manager.Matterport3DEnvManager" + python_version: "3.8" + installation_kwargs: + dockerfile: "v0_1/Dockerfile" + gpu_required: true + container_python: "/usr/bin/python3" + container_data_mount: "/data/v1/scans" + easi_mount: "/opt/easi" + hf_dataset_repo: "Gen3DF/Matterport3d" diff --git a/easi/simulators/matterport3d/v0_1/Dockerfile b/easi/simulators/matterport3d/v0_1/Dockerfile new file mode 100644 index 0000000..0ee70c2 --- /dev/null +++ b/easi/simulators/matterport3d/v0_1/Dockerfile @@ -0,0 +1,29 @@ +# Matterport3DSimulator with EGL rendering +# Based on: https://github.com/peteanderson80/Matterport3DSimulator +FROM nvidia/cudagl:9.2-devel-ubuntu18.04 + +# System deps +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y \ + python3-dev python3-pip python3-setuptools \ + libepoxy-dev libglm-dev libjsoncpp-dev libopencv-dev \ + libosmesa6-dev libglew-dev \ + curl doxygen git \ + && rm -rf /var/lib/apt/lists/* + +# CMake 3.12 +RUN curl -sSL https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz \ + | tar -xz -C /usr/local --strip-components=1 + +# Python deps +RUN pip3 install --upgrade pip && \ + pip3 install numpy opencv-python networkx + +# Build Matterport3DSimulator +WORKDIR /opt/MatterSim +RUN git clone --recursive https://github.com/peteanderson80/Matterport3DSimulator.git . && \ + mkdir build && cd build && \ + cmake -DEGL_RENDERING=ON .. && \ + make -j$(nproc) + +ENV PYTHONPATH="/opt/MatterSim/build:/opt/easi" diff --git a/easi/simulators/matterport3d/v0_1/__init__.py b/easi/simulators/matterport3d/v0_1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/simulators/matterport3d/v0_1/bridge.py b/easi/simulators/matterport3d/v0_1/bridge.py new file mode 100644 index 0000000..8620f92 --- /dev/null +++ b/easi/simulators/matterport3d/v0_1/bridge.py @@ -0,0 +1,114 @@ +"""Matterport3D bridge for EASI's filesystem IPC protocol. + +Runs inside the easi_matterport3d_v0_1 Docker container. +Wraps MatterSim in EASI's BaseBridge IPC protocol. + +PYTHONPATH is set by the Dockerfile and docker run env vars to include +both /opt/MatterSim/build (for MatterSim) and /opt/easi (for easi.*). +No manual sys.path manipulation needed here — BaseBridge also handles +repo-root discovery via its own module path. +""" + +from __future__ import annotations + +import json +from pathlib import Path + +import numpy as np + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class Matterport3DBridge(BaseBridge): + """Bridge wrapping MatterSim.Simulator for EASI IPC.""" + + def _create_env(self, reset_config, simulator_kwargs): + import MatterSim + + sim = MatterSim.Simulator() + sim.setDatasetPath(simulator_kwargs.get("data_dir", "/data/v1/scans")) + sim.setNavGraphPath( + simulator_kwargs.get("nav_graph_path", "/opt/MatterSim/connectivity") + ) + width = simulator_kwargs.get("width", 640) + height = simulator_kwargs.get("height", 480) + sim.setCameraResolution(width, height) + sim.setCameraVFOV(simulator_kwargs.get("vfov", 0.8)) + sim.setDepthEnabled(simulator_kwargs.get("depth_enabled", True)) + sim.setDiscretizedViewingAngles( + simulator_kwargs.get("discretized_views", True) + ) + sim.setRenderingEnabled(True) + sim.setBatchSize(1) + sim.initialize() + + self._sim = sim + self._width = width + self._height = height + return sim + + def _on_reset(self, env, reset_config): + scan_id = reset_config.get("scan_id", "") + viewpoint_id = reset_config.get("viewpoint_id", "") + heading = float(reset_config.get("heading", 0.0)) + elevation = float(reset_config.get("elevation", 0.0)) + + env.newEpisode([scan_id], [viewpoint_id], [heading], [elevation]) + state = env.getState()[0] + return self._state_to_obs(state) + + def _on_step(self, env, action_text): + """Parse action and execute navigation. + + Action format: JSON string with keys: + - location_index: int (index into navigableLocations) + - heading: float (heading change in radians) + - elevation: float (elevation change in radians) + """ + try: + action = json.loads(action_text) + except json.JSONDecodeError: + action = {"location_index": 0, "heading": 0.0, "elevation": 0.0} + + env.makeAction( + [int(action.get("location_index", 0))], + [float(action.get("heading", 0.0))], + [float(action.get("elevation", 0.0))], + ) + state = env.getState()[0] + obs = self._state_to_obs(state) + + done = bool(action.get("done", False)) + info = { + "viewpoint_id": state.location.viewpointId, + "heading": state.heading, + "elevation": state.elevation, + "step": state.step, + } + return obs, 0.0, done, info + + def _state_to_obs(self, state): + """Convert MatterSim.SimState to observation dict.""" + obs = {"frame": state.rgb} + if hasattr(state, "depth") and state.depth is not None: + obs["depth_frame"] = state.depth + obs["navigable_locations"] = [ + { + "viewpointId": loc.viewpointId, + "rel_heading": loc.rel_heading, + "rel_elevation": loc.rel_elevation, + "rel_distance": loc.rel_distance, + } + for loc in state.navigableLocations + ] + return obs + + def _extract_image(self, obs): + return obs["frame"] + + +if __name__ == "__main__": + Matterport3DBridge.main() diff --git a/easi/simulators/matterport3d/v0_1/env_manager.py b/easi/simulators/matterport3d/v0_1/env_manager.py new file mode 100644 index 0000000..2d79830 --- /dev/null +++ b/easi/simulators/matterport3d/v0_1/env_manager.py @@ -0,0 +1,169 @@ +"""Docker environment manager for Matterport3DSimulator.""" + +from __future__ import annotations + +import subprocess +import time +from pathlib import Path + +from easi.core.docker_env_manager import DockerEnvironmentManager +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# HuggingFace dataset repo containing Matterport3D scene data +_HF_REPO = "Gen3DF/Matterport3d" + + +class Matterport3DEnvManager(DockerEnvironmentManager): + """Manages Docker image for Matterport3DSimulator with EGL rendering. + + post_install() auto-downloads the Matterport3D scene data from + HuggingFace (Gen3DF/Matterport3d) via snapshot_download, then + reassembles and extracts the archive. The HF repo is gated — users + must accept the TOS at https://huggingface.co/datasets/Gen3DF/Matterport3d + before downloading. + """ + + @property + def simulator_name(self) -> str: + return "matterport3d" + + @property + def version(self) -> str: + return "v0_1" + + @property + def image_name(self) -> str: + return "easi_matterport3d_v0_1" + + @property + def dockerfile_path(self) -> Path: + return Path(__file__).parent / "Dockerfile" + + @property + def gpu_required(self) -> bool: + return True + + @property + def container_python_path(self) -> str: + return "/usr/bin/python3" + + @property + def container_data_mount(self) -> str: + return "/data/v1/scans" + + @property + def easi_mount(self) -> str: + return "/opt/easi" + + def get_system_deps(self) -> list[str]: + return ["docker"] + + def get_env_vars(self) -> dict[str, str]: + return {"PYTHONPATH": "/opt/MatterSim/build:/opt/easi"} + + @property + def data_dir(self) -> Path: + """Default data directory. User can override via manifest data_dir or task YAML.""" + override = self.installation_kwargs.get("data_dir") + if override: + return Path(override) + return Path("/datasets/matterport3d") + + def post_install(self) -> None: + """Download Matterport3D scene data from HuggingFace. + + Uses huggingface_hub.snapshot_download to download all files + (no git-lfs needed). Then runs merge.sh + unzip.sh to reassemble + and extract scene scans. + + HF repo layout: + Gen3DF/Matterport3d/ + ├── README.md + └── matterport3d/ + ├── download.py + ├── merge.sh + ├── unzip.sh + ├── matterport3d_part_000 (1.07 GB) + ├── ... + └── matterport3d_part_007 (242 MB) + + snapshot_download downloads into dest/, so merge.sh is at + dest/matterport3d/merge.sh. + """ + from huggingface_hub import snapshot_download + from huggingface_hub.utils import ( + GatedRepoError, + RepositoryNotFoundError, + ) + + dest = self.data_dir + hf_repo = self.installation_kwargs.get("hf_dataset_repo", _HF_REPO) + + # Skip if data already exists (idempotent) + # After extraction, scans live at dest/matterport3d/v1/scans/ + mp3d_subdir = dest / "matterport3d" + if (mp3d_subdir / "v1" / "scans").exists(): + logger.info("Matterport3D data already exists at %s, skipping download.", dest) + return + + dest.mkdir(parents=True, exist_ok=True) + logger.info("Downloading Matterport3D dataset from HF repo %s to %s ...", hf_repo, dest) + logger.info( + "NOTE: This dataset is gated. If download fails, visit\n" + " https://huggingface.co/datasets/%s\n" + "and accept the Terms of Service, then retry.", + hf_repo, + ) + + # Step 1: Download all files via snapshot_download + # Distinguish TOS/auth errors (fail immediately) from + # transient network errors (retry up to 3 times). + max_retries = 3 + for attempt in range(1, max_retries + 1): + try: + snapshot_download( + repo_id=hf_repo, + repo_type="dataset", + local_dir=str(dest), + ) + break + except (GatedRepoError, RepositoryNotFoundError) as e: + raise RuntimeError( + f"Access denied downloading {hf_repo}. " + f"Please visit https://huggingface.co/datasets/{hf_repo} " + f"and accept the Terms of Service, then retry.\n" + f"Error: {e}" + ) from e + except Exception as e: + if attempt < max_retries: + logger.warning( + "Download failed (attempt %d/%d): %s. Retrying ...", + attempt, max_retries, e, + ) + time.sleep(5 * attempt) # brief backoff + else: + raise RuntimeError( + f"Download failed after {max_retries} attempts: {e}" + ) from e + + # Step 2: Reassemble chunks (merge.sh is at dest/matterport3d/merge.sh) + if (mp3d_subdir / "merge.sh").exists(): + logger.info("Reassembling dataset chunks ...") + subprocess.run( + ["bash", "merge.sh"], + cwd=str(mp3d_subdir), + check=True, + ) + + # Step 3: Extract + if (mp3d_subdir / "unzip.sh").exists(): + logger.info("Extracting dataset ...") + subprocess.run( + ["bash", "unzip.sh"], + cwd=str(mp3d_subdir), + check=True, + ) + + logger.info("Matterport3D dataset ready at %s", dest) diff --git a/easi/simulators/matterport3d/v0_1/simulator.py b/easi/simulators/matterport3d/v0_1/simulator.py new file mode 100644 index 0000000..2740196 --- /dev/null +++ b/easi/simulators/matterport3d/v0_1/simulator.py @@ -0,0 +1,22 @@ +"""Matterport3D simulator class.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class Matterport3DSimulator(BaseSimulator): + """Matterport3D simulator (Docker-isolated).""" + + @property + def name(self) -> str: + return "matterport3d" + + @property + def version(self) -> str: + return "v0_1" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/tests/test_matterport3d_simulator.py b/tests/test_matterport3d_simulator.py new file mode 100644 index 0000000..7ac5274 --- /dev/null +++ b/tests/test_matterport3d_simulator.py @@ -0,0 +1,79 @@ +"""Tests for Matterport3D simulator integration (Docker-based).""" + +from __future__ import annotations + +from pathlib import Path + + +class TestMatterport3DManifest: + """Manifest discovery and fields.""" + + def test_manifest_exists(self): + manifest = Path("easi/simulators/matterport3d/manifest.yaml") + assert manifest.exists() + + def test_manifest_contents(self): + import yaml + manifest = Path("easi/simulators/matterport3d/manifest.yaml") + data = yaml.safe_load(manifest.read_text()) + assert data["name"] == "matterport3d" + assert "v0_1" in data["versions"] + assert data["versions"]["v0_1"]["runtime"] == "docker" + + def test_manifest_classes_importable(self): + from easi.utils.import_utils import import_class + import yaml + manifest = Path("easi/simulators/matterport3d/manifest.yaml") + data = yaml.safe_load(manifest.read_text()) + ver = data["versions"]["v0_1"] + sim_cls = import_class(ver["simulator_class"]) + mgr_cls = import_class(ver["env_manager_class"]) + assert sim_cls is not None + assert mgr_cls is not None + + +class TestMatterport3DEnvManager: + """Environment manager properties.""" + + def test_import(self): + from easi.simulators.matterport3d.v0_1.env_manager import Matterport3DEnvManager + mgr = Matterport3DEnvManager() + assert mgr.simulator_name == "matterport3d" + assert mgr.version == "v0_1" + + def test_is_docker_env_manager(self): + from easi.core.docker_env_manager import DockerEnvironmentManager + from easi.simulators.matterport3d.v0_1.env_manager import Matterport3DEnvManager + mgr = Matterport3DEnvManager() + assert isinstance(mgr, DockerEnvironmentManager) + + def test_image_name(self): + from easi.simulators.matterport3d.v0_1.env_manager import Matterport3DEnvManager + mgr = Matterport3DEnvManager() + assert mgr.image_name == "easi_matterport3d_v0_1" + + def test_gpu_required(self): + from easi.simulators.matterport3d.v0_1.env_manager import Matterport3DEnvManager + mgr = Matterport3DEnvManager() + assert mgr.gpu_required is True + + def test_dockerfile_exists(self): + from easi.simulators.matterport3d.v0_1.env_manager import Matterport3DEnvManager + mgr = Matterport3DEnvManager() + assert mgr.dockerfile_path.exists() + + def test_registry_discovers(self): + from easi.simulators.registry import list_simulators + sims = list_simulators() + assert "matterport3d" in sims or "matterport3d:v0_1" in sims + + +class TestMatterport3DBridgeSyntax: + """Bridge script can be parsed.""" + + def test_bridge_syntax(self): + import py_compile + py_compile.compile( + "easi/simulators/matterport3d/v0_1/bridge.py", + doraise=True, + ) From 12164678e466dbb893551296aa729fb769fbe12c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 2 Mar 2026 17:40:39 +0800 Subject: [PATCH 122/239] feat: wire Docker runtime detection into EvaluationRunner _create_simulator() now reads entry.runtime from the registry and uses launch_docker() when runtime is "docker", falling back to the existing conda path otherwise. Updated all test mocks to provide mock_entry. --- easi/evaluation/runner.py | 39 +++++++++++++++++++++++++++---- tests/test_docker_isolation.py | 35 +++++++++++++++++++++++++++ tests/test_env_vars_wiring.py | 12 ++++++++-- tests/test_installation_kwargs.py | 6 ++++- tests/test_render_platform.py | 30 ++++++++++++++++++++---- 5 files changed, 110 insertions(+), 12 deletions(-) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index f4a3642..8ca6e87 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -555,10 +555,12 @@ def _create_simulator(self, simulator_key: str, task=None): from easi.simulators.registry import ( create_env_manager, + get_simulator_entry, load_simulator_class, ) from easi.simulators.subprocess_runner import SubprocessRunner + entry = get_simulator_entry(simulator_key) env_manager = create_env_manager(simulator_key) SimClass = load_simulator_class(simulator_key) sim = SimClass() @@ -568,10 +570,6 @@ def _create_simulator(self, simulator_key: str, task=None): logger.info("Simulator environment not ready, auto-installing...") env_manager.install() - # Install task-level additional deps - if task and task.additional_deps: - env_manager.install_additional_deps(task.additional_deps) - # Task-specific bridge overrides simulator default bridge_path = ( (task.get_bridge_script_path() if task else None) @@ -590,6 +588,39 @@ def _create_simulator(self, simulator_key: str, task=None): if sim_configs.get("startup_timeout"): runner_kwargs["startup_timeout"] = float(sim_configs["startup_timeout"]) + # --- Docker runtime path --- + if entry.runtime == "docker": + from easi.core.docker_env_manager import DockerEnvironmentManager + from easi.core.render_platform import get_render_platform + + assert isinstance(env_manager, DockerEnvironmentManager), ( + f"Simulator {simulator_key} declares runtime=docker but env_manager " + f"is not a DockerEnvironmentManager" + ) + + runner = SubprocessRunner( + python_executable=env_manager.container_python_path, + bridge_script_path=bridge_path, + render_platform=get_render_platform("headless"), + extra_args=extra_args, + **runner_kwargs, + ) + data_dir_str = str(self.data_dir) if self.data_dir else ( + entry.data_dir.replace("~", str(Path.home())) if entry.data_dir else None + ) + runner.launch_docker( + docker_env_manager=env_manager, + data_dir=data_dir_str, + ) + sim.set_runner(runner) + return sim, runner + + # --- Conda runtime path (existing) --- + + # Install task-level additional deps + if task and task.additional_deps: + env_manager.install_additional_deps(task.additional_deps) + # Resolve render platform: CLI > task YAML > env_manager default from easi.simulators.registry import resolve_render_platform diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index 8d28eaa..74d445a 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -254,3 +254,38 @@ def test_nvidia_docker_dep_registered(self): checker = SystemDependencyChecker() result = checker.check("nvidia-docker") assert isinstance(result, bool) + + +class TestEvaluationRunnerDockerWiring: + """Test that _create_simulator detects Docker runtime and uses launch_docker.""" + + def test_docker_runtime_detected_from_registry(self): + """When registry entry has runtime='docker', runner should use Docker launch.""" + from easi.simulators.registry import SimulatorEntry + + entry = SimulatorEntry( + name="test_docker", + version="v1", + description="test", + simulator_class="easi.simulators.dummy.v1.simulator.DummySimulator", + env_manager_class="easi.simulators.dummy.v1.env_manager.DummyEnvManager", + python_version="3.10", + runtime="docker", + ) + assert entry.runtime == "docker" + + def test_get_simulator_entry_preserves_runtime(self): + """get_simulator_entry returns entry with runtime field intact.""" + from easi.simulators.registry import get_simulator_entry + + # Dummy uses default runtime (conda) + entry = get_simulator_entry("dummy") + assert entry.runtime == "conda" + + def test_matterport3d_entry_has_docker_runtime(self): + """Matterport3D registry entry has runtime=docker.""" + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("matterport3d") + assert entry.runtime == "docker" + assert entry.data_dir == "/datasets/matterport3d" diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index 5178802..5264278 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -29,7 +29,11 @@ def test_runner_passes_env_vars_to_subprocess(self): mock_sim = mock_sim_cls.return_value mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ @@ -64,7 +68,11 @@ def test_runner_passes_none_when_no_env_vars(self): mock_sim = mock_sim_cls.return_value mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 0f1578d..b537ee3 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -72,7 +72,11 @@ def test_runner_passes_installation_kwargs(self): mock_sim = mock_sim_cls.return_value mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr) as mock_factory, \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr) as mock_factory, \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index dca0901..e0e3045 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -711,7 +711,11 @@ def test_default_uses_env_manager_platform(self): mock_sim_cls = MagicMock() mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ @@ -733,7 +737,11 @@ def test_cli_override_wins(self): mock_sim_cls = MagicMock() mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ @@ -756,7 +764,11 @@ def test_yaml_override_used_when_no_cli(self): mock_sim_cls = MagicMock() mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ @@ -779,7 +791,11 @@ def test_cli_beats_yaml(self): mock_sim_cls = MagicMock() mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ @@ -802,7 +818,11 @@ def test_unsupported_platform_raises(self): mock_sim_cls = MagicMock() mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") - with patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ + mock_entry = MagicMock() + mock_entry.runtime = "conda" + + with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ + patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ patch("easi.simulators.registry.resolve_render_platform", side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ From 874e100f45b9ce4c2075415242afbeca91d10931 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 11:05:32 +0800 Subject: [PATCH 123/239] feat: CLI support for Docker env install/check/list and sim test - cmd_env_list shows [docker] tag for Docker-based simulators - cmd_env_check reports Docker image name instead of Python path - cmd_env_install warns when --with-task-deps used with Docker - cmd_sim_test uses launch_docker() for Docker-runtime simulators - DockerEnvironmentManager gains check_system_deps() method --- easi/cli.py | 197 ++++++++++++++++++++++---------- easi/core/docker_env_manager.py | 6 + tests/test_docker_isolation.py | 21 ++++ 3 files changed, 162 insertions(+), 62 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 83efc64..4a730b9 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -154,7 +154,8 @@ def cmd_env_list() -> None: continue seen.add(pair) default_marker = " (default)" if key == entry.name else "" - logger.info(" %s%s -- %s", pair, default_marker, entry.description) + runtime_tag = f" [{entry.runtime}]" if entry.runtime != "conda" else "" + logger.info(" %s%s%s -- %s", pair, default_marker, runtime_tag, entry.description) def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str | None = None) -> None: @@ -170,20 +171,26 @@ def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str env_manager.install() if with_task_deps: - from easi.tasks.registry import get_task_entry, load_task_class + from easi.core.docker_env_manager import DockerEnvironmentManager - entry = get_task_entry(with_task_deps) - TaskClass = load_task_class(with_task_deps) - task = TaskClass(split_yaml_path=entry.config_path) - if task.additional_deps: - env_manager.install_additional_deps(task.additional_deps) + if isinstance(env_manager, DockerEnvironmentManager): + logger.warning("--with-task-deps is not supported for Docker simulators (deps baked into image).") else: - logger.info("Task %s has no additional_deps.", with_task_deps) + from easi.tasks.registry import get_task_entry, load_task_class + + entry = get_task_entry(with_task_deps) + TaskClass = load_task_class(with_task_deps) + task = TaskClass(split_yaml_path=entry.config_path) + if task.additional_deps: + env_manager.install_additional_deps(task.additional_deps) + else: + logger.info("Task %s has no additional_deps.", with_task_deps) logger.info("Done.") def cmd_env_check(simulator: str) -> None: + from easi.core.docker_env_manager import DockerEnvironmentManager from easi.simulators.registry import create_env_manager env_manager = create_env_manager(simulator) @@ -194,7 +201,10 @@ def cmd_env_check(simulator: str) -> None: if env_manager.env_is_ready(): logger.info("Environment %s is ready.", env_manager.get_env_name()) - logger.info("Python: %s", env_manager.get_python_executable()) + if isinstance(env_manager, DockerEnvironmentManager): + logger.info("Runtime: docker (image: %s)", env_manager.image_name) + else: + logger.info("Python: %s", env_manager.get_python_executable()) else: logger.info("Environment %s is NOT ready.", env_manager.get_env_name()) logger.info("Run: easi env install %s", simulator) @@ -254,73 +264,136 @@ def cmd_task_download(task_name: str, refresh_data: bool = False) -> None: def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_name: str | None = None) -> None: + from pathlib import Path + + from easi.core.docker_env_manager import DockerEnvironmentManager from easi.core.episode import Action + from easi.core.render_platform import get_render_platform from easi.simulators.registry import ( create_env_manager, + get_simulator_entry, load_simulator_class, resolve_render_platform, ) from easi.simulators.subprocess_runner import SubprocessRunner + entry = get_simulator_entry(simulator) env_manager = create_env_manager(simulator) SimClass = load_simulator_class(simulator) sim = SimClass() - # Resolve render platform - platform_name = render_platform_name or env_manager.default_render_platform - if platform_name not in env_manager.supported_render_platforms: - logger.error( - "Render platform '%s' not supported by %s. Supported: %s", - platform_name, simulator, env_manager.supported_render_platforms, + if entry.runtime == "docker": + # --- Docker launch path --- + assert isinstance(env_manager, DockerEnvironmentManager), ( + f"runtime='docker' but env_manager is {type(env_manager).__name__}, " + "expected DockerEnvironmentManager subclass" + ) + logger.info("Testing %s (Docker)...", simulator) + logger.info(" Image: %s", env_manager.image_name) + logger.info(" GPU: %s", env_manager.gpu_required) + + render_platform = get_render_platform("headless") + bridge_path = sim._get_bridge_script_path() + + runner = SubprocessRunner( + python_executable=env_manager.container_python_path, + bridge_script_path=bridge_path, + render_platform=render_platform, + startup_timeout=timeout, + command_timeout=timeout, ) - sys.exit(1) - render_platform = resolve_render_platform(simulator, platform_name, env_manager=env_manager) - - logger.info("Testing %s...", simulator) - logger.info(" Python: %s", env_manager.get_python_executable()) - logger.info(" Render platform: %s", platform_name) - - env_vars = env_manager.get_env_vars(render_platform_name=platform_name) - - runner = SubprocessRunner( - python_executable=env_manager.get_python_executable(), - bridge_script_path=sim._get_bridge_script_path(), - render_platform=render_platform, - screen_config=env_manager.screen_config, - startup_timeout=timeout, - command_timeout=timeout, - extra_env=env_vars if env_vars else None, - ) - try: - runner.launch() - sim.set_runner(runner) - - logger.info(" Reset...") - obs = sim.reset("smoke_test_001") - logger.info(" Reset OK (rgb: %s)", obs.rgb_path) - - for i in range(steps): - action = Action(action_name="MoveAhead") - result = sim.step(action) - logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) - if result.done: - break - - logger.info(" Closing...") - sim.close() - logger.info(" Close OK") - logger.info("Smoke test passed!") - - except KeyboardInterrupt: - logger.info("Interrupted, shutting down bridge...") - sim.close() - logger.info("Bridge process terminated.") - sys.exit(130) - except Exception as e: - logger.error("Smoke test FAILED: %s", e) - sim.close() - sys.exit(1) + data_dir_str = entry.data_dir.replace("~", str(Path.home())) if entry.data_dir else None + + try: + runner.launch_docker( + docker_env_manager=env_manager, + data_dir=data_dir_str, + ) + sim.set_runner(runner) + + logger.info(" Reset...") + obs = sim.reset("smoke_test_001") + logger.info(" Reset OK (rgb: %s)", obs.rgb_path) + + for i in range(steps): + action = Action(action_name="MoveAhead") + result = sim.step(action) + logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) + if result.done: + break + + logger.info(" Closing...") + sim.close() + logger.info(" Close OK") + logger.info("Smoke test passed!") + + except KeyboardInterrupt: + logger.info("Interrupted, shutting down bridge...") + sim.close() + logger.info("Bridge process terminated.") + sys.exit(130) + except Exception as e: + logger.error("Smoke test FAILED: %s", e) + sim.close() + sys.exit(1) + + else: + # --- Conda launch path --- + platform_name = render_platform_name or env_manager.default_render_platform + if platform_name not in env_manager.supported_render_platforms: + logger.error( + "Render platform '%s' not supported by %s. Supported: %s", + platform_name, simulator, env_manager.supported_render_platforms, + ) + sys.exit(1) + render_platform = resolve_render_platform(simulator, platform_name, env_manager=env_manager) + + logger.info("Testing %s...", simulator) + logger.info(" Python: %s", env_manager.get_python_executable()) + logger.info(" Render platform: %s", platform_name) + + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) + + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + render_platform=render_platform, + screen_config=env_manager.screen_config, + startup_timeout=timeout, + command_timeout=timeout, + extra_env=env_vars if env_vars else None, + ) + + try: + runner.launch() + sim.set_runner(runner) + + logger.info(" Reset...") + obs = sim.reset("smoke_test_001") + logger.info(" Reset OK (rgb: %s)", obs.rgb_path) + + for i in range(steps): + action = Action(action_name="MoveAhead") + result = sim.step(action) + logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) + if result.done: + break + + logger.info(" Closing...") + sim.close() + logger.info(" Close OK") + logger.info("Smoke test passed!") + + except KeyboardInterrupt: + logger.info("Interrupted, shutting down bridge...") + sim.close() + logger.info("Bridge process terminated.") + sys.exit(130) + except Exception as e: + logger.error("Smoke test FAILED: %s", e) + sim.close() + sys.exit(1) def _resolve_task_list(args_ns) -> list[str]: diff --git a/easi/core/docker_env_manager.py b/easi/core/docker_env_manager.py index a381f6b..0f84a46 100644 --- a/easi/core/docker_env_manager.py +++ b/easi/core/docker_env_manager.py @@ -12,6 +12,7 @@ from pathlib import Path from easi.utils.logging import get_logger +from easi.utils.system_deps import SystemDependencyChecker logger = get_logger(__name__) @@ -26,6 +27,7 @@ class DockerEnvironmentManager(ABC): def __init__(self, installation_kwargs: dict | None = None): self.installation_kwargs = installation_kwargs or {} + self._dep_checker = SystemDependencyChecker() # --- Abstract properties (subclass must implement) --- @@ -84,6 +86,10 @@ def get_system_deps(self) -> list[str]: """System dependencies (e.g., ['docker'] or ['docker', 'nvidia-docker']).""" ... + def check_system_deps(self) -> list[str]: + """Check system dependencies, returning list of missing ones.""" + return self._dep_checker.check_all(self.get_system_deps()) + def get_env_vars(self) -> dict[str, str]: """Environment variables to set inside the container. Override if needed.""" return {} diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index 74d445a..d5ebb6c 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -289,3 +289,24 @@ def test_matterport3d_entry_has_docker_runtime(self): entry = get_simulator_entry("matterport3d") assert entry.runtime == "docker" assert entry.data_dir == "/datasets/matterport3d" + + +class TestCLIDockerEnvSupport: + """CLI commands work with Docker-based simulators.""" + + def test_env_list_shows_runtime(self): + """easi env list should see all simulators including Docker ones.""" + from easi.simulators.registry import list_simulators, get_simulator_entry + + sims = list_simulators() + for key in sims: + entry = get_simulator_entry(key) + assert entry.runtime in ("conda", "docker") + + def test_docker_env_manager_has_check_system_deps(self): + """DockerEnvironmentManager supports check_system_deps().""" + from easi.simulators.registry import create_env_manager + + mgr = create_env_manager("matterport3d") + missing = mgr.check_system_deps() + assert isinstance(missing, list) From 63a6cabf1a3735ab5912798f7779f7bda2fbd5b9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:11:05 +0800 Subject: [PATCH 124/239] feat(lhpr_vln): vendor SceneSimulator, config, and metrics from LH-VLN --- easi/tasks/lhpr_vln/__init__.py | 0 easi/tasks/lhpr_vln/vendor/__init__.py | 0 easi/tasks/lhpr_vln/vendor/metrics.py | 129 +++++++++++ easi/tasks/lhpr_vln/vendor/scene_config.py | 120 ++++++++++ easi/tasks/lhpr_vln/vendor/scene_simulator.py | 205 ++++++++++++++++++ 5 files changed, 454 insertions(+) create mode 100644 easi/tasks/lhpr_vln/__init__.py create mode 100644 easi/tasks/lhpr_vln/vendor/__init__.py create mode 100644 easi/tasks/lhpr_vln/vendor/metrics.py create mode 100644 easi/tasks/lhpr_vln/vendor/scene_config.py create mode 100644 easi/tasks/lhpr_vln/vendor/scene_simulator.py diff --git a/easi/tasks/lhpr_vln/__init__.py b/easi/tasks/lhpr_vln/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/lhpr_vln/vendor/__init__.py b/easi/tasks/lhpr_vln/vendor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/lhpr_vln/vendor/metrics.py b/easi/tasks/lhpr_vln/vendor/metrics.py new file mode 100644 index 0000000..24087f2 --- /dev/null +++ b/easi/tasks/lhpr_vln/vendor/metrics.py @@ -0,0 +1,129 @@ +"""Navigation metrics for LHPR-VLN benchmark. Vendored verbatim from LH-VLN/utils/metrics.py.""" + + +class NavigationMetrics: + def __init__(self): + self.successes = [] + self.gt_steps = [] + self.gt_length = [] + self.error_length = [] + self.path_steps = [] + self.oracle_successes = [] + self.navigation_errors = [] + self.subtask_successes = [] + self.subtask_path_steps = [] + + def add_sample(self, + success, + gt_step, + path_step, + oracle_success, + navigation_error, + subtask_successes, + subtask_path_step, + gt_length, + error_length): + self.successes.append(success) + self.gt_steps.append(gt_step) + self.path_steps.append(path_step) + self.oracle_successes.append(oracle_success) + self.navigation_errors.append(navigation_error) + self.subtask_successes.append(subtask_successes) + self.subtask_path_steps.append(subtask_path_step) + self.gt_length.append(gt_length) + self.error_length.append(error_length) + + def success_rate(self): + return sum(self.successes) / len(self.successes) if len(self.successes) > 0 else 0 + + def oracle_success_rate(self): + return sum(self.oracle_successes) / len(self.oracle_successes) if len(self.oracle_successes) > 0 else 0 + + def spl(self): + total_spl = sum(s * (gp/max(gp, p)) if p > 0 else 0 for s, gp, p in zip(self.successes, self.gt_steps, self.path_steps)) + return total_spl / len(self.successes) if len(self.successes) > 0 else 0 + + def navigation_error(self): + return sum(self.navigation_errors) / len(self.navigation_errors) if len(self.navigation_errors) > 0 else 0 + + def independent_success_rate(self): + subtask_counts = [len(subtasks) for subtasks in self.subtask_successes] + total_subtasks = sum(subtask_counts) + total_successes = sum(sum(subtasks) for subtasks in self.subtask_successes) + return total_successes / total_subtasks if total_subtasks > 0 else 0 + + def conditional_success_rate(self): + M = len(self.subtask_successes) + if M == 0: + return 0 + csr = 0 + for i in range(M): + sr = 0 + N = len(self.subtask_successes[i]) + if N == 0: + continue + s = self.subtask_successes[i][0] + sr += s*N + if N == 1: + csr += sr + continue + for j in self.subtask_successes[i][1:]: + sr += j*(1+(N-1)*s) + s = j + csr += sr/(N**2) + csr = csr/M + return csr + + def conditional_path_length(self): + M = len(self.subtask_successes) + if M == 0: + return 0 + cpl = 0 + for i in range(M): + sr = 0 + N = len(self.subtask_successes[i]) + if N == 0: + continue + s = self.subtask_successes[i][0] + w = [l/sum(self.subtask_path_steps[i]) for l in self.subtask_path_steps[i]] + sr += s*N*w[0] + if N == 1: + cpl += sr + continue + for j, wj in zip(self.subtask_successes[i][1:], w[1:]): + sr += j*(1+(N-1)*s)*wj + s = j + cpl += sr/N + cpl = cpl/M + return cpl + + def TAR(self): + tars = [] + for i in range(len(self.gt_length)): + for j in range(len(self.gt_length[i])): + error = self.error_length[i][j] + gt = self.gt_length[i][j] + if error == 0 and gt == 0: + tar = 1.0 + elif gt == 0: + tar = 0.0 + else: + denominator = max(error, gt) + if denominator > 0: + tar = 1 - max(error - 1, 0) / denominator + else: + tar = 1.0 + tars.append(tar) + return sum(tars) / len(tars) if len(tars) > 0 else 0 + + def compute(self): + return { + "success_rate": self.success_rate(), + "oracle_success_rate": self.oracle_success_rate(), + "spl": self.spl(), + "navigation_error": self.navigation_error(), + "independent_success_rate": self.independent_success_rate(), + "conditional_success_rate": self.conditional_success_rate(), + "conditional_path_length":self.conditional_path_length(), + "tar":self.TAR() + } diff --git a/easi/tasks/lhpr_vln/vendor/scene_config.py b/easi/tasks/lhpr_vln/vendor/scene_config.py new file mode 100644 index 0000000..c3ded8d --- /dev/null +++ b/easi/tasks/lhpr_vln/vendor/scene_config.py @@ -0,0 +1,120 @@ +"""Habitat-Sim configuration for LHPR-VLN scenes. + +Vendored from LH-VLN/habitat_base/config.py with parameterization. +""" +import math + +import habitat_sim +import magnum as mn + + +def make_setting(scene_path: str, scene_dataset_path: str, robot: str, + width: int = 512, height: int = 512) -> dict: + """Build Habitat-Sim settings dict for an HM3D scene.""" + sensor_height = 0.5 if robot == "spot" else 1.0 + return { + "width": width, + "height": height, + "scene": scene_path, + "scene_dataset": scene_dataset_path, + "default_agent": 0, + "sensor_height": sensor_height, + "color_sensor_f": True, + "color_sensor_l": True, + "color_sensor_r": True, + "color_sensor_3rd": True, + "depth_sensor_f": True, + "depth_sensor_l": True, + "depth_sensor_r": True, + "semantic_sensor": True, + "seed": 1, + "enable_physics": False, + } + + +def make_cfg(settings: dict, gpu_device_id: int = 0) -> habitat_sim.Configuration: + """Build Habitat-Sim Configuration from settings dict.""" + sim_cfg = habitat_sim.SimulatorConfiguration() + sim_cfg.gpu_device_id = gpu_device_id + sim_cfg.scene_id = settings["scene"] + sim_cfg.enable_physics = settings["enable_physics"] + if "scene_dataset" in settings: + sim_cfg.scene_dataset_config_file = settings["scene_dataset"] + + sensors = { + "color_sensor_f": { + "sensor_type": habitat_sim.SensorType.COLOR, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, 0.0, 0.0], + }, + "color_sensor_l": { + "sensor_type": habitat_sim.SensorType.COLOR, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, math.pi / 3.0, 0.0], + }, + "color_sensor_r": { + "sensor_type": habitat_sim.SensorType.COLOR, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, -math.pi / 3.0, 0.0], + }, + "color_sensor_3rd": { + "sensor_type": habitat_sim.SensorType.COLOR, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"] + 0.5, 1.0), + "orientation": [-math.pi / 4, 0.0, 0.0], + }, + "depth_sensor_l": { + "sensor_type": habitat_sim.SensorType.DEPTH, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, math.pi / 3.0, 0.0], + }, + "depth_sensor_f": { + "sensor_type": habitat_sim.SensorType.DEPTH, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, 0.0, 0.0], + }, + "depth_sensor_r": { + "sensor_type": habitat_sim.SensorType.DEPTH, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, -math.pi / 3.0, 0.0], + }, + "semantic_sensor": { + "sensor_type": habitat_sim.SensorType.SEMANTIC, + "resolution": [settings["height"], settings["width"]], + "position": mn.Vector3(0.0, settings["sensor_height"], 0.0), + "orientation": [0.0, 0.0, 0.0], + }, + } + sensor_specs = [] + for sensor_uuid, sensor_params in sensors.items(): + if settings.get(sensor_uuid, False): + sensor_spec = habitat_sim.CameraSensorSpec() + sensor_spec.uuid = sensor_uuid + sensor_spec.sensor_type = sensor_params["sensor_type"] + sensor_spec.resolution = sensor_params["resolution"] + sensor_spec.position = sensor_params["position"] + sensor_spec.orientation = sensor_params["orientation"] + if sensor_uuid == "color_sensor_3rd": + sensor_spec.sensor_subtype = habitat_sim.SensorSubType.PINHOLE + sensor_specs.append(sensor_spec) + + agent_cfg = habitat_sim.agent.AgentConfiguration() + agent_cfg.sensor_specifications = sensor_specs + agent_cfg.action_space = { + "move_forward": habitat_sim.agent.ActionSpec( + "move_forward", habitat_sim.agent.ActuationSpec(amount=0.25) + ), + "turn_left": habitat_sim.agent.ActionSpec( + "turn_left", habitat_sim.agent.ActuationSpec(amount=30.0) + ), + "turn_right": habitat_sim.agent.ActionSpec( + "turn_right", habitat_sim.agent.ActuationSpec(amount=30.0) + ), + } + return habitat_sim.Configuration(sim_cfg, [agent_cfg]) diff --git a/easi/tasks/lhpr_vln/vendor/scene_simulator.py b/easi/tasks/lhpr_vln/vendor/scene_simulator.py new file mode 100644 index 0000000..d6795db --- /dev/null +++ b/easi/tasks/lhpr_vln/vendor/scene_simulator.py @@ -0,0 +1,205 @@ +"""Habitat-Sim SceneSimulator for LHPR-VLN. + +Vendored from LH-VLN/habitat_base/simulation.py with parameterization. +Original creates a new habitat_sim.Simulator per episode, computes geodesic +distances, and tracks multi-subtask stage/success/oracle state. +""" +import math +import operator +from typing import Optional, Union + +import habitat_sim +import numpy as np +import quaternion + +from .scene_config import make_cfg, make_setting + + +class SceneSimulator: + def __init__( + self, + *, + scene_id: str, + robot: str, + targets: list[str], + regions: list[str], + instruction: str, + gt_step: list[int] | None = None, + scene_base_path: str, + scene_dataset_path: str, + gpu_device_id: int = 0, + success_distance: float = 1.0, + max_steps: int = 500, + width: int = 512, + height: int = 512, + ): + self.scene_id = scene_id + self.robot = robot + self.targets = targets + self.regions = regions + self.instruction = instruction + self.success_distance = success_distance + self.max_steps = max_steps + + # Resolve scene path: IDs < 800 -> train/, >= 800 -> val/ + split = "train/" if int(scene_id[:5]) < 800 else "val/" + scene_path = scene_base_path + split + scene_id + + # Init simulator + sim_settings = make_setting(scene_path, scene_dataset_path, robot, width, height) + cfg = make_cfg(sim_settings, gpu_device_id) + self.sim = habitat_sim.Simulator(cfg) + self.sim_settings = sim_settings + + # Pathfinder + self.pathfinder = self.sim.pathfinder + self.agent = self.sim.initialize_agent(sim_settings["default_agent"]) + + # Random navigable start position + agent_state = habitat_sim.AgentState() + sample_navigable_point = self.pathfinder.get_random_navigable_point() + agent_state.position = sample_navigable_point - np.array([0, 0, -0.25]) + self.agent.set_state(agent_state) + + # Greedy geodesic follower (for GT path computation) + self.follower = habitat_sim.nav.GreedyGeodesicFollower( + pathfinder=self.pathfinder, + agent=self.agent, + goal_radius=success_distance, + stop_key="stop", + forward_key="move_forward", + left_key="turn_left", + right_key="turn_right", + ) + + # Initial observation + self.observations = self.sim.step("move_forward") + + # Subtask tracking + self.step = -1 + self.stage = 0 + self.target_num = len(targets) + self.nav_steps = [] + self.successes = [False] * self.target_num + self.oracle_successes = [False] * self.target_num + self.nav_errors = [] + + self.info = self._get_info() + self.gt_step = gt_step + self.gt_path = [self.info["geo_dis"]] + + self.done = False + self.episode_over = False + + def actor(self, action: str): + """Perform one action. Returns (observations, done, info).""" + if action != "stop": + self.observations = self.sim.step(action) + + if self.step == -1: + self.step += 1 + return self.observations, self.done, self.info + + self.step += 1 + self.info = self._get_info() + + if self.info["geo_dis"] < self.success_distance: + self.oracle_successes[self.stage] = True + + if action == "stop": + if self.info["geo_dis"] < self.success_distance: + self.successes[self.stage] = True + self.nav_errors.append(self.info["geo_dis"]) + + if not self.nav_steps: + self.nav_steps.append(self.step) + else: + self.nav_steps.append(self.step - sum(self.nav_steps)) + + self.stage += 1 + if self.stage >= self.target_num: + self.done = True + self.episode_over = True + return self.observations, self.done, self.info + + self.info = self._get_info() + self.gt_path.append(self.info["geo_dis"]) + + if self.step >= self.max_steps: + self.episode_over = True + if not self.nav_steps: + self.nav_steps.append(self.step) + else: + self.nav_steps.append(self.step - sum(self.nav_steps)) + self.nav_errors.append(self.info["geo_dis"]) + + return self.observations, self.done, self.info + + def get_front_rgb(self) -> np.ndarray: + """Return front RGB as H x W x 3 uint8 numpy array.""" + rgba = self.observations["color_sensor_f"] + return rgba[:, :, :3] # drop alpha channel + + def _get_info(self) -> dict: + """Return info about current state relative to current target.""" + obj_target = self.targets[self.stage] + coord_list = self._get_coord(obj_target) + if not coord_list: + return {"target": obj_target, "geo_dis": math.inf} + snap_coord_list = [self.pathfinder.snap_point(c) for c in coord_list] + geo_dis, snap_coord = self._geodesic_distance(snap_coord_list) + position, rotation = self._return_state() + return { + "target": obj_target, + "target_coord": snap_coord, + "agent_position": position, + "agent_rotation": rotation, + "geo_dis": geo_dis, + } + + def _get_coord(self, obj_target: str) -> list: + """Return coordinate list for target object in its specified region.""" + scene = self.sim.semantic_scene + coord_list = [] + index = self.targets.index(obj_target) + region_id = self.regions[index] + for region in scene.regions: + if region.id[1:] != region_id: + continue + for obj in region.objects: + if obj.category.name() == obj_target: + coord_list.append(obj.aabb.center) + return coord_list + + def _geodesic_distance(self, position_b_list) -> tuple[float, list]: + """Compute min geodesic distance from agent to any position in list.""" + position_a, _ = self._return_state() + geo_dis = math.inf + coord = position_b_list[0] + for position_b in position_b_list: + path = habitat_sim.nav.ShortestPath() + path.requested_end = np.array(position_b, dtype=np.float32) + path.requested_start = np.array(position_a, dtype=np.float32) + if self.pathfinder.find_path(path): + if path.geodesic_distance < geo_dis: + geo_dis = path.geodesic_distance + coord = position_b + return geo_dis, coord + + def _return_state(self): + agent_state = self.agent.get_state() + return agent_state.position, agent_state.rotation + + def return_results(self) -> dict: + """Return complete episode results for metrics computation.""" + return { + "successes": self.successes, + "oracle_successes": self.oracle_successes, + "navigation_steps": self.nav_steps, + "navigation_errors": self.nav_errors, + "gt_step": self.gt_step, + "gt_path": self.gt_path, + } + + def close(self): + self.sim.close() From d87ae9c525a12ac1050bf19515919ac15c6674e9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:16:41 +0800 Subject: [PATCH 125/239] fix(lhpr_vln): restore metrics docstrings, remove unused imports --- easi/tasks/lhpr_vln/vendor/metrics.py | 22 +++++++++++++++++++ easi/tasks/lhpr_vln/vendor/scene_simulator.py | 3 --- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/easi/tasks/lhpr_vln/vendor/metrics.py b/easi/tasks/lhpr_vln/vendor/metrics.py index 24087f2..fc89ec5 100644 --- a/easi/tasks/lhpr_vln/vendor/metrics.py +++ b/easi/tasks/lhpr_vln/vendor/metrics.py @@ -23,6 +23,19 @@ def add_sample(self, subtask_path_step, gt_length, error_length): + """Adds a sample of navigation results. + + Parameters: + - success: 1 if the task is successful, 0 otherwise. + - gt_step: The ground truth path steps of the episode. + - path_step: The path steps of the episode. + - oracle_success: 1 if the oracle task is successful, 0 otherwise. + - navigation_error: The navigation error for the task. + - subtask_successes: A list of 0s and 1s indicating subtask success or failure. + - subtask_path_step: A list for the ground truth path steps of subtasks. + - gt_length: Ground path length for sub-tasks, + - error_length: Nav error length for sub-tasks: + """ self.successes.append(success) self.gt_steps.append(gt_step) self.path_steps.append(path_step) @@ -34,25 +47,31 @@ def add_sample(self, self.error_length.append(error_length) def success_rate(self): + """Calculates Success Rate (SR).""" return sum(self.successes) / len(self.successes) if len(self.successes) > 0 else 0 def oracle_success_rate(self): + """Calculates Oracle Success Rate (OSR).""" return sum(self.oracle_successes) / len(self.oracle_successes) if len(self.oracle_successes) > 0 else 0 def spl(self): + """Calculates Success Rate Penalized by Path Length (SPL).""" total_spl = sum(s * (gp/max(gp, p)) if p > 0 else 0 for s, gp, p in zip(self.successes, self.gt_steps, self.path_steps)) return total_spl / len(self.successes) if len(self.successes) > 0 else 0 def navigation_error(self): + """Calculates average Navigation Error (NE).""" return sum(self.navigation_errors) / len(self.navigation_errors) if len(self.navigation_errors) > 0 else 0 def independent_success_rate(self): + """Calculates Independent Success Rate (ISR).""" subtask_counts = [len(subtasks) for subtasks in self.subtask_successes] total_subtasks = sum(subtask_counts) total_successes = sum(sum(subtasks) for subtasks in self.subtask_successes) return total_successes / total_subtasks if total_subtasks > 0 else 0 def conditional_success_rate(self): + """Calculates Conditional Success Rate (CSR).""" M = len(self.subtask_successes) if M == 0: return 0 @@ -75,6 +94,7 @@ def conditional_success_rate(self): return csr def conditional_path_length(self): + """Calculates Conditional Success Rate weighted by Ground Truth Path Length (CGT).""" M = len(self.subtask_successes) if M == 0: return 0 @@ -98,6 +118,7 @@ def conditional_path_length(self): return cpl def TAR(self): + """Calculates Target Approach Rate (TAR).""" tars = [] for i in range(len(self.gt_length)): for j in range(len(self.gt_length[i])): @@ -117,6 +138,7 @@ def TAR(self): return sum(tars) / len(tars) if len(tars) > 0 else 0 def compute(self): + """Compute all metrics.""" return { "success_rate": self.success_rate(), "oracle_success_rate": self.oracle_success_rate(), diff --git a/easi/tasks/lhpr_vln/vendor/scene_simulator.py b/easi/tasks/lhpr_vln/vendor/scene_simulator.py index d6795db..9e1096c 100644 --- a/easi/tasks/lhpr_vln/vendor/scene_simulator.py +++ b/easi/tasks/lhpr_vln/vendor/scene_simulator.py @@ -5,12 +5,9 @@ distances, and tracks multi-subtask stage/success/oracle state. """ import math -import operator -from typing import Optional, Union import habitat_sim import numpy as np -import quaternion from .scene_config import make_cfg, make_setting From 3980763d1c13c2d1653ecc5ac2899b2b72e064ad Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:17:10 +0800 Subject: [PATCH 126/239] feat(lhpr_vln): add action space constants --- easi/tasks/lhpr_vln/actions.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 easi/tasks/lhpr_vln/actions.py diff --git a/easi/tasks/lhpr_vln/actions.py b/easi/tasks/lhpr_vln/actions.py new file mode 100644 index 0000000..bfc33e3 --- /dev/null +++ b/easi/tasks/lhpr_vln/actions.py @@ -0,0 +1,20 @@ +"""LHPR-VLN action space constants.""" + +# Action names (text used by agent and bridge) +MOVE_FORWARD = "move_forward" +TURN_LEFT = "turn_left" +TURN_RIGHT = "turn_right" +STOP = "stop" + +ACTION_SPACE = [MOVE_FORWARD, TURN_LEFT, TURN_RIGHT, STOP] + +# Map text -> Habitat action key (stop is handled by bridge, not sim) +ACTION_NAME_TO_HABITAT = { + MOVE_FORWARD: "move_forward", + TURN_LEFT: "turn_left", + TURN_RIGHT: "turn_right", +} + + +def get_action_space() -> list[str]: + return list(ACTION_SPACE) From 4da8634a6a35dacf02f59f731f3445e7c7a4cecc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:21:10 +0800 Subject: [PATCH 127/239] feat(lhpr_vln): add bridge wrapping vendored SceneSimulator --- easi/tasks/lhpr_vln/bridge.py | 189 ++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 easi/tasks/lhpr_vln/bridge.py diff --git a/easi/tasks/lhpr_vln/bridge.py b/easi/tasks/lhpr_vln/bridge.py new file mode 100644 index 0000000..b00c52f --- /dev/null +++ b/easi/tasks/lhpr_vln/bridge.py @@ -0,0 +1,189 @@ +"""LHPR-VLN bridge — wraps vendored SceneSimulator via BaseBridge. + +This script runs inside the easi_habitat_sim_v0_3_0 conda env (Python 3.9). +Communicates with parent process via filesystem IPC. + +Key difference from other bridges: creates a NEW SceneSimulator per episode +(Habitat-Sim ties one Simulator instance to one scene). The bridge calls +self.env.close() and recreates on each reset. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/data] [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class LHPRVLNBridge(BaseBridge): + """BaseBridge wrapper for LHPR-VLN SceneSimulator. + + Unlike other bridges, this creates a new SceneSimulator per episode + because Habitat-Sim binds one simulator instance to one scene file. + """ + + _scene_sim = None # The vendored SceneSimulator (recreated per episode) + + def _create_env(self, reset_config, simulator_kwargs): + """Called once on first reset. We store simulator_kwargs and return + a placeholder — the real SceneSimulator is created in _on_reset().""" + # Store config for _on_reset to use + self._sim_kwargs = simulator_kwargs + return object() # placeholder — _on_reset creates the real sim + + def _on_reset(self, env, reset_config): + """Create a new SceneSimulator for this episode's scene.""" + from easi.tasks.lhpr_vln.vendor.scene_simulator import SceneSimulator + + # Close previous simulator if any + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + + data_dir = reset_config.get("data_dir") or self._sim_kwargs.get("data_dir", "") + scene_base_path = str(Path(data_dir) / "hm3d") + "/" + scene_dataset_path = str(Path(data_dir) / "hm3d" / "hm3d_annotated_basis.scene_dataset_config.json") + + # Parse episode data from reset_config + targets = json.loads(reset_config["targets"]) if isinstance(reset_config["targets"], str) else reset_config["targets"] + regions = json.loads(reset_config["regions"]) if isinstance(reset_config["regions"], str) else reset_config["regions"] + gt_step = json.loads(reset_config.get("gt_step", "[]")) if isinstance(reset_config.get("gt_step"), str) else reset_config.get("gt_step") + + gpu_device_id = self._sim_kwargs.get("gpu_device_id", 0) + if gpu_device_id < 0: + gpu_device_id = 0 # Habitat-Sim needs a real GPU ID + max_steps = self._sim_kwargs.get("max_steps", 500) + width = self._sim_kwargs.get("screen_width", 512) + height = self._sim_kwargs.get("screen_height", 512) + success_distance = self._sim_kwargs.get("success_distance", 1.0) + + self._scene_sim = SceneSimulator( + scene_id=reset_config["scene_id"], + robot=reset_config.get("robot", "spot"), + targets=targets, + regions=regions, + instruction=reset_config.get("instruction", ""), + gt_step=gt_step if gt_step else None, + scene_base_path=scene_base_path, + scene_dataset_path=scene_dataset_path, + gpu_device_id=gpu_device_id, + success_distance=success_distance, + max_steps=max_steps, + width=width, + height=height, + ) + + # Get initial observation (step -1 in SceneSimulator) + obs, done, info = self._scene_sim.actor("move_forward") + return obs + + def _on_step(self, env, action_text): + """Step the SceneSimulator and return (obs, reward, done, info).""" + obs, done, info = self._scene_sim.actor(action_text) + episode_over = self._scene_sim.episode_over + + # Build info dict with subtask state + step_info = self._build_step_info(done, episode_over) + return obs, 0.0, episode_over, step_info + + def _build_step_info(self, all_done: bool, episode_over: bool) -> dict: + """Build info dict with subtask completion state for metrics.""" + sim = self._scene_sim + results = sim.return_results() + + task_success = 1.0 if all(sim.successes) else 0.0 + + # Build feedback string for the agent + if episode_over and all_done: + feedback = "All subtasks completed. Navigation finished." + elif episode_over: + feedback = f"Maximum steps reached. Completed {sim.stage}/{sim.target_num} subtasks." + else: + current_target = sim.targets[sim.stage] if sim.stage < sim.target_num else "N/A" + feedback = f"Subtask {sim.stage + 1}/{sim.target_num}: navigate to {current_target}. Distance: {sim.info.get('geo_dis', -1):.1f}m" + + return { + "task_success": task_success, + "feedback": feedback, + "subtask_stage": float(sim.stage), + "subtask_total": float(sim.target_num), + "current_geo_distance": float(sim.info.get("geo_dis", -1)), + # Serialized arrays for evaluate_episode to read at episode end + "subtask_successes": json.dumps([int(s) for s in results["successes"]]), + "subtask_oracle_successes": json.dumps([int(s) for s in results["oracle_successes"]]), + "subtask_nav_errors": json.dumps(results["navigation_errors"]), + "subtask_nav_steps": json.dumps(results["navigation_steps"]), + "gt_steps": json.dumps(results["gt_step"] or []), + "gt_paths": json.dumps(results["gt_path"]), + } + + def _extract_image(self, obs): + """Return front RGB view as the primary observation image.""" + return obs["color_sensor_f"][:, :, :3] # RGBA -> RGB + + def _make_response(self, obs, reward=0.0, done=False, info=None): + """Override to save 3 separate RGB views and pass paths in metadata. + + Saves: step_NNNN_left.png, step_NNNN_front.png, step_NNNN_right.png + Front is the primary rgb_path; left/right paths go in metadata. + """ + from easi.communication.schemas import make_observation_response + + save_dir = Path(self.episode_output_dir) if self.episode_output_dir else self.workspace + save_dir.mkdir(parents=True, exist_ok=True) + + paths = {} + for view_name, sensor_key in [("left", "color_sensor_l"), + ("front", "color_sensor_f"), + ("right", "color_sensor_r")]: + rgb = obs[sensor_key][:, :, :3] + path = save_dir / ("step_%04d_%s.png" % (self.step_count, view_name)) + from PIL import Image + Image.fromarray(rgb).save(str(path)) + paths[view_name] = str(path) + + clean_info = self._extract_info(info or {}) + clean_info["step"] = str(self.step_count) + return make_observation_response( + rgb_path=paths["front"], + agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={ + "step": str(self.step_count), + "left_rgb_path": paths["left"], + "front_rgb_path": paths["front"], + "right_rgb_path": paths["right"], + }, + reward=reward, + done=done, + info=clean_info, + ) + + def _extract_info(self, info): + """Pass through our pre-built info dict. + All values are already int/float/str/bool.""" + return {k: v for k, v in info.items() + if isinstance(v, (int, float, str, bool))} + + def close(self): + """Close the SceneSimulator.""" + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + super().close() + + +if __name__ == "__main__": + LHPRVLNBridge.main() From 2463e68e2f23c3334fcaceb5a16f97c2eb1f56c0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:23:32 +0800 Subject: [PATCH 128/239] feat(lhpr_vln): add task class with all 8 metrics + contest score --- easi/tasks/lhpr_vln/task.py | 221 ++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 easi/tasks/lhpr_vln/task.py diff --git a/easi/tasks/lhpr_vln/task.py b/easi/tasks/lhpr_vln/task.py new file mode 100644 index 0000000..d51be13 --- /dev/null +++ b/easi/tasks/lhpr_vln/task.py @@ -0,0 +1,221 @@ +"""LHPR-VLN task for EASI. + +Adapts the LHPR-VLN benchmark to EASI's task interface. +Episodes are loaded from preprocessed JSONL files (data/val.jsonl, +data/test.jsonl) via EASI's default HuggingFace dataset loading. +Each episode contains 2-4 sequential navigation subtasks in HM3D scenes. + +Metrics: +- Per-episode: task_success, oracle_success, spl, navigation_error, + isr, csr, cgt, tar (computed per-episode for result.json) +- Aggregate: All 8 official metrics + contest_score + (using vendored NavigationMetrics) +""" +from __future__ import annotations + +import json +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.lhpr_vln.actions import get_action_space +from easi.tasks.lhpr_vln.vendor.metrics import NavigationMetrics +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class LHPRVLNTask(BaseTask): + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map LHPR-VLN episode dict to bridge reset config. + + Episode keys come from the preprocessed JSONL (lowercase): + id, instruction, scene, robot, objects, regions, rooms, + gt_steps, subtask_list, num_targets, batch + """ + return { + "episode_id": episode.get("id", "unknown"), + "scene_id": episode["scene"], + "robot": episode.get("robot", "spot"), + "instruction": episode.get("instruction", ""), + "targets": episode["objects"], + "regions": episode["regions"], + "gt_step": episode.get("gt_steps", []), + "data_dir": episode.get("_data_dir", ""), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Compute per-episode metrics from subtask completion data. + + Reads serialized subtask arrays from the last step's info dict. + Returns metrics for result.json AND data for aggregate_results(). + """ + if not trajectory: + return self._empty_metrics() + + last = trajectory[-1] + info = last.info + + # Parse subtask arrays from the last step's info + successes = json.loads(info.get("subtask_successes", "[]")) + oracle_successes = json.loads(info.get("subtask_oracle_successes", "[]")) + nav_errors = json.loads(info.get("subtask_nav_errors", "[]")) + nav_steps = json.loads(info.get("subtask_nav_steps", "[]")) + gt_steps = json.loads(info.get("gt_steps", "[]")) + gt_paths = json.loads(info.get("gt_paths", "[]")) + + # Overall success: all subtasks succeeded + task_success = 1.0 if successes and all(s == 1 for s in successes) else 0.0 + oracle_success = 1.0 if oracle_successes and all(s == 1 for s in oracle_successes) else 0.0 + + # SPL: success * (gt_total / max(gt_total, actual_total)) + total_gt = sum(gt_steps) if gt_steps else 0 + total_actual = sum(nav_steps) if nav_steps else 0 + spl = task_success * (total_gt / max(total_gt, total_actual)) if total_actual > 0 else 0.0 + + # Navigation error: avg geodesic distance at stop across subtasks + ne = sum(nav_errors) / len(nav_errors) if nav_errors else 0.0 + + return { + "task_success": task_success, + "oracle_success": oracle_success, + "spl": spl, + "navigation_error": ne, + "num_steps": float(len(trajectory)), + "num_subtasks": float(len(successes)), + "subtasks_completed": float(sum(successes)), + # Store raw arrays as JSON strings for aggregate_results + "_subtask_successes": json.dumps(successes), + "_subtask_oracle_successes": json.dumps(oracle_successes), + "_subtask_nav_errors": json.dumps(nav_errors), + "_subtask_nav_steps": json.dumps(nav_steps), + "_gt_steps": json.dumps(gt_steps), + "_gt_paths": json.dumps(gt_paths), + } + + def aggregate_results( + self, records: list[EpisodeRecord] + ) -> dict[str, float]: + """Compute all 8 LHPR-VLN metrics using vendored NavigationMetrics. + + Metric definitions (from CVPR-25 paper): + - SR: Success Rate (all subtasks completed) + - OSR: Oracle Success Rate (agent ever passed within 1m of all targets) + - SPL: Success weighted by Path Length + - NE: Navigation Error (avg geodesic distance at stop) + - ISR: Independent Success Rate (fraction of subtasks succeeded) + - CSR: Conditional Success Rate (sequential dependency weighting) + - CGT: CSR weighted by GT path length + - TAR: Target Approach Rate (continuous approach measure) + - contest_score: 0.4*TAR + 0.2*ISR + 0.2*CSR + 0.2*CGT + """ + if not records: + return {} + + metrics = NavigationMetrics() + + for r in records: + er = r.episode_results + successes = json.loads(er.get("_subtask_successes", "[]")) + oracle_successes = json.loads(er.get("_subtask_oracle_successes", "[]")) + nav_errors = json.loads(er.get("_subtask_nav_errors", "[]")) + nav_steps = json.loads(er.get("_subtask_nav_steps", "[]")) + gt_steps = json.loads(er.get("_gt_steps", "[]")) + gt_paths = json.loads(er.get("_gt_paths", "[]")) + + # Overall success + success = 1 if successes and all(s == 1 for s in successes) else 0 + oracle_success = 1 if oracle_successes and all(s == 1 for s in oracle_successes) else 0 + + # Total steps + total_gt = sum(gt_steps) if gt_steps else 0 + total_actual = sum(nav_steps) if nav_steps else 0 + + # Avg navigation error + avg_ne = sum(nav_errors) / len(nav_errors) if nav_errors else 0.0 + + metrics.add_sample( + success=success, + gt_step=total_gt, + path_step=total_actual, + oracle_success=oracle_success, + navigation_error=avg_ne, + subtask_successes=successes, + subtask_path_step=gt_steps, + gt_length=gt_paths, + error_length=nav_errors, + ) + + result = metrics.compute() + + # Add contest ranking score + tar = result.get("tar", 0) + isr = result.get("independent_success_rate", 0) + csr = result.get("conditional_success_rate", 0) + cgt = result.get("conditional_path_length", 0) + contest_score = 0.4 * tar + 0.2 * isr + 0.2 * csr + 0.2 * cgt + + return { + "SR": round(result["success_rate"], 4), + "OSR": round(result["oracle_success_rate"], 4), + "SPL": round(result["spl"], 4), + "NE": round(result["navigation_error"], 4), + "ISR": round(result["independent_success_rate"], 4), + "CSR": round(result["conditional_success_rate"], 4), + "CGT": round(result["conditional_path_length"], 4), + "TAR": round(result["tar"], 4), + "contest_score": round(contest_score, 4), + "num_episodes": len(records), + # Convenience alias for EASI dashboard + "success_rate": round(result["success_rate"], 4), + } + + def _empty_metrics(self) -> dict[str, float]: + return { + "task_success": 0.0, + "oracle_success": 0.0, + "spl": 0.0, + "navigation_error": 0.0, + "num_steps": 0.0, + "num_subtasks": 0.0, + "subtasks_completed": 0.0, + "_subtask_successes": "[]", + "_subtask_oracle_successes": "[]", + "_subtask_nav_errors": "[]", + "_subtask_nav_steps": "[]", + "_gt_steps": "[]", + "_gt_paths": "[]", + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episodes for testing without dataset download.""" + return [ + { + "id": "test_0", + "instruction": "Find the chair in the living room, then find the table in the kitchen.", + "scene": "00384-ceJTwFNjqCt", + "robot": "spot", + "objects": ["chair", "table"], + "regions": ["3", "5"], + "rooms": ["living room", "kitchen"], + "gt_steps": [40, 55], + "subtask_list": ["Move_to('chair_3')", "Move_to('table_5')"], + "num_targets": 2, + "batch": "builtin", + }, + ] From 2d8c909a0cee4dfb8ba5ca9b5c5e19b318fabeff Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:55:49 +0800 Subject: [PATCH 129/239] feat(lhpr-vln): add YAML task configs for val and test splits --- easi/tasks/lhpr_vln/_base.yaml | 27 ++++++++++++++++++++++++++ easi/tasks/lhpr_vln/lhpr_vln_test.yaml | 6 ++++++ easi/tasks/lhpr_vln/lhpr_vln_val.yaml | 6 ++++++ 3 files changed, 39 insertions(+) create mode 100644 easi/tasks/lhpr_vln/_base.yaml create mode 100644 easi/tasks/lhpr_vln/lhpr_vln_test.yaml create mode 100644 easi/tasks/lhpr_vln/lhpr_vln_val.yaml diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml new file mode 100644 index 0000000..6484acf --- /dev/null +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -0,0 +1,27 @@ +display_name: "LHPR-VLN" +description: "Long-Horizon Path Reasoning in Vision-Language Navigation (CVPR-25)" +simulator: "habitat_sim:v0_3_0" +task_class: "easi.tasks.lhpr_vln.task.LHPRVLNTask" +max_steps: 500 +dataset: + source: huggingface + repo_id: "oscarqjh/LHPR-VLN_easi" + subset: null + zip_files: + - "hm3d_v0.2_lhpr_scenes.zip" +simulator_configs: + render_platform: auto + screen_height: 512 + screen_width: 512 + gpu_device_id: 0 + success_distance: 1.0 + additional_deps: [] +agent: + prompt_builder: "easi.tasks.lhpr_vln.prompts.LHPRVLNPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + chat_history: false + generation_kwargs: + temperature: 0 + max_tokens: 256 + top_p: 0.95 diff --git a/easi/tasks/lhpr_vln/lhpr_vln_test.yaml b/easi/tasks/lhpr_vln/lhpr_vln_test.yaml new file mode 100644 index 0000000..3ecd91b --- /dev/null +++ b/easi/tasks/lhpr_vln/lhpr_vln_test.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: lhpr_vln_test +display_name: "LHPR-VLN Test" +description: "LHPR-VLN test split (batch_7 + batch_8)" +dataset: + split: "test" diff --git a/easi/tasks/lhpr_vln/lhpr_vln_val.yaml b/easi/tasks/lhpr_vln/lhpr_vln_val.yaml new file mode 100644 index 0000000..a9c24df --- /dev/null +++ b/easi/tasks/lhpr_vln/lhpr_vln_val.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: lhpr_vln_val +display_name: "LHPR-VLN Val" +description: "LHPR-VLN validation split (batch_6)" +dataset: + split: "val" From 9f1c38ae6164ff1252335bf4e3af6520a15d5462 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:57:11 +0800 Subject: [PATCH 130/239] feat(habitat-sim): widen version spec to support 0.3.0 and 0.3.1 --- easi/simulators/habitat_sim/v0_3_0/conda_env.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml index 17f8c8d..6b0b42b 100644 --- a/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml +++ b/easi/simulators/habitat_sim/v0_3_0/conda_env.yaml @@ -5,5 +5,5 @@ channels: - defaults dependencies: - python=3.9 - - habitat-sim=0.3.0 + - habitat-sim>=0.3.0,<0.4 - withbullet From e4af2a437d4171833218e4587c2d4b1ea5512943 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:57:31 +0800 Subject: [PATCH 131/239] feat(lhpr-vln): add prompt builder for LLM-based VLN agent --- easi/tasks/lhpr_vln/prompts.py | 121 +++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 easi/tasks/lhpr_vln/prompts.py diff --git a/easi/tasks/lhpr_vln/prompts.py b/easi/tasks/lhpr_vln/prompts.py new file mode 100644 index 0000000..2513bf1 --- /dev/null +++ b/easi/tasks/lhpr_vln/prompts.py @@ -0,0 +1,121 @@ +"""LHPR-VLN prompt builder for LLM-based navigation agents. + +Builds prompts with: +- Panoramic RGB observation (left + front + right concatenated) +- Task instruction with subtask targets +- Current subtask progress (from observation metadata) +- Action history with distance feedback +- 4-action space: move_forward, turn_left, turn_right, stop +""" +from __future__ import annotations + +import json + +from easi.agents.prompt_builder import _encode_image_base64, validate_action_name +from easi.core.episode import Action, Observation +from easi.core.memory import AgentMemory +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """You are a navigation agent in a 3D indoor environment. You observe the environment through three camera views (left at -60°, front at 0°, right at +60°) and must navigate to sequential target objects. + +Your actions: +- move_forward: Move forward 0.25 meters +- turn_left: Turn left 30 degrees +- turn_right: Turn right 30 degrees +- stop: Declare current subtask complete (use when you believe you are within 1 meter of the current target) + +Strategy: +- Navigate to each target object in order. After reaching one target, use "stop" to advance to the next. +- Use visual cues to identify rooms and objects. +- If you are far from the target, explore by turning to survey the environment, then move toward likely locations. +- Use "stop" only when you are confident you are close to the current target. + +Respond with ONLY a JSON object: {"action": ""}""" + + +class LHPRVLNPromptBuilder: + """Prompt builder for LHPR-VLN navigation tasks.""" + + def __init__(self, use_feedback: bool = True, chat_history: bool = False, **kwargs): + self._use_feedback = use_feedback + self._chat_history = chat_history + + def build_messages(self, memory: AgentMemory) -> list[dict]: + messages = [{"role": "system", "content": SYSTEM_PROMPT}] + + # Build user message with observation + task context + content = [] + + # Add 3 RGB views (left, front, right) as separate images + obs = memory.current_observation + if obs and obs.metadata: + for view_name, meta_key in [("Left view", "left_rgb_path"), + ("Front view", "front_rgb_path"), + ("Right view", "right_rgb_path")]: + path = obs.metadata.get(meta_key) + if path: + image_url = _encode_image_base64(path) + content.append({"type": "text", "text": f"[{view_name}]"}) + content.append({"type": "image_url", "image_url": {"url": image_url}}) + elif obs and obs.rgb_path: + # Fallback: single image (e.g., testing without full bridge) + image_url = _encode_image_base64(obs.rgb_path) + content.append({"type": "image_url", "image_url": {"url": image_url}}) + + # Build text prompt + text_parts = [] + + # Task instruction + text_parts.append(f"Task: {memory.task_description}") + + # Subtask progress from metadata + if obs and obs.metadata: + stage = obs.metadata.get("subtask_stage", "") + total = obs.metadata.get("subtask_total", "") + distance = obs.metadata.get("current_geo_distance", "") + if stage and total: + text_parts.append(f"Current subtask: {int(float(stage)) + 1}/{int(float(total))}") + if distance: + text_parts.append(f"Distance to current target: {float(distance):.1f}m") + + # Action history with feedback + if self._use_feedback and memory.action_history: + history_lines = [] + for action_name, feedback in memory.action_history[-10:]: # last 10 steps + history_lines.append(f" {action_name} → {feedback}") + text_parts.append("Recent actions:\n" + "\n".join(history_lines)) + + # Available actions + text_parts.append(f"Available actions: {', '.join(memory.action_space)}") + text_parts.append('Respond with a JSON object: {"action": ""}') + + content.append({"type": "text", "text": "\n\n".join(text_parts)}) + messages.append({"role": "user", "content": content}) + + return messages + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM response into a single Action.""" + try: + # Try JSON parse + response = json.loads(llm_response.strip()) + action_name = response.get("action", "move_forward") + except (json.JSONDecodeError, AttributeError): + # Fallback: look for action name in response text + response_lower = llm_response.lower() + if "stop" in response_lower: + action_name = "stop" + elif "turn_left" in response_lower or "left" in response_lower: + action_name = "turn_left" + elif "turn_right" in response_lower or "right" in response_lower: + action_name = "turn_right" + else: + action_name = "move_forward" + + validated = validate_action_name(action_name, memory.action_space) + return [Action(action_name=validated)] + + def get_response_format(self, memory: AgentMemory) -> dict: + return {} From 3c0294bbed1f4687463ffc099107a61823f43da4 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 21:59:52 +0800 Subject: [PATCH 132/239] test(lhpr-vln): add unit tests for task, metrics, prompts, and actions --- tests/test_lhpr_vln_task.py | 218 ++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 tests/test_lhpr_vln_task.py diff --git a/tests/test_lhpr_vln_task.py b/tests/test_lhpr_vln_task.py new file mode 100644 index 0000000..6cd2044 --- /dev/null +++ b/tests/test_lhpr_vln_task.py @@ -0,0 +1,218 @@ +"""Tests for LHPR-VLN task integration.""" +import json +import pytest +from unittest.mock import MagicMock + +from easi.core.episode import Action, EpisodeRecord, Observation, StepResult +from easi.tasks.lhpr_vln.actions import get_action_space +from easi.tasks.lhpr_vln.vendor.metrics import NavigationMetrics + + +class TestActionSpace: + def test_has_four_actions(self): + actions = get_action_space() + assert len(actions) == 4 + assert "move_forward" in actions + assert "turn_left" in actions + assert "turn_right" in actions + assert "stop" in actions + + +class TestNavigationMetrics: + """Verify vendored metrics compute correctly.""" + + def test_perfect_episode(self): + m = NavigationMetrics() + m.add_sample( + success=1, gt_step=10, path_step=10, oracle_success=1, + navigation_error=0.5, subtask_successes=[1, 1], + subtask_path_step=[5, 5], gt_length=[3.0, 4.0], + error_length=[0.3, 0.5], + ) + result = m.compute() + assert result["success_rate"] == 1.0 + assert result["oracle_success_rate"] == 1.0 + assert result["spl"] == 1.0 + assert result["independent_success_rate"] == 1.0 + + def test_failed_episode(self): + m = NavigationMetrics() + m.add_sample( + success=0, gt_step=10, path_step=50, oracle_success=0, + navigation_error=5.0, subtask_successes=[0, 0], + subtask_path_step=[5, 5], gt_length=[3.0, 4.0], + error_length=[3.0, 5.0], + ) + result = m.compute() + assert result["success_rate"] == 0.0 + assert result["spl"] == 0.0 + assert result["independent_success_rate"] == 0.0 + + def test_partial_success(self): + m = NavigationMetrics() + m.add_sample( + success=0, gt_step=30, path_step=45, oracle_success=0, + navigation_error=2.5, subtask_successes=[1, 0, 0], + subtask_path_step=[10, 10, 10], gt_length=[3.0, 5.0, 4.0], + error_length=[0.5, 3.0, 2.5], + ) + result = m.compute() + assert result["success_rate"] == 0.0 + assert result["independent_success_rate"] == pytest.approx(1/3, abs=0.01) + + def test_contest_score_formula(self): + m = NavigationMetrics() + m.add_sample( + success=1, gt_step=20, path_step=25, oracle_success=1, + navigation_error=0.5, subtask_successes=[1, 1], + subtask_path_step=[10, 10], gt_length=[5.0, 5.0], + error_length=[0.3, 0.5], + ) + result = m.compute() + score = 0.4 * result["tar"] + 0.2 * result["independent_success_rate"] + \ + 0.2 * result["conditional_success_rate"] + 0.2 * result["conditional_path_length"] + assert score > 0 + + +class TestLHPRVLNTask: + """Test task class without simulator.""" + + @pytest.fixture + def task(self): + """Create task with mocked config loading.""" + from easi.tasks.lhpr_vln.task import LHPRVLNTask + + mock_config = { + "name": "lhpr_vln_val", + "display_name": "LHPR-VLN Val", + "simulator": "habitat_sim:v0_3_0", + "task_class": "easi.tasks.lhpr_vln.task.LHPRVLNTask", + "max_steps": 500, + "dataset": {"source": "huggingface", "repo_id": "oscarqjh/LHPR-VLN_easi", "split": "val"}, + "simulator_configs": {}, + "agent": {"prompt_builder": "easi.tasks.lhpr_vln.prompts.LHPRVLNPromptBuilder"}, + } + task = LHPRVLNTask.__new__(LHPRVLNTask) + task._config = mock_config + task._yaml_path = None + task._action_space = None + return task + + def test_format_reset_config(self, task): + episode = { + "id": "batch_6_episode_0", + "instruction": "Find the chair then the table.", + "scene": "00706-abcdef", + "robot": "spot", + "objects": ["chair", "table"], + "regions": ["3", "5"], + "rooms": ["living room", "kitchen"], + "gt_steps": [40, 55], + "subtask_list": ["Move_to('chair_3')", "Move_to('table_5')"], + "num_targets": 2, + "batch": "batch_6", + "_data_dir": "/data/lhpr", + } + config = task.format_reset_config(episode) + assert config["scene_id"] == "00706-abcdef" + assert config["robot"] == "spot" + assert config["targets"] == ["chair", "table"] + assert config["regions"] == ["3", "5"] + assert config["gt_step"] == [40, 55] + + def test_evaluate_episode_empty_trajectory(self, task): + result = task.evaluate_episode({}, []) + assert result["task_success"] == 0.0 + assert result["num_steps"] == 0.0 + + def test_evaluate_episode_successful(self, task): + last_info = { + "task_success": 1.0, + "subtask_successes": "[1, 1]", + "subtask_oracle_successes": "[1, 1]", + "subtask_nav_errors": "[0.5, 0.3]", + "subtask_nav_steps": "[40, 55]", + "gt_steps": "[40, 55]", + "gt_paths": "[5.0, 8.0]", + } + obs = Observation(rgb_path="/tmp/step.png") + step = StepResult(observation=obs, done=True, info=last_info) + result = task.evaluate_episode({}, [step]) + assert result["task_success"] == 1.0 + assert result["spl"] == 1.0 + assert result["num_subtasks"] == 2.0 + + def test_aggregate_results_all_metrics(self, task): + records = [ + EpisodeRecord( + episode={}, trajectory=[], + episode_results={ + "task_success": 1.0, + "_subtask_successes": "[1, 1]", + "_subtask_oracle_successes": "[1, 1]", + "_subtask_nav_errors": "[0.5, 0.3]", + "_subtask_nav_steps": "[40, 55]", + "_gt_steps": "[40, 55]", + "_gt_paths": "[5.0, 8.0]", + }, + ), + ] + summary = task.aggregate_results(records) + # All 8 metrics present + for key in ["SR", "OSR", "SPL", "NE", "ISR", "CSR", "CGT", "TAR"]: + assert key in summary, f"Missing metric: {key}" + assert "contest_score" in summary + assert "num_episodes" in summary + assert summary["num_episodes"] == 1 + assert summary["SR"] == 1.0 + + +class TestPromptBuilder: + def test_build_messages_has_system_and_user(self): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = MagicMock() + memory.task_description = "Find the chair then the table." + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + memory.current_observation = Observation( + rgb_path="/tmp/test_front.png", + metadata={ + "subtask_stage": "0", "subtask_total": "2", "current_geo_distance": "5.3", + "left_rgb_path": "/tmp/test_left.png", + "front_rgb_path": "/tmp/test_front.png", + "right_rgb_path": "/tmp/test_right.png", + }, + ) + memory.action_history = [("move_forward", "Subtask 1/2: navigate to chair")] + # Mock the image encoding to avoid file I/O + import easi.tasks.lhpr_vln.prompts as prompts_mod + original_encode = prompts_mod._encode_image_base64 + prompts_mod._encode_image_base64 = lambda x: "data:image/png;base64,AAAA" + try: + messages = builder.build_messages(memory) + assert len(messages) == 2 + assert messages[0]["role"] == "system" + assert messages[1]["role"] == "user" + # Should have 3 image blocks (left, front, right) + text labels + user_content = messages[1]["content"] + image_blocks = [b for b in user_content if b.get("type") == "image_url"] + assert len(image_blocks) == 3 + finally: + prompts_mod._encode_image_base64 = original_encode + + def test_parse_response_json(self): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + actions = builder.parse_response('{"action": "turn_left"}', memory) + assert len(actions) == 1 + assert actions[0].action_name == "turn_left" + + def test_parse_response_fallback(self): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + actions = builder.parse_response("I should stop here.", memory) + assert actions[0].action_name == "stop" From 23fece5696203e0b1e7e271c14d87585ff2fda2d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 22:57:18 +0800 Subject: [PATCH 133/239] feat(lhpr-vln): align prompt builder with EmbodiedBench format + toggleable env feedback Rewrites the prompt builder to use the 4-field EmbodiedBench response schema (visual_state_description, reasoning_and_reflection, language_plan, executable_plan) with multi-action buffering and JSON schema enforcement via get_response_format(). LHPR-VLN-specific environmental feedback, each toggleable in _base.yaml: - use_feedback: action execution feedback in history - use_geo_distance: geodesic distance to current target - use_subtask_progress: subtask stage/total + current target name - use_agent_position: agent 3D position (off by default) - use_target_coordinate: target 3D coordinate (off by default) Also updates the bridge to expose all available simulator feedback (agent position, rotation, target coordinate, target name) in observation metadata, and increases max_tokens from 256 to 1024 for the richer response format. --- easi/tasks/lhpr_vln/_base.yaml | 11 +- easi/tasks/lhpr_vln/bridge.py | 46 +++- easi/tasks/lhpr_vln/prompts.py | 479 +++++++++++++++++++++++++++------ tests/test_lhpr_vln_task.py | 201 ++++++++++++-- 4 files changed, 617 insertions(+), 120 deletions(-) diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml index 6484acf..7be075e 100644 --- a/easi/tasks/lhpr_vln/_base.yaml +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -19,9 +19,14 @@ simulator_configs: agent: prompt_builder: "easi.tasks.lhpr_vln.prompts.LHPRVLNPromptBuilder" prompt_builder_kwargs: - use_feedback: true - chat_history: false + use_feedback: true # Include action execution feedback in history + use_geo_distance: true # Show geodesic distance to current target + use_subtask_progress: true # Show subtask stage/total + current target name + use_agent_position: false # Show agent 3D position (x, y, z) + use_target_coordinate: false # Show target 3D coordinate (x, y, z) + chat_history: false # Stateless (false) or accumulated messages (true) + message_window_len: 5 # Sliding window for chat history mode generation_kwargs: temperature: 0 - max_tokens: 256 + max_tokens: 1024 top_p: 0.95 diff --git a/easi/tasks/lhpr_vln/bridge.py b/easi/tasks/lhpr_vln/bridge.py index b00c52f..370bb01 100644 --- a/easi/tasks/lhpr_vln/bridge.py +++ b/easi/tasks/lhpr_vln/bridge.py @@ -157,15 +157,47 @@ def _make_response(self, obs, reward=0.0, done=False, info=None): clean_info = self._extract_info(info or {}) clean_info["step"] = str(self.step_count) + + # Build metadata with image paths + environmental feedback for prompt builder + metadata = { + "step": str(self.step_count), + "left_rgb_path": paths["left"], + "front_rgb_path": paths["front"], + "right_rgb_path": paths["right"], + } + + # Expose environmental feedback in metadata so the prompt builder can use it + sim = self._scene_sim + if sim is not None: + sim_info = sim.info or {} + metadata["subtask_stage"] = str(float(sim.stage)) + metadata["subtask_total"] = str(float(sim.target_num)) + metadata["current_geo_distance"] = str(float(sim_info.get("geo_dis", -1))) + metadata["current_target"] = str(sim_info.get("target", "")) + # Agent position/rotation + pos = sim_info.get("agent_position") + if pos is not None: + metadata["agent_position"] = json.dumps([float(x) for x in pos]) + rot = sim_info.get("agent_rotation") + if rot is not None: + metadata["agent_rotation"] = json.dumps([float(rot.w), float(rot.x), float(rot.y), float(rot.z)]) + # Target coordinate + coord = sim_info.get("target_coord") + if coord is not None: + metadata["target_coordinate"] = json.dumps([float(x) for x in coord]) + + # Build agent_pose from sim info + agent_pose = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + if sim is not None: + sim_info = sim.info or {} + pos = sim_info.get("agent_position") + if pos is not None: + agent_pose = [float(pos[0]), float(pos[1]), float(pos[2]), 0.0, 0.0, 0.0] + return make_observation_response( rgb_path=paths["front"], - agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - metadata={ - "step": str(self.step_count), - "left_rgb_path": paths["left"], - "front_rgb_path": paths["front"], - "right_rgb_path": paths["right"], - }, + agent_pose=agent_pose, + metadata=metadata, reward=reward, done=done, info=clean_info, diff --git a/easi/tasks/lhpr_vln/prompts.py b/easi/tasks/lhpr_vln/prompts.py index 2513bf1..d913479 100644 --- a/easi/tasks/lhpr_vln/prompts.py +++ b/easi/tasks/lhpr_vln/prompts.py @@ -1,10 +1,14 @@ """LHPR-VLN prompt builder for LLM-based navigation agents. +Aligned with the EmbodiedBench 4-field response format used by EB-Navigation, +EB-Habitat, and EB-Alfred, adapted for LHPR-VLN multi-subtask navigation. + Builds prompts with: -- Panoramic RGB observation (left + front + right concatenated) +- 3 RGB camera views (left -60deg, front 0deg, right +60deg) - Task instruction with subtask targets -- Current subtask progress (from observation metadata) -- Action history with distance feedback +- Toggleable environmental feedback (geodesic distance, subtask progress, + target name, agent position, target coordinate) +- Action history with execution feedback - 4-action space: move_forward, turn_left, turn_right, stop """ from __future__ import annotations @@ -12,110 +16,419 @@ import json from easi.agents.prompt_builder import _encode_image_base64, validate_action_name -from easi.core.episode import Action, Observation +from easi.core.episode import Action from easi.core.memory import AgentMemory from easi.utils.logging import get_logger logger = get_logger(__name__) -SYSTEM_PROMPT = """You are a navigation agent in a 3D indoor environment. You observe the environment through three camera views (left at -60°, front at 0°, right at +60°) and must navigate to sequential target objects. +# System prompt adapted for LHPR-VLN multi-subtask navigation. +# Three format placeholders: max_action_id, action_list, examples. +LHPRVLN_SYSTEM_PROMPT = '''## You are a robot navigating in a 3D indoor environment. You observe the environment through three camera views (left at -60 degrees, front at 0 degrees, right at +60 degrees) and must navigate to sequential target objects. + +## The available action id (0 ~ {}) and action names are: {}. + +*** Strategy *** + +1. Identify Target Objects: Clearly describe what you see in the three camera views. Look for the current target object or visual cues (room types, furniture, doorways) that indicate its likely location. + +2. Navigate using Move forward and Turn left/right as your main strategy, since any point can be reached through a combination of those. When planning movement, reason based on the target object location and obstacles around you. + +3. Multi-Subtask Navigation: This task has multiple sequential targets. After reaching one target, use "stop" to advance to the next subtask. Focus on the current target only. + +4. Use Stop Carefully: Only use "stop" when you are confident you are within 1 meter of the current target object. Do not stop too early. + +5. Efficient Exploration: If the target is not visible, explore by turning to survey the environment. Use the three camera views to gather spatial information before deciding which direction to move. + +{} -Your actions: -- move_forward: Move forward 0.25 meters -- turn_left: Turn left 30 degrees -- turn_right: Turn right 30 degrees -- stop: Declare current subtask complete (use when you believe you are within 1 meter of the current target) +---------- -Strategy: -- Navigate to each target object in order. After reaching one target, use "stop" to advance to the next. -- Use visual cues to identify rooms and objects. -- If you are far from the target, explore by turning to survey the environment, then move toward likely locations. -- Use "stop" only when you are confident you are close to the current target. +''' -Respond with ONLY a JSON object: {"action": ""}""" +# Output template matching EmbodiedBench format. +OUTPUT_TEMPLATE = "\n" \ +"The output json format should be {'visual_state_description':str, 'reasoning_and_reflection':str, 'language_plan':str, 'executable_plan':List[{'action_id':int, 'action_name':str}...]}\n" \ +"The fields in above JSON follows the purpose below:\n" \ +"1. visual_state_description is for description of current state from the three visual images (left, front, right views), \n" \ +"2. reasoning_and_reflection is for summarizing the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task, \n" \ +"3. language_plan is for describing a list of actions to achieve the user instruction. Each action is started by the step number and the action name, \n" \ +"4. executable_plan is a list of actions needed to achieve the user instruction, with each action having an action ID and a name.\n" \ +"5. keep your plan efficient and concise.\n" \ +"!!! When generating content for JSON strings, avoid using any contractions or abbreviated forms (like 's, 're, 've, 'll, 'd, n't) that use apostrophes. Instead, write out full forms (is, are, have, will, would, not) to prevent parsing errors in JSON. Please do not output any other thing more than the above-mentioned JSON, do not include ```json and ```!!!.\n" + +# JSON schema for API-level enforcement. +LHPRVLN_RESPONSE_SCHEMA = { + "type": "json_schema", + "json_schema": { + "name": "lhprvln_planning", + "schema": { + "type": "object", + "properties": { + "visual_state_description": { + "type": "string", + "description": "Description of current state from the three visual images (left, front, right camera views)", + }, + "reasoning_and_reflection": { + "type": "string", + "description": "Summarize the history of interactions and any available environmental feedback. Additionally, provide reasoning as to why the last action or plan failed and did not finish the task", + }, + "language_plan": { + "type": "string", + "description": "The list of actions to achieve the user instruction. Each action is started by the step number and the action name", + }, + "executable_plan": { + "type": "array", + "description": "A list of actions needed to achieve the user instruction, with each action having an action ID and a name. Do not output empty list.", + "items": { + "type": "object", + "properties": { + "action_id": { + "type": "integer", + "description": "The action ID to select from the available actions given by the prompt", + }, + "action_name": { + "type": "string", + "description": "The name of the action", + }, + }, + "required": ["action_id", "action_name"], + }, + }, + }, + "required": [ + "visual_state_description", + "reasoning_and_reflection", + "language_plan", + "executable_plan", + ], + }, + }, +} class LHPRVLNPromptBuilder: - """Prompt builder for LHPR-VLN navigation tasks.""" + """Prompt builder for LHPR-VLN navigation tasks. - def __init__(self, use_feedback: bool = True, chat_history: bool = False, **kwargs): - self._use_feedback = use_feedback - self._chat_history = chat_history + Matches the EmbodiedBench 4-field response format with LHPR-VLN-specific + environmental feedback toggles. Supports stateless and chat history modes. - def build_messages(self, memory: AgentMemory) -> list[dict]: - messages = [{"role": "system", "content": SYSTEM_PROMPT}] - - # Build user message with observation + task context - content = [] - - # Add 3 RGB views (left, front, right) as separate images - obs = memory.current_observation - if obs and obs.metadata: - for view_name, meta_key in [("Left view", "left_rgb_path"), - ("Front view", "front_rgb_path"), - ("Right view", "right_rgb_path")]: - path = obs.metadata.get(meta_key) - if path: - image_url = _encode_image_base64(path) - content.append({"type": "text", "text": f"[{view_name}]"}) - content.append({"type": "image_url", "image_url": {"url": image_url}}) - elif obs and obs.rgb_path: - # Fallback: single image (e.g., testing without full bridge) - image_url = _encode_image_base64(obs.rgb_path) - content.append({"type": "image_url", "image_url": {"url": image_url}}) + Environmental feedback toggles (all configurable in _base.yaml): + - use_feedback: Include action execution feedback in history + - use_geo_distance: Show geodesic distance to current target + - use_subtask_progress: Show subtask stage/total + current target name + - use_agent_position: Show agent 3D position + - use_target_coordinate: Show target 3D coordinate + """ - # Build text prompt - text_parts = [] + def __init__( + self, + use_feedback: bool = True, + use_geo_distance: bool = True, + use_subtask_progress: bool = True, + use_agent_position: bool = False, + use_target_coordinate: bool = False, + chat_history: bool = False, + message_window_len: int = 5, + **kwargs, + ): + self.use_feedback = use_feedback + self.use_geo_distance = use_geo_distance + self.use_subtask_progress = use_subtask_progress + self.use_agent_position = use_agent_position + self.use_target_coordinate = use_target_coordinate + self.chat_history = chat_history + self.message_window_len = message_window_len - # Task instruction - text_parts.append(f"Task: {memory.task_description}") + # Action space state + self._actions: list[str] = [] + self._action_str: str = "" + self._action_id_map: dict[str, int] = {} + self._id_action_map: dict[int, str] = {} - # Subtask progress from metadata - if obs and obs.metadata: - stage = obs.metadata.get("subtask_stage", "") - total = obs.metadata.get("subtask_total", "") - distance = obs.metadata.get("current_geo_distance", "") - if stage and total: - text_parts.append(f"Current subtask: {int(float(stage)) + 1}/{int(float(total))}") - if distance: - text_parts.append(f"Distance to current target: {float(distance):.1f}m") + def set_action_space(self, actions: list[str]) -> None: + """Update action space.""" + self._actions = list(actions) + self._action_str = self._build_action_list_str(actions) + self._action_id_map = {name: i for i, name in enumerate(actions)} + self._id_action_map = {i: name for i, name in enumerate(actions)} + + def action_name_to_id(self, name: str) -> int | None: + return self._action_id_map.get(name) + + def action_id_to_name(self, action_id: int) -> str | None: + return self._id_action_map.get(action_id) - # Action history with feedback - if self._use_feedback and memory.action_history: - history_lines = [] - for action_name, feedback in memory.action_history[-10:]: # last 10 steps - history_lines.append(f" {action_name} → {feedback}") - text_parts.append("Recent actions:\n" + "\n".join(history_lines)) + @staticmethod + def _build_action_list_str(actions: list[str]) -> str: + parts = '' + for i in range(len(actions)): + parts += '\naction id ' + str(i) + ': ' + str(actions[i]) + if i < len(actions) - 1: + parts += ', ' + return parts - # Available actions - text_parts.append(f"Available actions: {', '.join(memory.action_space)}") - text_parts.append('Respond with a JSON object: {"action": ""}') + # ---- PromptBuilderProtocol methods ---- - content.append({"type": "text", "text": "\n\n".join(text_parts)}) - messages.append({"role": "user", "content": content}) + def build_messages(self, memory: AgentMemory) -> list[dict]: + if not self._action_id_map or self._actions != memory.action_space: + self.set_action_space(memory.action_space) - return messages + if self.chat_history: + return self._build_chat_history_messages(memory) + else: + return self._build_stateless_messages(memory) def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: - """Parse LLM response into a single Action.""" + """Parse LLM response into validated actions.""" + from easi.utils.json_repair import fix_json + llm_response = fix_json(llm_response) + try: - # Try JSON parse - response = json.loads(llm_response.strip()) - action_name = response.get("action", "move_forward") - except (json.JSONDecodeError, AttributeError): - # Fallback: look for action name in response text - response_lower = llm_response.lower() - if "stop" in response_lower: - action_name = "stop" - elif "turn_left" in response_lower or "left" in response_lower: - action_name = "turn_left" - elif "turn_right" in response_lower or "right" in response_lower: - action_name = "turn_right" + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + + if "action_id" in entry: + action_id = entry["action_id"] + action_name = self.action_id_to_name(action_id) + if action_name is None: + action_name = entry.get("action_name", "") else: - action_name = "move_forward" + action_name = entry.get("action", entry.get("action_name", "")) - validated = validate_action_name(action_name, memory.action_space) - return [Action(action_name=validated)] + validated = validate_action_name(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions def get_response_format(self, memory: AgentMemory) -> dict: - return {} + return LHPRVLN_RESPONSE_SCHEMA + + # ---- Stateless mode ---- + + def _build_stateless_messages(self, memory: AgentMemory) -> list[dict]: + prompt = self._build_prompt_text( + memory.task_description, memory.action_history, + memory.current_observation, + ) + return self._wrap_as_user_message(prompt, memory.current_observation) + + def _build_prompt_text( + self, + task_description: str, + action_history: list[tuple[str, str]], + observation=None, + ) -> str: + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + prompt = LHPRVLN_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## Now the human instruction is: {user_instruction}.' + + # Add environmental feedback section + env_feedback = self._format_env_feedback(observation) + if env_feedback: + prompt += env_feedback + + if len(action_history) == 0: + prompt += self._make_first_prompt_suffix(max_id) + else: + prompt += self._format_action_history(action_history) + prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" + + return prompt + + # ---- Chat history mode ---- + + def _build_chat_history_messages(self, memory: AgentMemory) -> list[dict]: + if memory.is_first_turn: + return self._build_stateless_messages(memory) + + messages: list[dict] = [] + + for step_idx, step in enumerate(memory.steps): + if step.llm_response is None: + continue + + if step_idx == 0: + history_up_to = [] + else: + history_up_to = [ + (s.action.action_name, s.feedback) + for s in memory.steps[:step_idx] + if s.action and s.feedback is not None + ] + + if step_idx == 0: + prompt = self._build_prompt_text( + memory.task_description, [], step.observation, + ) + else: + prompt = self._build_chat_subsequent_prompt( + memory.task_description, history_up_to, step.observation, + ) + + messages.extend( + self._wrap_as_user_message(prompt, step.observation) + ) + messages.append({ + "role": "assistant", + "content": [{"type": "text", "text": step.llm_response}], + }) + + # Current turn + all_history = memory.action_history + current_prompt = self._build_chat_subsequent_prompt( + memory.task_description, all_history, memory.current_observation, + ) + messages.extend( + self._wrap_as_user_message(current_prompt, memory.current_observation) + ) + + return messages[-self.message_window_len:] + + def _build_chat_subsequent_prompt( + self, + task_description: str, + action_history: list[tuple[str, str]], + observation=None, + ) -> str: + user_instruction = task_description.rstrip('.') + max_id = len(self._actions) - 1 + + prompt = LHPRVLN_SYSTEM_PROMPT.format( + max_id, self._action_str, '', + ) + + prompt += f'\n\n## The human instruction is: {user_instruction}.' + + env_feedback = self._format_env_feedback(observation) + if env_feedback: + prompt += env_feedback + + prompt += self._format_action_history(action_history) + prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" + + return prompt + + # ---- Helpers ---- + + def _format_env_feedback(self, observation) -> str: + """Format toggleable environmental feedback from observation metadata.""" + if observation is None or not observation.metadata: + return "" + + meta = observation.metadata + parts = [] + + if self.use_subtask_progress: + stage = meta.get("subtask_stage", "") + total = meta.get("subtask_total", "") + target = meta.get("current_target", "") + if stage and total: + stage_int = int(float(stage)) + 1 + total_int = int(float(total)) + line = f"Current subtask: {stage_int}/{total_int}" + if target: + line += f", target object: {target}" + parts.append(line) + + if self.use_geo_distance: + distance = meta.get("current_geo_distance", "") + if distance: + parts.append(f"Geodesic distance to current target: {float(distance):.2f}m") + + if self.use_agent_position: + pos_str = meta.get("agent_position", "") + if pos_str: + pos = json.loads(pos_str) + parts.append(f"Agent position (x, y, z): ({pos[0]:.2f}, {pos[1]:.2f}, {pos[2]:.2f})") + + if self.use_target_coordinate: + coord_str = meta.get("target_coordinate", "") + if coord_str: + coord = json.loads(coord_str) + parts.append(f"Target coordinate (x, y, z): ({coord[0]:.2f}, {coord[1]:.2f}, {coord[2]:.2f})") + + if not parts: + return "" + + return "\n\n## Environmental Feedback:\n" + "\n".join(parts) + + def _make_first_prompt_suffix(self, max_id: int) -> str: + return ( + f'''\nTo achieve the task, 1. Reason about the current visual state from the three camera views and your final goal, and 2. Reflect on the effect of previous actions.''' + f'''\nAim for about 1-3 actions in this step. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' + f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' + f'''\n\nThe input given to you is three first person view observations (left, front, right). Plan accordingly based on the visual observations.''' + f'''\n\nYou are supposed to output in JSON.{OUTPUT_TEMPLATE}''' + ) + + def _make_following_prompt_suffix(self, max_id: int) -> str: + return ( + f'''\nTo achieve the task, 1. Reason about the current visual state from the three camera views and your final goal, and 2. Reflect on the effect of previous actions.''' + f'''\nAim for about 3-5 actions in this step to be closer to the target object. !!!Notice: you cannot assess the situation until the whole plan in this planning step is finished executed, so plan accordingly.''' + f'''\nAt last, output the action id(s) (0 ~ {max_id}) from the available actions to execute. ''' + f'''\n\nThe input given to you is three first person view observations (left, front, right). Plan accordingly based on the visual observations.''' + f'''\n\nYou are supposed to output in JSON.{OUTPUT_TEMPLATE}''' + ) + + def _format_action_history(self, action_history: list[tuple[str, str]]) -> str: + text = '\n\n The action history:' + for i, (action_name, feedback) in enumerate(action_history): + action_id = self._action_id_map.get(action_name, -1) + if self.use_feedback: + text += '\n Step {}, action id {}, {}, env feedback: {}'.format( + i, action_id, action_name, feedback, + ) + else: + text += '\n Step {}, action id {}, {}'.format( + i, action_id, action_name, + ) + return text + + def _wrap_as_user_message(self, prompt: str, observation) -> list[dict]: + """Wrap prompt text + observation images as a user message. + + For LHPR-VLN: 3 images (left, front, right) BEFORE text. + """ + content: list[dict] = [] + + # Add 3 RGB views as separate images + if observation and observation.metadata: + for view_label, meta_key in [("Left view (-60 deg)", "left_rgb_path"), + ("Front view (0 deg)", "front_rgb_path"), + ("Right view (+60 deg)", "right_rgb_path")]: + path = observation.metadata.get(meta_key) + if path: + image_url = _encode_image_base64(path) + if image_url: + content.append({"type": "text", "text": f"[{view_label}]"}) + content.append({"type": "image_url", "image_url": {"url": image_url}}) + elif observation and observation.rgb_path: + # Fallback: single image (e.g., testing without full bridge) + image_url = _encode_image_base64(observation.rgb_path) + if image_url: + content.append({"type": "image_url", "image_url": {"url": image_url}}) + + content.append({"type": "text", "text": prompt}) + return [{"role": "user", "content": content}] diff --git a/tests/test_lhpr_vln_task.py b/tests/test_lhpr_vln_task.py index 6cd2044..1e8c74a 100644 --- a/tests/test_lhpr_vln_task.py +++ b/tests/test_lhpr_vln_task.py @@ -168,51 +168,198 @@ def test_aggregate_results_all_metrics(self, task): class TestPromptBuilder: - def test_build_messages_has_system_and_user(self): - from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder - builder = LHPRVLNPromptBuilder() + @pytest.fixture + def mock_encode(self): + """Mock image encoding to avoid file I/O.""" + import easi.tasks.lhpr_vln.prompts as prompts_mod + original = prompts_mod._encode_image_base64 + prompts_mod._encode_image_base64 = lambda x: "data:image/png;base64,AAAA" + yield + prompts_mod._encode_image_base64 = original + + def _make_memory(self, action_history=None): memory = MagicMock() memory.task_description = "Find the chair then the table." memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + memory.is_first_turn = (action_history is None or len(action_history) == 0) memory.current_observation = Observation( rgb_path="/tmp/test_front.png", metadata={ - "subtask_stage": "0", "subtask_total": "2", "current_geo_distance": "5.3", + "subtask_stage": "0", "subtask_total": "2", + "current_geo_distance": "5.3", + "current_target": "chair", "left_rgb_path": "/tmp/test_left.png", "front_rgb_path": "/tmp/test_front.png", "right_rgb_path": "/tmp/test_right.png", + "agent_position": "[1.5, 0.0, -3.2]", + "target_coordinate": "[4.1, 0.0, -1.8]", }, ) - memory.action_history = [("move_forward", "Subtask 1/2: navigate to chair")] - # Mock the image encoding to avoid file I/O - import easi.tasks.lhpr_vln.prompts as prompts_mod - original_encode = prompts_mod._encode_image_base64 - prompts_mod._encode_image_base64 = lambda x: "data:image/png;base64,AAAA" - try: - messages = builder.build_messages(memory) - assert len(messages) == 2 - assert messages[0]["role"] == "system" - assert messages[1]["role"] == "user" - # Should have 3 image blocks (left, front, right) + text labels - user_content = messages[1]["content"] - image_blocks = [b for b in user_content if b.get("type") == "image_url"] - assert len(image_blocks) == 3 - finally: - prompts_mod._encode_image_base64 = original_encode - - def test_parse_response_json(self): + memory.action_history = action_history or [] + memory.steps = [] + return memory + + def test_build_messages_single_user_message(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + assert len(messages) == 1 + assert messages[0]["role"] == "user" + # Should have 3 image blocks + 3 text labels + 1 prompt text + user_content = messages[0]["content"] + image_blocks = [b for b in user_content if b.get("type") == "image_url"] + assert len(image_blocks) == 3 + + def test_prompt_contains_env_feedback(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + text_blocks = [b["text"] for b in messages[0]["content"] if b.get("type") == "text"] + prompt_text = "\n".join(text_blocks) + assert "Current subtask: 1/2" in prompt_text + assert "target object: chair" in prompt_text + assert "Geodesic distance" in prompt_text + assert "5.30m" in prompt_text + + def test_agent_position_toggle(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + # Off by default + builder = LHPRVLNPromptBuilder(use_agent_position=False) + memory = self._make_memory() + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Agent position" not in text + # On + builder = LHPRVLNPromptBuilder(use_agent_position=True) + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Agent position" in text + assert "1.50" in text + + def test_target_coordinate_toggle(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + # Off by default + builder = LHPRVLNPromptBuilder(use_target_coordinate=False) + memory = self._make_memory() + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Target coordinate" not in text + # On + builder = LHPRVLNPromptBuilder(use_target_coordinate=True) + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Target coordinate" in text + assert "4.10" in text + + def test_geo_distance_toggle(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder(use_geo_distance=False) + memory = self._make_memory() + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Geodesic distance" not in text + + def test_subtask_progress_toggle(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder(use_subtask_progress=False) + memory = self._make_memory() + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "Current subtask" not in text + + def test_action_history_with_feedback(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = self._make_memory( + action_history=[("move_forward", "Subtask 1/2: navigate to chair. Distance: 5.3m")] + ) + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "action history" in text + assert "env feedback:" in text + assert "move_forward" in text + + def test_action_history_without_feedback(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder(use_feedback=False) + memory = self._make_memory( + action_history=[("move_forward", "Subtask 1/2: navigate to chair")] + ) + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "action history" in text + assert "env feedback:" not in text + + def test_parse_response_executable_plan(self): from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder builder = LHPRVLNPromptBuilder() memory = MagicMock() memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] - actions = builder.parse_response('{"action": "turn_left"}', memory) - assert len(actions) == 1 - assert actions[0].action_name == "turn_left" + response = json.dumps({ + "visual_state_description": "I see a hallway", + "reasoning_and_reflection": "Need to move forward", + "language_plan": "Step 1: move forward", + "executable_plan": [ + {"action_id": 0, "action_name": "move_forward"}, + {"action_id": 1, "action_name": "turn_left"}, + ], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 2 + assert actions[0].action_name == "move_forward" + assert actions[1].action_name == "turn_left" - def test_parse_response_fallback(self): + def test_parse_response_action_id_lookup(self): from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder builder = LHPRVLNPromptBuilder() memory = MagicMock() memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] - actions = builder.parse_response("I should stop here.", memory) + builder.set_action_space(memory.action_space) + # action_id 3 = "stop" + response = json.dumps({ + "visual_state_description": "Close to target", + "reasoning_and_reflection": "Within range", + "language_plan": "Step 1: stop", + "executable_plan": [{"action_id": 3, "action_name": "stop"}], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 assert actions[0].action_name == "stop" + + def test_parse_response_invalid_json(self): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + actions = builder.parse_response("not valid json at all", memory) + assert actions == [] + + def test_get_response_format_returns_schema(self): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + memory = MagicMock() + schema = builder.get_response_format(memory) + assert schema["type"] == "json_schema" + props = schema["json_schema"]["schema"]["properties"] + assert "visual_state_description" in props + assert "reasoning_and_reflection" in props + assert "language_plan" in props + assert "executable_plan" in props + + def test_first_turn_vs_subsequent_action_count(self, mock_encode): + from easi.tasks.lhpr_vln.prompts import LHPRVLNPromptBuilder + builder = LHPRVLNPromptBuilder() + # First turn: "1-3 actions" + memory = self._make_memory() + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "1-3 actions" in text + # Subsequent turn: "3-5 actions" + memory = self._make_memory( + action_history=[("move_forward", "ok")] + ) + messages = builder.build_messages(memory) + text = "\n".join(b["text"] for b in messages[0]["content"] if b.get("type") == "text") + assert "3-5 actions" in text From a483a615dfe43448cd6a8e29ced52bf461026124 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 23:28:43 +0800 Subject: [PATCH 134/239] fix: add hf_data_dir support to prevent HM3D scene files from polluting dataset splits The datasets library scans all files in the repo directory, including extracted HM3D scene JSON files in hm3d/train/ and hm3d/val/. This created bogus splits with 96k+ rows instead of the actual 444 episodes. Adds hf_data_dir config option to dataset YAML, passed through to load_dataset(data_dir=...) to restrict scanning to the data/ subdirectory. Also fixes val split name: HF auto-maps val.jsonl to "validation" not "val". --- easi/core/base_task.py | 13 ++++++++++--- easi/tasks/lhpr_vln/_base.yaml | 1 + easi/tasks/lhpr_vln/lhpr_vln_val.yaml | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/easi/core/base_task.py b/easi/core/base_task.py index cb5970f..27ed4bc 100644 --- a/easi/core/base_task.py +++ b/easi/core/base_task.py @@ -277,6 +277,11 @@ def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: subset = dataset_config.get("subset") split_name = dataset_config.get("split") + # hf_data_dir restricts which subdirectory the datasets library + # scans for data files. Useful when the repo also contains large + # non-episode files (e.g. scene meshes) that would confuse auto- + # detection. + hf_data_dir = dataset_config.get("hf_data_dir") try: from datasets import ( @@ -294,7 +299,7 @@ def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: # Auto-detect subset if not specified if subset is None: - configs = get_dataset_config_names(local_path) + configs = get_dataset_config_names(local_path, data_dir=hf_data_dir) if len(configs) == 1: subset = configs[0] logger.info("Auto-detected single subset: %s", subset) @@ -308,7 +313,9 @@ def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: # Auto-detect split if not specified if split_name is None: - splits = get_dataset_split_names(local_path, subset) + splits = get_dataset_split_names( + local_path, subset, data_dir=hf_data_dir, + ) if len(splits) == 1: split_name = splits[0] logger.info("Auto-detected single split: %s", split_name) @@ -327,7 +334,7 @@ def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: import tempfile hf_cache = Path(tempfile.gettempdir()) / "easi_hf_cache" ds = load_dataset(local_path, subset, split=split_name, - cache_dir=str(hf_cache)) + data_dir=hf_data_dir, cache_dir=str(hf_cache)) episodes = [hf_row_to_episode(row) for row in ds] for ep in episodes: diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml index 7be075e..77c2a69 100644 --- a/easi/tasks/lhpr_vln/_base.yaml +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -7,6 +7,7 @@ dataset: source: huggingface repo_id: "oscarqjh/LHPR-VLN_easi" subset: null + hf_data_dir: "data" zip_files: - "hm3d_v0.2_lhpr_scenes.zip" simulator_configs: diff --git a/easi/tasks/lhpr_vln/lhpr_vln_val.yaml b/easi/tasks/lhpr_vln/lhpr_vln_val.yaml index a9c24df..d4fb23e 100644 --- a/easi/tasks/lhpr_vln/lhpr_vln_val.yaml +++ b/easi/tasks/lhpr_vln/lhpr_vln_val.yaml @@ -3,4 +3,4 @@ name: lhpr_vln_val display_name: "LHPR-VLN Val" description: "LHPR-VLN validation split (batch_6)" dataset: - split: "val" + split: "validation" From a85ed84c7b5336fc92387e4a6d9ba44578862f39 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 23:35:00 +0800 Subject: [PATCH 135/239] fix(lhpr-vln): add future annotations for Python 3.9 compatibility The bridge runs in the habitat-sim conda env (Python 3.9) where list[int] | None union syntax is not supported at runtime. --- easi/tasks/lhpr_vln/vendor/scene_simulator.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easi/tasks/lhpr_vln/vendor/scene_simulator.py b/easi/tasks/lhpr_vln/vendor/scene_simulator.py index 9e1096c..505f6c3 100644 --- a/easi/tasks/lhpr_vln/vendor/scene_simulator.py +++ b/easi/tasks/lhpr_vln/vendor/scene_simulator.py @@ -4,6 +4,8 @@ Original creates a new habitat_sim.Simulator per episode, computes geodesic distances, and tracks multi-subtask stage/success/oracle state. """ +from __future__ import annotations + import math import habitat_sim From 4665fa92ba193a95b5bae8ba8f62d8a1d9898063 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 3 Mar 2026 23:57:46 +0800 Subject: [PATCH 136/239] fix(lhpr-vln): use software rendering by default (gpu_device_id: -1) Matches EB-Habitat's approach: gpu_device_id=-1 tells Habitat-Sim to use Mesa llvmpipe software rendering instead of requiring a CUDA GPU. Removes bridge code that was forcing -1 back to 0. --- easi/tasks/lhpr_vln/_base.yaml | 2 +- easi/tasks/lhpr_vln/bridge.py | 4 +--- easi/tasks/lhpr_vln/vendor/scene_config.py | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml index 77c2a69..5847e0c 100644 --- a/easi/tasks/lhpr_vln/_base.yaml +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -14,7 +14,7 @@ simulator_configs: render_platform: auto screen_height: 512 screen_width: 512 - gpu_device_id: 0 + gpu_device_id: -1 success_distance: 1.0 additional_deps: [] agent: diff --git a/easi/tasks/lhpr_vln/bridge.py b/easi/tasks/lhpr_vln/bridge.py index 370bb01..8ac78e6 100644 --- a/easi/tasks/lhpr_vln/bridge.py +++ b/easi/tasks/lhpr_vln/bridge.py @@ -62,9 +62,7 @@ def _on_reset(self, env, reset_config): regions = json.loads(reset_config["regions"]) if isinstance(reset_config["regions"], str) else reset_config["regions"] gt_step = json.loads(reset_config.get("gt_step", "[]")) if isinstance(reset_config.get("gt_step"), str) else reset_config.get("gt_step") - gpu_device_id = self._sim_kwargs.get("gpu_device_id", 0) - if gpu_device_id < 0: - gpu_device_id = 0 # Habitat-Sim needs a real GPU ID + gpu_device_id = self._sim_kwargs.get("gpu_device_id", -1) max_steps = self._sim_kwargs.get("max_steps", 500) width = self._sim_kwargs.get("screen_width", 512) height = self._sim_kwargs.get("screen_height", 512) diff --git a/easi/tasks/lhpr_vln/vendor/scene_config.py b/easi/tasks/lhpr_vln/vendor/scene_config.py index c3ded8d..1f1cbcc 100644 --- a/easi/tasks/lhpr_vln/vendor/scene_config.py +++ b/easi/tasks/lhpr_vln/vendor/scene_config.py @@ -32,7 +32,7 @@ def make_setting(scene_path: str, scene_dataset_path: str, robot: str, } -def make_cfg(settings: dict, gpu_device_id: int = 0) -> habitat_sim.Configuration: +def make_cfg(settings: dict, gpu_device_id: int = -1) -> habitat_sim.Configuration: """Build Habitat-Sim Configuration from settings dict.""" sim_cfg = habitat_sim.SimulatorConfiguration() sim_cfg.gpu_device_id = gpu_device_id From 0c32911028ac5ea531f79333f54ee33c519c0fce Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 00:03:01 +0800 Subject: [PATCH 137/239] fix(lhpr-vln): clarify that stop advances subtask, not ends episode Make the system prompt explicit about the multi-subtask stop semantics: stop marks current subtask complete and advances to the next target, does not end the episode until all targets are visited. --- easi/tasks/lhpr_vln/prompts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/tasks/lhpr_vln/prompts.py b/easi/tasks/lhpr_vln/prompts.py index d913479..cff541c 100644 --- a/easi/tasks/lhpr_vln/prompts.py +++ b/easi/tasks/lhpr_vln/prompts.py @@ -34,9 +34,9 @@ 2. Navigate using Move forward and Turn left/right as your main strategy, since any point can be reached through a combination of those. When planning movement, reason based on the target object location and obstacles around you. -3. Multi-Subtask Navigation: This task has multiple sequential targets. After reaching one target, use "stop" to advance to the next subtask. Focus on the current target only. +3. Multi-Subtask Navigation: This task requires you to navigate to multiple target objects in sequence. The "stop" action does NOT end the episode — it marks the CURRENT subtask as complete and advances you to the NEXT target. You must use "stop" once for each target. The episode only ends after you have used "stop" for every target. -4. Use Stop Carefully: Only use "stop" when you are confident you are within 1 meter of the current target object. Do not stop too early. +4. Use Stop Carefully: Only use "stop" when you are confident you are within 1 meter of the current target object. Using "stop" too far from the target will mark that subtask as failed, but the episode will still continue to the next target. Do not use "stop" too early — try to get as close as possible first. 5. Efficient Exploration: If the target is not visible, explore by turning to survey the environment. Use the three camera views to gather spatial information before deciding which direction to move. From eec28bd4ab0f09a2b30036bca054838a697ed183 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 09:00:22 +0800 Subject: [PATCH 138/239] feat: add configurable action_history_len to LHPR-VLN prompt builder Adds action_history_len parameter to control action history display: 0 = off (no history header or entries shown) -1 = unlimited (show all, default) N>0 = show last N entries --- easi/tasks/lhpr_vln/_base.yaml | 3 ++- easi/tasks/lhpr_vln/prompts.py | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml index 5847e0c..54e43fa 100644 --- a/easi/tasks/lhpr_vln/_base.yaml +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -25,9 +25,10 @@ agent: use_subtask_progress: true # Show subtask stage/total + current target name use_agent_position: false # Show agent 3D position (x, y, z) use_target_coordinate: false # Show target 3D coordinate (x, y, z) + action_history_len: -1 # Action history entries: 0=off, -1=unlimited, N=last N chat_history: false # Stateless (false) or accumulated messages (true) message_window_len: 5 # Sliding window for chat history mode generation_kwargs: temperature: 0 - max_tokens: 1024 + max_tokens: 4096 top_p: 0.95 diff --git a/easi/tasks/lhpr_vln/prompts.py b/easi/tasks/lhpr_vln/prompts.py index cff541c..8be3ceb 100644 --- a/easi/tasks/lhpr_vln/prompts.py +++ b/easi/tasks/lhpr_vln/prompts.py @@ -128,6 +128,7 @@ def __init__( use_subtask_progress: bool = True, use_agent_position: bool = False, use_target_coordinate: bool = False, + action_history_len: int = -1, chat_history: bool = False, message_window_len: int = 5, **kwargs, @@ -137,6 +138,7 @@ def __init__( self.use_subtask_progress = use_subtask_progress self.use_agent_position = use_agent_position self.use_target_coordinate = use_target_coordinate + self.action_history_len = action_history_len self.chat_history = chat_history self.message_window_len = message_window_len @@ -252,7 +254,9 @@ def _build_prompt_text( if len(action_history) == 0: prompt += self._make_first_prompt_suffix(max_id) else: - prompt += self._format_action_history(action_history) + history_text = self._format_action_history(action_history) + if history_text: + prompt += history_text prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" return prompt @@ -325,7 +329,9 @@ def _build_chat_subsequent_prompt( if env_feedback: prompt += env_feedback - prompt += self._format_action_history(action_history) + history_text = self._format_action_history(action_history) + if history_text: + prompt += history_text prompt += f"\n\n{self._make_following_prompt_suffix(max_id)}" return prompt @@ -393,6 +399,10 @@ def _make_following_prompt_suffix(self, max_id: int) -> str: ) def _format_action_history(self, action_history: list[tuple[str, str]]) -> str: + if self.action_history_len == 0: + return "" + if self.action_history_len > 0: + action_history = action_history[-self.action_history_len:] text = '\n\n The action history:' for i, (action_name, feedback) in enumerate(action_history): action_id = self._action_id_map.get(action_name, -1) From f6ae0169fe5e0f72e438e3e168f38bd6bb477685 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 10:30:03 +0800 Subject: [PATCH 139/239] fix(lhpr-vln): improved prompt --- easi/tasks/lhpr_vln/prompts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/tasks/lhpr_vln/prompts.py b/easi/tasks/lhpr_vln/prompts.py index 8be3ceb..e4064df 100644 --- a/easi/tasks/lhpr_vln/prompts.py +++ b/easi/tasks/lhpr_vln/prompts.py @@ -36,9 +36,9 @@ 3. Multi-Subtask Navigation: This task requires you to navigate to multiple target objects in sequence. The "stop" action does NOT end the episode — it marks the CURRENT subtask as complete and advances you to the NEXT target. You must use "stop" once for each target. The episode only ends after you have used "stop" for every target. -4. Use Stop Carefully: Only use "stop" when you are confident you are within 1 meter of the current target object. Using "stop" too far from the target will mark that subtask as failed, but the episode will still continue to the next target. Do not use "stop" too early — try to get as close as possible first. +4. Use Stop Carefully: Only use "stop" when you are confident you are within 1 meter of the current target object. Using "stop" too far from the target will mark that subtask as failed, but the episode will still continue to the next target. -5. Efficient Exploration: If the target is not visible, explore by turning to survey the environment. Use the three camera views to gather spatial information before deciding which direction to move. +5. Efficient Exploration: If the target is not visible, explore by turning to survey the environment. Use the three camera views to gather spatial information before deciding which direction to move. When close to the target, you can choose to take lesser actions each step to finetune your trajectories, for example taking 1 action at a time when you are 2m away from target and only use stop when you are less than 1m away from the target. {} From 83a7211dedbbd3e6ed576b5812702d20f99fb2bd Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 10:47:09 +0800 Subject: [PATCH 140/239] fix(lhpr-vln): updated action history len --- easi/tasks/lhpr_vln/_base.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easi/tasks/lhpr_vln/_base.yaml b/easi/tasks/lhpr_vln/_base.yaml index 54e43fa..b9f6c51 100644 --- a/easi/tasks/lhpr_vln/_base.yaml +++ b/easi/tasks/lhpr_vln/_base.yaml @@ -25,7 +25,7 @@ agent: use_subtask_progress: true # Show subtask stage/total + current target name use_agent_position: false # Show agent 3D position (x, y, z) use_target_coordinate: false # Show target 3D coordinate (x, y, z) - action_history_len: -1 # Action history entries: 0=off, -1=unlimited, N=last N + action_history_len: 20 # Action history entries: 0=off, -1=unlimited, N=last N chat_history: false # Stateless (false) or accumulated messages (true) message_window_len: 5 # Sliding window for chat history mode generation_kwargs: From 369f1a66722e1b87e2a941af05ca1d6341847f18 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 11:14:31 +0800 Subject: [PATCH 141/239] feat: add robot-type grouping and action_history_len to LHPR-VLN Aggregate results now return nested dicts grouped by robot type (base/spot/stretch), each with all 8 official metrics + contest_score. Also adds action_history_len config (0=off, -1=unlimited, N=last N) to control how many action history entries appear in prompts. --- easi/tasks/lhpr_vln/task.py | 54 ++++++++++++++++++++++--------------- tests/test_lhpr_vln_task.py | 53 +++++++++++++++++++++++++++++++----- 2 files changed, 79 insertions(+), 28 deletions(-) diff --git a/easi/tasks/lhpr_vln/task.py b/easi/tasks/lhpr_vln/task.py index d51be13..ee08b0b 100644 --- a/easi/tasks/lhpr_vln/task.py +++ b/easi/tasks/lhpr_vln/task.py @@ -108,25 +108,46 @@ def evaluate_episode( "_gt_paths": json.dumps(gt_paths), } - def aggregate_results( - self, records: list[EpisodeRecord] - ) -> dict[str, float]: + def aggregate_results(self, records: list[EpisodeRecord]) -> dict: """Compute all 8 LHPR-VLN metrics using vendored NavigationMetrics. + Returns nested dict grouped by robot type: + - base: all episodes + - spot: Spot robot episodes only + - stretch: Stretch robot episodes only + Metric definitions (from CVPR-25 paper): - - SR: Success Rate (all subtasks completed) - - OSR: Oracle Success Rate (agent ever passed within 1m of all targets) - - SPL: Success weighted by Path Length - - NE: Navigation Error (avg geodesic distance at stop) - - ISR: Independent Success Rate (fraction of subtasks succeeded) - - CSR: Conditional Success Rate (sequential dependency weighting) - - CGT: CSR weighted by GT path length - - TAR: Target Approach Rate (continuous approach measure) - - contest_score: 0.4*TAR + 0.2*ISR + 0.2*CSR + 0.2*CGT + - SR, OSR, SPL, NE, ISR, CSR, CGT, TAR, contest_score """ if not records: return {} + # Group records by robot type + groups: dict[str, list[EpisodeRecord]] = {} + for r in records: + robot = r.episode.get("robot", "spot") + groups.setdefault(robot, []).append(r) + + output: dict = {} + + # Base group: all episodes + base = self._compute_group_metrics(records) + base["num_episodes"] = len(records) + base["success_rate"] = base["SR"] + output["base"] = base + + # Per-robot groups + for robot_type, group_records in sorted(groups.items()): + group = self._compute_group_metrics(group_records) + group["num_episodes"] = len(group_records) + output[robot_type] = group + + return output + + def _compute_group_metrics( + self, records: list[EpisodeRecord] + ) -> dict[str, float]: + """Compute LHPR-VLN metrics for a group of records.""" metrics = NavigationMetrics() for r in records: @@ -138,15 +159,10 @@ def aggregate_results( gt_steps = json.loads(er.get("_gt_steps", "[]")) gt_paths = json.loads(er.get("_gt_paths", "[]")) - # Overall success success = 1 if successes and all(s == 1 for s in successes) else 0 oracle_success = 1 if oracle_successes and all(s == 1 for s in oracle_successes) else 0 - - # Total steps total_gt = sum(gt_steps) if gt_steps else 0 total_actual = sum(nav_steps) if nav_steps else 0 - - # Avg navigation error avg_ne = sum(nav_errors) / len(nav_errors) if nav_errors else 0.0 metrics.add_sample( @@ -163,7 +179,6 @@ def aggregate_results( result = metrics.compute() - # Add contest ranking score tar = result.get("tar", 0) isr = result.get("independent_success_rate", 0) csr = result.get("conditional_success_rate", 0) @@ -180,9 +195,6 @@ def aggregate_results( "CGT": round(result["conditional_path_length"], 4), "TAR": round(result["tar"], 4), "contest_score": round(contest_score, 4), - "num_episodes": len(records), - # Convenience alias for EASI dashboard - "success_rate": round(result["success_rate"], 4), } def _empty_metrics(self) -> dict[str, float]: diff --git a/tests/test_lhpr_vln_task.py b/tests/test_lhpr_vln_task.py index 1e8c74a..ce6478e 100644 --- a/tests/test_lhpr_vln_task.py +++ b/tests/test_lhpr_vln_task.py @@ -145,7 +145,7 @@ def test_evaluate_episode_successful(self, task): def test_aggregate_results_all_metrics(self, task): records = [ EpisodeRecord( - episode={}, trajectory=[], + episode={"robot": "spot"}, trajectory=[], episode_results={ "task_success": 1.0, "_subtask_successes": "[1, 1]", @@ -158,13 +158,52 @@ def test_aggregate_results_all_metrics(self, task): ), ] summary = task.aggregate_results(records) - # All 8 metrics present + # Nested structure with "base" group + assert "base" in summary + base = summary["base"] for key in ["SR", "OSR", "SPL", "NE", "ISR", "CSR", "CGT", "TAR"]: - assert key in summary, f"Missing metric: {key}" - assert "contest_score" in summary - assert "num_episodes" in summary - assert summary["num_episodes"] == 1 - assert summary["SR"] == 1.0 + assert key in base, f"Missing metric: {key}" + assert "contest_score" in base + assert base["num_episodes"] == 1 + assert base["SR"] == 1.0 + + def test_aggregate_results_grouped_by_robot(self, task): + """Metrics should be nested by robot type (spot, stretch).""" + spot_results = { + "_subtask_successes": "[1, 1]", + "_subtask_oracle_successes": "[1, 1]", + "_subtask_nav_errors": "[0.5, 0.3]", + "_subtask_nav_steps": "[40, 55]", + "_gt_steps": "[40, 55]", + "_gt_paths": "[5.0, 8.0]", + } + stretch_results = { + "_subtask_successes": "[0, 0]", + "_subtask_oracle_successes": "[0, 0]", + "_subtask_nav_errors": "[5.0, 4.0]", + "_subtask_nav_steps": "[100, 100]", + "_gt_steps": "[40, 55]", + "_gt_paths": "[5.0, 8.0]", + } + records = [ + EpisodeRecord(episode={"robot": "spot"}, trajectory=[], episode_results=spot_results), + EpisodeRecord(episode={"robot": "stretch"}, trajectory=[], episode_results=stretch_results), + ] + summary = task.aggregate_results(records) + + # Base group (all episodes) + assert summary["base"]["num_episodes"] == 2 + + # Robot-specific nested groups + assert summary["spot"]["num_episodes"] == 1 + assert summary["stretch"]["num_episodes"] == 1 + assert summary["spot"]["SR"] == 1.0 + assert summary["stretch"]["SR"] == 0.0 + + # All 8 metrics present in each group + for group in ["base", "spot", "stretch"]: + for key in ["SR", "OSR", "SPL", "NE", "ISR", "CSR", "CGT", "TAR", "contest_score"]: + assert key in summary[group], f"Missing {group}.{key}" class TestPromptBuilder: From 2b3168f6a1858ffe26fd4b3d78ff1543d499df93 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 19:16:54 +0800 Subject: [PATCH 142/239] feat: add cuda_visible_devices to ServerManager ServerManager._build_command() now returns (cmd, env_dict) so that start() can pass CUDA_VISIBLE_DEVICES to the subprocess environment. This is the prerequisite for MultiServerManager to assign specific GPUs to each vLLM instance. --- easi/llm/server_manager.py | 25 +++++++++++++++++++++---- tests/test_server_manager.py | 18 ++++++++++++++++-- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index a9dc8a6..f7e9707 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -4,6 +4,7 @@ """ from __future__ import annotations +import os import socket import subprocess import sys @@ -32,12 +33,14 @@ def __init__( server_kwargs: dict | None = None, startup_timeout: float = _DEFAULT_STARTUP_TIMEOUT, log_dir: Path | None = None, # Deprecated: server output now goes to logger + cuda_visible_devices: str | None = None, ): self.backend = backend self.model = model self.port = port self.server_kwargs = server_kwargs or {} self.startup_timeout = startup_timeout + self.cuda_visible_devices = cuda_visible_devices self._process: subprocess.Popen | None = None self._log_thread: threading.Thread | None = None @@ -45,13 +48,17 @@ def start(self) -> str: """Start the server, wait for health, return base_url.""" self._check_port() - cmd = self._build_command() + cmd, extra_env = self._build_command() logger.info("Starting %s server: %s", self.backend, " ".join(cmd)) + spawn_env = os.environ.copy() + spawn_env.update(extra_env) + self._process = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + env=spawn_env, ) self._log_thread = threading.Thread( target=self._stream_output, @@ -101,8 +108,13 @@ def _check_port(self) -> None: finally: sock.close() - def _build_command(self) -> list[str]: - """Build the server launch command.""" + def _build_command(self) -> tuple[list[str], dict]: + """Build the server launch command and environment overrides. + + Returns: + Tuple of (command list, env dict). The env dict contains + ``CUDA_VISIBLE_DEVICES`` when *cuda_visible_devices* is set. + """ if self.backend == "vllm": cmd = [ sys.executable, "-m", "vllm.entrypoints.openai.api_server", @@ -117,10 +129,15 @@ def _build_command(self) -> list[str]: # Skip False booleans (don't add the flag) else: cmd.extend([flag, str(value)]) - return cmd else: raise ValueError(f"Unsupported server backend: {self.backend}") + env: dict[str, str] = {} + if self.cuda_visible_devices is not None: + env["CUDA_VISIBLE_DEVICES"] = self.cuda_visible_devices + + return cmd, env + @staticmethod def _stream_output(proc: subprocess.Popen) -> None: """Read server stdout/stderr line by line and log at TRACE level.""" diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 4adc250..549235b 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -23,7 +23,7 @@ class TestBuildCommand: def test_vllm_basic(self): from easi.llm.server_manager import ServerManager sm = ServerManager("vllm", "Qwen/Qwen2.5-VL-72B", port=9090) - cmd = sm._build_command() + cmd, env = sm._build_command() assert "-m" in cmd assert "vllm.entrypoints.openai.api_server" in cmd assert "--model" in cmd @@ -36,7 +36,7 @@ def test_vllm_with_kwargs(self): sm = ServerManager("vllm", "test-model", port=8080, server_kwargs={"tensor_parallel_size": 4, "gpu_memory_utilization": 0.9}) - cmd = sm._build_command() + cmd, env = sm._build_command() assert "--tensor-parallel-size" in cmd assert "4" in cmd assert "--gpu-memory-utilization" in cmd @@ -86,3 +86,17 @@ def test_not_running_when_no_process(self): from easi.llm.server_manager import ServerManager sm = ServerManager("vllm", "test") assert sm.is_running() is False + + +class TestCudaVisibleDevices: + def test_server_manager_sets_cuda_visible_devices(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test-model", cuda_visible_devices="0,1") + _cmd, env = sm._build_command() + assert env["CUDA_VISIBLE_DEVICES"] == "0,1" + + def test_server_manager_no_cuda_by_default(self): + from easi.llm.server_manager import ServerManager + sm = ServerManager("vllm", "test-model") + _cmd, env = sm._build_command() + assert "CUDA_VISIBLE_DEVICES" not in env From c2c83f9675fa4e670b80e7e7a87c5b4e093a2e1c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 19:30:16 +0800 Subject: [PATCH 143/239] feat: add default vLLM flags (prefix caching, quiet logs) --- easi/llm/server_manager.py | 8 +++++++- tests/test_server_manager.py | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index f7e9707..382bb7f 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -20,6 +20,10 @@ _HEALTH_POLL_INTERVAL = 5.0 _DEFAULT_STARTUP_TIMEOUT = 300.0 +_DEFAULT_VLLM_FLAGS = { + "enable_prefix_caching": True, + "disable_log_requests": True, +} class ServerManager: @@ -121,7 +125,9 @@ def _build_command(self) -> tuple[list[str], dict]: "--model", self.model, "--port", str(self.port), ] - for key, value in self.server_kwargs.items(): + # Merge defaults with user overrides (user wins) + merged_kwargs = {**_DEFAULT_VLLM_FLAGS, **self.server_kwargs} + for key, value in merged_kwargs.items(): flag = "--" + key.replace("_", "-") if isinstance(value, bool): if value: diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 549235b..5a9f088 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -88,6 +88,27 @@ def test_not_running_when_no_process(self): assert sm.is_running() is False +class TestDefaultVllmFlags: + def test_server_manager_default_vllm_flags(self): + """ServerManager should include default vLLM flags (prefix caching, quiet logs).""" + from easi.llm.server_manager import ServerManager + mgr = ServerManager(backend="vllm", model="test-model", port=9999) + cmd, _ = mgr._build_command() + assert "--enable-prefix-caching" in cmd + assert "--disable-log-requests" in cmd + + def test_server_manager_user_can_override_defaults(self): + """User-provided server_kwargs should override defaults.""" + from easi.llm.server_manager import ServerManager + mgr = ServerManager( + backend="vllm", model="test-model", port=9999, + server_kwargs={"enable_prefix_caching": False}, + ) + cmd, _ = mgr._build_command() + # False bool flags should NOT appear in command + assert "--enable-prefix-caching" not in cmd + + class TestCudaVisibleDevices: def test_server_manager_sets_cuda_visible_devices(self): from easi.llm.server_manager import ServerManager From cccf861f275d6598c80902b84714eb22968ed8ad Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 19:56:20 +0800 Subject: [PATCH 144/239] feat: add trace logging to ServerManager for debugging Log constructor params, default flag merging, user overrides, built commands, port checks, and health poll attempts at TRACE level. --- easi/llm/server_manager.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 382bb7f..e3c6c68 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -47,6 +47,11 @@ def __init__( self.cuda_visible_devices = cuda_visible_devices self._process: subprocess.Popen | None = None self._log_thread: threading.Thread | None = None + logger.trace( + "ServerManager init: backend=%s, model=%s, port=%d, " + "server_kwargs=%s, cuda_visible_devices=%s", + backend, model, port, self.server_kwargs, cuda_visible_devices, + ) def start(self) -> str: """Start the server, wait for health, return base_url.""" @@ -100,9 +105,11 @@ def is_running(self) -> bool: def _check_port(self) -> None: """Raise if port is already in use.""" + logger.trace("Checking if port %d is available...", self.port) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.bind(("127.0.0.1", self.port)) + logger.trace("Port %d is available", self.port) except OSError: raise RuntimeError( f"Port {self.port} is already in use. " @@ -127,12 +134,20 @@ def _build_command(self) -> tuple[list[str], dict]: ] # Merge defaults with user overrides (user wins) merged_kwargs = {**_DEFAULT_VLLM_FLAGS, **self.server_kwargs} + overridden = { + k: v for k, v in self.server_kwargs.items() + if k in _DEFAULT_VLLM_FLAGS and v != _DEFAULT_VLLM_FLAGS[k] + } + if overridden: + logger.trace("User overrides for default vLLM flags: %s", overridden) + logger.trace("Merged vLLM kwargs: %s", merged_kwargs) for key, value in merged_kwargs.items(): flag = "--" + key.replace("_", "-") if isinstance(value, bool): if value: cmd.append(flag) - # Skip False booleans (don't add the flag) + else: + logger.trace("Skipping disabled bool flag: %s", flag) else: cmd.extend([flag, str(value)]) else: @@ -142,6 +157,8 @@ def _build_command(self) -> tuple[list[str], dict]: if self.cuda_visible_devices is not None: env["CUDA_VISIBLE_DEVICES"] = self.cuda_visible_devices + logger.trace("Built command: %s", cmd) + logger.trace("Extra env: %s", env) return cmd, env @staticmethod @@ -157,6 +174,9 @@ def _wait_for_health(self, base_url: str) -> None: """Poll /health until the server responds or timeout.""" health_url = base_url.replace("/v1", "") + "/health" deadline = time.monotonic() + self.startup_timeout + logger.trace( + "Waiting for health at %s (timeout=%.0fs)", health_url, self.startup_timeout, + ) while time.monotonic() < deadline: if self._process and self._process.poll() is not None: @@ -167,9 +187,11 @@ def _wait_for_health(self, base_url: str) -> None: try: resp = requests.get(health_url, timeout=5) if resp.status_code == 200: + logger.trace("Health check passed (status=%d)", resp.status_code) return + logger.trace("Health check returned status %d, retrying...", resp.status_code) except requests.ConnectionError: - pass + logger.trace("Health check connection refused, retrying...") time.sleep(_HEALTH_POLL_INTERVAL) From be385c25d4c896c78a1bcf0ed78b48723a7ffdf5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:02:32 +0800 Subject: [PATCH 145/239] feat: add MultiServerManager for multi-instance vLLM --- easi/llm/server_manager.py | 55 ++++++++++++++++++++++++++ tests/test_server_manager.py | 75 ++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index e3c6c68..800af0f 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -206,3 +206,58 @@ def __enter__(self) -> str: def __exit__(self, *exc) -> None: self.stop() + + +class MultiServerManager: + """Manages multiple vLLM server instances across GPUs.""" + + def __init__( + self, + model: str, + num_instances: int, + gpu_ids: list[int], + base_port: int = 8000, + server_kwargs: dict | None = None, + startup_timeout: float = 300.0, + log_dir: Path | str | None = None, + ): + if len(gpu_ids) % num_instances != 0: + raise ValueError( + f"Cannot divide {len(gpu_ids)} GPUs evenly across " + f"{num_instances} instances" + ) + self.model = model + self.num_instances = num_instances + self.gpu_ids = gpu_ids + self.base_port = base_port + self.server_kwargs = server_kwargs or {} + self.startup_timeout = startup_timeout + self.log_dir = Path(log_dir) if log_dir else None + self._managers: list[ServerManager] = [] + + def start(self) -> list[str]: + """Start all instances, return list of base_urls.""" + gpus_per = len(self.gpu_ids) // self.num_instances + urls = [] + for i in range(self.num_instances): + instance_gpus = self.gpu_ids[i * gpus_per : (i + 1) * gpus_per] + port = self.base_port + i + mgr = ServerManager( + backend="vllm", + model=self.model, + port=port, + server_kwargs=self.server_kwargs, + startup_timeout=self.startup_timeout, + log_dir=self.log_dir, + cuda_visible_devices=",".join(str(g) for g in instance_gpus), + ) + url = mgr.start() + urls.append(url) + self._managers.append(mgr) + return urls + + def stop(self): + """Stop all managed instances.""" + for mgr in self._managers: + mgr.stop() + self._managers.clear() diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 5a9f088..4302c4f 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -121,3 +121,78 @@ def test_server_manager_no_cuda_by_default(self): sm = ServerManager("vllm", "test-model") _cmd, env = sm._build_command() assert "CUDA_VISIBLE_DEVICES" not in env + + +class TestMultiServerManager: + def test_multi_server_manager_starts_n_instances(self): + """MultiServerManager should start N ServerManager instances with correct GPU assignment.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + with patch("easi.llm.server_manager.ServerManager") as MockSM: + mock_instance = MagicMock() + mock_instance.start.return_value = "http://localhost:8000/v1" + MockSM.return_value = mock_instance + + mgr = MultiServerManager( + model="test-model", + num_instances=2, + gpu_ids=[0, 1], + base_port=8000, + ) + urls = mgr.start() + + assert len(urls) == 2 + assert MockSM.call_count == 2 + + # Check GPU assignment: instance 0 → GPU 0, instance 1 → GPU 1 + calls = MockSM.call_args_list + assert calls[0].kwargs["cuda_visible_devices"] == "0" + assert calls[0].kwargs["port"] == 8000 + assert calls[1].kwargs["cuda_visible_devices"] == "1" + assert calls[1].kwargs["port"] == 8001 + + def test_multi_server_manager_tp2_gpu_assignment(self): + """With TP=2, each instance should get 2 GPUs.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + with patch("easi.llm.server_manager.ServerManager") as MockSM: + mock_instance = MagicMock() + mock_instance.start.return_value = "http://localhost:8000/v1" + MockSM.return_value = mock_instance + + mgr = MultiServerManager( + model="test-model", + num_instances=2, + gpu_ids=[0, 1, 2, 3], + base_port=8000, + ) + urls = mgr.start() + + calls = MockSM.call_args_list + assert calls[0].kwargs["cuda_visible_devices"] == "0,1" + assert calls[1].kwargs["cuda_visible_devices"] == "2,3" + + def test_multi_server_manager_stop_all(self): + """stop() should stop all managed instances.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + with patch("easi.llm.server_manager.ServerManager") as MockSM: + mock_instance = MagicMock() + mock_instance.start.return_value = "http://localhost:8000/v1" + MockSM.return_value = mock_instance + + mgr = MultiServerManager(model="m", num_instances=2, gpu_ids=[0, 1]) + mgr.start() + mgr.stop() + + assert mock_instance.stop.call_count == 2 + + def test_multi_server_manager_validates_gpu_count(self): + """Should raise if GPUs don't divide evenly across instances.""" + from easi.llm.server_manager import MultiServerManager + + with pytest.raises(ValueError, match="divide.*evenly"): + MultiServerManager(model="m", num_instances=3, gpu_ids=[0, 1]) From b6d414b3ffb4080cb8f6c23a8779788f57918a30 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:29:29 +0800 Subject: [PATCH 146/239] feat: add --vllm-instances, --vllm-gpus, --sim-gpus CLI args --- easi/cli.py | 18 ++++++++++++++++-- tests/test_cli.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 tests/test_cli.py diff --git a/easi/cli.py b/easi/cli.py index 4a730b9..4a3556d 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -112,8 +112,22 @@ def build_parser() -> argparse.ArgumentParser: start_parser.add_argument("--max-retries", type=int, default=None, help="Max LLM retry attempts on transient errors (default: 3)") start_parser.add_argument("--num-parallel", type=int, default=None, dest="num_parallel", - help="Number of parallel simulator instances (default: 1, sequential). " - "Only supported with proprietary API backends (openai, anthropic, gemini).") + help="Number of parallel simulator instances (default: 1, sequential).") + start_parser.add_argument( + "--vllm-instances", type=int, default=None, dest="vllm_instances", + help="Number of vLLM server instances to start (default: 1). " + "Each instance runs on a subset of --vllm-gpus.", + ) + start_parser.add_argument( + "--vllm-gpus", type=str, default=None, dest="vllm_gpus", + help="Comma-separated GPU IDs for vLLM inference (e.g., '0,1'). " + "GPUs are split evenly across --vllm-instances.", + ) + start_parser.add_argument( + "--sim-gpus", type=str, default=None, dest="sim_gpus", + help="Comma-separated GPU IDs for simulator rendering (e.g., '2,3'). " + "If not set, simulators use CPU rendering.", + ) start_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", help="Path to a previous run directory to resume from") start_parser.add_argument("--refresh-data", action="store_true", dest="refresh_data", diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..4c50058 --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,35 @@ +# tests/test_cli.py +"""Tests for CLI GPU and vLLM arguments.""" + + +def test_cli_parses_vllm_gpu_args(): + """CLI should parse --vllm-instances, --vllm-gpus, --sim-gpus.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args([ + "start", "dummy_task", + "--agent", "dummy", + "--backend", "vllm", + "--model", "test", + "--num-parallel", "12", + "--vllm-instances", "2", + "--vllm-gpus", "0,1", + "--sim-gpus", "2,3", + ]) + assert args.vllm_instances == 2 + assert args.vllm_gpus == "0,1" + assert args.sim_gpus == "2,3" + + +def test_cli_parses_comma_separated_llm_url(): + """--llm-url should accept comma-separated URLs.""" + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args([ + "start", "dummy_task", + "--agent", "dummy", + "--backend", "vllm", + "--model", "test", + "--llm-url", "http://localhost:8000/v1,http://localhost:8001/v1", + ]) + assert args.llm_base_url == "http://localhost:8000/v1,http://localhost:8001/v1" From 49c4943591adfb448a500dd3fb12490aeae9f501 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:33:47 +0800 Subject: [PATCH 147/239] feat: pass vllm_instances, vllm_gpus, sim_gpus through runners --- easi/cli.py | 8 ++++++++ easi/evaluation/runner.py | 6 ++++++ tests/test_parallel_runner.py | 26 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/easi/cli.py b/easi/cli.py index 4a3556d..1acc02d 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -465,6 +465,14 @@ def cmd_start(args): run_kwargs.pop("task_name", None) num_parallel = run_kwargs.pop("num_parallel", None) or 1 + # Parse comma-separated GPU strings into lists of ints + vllm_gpus_str = run_kwargs.pop("vllm_gpus", None) + sim_gpus_str = run_kwargs.pop("sim_gpus", None) + if vllm_gpus_str: + run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_str.split(",")] + if sim_gpus_str: + run_kwargs["sim_gpus"] = [int(g) for g in sim_gpus_str.split(",")] + from easi.core.episode import EpisodeRecord from easi.evaluation.metrics import default_aggregate diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 8ca6e87..e969311 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -64,6 +64,9 @@ def __init__( resume_dir: Path | str | None = None, refresh_data: bool = False, render_platform: str | None = None, + vllm_instances: int | None = None, + vllm_gpus: list[int] | None = None, + sim_gpus: list[int] | None = None, ): # Auto-capture all init args for config.json (before any mutation) frame = inspect.currentframe() @@ -87,6 +90,9 @@ def __init__( self.resume_dir = Path(resume_dir) if resume_dir else None self.refresh_data = refresh_data self.render_platform_name = render_platform + self.vllm_instances = vllm_instances + self.vllm_gpus = vllm_gpus + self.sim_gpus = sim_gpus timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index 76d0ef9..6a9fc56 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -127,6 +127,32 @@ def test_episode_dirs_created(self, tmp_path): assert (ed / "result.json").exists() +class TestRunnerGPUArgs: + """Test GPU-related args on EvaluationRunner.""" + + def test_runner_accepts_gpu_args(self): + """EvaluationRunner should accept vllm_instances, vllm_gpus, sim_gpus.""" + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner( + task_name="dummy_task", + agent_type="dummy", + vllm_instances=2, + vllm_gpus=[0, 1], + sim_gpus=[2, 3], + ) + assert runner.vllm_instances == 2 + assert runner.vllm_gpus == [0, 1] + assert runner.sim_gpus == [2, 3] + + def test_runner_gpu_args_default_none(self): + """GPU args should default to None.""" + from easi.evaluation.runner import EvaluationRunner + runner = EvaluationRunner(task_name="dummy_task", agent_type="dummy") + assert runner.vllm_instances is None + assert runner.vllm_gpus is None + assert runner.sim_gpus is None + + class TestCLIParallelArg: """Test --num-parallel CLI argument parsing.""" From 364d9220a4d831791389f97a4afe28ad375180b3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:41:35 +0800 Subject: [PATCH 148/239] feat: enable parallel vLLM evaluation with multi-instance support --- easi/evaluation/parallel_runner.py | 538 +++++++++++++++-------------- tests/test_parallel_runner.py | 44 ++- 2 files changed, 321 insertions(+), 261 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index a1f5f0e..37da9c5 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -41,6 +41,12 @@ def _serialize_cli_options(self) -> dict: base["num_parallel"] = self.num_parallel return base + def _parse_base_urls(self) -> list[str | None]: + """Parse base URL(s) into list for round-robin assignment.""" + if self.llm_base_url: + return [u.strip() for u in self.llm_base_url.split(",")] + return [None] + def run(self) -> list[dict]: """Run evaluation with thread-pool parallelism.""" logger.trace( @@ -48,286 +54,312 @@ def run(self) -> list[dict]: self.task_name, self.num_parallel, ) - # --- Guard: no local vLLM --- + # --- Resolve LLM backend and vLLM URLs --- backend, base_url = self._resolve_llm_backend() + server_mgr = None + if backend == "vllm" and base_url is None: - raise NotImplementedError( - "ParallelRunner does not support local vLLM server management. " - "Start vLLM externally and pass --llm-url." + # Auto-manage vLLM instances + from easi.llm.server_manager import MultiServerManager + from easi.llm.utils import parse_llm_kwargs, split_kwargs as _split + + all_kw = parse_llm_kwargs(self.llm_kwargs_raw) + srv_kw, _ = _split(all_kw) + + num_instances = self.vllm_instances or 1 + gpu_ids = self.vllm_gpus or list(range(num_instances)) + + server_mgr = MultiServerManager( + model=self.model, + num_instances=num_instances, + gpu_ids=gpu_ids, + base_port=self.port or 8000, + server_kwargs=srv_kw, + ) + vllm_urls = server_mgr.start() + elif base_url: + vllm_urls = self._parse_base_urls() + else: + vllm_urls = [None] + + try: + # --- Load task --- + logger.trace("Loading task") + task = self._create_task() + if self.refresh_data: + task.download_dataset(force=True) + episodes = task.load_episodes() + if self.max_episodes is not None: + episodes = episodes[: self.max_episodes] + logger.trace( + "Task loaded. %d episodes, simulator_key=%s", + len(episodes), task.simulator_key, ) - # --- Load task --- - logger.trace("Loading task") - task = self._create_task() - if self.refresh_data: - task.download_dataset(force=True) - episodes = task.load_episodes() - if self.max_episodes is not None: - episodes = episodes[: self.max_episodes] - logger.trace( - "Task loaded. %d episodes, simulator_key=%s", - len(episodes), task.simulator_key, - ) - - # --- Resolve LLM backend + handle resume --- - logger.trace("Resolved LLM backend=%s, base_url=%s", backend, base_url) + # --- Resolve LLM backend + handle resume --- + logger.trace("Resolved LLM backend=%s, base_url=%s", backend, base_url) - # Compute resolved generation kwargs (YAML defaults + CLI overrides) - from easi.llm.utils import parse_llm_kwargs, split_kwargs + # Compute resolved generation kwargs (YAML defaults + CLI overrides) + from easi.llm.utils import parse_llm_kwargs, split_kwargs - agent_config = task._config.get("agent", {}) - yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) - all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) - _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) - resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} + agent_config = task._config.get("agent", {}) + yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) + all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) + resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} - # Handle resume - if self.resume_dir: - run_dir = self.resume_dir - completed_results, start_index = self._load_completed_results( - run_dir, len(episodes), - ) - logger.info( - "Resuming from %s — %d completed, starting from index %d", - run_dir, len(completed_results), start_index, - ) - else: - run_dir = self.output_dir / self.task_name / self.run_id - completed_results = [] - start_index = 0 - - # --- Create output directory and save config --- - logger.trace("Creating output directory and saving config") - episodes_dir = run_dir / "episodes" - episodes_dir.mkdir(parents=True, exist_ok=True) - - config = { - "run_id": self.run_id, - "total_episodes": len(episodes), - "num_parallel": self.num_parallel, - "cli_options": self._serialize_cli_options(), - "resolved_backend": backend, - "resolved_base_url": base_url, - "resolved_generation_kwargs": resolved_gen_kwargs, - "task_config": task._config, - } - (run_dir / "config.json").write_text(json.dumps(config, indent=2)) - logger.trace("Run config:\n%s", json.dumps(config, indent=2, default=str)) - - # Check if all episodes already complete (resume edge case) - if start_index >= len(episodes): - logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) - all_results = completed_results - # Skip to aggregation - wall_seconds = 0.0 - results_list = [(i, r) for i, r in enumerate(all_results)] - else: - # --- Fill episode queue (from start_index) --- - episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() - for i, episode in enumerate(episodes): - if i >= start_index: - episode_queue.put((i, episode)) - remaining = episode_queue.qsize() - logger.trace("Queued %d episodes (skipped %d completed)", remaining, start_index) - - # --- Prepare thread-safe collection --- - results_lock = threading.Lock() - new_results: list[tuple[int, dict]] = [] - progress = {"completed": 0, "failed": 0} - progress_lock = threading.Lock() - total_episodes = len(episodes) - - num_workers = min(self.num_parallel, remaining) - - def _worker(worker_id: int) -> None: - """Worker thread: owns a simulator + agent, pulls episodes from queue.""" - logger.trace("[Worker %d] Starting up", worker_id) - episodes_done = 0 - - # Create simulator - logger.trace( - "[Worker %d] Creating simulator (key=%s)", - worker_id, task.simulator_key, - ) - sim, sim_runner = self._create_simulator(task.simulator_key, task=task) - logger.trace( - "[Worker %d] Simulator ready (PID=%s)", - worker_id, - getattr(sim_runner, 'pid', 'unknown'), + # Handle resume + if self.resume_dir: + run_dir = self.resume_dir + completed_results, start_index = self._load_completed_results( + run_dir, len(episodes), ) - - # Create agent - logger.trace("[Worker %d] Creating agent", worker_id) - agent = self._create_agent( - task.action_space, task._config, - backend=backend, base_url=base_url, + logger.info( + "Resuming from %s — %d completed, starting from index %d", + run_dir, len(completed_results), start_index, ) - logger.trace("[Worker %d] Agent ready", worker_id) - - try: - while True: - # Pull next episode - try: - idx, episode = episode_queue.get_nowait() - except queue.Empty: - break + else: + run_dir = self.output_dir / self.task_name / self.run_id + completed_results = [] + start_index = 0 + + # --- Create output directory and save config --- + logger.trace("Creating output directory and saving config") + episodes_dir = run_dir / "episodes" + episodes_dir.mkdir(parents=True, exist_ok=True) + + config = { + "run_id": self.run_id, + "total_episodes": len(episodes), + "num_parallel": self.num_parallel, + "cli_options": self._serialize_cli_options(), + "resolved_backend": backend, + "resolved_base_url": base_url, + "resolved_generation_kwargs": resolved_gen_kwargs, + "task_config": task._config, + } + (run_dir / "config.json").write_text(json.dumps(config, indent=2)) + logger.trace("Run config:\n%s", json.dumps(config, indent=2, default=str)) + + # Check if all episodes already complete (resume edge case) + if start_index >= len(episodes): + logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) + all_results = completed_results + # Skip to aggregation + wall_seconds = 0.0 + results_list = [(i, r) for i, r in enumerate(all_results)] + else: + # --- Fill episode queue (from start_index) --- + episode_queue: queue.Queue[tuple[int, dict]] = queue.Queue() + for i, episode in enumerate(episodes): + if i >= start_index: + episode_queue.put((i, episode)) + remaining = episode_queue.qsize() + logger.trace("Queued %d episodes (skipped %d completed)", remaining, start_index) + + # --- Prepare thread-safe collection --- + results_lock = threading.Lock() + new_results: list[tuple[int, dict]] = [] + progress = {"completed": 0, "failed": 0} + progress_lock = threading.Lock() + total_episodes = len(episodes) + + num_workers = min(self.num_parallel, remaining) + + def _worker(worker_id: int) -> None: + """Worker thread: owns a simulator + agent, pulls episodes from queue.""" + logger.trace("[Worker %d] Starting up", worker_id) + episodes_done = 0 + + # Create simulator + logger.trace( + "[Worker %d] Creating simulator (key=%s)", + worker_id, task.simulator_key, + ) + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + logger.trace( + "[Worker %d] Simulator ready (PID=%s)", + worker_id, + getattr(sim_runner, 'pid', 'unknown'), + ) - logger.trace( - "[Worker %d] Queue remaining: ~%d", - worker_id, episode_queue.qsize(), - ) + # Create agent + logger.trace("[Worker %d] Creating agent", worker_id) + # Round-robin URL assignment + worker_url = vllm_urls[worker_id % len(vllm_urls)] + agent = self._create_agent( + task.action_space, task._config, + backend=backend, base_url=worker_url, + ) + logger.trace("[Worker %d] Agent ready", worker_id) - episode_id = episode.get("episode_id", f"ep_{idx}") - episode_dir = episodes_dir / f"{idx:03d}_{_sanitize_dirname(episode_id)}" - episode_dir.mkdir(exist_ok=True) + try: + while True: + # Pull next episode + try: + idx, episode = episode_queue.get_nowait() + except queue.Empty: + break - result = None - for attempt in range(1, self.max_retries + 1): logger.trace( - "[Worker %d] Running episode %s (attempt %d/%d)", - worker_id, episode_id, attempt, self.max_retries, + "[Worker %d] Queue remaining: ~%d", + worker_id, episode_queue.qsize(), ) - try: - result = self._run_episode( - sim, agent, task, episode, idx, episode_dir, - ) - logger.trace( - "[Worker %d] Episode %s completed in %.1fs: %s", - worker_id, episode_id, - result.get("elapsed_seconds", 0), - {k: v for k, v in result.items() - if k in ("success", "num_steps", "elapsed_seconds")}, - ) - break - except Exception as exc: - logger.warning( - "[Worker %d] Episode %s attempt %d/%d failed: %s", - worker_id, episode_id, attempt, self.max_retries, exc, - ) + + episode_id = episode.get("episode_id", f"ep_{idx}") + episode_dir = episodes_dir / f"{idx:03d}_{_sanitize_dirname(episode_id)}" + episode_dir.mkdir(exist_ok=True) + + result = None + for attempt in range(1, self.max_retries + 1): logger.trace( - "[Worker %d] Exception details:", - worker_id, exc_info=True, + "[Worker %d] Running episode %s (attempt %d/%d)", + worker_id, episode_id, attempt, self.max_retries, ) - self._clear_episode_dir(episode_dir) - if attempt < self.max_retries: - logger.info( - "[Worker %d] Re-launching simulator for retry...", - worker_id, + try: + result = self._run_episode( + sim, agent, task, episode, idx, episode_dir, ) - try: - sim.close() - except Exception: - pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, + logger.trace( + "[Worker %d] Episode %s completed in %.1fs: %s", + worker_id, episode_id, + result.get("elapsed_seconds", 0), + {k: v for k, v in result.items() + if k in ("success", "num_steps", "elapsed_seconds")}, ) - else: - logger.error( - "[Worker %d] Episode %s failed after %d attempts, skipping", - worker_id, episode_id, self.max_retries, + break + except Exception as exc: + logger.warning( + "[Worker %d] Episode %s attempt %d/%d failed: %s", + worker_id, episode_id, attempt, self.max_retries, exc, ) - result = { - "episode_id": episode_id, - "instruction": task.get_instruction(episode), - "success": 0.0, - "num_steps": 0, - "elapsed_seconds": 0.0, - "error": str(exc), - } - - # Save per-episode result (strip internal keys) - result_to_save = { - k: v for k, v in result.items() - if not k.startswith("_") - } - (episode_dir / "result.json").write_text( - json.dumps(result_to_save, indent=2) - ) + logger.trace( + "[Worker %d] Exception details:", + worker_id, exc_info=True, + ) + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info( + "[Worker %d] Re-launching simulator for retry...", + worker_id, + ) + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "[Worker %d] Episode %s failed after %d attempts, skipping", + worker_id, episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + + # Save per-episode result (strip internal keys) + result_to_save = { + k: v for k, v in result.items() + if not k.startswith("_") + } + (episode_dir / "result.json").write_text( + json.dumps(result_to_save, indent=2) + ) - # Thread-safe results collection - failed = "error" in result - with results_lock: - new_results.append((idx, result)) - - with progress_lock: - progress["completed"] += 1 - if failed: - progress["failed"] += 1 - current_completed = progress["completed"] + start_index - current_failed = progress["failed"] - - logger.info( - "[Progress] %d/%d episodes completed (%d failed)", - current_completed, total_episodes, current_failed, - ) + # Thread-safe results collection + failed = "error" in result + with results_lock: + new_results.append((idx, result)) + + with progress_lock: + progress["completed"] += 1 + if failed: + progress["failed"] += 1 + current_completed = progress["completed"] + start_index + current_failed = progress["failed"] + + logger.info( + "[Progress] %d/%d episodes completed (%d failed)", + current_completed, total_episodes, current_failed, + ) - episodes_done += 1 + episodes_done += 1 - finally: - logger.trace("[Worker %d] Shutting down simulator", worker_id) - try: - sim.close() - except Exception: - pass - logger.trace( - "[Worker %d] Shutdown complete (%d episodes done)", - worker_id, episodes_done, - ) + finally: + logger.trace("[Worker %d] Shutting down simulator", worker_id) + try: + sim.close() + except Exception: + pass + logger.trace( + "[Worker %d] Shutdown complete (%d episodes done)", + worker_id, episodes_done, + ) - # --- Launch worker threads --- - logger.trace("Launching %d worker threads", num_workers) - wall_start = time.monotonic() + # --- Launch worker threads --- + logger.trace("Launching %d worker threads", num_workers) + wall_start = time.monotonic() - with ThreadPoolExecutor(max_workers=num_workers) as executor: - futures = [] - for wid in range(num_workers): - futures.append(executor.submit(_worker, wid)) - logger.trace("All %d worker threads submitted", num_workers) + with ThreadPoolExecutor(max_workers=num_workers) as executor: + futures = [] + for wid in range(num_workers): + futures.append(executor.submit(_worker, wid)) + logger.trace("All %d worker threads submitted", num_workers) - # Wait for all workers to complete and propagate exceptions - for future in futures: - future.result() + # Wait for all workers to complete and propagate exceptions + for future in futures: + future.result() - wall_seconds = round(time.monotonic() - wall_start, 2) + wall_seconds = round(time.monotonic() - wall_start, 2) - # Merge completed results from resume with new results - new_results.sort(key=lambda x: x[0]) - results_list = [(i, r) for i, r in enumerate(completed_results)] - results_list.extend(new_results) + # Merge completed results from resume with new results + new_results.sort(key=lambda x: x[0]) + results_list = [(i, r) for i, r in enumerate(completed_results)] + results_list.extend(new_results) - # --- Sort results and aggregate --- - results_list.sort(key=lambda x: x[0]) - all_results = [r for _, r in results_list] + # --- Sort results and aggregate --- + results_list.sort(key=lambda x: x[0]) + all_results = [r for _, r in results_list] - num_successful = sum(1 for r in all_results if "error" not in r) - num_failed = len(all_results) - num_successful - logger.trace( - "Results sorted. %d successful, %d failed", - num_successful, num_failed, - ) + num_successful = sum(1 for r in all_results if "error" not in r) + num_failed = len(all_results) - num_successful + logger.trace( + "Results sorted. %d successful, %d failed", + num_successful, num_failed, + ) - # Build EpisodeRecords for aggregate_results - records = [] - for r in all_results: - trajectory = r.pop("_trajectory", []) - episode = r.pop("_episode", {}) - records.append(EpisodeRecord( - episode=episode, - trajectory=trajectory, - episode_results=r, - )) - - # Aggregate and save summary - metric_results = task.aggregate_results(records) - summary = {"num_episodes": len(all_results), "metrics": metric_results} - summary["num_parallel"] = self.num_parallel - summary["wall_clock_seconds"] = wall_seconds - if backend and backend != "legacy": - summary["llm_usage"] = self._aggregate_llm_usage(all_results) - summary["model"] = self.model - summary["backend"] = backend - (run_dir / "summary.json").write_text(json.dumps(summary, indent=2)) - logger.info("Results saved to: %s", run_dir) - logger.info("Summary: %s", summary) - - return all_results + # Build EpisodeRecords for aggregate_results + records = [] + for r in all_results: + trajectory = r.pop("_trajectory", []) + episode = r.pop("_episode", {}) + records.append(EpisodeRecord( + episode=episode, + trajectory=trajectory, + episode_results=r, + )) + + # Aggregate and save summary + metric_results = task.aggregate_results(records) + summary = {"num_episodes": len(all_results), "metrics": metric_results} + summary["num_parallel"] = self.num_parallel + summary["wall_clock_seconds"] = wall_seconds + if backend and backend != "legacy": + summary["llm_usage"] = self._aggregate_llm_usage(all_results) + summary["model"] = self.model + summary["backend"] = backend + (run_dir / "summary.json").write_text(json.dumps(summary, indent=2)) + logger.info("Results saved to: %s", run_dir) + logger.info("Summary: %s", summary) + + return all_results + finally: + if server_mgr is not None: + server_mgr.stop() diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index 6a9fc56..85ea854 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -28,18 +28,46 @@ def test_defaults_to_2_workers(self): assert runner.num_parallel == 2 -class TestParallelRunnerValidation: - """Test that unsupported configs are rejected.""" +class TestParseBaseUrls: + """Tests for _parse_base_urls() method.""" - def test_local_vllm_raises_not_implemented(self, tmp_path): + def test_parses_comma_separated_urls(self): from easi.evaluation.parallel_runner import ParallelRunner runner = ParallelRunner( - task_name="dummy_task", num_parallel=2, - agent_type="react", backend="vllm", - model="some-model", output_dir=str(tmp_path), + task_name="dummy_task", + agent_type="dummy", + num_parallel=4, + llm_base_url="http://localhost:8000/v1,http://localhost:8001/v1", + backend="vllm", + model="test", + ) + urls = runner._parse_base_urls() + assert urls == ["http://localhost:8000/v1", "http://localhost:8001/v1"] + + def test_single_url(self): + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name="dummy_task", + agent_type="dummy", + num_parallel=4, + llm_base_url="http://localhost:8000/v1", + backend="openai", + model="gpt-4o", + ) + urls = runner._parse_base_urls() + assert urls == ["http://localhost:8000/v1"] + + def test_no_url(self): + from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( + task_name="dummy_task", + agent_type="dummy", + num_parallel=4, + backend="openai", + model="gpt-4o", ) - with pytest.raises(NotImplementedError, match="does not support local vLLM"): - runner.run() + urls = runner._parse_base_urls() + assert urls == [None] class TestParallelRunnerWithDummy: From f2610f9a81653e2d2ba5f152e154af044e655cd3 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:52:38 +0800 Subject: [PATCH 149/239] feat: add simulator GPU isolation via sim_gpus --- easi/evaluation/runner.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index e969311..05017fe 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -655,6 +655,11 @@ def _create_simulator(self, simulator_key: str, task=None): if task and task.extra_env_vars: env_vars = EnvVars.merge(env_vars, EnvVars(replace=task.extra_env_vars)) + # Apply simulator GPU isolation + if self.sim_gpus is not None: + gpu_str = ",".join(str(g) for g in self.sim_gpus) + env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": gpu_str})) + runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=bridge_path, From c58a7573632a369fd4a9ec63e40277fcfcefd810 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 20:55:42 +0800 Subject: [PATCH 150/239] feat: add GPU allocation validation for parallel vLLM --- easi/evaluation/parallel_runner.py | 16 ++++++++++++ tests/test_parallel_runner.py | 39 ++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 37da9c5..75c70ee 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -34,6 +34,7 @@ class ParallelRunner(EvaluationRunner): def __init__(self, *, num_parallel: int = 2, **kwargs): super().__init__(**kwargs) self.num_parallel = num_parallel + self._validate_gpu_args() def _serialize_cli_options(self) -> dict: """Add num_parallel to the serialized config.""" @@ -41,6 +42,21 @@ def _serialize_cli_options(self) -> dict: base["num_parallel"] = self.num_parallel return base + def _validate_gpu_args(self): + """Validate GPU allocation arguments.""" + if self.vllm_instances and self.vllm_instances > 1 and not self.vllm_gpus: + raise ValueError( + "--vllm-gpus is required when --vllm-instances > 1. " + "Specify which GPUs to use for vLLM inference." + ) + if self.vllm_gpus and self.sim_gpus: + overlap = set(self.vllm_gpus) & set(self.sim_gpus) + if overlap: + raise ValueError( + f"--vllm-gpus and --sim-gpus must not overlap. " + f"Overlapping GPU IDs: {overlap}" + ) + def _parse_base_urls(self) -> list[str | None]: """Parse base URL(s) into list for round-robin assignment.""" if self.llm_base_url: diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index 85ea854..ced2f42 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -181,6 +181,45 @@ def test_runner_gpu_args_default_none(self): assert runner.sim_gpus is None +class TestGPUValidation: + """Test GPU allocation validation.""" + + def test_vllm_gpus_required_when_instances_specified(self): + """Should raise if --vllm-instances set but --vllm-gpus not provided.""" + from easi.evaluation.parallel_runner import ParallelRunner + import pytest + + with pytest.raises(ValueError, match="--vllm-gpus"): + ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, backend="vllm", model="test", + vllm_instances=2, vllm_gpus=None, + ) + + def test_vllm_gpus_sim_gpus_no_overlap(self): + """Should raise if vllm_gpus and sim_gpus overlap.""" + from easi.evaluation.parallel_runner import ParallelRunner + import pytest + + with pytest.raises(ValueError, match="overlap"): + ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, backend="vllm", model="test", + vllm_instances=2, vllm_gpus=[0, 1], sim_gpus=[1, 2], + ) + + def test_valid_gpu_config_passes(self): + """Valid GPU config should not raise.""" + from easi.evaluation.parallel_runner import ParallelRunner + + runner = ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, backend="vllm", model="test", + vllm_instances=2, vllm_gpus=[0, 1], sim_gpus=[2, 3], + ) + assert runner.vllm_instances == 2 + + class TestCLIParallelArg: """Test --num-parallel CLI argument parsing.""" From b0427b0ddd19315da9fb85f3991b8be02d9605f9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 21:06:37 +0800 Subject: [PATCH 151/239] fix: update tests for new GPU allocation kwargs --- tests/test_env_vars_wiring.py | 2 + tests/test_evaluation_runner.py | 1 + tests/test_installation_kwargs.py | 1 + tests/test_parallel_vllm.py | 76 +++++++++++++++++++++++++++++++ tests/test_render_platform.py | 5 ++ 5 files changed, 85 insertions(+) create mode 100644 tests/test_parallel_vllm.py diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index 5264278..a896212 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -16,6 +16,7 @@ def test_runner_passes_env_vars_to_subprocess(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None + runner.sim_gpus = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True @@ -55,6 +56,7 @@ def test_runner_passes_none_when_no_env_vars(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None + runner.sim_gpus = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 1a4a373..8c26eac 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -97,6 +97,7 @@ def test_cli_options_contains_all_init_args(self): "max_episodes", "llm_base_url", "agent_seed", "backend", "model", "port", "llm_kwargs_raw", "max_retries", "render_platform", + "vllm_instances", "vllm_gpus", "sim_gpus", } assert set(opts.keys()) == expected_keys diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index b537ee3..bb71e88 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -59,6 +59,7 @@ def test_runner_passes_installation_kwargs(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None + runner.sim_gpus = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_parallel_vllm.py b/tests/test_parallel_vllm.py new file mode 100644 index 0000000..4f3679f --- /dev/null +++ b/tests/test_parallel_vllm.py @@ -0,0 +1,76 @@ +"""Integration test for parallel vLLM evaluation.""" +from easi.evaluation.parallel_runner import ParallelRunner + + +def test_parallel_vllm_end_to_end(): + """Full flow: ParallelRunner stores multi-instance vLLM config correctly.""" + runner = ParallelRunner( + task_name="dummy_task", + agent_type="dummy", + num_parallel=4, + backend="vllm", + model="test-model", + vllm_instances=2, + vllm_gpus=[0, 1], + sim_gpus=[2, 3], + ) + + # Verify config stored correctly + assert runner.vllm_instances == 2 + assert runner.vllm_gpus == [0, 1] + assert runner.sim_gpus == [2, 3] + assert runner.num_parallel == 4 + + +def test_external_multi_url_no_server_startup(): + """With --llm-url containing multiple URLs, no server should be started.""" + runner = ParallelRunner( + task_name="dummy_task", + agent_type="dummy", + num_parallel=8, + backend="vllm", + model="test", + llm_base_url="http://localhost:8000/v1,http://localhost:8001/v1", + ) + urls = runner._parse_base_urls() + assert len(urls) == 2 + assert urls[0] == "http://localhost:8000/v1" + assert urls[1] == "http://localhost:8001/v1" + + +def test_round_robin_url_assignment(): + """Workers should be assigned URLs via round-robin.""" + urls = ["http://localhost:8000/v1", "http://localhost:8001/v1"] + assert urls[0 % 2] == "http://localhost:8000/v1" + assert urls[1 % 2] == "http://localhost:8001/v1" + assert urls[2 % 2] == "http://localhost:8000/v1" + assert urls[3 % 2] == "http://localhost:8001/v1" + + +def test_cli_to_runner_gpu_flow(): + """Verify CLI args flow through to runner correctly.""" + from easi.cli import build_parser + + parser = build_parser() + args = parser.parse_args([ + "start", "dummy_task", + "--agent", "dummy", + "--backend", "vllm", + "--model", "test", + "--num-parallel", "12", + "--vllm-instances", "2", + "--vllm-gpus", "0,1", + "--sim-gpus", "2,3", + ]) + + # Verify CLI parsing + assert args.vllm_instances == 2 + assert args.vllm_gpus == "0,1" + assert args.sim_gpus == "2,3" + assert args.num_parallel == 12 + + # Verify string-to-list conversion (same logic as cmd_start) + vllm_gpus = [int(g) for g in args.vllm_gpus.split(",")] + sim_gpus = [int(g) for g in args.sim_gpus.split(",")] + assert vllm_gpus == [0, 1] + assert sim_gpus == [2, 3] diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index e0e3045..11fb22c 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -706,6 +706,7 @@ def test_default_uses_env_manager_platform(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None + runner.sim_gpus = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -732,6 +733,7 @@ def test_cli_override_wins(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" + runner.sim_gpus = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -758,6 +760,7 @@ def test_yaml_override_used_when_no_cli(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None + runner.sim_gpus = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -785,6 +788,7 @@ def test_cli_beats_yaml(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" + runner.sim_gpus = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -812,6 +816,7 @@ def test_unsupported_platform_raises(self): runner = EvaluationRunner.__new__(EvaluationRunner) runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "egl" + runner.sim_gpus = None mock_env_mgr = self._make_mock_env_mgr() mock_env_mgr.supported_render_platforms = ["auto", "xvfb"] # no egl From 33b0d93f4fc804d0f8edf491d1ab0aa78caf93a1 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 4 Mar 2026 22:00:31 +0800 Subject: [PATCH 152/239] fix: add port auto-probing and partial-failure cleanup to MultiServerManager --- easi/llm/server_manager.py | 75 +++++++++++++++++++++++++----------- tests/test_server_manager.py | 61 +++++++++++++++++++++++++++-- 2 files changed, 111 insertions(+), 25 deletions(-) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 800af0f..0943ec2 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -26,6 +26,18 @@ } +def _port_is_available(port: int) -> bool: + """Check if a TCP port is available on localhost.""" + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + sock.bind(("127.0.0.1", port)) + return True + except OSError: + return False + finally: + sock.close() + + class ServerManager: """Manages a local inference server subprocess.""" @@ -106,18 +118,12 @@ def is_running(self) -> bool: def _check_port(self) -> None: """Raise if port is already in use.""" logger.trace("Checking if port %d is available...", self.port) - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - try: - sock.bind(("127.0.0.1", self.port)) - logger.trace("Port %d is available", self.port) - except OSError: + if not _port_is_available(self.port): raise RuntimeError( f"Port {self.port} is already in use. " f"Use --port to specify a different port, " f"or --llm-url to connect to an existing server." ) - finally: - sock.close() def _build_command(self) -> tuple[list[str], dict]: """Build the server launch command and environment overrides. @@ -236,26 +242,51 @@ def __init__( self._managers: list[ServerManager] = [] def start(self) -> list[str]: - """Start all instances, return list of base_urls.""" + """Start all instances, return list of base_urls. + + Ports are assigned by probing from *base_port* upward, skipping + any that are already in use. If any instance fails to start, + all previously started instances are stopped before re-raising. + """ gpus_per = len(self.gpu_ids) // self.num_instances urls = [] - for i in range(self.num_instances): - instance_gpus = self.gpu_ids[i * gpus_per : (i + 1) * gpus_per] - port = self.base_port + i - mgr = ServerManager( - backend="vllm", - model=self.model, - port=port, - server_kwargs=self.server_kwargs, - startup_timeout=self.startup_timeout, - log_dir=self.log_dir, - cuda_visible_devices=",".join(str(g) for g in instance_gpus), + next_port = self.base_port + try: + for i in range(self.num_instances): + instance_gpus = self.gpu_ids[i * gpus_per : (i + 1) * gpus_per] + port = self._find_available_port(next_port) + next_port = port + 1 + mgr = ServerManager( + backend="vllm", + model=self.model, + port=port, + server_kwargs=self.server_kwargs, + startup_timeout=self.startup_timeout, + log_dir=self.log_dir, + cuda_visible_devices=",".join(str(g) for g in instance_gpus), + ) + url = mgr.start() + urls.append(url) + self._managers.append(mgr) + except Exception: + logger.warning( + "Instance %d failed to start, stopping %d already-running instances", + i, len(self._managers), ) - url = mgr.start() - urls.append(url) - self._managers.append(mgr) + self.stop() + raise return urls + @staticmethod + def _find_available_port(start: int, max_probe: int = 100) -> int: + """Find the first available port starting from *start*.""" + for port in range(start, start + max_probe): + if _port_is_available(port): + return port + raise RuntimeError( + f"No available port found in range {start}-{start + max_probe - 1}" + ) + def stop(self): """Stop all managed instances.""" for mgr in self._managers: diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 4302c4f..cb899d4 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -129,7 +129,8 @@ def test_multi_server_manager_starts_n_instances(self): from unittest.mock import patch, MagicMock from easi.llm.server_manager import MultiServerManager - with patch("easi.llm.server_manager.ServerManager") as MockSM: + with patch("easi.llm.server_manager.ServerManager") as MockSM, \ + patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() mock_instance.start.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance @@ -157,7 +158,8 @@ def test_multi_server_manager_tp2_gpu_assignment(self): from unittest.mock import patch, MagicMock from easi.llm.server_manager import MultiServerManager - with patch("easi.llm.server_manager.ServerManager") as MockSM: + with patch("easi.llm.server_manager.ServerManager") as MockSM, \ + patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() mock_instance.start.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance @@ -179,7 +181,8 @@ def test_multi_server_manager_stop_all(self): from unittest.mock import patch, MagicMock from easi.llm.server_manager import MultiServerManager - with patch("easi.llm.server_manager.ServerManager") as MockSM: + with patch("easi.llm.server_manager.ServerManager") as MockSM, \ + patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() mock_instance.start.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance @@ -196,3 +199,55 @@ def test_multi_server_manager_validates_gpu_count(self): with pytest.raises(ValueError, match="divide.*evenly"): MultiServerManager(model="m", num_instances=3, gpu_ids=[0, 1]) + + def test_port_skips_taken(self): + """Should auto-increment past taken ports.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + # Port 8000 available, 8001 taken, 8002 available + port_map = {8000: True, 8001: False, 8002: True} + + with patch("easi.llm.server_manager.ServerManager") as MockSM, \ + patch("easi.llm.server_manager._port_is_available", + side_effect=lambda p: port_map.get(p, True)): + mock_instance = MagicMock() + mock_instance.start.return_value = "http://localhost:8000/v1" + MockSM.return_value = mock_instance + + mgr = MultiServerManager( + model="test-model", + num_instances=2, + gpu_ids=[0, 1], + base_port=8000, + ) + mgr.start() + + calls = MockSM.call_args_list + assert calls[0].kwargs["port"] == 8000 + assert calls[1].kwargs["port"] == 8002 # skipped 8001 + + def test_partial_failure_cleanup(self): + """If instance N fails, instances 0..N-1 should be stopped.""" + from unittest.mock import patch, MagicMock, call + from easi.llm.server_manager import MultiServerManager + + instance_0 = MagicMock() + instance_0.start.return_value = "http://localhost:8000/v1" + instance_1 = MagicMock() + instance_1.start.side_effect = RuntimeError("startup failed") + + with patch("easi.llm.server_manager.ServerManager", + side_effect=[instance_0, instance_1]), \ + patch("easi.llm.server_manager._port_is_available", return_value=True): + mgr = MultiServerManager( + model="test-model", + num_instances=2, + gpu_ids=[0, 1], + base_port=8000, + ) + with pytest.raises(RuntimeError, match="startup failed"): + mgr.start() + + # Instance 0 should have been stopped during cleanup + instance_0.stop.assert_called_once() From cd84c96722b81fe1cee348e5fe5692277811da9f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 5 Mar 2026 13:03:48 +0800 Subject: [PATCH 153/239] fix: improve parallel vLLM robustness and observability - Fix GPU restriction bug: gpu_ids=None no longer defaults to [0], allowing unrestricted GPU access for single-instance setups - Add GPU ID validation against hardware via nvidia-smi detection - Fix KeyboardInterrupt cleanup: server startup now inside try/finally in both sequential and parallel runners - Start vLLM instances in parallel (launch all, then health-check concurrently via ThreadPoolExecutor) - Add per-instance log labels ([vllm-0], [vllm-1]) for all server log messages including TRACE-level process output - Fix empty URL edge case in comma-separated --llm-url parsing - Remove deprecated log_dir parameter from ServerManager - Rename internal vllm_urls variable to base_urls for clarity - Remove duplicate test between test_cli.py and test_parallel_vllm.py --- easi/evaluation/parallel_runner.py | 89 ++++++++---- easi/evaluation/runner.py | 213 +++++++++++++++-------------- easi/llm/server_manager.py | 112 +++++++++------ tests/test_parallel_runner.py | 50 +++++++ tests/test_parallel_vllm.py | 27 ---- tests/test_server_manager.py | 71 ++++++++-- 6 files changed, 352 insertions(+), 210 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 75c70ee..482a1ef 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -24,6 +24,27 @@ logger = get_logger(__name__) +def _get_gpu_count() -> int | None: + """Detect the number of GPUs via nvidia-smi. + + Returns the GPU count, or None if detection fails (e.g., no GPUs, + nvidia-smi not installed). + """ + import subprocess + + try: + result = subprocess.run( + ["nvidia-smi", "--query-gpu=index", "--format=csv,noheader"], + capture_output=True, text=True, timeout=10, + ) + if result.returncode == 0: + lines = [l.strip() for l in result.stdout.strip().splitlines() if l.strip()] + return len(lines) + except (FileNotFoundError, subprocess.TimeoutExpired): + pass + return None + + class ParallelRunner(EvaluationRunner): """Thread-pool based parallel evaluation runner. @@ -56,11 +77,27 @@ def _validate_gpu_args(self): f"--vllm-gpus and --sim-gpus must not overlap. " f"Overlapping GPU IDs: {overlap}" ) + # Validate GPU IDs against hardware + all_gpu_ids = set() + if self.vllm_gpus: + all_gpu_ids.update(self.vllm_gpus) + if self.sim_gpus: + all_gpu_ids.update(self.sim_gpus) + if all_gpu_ids: + gpu_count = _get_gpu_count() + if gpu_count is not None: + invalid = {g for g in all_gpu_ids if g < 0 or g >= gpu_count} + if invalid: + raise ValueError( + f"GPU IDs {sorted(invalid)} do not exist. " + f"This machine has {gpu_count} GPU(s) " + f"(valid IDs: 0-{gpu_count - 1})." + ) def _parse_base_urls(self) -> list[str | None]: """Parse base URL(s) into list for round-robin assignment.""" if self.llm_base_url: - return [u.strip() for u in self.llm_base_url.split(",")] + return [u.strip() for u in self.llm_base_url.split(",") if u.strip()] return [None] def run(self) -> list[dict]: @@ -74,31 +111,31 @@ def run(self) -> list[dict]: backend, base_url = self._resolve_llm_backend() server_mgr = None - if backend == "vllm" and base_url is None: - # Auto-manage vLLM instances - from easi.llm.server_manager import MultiServerManager - from easi.llm.utils import parse_llm_kwargs, split_kwargs as _split - - all_kw = parse_llm_kwargs(self.llm_kwargs_raw) - srv_kw, _ = _split(all_kw) - - num_instances = self.vllm_instances or 1 - gpu_ids = self.vllm_gpus or list(range(num_instances)) - - server_mgr = MultiServerManager( - model=self.model, - num_instances=num_instances, - gpu_ids=gpu_ids, - base_port=self.port or 8000, - server_kwargs=srv_kw, - ) - vllm_urls = server_mgr.start() - elif base_url: - vllm_urls = self._parse_base_urls() - else: - vllm_urls = [None] - try: + if backend == "vllm" and base_url is None: + # Auto-manage vLLM instances + from easi.llm.server_manager import MultiServerManager + from easi.llm.utils import parse_llm_kwargs, split_kwargs as _split + + all_kw = parse_llm_kwargs(self.llm_kwargs_raw) + srv_kw, _ = _split(all_kw) + + num_instances = self.vllm_instances or 1 + gpu_ids = self.vllm_gpus + + server_mgr = MultiServerManager( + model=self.model, + num_instances=num_instances, + gpu_ids=gpu_ids, + base_port=self.port, + server_kwargs=srv_kw, + ) + base_urls = server_mgr.start() + elif base_url: + base_urls = self._parse_base_urls() + else: + base_urls = [None] + # --- Load task --- logger.trace("Loading task") task = self._create_task() @@ -202,7 +239,7 @@ def _worker(worker_id: int) -> None: # Create agent logger.trace("[Worker %d] Creating agent", worker_id) # Round-robin URL assignment - worker_url = vllm_urls[worker_id % len(vllm_urls)] + worker_url = base_urls[worker_id % len(base_urls)] agent = self._create_agent( task.action_space, task._config, backend=backend, base_url=worker_url, diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 05017fe..638c1a9 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -161,117 +161,118 @@ def run(self) -> list[dict]: # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() server = None - if backend == "vllm" and base_url is None: - from easi.llm.server_manager import ServerManager - from easi.llm.utils import parse_llm_kwargs, split_kwargs - all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) - server_kwargs, _ = split_kwargs(all_kwargs) - server = ServerManager( - "vllm", self.model, port=self.port, - server_kwargs=server_kwargs, log_dir=run_dir, + try: + if backend == "vllm" and base_url is None: + from easi.llm.server_manager import ServerManager + from easi.llm.utils import parse_llm_kwargs, split_kwargs + + all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + server_kwargs, _ = split_kwargs(all_kwargs) + server = ServerManager( + "vllm", self.model, port=self.port, + server_kwargs=server_kwargs, + ) + base_url = server.start() + + # Compute resolved generation kwargs (YAML defaults + CLI overrides) + from easi.llm.utils import parse_llm_kwargs, split_kwargs + agent_config = task._config.get("agent", {}) + yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) + all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) + _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) + resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} + + # Save run config + config = { + "run_id": self.run_id, + "total_episodes": len(episodes), + "cli_options": self._serialize_cli_options(), + "resolved_backend": backend, + "resolved_base_url": base_url, + "resolved_generation_kwargs": resolved_gen_kwargs, + "task_config": task._config, + } + (run_dir / "config.json").write_text(json.dumps(config, indent=2)) + logger.trace( + "Run config:\n%s", json.dumps(config, indent=2, default=str) ) - base_url = server.start() - - # Compute resolved generation kwargs (YAML defaults + CLI overrides) - from easi.llm.utils import parse_llm_kwargs, split_kwargs - agent_config = task._config.get("agent", {}) - yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) - all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) - _, cli_gen_kwargs = split_kwargs(all_llm_kwargs) - resolved_gen_kwargs = {**yaml_gen_kwargs, **cli_gen_kwargs} - - # Save run config - config = { - "run_id": self.run_id, - "total_episodes": len(episodes), - "cli_options": self._serialize_cli_options(), - "resolved_backend": backend, - "resolved_base_url": base_url, - "resolved_generation_kwargs": resolved_gen_kwargs, - "task_config": task._config, - } - (run_dir / "config.json").write_text(json.dumps(config, indent=2)) - logger.trace( - "Run config:\n%s", json.dumps(config, indent=2, default=str) - ) - # Skip simulator/agent if all episodes already complete (resume) - if start_index >= len(episodes): - logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) - if server: - server.stop() - else: - # 3. Create agent - agent = self._create_agent(task.action_space, task._config, - backend=backend, base_url=base_url) - - # 4. Start simulator - sim, sim_runner = self._create_simulator(task.simulator_key, task=task) - - try: - for i, episode in enumerate(episodes): - if i < start_index: - continue - episode_id = episode.get("episode_id", f"ep_{i}") - logger.info( - "Episode %d/%d: %s", i + 1, len(episodes), episode_id, - ) - - episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" - episode_dir.mkdir(exist_ok=True) - - result = None - for attempt in range(1, self.max_retries + 1): - try: - result = self._run_episode( - sim, agent, task, episode, i, episode_dir, - ) - break - except Exception as exc: - logger.warning( - "Episode %s attempt %d/%d failed: %s", - episode_id, attempt, self.max_retries, exc, - ) - self._clear_episode_dir(episode_dir) - if attempt < self.max_retries: - logger.info("Re-launching simulator for retry...") - try: - sim.close() - except Exception: - pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, + # Skip simulator/agent if all episodes already complete (resume) + if start_index >= len(episodes): + logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) + else: + # 3. Create agent + agent = self._create_agent(task.action_space, task._config, + backend=backend, base_url=base_url) + + # 4. Start simulator + sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + + try: + for i, episode in enumerate(episodes): + if i < start_index: + continue + episode_id = episode.get("episode_id", f"ep_{i}") + logger.info( + "Episode %d/%d: %s", i + 1, len(episodes), episode_id, + ) + + episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" + episode_dir.mkdir(exist_ok=True) + + result = None + for attempt in range(1, self.max_retries + 1): + try: + result = self._run_episode( + sim, agent, task, episode, i, episode_dir, ) - else: - logger.error( - "Episode %s failed after %d attempts, skipping", - episode_id, self.max_retries, + break + except Exception as exc: + logger.warning( + "Episode %s attempt %d/%d failed: %s", + episode_id, attempt, self.max_retries, exc, ) - result = { - "episode_id": episode_id, - "instruction": task.get_instruction(episode), - "success": 0.0, - "num_steps": 0, - "elapsed_seconds": 0.0, - "error": str(exc), - } - - all_results.append(result) - - # Save per-episode result (strip internal keys) - result_to_save = { - k: v for k, v in result.items() - if not k.startswith("_") - } - (episode_dir / "result.json").write_text( - json.dumps(result_to_save, indent=2) - ) - - finally: - sim.close() - if server: - server.stop() + self._clear_episode_dir(episode_dir) + if attempt < self.max_retries: + logger.info("Re-launching simulator for retry...") + try: + sim.close() + except Exception: + pass + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + else: + logger.error( + "Episode %s failed after %d attempts, skipping", + episode_id, self.max_retries, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": str(exc), + } + + all_results.append(result) + + # Save per-episode result (strip internal keys) + result_to_save = { + k: v for k, v in result.items() + if not k.startswith("_") + } + (episode_dir / "result.json").write_text( + json.dumps(result_to_save, indent=2) + ) + + finally: + sim.close() + finally: + if server: + server.stop() # 5. Build EpisodeRecords for aggregate_results records = [] diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 0943ec2..1b7d79d 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -19,7 +19,7 @@ logger = get_logger(__name__) _HEALTH_POLL_INTERVAL = 5.0 -_DEFAULT_STARTUP_TIMEOUT = 300.0 +_DEFAULT_STARTUP_TIMEOUT = 600.0 _DEFAULT_VLLM_FLAGS = { "enable_prefix_caching": True, "disable_log_requests": True, @@ -48,8 +48,8 @@ def __init__( port: int = 8080, server_kwargs: dict | None = None, startup_timeout: float = _DEFAULT_STARTUP_TIMEOUT, - log_dir: Path | None = None, # Deprecated: server output now goes to logger cuda_visible_devices: str | None = None, + label: str = "server", ): self.backend = backend self.model = model @@ -57,20 +57,26 @@ def __init__( self.server_kwargs = server_kwargs or {} self.startup_timeout = startup_timeout self.cuda_visible_devices = cuda_visible_devices + self.label = label self._process: subprocess.Popen | None = None self._log_thread: threading.Thread | None = None logger.trace( - "ServerManager init: backend=%s, model=%s, port=%d, " + "[%s] ServerManager init: backend=%s, model=%s, port=%d, " "server_kwargs=%s, cuda_visible_devices=%s", - backend, model, port, self.server_kwargs, cuda_visible_devices, + label, backend, model, port, self.server_kwargs, cuda_visible_devices, ) def start(self) -> str: """Start the server, wait for health, return base_url.""" + self.launch() + return self.wait_until_ready() + + def launch(self) -> None: + """Spawn the server process without waiting for health.""" self._check_port() cmd, extra_env = self._build_command() - logger.info("Starting %s server: %s", self.backend, " ".join(cmd)) + logger.info("[%s] Starting %s server: %s", self.label, self.backend, " ".join(cmd)) spawn_env = os.environ.copy() spawn_env.update(extra_env) @@ -83,25 +89,27 @@ def start(self) -> str: ) self._log_thread = threading.Thread( target=self._stream_output, - args=(self._process,), + args=(self._process, self.label), daemon=True, ) self._log_thread.start() + def wait_until_ready(self) -> str: + """Poll health endpoint until the server is ready. Returns base_url.""" base_url = f"http://localhost:{self.port}/v1" self._wait_for_health(base_url) - logger.info("Server ready at %s", base_url) + logger.info("[%s] Server ready at %s", self.label, base_url) return base_url def stop(self) -> None: """Terminate the server process.""" if self._process is not None: - logger.info("Stopping %s server (pid=%d)", self.backend, self._process.pid) + logger.info("[%s] Stopping %s server (pid=%d)", self.label, self.backend, self._process.pid) self._process.terminate() try: self._process.wait(timeout=30) except subprocess.TimeoutExpired: - logger.warning("Server did not terminate, killing...") + logger.warning("[%s] Server did not terminate, killing...", self.label) self._process.kill() self._process.wait(timeout=10) self._process = None @@ -117,7 +125,7 @@ def is_running(self) -> bool: def _check_port(self) -> None: """Raise if port is already in use.""" - logger.trace("Checking if port %d is available...", self.port) + logger.trace("[%s] Checking if port %d is available...", self.label, self.port) if not _port_is_available(self.port): raise RuntimeError( f"Port {self.port} is already in use. " @@ -145,15 +153,15 @@ def _build_command(self) -> tuple[list[str], dict]: if k in _DEFAULT_VLLM_FLAGS and v != _DEFAULT_VLLM_FLAGS[k] } if overridden: - logger.trace("User overrides for default vLLM flags: %s", overridden) - logger.trace("Merged vLLM kwargs: %s", merged_kwargs) + logger.trace("[%s] User overrides for default vLLM flags: %s", self.label, overridden) + logger.trace("[%s] Merged vLLM kwargs: %s", self.label, merged_kwargs) for key, value in merged_kwargs.items(): flag = "--" + key.replace("_", "-") if isinstance(value, bool): if value: cmd.append(flag) else: - logger.trace("Skipping disabled bool flag: %s", flag) + logger.trace("[%s] Skipping disabled bool flag: %s", self.label, flag) else: cmd.extend([flag, str(value)]) else: @@ -163,17 +171,17 @@ def _build_command(self) -> tuple[list[str], dict]: if self.cuda_visible_devices is not None: env["CUDA_VISIBLE_DEVICES"] = self.cuda_visible_devices - logger.trace("Built command: %s", cmd) - logger.trace("Extra env: %s", env) + logger.trace("[%s] Built command: %s", self.label, cmd) + logger.trace("[%s] Extra env: %s", self.label, env) return cmd, env @staticmethod - def _stream_output(proc: subprocess.Popen) -> None: + def _stream_output(proc: subprocess.Popen, label: str = "server") -> None: """Read server stdout/stderr line by line and log at TRACE level.""" for raw_line in proc.stdout: line = raw_line.decode("utf-8", errors="replace").rstrip() if line: - logger.trace("[server] %s", line) + logger.trace("[%s] %s", label, line) proc.stdout.close() def _wait_for_health(self, base_url: str) -> None: @@ -181,29 +189,31 @@ def _wait_for_health(self, base_url: str) -> None: health_url = base_url.replace("/v1", "") + "/health" deadline = time.monotonic() + self.startup_timeout logger.trace( - "Waiting for health at %s (timeout=%.0fs)", health_url, self.startup_timeout, + "[%s] Waiting for health at %s (timeout=%.0fs)", + self.label, health_url, self.startup_timeout, ) while time.monotonic() < deadline: if self._process and self._process.poll() is not None: raise RuntimeError( - f"{self.backend} server exited with code {self._process.returncode}. " + f"[{self.label}] {self.backend} server exited with code " + f"{self._process.returncode}. " f"Run with --verbosity TRACE to see server output." ) try: resp = requests.get(health_url, timeout=5) if resp.status_code == 200: - logger.trace("Health check passed (status=%d)", resp.status_code) + logger.trace("[%s] Health check passed (status=%d)", self.label, resp.status_code) return - logger.trace("Health check returned status %d, retrying...", resp.status_code) + logger.trace("[%s] Health check returned status %d, retrying...", self.label, resp.status_code) except requests.ConnectionError: - logger.trace("Health check connection refused, retrying...") + logger.trace("[%s] Health check connection refused, retrying...", self.label) time.sleep(_HEALTH_POLL_INTERVAL) self.stop() raise RuntimeError( - f"{self.backend} server failed to start within " + f"[{self.label}] {self.backend} server failed to start within " f"{self.startup_timeout}s. Run with --verbosity TRACE to see server output." ) @@ -221,13 +231,12 @@ def __init__( self, model: str, num_instances: int, - gpu_ids: list[int], + gpu_ids: list[int] | None = None, base_port: int = 8000, server_kwargs: dict | None = None, startup_timeout: float = 300.0, - log_dir: Path | str | None = None, ): - if len(gpu_ids) % num_instances != 0: + if gpu_ids is not None and len(gpu_ids) % num_instances != 0: raise ValueError( f"Cannot divide {len(gpu_ids)} GPUs evenly across " f"{num_instances} instances" @@ -238,22 +247,29 @@ def __init__( self.base_port = base_port self.server_kwargs = server_kwargs or {} self.startup_timeout = startup_timeout - self.log_dir = Path(log_dir) if log_dir else None self._managers: list[ServerManager] = [] def start(self) -> list[str]: - """Start all instances, return list of base_urls. + """Start all instances in parallel, return list of base_urls. - Ports are assigned by probing from *base_port* upward, skipping - any that are already in use. If any instance fails to start, - all previously started instances are stopped before re-raising. + All server processes are spawned first, then health checks run + concurrently via threads. Ports are assigned by probing from + *base_port* upward, skipping any that are already in use. If + any instance fails, all are stopped before re-raising. """ - gpus_per = len(self.gpu_ids) // self.num_instances - urls = [] + from concurrent.futures import ThreadPoolExecutor, as_completed + + gpus_per = len(self.gpu_ids) // self.num_instances if self.gpu_ids else None next_port = self.base_port + try: + # Phase 1: Spawn all processes (fast, no blocking) for i in range(self.num_instances): - instance_gpus = self.gpu_ids[i * gpus_per : (i + 1) * gpus_per] + if gpus_per is not None: + instance_gpus = self.gpu_ids[i * gpus_per : (i + 1) * gpus_per] + cuda_devices = ",".join(str(g) for g in instance_gpus) + else: + cuda_devices = None port = self._find_available_port(next_port) next_port = port + 1 mgr = ServerManager( @@ -262,19 +278,35 @@ def start(self) -> list[str]: port=port, server_kwargs=self.server_kwargs, startup_timeout=self.startup_timeout, - log_dir=self.log_dir, - cuda_visible_devices=",".join(str(g) for g in instance_gpus), + cuda_visible_devices=cuda_devices, + label=f"vllm-{i}", ) - url = mgr.start() - urls.append(url) + mgr.launch() self._managers.append(mgr) + + # Phase 2: Wait for all health checks concurrently + logger.info( + "All %d vLLM processes spawned, waiting for health checks...", + self.num_instances, + ) + urls = [None] * len(self._managers) + with ThreadPoolExecutor(max_workers=len(self._managers)) as pool: + future_to_idx = { + pool.submit(mgr.wait_until_ready): idx + for idx, mgr in enumerate(self._managers) + } + for future in as_completed(future_to_idx): + idx = future_to_idx[future] + urls[idx] = future.result() + except Exception: logger.warning( - "Instance %d failed to start, stopping %d already-running instances", - i, len(self._managers), + "vLLM startup failed, stopping %d spawned instances", + len(self._managers), ) self.stop() raise + return urls @staticmethod diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index ced2f42..4175eb5 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -219,6 +219,56 @@ def test_valid_gpu_config_passes(self): ) assert runner.vllm_instances == 2 + def test_invalid_gpu_ids_raises(self): + """Should raise if GPU IDs exceed hardware count.""" + from unittest.mock import patch + from easi.evaluation.parallel_runner import ParallelRunner + + with patch("easi.evaluation.parallel_runner._get_gpu_count", return_value=2): + with pytest.raises(ValueError, match="do not exist.*2 GPU"): + ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, backend="vllm", model="test", + vllm_instances=2, vllm_gpus=[0, 1, 2, 3], + ) + + def test_invalid_sim_gpu_ids_raises(self): + """Should raise if sim GPU IDs exceed hardware count.""" + from unittest.mock import patch + from easi.evaluation.parallel_runner import ParallelRunner + + with patch("easi.evaluation.parallel_runner._get_gpu_count", return_value=4): + with pytest.raises(ValueError, match="do not exist.*4 GPU"): + ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, sim_gpus=[5, 6], + ) + + def test_negative_gpu_id_raises(self): + """Should raise for negative GPU IDs.""" + from unittest.mock import patch + from easi.evaluation.parallel_runner import ParallelRunner + + with patch("easi.evaluation.parallel_runner._get_gpu_count", return_value=4): + with pytest.raises(ValueError, match="do not exist"): + ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, vllm_gpus=[-1, 0], + ) + + def test_gpu_validation_skipped_when_detection_fails(self): + """Should not raise when nvidia-smi is unavailable.""" + from unittest.mock import patch + from easi.evaluation.parallel_runner import ParallelRunner + + with patch("easi.evaluation.parallel_runner._get_gpu_count", return_value=None): + # Should not raise even with absurd GPU IDs + runner = ParallelRunner( + task_name="dummy_task", agent_type="dummy", + num_parallel=4, vllm_gpus=[99, 100], + ) + assert runner.vllm_gpus == [99, 100] + class TestCLIParallelArg: """Test --num-parallel CLI argument parsing.""" diff --git a/tests/test_parallel_vllm.py b/tests/test_parallel_vllm.py index 4f3679f..2b2fea3 100644 --- a/tests/test_parallel_vllm.py +++ b/tests/test_parallel_vllm.py @@ -47,30 +47,3 @@ def test_round_robin_url_assignment(): assert urls[3 % 2] == "http://localhost:8001/v1" -def test_cli_to_runner_gpu_flow(): - """Verify CLI args flow through to runner correctly.""" - from easi.cli import build_parser - - parser = build_parser() - args = parser.parse_args([ - "start", "dummy_task", - "--agent", "dummy", - "--backend", "vllm", - "--model", "test", - "--num-parallel", "12", - "--vllm-instances", "2", - "--vllm-gpus", "0,1", - "--sim-gpus", "2,3", - ]) - - # Verify CLI parsing - assert args.vllm_instances == 2 - assert args.vllm_gpus == "0,1" - assert args.sim_gpus == "2,3" - assert args.num_parallel == 12 - - # Verify string-to-list conversion (same logic as cmd_start) - vllm_gpus = [int(g) for g in args.vllm_gpus.split(",")] - sim_gpus = [int(g) for g in args.sim_gpus.split(",")] - assert vllm_gpus == [0, 1] - assert sim_gpus == [2, 3] diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index cb899d4..89fccc4 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -132,7 +132,7 @@ def test_multi_server_manager_starts_n_instances(self): with patch("easi.llm.server_manager.ServerManager") as MockSM, \ patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() - mock_instance.start.return_value = "http://localhost:8000/v1" + mock_instance.wait_until_ready.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance mgr = MultiServerManager( @@ -145,6 +145,9 @@ def test_multi_server_manager_starts_n_instances(self): assert len(urls) == 2 assert MockSM.call_count == 2 + # All instances should be launched then health-checked + assert mock_instance.launch.call_count == 2 + assert mock_instance.wait_until_ready.call_count == 2 # Check GPU assignment: instance 0 → GPU 0, instance 1 → GPU 1 calls = MockSM.call_args_list @@ -161,7 +164,7 @@ def test_multi_server_manager_tp2_gpu_assignment(self): with patch("easi.llm.server_manager.ServerManager") as MockSM, \ patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() - mock_instance.start.return_value = "http://localhost:8000/v1" + mock_instance.wait_until_ready.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance mgr = MultiServerManager( @@ -184,7 +187,7 @@ def test_multi_server_manager_stop_all(self): with patch("easi.llm.server_manager.ServerManager") as MockSM, \ patch("easi.llm.server_manager._port_is_available", return_value=True): mock_instance = MagicMock() - mock_instance.start.return_value = "http://localhost:8000/v1" + mock_instance.wait_until_ready.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance mgr = MultiServerManager(model="m", num_instances=2, gpu_ids=[0, 1]) @@ -200,6 +203,28 @@ def test_multi_server_manager_validates_gpu_count(self): with pytest.raises(ValueError, match="divide.*evenly"): MultiServerManager(model="m", num_instances=3, gpu_ids=[0, 1]) + def test_no_gpu_ids_skips_cuda_env(self): + """With gpu_ids=None, cuda_visible_devices should not be set.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + with patch("easi.llm.server_manager.ServerManager") as MockSM, \ + patch("easi.llm.server_manager._port_is_available", return_value=True): + mock_instance = MagicMock() + mock_instance.wait_until_ready.return_value = "http://localhost:8000/v1" + MockSM.return_value = mock_instance + + mgr = MultiServerManager( + model="test-model", + num_instances=1, + gpu_ids=None, + base_port=8000, + ) + mgr.start() + + calls = MockSM.call_args_list + assert calls[0].kwargs["cuda_visible_devices"] is None + def test_port_skips_taken(self): """Should auto-increment past taken ports.""" from unittest.mock import patch, MagicMock @@ -212,7 +237,7 @@ def test_port_skips_taken(self): patch("easi.llm.server_manager._port_is_available", side_effect=lambda p: port_map.get(p, True)): mock_instance = MagicMock() - mock_instance.start.return_value = "http://localhost:8000/v1" + mock_instance.wait_until_ready.return_value = "http://localhost:8000/v1" MockSM.return_value = mock_instance mgr = MultiServerManager( @@ -227,15 +252,38 @@ def test_port_skips_taken(self): assert calls[0].kwargs["port"] == 8000 assert calls[1].kwargs["port"] == 8002 # skipped 8001 - def test_partial_failure_cleanup(self): - """If instance N fails, instances 0..N-1 should be stopped.""" - from unittest.mock import patch, MagicMock, call + def test_partial_failure_cleanup_on_launch(self): + """If launch() fails for instance N, instances 0..N-1 should be stopped.""" + from unittest.mock import patch, MagicMock + from easi.llm.server_manager import MultiServerManager + + instance_0 = MagicMock() + instance_1 = MagicMock() + instance_1.launch.side_effect = RuntimeError("launch failed") + + with patch("easi.llm.server_manager.ServerManager", + side_effect=[instance_0, instance_1]), \ + patch("easi.llm.server_manager._port_is_available", return_value=True): + mgr = MultiServerManager( + model="test-model", + num_instances=2, + gpu_ids=[0, 1], + base_port=8000, + ) + with pytest.raises(RuntimeError, match="launch failed"): + mgr.start() + + instance_0.stop.assert_called_once() + + def test_partial_failure_cleanup_on_health(self): + """If wait_until_ready() fails, all spawned instances should be stopped.""" + from unittest.mock import patch, MagicMock from easi.llm.server_manager import MultiServerManager instance_0 = MagicMock() - instance_0.start.return_value = "http://localhost:8000/v1" + instance_0.wait_until_ready.return_value = "http://localhost:8000/v1" instance_1 = MagicMock() - instance_1.start.side_effect = RuntimeError("startup failed") + instance_1.wait_until_ready.side_effect = RuntimeError("health check failed") with patch("easi.llm.server_manager.ServerManager", side_effect=[instance_0, instance_1]), \ @@ -246,8 +294,9 @@ def test_partial_failure_cleanup(self): gpu_ids=[0, 1], base_port=8000, ) - with pytest.raises(RuntimeError, match="startup failed"): + with pytest.raises(RuntimeError, match="health check failed"): mgr.start() - # Instance 0 should have been stopped during cleanup + # Both should be stopped during cleanup instance_0.stop.assert_called_once() + instance_1.stop.assert_called_once() From ddc27a1f30bce865db7591cc9e9e83342c4b31c7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 5 Mar 2026 13:23:18 +0800 Subject: [PATCH 154/239] fix: add warning --- easi/evaluation/parallel_runner.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 482a1ef..ff490b0 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -77,6 +77,18 @@ def _validate_gpu_args(self): f"--vllm-gpus and --sim-gpus must not overlap. " f"Overlapping GPU IDs: {overlap}" ) + # Warn if vLLM-specific args are set but backend is not vllm + if self.backend and self.backend != "vllm": + ignored = [] + if self.vllm_instances: + ignored.append("--vllm-instances") + if self.vllm_gpus: + ignored.append("--vllm-gpus") + if ignored: + logger.warning( + "%s will be ignored because --backend is '%s' (not 'vllm').", + ", ".join(ignored), self.backend, + ) # Validate GPU IDs against hardware all_gpu_ids = set() if self.vllm_gpus: From a49b9f9e9d36995f11d96edec37721c767093f8f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 5 Mar 2026 13:24:09 +0800 Subject: [PATCH 155/239] docs: updated cli-reference --- CLAUDE.md | 19 ++++++++++++++++--- docs/cli-reference.md | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 4ddd269..ba9bbf2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -76,7 +76,7 @@ easi/ │ ├── evaluation/ # Evaluation orchestration │ ├── runner.py # EvaluationRunner (sequential) -│ ├── parallel_runner.py # ParallelRunner (thread-pool, API backends) +│ ├── parallel_runner.py # ParallelRunner (thread-pool, any backend) │ └── metrics.py # default_aggregate + legacy aggregate_metrics │ ├── llm/ # LLM client infrastructure @@ -144,11 +144,24 @@ easi start \ --agent {dummy|react} \ --backend {vllm|openai|anthropic|gemini} \ --model \ - --num-parallel \ # Thread-pool parallelism (API backends only) + --num-parallel \ # Thread-pool parallelism --max-episodes \ --resume \ --output-dir ./logs \ - --llm-kwargs '{"temperature": 0.7}' + --llm-kwargs '{"temperature": 0.7}' \ + --vllm-instances \ # Number of vLLM server instances (default: 1) + --vllm-gpus 0,1,2,3 \ # GPUs for vLLM (split across instances) + --sim-gpus 4,5 # GPUs for simulator rendering +``` + +**Parallel vLLM example** (2 instances with TP=2, 8 workers, simulators on separate GPUs): +```bash +easi start ebalfred_base \ + --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --num-parallel 8 --vllm-instances 2 \ + --vllm-gpus 0,1,2,3 --sim-gpus 4,5 \ + --llm-kwargs '{"tensor_parallel_size": 2}' ``` ## Output Structure diff --git a/docs/cli-reference.md b/docs/cli-reference.md index efd3196..e6c1d97 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -61,11 +61,27 @@ easi start [TASK ...] [options] | Option | Description | |---|---| -| `--num-parallel N` | Parallel simulator instances (default: 1). API backends only. | +| `--num-parallel N` | Parallel simulator instances (default: 1). Works with any backend. | | `--max-episodes N` | Max episodes to run (default: all) | | `--seed SEED` | Random seed for agent reproducibility | | `--render-platform PLATFORM` | Rendering platform override (default: simulator's preference). See [Render Platforms](#render-platforms). | +### GPU Allocation (vLLM backend) + +| Option | Description | +|---|---| +| `--vllm-instances N` | Number of vLLM server instances to start (default: 1). Each runs on a subset of `--vllm-gpus`. | +| `--vllm-gpus IDS` | Comma-separated GPU IDs for vLLM inference (e.g., `0,1,2,3`). GPUs are split evenly across instances. | +| `--sim-gpus IDS` | Comma-separated GPU IDs for simulator rendering (e.g., `4,5`). Sets `CUDA_VISIBLE_DEVICES` for simulator subprocesses. | + +**Notes:** +- `--vllm-gpus` is required when `--vllm-instances > 1`. +- `--vllm-gpus` and `--sim-gpus` must not overlap. +- GPU IDs are validated against hardware at startup (via `nvidia-smi`). +- All vLLM instances start in parallel (processes spawned first, then health-checked concurrently). +- Workers are assigned to vLLM instances via round-robin (e.g., 8 workers across 2 instances → 4 workers per instance). +- These options are ignored with a warning if `--backend` is not `vllm`. + ### Data & Output | Option | Description | @@ -109,10 +125,26 @@ easi start ebalfred_base --agent react --backend openai --model gpt-4o \ # Limit episodes easi start ebalfred_base --agent dummy --max-episodes 5 --seed 42 -# Parallel evaluation (API backends only) +# Parallel evaluation (API backend) easi start ebalfred_base --agent react --backend openai --model gpt-4o \ --num-parallel 4 +# Parallel evaluation with local vLLM (1 instance, all GPUs) +easi start ebalfred_base --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-7B-Instruct --num-parallel 8 + +# Parallel vLLM with 2 instances (TP=2 each) + separate sim GPUs +easi start ebalfred_base --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --num-parallel 8 --vllm-instances 2 \ + --vllm-gpus 0,1,2,3 --sim-gpus 4,5 \ + --llm-kwargs '{"tensor_parallel_size": 2}' + +# External multi-URL vLLM (pre-started servers, no auto-management) +easi start ebalfred_base --agent react --backend vllm \ + --model Qwen/Qwen2.5-VL-72B-Instruct --num-parallel 8 \ + --llm-url http://localhost:8000/v1,http://localhost:8001/v1 + # Multiple tasks easi start ebalfred_base ebnavigation_base --agent react \ --backend openai --model gpt-4o From ebb591fea0bd243aa6a83cf6e3c51ea1494e7b25 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 7 Mar 2026 21:33:13 +0800 Subject: [PATCH 156/239] feat: add habitat-sim v0.1.7 simulator integration (Python 3.7) New simulator version for VLN-CE R2R support. Includes conda env config (Python 3.7 + habitat-sim 0.1.7), simulator/env_manager classes, smoke-test bridge, and manifest registration. --- easi/simulators/habitat_sim/manifest.yaml | 5 ++ .../simulators/habitat_sim/v0_1_7/__init__.py | 6 ++ easi/simulators/habitat_sim/v0_1_7/bridge.py | 64 +++++++++++++++++++ .../habitat_sim/v0_1_7/conda_env.yaml | 9 +++ .../habitat_sim/v0_1_7/env_manager.py | 39 +++++++++++ .../habitat_sim/v0_1_7/requirements.txt | 2 + .../habitat_sim/v0_1_7/simulator.py | 22 +++++++ 7 files changed, 147 insertions(+) create mode 100644 easi/simulators/habitat_sim/v0_1_7/__init__.py create mode 100644 easi/simulators/habitat_sim/v0_1_7/bridge.py create mode 100644 easi/simulators/habitat_sim/v0_1_7/conda_env.yaml create mode 100644 easi/simulators/habitat_sim/v0_1_7/env_manager.py create mode 100644 easi/simulators/habitat_sim/v0_1_7/requirements.txt create mode 100644 easi/simulators/habitat_sim/v0_1_7/simulator.py diff --git a/easi/simulators/habitat_sim/manifest.yaml b/easi/simulators/habitat_sim/manifest.yaml index bbe4899..4c40cba 100644 --- a/easi/simulators/habitat_sim/manifest.yaml +++ b/easi/simulators/habitat_sim/manifest.yaml @@ -2,6 +2,11 @@ name: habitat_sim display_name: "Habitat Simulator" default_version: "v0_3_0" versions: + v0_1_7: + description: "Habitat 0.1.7 — VLN-CE R2R (Python 3.7)" + simulator_class: "easi.simulators.habitat_sim.v0_1_7.simulator.HabitatSimulatorV017" + env_manager_class: "easi.simulators.habitat_sim.v0_1_7.env_manager.HabitatEnvManagerV017" + python_version: "3.7" v0_3_0: description: "Habitat 0.3.0 — currently used by eb-habitat" simulator_class: "easi.simulators.habitat_sim.v0_3_0.simulator.HabitatSimulatorV030" diff --git a/easi/simulators/habitat_sim/v0_1_7/__init__.py b/easi/simulators/habitat_sim/v0_1_7/__init__.py new file mode 100644 index 0000000..4afc530 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/__init__.py @@ -0,0 +1,6 @@ +"""Habitat simulator v0.1.7.""" + +from easi.simulators.habitat_sim.v0_1_7.env_manager import HabitatEnvManagerV017 +from easi.simulators.habitat_sim.v0_1_7.simulator import HabitatSimulatorV017 + +__all__ = ["HabitatSimulatorV017", "HabitatEnvManagerV017"] diff --git a/easi/simulators/habitat_sim/v0_1_7/bridge.py b/easi/simulators/habitat_sim/v0_1_7/bridge.py new file mode 100644 index 0000000..96757bb --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/bridge.py @@ -0,0 +1,64 @@ +"""Generic Habitat v0.1.7 bridge for smoke testing. + +This script runs inside the easi_habitat_sim_v0_1_7 conda environment (Python 3.7). +Task-specific bridges (e.g., VLNCEBridge) extend BaseBridge directly. +This generic bridge is used by `easi sim test habitat_sim:v0_1_7`. + +Usage: + python bridge.py --workspace /tmp/easi_xxx +""" + +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[4] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.communication.filesystem import poll_for_command, write_response, write_status +from easi.communication.schemas import make_error_response +from easi.utils.logging import get_logger, setup_logging + +logger = get_logger(__name__) + + +class HabitatV017Bridge: + """Smoke test bridge -- verifies habitat-sim imports work.""" + + def __init__(self, workspace): + self.workspace = Path(workspace) + + def run(self): + import habitat_sim + + logger.info("habitat-sim %s loaded successfully", habitat_sim.__version__) + write_status(self.workspace, ready=True) + + while True: + command = poll_for_command(self.workspace, timeout=60.0) + if command.get("type") == "close": + write_response(self.workspace, {"status": "ok"}) + break + write_response( + self.workspace, + make_error_response( + "Smoke test bridge: only 'close' supported" + ), + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--workspace", type=Path, required=True) + parser.add_argument("--simulator-kwargs", type=str, default=None) + args, _ = parser.parse_known_args() + setup_logging("DEBUG") + bridge = HabitatV017Bridge(workspace=args.workspace) + bridge.run() + + +if __name__ == "__main__": + main() diff --git a/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml b/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml new file mode 100644 index 0000000..e029a66 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml @@ -0,0 +1,9 @@ +name: easi_habitat_sim_v0_1_7 +channels: + - aihabitat + - conda-forge + - defaults +dependencies: + - python=3.7 + - habitat-sim=0.1.7 + - headless diff --git a/easi/simulators/habitat_sim/v0_1_7/env_manager.py b/easi/simulators/habitat_sim/v0_1_7/env_manager.py new file mode 100644 index 0000000..e2d385f --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/env_manager.py @@ -0,0 +1,39 @@ +"""Environment manager for Habitat v0.1.7.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_env_manager import BaseEnvironmentManager + + +class HabitatEnvManagerV017(BaseEnvironmentManager): + """Environment manager for Habitat 0.1.7.""" + + @property + def simulator_name(self) -> str: + return "habitat_sim" + + @property + def version(self) -> str: + return "v0_1_7" + + @property + def default_render_platform(self) -> str: + return "auto" + + @property + def supported_render_platforms(self) -> list[str]: + return ["auto", "xvfb", "native", "egl"] + + def get_conda_env_yaml_path(self) -> Path: + return Path(__file__).parent / "conda_env.yaml" + + def get_requirements_txt_path(self) -> Path: + return Path(__file__).parent / "requirements.txt" + + def get_system_deps(self) -> list[str]: + return ["conda", "xvfb", "egl"] + + def get_validation_import(self) -> str: + return "import habitat_sim; print('habitat-sim', habitat_sim.__version__)" diff --git a/easi/simulators/habitat_sim/v0_1_7/requirements.txt b/easi/simulators/habitat_sim/v0_1_7/requirements.txt new file mode 100644 index 0000000..9ca4997 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/requirements.txt @@ -0,0 +1,2 @@ +numpy>=1.17,<1.22 +Pillow>=7.0,<10.0 diff --git a/easi/simulators/habitat_sim/v0_1_7/simulator.py b/easi/simulators/habitat_sim/v0_1_7/simulator.py new file mode 100644 index 0000000..633b5f5 --- /dev/null +++ b/easi/simulators/habitat_sim/v0_1_7/simulator.py @@ -0,0 +1,22 @@ +"""Habitat simulator v0.1.7.""" + +from __future__ import annotations + +from pathlib import Path + +from easi.core.base_simulator import BaseSimulator + + +class HabitatSimulatorV017(BaseSimulator): + """Habitat 0.1.7 simulator (VLN-CE R2R).""" + + @property + def name(self) -> str: + return "habitat_sim" + + @property + def version(self) -> str: + return "v0_1_7" + + def _get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" From e2f7634f55db82627e36f01f55cfe28cfd29cd45 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 7 Mar 2026 22:10:36 +0800 Subject: [PATCH 157/239] fix: use Python 3.8 for habitat-sim v0.1.7 (uv requires >=3.8) Also update bridge to handle reset/step/close commands for easi sim test, and adjust numpy upper bound for Python 3.8 compatibility. --- easi/simulators/habitat_sim/manifest.yaml | 4 +- easi/simulators/habitat_sim/v0_1_7/bridge.py | 68 ++++++++++++++++--- .../habitat_sim/v0_1_7/conda_env.yaml | 2 +- .../habitat_sim/v0_1_7/requirements.txt | 2 +- 4 files changed, 63 insertions(+), 13 deletions(-) diff --git a/easi/simulators/habitat_sim/manifest.yaml b/easi/simulators/habitat_sim/manifest.yaml index 4c40cba..33e803b 100644 --- a/easi/simulators/habitat_sim/manifest.yaml +++ b/easi/simulators/habitat_sim/manifest.yaml @@ -3,10 +3,10 @@ display_name: "Habitat Simulator" default_version: "v0_3_0" versions: v0_1_7: - description: "Habitat 0.1.7 — VLN-CE R2R (Python 3.7)" + description: "Habitat 0.1.7 — VLN-CE R2R (Python 3.8)" simulator_class: "easi.simulators.habitat_sim.v0_1_7.simulator.HabitatSimulatorV017" env_manager_class: "easi.simulators.habitat_sim.v0_1_7.env_manager.HabitatEnvManagerV017" - python_version: "3.7" + python_version: "3.8" v0_3_0: description: "Habitat 0.3.0 — currently used by eb-habitat" simulator_class: "easi.simulators.habitat_sim.v0_3_0.simulator.HabitatSimulatorV030" diff --git a/easi/simulators/habitat_sim/v0_1_7/bridge.py b/easi/simulators/habitat_sim/v0_1_7/bridge.py index 96757bb..dead061 100644 --- a/easi/simulators/habitat_sim/v0_1_7/bridge.py +++ b/easi/simulators/habitat_sim/v0_1_7/bridge.py @@ -1,6 +1,6 @@ """Generic Habitat v0.1.7 bridge for smoke testing. -This script runs inside the easi_habitat_sim_v0_1_7 conda environment (Python 3.7). +This script runs inside the easi_habitat_sim_v0_1_7 conda environment (Python 3.8). Task-specific bridges (e.g., VLNCEBridge) extend BaseBridge directly. This generic bridge is used by `easi sim test habitat_sim:v0_1_7`. @@ -11,7 +11,9 @@ from __future__ import annotations import argparse +import struct import sys +import zlib from pathlib import Path _repo_root = Path(__file__).resolve().parents[4] @@ -19,17 +21,39 @@ sys.path.insert(0, str(_repo_root)) from easi.communication.filesystem import poll_for_command, write_response, write_status -from easi.communication.schemas import make_error_response +from easi.communication.schemas import make_error_response, make_observation_response from easi.utils.logging import get_logger, setup_logging logger = get_logger(__name__) +def _generate_placeholder_image(directory: Path, step: int) -> str: + """Generate a minimal 8x8 placeholder PNG.""" + rgb_path = directory / f"rgb_{step:04d}.png" + + def _chunk(chunk_type: bytes, data: bytes) -> bytes: + c = chunk_type + data + crc = zlib.crc32(c) & 0xFFFFFFFF + return struct.pack(">I", len(data)) + c + struct.pack(">I", crc) + + width, height = 8, 8 + header = b"\x89PNG\r\n\x1a\n" + ihdr = _chunk(b"IHDR", struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0)) + raw_data = b"" + for _ in range(height): + raw_data += b"\x00" + bytes([128, 128, 128]) * width + idat = _chunk(b"IDAT", zlib.compress(raw_data)) + iend = _chunk(b"IEND", b"") + rgb_path.write_bytes(header + ihdr + idat + iend) + return str(rgb_path) + + class HabitatV017Bridge: """Smoke test bridge -- verifies habitat-sim imports work.""" def __init__(self, workspace): self.workspace = Path(workspace) + self.step_count = 0 def run(self): import habitat_sim @@ -39,15 +63,41 @@ def run(self): while True: command = poll_for_command(self.workspace, timeout=60.0) - if command.get("type") == "close": + cmd_type = command.get("type") + + if cmd_type == "reset": + episode_id = command.get("episode_id", "unknown") + logger.info("Reset: episode_id=%s", episode_id) + self.step_count = 0 + rgb_path = _generate_placeholder_image(self.workspace, self.step_count) + write_response(self.workspace, make_observation_response( + rgb_path=rgb_path, + agent_pose=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={"episode_id": episode_id, "step": "0"}, + )) + + elif cmd_type == "step": + self.step_count += 1 + rgb_path = _generate_placeholder_image(self.workspace, self.step_count) + done = self.step_count >= 5 + write_response(self.workspace, make_observation_response( + rgb_path=rgb_path, + agent_pose=[float(self.step_count), 0.0, 0.0, 0.0, 0.0, 0.0], + metadata={"step": str(self.step_count)}, + reward=0.0, + done=done, + )) + + elif cmd_type == "close": + logger.info("Close command received, shutting down") write_response(self.workspace, {"status": "ok"}) break - write_response( - self.workspace, - make_error_response( - "Smoke test bridge: only 'close' supported" - ), - ) + + else: + logger.warning("Unknown command type: %s", cmd_type) + write_response(self.workspace, make_error_response( + f"Unknown command: {cmd_type}" + )) def main(): diff --git a/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml b/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml index e029a66..53dd9aa 100644 --- a/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml +++ b/easi/simulators/habitat_sim/v0_1_7/conda_env.yaml @@ -4,6 +4,6 @@ channels: - conda-forge - defaults dependencies: - - python=3.7 + - python=3.8 - habitat-sim=0.1.7 - headless diff --git a/easi/simulators/habitat_sim/v0_1_7/requirements.txt b/easi/simulators/habitat_sim/v0_1_7/requirements.txt index 9ca4997..119d235 100644 --- a/easi/simulators/habitat_sim/v0_1_7/requirements.txt +++ b/easi/simulators/habitat_sim/v0_1_7/requirements.txt @@ -1,2 +1,2 @@ -numpy>=1.17,<1.22 +numpy>=1.17,<1.25 Pillow>=7.0,<10.0 From aa1316574fc95039cb044c421eb00a42ff6d9984 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 00:17:11 +0800 Subject: [PATCH 158/239] feat: add VLN-CE R2R task integration 13 new files implementing the VLN-CE Room-to-Room benchmark: - actions.py: 4 discrete actions (move_forward, turn_left, turn_right, stop) - vendor/dtw.py: NDTW/SDTW metric computation via fastdtw - vendor/scene_config.py: habitat-sim 0.1.7 single-camera config - vendor/scene_simulator.py: scene simulator with path tracking and metrics - bridge.py: BaseBridge subclass for subprocess IPC - task.py: BaseTask subclass with null-safe metrics for test split - prompts.py: VLNCEPromptBuilder with EmbodiedBench JSON format - YAML configs: 3 splits (val_seen, val_unseen, test) --- easi/tasks/vlnce_r2r/__init__.py | 1 + easi/tasks/vlnce_r2r/_base.yaml | 40 +++ easi/tasks/vlnce_r2r/actions.py | 18 ++ easi/tasks/vlnce_r2r/bridge.py | 127 ++++++++++ easi/tasks/vlnce_r2r/prompts.py | 166 +++++++++++++ easi/tasks/vlnce_r2r/task.py | 159 ++++++++++++ easi/tasks/vlnce_r2r/vendor/__init__.py | 1 + easi/tasks/vlnce_r2r/vendor/dtw.py | 44 ++++ easi/tasks/vlnce_r2r/vendor/scene_config.py | 50 ++++ .../tasks/vlnce_r2r/vendor/scene_simulator.py | 235 ++++++++++++++++++ easi/tasks/vlnce_r2r/vlnce_r2r_test.yaml | 6 + easi/tasks/vlnce_r2r/vlnce_r2r_val_seen.yaml | 6 + .../tasks/vlnce_r2r/vlnce_r2r_val_unseen.yaml | 6 + 13 files changed, 859 insertions(+) create mode 100644 easi/tasks/vlnce_r2r/__init__.py create mode 100644 easi/tasks/vlnce_r2r/_base.yaml create mode 100644 easi/tasks/vlnce_r2r/actions.py create mode 100644 easi/tasks/vlnce_r2r/bridge.py create mode 100644 easi/tasks/vlnce_r2r/prompts.py create mode 100644 easi/tasks/vlnce_r2r/task.py create mode 100644 easi/tasks/vlnce_r2r/vendor/__init__.py create mode 100644 easi/tasks/vlnce_r2r/vendor/dtw.py create mode 100644 easi/tasks/vlnce_r2r/vendor/scene_config.py create mode 100644 easi/tasks/vlnce_r2r/vendor/scene_simulator.py create mode 100644 easi/tasks/vlnce_r2r/vlnce_r2r_test.yaml create mode 100644 easi/tasks/vlnce_r2r/vlnce_r2r_val_seen.yaml create mode 100644 easi/tasks/vlnce_r2r/vlnce_r2r_val_unseen.yaml diff --git a/easi/tasks/vlnce_r2r/__init__.py b/easi/tasks/vlnce_r2r/__init__.py new file mode 100644 index 0000000..f186fe4 --- /dev/null +++ b/easi/tasks/vlnce_r2r/__init__.py @@ -0,0 +1 @@ +"""VLN-CE R2R task for EASI.""" diff --git a/easi/tasks/vlnce_r2r/_base.yaml b/easi/tasks/vlnce_r2r/_base.yaml new file mode 100644 index 0000000..298fc92 --- /dev/null +++ b/easi/tasks/vlnce_r2r/_base.yaml @@ -0,0 +1,40 @@ +display_name: "VLN-CE R2R" +description: "Vision-Language Navigation in Continuous Environments (Room-to-Room)" +simulator: "habitat_sim:v0_1_7" +task_class: "easi.tasks.vlnce_r2r.task.VLNCETask" +max_steps: 500 + +dataset: + source: huggingface + repo_id: "oscarqjh/VLN-CE-R2R_easi" + subset: null + hf_data_dir: "data" + zip_files: + - "mp3d_scenes.zip" + +simulator_configs: + render_platform: auto + screen_height: 480 + screen_width: 480 + hfov: 90 + sensor_height: 1.25 + gpu_device_id: -1 + success_distance: 3.0 + forward_step_size: 0.25 + turn_angle: 15 + allow_sliding: true + additional_deps: + - "fastdtw>=0.3.4" + +agent: + prompt_builder: "easi.tasks.vlnce_r2r.prompts.VLNCEPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + use_geo_distance: true + action_history_len: 20 + chat_history: false + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 diff --git a/easi/tasks/vlnce_r2r/actions.py b/easi/tasks/vlnce_r2r/actions.py new file mode 100644 index 0000000..4afce18 --- /dev/null +++ b/easi/tasks/vlnce_r2r/actions.py @@ -0,0 +1,18 @@ +"""VLN-CE R2R action space. + +4 discrete actions matching VLN-CE config (0.25m forward, 15° turns). +""" + +DISCRETE_ACTIONS = [ + "move_forward", + "turn_left", + "turn_right", + "stop", +] + +ACTION_NAME_TO_ID = {name: i for i, name in enumerate(DISCRETE_ACTIONS)} + + +def get_action_space() -> list[str]: + """Return the VLN-CE R2R discrete action space.""" + return list(DISCRETE_ACTIONS) diff --git a/easi/tasks/vlnce_r2r/bridge.py b/easi/tasks/vlnce_r2r/bridge.py new file mode 100644 index 0000000..49dbca1 --- /dev/null +++ b/easi/tasks/vlnce_r2r/bridge.py @@ -0,0 +1,127 @@ +"""VLN-CE R2R bridge — wraps vendored SceneSimulator via BaseBridge. + +This script runs inside the easi_habitat_sim_v0_1_7 conda env (Python 3.8). +Creates a NEW SceneSimulator per episode (Habitat-Sim ties one instance to one scene). + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/data] [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class VLNCEBridge(BaseBridge): + """BaseBridge wrapper for VLN-CE R2R SceneSimulator.""" + + _scene_sim = None + + def _create_env(self, reset_config, simulator_kwargs): + """Store simulator_kwargs; real sim created in _on_reset.""" + self._sim_kwargs = simulator_kwargs + return object() # placeholder + + def _on_reset(self, env, reset_config): + """Create a new SceneSimulator for this episode's scene.""" + from easi.tasks.vlnce_r2r.vendor.scene_simulator import SceneSimulator + + # Close previous simulator if any + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + + data_dir = reset_config.get("data_dir") or self._sim_kwargs.get("data_dir", "") + scene_id = reset_config["scene_id"] + scene_path = str(Path(data_dir) / "mp3d" / scene_id / f"{scene_id}.glb") + + # Parse position/rotation (may be JSON strings from IPC) + start_position = json.loads(reset_config["start_position"]) \ + if isinstance(reset_config["start_position"], str) else reset_config["start_position"] + start_rotation = json.loads(reset_config["start_rotation"]) \ + if isinstance(reset_config["start_rotation"], str) else reset_config["start_rotation"] + + goal_position = reset_config.get("goal_position") + if isinstance(goal_position, str): + goal_position = json.loads(goal_position) if goal_position != "null" else None + + geodesic_distance = reset_config.get("geodesic_distance") + if isinstance(geodesic_distance, str): + geodesic_distance = float(geodesic_distance) if geodesic_distance != "null" else None + + gt_locations = reset_config.get("gt_locations") + if isinstance(gt_locations, str): + gt_locations = json.loads(gt_locations) if gt_locations != "null" else None + + # Log test split warning + if goal_position is None: + logger.warning( + "Episode %s has no goal_position (test split). " + "Only path_length and steps_taken will be computed.", + reset_config.get("episode_id", "unknown"), + ) + + self._scene_sim = SceneSimulator( + scene_path=scene_path, + start_position=start_position, + start_rotation=start_rotation, + goal_position=goal_position, + gt_locations=gt_locations, + geodesic_distance=geodesic_distance, + success_distance=self._sim_kwargs.get("success_distance", 3.0), + max_steps=self._sim_kwargs.get("max_steps", 500), + gpu_device_id=self._sim_kwargs.get("gpu_device_id", -1), + width=self._sim_kwargs.get("screen_width", 480), + height=self._sim_kwargs.get("screen_height", 480), + hfov=self._sim_kwargs.get("hfov", 90), + sensor_height=self._sim_kwargs.get("sensor_height", 1.25), + forward_step_size=self._sim_kwargs.get("forward_step_size", 0.25), + turn_angle=self._sim_kwargs.get("turn_angle", 15.0), + allow_sliding=self._sim_kwargs.get("allow_sliding", True), + ) + + return self._scene_sim.get_observation() + + def _on_step(self, env, action_text): + """Step the SceneSimulator and return (obs, reward, done, info).""" + obs, done, info = self._scene_sim.step(action_text) + return obs, 0.0, done, info + + def _extract_image(self, obs): + """Extract front RGB from observation (RGBA -> RGB).""" + return obs["color_sensor"][:, :, :3] + + def _extract_info(self, info): + """Filter info to serializable types (int/float/str/bool/None).""" + clean = {} + for k, v in info.items(): + if v is None: + clean[k] = "null" # IPC encodes None as "null" string + elif isinstance(v, (int, float, str, bool)): + clean[k] = v + elif isinstance(v, (list, np.ndarray)): + clean[k] = json.dumps([float(x) for x in v] if hasattr(v, '__iter__') else str(v)) + return clean + + def close(self): + """Close the SceneSimulator.""" + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + super().close() + + +if __name__ == "__main__": + VLNCEBridge.main() diff --git a/easi/tasks/vlnce_r2r/prompts.py b/easi/tasks/vlnce_r2r/prompts.py new file mode 100644 index 0000000..6fd7db4 --- /dev/null +++ b/easi/tasks/vlnce_r2r/prompts.py @@ -0,0 +1,166 @@ +"""VLN-CE R2R prompt builder. + +Adapted from LHPR-VLN's EmbodiedBench format for single-goal navigation. +Single front camera, 4 actions (move_forward, turn_left, turn_right, stop). +""" +from __future__ import annotations + +import base64 +import json +from pathlib import Path + +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.json_repair import fix_json +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """You are a robot navigating in a 3D indoor environment. You observe the environment through a front-facing camera and must follow natural language instructions to navigate to a goal location. + +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 15 degrees +- turn_right: Turn right by 15 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached the destination described in the instruction) + +## Strategy +1. Carefully read the navigation instruction +2. Observe your surroundings in the image +3. Follow the instruction step by step, matching landmarks and directions mentioned +4. Use move_forward to advance and turn_left/turn_right to change direction +5. Use stop ONLY when you are confident you have reached the described destination + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about where you are relative to the instruction", + "language_plan": "Describe your next navigation plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan to plan ahead. Actions are executed sequentially.""" + + +def _encode_image_base64(image_path: str) -> str | None: + """Encode image file to base64 data URL.""" + p = Path(image_path) + if not p.exists(): + return None + data = p.read_bytes() + b64 = base64.b64encode(data).decode("utf-8") + return f"data:image/png;base64,{b64}" + + +def _validate_action(name: str, action_space: list[str]) -> str | None: + """Validate and normalize action name.""" + if name in action_space: + return name + lower = name.lower().strip() + for a in action_space: + if a.lower() == lower: + return a + return None + + +class VLNCEPromptBuilder: + """Prompt builder for VLN-CE R2R benchmark.""" + + def __init__( + self, + use_feedback: bool = True, + use_geo_distance: bool = True, + action_history_len: int = 20, + chat_history: bool = False, + message_window_len: int = 5, + ): + self.use_feedback = use_feedback + self.use_geo_distance = use_geo_distance + self.action_history_len = action_history_len + self.chat_history = chat_history + self.message_window_len = message_window_len + self._actions = [] + + def set_action_space(self, actions: list[str]) -> None: + self._actions = list(actions) + + def build_messages(self, memory: AgentMemory) -> list[dict]: + if self._actions != memory.action_space: + self.set_action_space(memory.action_space) + + messages = [{"role": "system", "content": SYSTEM_PROMPT}] + + # Build user message with image + instruction + feedback + content = [] + + # Current observation image + obs = memory.last_observation + if obs and obs.rgb_path: + img_url = _encode_image_base64(obs.rgb_path) + if img_url: + content.append({"type": "image_url", "image_url": {"url": img_url}}) + + # Build text prompt + text_parts = [] + + # Instruction + text_parts.append(f"## Navigation Instruction\n{memory.instruction}") + + # Environmental feedback + if self.use_feedback and obs and obs.info: + feedback = obs.info.get("feedback", "") + if feedback: + text_parts.append(f"\n## Environmental Feedback\n{feedback}") + + # Geodesic distance + if self.use_geo_distance and obs and obs.info: + geo = obs.info.get("geo_distance") + if geo is not None and geo != "null": + text_parts.append(f"Geodesic distance to goal: {float(geo):.1f}m") + + # Action history + if memory.action_history and self.action_history_len > 0: + history = memory.action_history[-self.action_history_len:] + history_lines = [] + for i, (action, step_result) in enumerate(history): + fb = "" + if self.use_feedback and step_result and step_result.info: + fb = f", feedback: {step_result.info.get('feedback', '')}" + history_lines.append(f"Step {i}: {action.action_name}{fb}") + if history_lines: + text_parts.append(f"\n## Action History (last {len(history_lines)} steps)\n" + "\n".join(history_lines)) + + content.append({"type": "text", "text": "\n".join(text_parts)}) + messages.append({"role": "user", "content": content}) + + return messages + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM JSON response into validated Actions.""" + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + action_name = entry.get("action", entry.get("action_name", "")) + validated = _validate_action(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions diff --git a/easi/tasks/vlnce_r2r/task.py b/easi/tasks/vlnce_r2r/task.py new file mode 100644 index 0000000..66042d9 --- /dev/null +++ b/easi/tasks/vlnce_r2r/task.py @@ -0,0 +1,159 @@ +"""VLN-CE R2R task for EASI. + +Adapts VLN-CE Room-to-Room benchmark to EASI's task interface. +Episodes loaded from HuggingFace dataset (oscarqjh/VLN-CE-R2R_easi). + +Metrics (aligned with original VLN-CE): +- Per-episode: success, oracle_success, spl, navigation_error, ndtw, sdtw, + path_length, steps_taken (null for test split except path_length/steps_taken) +- Aggregate: Average of non-null values per metric +""" +from __future__ import annotations + +import json +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.vlnce_r2r.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class VLNCETask(BaseTask): + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map HF episode dict to bridge reset config.""" + gt_locations = episode.get("gt_locations") + if isinstance(gt_locations, list): + gt_locations = json.dumps(gt_locations) + + return { + "episode_id": str(episode.get("episode_id", episode.get("id", "unknown"))), + "scene_id": episode["scene_id"], + "instruction": episode.get("instruction", ""), + "start_position": json.dumps(episode["start_position"]), + "start_rotation": json.dumps(episode["start_rotation"]), + "goal_position": json.dumps(episode["goal_position"]) if episode.get("goal_position") else "null", + "geodesic_distance": str(episode["geodesic_distance"]) if episode.get("geodesic_distance") is not None else "null", + "gt_locations": gt_locations if gt_locations else "null", + "data_dir": episode.get("_data_dir", ""), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract per-episode metrics from bridge info dict.""" + if not trajectory: + return self._empty_metrics() + + last = trajectory[-1] + info = last.info + + return { + "success": self._parse_nullable(info.get("success")), + "oracle_success": self._parse_nullable(info.get("oracle_success")), + "spl": self._parse_nullable(info.get("spl")), + "navigation_error": self._parse_nullable(info.get("navigation_error")), + "ndtw": self._parse_nullable(info.get("ndtw")), + "sdtw": self._parse_nullable(info.get("sdtw")), + "path_length": float(info.get("path_length", 0.0)), + "steps_taken": float(len(trajectory)), + } + + def aggregate_results(self, records: list[EpisodeRecord]) -> dict: + """Average non-null values per metric across all episodes.""" + if not records: + return {} + + metric_keys = [ + "success", "oracle_success", "spl", "navigation_error", + "ndtw", "sdtw", "path_length", "steps_taken", + ] + + result = {"num_episodes": len(records)} + null_counts = {} + + for key in metric_keys: + values = [] + nulls = 0 + for r in records: + val = r.episode_results.get(key) + if val is None or val == "null": + nulls += 1 + else: + values.append(float(val)) + if values: + result[key] = round(sum(values) / len(values), 4) + else: + result[key] = None + if nulls > 0: + null_counts[key] = nulls + + if null_counts: + logger.info( + "Null metric counts: %s", + ", ".join(f"{k}={v}" for k, v in null_counts.items()), + ) + result["_null_counts"] = null_counts + + # Aliases for consistency with VLN-CE conventions + result["SR"] = result.get("success") + result["SPL"] = result.get("spl") + result["NE"] = result.get("navigation_error") + result["Oracle_SR"] = result.get("oracle_success") + result["NDTW"] = result.get("ndtw") + result["SDTW"] = result.get("sdtw") + + return result + + @staticmethod + def _parse_nullable(value): + """Parse a value that may be None or 'null' string from IPC.""" + if value is None or value == "null": + return None + return float(value) + + def _empty_metrics(self) -> dict[str, float]: + return { + "success": None, + "oracle_success": None, + "spl": None, + "navigation_error": None, + "ndtw": None, + "sdtw": None, + "path_length": 0.0, + "steps_taken": 0.0, + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episode for testing without dataset download.""" + return [ + { + "id": 0, + "episode_id": "test_0", + "scene_id": "17DRP5sb8fy", + "instruction": "Walk down the hallway and turn right into the bedroom.", + "start_position": [3.1678, 0.0711, -0.2367], + "start_rotation": [0, 0.707, 0, 0.707], + "goal_position": [4.5, 0.0711, 1.2], + "goal_radius": 3.0, + "geodesic_distance": 5.2, + "reference_path": "[]", + "gt_locations": None, + "gt_actions": None, + }, + ] diff --git a/easi/tasks/vlnce_r2r/vendor/__init__.py b/easi/tasks/vlnce_r2r/vendor/__init__.py new file mode 100644 index 0000000..8f09d91 --- /dev/null +++ b/easi/tasks/vlnce_r2r/vendor/__init__.py @@ -0,0 +1 @@ +"""Vendored VLN-CE R2R code.""" diff --git a/easi/tasks/vlnce_r2r/vendor/dtw.py b/easi/tasks/vlnce_r2r/vendor/dtw.py new file mode 100644 index 0000000..4efc260 --- /dev/null +++ b/easi/tasks/vlnce_r2r/vendor/dtw.py @@ -0,0 +1,44 @@ +"""NDTW and SDTW metric computation. + +Vendored from VLN-CE habitat_extensions/measures.py. +Uses fastdtw for dynamic time warping distance. +""" +from __future__ import annotations + +import numpy as np + + +def _euclidean_distance(a, b): + return np.linalg.norm(np.array(b) - np.array(a)) + + +def compute_ndtw(agent_positions, gt_locations, success_distance=3.0): + """Compute Normalized Dynamic Time Warping distance. + + Args: + agent_positions: List of [x, y, z] agent positions at each step. + gt_locations: List of [x, y, z] ground truth reference path positions. + success_distance: Success threshold (default 3.0m for VLN-CE R2R). + + Returns: + NDTW score in [0, 1]. Higher is better. + """ + from fastdtw import fastdtw + + dtw_distance = fastdtw( + agent_positions, gt_locations, dist=_euclidean_distance + )[0] + return np.exp(-dtw_distance / (len(gt_locations) * success_distance)) + + +def compute_sdtw(ndtw, success): + """Compute Success weighted by NDTW. + + Args: + ndtw: NDTW score. + success: 1.0 if episode succeeded, 0.0 otherwise. + + Returns: + SDTW score (0.0 if not successful). + """ + return ndtw * success diff --git a/easi/tasks/vlnce_r2r/vendor/scene_config.py b/easi/tasks/vlnce_r2r/vendor/scene_config.py new file mode 100644 index 0000000..63870c5 --- /dev/null +++ b/easi/tasks/vlnce_r2r/vendor/scene_config.py @@ -0,0 +1,50 @@ +"""Habitat-Sim 0.1.7 configuration for VLN-CE R2R. + +Single front RGB camera, 15-degree turns, 0.25m forward step. +Adapted from LHPR-VLN's scene_config.py for habitat-sim 0.1.7 API. +""" +from __future__ import annotations + +import habitat_sim + + +def make_cfg( + scene_path: str, + gpu_device_id: int = -1, + width: int = 480, + height: int = 480, + hfov: int = 90, + sensor_height: float = 1.25, + forward_step_size: float = 0.25, + turn_angle: float = 15.0, + allow_sliding: bool = True, +) -> habitat_sim.Configuration: + """Build habitat-sim 0.1.7 Configuration for VLN-CE R2R.""" + sim_cfg = habitat_sim.SimulatorConfiguration() + sim_cfg.gpu_device_id = gpu_device_id + sim_cfg.scene_id = scene_path + sim_cfg.allow_sliding = allow_sliding + + # Single front-facing RGB sensor + color_sensor = habitat_sim.SensorSpec() + color_sensor.uuid = "color_sensor" + color_sensor.sensor_type = habitat_sim.SensorType.COLOR + color_sensor.resolution = [height, width] + color_sensor.position = [0.0, sensor_height, 0.0] + color_sensor.parameters["hfov"] = str(hfov) + + agent_cfg = habitat_sim.AgentConfiguration() + agent_cfg.sensor_specifications = [color_sensor] + agent_cfg.action_space = { + "move_forward": habitat_sim.ActionSpec( + "move_forward", habitat_sim.ActuationSpec(amount=forward_step_size) + ), + "turn_left": habitat_sim.ActionSpec( + "turn_left", habitat_sim.ActuationSpec(amount=turn_angle) + ), + "turn_right": habitat_sim.ActionSpec( + "turn_right", habitat_sim.ActuationSpec(amount=turn_angle) + ), + } + + return habitat_sim.Configuration(sim_cfg, [agent_cfg]) diff --git a/easi/tasks/vlnce_r2r/vendor/scene_simulator.py b/easi/tasks/vlnce_r2r/vendor/scene_simulator.py new file mode 100644 index 0000000..592992a --- /dev/null +++ b/easi/tasks/vlnce_r2r/vendor/scene_simulator.py @@ -0,0 +1,235 @@ +"""Habitat-Sim 0.1.7 scene simulator for VLN-CE R2R. + +Wraps habitat_sim.Simulator for single-goal navigation with path tracking. +Creates one simulator per episode (Habitat-Sim binds one instance to one scene). + +Adapted from LHPR-VLN's SceneSimulator, simplified for single-goal VLN-CE: +- No subtask tracking (single goal) +- Specific start position/rotation (not random) +- 15° turns, single front RGB camera +- Path tracking for DTW metrics +- Null-safe for test split (no goal_position) +""" +from __future__ import annotations + +import numpy as np + +import habitat_sim + +from easi.tasks.vlnce_r2r.vendor.scene_config import make_cfg +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class SceneSimulator: + """Single-goal navigation simulator for VLN-CE R2R.""" + + def __init__( + self, + *, + scene_path: str, + start_position: list[float], + start_rotation: list[float], + goal_position: list[float] | None = None, + gt_locations: list[list[float]] | None = None, + geodesic_distance: float | None = None, + success_distance: float = 3.0, + max_steps: int = 500, + gpu_device_id: int = -1, + width: int = 480, + height: int = 480, + hfov: int = 90, + sensor_height: float = 1.25, + forward_step_size: float = 0.25, + turn_angle: float = 15.0, + allow_sliding: bool = True, + ): + self._goal_position = np.array(goal_position) if goal_position else None + self._gt_locations = gt_locations + self._geodesic_distance = geodesic_distance + self._success_distance = success_distance + self._max_steps = max_steps + + # Create habitat-sim instance + cfg = make_cfg( + scene_path=scene_path, + gpu_device_id=gpu_device_id, + width=width, + height=height, + hfov=hfov, + sensor_height=sensor_height, + forward_step_size=forward_step_size, + turn_angle=turn_angle, + allow_sliding=allow_sliding, + ) + self._sim = habitat_sim.Simulator(cfg) + + # Set agent to start position/rotation + agent = self._sim.get_agent(0) + state = agent.get_state() + state.position = np.array(start_position, dtype=np.float32) + state.rotation = self._list_to_quaternion(start_rotation) + agent.set_state(state) + + # Tracking state + self._step_count = 0 + self._done = False + self._stopped = False + self._agent_positions = [list(state.position)] + self._path_length = 0.0 + self._min_geodesic_to_goal = float("inf") + + # Compute initial geodesic distance + if self._goal_position is not None: + geo = self._compute_geodesic(state.position) + if geo is not None: + self._min_geodesic_to_goal = geo + + def _list_to_quaternion(self, rot): + """Convert [x, y, z, w] list to habitat quaternion.""" + import quaternion + if len(rot) == 4: + return np.quaternion(rot[3], rot[0], rot[1], rot[2]) + return np.quaternion(1, 0, 0, 0) + + def get_observation(self): + """Get current observation from the simulator.""" + return self._sim.get_sensor_observations() + + def step(self, action: str) -> tuple[dict, bool, dict]: + """Execute an action and return (obs, done, info). + + Args: + action: One of "move_forward", "turn_left", "turn_right", "stop". + + Returns: + obs: Sensor observations dict with "color_sensor" key. + done: Whether episode is over. + info: Step info dict with metrics and feedback. + """ + if self._done: + return self.get_observation(), True, self._build_info() + + if action == "stop": + self._stopped = True + self._done = True + obs = self.get_observation() + return obs, True, self._build_info() + + # Execute movement action + if action in ("move_forward", "turn_left", "turn_right"): + obs = self._sim.step(action) + else: + logger.warning("Unknown action '%s', treating as no-op", action) + obs = self.get_observation() + + self._step_count += 1 + + # Update tracking + pos = self._sim.get_agent(0).get_state().position + prev_pos = np.array(self._agent_positions[-1]) + self._path_length += float(np.linalg.norm(pos - prev_pos)) + self._agent_positions.append(list(pos)) + + # Update min geodesic (for oracle success) + if self._goal_position is not None: + geo = self._compute_geodesic(pos) + if geo is not None and geo < self._min_geodesic_to_goal: + self._min_geodesic_to_goal = geo + + # Check max steps + if self._step_count >= self._max_steps: + self._done = True + + return obs, self._done, self._build_info() + + def _compute_geodesic(self, position) -> float | None: + """Compute geodesic distance from position to goal.""" + if self._goal_position is None: + return None + try: + return self._sim.geodesic_distance(position, self._goal_position) + except Exception: + # Fallback to Euclidean if pathfinder fails + return float(np.linalg.norm(position - self._goal_position)) + + def _build_info(self) -> dict: + """Build step info dict with metrics and feedback.""" + pos = self._sim.get_agent(0).get_state().position + + info = { + "step": self._step_count, + "path_length": self._path_length, + "agent_position": list(pos), + } + + if self._goal_position is not None: + geo = self._compute_geodesic(pos) + ne = geo if geo is not None else float(np.linalg.norm(pos - self._goal_position)) + info["navigation_error"] = ne + info["geo_distance"] = ne # For agent feedback + + success = 1.0 if ne <= self._success_distance and self._stopped else 0.0 + oracle_success = 1.0 if self._min_geodesic_to_goal <= self._success_distance else 0.0 + + info["success"] = success + info["oracle_success"] = oracle_success + + # SPL + if self._geodesic_distance is not None and self._geodesic_distance > 0: + info["spl"] = success * ( + self._geodesic_distance / max(self._path_length, self._geodesic_distance) + ) + else: + info["spl"] = 0.0 + + # Feedback string for agent + info["feedback"] = f"Distance to goal: {ne:.1f}m" + else: + # Test split: no goal + info["navigation_error"] = None + info["success"] = None + info["oracle_success"] = None + info["spl"] = None + info["feedback"] = "Navigating (no distance feedback available)" + + # Compute NDTW/SDTW on episode end + if self._done: + info.update(self._compute_dtw_metrics()) + + return info + + def _compute_dtw_metrics(self) -> dict: + """Compute NDTW and SDTW at episode end.""" + if self._gt_locations is None or len(self._gt_locations) == 0: + return {"ndtw": None, "sdtw": None} + + try: + from easi.tasks.vlnce_r2r.vendor.dtw import compute_ndtw, compute_sdtw + + ndtw = compute_ndtw( + self._agent_positions, self._gt_locations, self._success_distance + ) + # Compute success inline to avoid circular call to _build_info + success = 0.0 + if self._goal_position is not None and self._stopped: + pos = self._sim.get_agent(0).get_state().position + geo = self._compute_geodesic(pos) + ne = geo if geo is not None else float(np.linalg.norm(pos - self._goal_position)) + if ne <= self._success_distance: + success = 1.0 + sdtw = compute_sdtw(ndtw, success) + return {"ndtw": float(ndtw), "sdtw": float(sdtw)} + except ImportError: + logger.warning("fastdtw not installed — NDTW/SDTW unavailable") + return {"ndtw": None, "sdtw": None} + except Exception as e: + logger.warning("DTW computation failed: %s", e) + return {"ndtw": None, "sdtw": None} + + def close(self): + """Close the habitat-sim instance.""" + if self._sim is not None: + self._sim.close() + self._sim = None diff --git a/easi/tasks/vlnce_r2r/vlnce_r2r_test.yaml b/easi/tasks/vlnce_r2r/vlnce_r2r_test.yaml new file mode 100644 index 0000000..f8494b6 --- /dev/null +++ b/easi/tasks/vlnce_r2r/vlnce_r2r_test.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_r2r_test +display_name: "VLN-CE R2R Test" +description: "VLN-CE R2R test split (no ground truth)" +dataset: + split: "test" diff --git a/easi/tasks/vlnce_r2r/vlnce_r2r_val_seen.yaml b/easi/tasks/vlnce_r2r/vlnce_r2r_val_seen.yaml new file mode 100644 index 0000000..b782ab9 --- /dev/null +++ b/easi/tasks/vlnce_r2r/vlnce_r2r_val_seen.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_r2r_val_seen +display_name: "VLN-CE R2R Val Seen" +description: "VLN-CE R2R validation split (seen environments)" +dataset: + split: "val_seen" diff --git a/easi/tasks/vlnce_r2r/vlnce_r2r_val_unseen.yaml b/easi/tasks/vlnce_r2r/vlnce_r2r_val_unseen.yaml new file mode 100644 index 0000000..c03f15a --- /dev/null +++ b/easi/tasks/vlnce_r2r/vlnce_r2r_val_unseen.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_r2r_val_unseen +display_name: "VLN-CE R2R Val Unseen" +description: "VLN-CE R2R validation split (unseen environments)" +dataset: + split: "val_unseen" From 5da4f0d3be62cad9bdfcf0c8b1467668d32b9f5a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 12:15:35 +0800 Subject: [PATCH 159/239] fix: resolve VLN-CE R2R integration issues found during testing - Pin numpy<1.24 for habitat-sim 0.1.7 (np.float removed in 1.24) - Set gpu_device_id=0 (GLX crashes with -1 under xvfb) - Override _load_episodes_from_hf to bypass HF split auto-detection (val_seen/val_unseen were merged into single 'validation' split) --- .gitignore | 4 ++- .../habitat_sim/v0_1_7/requirements.txt | 2 +- easi/tasks/vlnce_r2r/_base.yaml | 2 +- easi/tasks/vlnce_r2r/task.py | 30 +++++++++++++++++++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3822a37..7e7e712 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ __pycache__/ /BEHAVIOR-1K .worktrees/ /docs/plans -yolo11n.pt \ No newline at end of file +yolo11n.pt +.tmp* +/scripts diff --git a/easi/simulators/habitat_sim/v0_1_7/requirements.txt b/easi/simulators/habitat_sim/v0_1_7/requirements.txt index 119d235..1bb3290 100644 --- a/easi/simulators/habitat_sim/v0_1_7/requirements.txt +++ b/easi/simulators/habitat_sim/v0_1_7/requirements.txt @@ -1,2 +1,2 @@ -numpy>=1.17,<1.25 +numpy>=1.17,<1.24 Pillow>=7.0,<10.0 diff --git a/easi/tasks/vlnce_r2r/_base.yaml b/easi/tasks/vlnce_r2r/_base.yaml index 298fc92..5a6774f 100644 --- a/easi/tasks/vlnce_r2r/_base.yaml +++ b/easi/tasks/vlnce_r2r/_base.yaml @@ -18,7 +18,7 @@ simulator_configs: screen_width: 480 hfov: 90 sensor_height: 1.25 - gpu_device_id: -1 + gpu_device_id: 0 success_distance: 3.0 forward_step_size: 0.25 turn_angle: 15 diff --git a/easi/tasks/vlnce_r2r/task.py b/easi/tasks/vlnce_r2r/task.py index 66042d9..fb570a9 100644 --- a/easi/tasks/vlnce_r2r/task.py +++ b/easi/tasks/vlnce_r2r/task.py @@ -11,6 +11,7 @@ from __future__ import annotations import json +import tempfile from pathlib import Path from easi.core.base_task import BaseTask @@ -26,6 +27,35 @@ class VLNCETask(BaseTask): def _build_action_space(self) -> list[str]: return get_action_space() + def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: + """Load episodes from HF dataset with custom split names. + + HF auto-detection merges val_seen.jsonl and val_unseen.jsonl into + a single 'validation' split. We bypass this by loading the specific + JSONL file directly using data_files parameter. + """ + from datasets import load_dataset + from easi.core.base_task import hf_row_to_episode + + data_dir = self.download_dataset() + split_name = dataset_config.get("split") + data_file = str(data_dir / "data" / f"{split_name}.jsonl") + + logger.info("Loading episodes from %s (split=%s)", data_file, split_name) + + hf_cache = Path(tempfile.gettempdir()) / "easi_hf_cache" + ds = load_dataset( + "json", data_files=data_file, split="train", + cache_dir=str(hf_cache), + ) + episodes = [hf_row_to_episode(row) for row in ds] + + for ep in episodes: + ep["_data_dir"] = str(data_dir) + + logger.info("Loaded %d episodes (split=%s)", len(episodes), split_name) + return episodes + def get_task_yaml_path(self) -> Path: return Path(__file__).parent / "_base.yaml" From abb36e08a973054ec97c739d9f853dda14af80a8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 12:35:08 +0800 Subject: [PATCH 160/239] fix: use correct AgentMemory attribute names in VLN-CE prompt builder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - memory.last_observation → memory.current_observation - memory.instruction → memory.task_description --- easi/tasks/vlnce_r2r/prompts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/tasks/vlnce_r2r/prompts.py b/easi/tasks/vlnce_r2r/prompts.py index 6fd7db4..7e76283 100644 --- a/easi/tasks/vlnce_r2r/prompts.py +++ b/easi/tasks/vlnce_r2r/prompts.py @@ -95,7 +95,7 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: content = [] # Current observation image - obs = memory.last_observation + obs = memory.current_observation if obs and obs.rgb_path: img_url = _encode_image_base64(obs.rgb_path) if img_url: @@ -105,7 +105,7 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: text_parts = [] # Instruction - text_parts.append(f"## Navigation Instruction\n{memory.instruction}") + text_parts.append(f"## Navigation Instruction\n{memory.task_description}") # Environmental feedback if self.use_feedback and obs and obs.info: From cffec62ada79f2667625d3039755b6fa98901c3c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 13:11:55 +0800 Subject: [PATCH 161/239] fix: correct AgentMemory API usage in VLN-CE prompt builder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - obs.info → obs.metadata (Observation uses metadata, not info) - Unpack action_history as (action_name, feedback) tuples, not objects --- easi/tasks/vlnce_r2r/prompts.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/easi/tasks/vlnce_r2r/prompts.py b/easi/tasks/vlnce_r2r/prompts.py index 7e76283..27b64c3 100644 --- a/easi/tasks/vlnce_r2r/prompts.py +++ b/easi/tasks/vlnce_r2r/prompts.py @@ -108,14 +108,14 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: text_parts.append(f"## Navigation Instruction\n{memory.task_description}") # Environmental feedback - if self.use_feedback and obs and obs.info: - feedback = obs.info.get("feedback", "") + if self.use_feedback and obs and obs.metadata: + feedback = obs.metadata.get("feedback", "") if feedback: text_parts.append(f"\n## Environmental Feedback\n{feedback}") # Geodesic distance - if self.use_geo_distance and obs and obs.info: - geo = obs.info.get("geo_distance") + if self.use_geo_distance and obs and obs.metadata: + geo = obs.metadata.get("geo_distance") if geo is not None and geo != "null": text_parts.append(f"Geodesic distance to goal: {float(geo):.1f}m") @@ -123,11 +123,11 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: if memory.action_history and self.action_history_len > 0: history = memory.action_history[-self.action_history_len:] history_lines = [] - for i, (action, step_result) in enumerate(history): + for i, (action_name, feedback) in enumerate(history): fb = "" - if self.use_feedback and step_result and step_result.info: - fb = f", feedback: {step_result.info.get('feedback', '')}" - history_lines.append(f"Step {i}: {action.action_name}{fb}") + if self.use_feedback and feedback: + fb = f", feedback: {feedback}" + history_lines.append(f"Step {i}: {action_name}{fb}") if history_lines: text_parts.append(f"\n## Action History (last {len(history_lines)} steps)\n" + "\n".join(history_lines)) From 14e1bbe90d7031043f38bd072ff43dd68345ce3f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 17:03:16 +0800 Subject: [PATCH 162/239] feat: add VLN-CE RxR task integration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Independent benchmark from R2R with 6 actions (add look_up/look_down), 30° turns/tilts, 0.88m camera height, 640×480 resolution, 79° HFOV. Dataset: oscarqjh/VLN-CE-RxR_easi (guide role, 3 languages × 2 splits). --- easi/tasks/vlnce_rxr/__init__.py | 2 + easi/tasks/vlnce_rxr/_base.yaml | 42 ++++ easi/tasks/vlnce_rxr/actions.py | 21 ++ easi/tasks/vlnce_rxr/bridge.py | 128 ++++++++++ easi/tasks/vlnce_rxr/prompts.py | 163 ++++++++++++ easi/tasks/vlnce_rxr/task.py | 191 ++++++++++++++ easi/tasks/vlnce_rxr/vendor/__init__.py | 2 + easi/tasks/vlnce_rxr/vendor/dtw.py | 45 ++++ easi/tasks/vlnce_rxr/vendor/scene_config.py | 58 +++++ .../tasks/vlnce_rxr/vendor/scene_simulator.py | 236 ++++++++++++++++++ .../vlnce_rxr/vlnce_rxr_val_seen_en.yaml | 6 + .../vlnce_rxr/vlnce_rxr_val_seen_hi.yaml | 6 + .../vlnce_rxr/vlnce_rxr_val_seen_te.yaml | 6 + .../vlnce_rxr/vlnce_rxr_val_unseen_en.yaml | 6 + .../vlnce_rxr/vlnce_rxr_val_unseen_hi.yaml | 6 + .../vlnce_rxr/vlnce_rxr_val_unseen_te.yaml | 6 + 16 files changed, 924 insertions(+) create mode 100644 easi/tasks/vlnce_rxr/__init__.py create mode 100644 easi/tasks/vlnce_rxr/_base.yaml create mode 100644 easi/tasks/vlnce_rxr/actions.py create mode 100644 easi/tasks/vlnce_rxr/bridge.py create mode 100644 easi/tasks/vlnce_rxr/prompts.py create mode 100644 easi/tasks/vlnce_rxr/task.py create mode 100644 easi/tasks/vlnce_rxr/vendor/__init__.py create mode 100644 easi/tasks/vlnce_rxr/vendor/dtw.py create mode 100644 easi/tasks/vlnce_rxr/vendor/scene_config.py create mode 100644 easi/tasks/vlnce_rxr/vendor/scene_simulator.py create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_en.yaml create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_hi.yaml create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_te.yaml create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_en.yaml create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_hi.yaml create mode 100644 easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_te.yaml diff --git a/easi/tasks/vlnce_rxr/__init__.py b/easi/tasks/vlnce_rxr/__init__.py new file mode 100644 index 0000000..7729087 --- /dev/null +++ b/easi/tasks/vlnce_rxr/__init__.py @@ -0,0 +1,2 @@ +# easi/tasks/vlnce_rxr/__init__.py +"""VLN-CE RxR task for EASI.""" diff --git a/easi/tasks/vlnce_rxr/_base.yaml b/easi/tasks/vlnce_rxr/_base.yaml new file mode 100644 index 0000000..6c225ca --- /dev/null +++ b/easi/tasks/vlnce_rxr/_base.yaml @@ -0,0 +1,42 @@ +# easi/tasks/vlnce_rxr/_base.yaml +display_name: "VLN-CE RxR" +description: "Vision-Language Navigation in Continuous Environments (Room-across-Room)" +simulator: "habitat_sim:v0_1_7" +task_class: "easi.tasks.vlnce_rxr.task.VLNCERxRTask" +max_steps: 500 + +dataset: + source: huggingface + repo_id: "oscarqjh/VLN-CE-RxR_easi" + subset: null + hf_data_dir: "data" + zip_files: + - "mp3d_scenes.zip" + +simulator_configs: + render_platform: auto + screen_height: 480 + screen_width: 640 + hfov: 79 + sensor_height: 0.88 + gpu_device_id: 0 + success_distance: 3.0 + forward_step_size: 0.25 + turn_angle: 30 + tilt_angle: 30 + allow_sliding: false + additional_deps: + - "fastdtw>=0.3.4" + +agent: + prompt_builder: "easi.tasks.vlnce_rxr.prompts.VLNCERxRPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + use_geo_distance: true + action_history_len: 20 + chat_history: false + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 diff --git a/easi/tasks/vlnce_rxr/actions.py b/easi/tasks/vlnce_rxr/actions.py new file mode 100644 index 0000000..a3a2e97 --- /dev/null +++ b/easi/tasks/vlnce_rxr/actions.py @@ -0,0 +1,21 @@ +# easi/tasks/vlnce_rxr/actions.py +"""VLN-CE RxR action space. + +6 discrete actions: 0.25m forward, 30° turns, 30° tilts. +""" + +DISCRETE_ACTIONS = [ + "move_forward", + "turn_left", + "turn_right", + "look_up", + "look_down", + "stop", +] + +ACTION_NAME_TO_ID = {name: i for i, name in enumerate(DISCRETE_ACTIONS)} + + +def get_action_space() -> list[str]: + """Return the VLN-CE RxR discrete action space.""" + return list(DISCRETE_ACTIONS) diff --git a/easi/tasks/vlnce_rxr/bridge.py b/easi/tasks/vlnce_rxr/bridge.py new file mode 100644 index 0000000..296f62f --- /dev/null +++ b/easi/tasks/vlnce_rxr/bridge.py @@ -0,0 +1,128 @@ +# easi/tasks/vlnce_rxr/bridge.py +"""VLN-CE RxR bridge — wraps vendored SceneSimulator via BaseBridge. + +This script runs inside the easi_habitat_sim_v0_1_7 conda env (Python 3.8). +Creates a NEW SceneSimulator per episode (Habitat-Sim ties one instance to one scene). + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--data-dir /path/to/data] [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class VLNCERxRBridge(BaseBridge): + """BaseBridge wrapper for VLN-CE RxR SceneSimulator.""" + + _scene_sim = None + + def _create_env(self, reset_config, simulator_kwargs): + """Store simulator_kwargs; real sim created in _on_reset.""" + self._sim_kwargs = simulator_kwargs + return object() # placeholder + + def _on_reset(self, env, reset_config): + """Create a new SceneSimulator for this episode's scene.""" + from easi.tasks.vlnce_rxr.vendor.scene_simulator import SceneSimulator + + # Close previous simulator if any + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + + data_dir = reset_config.get("data_dir") or self._sim_kwargs.get("data_dir", "") + scene_id = reset_config["scene_id"] + scene_path = str(Path(data_dir) / "mp3d" / scene_id / f"{scene_id}.glb") + + # Parse position/rotation (may be JSON strings from IPC) + start_position = json.loads(reset_config["start_position"]) \ + if isinstance(reset_config["start_position"], str) else reset_config["start_position"] + start_rotation = json.loads(reset_config["start_rotation"]) \ + if isinstance(reset_config["start_rotation"], str) else reset_config["start_rotation"] + + goal_position = reset_config.get("goal_position") + if isinstance(goal_position, str): + goal_position = json.loads(goal_position) if goal_position != "null" else None + + geodesic_distance = reset_config.get("geodesic_distance") + if isinstance(geodesic_distance, str): + geodesic_distance = float(geodesic_distance) if geodesic_distance != "null" else None + + gt_locations = reset_config.get("gt_locations") + if isinstance(gt_locations, str): + gt_locations = json.loads(gt_locations) if gt_locations != "null" else None + + if goal_position is None: + logger.warning( + "Episode %s has no goal_position. " + "Only path_length and steps_taken will be computed.", + reset_config.get("episode_id", "unknown"), + ) + + self._scene_sim = SceneSimulator( + scene_path=scene_path, + start_position=start_position, + start_rotation=start_rotation, + goal_position=goal_position, + gt_locations=gt_locations, + geodesic_distance=geodesic_distance, + success_distance=self._sim_kwargs.get("success_distance", 3.0), + max_steps=self._sim_kwargs.get("max_steps", 500), + gpu_device_id=self._sim_kwargs.get("gpu_device_id", 0), + width=self._sim_kwargs.get("screen_width", 640), + height=self._sim_kwargs.get("screen_height", 480), + hfov=self._sim_kwargs.get("hfov", 79), + sensor_height=self._sim_kwargs.get("sensor_height", 0.88), + forward_step_size=self._sim_kwargs.get("forward_step_size", 0.25), + turn_angle=self._sim_kwargs.get("turn_angle", 30.0), + tilt_angle=self._sim_kwargs.get("tilt_angle", 30.0), + allow_sliding=self._sim_kwargs.get("allow_sliding", False), + ) + + return self._scene_sim.get_observation() + + def _on_step(self, env, action_text): + """Step the SceneSimulator and return (obs, reward, done, info).""" + obs, done, info = self._scene_sim.step(action_text) + return obs, 0.0, done, info + + def _extract_image(self, obs): + """Extract front RGB from observation (RGBA -> RGB).""" + return obs["color_sensor"][:, :, :3] + + def _extract_info(self, info): + """Filter info to serializable types (int/float/str/bool/None).""" + clean = {} + for k, v in info.items(): + if v is None: + clean[k] = "null" + elif isinstance(v, (int, float, str, bool)): + clean[k] = v + elif isinstance(v, (list, np.ndarray)): + clean[k] = json.dumps([float(x) for x in v] if hasattr(v, '__iter__') else str(v)) + return clean + + def close(self): + """Close the SceneSimulator.""" + if self._scene_sim is not None: + self._scene_sim.close() + self._scene_sim = None + super().close() + + +if __name__ == "__main__": + VLNCERxRBridge.main() diff --git a/easi/tasks/vlnce_rxr/prompts.py b/easi/tasks/vlnce_rxr/prompts.py new file mode 100644 index 0000000..9b8ed9b --- /dev/null +++ b/easi/tasks/vlnce_rxr/prompts.py @@ -0,0 +1,163 @@ +# easi/tasks/vlnce_rxr/prompts.py +"""VLN-CE RxR prompt builder. + +Single front camera, 6 actions (move_forward, turn_left, turn_right, +look_up, look_down, stop). 30° turns and tilts. +""" +from __future__ import annotations + +import base64 +import json +from pathlib import Path + +from easi.core.episode import Action +from easi.core.memory import AgentMemory +from easi.utils.json_repair import fix_json +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """You are a robot navigating in a 3D indoor environment. You observe the environment through a front-facing camera and must follow natural language instructions to navigate to a goal location. + +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 30 degrees +- turn_right: Turn right by 30 degrees +- look_up: Tilt camera up by 30 degrees +- look_down: Tilt camera down by 30 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached the destination described in the instruction) + +## Strategy +1. Carefully read the navigation instruction +2. Observe your surroundings in the image +3. Follow the instruction step by step, matching landmarks and directions mentioned +4. Use move_forward to advance and turn_left/turn_right to change direction +5. Use look_up/look_down to observe objects above or below your current view +6. Use stop ONLY when you are confident you have reached the described destination + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about where you are relative to the instruction", + "language_plan": "Describe your next navigation plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan to plan ahead. Actions are executed sequentially.""" + + +def _encode_image_base64(image_path: str) -> str | None: + """Encode image file to base64 data URL.""" + p = Path(image_path) + if not p.exists(): + return None + data = p.read_bytes() + b64 = base64.b64encode(data).decode("utf-8") + return f"data:image/png;base64,{b64}" + + +def _validate_action(name: str, action_space: list[str]) -> str | None: + """Validate and normalize action name.""" + if name in action_space: + return name + lower = name.lower().strip() + for a in action_space: + if a.lower() == lower: + return a + return None + + +class VLNCERxRPromptBuilder: + """Prompt builder for VLN-CE RxR benchmark.""" + + def __init__( + self, + use_feedback: bool = True, + use_geo_distance: bool = True, + action_history_len: int = 20, + chat_history: bool = False, + message_window_len: int = 5, + ): + self.use_feedback = use_feedback + self.use_geo_distance = use_geo_distance + self.action_history_len = action_history_len + self.chat_history = chat_history + self.message_window_len = message_window_len + self._actions = [] + + def set_action_space(self, actions: list[str]) -> None: + self._actions = list(actions) + + def build_messages(self, memory: AgentMemory) -> list[dict]: + if self._actions != memory.action_space: + self.set_action_space(memory.action_space) + + messages = [{"role": "system", "content": SYSTEM_PROMPT}] + + content = [] + + obs = memory.current_observation + if obs and obs.rgb_path: + img_url = _encode_image_base64(obs.rgb_path) + if img_url: + content.append({"type": "image_url", "image_url": {"url": img_url}}) + + text_parts = [] + + text_parts.append(f"## Navigation Instruction\n{memory.task_description}") + + if self.use_feedback and obs and obs.metadata: + feedback = obs.metadata.get("feedback", "") + if feedback: + text_parts.append(f"\n## Environmental Feedback\n{feedback}") + + if self.use_geo_distance and obs and obs.metadata: + geo = obs.metadata.get("geo_distance") + if geo is not None and geo != "null": + text_parts.append(f"Geodesic distance to goal: {float(geo):.1f}m") + + if memory.action_history and self.action_history_len > 0: + history = memory.action_history[-self.action_history_len:] + history_lines = [] + for i, (action_name, feedback) in enumerate(history): + fb = "" + if self.use_feedback and feedback: + fb = f", feedback: {feedback}" + history_lines.append(f"Step {i}: {action_name}{fb}") + if history_lines: + text_parts.append(f"\n## Action History (last {len(history_lines)} steps)\n" + "\n".join(history_lines)) + + content.append({"type": "text", "text": "\n".join(text_parts)}) + messages.append({"role": "user", "content": content}) + + return messages + + def parse_response(self, llm_response: str, memory: AgentMemory) -> list[Action]: + """Parse LLM JSON response into validated Actions.""" + llm_response = fix_json(llm_response) + + try: + data = json.loads(llm_response) + except json.JSONDecodeError as e: + logger.warning("Failed to parse LLM response as JSON: %s", e) + return [] + + plan = data.get("executable_plan", []) + if not isinstance(plan, list) or not plan: + logger.warning("No executable_plan in LLM response") + return [] + + actions = [] + for entry in plan: + if not isinstance(entry, dict): + continue + action_name = entry.get("action", entry.get("action_name", "")) + validated = _validate_action(action_name, memory.action_space) + if validated: + actions.append(Action(action_name=validated)) + else: + logger.warning("Skipping invalid action: '%s'", action_name) + break + + return actions diff --git a/easi/tasks/vlnce_rxr/task.py b/easi/tasks/vlnce_rxr/task.py new file mode 100644 index 0000000..f9f762e --- /dev/null +++ b/easi/tasks/vlnce_rxr/task.py @@ -0,0 +1,191 @@ +# easi/tasks/vlnce_rxr/task.py +"""VLN-CE RxR task for EASI. + +Adapts VLN-CE Room-across-Room benchmark to EASI's task interface. +Episodes loaded from HuggingFace dataset (oscarqjh/VLN-CE-RxR_easi). + +Metrics (aligned with original VLN-CE): +- Per-episode: success, oracle_success, spl, navigation_error, ndtw, sdtw, + path_length, steps_taken +- Aggregate: Average of non-null values per metric +""" +from __future__ import annotations + +import json +import tempfile +from pathlib import Path + +from easi.core.base_task import BaseTask +from easi.core.episode import EpisodeRecord, StepResult +from easi.tasks.vlnce_rxr.actions import get_action_space +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class VLNCERxRTask(BaseTask): + + def _build_action_space(self) -> list[str]: + return get_action_space() + + def _load_episodes_from_hf(self, dataset_config: dict) -> list[dict]: + """Load episodes from HF dataset with language-split JSONL files. + + RxR dataset uses per-language files (e.g., val_seen_en.jsonl). + The split name in YAML already encodes split+language (e.g., "val_seen_en"). + """ + from datasets import load_dataset + from easi.core.base_task import hf_row_to_episode + + data_dir = self.download_dataset() + split_name = dataset_config.get("split") + data_file = str(data_dir / "data" / f"{split_name}.jsonl") + + logger.info("Loading episodes from %s (split=%s)", data_file, split_name) + + hf_cache = Path(tempfile.gettempdir()) / "easi_hf_cache" + ds = load_dataset( + "json", data_files=data_file, split="train", + cache_dir=str(hf_cache), + ) + episodes = [hf_row_to_episode(row) for row in ds] + + for ep in episodes: + ep["_data_dir"] = str(data_dir) + + logger.info("Loaded %d episodes (split=%s)", len(episodes), split_name) + return episodes + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" + + def get_instruction(self, episode: dict) -> str: + return episode.get("instruction", self.name) + + def format_reset_config(self, episode: dict) -> dict: + """Map HF episode dict to bridge reset config.""" + gt_locations = episode.get("gt_locations") + if isinstance(gt_locations, list): + gt_locations = json.dumps(gt_locations) + + return { + "episode_id": str(episode.get("episode_id", episode.get("id", "unknown"))), + "scene_id": episode["scene_id"], + "instruction": episode.get("instruction", ""), + "start_position": json.dumps(episode["start_position"]), + "start_rotation": json.dumps(episode["start_rotation"]), + "goal_position": json.dumps(episode["goal_position"]) if episode.get("goal_position") else "null", + "geodesic_distance": str(episode["geodesic_distance"]) if episode.get("geodesic_distance") is not None else "null", + "gt_locations": gt_locations if gt_locations else "null", + "data_dir": episode.get("_data_dir", ""), + } + + def evaluate_episode( + self, episode: dict, trajectory: list[StepResult] + ) -> dict[str, float]: + """Extract per-episode metrics from bridge info dict.""" + if not trajectory: + return self._empty_metrics() + + last = trajectory[-1] + info = last.info + + return { + "success": self._parse_nullable(info.get("success")), + "oracle_success": self._parse_nullable(info.get("oracle_success")), + "spl": self._parse_nullable(info.get("spl")), + "navigation_error": self._parse_nullable(info.get("navigation_error")), + "ndtw": self._parse_nullable(info.get("ndtw")), + "sdtw": self._parse_nullable(info.get("sdtw")), + "path_length": float(info.get("path_length", 0.0)), + "steps_taken": float(len(trajectory)), + } + + def aggregate_results(self, records: list[EpisodeRecord]) -> dict: + """Average non-null values per metric across all episodes.""" + if not records: + return {} + + metric_keys = [ + "success", "oracle_success", "spl", "navigation_error", + "ndtw", "sdtw", "path_length", "steps_taken", + ] + + result = {"num_episodes": len(records)} + null_counts = {} + + for key in metric_keys: + values = [] + nulls = 0 + for r in records: + val = r.episode_results.get(key) + if val is None or val == "null": + nulls += 1 + else: + values.append(float(val)) + if values: + result[key] = round(sum(values) / len(values), 4) + else: + result[key] = None + if nulls > 0: + null_counts[key] = nulls + + if null_counts: + logger.info( + "Null metric counts: %s", + ", ".join(f"{k}={v}" for k, v in null_counts.items()), + ) + result["_null_counts"] = null_counts + + # Aliases for consistency with VLN-CE conventions + result["SR"] = result.get("success") + result["SPL"] = result.get("spl") + result["NE"] = result.get("navigation_error") + result["Oracle_SR"] = result.get("oracle_success") + result["NDTW"] = result.get("ndtw") + result["SDTW"] = result.get("sdtw") + + return result + + @staticmethod + def _parse_nullable(value): + """Parse a value that may be None or 'null' string from IPC.""" + if value is None or value == "null": + return None + return float(value) + + def _empty_metrics(self) -> dict[str, float]: + return { + "success": None, + "oracle_success": None, + "spl": None, + "navigation_error": None, + "ndtw": None, + "sdtw": None, + "path_length": 0.0, + "steps_taken": 0.0, + } + + def _get_builtin_episodes(self) -> list[dict]: + """Minimal episode for testing without dataset download.""" + return [ + { + "id": 0, + "episode_id": "test_0", + "scene_id": "2n8kARJN3HM", + "instruction": "Turn to your left and walk forward towards the bathtub.", + "language": "en-IN", + "role": "guide", + "start_position": [6.686, -3.369, 9.991], + "start_rotation": [0, 0.999, 0, -0.018], + "goal_position": [10.142, -2.874, 16.334], + "goal_radius": 3.0, + "geodesic_distance": 8.02, + "reference_path": "[]", + "gt_locations": None, + "gt_actions": None, + }, + ] diff --git a/easi/tasks/vlnce_rxr/vendor/__init__.py b/easi/tasks/vlnce_rxr/vendor/__init__.py new file mode 100644 index 0000000..8b7bdb2 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vendor/__init__.py @@ -0,0 +1,2 @@ +# easi/tasks/vlnce_rxr/vendor/__init__.py +"""Vendored VLN-CE RxR code.""" diff --git a/easi/tasks/vlnce_rxr/vendor/dtw.py b/easi/tasks/vlnce_rxr/vendor/dtw.py new file mode 100644 index 0000000..e739d1e --- /dev/null +++ b/easi/tasks/vlnce_rxr/vendor/dtw.py @@ -0,0 +1,45 @@ +# easi/tasks/vlnce_rxr/vendor/dtw.py +"""NDTW and SDTW metric computation. + +Vendored from VLN-CE habitat_extensions/measures.py. +Uses fastdtw for dynamic time warping distance. +""" +from __future__ import annotations + +import numpy as np + + +def _euclidean_distance(a, b): + return np.linalg.norm(np.array(b) - np.array(a)) + + +def compute_ndtw(agent_positions, gt_locations, success_distance=3.0): + """Compute Normalized Dynamic Time Warping distance. + + Args: + agent_positions: List of [x, y, z] agent positions at each step. + gt_locations: List of [x, y, z] ground truth reference path positions. + success_distance: Success threshold (default 3.0m for VLN-CE). + + Returns: + NDTW score in [0, 1]. Higher is better. + """ + from fastdtw import fastdtw + + dtw_distance = fastdtw( + agent_positions, gt_locations, dist=_euclidean_distance + )[0] + return np.exp(-dtw_distance / (len(gt_locations) * success_distance)) + + +def compute_sdtw(ndtw, success): + """Compute Success weighted by NDTW. + + Args: + ndtw: NDTW score. + success: 1.0 if episode succeeded, 0.0 otherwise. + + Returns: + SDTW score (0.0 if not successful). + """ + return ndtw * success diff --git a/easi/tasks/vlnce_rxr/vendor/scene_config.py b/easi/tasks/vlnce_rxr/vendor/scene_config.py new file mode 100644 index 0000000..f0fe7d4 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vendor/scene_config.py @@ -0,0 +1,58 @@ +# easi/tasks/vlnce_rxr/vendor/scene_config.py +"""Habitat-Sim 0.1.7 configuration for VLN-CE RxR. + +Single front RGB camera, 30-degree turns/tilts, 0.25m forward step. +6 actions: move_forward, turn_left, turn_right, look_up, look_down. +""" +from __future__ import annotations + +import habitat_sim + + +def make_cfg( + scene_path: str, + gpu_device_id: int = -1, + width: int = 640, + height: int = 480, + hfov: int = 79, + sensor_height: float = 0.88, + forward_step_size: float = 0.25, + turn_angle: float = 30.0, + tilt_angle: float = 30.0, + allow_sliding: bool = False, +) -> habitat_sim.Configuration: + """Build habitat-sim 0.1.7 Configuration for VLN-CE RxR.""" + sim_cfg = habitat_sim.SimulatorConfiguration() + sim_cfg.gpu_device_id = gpu_device_id + sim_cfg.scene_id = scene_path + sim_cfg.allow_sliding = allow_sliding + + # Single front-facing RGB sensor + color_sensor = habitat_sim.SensorSpec() + color_sensor.uuid = "color_sensor" + color_sensor.sensor_type = habitat_sim.SensorType.COLOR + color_sensor.resolution = [height, width] + color_sensor.position = [0.0, sensor_height, 0.0] + color_sensor.parameters["hfov"] = str(hfov) + + agent_cfg = habitat_sim.AgentConfiguration() + agent_cfg.sensor_specifications = [color_sensor] + agent_cfg.action_space = { + "move_forward": habitat_sim.ActionSpec( + "move_forward", habitat_sim.ActuationSpec(amount=forward_step_size) + ), + "turn_left": habitat_sim.ActionSpec( + "turn_left", habitat_sim.ActuationSpec(amount=turn_angle) + ), + "turn_right": habitat_sim.ActionSpec( + "turn_right", habitat_sim.ActuationSpec(amount=turn_angle) + ), + "look_up": habitat_sim.ActionSpec( + "look_up", habitat_sim.ActuationSpec(amount=tilt_angle) + ), + "look_down": habitat_sim.ActionSpec( + "look_down", habitat_sim.ActuationSpec(amount=tilt_angle) + ), + } + + return habitat_sim.Configuration(sim_cfg, [agent_cfg]) diff --git a/easi/tasks/vlnce_rxr/vendor/scene_simulator.py b/easi/tasks/vlnce_rxr/vendor/scene_simulator.py new file mode 100644 index 0000000..6e0c194 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vendor/scene_simulator.py @@ -0,0 +1,236 @@ +# easi/tasks/vlnce_rxr/vendor/scene_simulator.py +"""Habitat-Sim 0.1.7 scene simulator for VLN-CE RxR. + +Wraps habitat_sim.Simulator for single-goal navigation with path tracking. +Creates one simulator per episode (Habitat-Sim binds one instance to one scene). + +RxR differences from R2R: +- 6 actions: move_forward, turn_left, turn_right, look_up, look_down, stop +- 30° turns and tilts (vs 15° turns in R2R) +- 0.88m sensor height (vs 1.25m) +- 640×480 resolution (vs 480×480) +- 79° HFOV (vs 90°) +- No sliding (vs sliding allowed) +""" +from __future__ import annotations + +import numpy as np + +import habitat_sim + +from easi.tasks.vlnce_rxr.vendor.scene_config import make_cfg +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class SceneSimulator: + """Single-goal navigation simulator for VLN-CE RxR.""" + + def __init__( + self, + *, + scene_path: str, + start_position: list[float], + start_rotation: list[float], + goal_position: list[float] | None = None, + gt_locations: list[list[float]] | None = None, + geodesic_distance: float | None = None, + success_distance: float = 3.0, + max_steps: int = 500, + gpu_device_id: int = -1, + width: int = 640, + height: int = 480, + hfov: int = 79, + sensor_height: float = 0.88, + forward_step_size: float = 0.25, + turn_angle: float = 30.0, + tilt_angle: float = 30.0, + allow_sliding: bool = False, + ): + self._goal_position = np.array(goal_position) if goal_position else None + self._gt_locations = gt_locations + self._geodesic_distance = geodesic_distance + self._success_distance = success_distance + self._max_steps = max_steps + + # Create habitat-sim instance + cfg = make_cfg( + scene_path=scene_path, + gpu_device_id=gpu_device_id, + width=width, + height=height, + hfov=hfov, + sensor_height=sensor_height, + forward_step_size=forward_step_size, + turn_angle=turn_angle, + tilt_angle=tilt_angle, + allow_sliding=allow_sliding, + ) + self._sim = habitat_sim.Simulator(cfg) + + # Set agent to start position/rotation + agent = self._sim.get_agent(0) + state = agent.get_state() + state.position = np.array(start_position, dtype=np.float32) + state.rotation = self._list_to_quaternion(start_rotation) + agent.set_state(state) + + # Tracking state + self._step_count = 0 + self._done = False + self._stopped = False + self._agent_positions = [list(state.position)] + self._path_length = 0.0 + self._min_geodesic_to_goal = float("inf") + + # Compute initial geodesic distance + if self._goal_position is not None: + geo = self._compute_geodesic(state.position) + if geo is not None: + self._min_geodesic_to_goal = geo + + def _list_to_quaternion(self, rot): + """Convert [x, y, z, w] list to habitat quaternion.""" + import quaternion + if len(rot) == 4: + return np.quaternion(rot[3], rot[0], rot[1], rot[2]) + return np.quaternion(1, 0, 0, 0) + + def get_observation(self): + """Get current observation from the simulator.""" + return self._sim.get_sensor_observations() + + def step(self, action: str) -> tuple[dict, bool, dict]: + """Execute an action and return (obs, done, info). + + Args: + action: One of "move_forward", "turn_left", "turn_right", + "look_up", "look_down", "stop". + + Returns: + obs: Sensor observations dict with "color_sensor" key. + done: Whether episode is over. + info: Step info dict with metrics and feedback. + """ + if self._done: + return self.get_observation(), True, self._build_info() + + if action == "stop": + self._stopped = True + self._done = True + obs = self.get_observation() + return obs, True, self._build_info() + + # Execute movement action (includes look_up/look_down) + valid_actions = ("move_forward", "turn_left", "turn_right", "look_up", "look_down") + if action in valid_actions: + obs = self._sim.step(action) + else: + logger.warning("Unknown action '%s', treating as no-op", action) + obs = self.get_observation() + + self._step_count += 1 + + # Update tracking + pos = self._sim.get_agent(0).get_state().position + prev_pos = np.array(self._agent_positions[-1]) + self._path_length += float(np.linalg.norm(pos - prev_pos)) + self._agent_positions.append(list(pos)) + + # Update min geodesic (for oracle success) + if self._goal_position is not None: + geo = self._compute_geodesic(pos) + if geo is not None and geo < self._min_geodesic_to_goal: + self._min_geodesic_to_goal = geo + + # Check max steps + if self._step_count >= self._max_steps: + self._done = True + + return obs, self._done, self._build_info() + + def _compute_geodesic(self, position) -> float | None: + """Compute geodesic distance from position to goal.""" + if self._goal_position is None: + return None + try: + return self._sim.geodesic_distance(position, self._goal_position) + except Exception: + return float(np.linalg.norm(position - self._goal_position)) + + def _build_info(self) -> dict: + """Build step info dict with metrics and feedback.""" + pos = self._sim.get_agent(0).get_state().position + + info = { + "step": self._step_count, + "path_length": self._path_length, + "agent_position": list(pos), + } + + if self._goal_position is not None: + geo = self._compute_geodesic(pos) + ne = geo if geo is not None else float(np.linalg.norm(pos - self._goal_position)) + info["navigation_error"] = ne + info["geo_distance"] = ne + + success = 1.0 if ne <= self._success_distance and self._stopped else 0.0 + oracle_success = 1.0 if self._min_geodesic_to_goal <= self._success_distance else 0.0 + + info["success"] = success + info["oracle_success"] = oracle_success + + if self._geodesic_distance is not None and self._geodesic_distance > 0: + info["spl"] = success * ( + self._geodesic_distance / max(self._path_length, self._geodesic_distance) + ) + else: + info["spl"] = 0.0 + + info["feedback"] = f"Distance to goal: {ne:.1f}m" + else: + info["navigation_error"] = None + info["success"] = None + info["oracle_success"] = None + info["spl"] = None + info["feedback"] = "Navigating (no distance feedback available)" + + if self._done: + info.update(self._compute_dtw_metrics()) + + return info + + def _compute_dtw_metrics(self) -> dict: + """Compute NDTW and SDTW at episode end.""" + if self._gt_locations is None or len(self._gt_locations) == 0: + return {"ndtw": None, "sdtw": None} + + try: + from easi.tasks.vlnce_rxr.vendor.dtw import compute_ndtw, compute_sdtw + + ndtw = compute_ndtw( + self._agent_positions, self._gt_locations, self._success_distance + ) + # Compute success inline to avoid circular call to _build_info + success = 0.0 + if self._goal_position is not None and self._stopped: + pos = self._sim.get_agent(0).get_state().position + geo = self._compute_geodesic(pos) + ne = geo if geo is not None else float(np.linalg.norm(pos - self._goal_position)) + if ne <= self._success_distance: + success = 1.0 + sdtw = compute_sdtw(ndtw, success) + return {"ndtw": float(ndtw), "sdtw": float(sdtw)} + except ImportError: + logger.warning("fastdtw not installed — NDTW/SDTW unavailable") + return {"ndtw": None, "sdtw": None} + except Exception as e: + logger.warning("DTW computation failed: %s", e) + return {"ndtw": None, "sdtw": None} + + def close(self): + """Close the habitat-sim instance.""" + if self._sim is not None: + self._sim.close() + self._sim = None diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_en.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_en.yaml new file mode 100644 index 0000000..5ad1800 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_en.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_seen_en +display_name: "VLN-CE RxR Val Seen (English)" +description: "VLN-CE RxR validation split (seen environments, English)" +dataset: + split: "val_seen_en" diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_hi.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_hi.yaml new file mode 100644 index 0000000..88ec5f0 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_hi.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_seen_hi +display_name: "VLN-CE RxR Val Seen (Hindi)" +description: "VLN-CE RxR validation split (seen environments, Hindi)" +dataset: + split: "val_seen_hi" diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_te.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_te.yaml new file mode 100644 index 0000000..ce23d22 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_seen_te.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_seen_te +display_name: "VLN-CE RxR Val Seen (Telugu)" +description: "VLN-CE RxR validation split (seen environments, Telugu)" +dataset: + split: "val_seen_te" diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_en.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_en.yaml new file mode 100644 index 0000000..e470cf3 --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_en.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_unseen_en +display_name: "VLN-CE RxR Val Unseen (English)" +description: "VLN-CE RxR validation split (unseen environments, English)" +dataset: + split: "val_unseen_en" diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_hi.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_hi.yaml new file mode 100644 index 0000000..a60830e --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_hi.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_unseen_hi +display_name: "VLN-CE RxR Val Unseen (Hindi)" +description: "VLN-CE RxR validation split (unseen environments, Hindi)" +dataset: + split: "val_unseen_hi" diff --git a/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_te.yaml b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_te.yaml new file mode 100644 index 0000000..d13adff --- /dev/null +++ b/easi/tasks/vlnce_rxr/vlnce_rxr_val_unseen_te.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: vlnce_rxr_val_unseen_te +display_name: "VLN-CE RxR Val Unseen (Telugu)" +description: "VLN-CE RxR validation split (unseen environments, Telugu)" +dataset: + split: "val_unseen_te" From 3310eecce268405da45954013e36d117701913b0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 21:13:06 +0800 Subject: [PATCH 163/239] docs: add EASI standard prompt format reference Defines the standardized prompt format for benchmarks that don't provide their own (VLN-CE, ManipulaTHOR, Rearrangement, future tasks). Covers system prompt structure, 4-field JSON response format, action and chat history handling, image conventions, and YAML configuration. --- docs/easi-prompt-format-reference.md | 528 +++++++++++++++++++++++++++ 1 file changed, 528 insertions(+) create mode 100644 docs/easi-prompt-format-reference.md diff --git a/docs/easi-prompt-format-reference.md b/docs/easi-prompt-format-reference.md new file mode 100644 index 0000000..2af819b --- /dev/null +++ b/docs/easi-prompt-format-reference.md @@ -0,0 +1,528 @@ +# EASI Standard Prompt Format Reference + +This document defines the standard prompt format for EASI benchmarks that do not provide their own prompt format. EmbodiedBench benchmarks (EB-Alfred, EB-Navigation, EB-Habitat, EB-Manipulation) retain their original published formats for reproducibility. + +## Scope + +**Applies to:** New benchmarks and benchmarks without a published prompt format (VLN-CE R2R, VLN-CE RxR, ManipulaTHOR, AI2-THOR Rearrangement, HAZARD text-plan variants, all future tasks). + +**Does not apply to:** EmbodiedBench benchmarks (retain original format), HAZARD multiple-choice format (fundamentally different paradigm). + +--- + +## System Prompt Structure + +The system prompt uses markdown sections in this fixed order. Required sections must always be present. Optional sections are included only when the benchmark needs them. + +``` +## Role and Environment [REQUIRED] +## Observation Description [OPTIONAL] +## Available Actions [REQUIRED] +## Strategy [OPTIONAL] +## Guidelines [REQUIRED] +## Response Format [REQUIRED] +``` + +### Role and Environment (Required) + +One paragraph establishing who the agent is and what environment it operates in. Keep it concise — 2-3 sentences. + +``` +You are a robot navigating in a 3D indoor environment. You observe the +environment through a front-facing camera and must follow natural language +instructions to navigate to a goal location. +``` + +### Observation Description (Optional) + +Describes what each piece of environment feedback means. Include this section only when the benchmark provides dynamic feedback (geodesic distances, object states, GPS coordinates, etc.) that the LLM needs context to interpret. + +``` +## Observation Description +- **Distance to goal**: Geodesic (shortest walkable path) distance in meters + to the goal location. Decreases as you get closer. +- **Held object**: Name of the object currently being held, or "none". +``` + +Do NOT describe the image observation here — the LLM can see the image directly. Only describe non-visual feedback that appears as text. + +### Available Actions (Required) + +List all actions the agent can take, with a brief description of what each does. Include any validity constraints. + +``` +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 30 degrees +- turn_right: Turn right by 30 degrees +- look_up: Tilt camera up by 30 degrees +- look_down: Tilt camera down by 30 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached + the destination) +``` + +For benchmarks with parameterized actions, include the parameter format: + +``` +- find : Navigate to the named receptacle +- pick_up : Pick up the named object (must be nearby, hands empty) +``` + +### Strategy (Optional) + +Benchmark-specific tactical advice. Include this when the task has non-obvious strategies that improve performance. Keep it actionable. + +``` +## Strategy +1. Follow the instruction step by step, matching landmarks mentioned +2. Use move_forward to advance and turn_left/turn_right to change direction +3. Use stop ONLY when confident you have reached the described destination +``` + +### Guidelines (Required) + +Universal rules that apply regardless of benchmark. Always include these core guidelines, adding benchmark-specific ones as needed: + +``` +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. +``` + +### Response Format (Required) + +Always use the standard 4-field JSON format: + +``` +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about your situation, reflect on + history and feedback", + "language_plan": "Describe your next plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan. Actions execute +sequentially. +``` + +--- + +## Response Format Specification + +### JSON Schema + +All EASI prompt builders (within scope) must use this response format: + +```json +{ + "visual_state_description": "string", + "reasoning_and_reflection": "string", + "language_plan": "string", + "executable_plan": [ + {"action": "action_name"}, + {"action": "action_name"} + ] +} +``` + +### Field Definitions + +| Field | Type | Purpose | +|-------|------|---------| +| `visual_state_description` | string | Describe what the agent observes in the current image | +| `reasoning_and_reflection` | string | Reason about current state, reflect on history and feedback, explain why previous actions may have failed | +| `language_plan` | string | Natural language description of the planned actions | +| `executable_plan` | array | Ordered list of actions to execute | + +### Action Entry Format + +Each action in `executable_plan` is an object with an `action` field: + +```json +{"action": "move_forward"} +``` + +Do NOT use `action_id` — numeric IDs are an internal concept. The LLM should always reference actions by name. + +For parameterized actions, include a `params` field: + +```json +{"action": "find", "params": {"target": "Cabinet_2"}} +``` + +### Parsing Rules + +1. Apply `fix_json()` before parsing (handles common LLM JSON errors) +2. Accept both `{"action": "name"}` and `{"action_name": "name"}` +3. Validate each action name against `memory.action_space` +4. On first invalid action, stop parsing (don't skip — the plan is ordered) +5. On complete parse failure, return empty action list (agent will re-prompt) + +--- + +## Action History + +Action history provides the LLM with context about what happened in previous steps. It is a text section embedded in the user message. + +### Format + +``` +## Action History (last N steps) +Step 0: move_forward -> Distance to goal: 8.2m +Step 1: turn_left -> Distance to goal: 8.2m +Step 2: move_forward -> Distance to goal: 7.9m +``` + +Each entry: `Step {i}: {action_name} -> {feedback}` + +If feedback is disabled (`use_feedback: false`), omit the feedback portion: + +``` +Step 0: move_forward +Step 1: turn_left +Step 2: move_forward +``` + +### Configuration + +| YAML Parameter | Type | Default | Description | +|----------------|------|---------|-------------| +| `action_history_len` | int | 20 | Maximum entries to include. 0 = disabled. | +| `use_feedback` | bool | true | Include environment feedback in each entry. | + +### Data Source + +Action history comes from `memory.action_history`, which returns `list[tuple[str, str]]` — pairs of `(action_name, feedback_string)`. + +### Truncation + +When history exceeds `action_history_len`, keep only the most recent entries: + +```python +history = memory.action_history[-self.action_history_len:] +``` + +--- + +## Chat History + +Chat history provides the LLM with its own previous responses, enabling it to maintain reasoning continuity across steps. It is a text section embedded in the user message, parallel to action history. + +### Format + +``` +## Chat History (last N responses) +[Step 0 Response] +{"visual_state_description": "I see a hallway...", "reasoning_and_reflection": "I need to...", "language_plan": "Move forward...", "executable_plan": [{"action": "move_forward"}]} + +[Step 1 Response] +{"visual_state_description": "I see a door...", "reasoning_and_reflection": "The door matches...", "language_plan": "Turn right...", "executable_plan": [{"action": "turn_right"}]} +``` + +Each entry is the full LLM JSON response from that step, preceded by a `[Step N Response]` header. + +### Configuration + +| YAML Parameter | Type | Default | Description | +|----------------|------|---------|-------------| +| `chat_history` | bool | false | Enable chat history section. | +| `message_window_len` | int | 5 | Maximum responses to include. | + +### Data Source + +Chat history comes from `memory.steps`, which contains `StepRecord` objects with `llm_response` fields: + +```python +if self.chat_history: + responses = [ + s.llm_response for s in memory.steps + if s.llm_response is not None + ][-self.message_window_len:] +``` + +### Interaction with Action History + +When both are enabled, action history and chat history appear as separate sections in the user message. Action history provides a compact summary; chat history provides the full reasoning. They are complementary, not redundant. + +Recommended default: `action_history_len: 20, chat_history: false`. Enable chat history only for benchmarks where maintaining reasoning continuity significantly improves performance. + +--- + +## Image Handling + +### Encoding + +All images are encoded as base64 data URLs: + +```python +data:image/png;base64,{base64_encoded_data} +``` + +### Position in Message + +Images appear BEFORE text in the user message content array: + +```python +content = [] +# Images first +content.append({"type": "image_url", "image_url": {"url": img_url}}) +# Text after +content.append({"type": "text", "text": prompt_text}) +``` + +### Multiple Images + +When a benchmark provides multiple images (e.g., RGB + depth, current + goal), label them: + +```python +# In the text portion: +"(Image 1: Current view, Image 2: Goal state)" +``` + +### Image Sources + +| Source | Field | When to Use | +|--------|-------|-------------| +| Primary RGB | `observation.rgb_path` | Always (every benchmark has this) | +| Depth | `observation.metadata["depth_path"]` | When depth sensing is relevant | +| Goal/reference | `observation.metadata["goal_rgb_path"]` | For rearrangement/comparison tasks | +| Multi-view | `observation.metadata["{view}_rgb_path"]` | For panoramic or multi-camera setups | + +--- + +## Environment Feedback + +Environment feedback is benchmark-specific dynamic information from the simulator, delivered via `observation.metadata`. The standard defines where feedback appears and how to toggle it, not what it contains. + +### Where Feedback Appears + +1. **In action history entries**: `"Step N: action -> {feedback_text}"` +2. **As a dedicated section** (optional): For rich contextual feedback that applies to the current state, not just the last action. + +``` +## Environment Feedback +Distance to goal: 5.3m +``` + +### Toggle + +Controlled by `use_feedback: true/false` in YAML config. When false, omit feedback from action history entries and omit the Environment Feedback section. + +### Common Feedback Patterns + +| Pattern | Example | Used By | +|---------|---------|---------| +| Distance to goal | `"Distance to goal: 5.3m"` | VLN-CE R2R/RxR | +| Action success/failure | `"success"` / `"fail: object not reachable"` | EB-Alfred, HAZARD | +| Object states | `"Holding: Apple_1"` | Rearrangement, ManipulaTHOR | +| Spatial info | `"Position: (3.2, 0.1, -1.5), Rotation: 90°"` | Rearrangement, ManipulaTHOR | + +--- + +## YAML Configuration Standard + +Every prompt builder should accept these common kwargs. Benchmark-specific kwargs can be added below them. + +```yaml +agent: + prompt_builder: "easi.tasks..prompts." + prompt_builder_kwargs: + # Standard kwargs (all prompt builders should support these) + use_feedback: true # Include environment feedback + action_history_len: 20 # Max action history entries (0 = disabled) + chat_history: false # Include previous model responses + message_window_len: 5 # Max chat history entries (when chat_history: true) + + # Benchmark-specific kwargs (examples) + # use_geo_distance: true # VLN-CE: show geodesic distance + # n_shot: 3 # Few-shot examples count + # use_depth: false # Depth image toggle + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 +``` + +--- + +## User Message Assembly Order + +The user message is assembled in this fixed order: + +``` +[Image(s)] <- base64 encoded, before text +[Text content, assembled as:] + ## Task <- instruction / task description + ## Observation Description <- only if defined (from system prompt context) + ## Environment Feedback <- current-step feedback (if use_feedback) + ## Action History (last N steps) <- if action_history_len > 0 and has history + ## Chat History (last N responses) <- if chat_history and has history + [Response format reminder] <- brief reminder of JSON format +``` + +On the first turn, action history and chat history are empty and omitted. + +--- + +## Message Structure + +Always exactly 2 messages: + +```python +messages = [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": [image_parts..., text_part]}, +] +``` + +The system message contains the static prompt (role, actions, strategy, guidelines, response format). The user message contains the dynamic per-step content (images, task instruction, feedback, history). + +This is simpler than multi-turn conversation and works consistently across all LLM backends. + +--- + +## Complete Example: Navigation Benchmark + +### System Prompt + +``` +## Role and Environment +You are a robot navigating in a 3D indoor environment. You observe the +environment through a front-facing camera and must follow natural language +instructions to navigate to a goal location. + +## Observation Description +- **Distance to goal**: Geodesic distance in meters to the goal. Decreases + as you approach the destination. + +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 15 degrees +- turn_right: Turn right by 15 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached + the destination described in the instruction) + +## Strategy +1. Carefully read the navigation instruction +2. Observe your surroundings in the image +3. Follow the instruction step by step, matching landmarks and directions +4. Use stop ONLY when confident you have reached the described destination + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about your situation and history", + "language_plan": "Describe your next plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan. Actions execute +sequentially. +``` + +### User Message (Step 5) + +``` +[Image: base64 encoded current view] + +## Task +Walk down the hallway and turn right into the bedroom. + +## Environment Feedback +Distance to goal: 5.3m + +## Action History (last 5 steps) +Step 0: move_forward -> Distance to goal: 8.2m +Step 1: move_forward -> Distance to goal: 7.9m +Step 2: move_forward -> Distance to goal: 7.6m +Step 3: turn_right -> Distance to goal: 7.6m +Step 4: move_forward -> Distance to goal: 7.3m + +Respond with the JSON format specified above. +``` + +--- + +## Complete Example: Object Manipulation Benchmark + +### System Prompt + +``` +## Role and Environment +You are a robotic arm in an indoor environment. You can pick up, place, and +manipulate objects on a table using discrete actions. + +## Observation Description +- **Held object**: The object currently in the gripper, or "none". +- **Nearby objects**: Objects within interaction range and their positions. + +## Available Actions +- move_to : Move the arm to the named object +- pick_up : Grasp the named object (must be nearby, gripper empty) +- place_on : Place held object on the named receptacle +- open : Open a closed receptacle +- close : Close an open receptacle +- done: Signal task completion + +## Strategy +1. Locate the target object before attempting to pick it up +2. Ensure your gripper is empty before picking up a new object +3. Navigate to the destination before placing an object + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about your situation and history", + "language_plan": "Describe your next plan in natural language", + "executable_plan": [{"action": ""}] +} +``` + +### User Message (Step 3, with chat history enabled) + +``` +[Image: base64 encoded current view] + +## Task +Pick up the apple and place it in the bowl. + +## Environment Feedback +Held object: none +Nearby objects: Apple_1 (0.3m), Bowl_2 (1.2m) + +## Action History (last 3 steps) +Step 0: move_to Apple_1 -> success +Step 1: pick_up Apple_1 -> fail: object not reachable +Step 2: move_to Apple_1 -> success + +## Chat History (last 2 responses) +[Step 1 Response] +{"visual_state_description": "I see a red apple on the counter...", "reasoning_and_reflection": "I moved to the apple successfully...", "language_plan": "Pick up the apple", "executable_plan": [{"action": "pick_up Apple_1"}]} + +[Step 2 Response] +{"visual_state_description": "The apple is still on the counter...", "reasoning_and_reflection": "Pickup failed, I need to get closer...", "language_plan": "Move closer then pick up", "executable_plan": [{"action": "move_to Apple_1"}]} + +Respond with the JSON format specified above. +``` From bc6021c40641aa493a66628c22a4c7784019c424 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 21:58:36 +0800 Subject: [PATCH 164/239] fix: align all in-scope prompt builders with EASI standard format Updates VLN-CE R2R, VLN-CE RxR, ManipulaTHOR, and AI2-THOR Rearrangement prompt builders to follow the EASI Standard Prompt Format Reference (docs/easi-prompt-format-reference.md): - Standard section headers (Role and Environment, Observation Description, Available Actions, Strategy, Guidelines, Response Format) - Consistent user message sections (Task, Environment Feedback, Action History, Chat History, response format reminder) - Standard action history format: "Step N: action -> feedback" - ManipulaTHOR: restructured from 1-message to 2-message format, removed action_id from response format (kept in parser for compat) - Rearrangement: standardized JSON fields (observation -> visual_state_description, reasoning -> reasoning_and_reflection, plan -> executable_plan), converted multi-turn chat history to text section, added action history - All builders now support action_history_len and chat_history kwargs --- .../ai2thor_rearrangement_2023/_base.yaml | 1 + .../ai2thor_rearrangement_2023/prompts.py | 284 +++++++++------- easi/tasks/manipulathor/_base.yaml | 2 + easi/tasks/manipulathor/prompts.py | 320 ++++++++++-------- easi/tasks/vlnce_r2r/prompts.py | 89 +++-- easi/tasks/vlnce_rxr/prompts.py | 83 ++++- tests/test_manipulathor_task.py | 21 +- 7 files changed, 472 insertions(+), 328 deletions(-) diff --git a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml index ef15fda..468e62b 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/_base.yaml +++ b/easi/tasks/ai2thor_rearrangement_2023/_base.yaml @@ -30,6 +30,7 @@ agent: prompt_builder: "easi.tasks.ai2thor_rearrangement_2023.prompts.AI2THORRearrangement2023PromptBuilder" prompt_builder_kwargs: use_feedback: true + action_history_len: 20 chat_history: true message_window_len: 10 # Sensor toggles (must match simulator_configs) diff --git a/easi/tasks/ai2thor_rearrangement_2023/prompts.py b/easi/tasks/ai2thor_rearrangement_2023/prompts.py index f5e9f62..aa7d18c 100644 --- a/easi/tasks/ai2thor_rearrangement_2023/prompts.py +++ b/easi/tasks/ai2thor_rearrangement_2023/prompts.py @@ -1,5 +1,7 @@ """Prompt builder for AI2-THOR Rearrangement task. +Follows the EASI Standard Prompt Format Reference (docs/easi-prompt-format-reference.md). + Constructs multi-modal prompts with observation images, GPS data, action history, and structured JSON output schema. @@ -19,55 +21,6 @@ logger = get_logger(__name__) -# --- System prompt template (observations section is injected dynamically) --- - -SYSTEM_PROMPT = """\ -You are an embodied AI agent performing an object rearrangement task in a 3D indoor environment (AI2-THOR). - -## Goal -{instruction} - -**Important:** You are evaluated on the final state of ALL objects in the scene. If you accidentally bump into or displace objects that are already in their correct positions, it counts against you. Navigate carefully. - -## Observations -At each step you receive the following sensor inputs: -{observation_description} - -## Available Actions -{action_list} - -## Action Types -- **Navigation**: move_ahead (0.25m step), move_left/right/back, rotate_left/right (90°), look_up/look_down (30°), stand/crouch -- **Pickup**: pickup_ — picks up the nearest visible object of that type (must have empty hands) -- **Drop**: drop_held_object_with_snap — drops held object, snapping to goal position if close enough -- **Open/Close**: open_by_type_ — toggles openness of nearest visible cabinet/drawer/fridge/etc. -- **Done**: Signal that all objects are in their correct positions - -## Strategy -{strategy} - -## Rules -- You can hold only ONE object at a time -- drop_held_object_with_snap works best when the goal location is visible -- If pickup fails, try moving closer or adjusting your view angle -- Grid movement: 0.25m steps, 90° rotations -- **Do NOT disturb objects already in their correct positions** — avoid bumping into furniture or pushing items while navigating. Take careful, minimal paths. -""" - -OUTPUT_SCHEMA = """\ -Respond in this exact JSON format: -```json -{{ - "observation": "describe what you see in the observation images", - "reasoning": "what to do next and why", - "plan": [ - {{"action_name": ""}}, - ... - ] -}} -``` -Plan 1-5 actions. Use exact action names from the list above.""" - class AI2THORRearrangement2023PromptBuilder: """Prompt builder for the rearrangement task. @@ -80,6 +33,7 @@ class AI2THORRearrangement2023PromptBuilder: def __init__( self, use_feedback: bool = True, + action_history_len: int = 20, chat_history: bool = True, message_window_len: int = 10, use_rgb: bool = True, @@ -89,6 +43,7 @@ def __init__( **kwargs, ): self.use_feedback = use_feedback + self.action_history_len = action_history_len self.chat_history = chat_history self.message_window_len = message_window_len self.use_rgb = use_rgb @@ -100,13 +55,78 @@ def __init__( def set_action_space(self, actions: list[str]): self._action_name_set = set(actions) - parts = [f"{i}: {a}" for i, a in enumerate(actions)] - self._action_list_str = ", ".join(parts) + parts = [f"- {a}" for a in actions] + self._action_list_str = "\n".join(parts) + + # --- System prompt --- - # --- System prompt helpers --- + def _build_system_prompt(self) -> str: + """Build the full system prompt following EASI standard sections.""" + sections = [] + + # Role and Environment + sections.append( + "## Role and Environment\n" + "You are an embodied AI agent performing an object rearrangement " + "task in a 3D indoor environment (AI2-THOR). You must rearrange " + "objects to match a goal state. You are evaluated on ALL objects " + "in the scene — avoid accidentally displacing objects already in " + "their correct positions." + ) + + # Observation Description + obs_desc = self._build_observation_description() + if obs_desc: + sections.append(f"## Observation Description\n{obs_desc}") + + # Available Actions + sections.append( + f"## Available Actions\n{self._action_list_str}\n\n" + "**Action Types:**\n" + "- **Navigation**: move_ahead (0.25m step), move_left/right/back, " + "rotate_left/right (90 deg), look_up/look_down (30 deg), stand/crouch\n" + "- **Pickup**: pickup_ — picks up the nearest visible " + "object of that type (must have empty hands)\n" + "- **Drop**: drop_held_object_with_snap — drops held object, " + "snapping to goal position if close enough\n" + "- **Open/Close**: open_by_type_ — toggles openness of " + "nearest visible cabinet/drawer/fridge/etc.\n" + "- **Done**: Signal that all objects are in their correct positions" + ) + + # Strategy + sections.append(f"## Strategy\n{self._build_strategy()}") + + # Guidelines + sections.append( + "## Guidelines\n" + "1. Always output at least one action in executable_plan.\n" + "2. Only use actions from the Available Actions list.\n" + "3. If previous actions failed, reason about why and try a different approach.\n" + "4. Do not repeatedly execute the same action sequence.\n" + "5. Keep your plan efficient and concise.\n" + "6. You can hold only ONE object at a time.\n" + "7. Do NOT disturb objects already in their correct positions." + ) + + # Response Format + sections.append( + "## Response Format\n" + "Output a JSON object with exactly these 4 fields:\n" + "{\n" + ' "visual_state_description": "Describe what you see in the observation images",\n' + ' "reasoning_and_reflection": "What to do next and why",\n' + ' "language_plan": "Your plan in natural language",\n' + ' "executable_plan": [{"action": ""}]\n' + "}\n\n" + "You may include 1-5 actions in executable_plan. Actions execute " + "sequentially." + ) + + return "\n\n".join(sections) def _build_observation_description(self) -> str: - """Build the observation section of the system prompt based on active sensors.""" + """Build the observation description based on active sensors.""" sections = [] idx = 1 @@ -122,8 +142,7 @@ def _build_observation_description(self) -> str: sections.append( f"- **Depth Image** (Image {idx}): A grayscale depth map from " f"the agent's viewpoint. Brighter pixels are closer, darker " - f"pixels are farther away. Use this to judge distances to " - f"objects and obstacles." + f"pixels are farther away." ) idx += 1 @@ -140,7 +159,7 @@ def _build_observation_description(self) -> str: sections.append( "- **GPS Data** (text): The agent's 3D position (x, y, z) in " "meters where y is the vertical axis (height). Yaw rotation in " - "degrees (0°–360°). Horizon angle: 0° = looking straight " + "degrees (0-360). Horizon angle: 0 = looking straight " "ahead, positive = looking down, negative = looking up. Also " "reports which object the agent is currently holding, if any." ) @@ -155,7 +174,7 @@ def _build_strategy(self) -> str: "2. Navigate to a misplaced object\n" "3. Pick it up with the matching pickup_ action\n" "4. Navigate toward where it belongs (compare with goal image)\n" - "5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close\n" + "5. Use drop_held_object_with_snap — it snaps the object to its goal if you are close\n" "6. Repeat for remaining misplaced objects\n" '7. Say "done" when finished' ) @@ -164,7 +183,7 @@ def _build_strategy(self) -> str: "2. Navigate to a misplaced object\n" "3. Pick it up with the matching pickup_ action\n" "4. Navigate to where it should go based on context\n" - "5. Use drop_held_object_with_snap — it snaps the object to its goal if you're close\n" + "5. Use drop_held_object_with_snap — it snaps the object to its goal if you are close\n" "6. Repeat for remaining misplaced objects\n" '7. Say "done" when finished' ) @@ -172,35 +191,15 @@ def _build_strategy(self) -> str: # --- Message building --- def build_messages(self, memory: AgentMemory) -> list[dict]: - # Lazy-init action space from memory (set by agent constructor) + # Lazy-init action space from memory if not self._action_list_str and memory.action_space: self.set_action_space(memory.action_space) - instruction = memory.task_description or "Rearrange objects to match the goal." - - system_text = SYSTEM_PROMPT.format( - instruction=instruction, - observation_description=self._build_observation_description(), - action_list=self._action_list_str, - strategy=self._build_strategy(), - ) - + system_text = self._build_system_prompt() messages = [{"role": "system", "content": system_text}] - # Chat history (if enabled) - if self.chat_history and memory.steps: - window = memory.steps[-self.message_window_len:] - for step in window: - user_content = self._make_history_content(step) - messages.append({"role": "user", "content": user_content}) - if step.llm_response: - messages.append({ - "role": "assistant", - "content": step.llm_response, - }) - - # Current turn - user_content = self._make_current_content(memory) + # Build user message + user_content = self._make_user_content(memory) messages.append({"role": "user", "content": user_content}) return messages @@ -256,63 +255,88 @@ def _add_images( return f" ({', '.join(labels)})" if labels else "" - def _make_history_content(self, step) -> list[dict]: + def _make_user_content(self, memory: AgentMemory) -> list[dict]: + """Build user message content: images + text sections.""" content: list[dict] = [] - metadata = step.observation.metadata if step.observation else {} - rgb_path = step.observation.rgb_path if step.observation else None + obs = memory.current_observation + metadata = obs.metadata if obs else {} + rgb_path = obs.rgb_path if obs else None + # Images first img_label = self._add_images(content, rgb_path, metadata) - text = f"Observation{img_label}." - if self.use_feedback and step.feedback: - text += f"\nFeedback: {step.feedback}" + text_parts = [] - # GPS overlay from observation metadata - if self.use_gps: - gps_text = self._format_gps(metadata) - if gps_text: - text += f"\n{gps_text}" - - content.append({"type": "text", "text": text}) - return content - - def _make_current_content(self, memory: AgentMemory) -> list[dict]: - content: list[dict] = [] - metadata = ( - memory.current_observation.metadata - if memory.current_observation else {} - ) - rgb_path = ( - memory.current_observation.rgb_path - if memory.current_observation else None - ) - - img_label = self._add_images(content, rgb_path, metadata) + # Task + instruction = memory.task_description or "Rearrange objects to match the goal." + text_parts.append(f"## Task\n{instruction}") - if memory.is_first_turn: - text = f"First observation{img_label}. Begin the rearrangement task." - else: - text = f"Current observation{img_label}." - if self.use_feedback and memory.steps: - last = memory.steps[-1] - if last.feedback: - text += f"\nFeedback: {last.feedback}" - - # GPS and held-object from last step's observation metadata - if memory.steps: + # Environment Feedback (GPS + held object) + feedback_lines = [] + if self.use_gps and memory.steps: last_metadata = ( memory.steps[-1].observation.metadata if memory.steps[-1].observation else {} ) - if self.use_gps: - gps_text = self._format_gps(last_metadata) - if gps_text: - text += f"\n{gps_text}" + gps_text = self._format_gps(last_metadata) + if gps_text: + feedback_lines.append(gps_text) held = last_metadata.get("held_object", "none") - text += f"\nHolding: {held}" + feedback_lines.append(f"Holding: {held}") + elif self.use_gps and obs and metadata: + gps_text = self._format_gps(metadata) + if gps_text: + feedback_lines.append(gps_text) + + if self.use_feedback and memory.steps: + last = memory.steps[-1] + if last.feedback: + feedback_lines.append(f"Last action result: {last.feedback}") + + if feedback_lines: + text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) + + # Action History + if memory.action_history and self.action_history_len > 0: + history = memory.action_history[-self.action_history_len:] + history_lines = [] + for i, (action_name, feedback) in enumerate(history): + if self.use_feedback and feedback: + history_lines.append(f"Step {i}: {action_name} -> {feedback}") + else: + history_lines.append(f"Step {i}: {action_name}") + if history_lines: + text_parts.append( + f"## Action History (last {len(history_lines)} steps)\n" + + "\n".join(history_lines) + ) + + # Chat History (text section, not multi-turn) + if self.chat_history and memory.steps: + responses = [ + s.llm_response for s in memory.steps + if s.llm_response is not None + ][-self.message_window_len:] + if responses: + chat_lines = [] + offset = len(memory.steps) - len(responses) + for j, resp in enumerate(responses): + chat_lines.append(f"[Step {offset + j} Response]\n{resp}") + text_parts.append( + f"## Chat History (last {len(responses)} responses)\n" + + "\n\n".join(chat_lines) + ) + + # Response format reminder + if memory.is_first_turn: + text_parts.append( + f"First observation{img_label}. Begin the rearrangement task.\n\n" + "Respond with the JSON format specified above." + ) + else: + text_parts.append("Respond with the JSON format specified above.") - text += f"\n\n{OUTPUT_SCHEMA}" - content.append({"type": "text", "text": text}) + content.append({"type": "text", "text": "\n\n".join(text_parts)}) return content def _format_gps(self, metadata: dict | None) -> str: @@ -340,13 +364,15 @@ def parse_response( logger.warning("Failed to parse LLM response as JSON") return [Action(action_name="done")] - plan = data.get("plan", []) + # Accept both "executable_plan" (standard) and "plan" (legacy) + plan = data.get("executable_plan", data.get("plan", [])) if not plan: return [Action(action_name="done")] actions = [] for entry in plan: - name = entry.get("action_name", "") + # Accept "action" (standard), "action_name" (legacy) + name = entry.get("action", entry.get("action_name", "")) if name in self._action_name_set: actions.append(Action(action_name=name)) else: diff --git a/easi/tasks/manipulathor/_base.yaml b/easi/tasks/manipulathor/_base.yaml index 12f36cb..2fac0e5 100644 --- a/easi/tasks/manipulathor/_base.yaml +++ b/easi/tasks/manipulathor/_base.yaml @@ -23,7 +23,9 @@ agent: prompt_builder_kwargs: n_shot: 0 use_feedback: true + action_history_len: 20 chat_history: false + message_window_len: 5 max_steps: 200 use_rgb: true use_gps: true diff --git a/easi/tasks/manipulathor/prompts.py b/easi/tasks/manipulathor/prompts.py index 2d517cf..b88266c 100644 --- a/easi/tasks/manipulathor/prompts.py +++ b/easi/tasks/manipulathor/prompts.py @@ -1,7 +1,8 @@ """ManipulaTHOR prompt builder for EASI LLM agents. +Follows the EASI Standard Prompt Format Reference (docs/easi-prompt-format-reference.md). Presents RGB image + GPS state sensors + action history. -Outputs JSON with executable plan of named action IDs. +Outputs JSON with executable plan of named actions. """ from __future__ import annotations @@ -16,58 +17,95 @@ logger = get_logger(__name__) -# ── System prompt template ────────────────────────────────────────────────── - -SYSTEM_PROMPT = """You are a robotic arm agent in a kitchen environment. Your task is to pick up a target object and move it to a goal location. - -## Environment -- You control a robotic arm mounted on a mobile base in a kitchen (AI2-THOR simulator). -- You observe: an RGB image from the agent's camera{sensor_note}. -- Each arm movement moves 0.05m. Navigation moves 0.2m forward or rotates 45°. -- Maximum {max_steps} steps per episode. - -## Available Actions (choose by ID 0-{max_id}): +# ── Action descriptions for the system prompt ── +ACTION_DESCRIPTIONS = { + "MoveArmHeightP": "Move arm up by 0.05m", + "MoveArmHeightM": "Move arm down by 0.05m", + "MoveArmXP": "Move arm right by 0.05m", + "MoveArmXM": "Move arm left by 0.05m", + "MoveArmYP": "Move arm up by 0.05m (Y axis)", + "MoveArmYM": "Move arm down by 0.05m (Y axis)", + "MoveArmZP": "Move arm forward by 0.05m", + "MoveArmZM": "Move arm backward by 0.05m", + "MoveAheadContinuous": "Move agent forward by 0.2m", + "RotateRightContinuous": "Rotate agent right by 45 degrees", + "RotateLeftContinuous": "Rotate agent left by 45 degrees", + "PickUpMidLevel": "Pick up the target object (arm must be close)", + "DoneMidLevel": "Signal task completion (object must be at goal)", +} + + +def _build_action_list() -> str: + """Build formatted action list for system prompt.""" + lines = [] + for name in ACTION_SPACE: + desc = ACTION_DESCRIPTIONS.get(name, "") + lines.append(f"- {name}: {desc}") + return "\n".join(lines) + + +SYSTEM_PROMPT = """\ +## Role and Environment +You are a robotic arm agent in a kitchen environment (AI2-THOR simulator). \ +Your task is to pick up a target object and move it to a goal location. You \ +control a robotic arm mounted on a mobile base. Each arm movement moves \ +0.05m. Navigation moves 0.2m forward or rotates 45 degrees. Maximum \ +{{max_steps}} steps per episode. + +## Observation Description +- **Object Position & Rotation**: Object 6D state (x,y,z position and \ +rx,ry,rz rotation) relative to the agent. +- **Object-to-Goal Distance**: Absolute x,y,z distance from the object to \ +the goal in agent frame. +- **Arm-to-Object Distance**: Absolute x,y,z distance from the arm tip to \ +the object in agent frame. +- **Object Held**: Whether you are currently holding the object ("Yes"/"No"). + +## Available Actions {action_list} -{gps_description} -## Strategy for Using GPS Sensors -The GPS sensors give you precise spatial information in YOUR reference frame (agent-relative coordinates). +## Strategy **Phase 1 — Approach the object:** -- Check "Arm-to-Object Distance": this tells you how far your arm tip is from the target object on each axis. -- Positive X means the object is to your right; positive Z means it is ahead of you. -- Use MoveArmXP/XM, MoveArmYP/YM, MoveArmZP/ZM to reduce arm-to-object distance on each axis. -- Use MoveAheadContinuous / RotateLeft / RotateRight if the object is far (>0.5m) — navigation is faster than arm movement. +- Check Arm-to-Object Distance to see how far your arm tip is from the target. +- Positive X = object is to your right; positive Z = object is ahead. +- Use arm movements (MoveArmXP/XM, MoveArmYP/YM, MoveArmZP/ZM) to reduce \ +distance on each axis. +- Use navigation (MoveAheadContinuous/RotateLeft/RotateRight) if the object \ +is far (>0.5m). **Phase 2 — Pick up the object:** -- When arm-to-object distance is small on all axes (<0.1m), use PickUpMidLevel (action 11). -- After pickup, check "Object Held" — it should read "Yes". +- When arm-to-object distance is small on all axes (<0.1m), use PickUpMidLevel. +- After pickup, check Object Held — it should read "Yes". **Phase 3 — Navigate to the goal:** -- Check "Object-to-Goal Distance": this tells you how far the object is from the goal. -- Navigate (MoveAhead, Rotate) to reduce the distance. The object moves with you when held. -- Use arm movements for fine positioning when close to the goal. +- Check Object-to-Goal Distance. Navigate to reduce it. The object moves \ +with you when held. +- Use arm movements for fine positioning when close. **Phase 4 — Place and finish:** -- When Object-to-Goal Distance is small on all axes (<0.1m), use DoneMidLevel (action 12). - -{examples}""" - -OUTPUT_TEMPLATE = """ - -## Output Format -Respond in JSON with this exact structure: -```json -{{ - "visual_state_description": "Describe what you see in the image and the GPS state", - "reasoning_and_reflection": "Your reasoning about the current state and what to do next", - "language_plan": "Your plan in natural language", - "executable_plan": [ - {{"action_id": , "action_name": ""}}, - ... - ] -}} -``` -Output 1-5 actions in the executable_plan. Choose action IDs from the available actions list.""" +- When Object-to-Goal Distance is small on all axes (<0.1m), use DoneMidLevel. + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. +6. Output 1-5 actions per step. + +## Response Format +Output a JSON object with exactly these 4 fields: +{{{{ + "visual_state_description": "Describe what you see in the image and \ +the GPS state", + "reasoning_and_reflection": "Your reasoning about the current state \ +and what to do next", + "language_plan": "Your plan in natural language", + "executable_plan": [{{{{"action": ""}}}}] +}}}} + +You may include multiple actions in executable_plan. Actions execute \ +sequentially.""" # ── Prompt builder ────────────────────────────────────────────────────────── @@ -81,19 +119,23 @@ def __init__( split: str = "test_seen", use_feedback: bool = True, chat_history: bool = False, + message_window_len: int = 5, max_steps: int = 200, use_rgb: bool = True, use_gps: bool = True, use_depth: bool = False, + action_history_len: int = 20, ): self.n_shot = n_shot self.split = split self.use_feedback = use_feedback self.chat_history = chat_history + self.message_window_len = message_window_len self.max_steps = max_steps self.use_rgb = use_rgb self.use_gps = use_gps self.use_depth = use_depth + self.action_history_len = action_history_len # Load few-shot examples examples_file = Path(__file__).parent / "config" / "manipulathor_examples.json" @@ -103,10 +145,6 @@ def __init__( else: self._examples = [] - # Build action list string - self._action_list = "\n".join( - f" {i}: {name}" for i, name in enumerate(ACTION_SPACE) - ) self._action_id_map = {name: i for i, name in enumerate(ACTION_SPACE)} self._id_action_map = {i: name for i, name in enumerate(ACTION_SPACE)} @@ -115,61 +153,51 @@ def set_action_space(self, actions: list) -> None: pass # ManipulaTHOR has a fixed action space def build_messages(self, memory: AgentMemory) -> list: - """Build OpenAI message format from agent memory.""" - prompt = self._build_prompt_text(memory) - return self._wrap_as_user_message(prompt, memory.current_observation) - - def _build_prompt_text(self, memory: AgentMemory) -> str: - """Build the full prompt text.""" - max_id = len(ACTION_SPACE) - 1 - - # Build examples section - examples_str = "" - if self.n_shot >= 1 and self._examples: - examples_str = "\n\n## Examples\n" + "\n\n".join( - f"### Example {i+1}:\n{ex}" - for i, ex in enumerate(self._examples[:self.n_shot]) - ) - - # Build sensor note for system prompt - sensor_parts = [] - if self.use_gps: - sensor_parts.append("GPS-like state sensors showing spatial relationships") - if self.use_depth: - sensor_parts.append("a depth image (colormap)") - sensor_note = (", and " + ", ".join(sensor_parts)) if sensor_parts else "" - - # GPS description section (only if GPS enabled) - gps_description = "" - if self.use_gps: - gps_description = """ -## GPS State Sensors -At each step you receive: -- **Object State** (6D): object position (x,y,z) and rotation (rx,ry,rz) relative to agent -- **Object-to-Goal Distance** (3D): absolute x,y,z distance from object to goal in agent frame -- **Arm-to-Object Distance** (3D): absolute x,y,z distance from arm tip to object in agent frame -- **Object Held**: whether you are currently holding the object - -""" + """Build 2-message format: system + user.""" + import base64 - # System prompt - prompt = SYSTEM_PROMPT.format( + # Build system prompt + system_text = SYSTEM_PROMPT.format( max_steps=self.max_steps, - max_id=max_id, - action_list=self._action_list, - examples=examples_str, - sensor_note=sensor_note, - gps_description=gps_description, + action_list=_build_action_list(), ) + messages = [{"role": "system", "content": system_text}] - # Task instruction - task_desc = memory.task_description - prompt += f"\n\n## Current Task: {task_desc}" - - # GPS state from current observation metadata (only if GPS enabled) + # Build user message + content = [] obs = memory.current_observation + + # Images first + if self.use_rgb and obs and obs.rgb_path: + try: + with open(obs.rgb_path, "rb") as f: + b64 = base64.b64encode(f.read()).decode("utf-8") + content.append({ + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{b64}"}, + }) + except FileNotFoundError: + logger.warning("RGB image not found: %s", obs.rgb_path) + + if self.use_depth and obs and obs.depth_path: + try: + with open(obs.depth_path, "rb") as f: + b64 = base64.b64encode(f.read()).decode("utf-8") + content.append({ + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{b64}"}, + }) + except FileNotFoundError: + logger.warning("Depth image not found: %s", obs.depth_path) + + text_parts = [] + + # Task + text_parts.append(f"## Task\n{memory.task_description}") + + # Environment Feedback (GPS state) if self.use_gps and obs and obs.metadata: - prompt += "\n\n## Current GPS State:" + feedback_lines = [] gps_fields = [ ("relative_current_obj_state", "Object Position & Rotation (agent-relative)"), ("relative_obj_to_goal", "Object-to-Goal Distance"), @@ -181,61 +209,56 @@ def _build_prompt_text(self, memory: AgentMemory) -> str: if val is not None: if key == "pickedup_object": held = float(val) > 0.5 - prompt += f"\n- {label}: {'Yes' if held else 'No'}" + feedback_lines.append(f"{label}: {'Yes' if held else 'No'}") else: try: arr = json.loads(val) if isinstance(val, str) else val formatted = [f"{v:.3f}" for v in arr] - prompt += f"\n- {label}: [{', '.join(formatted)}]" + feedback_lines.append(f"{label}: [{', '.join(formatted)}]") except (json.JSONDecodeError, TypeError): - prompt += f"\n- {label}: {val}" - - # Action history + feedback - action_history = getattr(memory, 'action_history', []) - if action_history: - prompt += "\n\n## Action History:" - for i, (action_name, feedback) in enumerate(action_history): - action_id = self._action_id_map.get(action_name, -1) - if self.use_feedback: - prompt += f"\nStep {i+1}: action {action_id} ({action_name}) — {feedback}" + feedback_lines.append(f"{label}: {val}") + if feedback_lines: + text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) + + # Action History + action_history = memory.action_history + if action_history and self.action_history_len > 0: + history = action_history[-self.action_history_len:] + history_lines = [] + for i, (action_name, feedback) in enumerate(history): + if self.use_feedback and feedback: + history_lines.append(f"Step {i}: {action_name} -> {feedback}") else: - prompt += f"\nStep {i+1}: action {action_id} ({action_name})" - - prompt += "\n\nBased on the action history and current state, plan your next actions." - - prompt += OUTPUT_TEMPLATE - return prompt - - def _wrap_as_user_message(self, prompt: str, observation) -> list: - """Wrap prompt + images as OpenAI user message. - - Includes RGB and/or depth images based on use_rgb and use_depth toggles. - """ - import base64 - - content = [] - - def _add_image(path, label): - try: - with open(path, "rb") as f: - b64 = base64.b64encode(f.read()).decode("utf-8") - content.append({ - "type": "image_url", - "image_url": {"url": f"data:image/png;base64,{b64}"}, - }) - except FileNotFoundError: - logger.warning("%s image not found: %s", label, path) - - # Add RGB image (before text, matching EASI convention) - if self.use_rgb and observation and observation.rgb_path: - _add_image(observation.rgb_path, "RGB") - - # Add depth colormap image if enabled - if self.use_depth and observation and observation.depth_path: - _add_image(observation.depth_path, "Depth") - - content.append({"type": "text", "text": prompt}) - return [{"role": "user", "content": content}] + history_lines.append(f"Step {i}: {action_name}") + if history_lines: + text_parts.append( + f"## Action History (last {len(history_lines)} steps)\n" + + "\n".join(history_lines) + ) + + # Chat History + if self.chat_history and memory.steps: + responses = [ + s.llm_response for s in memory.steps + if s.llm_response is not None + ][-self.message_window_len:] + if responses: + chat_lines = [] + offset = len(memory.steps) - len(responses) + for j, resp in enumerate(responses): + chat_lines.append(f"[Step {offset + j} Response]\n{resp}") + text_parts.append( + f"## Chat History (last {len(responses)} responses)\n" + + "\n\n".join(chat_lines) + ) + + # Response format reminder + text_parts.append("Respond with the JSON format specified above.") + + content.append({"type": "text", "text": "\n\n".join(text_parts)}) + messages.append({"role": "user", "content": content}) + + return messages def parse_response(self, llm_response: str, memory: AgentMemory) -> list: """Parse LLM JSON response into Action objects.""" @@ -259,8 +282,9 @@ def parse_response(self, llm_response: str, memory: AgentMemory) -> list: if not isinstance(entry, dict): continue - action_name = None - if "action_id" in entry: + # Prefer "action" key (EASI standard), fall back to action_id/action_name + action_name = entry.get("action", None) + if action_name is None and "action_id" in entry: aid = entry["action_id"] if isinstance(aid, int) and 0 <= aid < len(ACTION_SPACE): action_name = self._id_action_map[aid] diff --git a/easi/tasks/vlnce_r2r/prompts.py b/easi/tasks/vlnce_r2r/prompts.py index 27b64c3..96244dd 100644 --- a/easi/tasks/vlnce_r2r/prompts.py +++ b/easi/tasks/vlnce_r2r/prompts.py @@ -1,6 +1,6 @@ """VLN-CE R2R prompt builder. -Adapted from LHPR-VLN's EmbodiedBench format for single-goal navigation. +Follows the EASI Standard Prompt Format Reference (docs/easi-prompt-format-reference.md). Single front camera, 4 actions (move_forward, turn_left, turn_right, stop). """ from __future__ import annotations @@ -16,13 +16,22 @@ logger = get_logger(__name__) -SYSTEM_PROMPT = """You are a robot navigating in a 3D indoor environment. You observe the environment through a front-facing camera and must follow natural language instructions to navigate to a goal location. +SYSTEM_PROMPT = """\ +## Role and Environment +You are a robot navigating in a 3D indoor environment. You observe the \ +environment through a front-facing camera and must follow natural language \ +instructions to navigate to a goal location. + +## Observation Description +- **Distance to goal**: Geodesic (shortest walkable path) distance in meters \ +to the goal location. Decreases as you get closer. ## Available Actions - move_forward: Move forward by 0.25 meters - turn_left: Turn left by 15 degrees - turn_right: Turn right by 15 degrees -- stop: Stop and end navigation (use ONLY when you believe you have reached the destination described in the instruction) +- stop: Stop and end navigation (use ONLY when you believe you have reached \ +the destination described in the instruction) ## Strategy 1. Carefully read the navigation instruction @@ -31,16 +40,25 @@ 4. Use move_forward to advance and turn_left/turn_right to change direction 5. Use stop ONLY when you are confident you have reached the described destination +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + ## Response Format Output a JSON object with exactly these 4 fields: { "visual_state_description": "Describe what you see in the current image", - "reasoning_and_reflection": "Reason about where you are relative to the instruction", + "reasoning_and_reflection": "Reason about your situation, reflect on \ +history and feedback", "language_plan": "Describe your next navigation plan in natural language", "executable_plan": [{"action": ""}] } -You may include multiple actions in executable_plan to plan ahead. Actions are executed sequentially.""" +You may include multiple actions in executable_plan. Actions execute \ +sequentially.""" def _encode_image_base64(image_path: str) -> str | None: @@ -91,47 +109,68 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: messages = [{"role": "system", "content": SYSTEM_PROMPT}] - # Build user message with image + instruction + feedback content = [] - # Current observation image + # Image first obs = memory.current_observation if obs and obs.rgb_path: img_url = _encode_image_base64(obs.rgb_path) if img_url: content.append({"type": "image_url", "image_url": {"url": img_url}}) - # Build text prompt text_parts = [] - # Instruction - text_parts.append(f"## Navigation Instruction\n{memory.task_description}") + # Task + text_parts.append(f"## Task\n{memory.task_description}") - # Environmental feedback + # Environment Feedback if self.use_feedback and obs and obs.metadata: + feedback_lines = [] + if self.use_geo_distance: + geo = obs.metadata.get("geo_distance") + if geo is not None and geo != "null": + feedback_lines.append(f"Distance to goal: {float(geo):.1f}m") feedback = obs.metadata.get("feedback", "") if feedback: - text_parts.append(f"\n## Environmental Feedback\n{feedback}") + feedback_lines.append(feedback) + if feedback_lines: + text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) - # Geodesic distance - if self.use_geo_distance and obs and obs.metadata: - geo = obs.metadata.get("geo_distance") - if geo is not None and geo != "null": - text_parts.append(f"Geodesic distance to goal: {float(geo):.1f}m") - - # Action history + # Action History if memory.action_history and self.action_history_len > 0: history = memory.action_history[-self.action_history_len:] history_lines = [] for i, (action_name, feedback) in enumerate(history): - fb = "" if self.use_feedback and feedback: - fb = f", feedback: {feedback}" - history_lines.append(f"Step {i}: {action_name}{fb}") + history_lines.append(f"Step {i}: {action_name} -> {feedback}") + else: + history_lines.append(f"Step {i}: {action_name}") if history_lines: - text_parts.append(f"\n## Action History (last {len(history_lines)} steps)\n" + "\n".join(history_lines)) - - content.append({"type": "text", "text": "\n".join(text_parts)}) + text_parts.append( + f"## Action History (last {len(history_lines)} steps)\n" + + "\n".join(history_lines) + ) + + # Chat History + if self.chat_history and memory.steps: + responses = [ + s.llm_response for s in memory.steps + if s.llm_response is not None + ][-self.message_window_len:] + if responses: + chat_lines = [] + offset = len(memory.steps) - len(responses) + for j, resp in enumerate(responses): + chat_lines.append(f"[Step {offset + j} Response]\n{resp}") + text_parts.append( + f"## Chat History (last {len(responses)} responses)\n" + + "\n\n".join(chat_lines) + ) + + # Response format reminder + text_parts.append("Respond with the JSON format specified above.") + + content.append({"type": "text", "text": "\n\n".join(text_parts)}) messages.append({"role": "user", "content": content}) return messages diff --git a/easi/tasks/vlnce_rxr/prompts.py b/easi/tasks/vlnce_rxr/prompts.py index 9b8ed9b..8be3749 100644 --- a/easi/tasks/vlnce_rxr/prompts.py +++ b/easi/tasks/vlnce_rxr/prompts.py @@ -1,8 +1,9 @@ # easi/tasks/vlnce_rxr/prompts.py """VLN-CE RxR prompt builder. +Follows the EASI Standard Prompt Format Reference (docs/easi-prompt-format-reference.md). Single front camera, 6 actions (move_forward, turn_left, turn_right, -look_up, look_down, stop). 30° turns and tilts. +look_up, look_down, stop). 30 deg turns and tilts. """ from __future__ import annotations @@ -17,7 +18,15 @@ logger = get_logger(__name__) -SYSTEM_PROMPT = """You are a robot navigating in a 3D indoor environment. You observe the environment through a front-facing camera and must follow natural language instructions to navigate to a goal location. +SYSTEM_PROMPT = """\ +## Role and Environment +You are a robot navigating in a 3D indoor environment. You observe the \ +environment through a front-facing camera and must follow natural language \ +instructions to navigate to a goal location. + +## Observation Description +- **Distance to goal**: Geodesic (shortest walkable path) distance in meters \ +to the goal location. Decreases as you get closer. ## Available Actions - move_forward: Move forward by 0.25 meters @@ -25,7 +34,8 @@ - turn_right: Turn right by 30 degrees - look_up: Tilt camera up by 30 degrees - look_down: Tilt camera down by 30 degrees -- stop: Stop and end navigation (use ONLY when you believe you have reached the destination described in the instruction) +- stop: Stop and end navigation (use ONLY when you believe you have reached \ +the destination described in the instruction) ## Strategy 1. Carefully read the navigation instruction @@ -35,16 +45,25 @@ 5. Use look_up/look_down to observe objects above or below your current view 6. Use stop ONLY when you are confident you have reached the described destination +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + ## Response Format Output a JSON object with exactly these 4 fields: { "visual_state_description": "Describe what you see in the current image", - "reasoning_and_reflection": "Reason about where you are relative to the instruction", + "reasoning_and_reflection": "Reason about your situation, reflect on \ +history and feedback", "language_plan": "Describe your next navigation plan in natural language", "executable_plan": [{"action": ""}] } -You may include multiple actions in executable_plan to plan ahead. Actions are executed sequentially.""" +You may include multiple actions in executable_plan. Actions execute \ +sequentially.""" def _encode_image_base64(image_path: str) -> str | None: @@ -97,6 +116,7 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: content = [] + # Image first obs = memory.current_observation if obs and obs.rgb_path: img_url = _encode_image_base64(obs.rgb_path) @@ -105,30 +125,57 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: text_parts = [] - text_parts.append(f"## Navigation Instruction\n{memory.task_description}") + # Task + text_parts.append(f"## Task\n{memory.task_description}") + # Environment Feedback if self.use_feedback and obs and obs.metadata: + feedback_lines = [] + if self.use_geo_distance: + geo = obs.metadata.get("geo_distance") + if geo is not None and geo != "null": + feedback_lines.append(f"Distance to goal: {float(geo):.1f}m") feedback = obs.metadata.get("feedback", "") if feedback: - text_parts.append(f"\n## Environmental Feedback\n{feedback}") - - if self.use_geo_distance and obs and obs.metadata: - geo = obs.metadata.get("geo_distance") - if geo is not None and geo != "null": - text_parts.append(f"Geodesic distance to goal: {float(geo):.1f}m") + feedback_lines.append(feedback) + if feedback_lines: + text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) + # Action History if memory.action_history and self.action_history_len > 0: history = memory.action_history[-self.action_history_len:] history_lines = [] for i, (action_name, feedback) in enumerate(history): - fb = "" if self.use_feedback and feedback: - fb = f", feedback: {feedback}" - history_lines.append(f"Step {i}: {action_name}{fb}") + history_lines.append(f"Step {i}: {action_name} -> {feedback}") + else: + history_lines.append(f"Step {i}: {action_name}") if history_lines: - text_parts.append(f"\n## Action History (last {len(history_lines)} steps)\n" + "\n".join(history_lines)) - - content.append({"type": "text", "text": "\n".join(text_parts)}) + text_parts.append( + f"## Action History (last {len(history_lines)} steps)\n" + + "\n".join(history_lines) + ) + + # Chat History + if self.chat_history and memory.steps: + responses = [ + s.llm_response for s in memory.steps + if s.llm_response is not None + ][-self.message_window_len:] + if responses: + chat_lines = [] + offset = len(memory.steps) - len(responses) + for j, resp in enumerate(responses): + chat_lines.append(f"[Step {offset + j} Response]\n{resp}") + text_parts.append( + f"## Chat History (last {len(responses)} responses)\n" + + "\n\n".join(chat_lines) + ) + + # Response format reminder + text_parts.append("Respond with the JSON format specified above.") + + content.append({"type": "text", "text": "\n\n".join(text_parts)}) messages.append({"role": "user", "content": content}) return messages diff --git a/tests/test_manipulathor_task.py b/tests/test_manipulathor_task.py index 6870b09..d2e907d 100644 --- a/tests/test_manipulathor_task.py +++ b/tests/test_manipulathor_task.py @@ -243,18 +243,21 @@ def test_build_messages_first_turn(self, builder, tmp_path): ) messages = builder.build_messages(memory) - assert len(messages) == 1 - assert messages[0]["role"] == "user" - content = messages[0]["content"] + assert len(messages) == 2 + assert messages[0]["role"] == "system" + assert messages[1]["role"] == "user" + content = messages[1]["content"] # Should have image + text assert any(c["type"] == "image_url" for c in content) assert any(c["type"] == "text" for c in content) text = next(c["text"] for c in content if c["type"] == "text") assert "Pick up the Apple" in text - assert "GPS State" in text + assert "Environment Feedback" in text assert "Object Held: No" in text - assert "Strategy for Using GPS Sensors" in text + # Strategy is now in system prompt + system_text = messages[0]["content"] + assert "Phase 1" in system_text def test_build_messages_gps_disabled(self, tmp_path): """When use_gps=False, no GPS section in prompt.""" @@ -273,9 +276,11 @@ def test_build_messages_gps_disabled(self, tmp_path): rgb_path=str(img_path), metadata={"pickedup_object": "0.0"}, ) + memory.steps = [] messages = builder.build_messages(memory) - text = next(c["text"] for c in messages[0]["content"] if c["type"] == "text") - assert "GPS State" not in text + text = next(c["text"] for c in messages[1]["content"] if c["type"] == "text") + assert "Object Position" not in text + assert "Arm-to-Object" not in text def test_build_messages_with_history(self, builder, tmp_path): """Subsequent turn: includes action history.""" @@ -301,7 +306,7 @@ def test_build_messages_with_history(self, builder, tmp_path): ) messages = builder.build_messages(memory) - text = next(c["text"] for c in messages[0]["content"] if c["type"] == "text") + text = next(c["text"] for c in messages[1]["content"] if c["type"] == "text") assert "Action History" in text assert "MoveArmZP" in text assert "succeeded" in text From 74a53039d9c777269eaac0f88f134aa72e3e8021 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 8 Mar 2026 22:34:53 +0800 Subject: [PATCH 165/239] fix(vlnce): avoid duplicate distance-to-goal in environment feedback The bridge writes geo distance into both metadata["geo_distance"] and metadata["feedback"]. When use_geo_distance is true, only use the structured geo_distance field to avoid showing the same info twice. --- easi/tasks/vlnce_r2r/prompts.py | 9 ++++++--- easi/tasks/vlnce_rxr/prompts.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/easi/tasks/vlnce_r2r/prompts.py b/easi/tasks/vlnce_r2r/prompts.py index 96244dd..5fd7efa 100644 --- a/easi/tasks/vlnce_r2r/prompts.py +++ b/easi/tasks/vlnce_r2r/prompts.py @@ -130,9 +130,12 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: geo = obs.metadata.get("geo_distance") if geo is not None and geo != "null": feedback_lines.append(f"Distance to goal: {float(geo):.1f}m") - feedback = obs.metadata.get("feedback", "") - if feedback: - feedback_lines.append(feedback) + else: + # Only use generic feedback when geo_distance is not shown + # (bridge puts distance into both fields, avoid duplication) + feedback = obs.metadata.get("feedback", "") + if feedback: + feedback_lines.append(feedback) if feedback_lines: text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) diff --git a/easi/tasks/vlnce_rxr/prompts.py b/easi/tasks/vlnce_rxr/prompts.py index 8be3749..31d5268 100644 --- a/easi/tasks/vlnce_rxr/prompts.py +++ b/easi/tasks/vlnce_rxr/prompts.py @@ -135,9 +135,12 @@ def build_messages(self, memory: AgentMemory) -> list[dict]: geo = obs.metadata.get("geo_distance") if geo is not None and geo != "null": feedback_lines.append(f"Distance to goal: {float(geo):.1f}m") - feedback = obs.metadata.get("feedback", "") - if feedback: - feedback_lines.append(feedback) + else: + # Only use generic feedback when geo_distance is not shown + # (bridge puts distance into both fields, avoid duplication) + feedback = obs.metadata.get("feedback", "") + if feedback: + feedback_lines.append(feedback) if feedback_lines: text_parts.append("## Environment Feedback\n" + "\n".join(feedback_lines)) From 825f8ebd68167259be0a215f2d7e118f4d755ee5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 13:11:48 +0800 Subject: [PATCH 166/239] fix: resolve 4 bugs found in code review - ManipulaTHOR prompt: fix double-brace escaping so LLM sees valid JSON example - CLI --resume: handle GPU values that are already list[int] from config.json - json_repair: replace global single-quote swap with context-aware scanner that preserves apostrophes - base_env_manager: wrap Popen stdout iteration in try/finally to prevent FD and zombie process leaks --- easi/cli.py | 19 ++++++++---- easi/core/base_env_manager.py | 13 ++++---- easi/tasks/manipulathor/prompts.py | 6 ++-- easi/utils/json_repair.py | 48 ++++++++++++++++++++++-------- 4 files changed, 60 insertions(+), 26 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 1acc02d..d13cb2d 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -466,12 +466,19 @@ def cmd_start(args): num_parallel = run_kwargs.pop("num_parallel", None) or 1 # Parse comma-separated GPU strings into lists of ints - vllm_gpus_str = run_kwargs.pop("vllm_gpus", None) - sim_gpus_str = run_kwargs.pop("sim_gpus", None) - if vllm_gpus_str: - run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_str.split(",")] - if sim_gpus_str: - run_kwargs["sim_gpus"] = [int(g) for g in sim_gpus_str.split(",")] + # When resuming, values from config.json may already be list[int] + vllm_gpus_val = run_kwargs.pop("vllm_gpus", None) + sim_gpus_val = run_kwargs.pop("sim_gpus", None) + if vllm_gpus_val: + if isinstance(vllm_gpus_val, list): + run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_val] + else: + run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_val.split(",")] + if sim_gpus_val: + if isinstance(sim_gpus_val, list): + run_kwargs["sim_gpus"] = [int(g) for g in sim_gpus_val] + else: + run_kwargs["sim_gpus"] = [int(g) for g in sim_gpus_val.split(",")] from easi.core.episode import EpisodeRecord from easi.evaluation.metrics import default_aggregate diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 5cb68e6..0335da0 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -409,11 +409,14 @@ def _run_command(self, cmd: list[str], description: str, env: dict[str, str] | N env=env, ) output_lines = [] - for line in process.stdout: - line = line.rstrip() - output_lines.append(line) - logger.trace(" %s", line) - process.wait() + try: + for line in process.stdout: + line = line.rstrip() + output_lines.append(line) + logger.trace(" %s", line) + finally: + process.stdout.close() + process.wait() if process.returncode != 0: raise EnvironmentSetupError( f"{description} failed (exit {process.returncode}):\n" diff --git a/easi/tasks/manipulathor/prompts.py b/easi/tasks/manipulathor/prompts.py index b88266c..7d11cea 100644 --- a/easi/tasks/manipulathor/prompts.py +++ b/easi/tasks/manipulathor/prompts.py @@ -95,14 +95,14 @@ def _build_action_list() -> str: ## Response Format Output a JSON object with exactly these 4 fields: -{{{{ +{{ "visual_state_description": "Describe what you see in the image and \ the GPS state", "reasoning_and_reflection": "Your reasoning about the current state \ and what to do next", "language_plan": "Your plan in natural language", - "executable_plan": [{{{{"action": ""}}}}] -}}}} + "executable_plan": [{{"action": ""}}] +}} You may include multiple actions in executable_plan. Actions execute \ sequentially.""" diff --git a/easi/utils/json_repair.py b/easi/utils/json_repair.py index 7b054a4..720b1e7 100644 --- a/easi/utils/json_repair.py +++ b/easi/utils/json_repair.py @@ -4,25 +4,49 @@ import re +def _replace_single_quotes(json_str: str) -> str: + """Replace single quotes used as JSON delimiters with double quotes. + + Only replaces single quotes that appear to be JSON structural delimiters + (around keys and values), not apostrophes inside English text. + """ + # Replace single-quoted JSON keys/values: 'key' or 'value' + # Matches: single quote, content without single quotes, single quote + # followed by a JSON structural character (: , ] } or whitespace before those) + result = [] + i = 0 + n = len(json_str) + in_double_quote = False + while i < n: + ch = json_str[i] + if ch == '"' and (i == 0 or json_str[i - 1] != '\\'): + in_double_quote = not in_double_quote + result.append(ch) + elif ch == "'" and not in_double_quote: + # Apostrophe if letter on BOTH sides (e.g., don't, it's, I'm) + has_alpha_before = i > 0 and json_str[i - 1].isalpha() + has_alpha_after = i + 1 < n and json_str[i + 1].isalpha() + if has_alpha_before and has_alpha_after: + result.append(ch) + else: + result.append('"') + else: + result.append(ch) + i += 1 + return "".join(result) + + def fix_json(json_str: str) -> str: """Fix common JSON errors in LLM output. Handles: - - Single quotes -> double quotes - - Broken contractions from quote replacement + - Single quotes used as JSON delimiters -> double quotes - Markdown code fences - Unescaped quotes inside reasoning_and_reflection value """ - # Replace single quotes with double quotes - json_str = json_str.replace("'", '"') - # Fix contractions that got broken by quote replacement - json_str = json_str.replace('"s ', "'s ") - json_str = json_str.replace('"re ', "'re ") - json_str = json_str.replace('"ll ', "'ll ") - json_str = json_str.replace('"t ', "'t ") - json_str = json_str.replace('"d ', "'d ") - json_str = json_str.replace('"m ', "'m ") - json_str = json_str.replace('"ve ', "'ve ") + # Replace single quotes used as JSON delimiters (not apostrophes) + json_str = _replace_single_quotes(json_str) + json_str = json_str.replace('```json', '').replace('```', '') # Fix unescaped double quotes inside reasoning_and_reflection value. From 5043a0d1e0e147cf46911d943b77afbaa2d84f56 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 14:29:27 +0800 Subject: [PATCH 167/239] refactor: rename --vllm-gpus/instances to --llm-gpus/instances Generalize vLLM-specific CLI flags and internal variables to support any local LLM backend (vllm, custom). Changes: - CLI: --vllm-instances -> --llm-instances, --vllm-gpus -> --llm-gpus - runner.py: vllm_instances/vllm_gpus params -> llm_instances/llm_gpus - parallel_runner.py: all self.vllm_* -> self.llm_*, backend check includes "custom", error messages updated - server_manager.py: _DEFAULT_VLLM_FLAGS -> _DEFAULT_VLLM_SERVER_FLAGS, MultiServerManager accepts backend param, log messages genericized - All test files updated to match new names --- easi/cli.py | 24 +++++++++--------- easi/evaluation/parallel_runner.py | 34 ++++++++++++------------- easi/evaluation/runner.py | 8 +++--- easi/llm/server_manager.py | 22 ++++++++-------- tests/test_cli.py | 14 +++++------ tests/test_evaluation_runner.py | 2 +- tests/test_parallel_runner.py | 40 +++++++++++++++--------------- tests/test_parallel_vllm.py | 8 +++--- 8 files changed, 77 insertions(+), 75 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index d13cb2d..64062c7 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -102,7 +102,7 @@ def build_parser() -> argparse.ArgumentParser: help="LLM server URL") start_parser.add_argument("--seed", type=int, default=None, dest="agent_seed") start_parser.add_argument("--backend", type=str, default=None, - help="LLM backend: vllm, openai, anthropic, gemini, dummy") + help="LLM backend: vllm, custom, openai, anthropic, gemini, dummy") start_parser.add_argument("--model", type=str, default=None, help="Model name (HF path for vLLM, API name for proprietary)") start_parser.add_argument("--port", type=int, default=None, @@ -114,14 +114,14 @@ def build_parser() -> argparse.ArgumentParser: start_parser.add_argument("--num-parallel", type=int, default=None, dest="num_parallel", help="Number of parallel simulator instances (default: 1, sequential).") start_parser.add_argument( - "--vllm-instances", type=int, default=None, dest="vllm_instances", - help="Number of vLLM server instances to start (default: 1). " - "Each instance runs on a subset of --vllm-gpus.", + "--llm-instances", type=int, default=None, dest="llm_instances", + help="Number of local LLM server instances to start (default: 1). " + "Each instance runs on a subset of --llm-gpus.", ) start_parser.add_argument( - "--vllm-gpus", type=str, default=None, dest="vllm_gpus", - help="Comma-separated GPU IDs for vLLM inference (e.g., '0,1'). " - "GPUs are split evenly across --vllm-instances.", + "--llm-gpus", type=str, default=None, dest="llm_gpus", + help="Comma-separated GPU IDs for LLM inference (e.g., '0,1'). " + "GPUs are split evenly across --llm-instances.", ) start_parser.add_argument( "--sim-gpus", type=str, default=None, dest="sim_gpus", @@ -467,13 +467,13 @@ def cmd_start(args): # Parse comma-separated GPU strings into lists of ints # When resuming, values from config.json may already be list[int] - vllm_gpus_val = run_kwargs.pop("vllm_gpus", None) + llm_gpus_val = run_kwargs.pop("llm_gpus", None) sim_gpus_val = run_kwargs.pop("sim_gpus", None) - if vllm_gpus_val: - if isinstance(vllm_gpus_val, list): - run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_val] + if llm_gpus_val: + if isinstance(llm_gpus_val, list): + run_kwargs["llm_gpus"] = [int(g) for g in llm_gpus_val] else: - run_kwargs["vllm_gpus"] = [int(g) for g in vllm_gpus_val.split(",")] + run_kwargs["llm_gpus"] = [int(g) for g in llm_gpus_val.split(",")] if sim_gpus_val: if isinstance(sim_gpus_val, list): run_kwargs["sim_gpus"] = [int(g) for g in sim_gpus_val] diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index ff490b0..046e5f5 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -65,34 +65,34 @@ def _serialize_cli_options(self) -> dict: def _validate_gpu_args(self): """Validate GPU allocation arguments.""" - if self.vllm_instances and self.vllm_instances > 1 and not self.vllm_gpus: + if self.llm_instances and self.llm_instances > 1 and not self.llm_gpus: raise ValueError( - "--vllm-gpus is required when --vllm-instances > 1. " - "Specify which GPUs to use for vLLM inference." + "--llm-gpus is required when --llm-instances > 1. " + "Specify which GPUs to use for LLM inference." ) - if self.vllm_gpus and self.sim_gpus: - overlap = set(self.vllm_gpus) & set(self.sim_gpus) + if self.llm_gpus and self.sim_gpus: + overlap = set(self.llm_gpus) & set(self.sim_gpus) if overlap: raise ValueError( - f"--vllm-gpus and --sim-gpus must not overlap. " + f"--llm-gpus and --sim-gpus must not overlap. " f"Overlapping GPU IDs: {overlap}" ) - # Warn if vLLM-specific args are set but backend is not vllm - if self.backend and self.backend != "vllm": + # Warn if local-server args are set but backend is not a local backend + if self.backend and self.backend not in ("vllm", "custom"): ignored = [] - if self.vllm_instances: - ignored.append("--vllm-instances") - if self.vllm_gpus: - ignored.append("--vllm-gpus") + if self.llm_instances: + ignored.append("--llm-instances") + if self.llm_gpus: + ignored.append("--llm-gpus") if ignored: logger.warning( - "%s will be ignored because --backend is '%s' (not 'vllm').", + "%s will be ignored because --backend is '%s' (not a local LLM backend).", ", ".join(ignored), self.backend, ) # Validate GPU IDs against hardware all_gpu_ids = set() - if self.vllm_gpus: - all_gpu_ids.update(self.vllm_gpus) + if self.llm_gpus: + all_gpu_ids.update(self.llm_gpus) if self.sim_gpus: all_gpu_ids.update(self.sim_gpus) if all_gpu_ids: @@ -132,8 +132,8 @@ def run(self) -> list[dict]: all_kw = parse_llm_kwargs(self.llm_kwargs_raw) srv_kw, _ = _split(all_kw) - num_instances = self.vllm_instances or 1 - gpu_ids = self.vllm_gpus + num_instances = self.llm_instances or 1 + gpu_ids = self.llm_gpus server_mgr = MultiServerManager( model=self.model, diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 638c1a9..52ffe57 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -64,8 +64,8 @@ def __init__( resume_dir: Path | str | None = None, refresh_data: bool = False, render_platform: str | None = None, - vllm_instances: int | None = None, - vllm_gpus: list[int] | None = None, + llm_instances: int | None = None, + llm_gpus: list[int] | None = None, sim_gpus: list[int] | None = None, ): # Auto-capture all init args for config.json (before any mutation) @@ -90,8 +90,8 @@ def __init__( self.resume_dir = Path(resume_dir) if resume_dir else None self.refresh_data = refresh_data self.render_platform_name = render_platform - self.vllm_instances = vllm_instances - self.vllm_gpus = vllm_gpus + self.llm_instances = llm_instances + self.llm_gpus = llm_gpus self.sim_gpus = sim_gpus timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 1b7d79d..c4fbb99 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -20,7 +20,7 @@ _HEALTH_POLL_INTERVAL = 5.0 _DEFAULT_STARTUP_TIMEOUT = 600.0 -_DEFAULT_VLLM_FLAGS = { +_DEFAULT_VLLM_SERVER_FLAGS = { "enable_prefix_caching": True, "disable_log_requests": True, } @@ -147,10 +147,10 @@ def _build_command(self) -> tuple[list[str], dict]: "--port", str(self.port), ] # Merge defaults with user overrides (user wins) - merged_kwargs = {**_DEFAULT_VLLM_FLAGS, **self.server_kwargs} + merged_kwargs = {**_DEFAULT_VLLM_SERVER_FLAGS, **self.server_kwargs} overridden = { k: v for k, v in self.server_kwargs.items() - if k in _DEFAULT_VLLM_FLAGS and v != _DEFAULT_VLLM_FLAGS[k] + if k in _DEFAULT_VLLM_SERVER_FLAGS and v != _DEFAULT_VLLM_SERVER_FLAGS[k] } if overridden: logger.trace("[%s] User overrides for default vLLM flags: %s", self.label, overridden) @@ -225,7 +225,7 @@ def __exit__(self, *exc) -> None: class MultiServerManager: - """Manages multiple vLLM server instances across GPUs.""" + """Manages multiple local LLM server instances across GPUs.""" def __init__( self, @@ -235,6 +235,7 @@ def __init__( base_port: int = 8000, server_kwargs: dict | None = None, startup_timeout: float = 300.0, + backend: str = "vllm", ): if gpu_ids is not None and len(gpu_ids) % num_instances != 0: raise ValueError( @@ -247,6 +248,7 @@ def __init__( self.base_port = base_port self.server_kwargs = server_kwargs or {} self.startup_timeout = startup_timeout + self.backend = backend self._managers: list[ServerManager] = [] def start(self) -> list[str]: @@ -273,21 +275,21 @@ def start(self) -> list[str]: port = self._find_available_port(next_port) next_port = port + 1 mgr = ServerManager( - backend="vllm", + backend=self.backend, model=self.model, port=port, server_kwargs=self.server_kwargs, startup_timeout=self.startup_timeout, cuda_visible_devices=cuda_devices, - label=f"vllm-{i}", + label=f"{self.backend}-{i}", ) mgr.launch() self._managers.append(mgr) # Phase 2: Wait for all health checks concurrently logger.info( - "All %d vLLM processes spawned, waiting for health checks...", - self.num_instances, + "All %d %s processes spawned, waiting for health checks...", + self.num_instances, self.backend, ) urls = [None] * len(self._managers) with ThreadPoolExecutor(max_workers=len(self._managers)) as pool: @@ -301,8 +303,8 @@ def start(self) -> list[str]: except Exception: logger.warning( - "vLLM startup failed, stopping %d spawned instances", - len(self._managers), + "%s startup failed, stopping %d spawned instances", + self.backend, len(self._managers), ) self.stop() raise diff --git a/tests/test_cli.py b/tests/test_cli.py index 4c50058..1fa543a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,9 +1,9 @@ # tests/test_cli.py -"""Tests for CLI GPU and vLLM arguments.""" +"""Tests for CLI GPU and LLM arguments.""" -def test_cli_parses_vllm_gpu_args(): - """CLI should parse --vllm-instances, --vllm-gpus, --sim-gpus.""" +def test_cli_parses_llm_gpu_args(): + """CLI should parse --llm-instances, --llm-gpus, --sim-gpus.""" from easi.cli import build_parser parser = build_parser() args = parser.parse_args([ @@ -12,12 +12,12 @@ def test_cli_parses_vllm_gpu_args(): "--backend", "vllm", "--model", "test", "--num-parallel", "12", - "--vllm-instances", "2", - "--vllm-gpus", "0,1", + "--llm-instances", "2", + "--llm-gpus", "0,1", "--sim-gpus", "2,3", ]) - assert args.vllm_instances == 2 - assert args.vllm_gpus == "0,1" + assert args.llm_instances == 2 + assert args.llm_gpus == "0,1" assert args.sim_gpus == "2,3" diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 8c26eac..81b104b 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -97,7 +97,7 @@ def test_cli_options_contains_all_init_args(self): "max_episodes", "llm_base_url", "agent_seed", "backend", "model", "port", "llm_kwargs_raw", "max_retries", "render_platform", - "vllm_instances", "vllm_gpus", "sim_gpus", + "llm_instances", "llm_gpus", "sim_gpus", } assert set(opts.keys()) == expected_keys diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index 4175eb5..5b4a640 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -159,45 +159,45 @@ class TestRunnerGPUArgs: """Test GPU-related args on EvaluationRunner.""" def test_runner_accepts_gpu_args(self): - """EvaluationRunner should accept vllm_instances, vllm_gpus, sim_gpus.""" + """EvaluationRunner should accept llm_instances, llm_gpus, sim_gpus.""" from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner( task_name="dummy_task", agent_type="dummy", - vllm_instances=2, - vllm_gpus=[0, 1], + llm_instances=2, + llm_gpus=[0, 1], sim_gpus=[2, 3], ) - assert runner.vllm_instances == 2 - assert runner.vllm_gpus == [0, 1] + assert runner.llm_instances == 2 + assert runner.llm_gpus == [0, 1] assert runner.sim_gpus == [2, 3] def test_runner_gpu_args_default_none(self): """GPU args should default to None.""" from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner(task_name="dummy_task", agent_type="dummy") - assert runner.vllm_instances is None - assert runner.vllm_gpus is None + assert runner.llm_instances is None + assert runner.llm_gpus is None assert runner.sim_gpus is None class TestGPUValidation: """Test GPU allocation validation.""" - def test_vllm_gpus_required_when_instances_specified(self): - """Should raise if --vllm-instances set but --vllm-gpus not provided.""" + def test_llm_gpus_required_when_instances_specified(self): + """Should raise if --llm-instances set but --llm-gpus not provided.""" from easi.evaluation.parallel_runner import ParallelRunner import pytest - with pytest.raises(ValueError, match="--vllm-gpus"): + with pytest.raises(ValueError, match="--llm-gpus"): ParallelRunner( task_name="dummy_task", agent_type="dummy", num_parallel=4, backend="vllm", model="test", - vllm_instances=2, vllm_gpus=None, + llm_instances=2, llm_gpus=None, ) - def test_vllm_gpus_sim_gpus_no_overlap(self): - """Should raise if vllm_gpus and sim_gpus overlap.""" + def test_llm_gpus_sim_gpus_no_overlap(self): + """Should raise if llm_gpus and sim_gpus overlap.""" from easi.evaluation.parallel_runner import ParallelRunner import pytest @@ -205,7 +205,7 @@ def test_vllm_gpus_sim_gpus_no_overlap(self): ParallelRunner( task_name="dummy_task", agent_type="dummy", num_parallel=4, backend="vllm", model="test", - vllm_instances=2, vllm_gpus=[0, 1], sim_gpus=[1, 2], + llm_instances=2, llm_gpus=[0, 1], sim_gpus=[1, 2], ) def test_valid_gpu_config_passes(self): @@ -215,9 +215,9 @@ def test_valid_gpu_config_passes(self): runner = ParallelRunner( task_name="dummy_task", agent_type="dummy", num_parallel=4, backend="vllm", model="test", - vllm_instances=2, vllm_gpus=[0, 1], sim_gpus=[2, 3], + llm_instances=2, llm_gpus=[0, 1], sim_gpus=[2, 3], ) - assert runner.vllm_instances == 2 + assert runner.llm_instances == 2 def test_invalid_gpu_ids_raises(self): """Should raise if GPU IDs exceed hardware count.""" @@ -229,7 +229,7 @@ def test_invalid_gpu_ids_raises(self): ParallelRunner( task_name="dummy_task", agent_type="dummy", num_parallel=4, backend="vllm", model="test", - vllm_instances=2, vllm_gpus=[0, 1, 2, 3], + llm_instances=2, llm_gpus=[0, 1, 2, 3], ) def test_invalid_sim_gpu_ids_raises(self): @@ -253,7 +253,7 @@ def test_negative_gpu_id_raises(self): with pytest.raises(ValueError, match="do not exist"): ParallelRunner( task_name="dummy_task", agent_type="dummy", - num_parallel=4, vllm_gpus=[-1, 0], + num_parallel=4, llm_gpus=[-1, 0], ) def test_gpu_validation_skipped_when_detection_fails(self): @@ -265,9 +265,9 @@ def test_gpu_validation_skipped_when_detection_fails(self): # Should not raise even with absurd GPU IDs runner = ParallelRunner( task_name="dummy_task", agent_type="dummy", - num_parallel=4, vllm_gpus=[99, 100], + num_parallel=4, llm_gpus=[99, 100], ) - assert runner.vllm_gpus == [99, 100] + assert runner.llm_gpus == [99, 100] class TestCLIParallelArg: diff --git a/tests/test_parallel_vllm.py b/tests/test_parallel_vllm.py index 2b2fea3..dc8d12f 100644 --- a/tests/test_parallel_vllm.py +++ b/tests/test_parallel_vllm.py @@ -10,14 +10,14 @@ def test_parallel_vllm_end_to_end(): num_parallel=4, backend="vllm", model="test-model", - vllm_instances=2, - vllm_gpus=[0, 1], + llm_instances=2, + llm_gpus=[0, 1], sim_gpus=[2, 3], ) # Verify config stored correctly - assert runner.vllm_instances == 2 - assert runner.vllm_gpus == [0, 1] + assert runner.llm_instances == 2 + assert runner.llm_gpus == [0, 1] assert runner.sim_gpus == [2, 3] assert runner.num_parallel == 4 From 164a7462dd0dc8170d062158ba8a279359db93fa Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 14:33:44 +0800 Subject: [PATCH 168/239] feat: add BaseModelServer ABC and message helpers for custom models --- easi/llm/models/__init__.py | 0 easi/llm/models/base_model_server.py | 27 ++++ easi/llm/models/helpers.py | 79 ++++++++++++ tests/test_custom_model_server.py | 177 +++++++++++++++++++++++++++ 4 files changed, 283 insertions(+) create mode 100644 easi/llm/models/__init__.py create mode 100644 easi/llm/models/base_model_server.py create mode 100644 easi/llm/models/helpers.py create mode 100644 tests/test_custom_model_server.py diff --git a/easi/llm/models/__init__.py b/easi/llm/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/llm/models/base_model_server.py b/easi/llm/models/base_model_server.py new file mode 100644 index 0000000..8f927cf --- /dev/null +++ b/easi/llm/models/base_model_server.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class BaseModelServer(ABC): + """Abstract base class for custom model servers. + + Subclasses must implement ``load`` and ``generate``. The ``unload`` + method is optional and defaults to a no-op. + """ + + @abstractmethod + def load(self, model_path: str, device: str, **kwargs) -> None: + """Load model weights, tokenizer, processors.""" + + @abstractmethod + def generate(self, messages: list[dict], **kwargs) -> str: + """Generate response from OpenAI-format messages.""" + + def unload(self) -> None: + """Release GPU memory. Optional override.""" + pass diff --git a/easi/llm/models/helpers.py b/easi/llm/models/helpers.py new file mode 100644 index 0000000..0813b26 --- /dev/null +++ b/easi/llm/models/helpers.py @@ -0,0 +1,79 @@ +from __future__ import annotations + +import base64 +import io +from typing import Any + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +def _extract_text_from_content(content: str | list[dict[str, Any]]) -> str: + """Extract concatenated text from an OpenAI-format content field. + + Handles both plain string content and the list-of-parts format. + Image parts are silently skipped. + """ + if isinstance(content, str): + return content + parts: list[str] = [] + for part in content: + if part.get("type") == "text": + parts.append(part.get("text", "")) + return "\n".join(parts) + + +def extract_images(messages: list[dict[str, Any]]) -> list[Any]: + """Extract PIL Images from base64-encoded image_url parts in messages. + + Returns a list of ``PIL.Image.Image`` objects. PIL is imported lazily + so the function can be defined even when Pillow is not installed. + """ + from PIL import Image # lazy import + + images: list[Any] = [] + for msg in messages: + content = msg.get("content") + if not isinstance(content, list): + continue + for part in content: + if part.get("type") != "image_url": + continue + image_url = part.get("image_url", {}) + url = image_url.get("url", "") + if url.startswith("data:"): + # Format: data:;base64, + _, encoded = url.split(",", 1) + else: + encoded = url + raw = base64.b64decode(encoded) + images.append(Image.open(io.BytesIO(raw))) + return images + + +def extract_text_only(messages: list[dict[str, Any]]) -> str: + """Concatenate all text content from messages, ignoring roles and images.""" + parts: list[str] = [] + for msg in messages: + content = msg.get("content", "") + text = _extract_text_from_content(content) + if text: + parts.append(text) + return "\n".join(parts) + + +def extract_by_role(messages: list[dict[str, Any]]) -> dict[str, str]: + """Group text content by role. + + Returns a mapping from role name to the concatenated text for that role. + If a role appears multiple times its texts are joined with newlines. + """ + grouped: dict[str, list[str]] = {} + for msg in messages: + role = msg.get("role", "unknown") + content = msg.get("content", "") + text = _extract_text_from_content(content) + if text: + grouped.setdefault(role, []).append(text) + return {role: "\n".join(texts) for role, texts in grouped.items()} diff --git a/tests/test_custom_model_server.py b/tests/test_custom_model_server.py new file mode 100644 index 0000000..f408e38 --- /dev/null +++ b/tests/test_custom_model_server.py @@ -0,0 +1,177 @@ +from __future__ import annotations + +import base64 + +import pytest + +from easi.llm.models.base_model_server import BaseModelServer +from easi.llm.models.helpers import extract_by_role, extract_images, extract_text_only + +# Minimal valid 1x1 RGB PNG +_PIXEL_PNG = ( + b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01" + b"\x00\x00\x00\x01\x08\x02\x00\x00\x00\x90wS\xde\x00" + b"\x00\x00\x0cIDATx\x9cc\xf8\x0f\x00\x00\x01\x01\x00" + b"\x05\x18\xd8N\x00\x00\x00\x00IEND\xaeB`\x82" +) +_PIXEL_B64 = base64.b64encode(_PIXEL_PNG).decode() + + +# --------------------------------------------------------------------------- +# TestBaseModelServer +# --------------------------------------------------------------------------- + +class TestBaseModelServer: + def test_cannot_instantiate(self): + with pytest.raises(TypeError): + BaseModelServer() # type: ignore[abstract] + + def test_must_implement_load_and_generate(self): + class OnlyLoad(BaseModelServer): + def load(self, model_path, device, **kwargs): + pass + + with pytest.raises(TypeError): + OnlyLoad() # type: ignore[abstract] + + class OnlyGenerate(BaseModelServer): + def generate(self, messages, **kwargs): + return "" + + with pytest.raises(TypeError): + OnlyGenerate() # type: ignore[abstract] + + def test_valid_subclass(self): + class MyServer(BaseModelServer): + def load(self, model_path, device, **kwargs): + pass + + def generate(self, messages, **kwargs): + return "hello" + + server = MyServer() + server.load("path", "cpu") + assert server.generate([]) == "hello" + + def test_default_unload_is_noop(self): + class MyServer(BaseModelServer): + def load(self, model_path, device, **kwargs): + pass + + def generate(self, messages, **kwargs): + return "" + + server = MyServer() + assert server.unload() is None + + +# --------------------------------------------------------------------------- +# TestExtractImages +# --------------------------------------------------------------------------- + +class TestExtractImages: + def test_empty_messages(self): + assert extract_images([]) == [] + + def test_text_only_messages(self): + msgs = [{"role": "user", "content": "hello"}] + assert extract_images(msgs) == [] + + def test_extracts_base64_image(self): + msgs = [ + { + "role": "user", + "content": [ + {"type": "text", "text": "describe"}, + { + "type": "image_url", + "image_url": { + "url": f"data:image/png;base64,{_PIXEL_B64}", + }, + }, + ], + } + ] + images = extract_images(msgs) + assert len(images) == 1 + assert images[0].size == (1, 1) + + def test_multiple_images(self): + part = { + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{_PIXEL_B64}"}, + } + msgs = [ + {"role": "user", "content": [part, part]}, + {"role": "user", "content": [part]}, + ] + assert len(extract_images(msgs)) == 3 + + +# --------------------------------------------------------------------------- +# TestExtractTextOnly +# --------------------------------------------------------------------------- + +class TestExtractTextOnly: + def test_empty_messages(self): + assert extract_text_only([]) == "" + + def test_string_content(self): + msgs = [ + {"role": "system", "content": "You are helpful."}, + {"role": "user", "content": "Hi"}, + ] + assert extract_text_only(msgs) == "You are helpful.\nHi" + + def test_list_content_with_images_filtered(self): + msgs = [ + { + "role": "user", + "content": [ + {"type": "text", "text": "Look at this"}, + { + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{_PIXEL_B64}"}, + }, + {"type": "text", "text": "What is it?"}, + ], + } + ] + result = extract_text_only(msgs) + assert "Look at this" in result + assert "What is it?" in result + assert "base64" not in result + + +# --------------------------------------------------------------------------- +# TestExtractByRole +# --------------------------------------------------------------------------- + +class TestExtractByRole: + def test_basic_role_grouping(self): + msgs = [ + {"role": "system", "content": "Be helpful."}, + {"role": "user", "content": "Hello"}, + {"role": "assistant", "content": "Hi there"}, + {"role": "user", "content": "Thanks"}, + ] + result = extract_by_role(msgs) + assert result["system"] == "Be helpful." + assert result["user"] == "Hello\nThanks" + assert result["assistant"] == "Hi there" + + def test_list_content(self): + msgs = [ + { + "role": "user", + "content": [ + {"type": "text", "text": "Describe this"}, + { + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{_PIXEL_B64}"}, + }, + ], + } + ] + result = extract_by_role(msgs) + assert result["user"] == "Describe this" From 627630268d4a54c250ea28c10150db39fa1ca466 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 14:35:34 +0800 Subject: [PATCH 169/239] feat: add custom model registry with YAML manifest auto-discovery --- easi/llm/models/registry.py | 114 +++++++++++++++++++++++++++++++++ tests/test_model_registry.py | 118 +++++++++++++++++++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 easi/llm/models/registry.py create mode 100644 tests/test_model_registry.py diff --git a/easi/llm/models/registry.py b/easi/llm/models/registry.py new file mode 100644 index 0000000..71e2758 --- /dev/null +++ b/easi/llm/models/registry.py @@ -0,0 +1,114 @@ +"""Model registry with manifest-based auto-discovery. + +Scans easi/llm/models/*/manifest.yaml to discover available custom model +server configurations. Follows the same pattern as the simulator registry. + +Lookup semantics: +- list_models() → all registered model names +- get_model_entry("my_model") → ModelEntry dataclass +- load_model_class("my_model") → imported class +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from pathlib import Path + +import yaml + +from easi.utils.import_utils import import_class as _import_class +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +@dataclass +class ModelEntry: + """Registry entry for a custom model server.""" + + name: str + display_name: str + description: str + model_class: str # fully qualified class name + default_kwargs: dict = field(default_factory=dict) + + +# Module-level registry populated on first access +_registry: dict[str, ModelEntry] | None = None + + +def _get_models_dir() -> Path: + """Return the directory containing model subdirectories.""" + return Path(__file__).parent + + +def _discover_models() -> dict[str, ModelEntry]: + """Scan model directories for manifest.yaml files.""" + models_dir = _get_models_dir() + entries: dict[str, ModelEntry] = {} + + for manifest_path in sorted(models_dir.glob("*/manifest.yaml")): + try: + manifest = yaml.safe_load(manifest_path.read_text()) + except Exception as e: + logger.warning("Failed to load %s: %s", manifest_path, e) + continue + + try: + entry = ModelEntry( + name=manifest["name"], + display_name=manifest.get("display_name", manifest["name"]), + description=manifest.get("description", ""), + model_class=manifest["model_class"], + default_kwargs=manifest.get("default_kwargs", {}), + ) + entries[entry.name] = entry + logger.trace("Discovered model: %s (%s)", entry.name, entry.display_name) + except KeyError as e: + logger.warning( + "Invalid manifest %s: missing required field %s", manifest_path, e + ) + continue + + return entries + + +def _get_registry() -> dict[str, ModelEntry]: + """Get the model registry, discovering on first access.""" + global _registry + if _registry is None: + _registry = _discover_models() + return _registry + + +def list_models() -> list[str]: + """List all registered model names.""" + return sorted(_get_registry().keys()) + + +def get_model_entry(name: str) -> ModelEntry: + """Look up a model entry by name. + + Args: + name: The model name as defined in its manifest.yaml. + + Raises: + KeyError: If the model is not found. + """ + registry = _get_registry() + if name not in registry: + available = list_models() + raise KeyError(f"Model '{name}' not found. Available: {available}") + return registry[name] + + +def load_model_class(name: str): + """Import and return the model class for the given name.""" + entry = get_model_entry(name) + return _import_class(entry.model_class) + + +def refresh() -> None: + """Force re-discovery of models (useful after adding new ones at runtime).""" + global _registry + _registry = None diff --git a/tests/test_model_registry.py b/tests/test_model_registry.py new file mode 100644 index 0000000..615b85e --- /dev/null +++ b/tests/test_model_registry.py @@ -0,0 +1,118 @@ +"""Tests for model registry with YAML manifest auto-discovery.""" + +from __future__ import annotations + +import pytest + +from easi.llm.models.registry import ( + ModelEntry, + get_model_entry, + list_models, + load_model_class, + refresh, +) + + +# --------------------------------------------------------------------------- +# Fake model class used by load_model_class test +# --------------------------------------------------------------------------- + +class FakeModel: + """Stub model class for testing dynamic import.""" + pass + + +# --------------------------------------------------------------------------- +# Fixtures +# --------------------------------------------------------------------------- + +@pytest.fixture(autouse=True) +def _reset_registry(): + """Ensure a clean registry before and after every test.""" + refresh() + yield + refresh() + + +@pytest.fixture() +def fake_model_dir(tmp_path): + """Create a temporary model directory with a valid manifest.yaml.""" + model_dir = tmp_path / "test_model" + model_dir.mkdir() + manifest = model_dir / "manifest.yaml" + manifest.write_text( + "name: test_model\n" + 'display_name: "Test Model"\n' + 'description: "A model for testing"\n' + 'model_class: "tests.test_model_registry.FakeModel"\n' + "default_kwargs:\n" + ' torch_dtype: "float32"\n' + ) + return tmp_path + + +# --------------------------------------------------------------------------- +# TestModelEntry +# --------------------------------------------------------------------------- + +class TestModelEntry: + """Basic dataclass construction tests.""" + + def test_create_with_defaults(self): + entry = ModelEntry( + name="m1", + display_name="Model One", + description="desc", + model_class="some.module.Class", + ) + assert entry.name == "m1" + assert entry.default_kwargs == {} + + def test_create_with_kwargs(self): + entry = ModelEntry( + name="m2", + display_name="Model Two", + description="desc", + model_class="some.module.Class", + default_kwargs={"tp": 2}, + ) + assert entry.default_kwargs == {"tp": 2} + + +# --------------------------------------------------------------------------- +# TestDiscovery +# --------------------------------------------------------------------------- + +class TestDiscovery: + """Discovery and lookup tests using a temporary model directory.""" + + def test_list_models_discovers_from_manifest(self, fake_model_dir, monkeypatch): + monkeypatch.setattr( + "easi.llm.models.registry._get_models_dir", lambda: fake_model_dir + ) + names = list_models() + assert "test_model" in names + + def test_get_model_entry(self, fake_model_dir, monkeypatch): + monkeypatch.setattr( + "easi.llm.models.registry._get_models_dir", lambda: fake_model_dir + ) + entry = get_model_entry("test_model") + assert entry.display_name == "Test Model" + assert entry.description == "A model for testing" + assert entry.model_class == "tests.test_model_registry.FakeModel" + assert entry.default_kwargs == {"torch_dtype": "float32"} + + def test_get_model_entry_not_found(self, fake_model_dir, monkeypatch): + monkeypatch.setattr( + "easi.llm.models.registry._get_models_dir", lambda: fake_model_dir + ) + with pytest.raises(KeyError, match="no_such_model"): + get_model_entry("no_such_model") + + def test_load_model_class(self, fake_model_dir, monkeypatch): + monkeypatch.setattr( + "easi.llm.models.registry._get_models_dir", lambda: fake_model_dir + ) + cls = load_model_class("test_model") + assert cls is FakeModel From c4c360244f0b7416f78a9fdd9de4fd093010ec4a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 14:48:50 +0800 Subject: [PATCH 170/239] feat: wire custom backend into ServerManager and LLM utils --- easi/llm/server_manager.py | 14 +++++++++ easi/llm/utils.py | 1 + tests/test_llm_utils.py | 4 +++ tests/test_server_manager.py | 55 ++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index c4fbb99..9d4b5da 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -164,6 +164,20 @@ def _build_command(self) -> tuple[list[str], dict]: logger.trace("[%s] Skipping disabled bool flag: %s", self.label, flag) else: cmd.extend([flag, str(value)]) + elif self.backend == "custom": + model_path = self.server_kwargs.get("model_path", self.model) + extra_kwargs = {k: v for k, v in self.server_kwargs.items() if k != "model_path"} + device = "cuda:0" # CUDA_VISIBLE_DEVICES handles GPU remapping + cmd = [ + sys.executable, "-m", "easi.llm.models.http_server", + "--model-name", self.model, + "--model-path", str(model_path), + "--device", device, + "--port", str(self.port), + ] + if extra_kwargs: + import json as _json + cmd.extend(["--kwargs", _json.dumps(extra_kwargs)]) else: raise ValueError(f"Unsupported server backend: {self.backend}") diff --git a/easi/llm/utils.py b/easi/llm/utils.py index baf0745..76ab3b8 100644 --- a/easi/llm/utils.py +++ b/easi/llm/utils.py @@ -11,6 +11,7 @@ "anthropic": "anthropic", "gemini": "gemini", "vllm": "openai", + "custom": "openai", "dummy": "openai", } diff --git a/tests/test_llm_utils.py b/tests/test_llm_utils.py index a2a6a24..6113c42 100644 --- a/tests/test_llm_utils.py +++ b/tests/test_llm_utils.py @@ -82,6 +82,10 @@ def test_dummy_uses_openai_prefix(self): from easi.llm.utils import build_litellm_model assert build_litellm_model("dummy", "default") == "openai/default" + def test_custom_uses_openai_prefix(self): + from easi.llm.utils import build_litellm_model + assert build_litellm_model("custom", "my_model") == "openai/my_model" + def test_unknown_backend_falls_back(self): from easi.llm.utils import build_litellm_model assert build_litellm_model("lmdeploy", "some-model") == "openai/some-model" diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 89fccc4..96ef51a 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -109,6 +109,61 @@ def test_server_manager_user_can_override_defaults(self): assert "--enable-prefix-caching" not in cmd +class TestCustomBackendCommand: + def test_custom_backend_builds_command(self): + from easi.llm.server_manager import ServerManager + mgr = ServerManager( + backend="custom", + model="my_model", + port=8001, + server_kwargs={"model_path": "/path/to/weights"}, + ) + cmd, env = mgr._build_command() + assert "easi.llm.models.http_server" in cmd + assert "--model-name" in cmd + assert "my_model" in cmd + assert "--port" in cmd + + def test_custom_backend_passes_model_path(self): + from easi.llm.server_manager import ServerManager + mgr = ServerManager( + backend="custom", + model="my_model", + port=8001, + server_kwargs={"model_path": "/weights"}, + ) + cmd, _ = mgr._build_command() + idx = cmd.index("--model-path") + assert cmd[idx + 1] == "/weights" + + def test_custom_backend_default_device(self): + from easi.llm.server_manager import ServerManager + mgr = ServerManager( + backend="custom", + model="my_model", + port=8001, + ) + cmd, _ = mgr._build_command() + idx = cmd.index("--device") + assert cmd[idx + 1] == "cuda:0" + + def test_custom_backend_extra_kwargs_as_json(self): + from easi.llm.server_manager import ServerManager + mgr = ServerManager( + backend="custom", + model="my_model", + port=8001, + server_kwargs={"model_path": "/w", "torch_dtype": "bfloat16"}, + ) + cmd, _ = mgr._build_command() + assert "--kwargs" in cmd + import json + idx = cmd.index("--kwargs") + parsed = json.loads(cmd[idx + 1]) + assert parsed["torch_dtype"] == "bfloat16" + assert "model_path" not in parsed + + class TestCudaVisibleDevices: def test_server_manager_sets_cuda_visible_devices(self): from easi.llm.server_manager import ServerManager From 74c8833c8cb290bb7205160eb63fb1ebcb8da9b8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 14:54:02 +0800 Subject: [PATCH 171/239] feat: add FastAPI HTTP server wrapper for custom models --- easi/llm/models/http_server.py | 148 +++++++++++++++++ tests/test_custom_http_server.py | 266 +++++++++++++++++++++++++++++++ 2 files changed, 414 insertions(+) create mode 100644 easi/llm/models/http_server.py create mode 100644 tests/test_custom_http_server.py diff --git a/easi/llm/models/http_server.py b/easi/llm/models/http_server.py new file mode 100644 index 0000000..98dde85 --- /dev/null +++ b/easi/llm/models/http_server.py @@ -0,0 +1,148 @@ +"""FastAPI HTTP server wrapping a BaseModelServer in OpenAI-compatible endpoints. + +Provides ``create_app`` to build a FastAPI application and ``main`` for +subprocess launch via ``python -m easi.llm.models.http_server``. +""" + +from __future__ import annotations + +import json +import time +import uuid +from typing import Any + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Generation kwargs recognised from the request body. +_GENERATION_KWARGS = frozenset( + { + "temperature", + "max_tokens", + "top_p", + "top_k", + "frequency_penalty", + "presence_penalty", + "stop", + "seed", + } +) + + +def create_app(model: Any) -> Any: + """Create a FastAPI application that serves *model* over HTTP. + + Parameters + ---------- + model: + A loaded :class:`BaseModelServer` instance. + + Returns + ------- + FastAPI + The application, ready to be passed to ``uvicorn.run``. + """ + from fastapi import FastAPI + from fastapi.responses import JSONResponse + + app = FastAPI(title="EASI Model Server") + + @app.get("/health") + async def health() -> dict: + return {"status": "ok"} + + @app.post("/v1/chat/completions") + async def chat_completions(request: dict) -> JSONResponse: # type: ignore[arg-type] + messages = request.get("messages", []) + req_model = request.get("model", "custom") + + # Extract recognised generation kwargs. + gen_kwargs: dict[str, Any] = {} + for key in _GENERATION_KWARGS: + if key in request: + gen_kwargs[key] = request[key] + + try: + content = model.generate(messages, **gen_kwargs) + except Exception as e: + logger.error("Generation failed: %s", e) + return JSONResponse( + status_code=500, + content={"error": {"message": str(e), "type": "server_error"}}, + ) + + response = { + "id": f"chatcmpl-{uuid.uuid4().hex[:12]}", + "object": "chat.completion", + "created": int(time.time()), + "model": req_model, + "choices": [ + { + "index": 0, + "message": {"role": "assistant", "content": content}, + "finish_reason": "stop", + } + ], + "usage": { + "prompt_tokens": 0, + "completion_tokens": 0, + "total_tokens": 0, + }, + } + return JSONResponse(content=response) + + return app + + +def main() -> None: + """Entry point for subprocess launch. + + Usage:: + + python -m easi.llm.models.http_server \ + --model-name my_model \ + --model-path /path/to/weights \ + --device cuda:0 \ + --port 8000 \ + --kwargs '{"key": "value"}' + """ + import argparse + + import uvicorn + + from easi.llm.models.registry import load_model_class + + parser = argparse.ArgumentParser(description="EASI custom model HTTP server") + parser.add_argument("--model-name", required=True, help="Registered model name") + parser.add_argument("--model-path", required=True, help="Path to model weights") + parser.add_argument("--device", default="cuda:0", help="Device (default: cuda:0)") + parser.add_argument("--port", type=int, default=8000, help="Port (default: 8000)") + parser.add_argument( + "--kwargs", + default="{}", + help="Extra kwargs as JSON string (default: '{}')", + ) + args = parser.parse_args() + + extra_kwargs: dict[str, Any] = json.loads(args.kwargs) + + logger.info( + "Loading model '%s' from %s on %s", + args.model_name, + args.model_path, + args.device, + ) + + cls = load_model_class(args.model_name) + model_instance = cls() + model_instance.load(args.model_path, args.device, **extra_kwargs) + + app = create_app(model_instance) + + logger.info("Starting HTTP server on port %d", args.port) + uvicorn.run(app, host="0.0.0.0", port=args.port, log_level="info") + + +if __name__ == "__main__": + main() diff --git a/tests/test_custom_http_server.py b/tests/test_custom_http_server.py new file mode 100644 index 0000000..698ebaf --- /dev/null +++ b/tests/test_custom_http_server.py @@ -0,0 +1,266 @@ +"""Unit tests for easi.llm.models.http_server.""" + +from __future__ import annotations + +from unittest.mock import MagicMock, patch + +import pytest +from starlette.testclient import TestClient + +from easi.llm.models.base_model_server import BaseModelServer +from easi.llm.models.http_server import create_app + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +class EchoModel(BaseModelServer): + """Test model that echoes back the last user message.""" + + def load(self, model_path: str, device: str, **kwargs) -> None: + self._loaded = True + + def generate(self, messages: list[dict], **kwargs) -> str: + # Return last user message content, or empty string. + for msg in reversed(messages): + if msg.get("role") == "user": + return msg.get("content", "") + return "" + + +class ErrorModel(BaseModelServer): + """Test model that always raises an error.""" + + def load(self, model_path: str, device: str, **kwargs) -> None: + pass + + def generate(self, messages: list[dict], **kwargs) -> str: + raise RuntimeError("generation failed") + + +def _make_echo_client() -> TestClient: + model = EchoModel() + model.load("test", "cpu") + app = create_app(model) + return TestClient(app) + + +# --------------------------------------------------------------------------- +# TestCreateAppUnit +# --------------------------------------------------------------------------- + +class TestCreateAppUnit: + """Verify create_app returns a FastAPI app with the expected routes.""" + + def test_returns_fastapi_app(self): + from fastapi import FastAPI + + model = EchoModel() + model.load("test", "cpu") + app = create_app(model) + assert isinstance(app, FastAPI) + + def test_app_has_health_route(self): + model = EchoModel() + model.load("test", "cpu") + app = create_app(model) + paths = [route.path for route in app.routes] + assert "/health" in paths + + def test_app_has_chat_completions_route(self): + model = EchoModel() + model.load("test", "cpu") + app = create_app(model) + paths = [route.path for route in app.routes] + assert "/v1/chat/completions" in paths + + +# --------------------------------------------------------------------------- +# TestEndpoints +# --------------------------------------------------------------------------- + +class TestEndpoints: + """Test endpoints via FastAPI TestClient (no real HTTP server).""" + + def test_health(self): + client = _make_echo_client() + resp = client.get("/health") + assert resp.status_code == 200 + data = resp.json() + assert data["status"] == "ok" + + def test_chat_completions_echo(self): + client = _make_echo_client() + resp = client.post( + "/v1/chat/completions", + json={ + "model": "echo", + "messages": [ + {"role": "system", "content": "You are helpful."}, + {"role": "user", "content": "Hello!"}, + ], + }, + ) + assert resp.status_code == 200 + data = resp.json() + + assert data["object"] == "chat.completion" + assert data["model"] == "echo" + assert len(data["choices"]) == 1 + assert data["choices"][0]["message"]["role"] == "assistant" + assert data["choices"][0]["message"]["content"] == "Hello!" + assert data["choices"][0]["finish_reason"] == "stop" + assert "usage" in data + assert data["id"].startswith("chatcmpl-") + + def test_chat_completions_passes_gen_kwargs(self): + """Verify generation kwargs from the request body are forwarded.""" + model = MagicMock(spec=BaseModelServer) + model.generate.return_value = "ok" + app = create_app(model) + client = TestClient(app) + + client.post( + "/v1/chat/completions", + json={ + "model": "test", + "messages": [{"role": "user", "content": "hi"}], + "temperature": 0.5, + "max_tokens": 100, + "top_p": 0.9, + "top_k": 50, + "seed": 42, + }, + ) + + model.generate.assert_called_once() + _, kwargs = model.generate.call_args + assert kwargs["temperature"] == 0.5 + assert kwargs["max_tokens"] == 100 + assert kwargs["top_p"] == 0.9 + assert kwargs["top_k"] == 50 + assert kwargs["seed"] == 42 + + def test_chat_completions_ignores_unknown_kwargs(self): + """Unknown keys in the request body are not passed to generate.""" + model = MagicMock(spec=BaseModelServer) + model.generate.return_value = "ok" + app = create_app(model) + client = TestClient(app) + + client.post( + "/v1/chat/completions", + json={ + "model": "test", + "messages": [{"role": "user", "content": "hi"}], + "unknown_param": True, + }, + ) + + model.generate.assert_called_once() + _, kwargs = model.generate.call_args + assert "unknown_param" not in kwargs + + def test_chat_completions_error_returns_500(self): + model = ErrorModel() + model.load("test", "cpu") + app = create_app(model) + client = TestClient(app, raise_server_exceptions=False) + + resp = client.post( + "/v1/chat/completions", + json={ + "model": "test", + "messages": [{"role": "user", "content": "hi"}], + }, + ) + assert resp.status_code == 500 + data = resp.json() + assert "error" in data + assert "generation failed" in data["error"]["message"] + + def test_chat_completions_empty_messages(self): + client = _make_echo_client() + resp = client.post( + "/v1/chat/completions", + json={"model": "echo", "messages": []}, + ) + assert resp.status_code == 200 + assert resp.json()["choices"][0]["message"]["content"] == "" + + +# --------------------------------------------------------------------------- +# TestHTTPServerMain +# --------------------------------------------------------------------------- + +class TestHTTPServerMain: + """Verify main() argument parsing with everything mocked.""" + + @patch("uvicorn.run") + @patch("easi.llm.models.http_server.create_app") + def test_main_parses_args(self, mock_create_app, mock_uvicorn_run): + from easi.llm.models.http_server import main + + mock_cls = MagicMock() + mock_instance = MagicMock() + mock_cls.return_value = mock_instance + mock_create_app.return_value = MagicMock() + + with patch( + "easi.llm.models.registry.load_model_class", return_value=mock_cls + ), patch( + "sys.argv", + [ + "http_server", + "--model-name", + "test_model", + "--model-path", + "/tmp/weights", + "--device", + "cpu", + "--port", + "9000", + "--kwargs", + '{"key": "val"}', + ], + ): + main() + + mock_cls.assert_called_once() + mock_instance.load.assert_called_once_with( + "/tmp/weights", "cpu", key="val" + ) + mock_create_app.assert_called_once_with(mock_instance) + mock_uvicorn_run.assert_called_once() + call_kwargs = mock_uvicorn_run.call_args + assert call_kwargs[1]["port"] == 9000 + + @patch("uvicorn.run") + @patch("easi.llm.models.http_server.create_app") + def test_main_defaults(self, mock_create_app, mock_uvicorn_run): + from easi.llm.models.http_server import main + + mock_cls = MagicMock() + mock_instance = MagicMock() + mock_cls.return_value = mock_instance + mock_create_app.return_value = MagicMock() + + with patch( + "easi.llm.models.registry.load_model_class", return_value=mock_cls + ), patch( + "sys.argv", + [ + "http_server", + "--model-name", + "m", + "--model-path", + "/p", + ], + ): + main() + + # Default device is cuda:0, default port is 8000 + mock_instance.load.assert_called_once_with("/p", "cuda:0") + call_kwargs = mock_uvicorn_run.call_args + assert call_kwargs[1]["port"] == 8000 From 05833bad3d3c4b4dabdbea3e3562932669314a51 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 15:01:11 +0800 Subject: [PATCH 172/239] feat: support custom backend in evaluation runners --- easi/evaluation/parallel_runner.py | 2 +- easi/evaluation/runner.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 046e5f5..41d606c 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -124,7 +124,7 @@ def run(self) -> list[dict]: server_mgr = None try: - if backend == "vllm" and base_url is None: + if backend in ("vllm", "custom") and base_url is None: # Auto-manage vLLM instances from easi.llm.server_manager import MultiServerManager from easi.llm.utils import parse_llm_kwargs, split_kwargs as _split diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 52ffe57..5f95689 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -163,7 +163,7 @@ def run(self) -> list[dict]: server = None try: - if backend == "vllm" and base_url is None: + if backend in ("vllm", "custom") and base_url is None: from easi.llm.server_manager import ServerManager from easi.llm.utils import parse_llm_kwargs, split_kwargs From 4efab38640b46d654426be32690372309409ffc0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 15:01:29 +0800 Subject: [PATCH 173/239] feat: add 'easi model list/info' CLI subcommands --- easi/cli.py | 35 +++++++++++++++++++++++++++++++++++ tests/test_cli.py | 17 +++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/easi/cli.py b/easi/cli.py index 64062c7..43d1161 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -136,6 +136,13 @@ def build_parser() -> argparse.ArgumentParser: "--render-platform", type=str, default=None, dest="render_platform", help="Rendering platform: auto, native, xvfb, egl, headless (default: simulator's preference)") + # --- model command --- + model_parser = subparsers.add_parser("model", help="Manage custom models", parents=[common]) + model_sub = model_parser.add_subparsers(dest="model_action") + model_sub.add_parser("list", help="List available custom models", parents=[common]) + model_info_parser = model_sub.add_parser("info", help="Show model details", parents=[common]) + model_info_parser.add_argument("model_name", help="Model name") + # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) llm_parser.add_argument("--port", type=int, default=8000) @@ -531,6 +538,31 @@ def cmd_llm_server(host: str, port: int, mode: str, action_space: list[str]) -> run_server(host=host, port=port, mode=mode, action_space=action_space) +def cmd_model(args) -> None: + from easi.llm.models.registry import get_model_entry, list_models + + if args.model_action == "list": + names = list_models() + if not names: + logger.info("No custom models found.") + return + for name in names: + entry = get_model_entry(name) + logger.info(" %s -- %s", name, entry.display_name) + + elif args.model_action == "info": + entry = get_model_entry(args.model_name) + logger.info("Model: %s", entry.display_name) + logger.info(" Name: %s", entry.name) + logger.info(" Description: %s", entry.description) + logger.info(" Model class: %s", entry.model_class) + logger.info(" Default kwargs: %s", entry.default_kwargs) + + else: + from easi.cli import build_parser + build_parser().parse_args(["model", "--help"]) + + # --- Main --- def main() -> None: @@ -575,6 +607,9 @@ def main() -> None: elif args.command == "start": cmd_start(args) + elif args.command == "model": + cmd_model(args) + elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) diff --git a/tests/test_cli.py b/tests/test_cli.py index 1fa543a..8de70ba 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -33,3 +33,20 @@ def test_cli_parses_comma_separated_llm_url(): "--llm-url", "http://localhost:8000/v1,http://localhost:8001/v1", ]) assert args.llm_base_url == "http://localhost:8000/v1,http://localhost:8001/v1" + + +def test_cli_model_list_subcommand(): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["model", "list"]) + assert args.command == "model" + assert args.model_action == "list" + + +def test_cli_model_info_subcommand(): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["model", "info", "cambrian"]) + assert args.command == "model" + assert args.model_action == "info" + assert args.model_name == "cambrian" From 029103ee85afd683ed1bd70c658f87766b13cc94 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 15:01:37 +0800 Subject: [PATCH 174/239] feat: add echo model as built-in example for custom server pipeline --- easi/llm/models/echo/__init__.py | 0 easi/llm/models/echo/manifest.yaml | 5 +++++ easi/llm/models/echo/model.py | 16 ++++++++++++++++ tests/test_model_registry.py | 18 ++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 easi/llm/models/echo/__init__.py create mode 100644 easi/llm/models/echo/manifest.yaml create mode 100644 easi/llm/models/echo/model.py diff --git a/easi/llm/models/echo/__init__.py b/easi/llm/models/echo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/llm/models/echo/manifest.yaml b/easi/llm/models/echo/manifest.yaml new file mode 100644 index 0000000..3be5b52 --- /dev/null +++ b/easi/llm/models/echo/manifest.yaml @@ -0,0 +1,5 @@ +name: echo +display_name: "Echo Model" +description: "Testing model that echoes back user input. No GPU required." +model_class: "easi.llm.models.echo.model.EchoModel" +default_kwargs: {} diff --git a/easi/llm/models/echo/model.py b/easi/llm/models/echo/model.py new file mode 100644 index 0000000..812b6c4 --- /dev/null +++ b/easi/llm/models/echo/model.py @@ -0,0 +1,16 @@ +"""Echo model for testing the custom model server pipeline.""" +from __future__ import annotations + +from easi.llm.models.base_model_server import BaseModelServer +from easi.llm.models.helpers import extract_text_only + + +class EchoModel(BaseModelServer): + """Returns the user's message back. Useful for testing.""" + + def load(self, model_path: str, device: str, **kwargs) -> None: + pass + + def generate(self, messages: list[dict], **kwargs) -> str: + text = extract_text_only(messages) + return f"Echo: {text}" diff --git a/tests/test_model_registry.py b/tests/test_model_registry.py index 615b85e..b8fd806 100644 --- a/tests/test_model_registry.py +++ b/tests/test_model_registry.py @@ -116,3 +116,21 @@ def test_load_model_class(self, fake_model_dir, monkeypatch): ) cls = load_model_class("test_model") assert cls is FakeModel + + +# --------------------------------------------------------------------------- +# TestBuiltInEchoModel +# --------------------------------------------------------------------------- + +class TestBuiltInEchoModel: + def test_echo_model_discovered(self): + refresh() + assert "echo" in list_models() + + def test_echo_model_loadable(self): + refresh() + cls = load_model_class("echo") + instance = cls() + instance.load("dummy", "cpu") + result = instance.generate([{"role": "user", "content": "hello"}]) + assert "hello" in result.lower() From 372b4be329ce5cd4855c7e175357e192ddd1c839 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 15:53:07 +0800 Subject: [PATCH 175/239] feat: add Qwen3-VL custom model example with message format conversion --- easi/llm/models/qwen3_vl/__init__.py | 0 easi/llm/models/qwen3_vl/manifest.yaml | 10 ++ easi/llm/models/qwen3_vl/model.py | 163 +++++++++++++++++++++++++ tests/test_qwen3_vl_model.py | 133 ++++++++++++++++++++ 4 files changed, 306 insertions(+) create mode 100644 easi/llm/models/qwen3_vl/__init__.py create mode 100644 easi/llm/models/qwen3_vl/manifest.yaml create mode 100644 easi/llm/models/qwen3_vl/model.py create mode 100644 tests/test_qwen3_vl_model.py diff --git a/easi/llm/models/qwen3_vl/__init__.py b/easi/llm/models/qwen3_vl/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/llm/models/qwen3_vl/manifest.yaml b/easi/llm/models/qwen3_vl/manifest.yaml new file mode 100644 index 0000000..e4591ea --- /dev/null +++ b/easi/llm/models/qwen3_vl/manifest.yaml @@ -0,0 +1,10 @@ +name: qwen3_vl +display_name: "Qwen3-VL" +description: > + Qwen3-VL vision-language model family (8B, 72B, etc.). + Supports image understanding with OpenAI-format messages. + Requires: pip install transformers torch torchvision pillow +model_class: "easi.llm.models.qwen3_vl.model.Qwen3VLModel" +default_kwargs: + torch_dtype: "bfloat16" + attn_implementation: "flash_attention_2" diff --git a/easi/llm/models/qwen3_vl/model.py b/easi/llm/models/qwen3_vl/model.py new file mode 100644 index 0000000..3439b74 --- /dev/null +++ b/easi/llm/models/qwen3_vl/model.py @@ -0,0 +1,163 @@ +"""Qwen3-VL custom model server for EASI. + +Loads Qwen3-VL models (8B, 72B, etc.) via HuggingFace Transformers and +serves them through the custom model server pipeline. + +Requires: + pip install transformers torch torchvision pillow + +Usage: + easi start --backend custom --model qwen3_vl \ + --llm-kwargs '{"model_path": "Qwen/Qwen3-VL-8B-Instruct"}' +""" +from __future__ import annotations + +from easi.llm.models.base_model_server import BaseModelServer +from easi.llm.models.helpers import extract_images +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +# Dtype string → torch dtype mapping +_DTYPE_MAP = { + "bfloat16": "bfloat16", + "float16": "float16", + "float32": "float32", + "auto": "auto", +} + + +def _openai_to_qwen_messages(messages: list[dict], images: list) -> list[dict]: + """Convert OpenAI-format messages to Qwen3-VL format. + + OpenAI format: + {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} + Qwen format: + {"type": "image", "image": } + """ + image_idx = 0 + converted = [] + for msg in messages: + role = msg.get("role", "user") + content = msg.get("content", "") + + if isinstance(content, str): + converted.append({"role": role, "content": content}) + continue + + new_content = [] + for part in content: + ptype = part.get("type", "") + if ptype == "image_url" and image_idx < len(images): + new_content.append({"type": "image", "image": images[image_idx]}) + image_idx += 1 + elif ptype == "text": + new_content.append({"type": "text", "text": part.get("text", "")}) + + converted.append({"role": role, "content": new_content}) + + return converted + + +class Qwen3VLModel(BaseModelServer): + """Qwen3-VL vision-language model server.""" + + def load(self, model_path: str, device: str, **kwargs) -> None: + """Load Qwen3-VL model and processor. + + Args: + model_path: HuggingFace model ID (e.g., "Qwen/Qwen3-VL-8B-Instruct") + or local path to model weights. + device: Device string (e.g., "cuda:0"). When using device_map="auto", + this is used as fallback. + **kwargs: Extra kwargs passed to from_pretrained. + Supported: torch_dtype, attn_implementation. + """ + import torch + from transformers import AutoProcessor, Qwen3VLForConditionalGeneration + + # Resolve torch dtype + dtype_str = kwargs.pop("torch_dtype", "auto") + if dtype_str in _DTYPE_MAP: + torch_dtype = getattr(torch, dtype_str, "auto") if dtype_str != "auto" else "auto" + else: + torch_dtype = "auto" + + attn_impl = kwargs.pop("attn_implementation", None) + + load_kwargs = {"torch_dtype": torch_dtype, "device_map": "auto"} + if attn_impl: + load_kwargs["attn_implementation"] = attn_impl + + logger.info("Loading Qwen3-VL from %s (dtype=%s, attn=%s)", model_path, dtype_str, attn_impl) + self.model = Qwen3VLForConditionalGeneration.from_pretrained( + model_path, **load_kwargs + ) + self.processor = AutoProcessor.from_pretrained(model_path) + self.device = self.model.device + logger.info("Qwen3-VL loaded on %s", self.device) + + def generate(self, messages: list[dict], **kwargs) -> str: + """Generate response from OpenAI-format messages. + + Converts OpenAI message format to Qwen3-VL format, processes + images via the Qwen processor, and runs generation. + """ + import torch + + # Extract images from OpenAI-format base64 entries + images = extract_images(messages) + + # Convert message format + qwen_messages = _openai_to_qwen_messages(messages, images) + + # Process with Qwen processor (handles tokenization + image processing) + inputs = self.processor.apply_chat_template( + qwen_messages, + tokenize=True, + add_generation_prompt=True, + return_dict=True, + return_tensors="pt", + ) + inputs = inputs.to(self.device) + + # Generation kwargs + max_new_tokens = kwargs.get("max_tokens", 4096) + temperature = kwargs.get("temperature", 0.0) + top_p = kwargs.get("top_p", 0.95) + + gen_kwargs = {"max_new_tokens": max_new_tokens} + if temperature > 0: + gen_kwargs["temperature"] = temperature + gen_kwargs["top_p"] = top_p + gen_kwargs["do_sample"] = True + else: + gen_kwargs["do_sample"] = False + + with torch.no_grad(): + generated_ids = self.model.generate(**inputs, **gen_kwargs) + + # Trim input tokens from output + generated_ids_trimmed = [ + out_ids[len(in_ids):] + for in_ids, out_ids in zip(inputs.input_ids, generated_ids) + ] + output_text = self.processor.batch_decode( + generated_ids_trimmed, + skip_special_tokens=True, + clean_up_tokenization_spaces=False, + ) + + return output_text[0] if output_text else "" + + def unload(self) -> None: + """Release GPU memory.""" + if hasattr(self, "model"): + del self.model + if hasattr(self, "processor"): + del self.processor + + import torch + if torch.cuda.is_available(): + torch.cuda.empty_cache() + logger.info("Qwen3-VL model unloaded") diff --git a/tests/test_qwen3_vl_model.py b/tests/test_qwen3_vl_model.py new file mode 100644 index 0000000..0f2a3c5 --- /dev/null +++ b/tests/test_qwen3_vl_model.py @@ -0,0 +1,133 @@ +"""Tests for Qwen3-VL custom model server. + +Tests model discovery, message format conversion, and interface compliance +without requiring actual model weights or GPU. +""" +import base64 + +import pytest + +from easi.llm.models.registry import get_model_entry, list_models, load_model_class, refresh +from easi.llm.models.qwen3_vl.model import _openai_to_qwen_messages + + +@pytest.fixture(autouse=True) +def _clear_registry(): + refresh() + yield + refresh() + + +# -- Registry discovery -- + +class TestQwen3VLDiscovery: + def test_discovered_in_registry(self): + assert "qwen3_vl" in list_models() + + def test_model_entry_fields(self): + entry = get_model_entry("qwen3_vl") + assert entry.display_name == "Qwen3-VL" + assert entry.model_class == "easi.llm.models.qwen3_vl.model.Qwen3VLModel" + assert entry.default_kwargs.get("torch_dtype") == "bfloat16" + + def test_class_importable(self): + cls = load_model_class("qwen3_vl") + assert cls.__name__ == "Qwen3VLModel" + + def test_is_base_model_server_subclass(self): + from easi.llm.models.base_model_server import BaseModelServer + cls = load_model_class("qwen3_vl") + assert issubclass(cls, BaseModelServer) + + +# -- Message format conversion -- + +class TestOpenAIToQwenMessages: + """Test _openai_to_qwen_messages conversion.""" + + def test_text_only_passthrough(self): + messages = [ + {"role": "system", "content": "You are helpful"}, + {"role": "user", "content": "Hello"}, + ] + result = _openai_to_qwen_messages(messages, images=[]) + assert result[0] == {"role": "system", "content": "You are helpful"} + assert result[1] == {"role": "user", "content": "Hello"} + + def test_image_url_converted_to_qwen_format(self): + """OpenAI image_url entries should become Qwen image entries.""" + from PIL import Image + fake_img = Image.new("RGB", (1, 1), color="red") + + messages = [ + {"role": "user", "content": [ + {"type": "image_url", "image_url": {"url": "data:image/png;base64,abc"}}, + {"type": "text", "text": "What is this?"}, + ]}, + ] + result = _openai_to_qwen_messages(messages, images=[fake_img]) + + user_content = result[0]["content"] + assert len(user_content) == 2 + assert user_content[0]["type"] == "image" + assert user_content[0]["image"] is fake_img + assert user_content[1]["type"] == "text" + assert user_content[1]["text"] == "What is this?" + + def test_multiple_images(self): + from PIL import Image + img1 = Image.new("RGB", (1, 1), color="red") + img2 = Image.new("RGB", (1, 1), color="blue") + + messages = [ + {"role": "user", "content": [ + {"type": "image_url", "image_url": {"url": "data:image/png;base64,aaa"}}, + {"type": "image_url", "image_url": {"url": "data:image/png;base64,bbb"}}, + {"type": "text", "text": "Compare these"}, + ]}, + ] + result = _openai_to_qwen_messages(messages, images=[img1, img2]) + + user_content = result[0]["content"] + assert user_content[0]["image"] is img1 + assert user_content[1]["image"] is img2 + + def test_preserves_roles(self): + messages = [ + {"role": "system", "content": "System prompt"}, + {"role": "user", "content": [ + {"type": "text", "text": "Hello"}, + ]}, + {"role": "assistant", "content": "Hi there"}, + ] + result = _openai_to_qwen_messages(messages, images=[]) + assert [m["role"] for m in result] == ["system", "user", "assistant"] + + def test_no_images_when_none_extracted(self): + """image_url entries without matching images are skipped.""" + messages = [ + {"role": "user", "content": [ + {"type": "image_url", "image_url": {"url": "data:image/png;base64,abc"}}, + {"type": "text", "text": "Hello"}, + ]}, + ] + result = _openai_to_qwen_messages(messages, images=[]) + user_content = result[0]["content"] + # image_url entry should be skipped since no images provided + assert len(user_content) == 1 + assert user_content[0]["type"] == "text" + + def test_mixed_text_and_images_across_messages(self): + from PIL import Image + img = Image.new("RGB", (1, 1)) + + messages = [ + {"role": "system", "content": "Be helpful"}, + {"role": "user", "content": [ + {"type": "image_url", "image_url": {"url": "data:image/png;base64,abc"}}, + {"type": "text", "text": "Describe"}, + ]}, + ] + result = _openai_to_qwen_messages(messages, images=[img]) + assert result[0]["content"] == "Be helpful" + assert result[1]["content"][0]["type"] == "image" From 77667dda6205af062834c3176b7979d08893f482 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 16:07:16 +0800 Subject: [PATCH 176/239] fix: pass actual backend to ServerManager instead of hardcoded 'vllm' --- easi/evaluation/parallel_runner.py | 1 + easi/evaluation/runner.py | 2 +- easi/llm/utils.py | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 41d606c..567b5a9 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -141,6 +141,7 @@ def run(self) -> list[dict]: gpu_ids=gpu_ids, base_port=self.port, server_kwargs=srv_kw, + backend=backend, ) base_urls = server_mgr.start() elif base_url: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 5f95689..ac294df 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -170,7 +170,7 @@ def run(self) -> list[dict]: all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) server_kwargs, _ = split_kwargs(all_kwargs) server = ServerManager( - "vllm", self.model, port=self.port, + backend, self.model, port=self.port, server_kwargs=server_kwargs, ) base_url = server.start() diff --git a/easi/llm/utils.py b/easi/llm/utils.py index 76ab3b8..d192423 100644 --- a/easi/llm/utils.py +++ b/easi/llm/utils.py @@ -22,7 +22,8 @@ "gemini": "GOOGLE_API_KEY", } -# kwargs that belong to the inference server (vLLM CLI flags), not the API call. +# kwargs that belong to the inference server, not the API call. +# Includes vLLM CLI flags and custom server params (model_path). _SERVER_KWARGS = { "tensor_parallel_size", "gpu_memory_utilization", @@ -37,6 +38,7 @@ "max_num_seqs", "disable_log_requests", "limit_mm_per_prompt", + "model_path", } From 99556adefb00768da8a1000984642abafc64485a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 17:25:22 +0800 Subject: [PATCH 177/239] fix: multiple bugs in custom model server pipeline - Fix Qwen3-VL model.device crash with device_map="auto" (use next(params).device) - Fix inputs.to(device) on BatchEncoding with non-tensor fields (dict comprehension) - Fix inputs.input_ids attribute access after dict conversion (use bracket access) - Apply manifest default_kwargs in http_server.py (were silently ignored) - Add dummy api_key for local servers in LLMClient (LiteLLM requires it for openai/ prefix) - Catch requests.Timeout in health poll (was only catching ConnectionError) - Fix extract_images crash on non-base64 URLs (skip http:// and non-base64 data URIs) - Graceful fallback when accelerate or flash-attn not installed - Use dtype instead of deprecated torch_dtype for newer transformers - Handle KeyboardInterrupt cleanly in CLI (no giant traceback) - Add [custom-models] optional dependency group in pyproject.toml - Include llm/models/*/manifest.yaml in package data - Log full traceback on generation errors in http_server --- easi/cli.py | 8 ++++++ easi/llm/client.py | 3 ++ easi/llm/models/helpers.py | 12 +++++--- easi/llm/models/http_server.py | 13 ++++++--- easi/llm/models/qwen3_vl/manifest.yaml | 4 +-- easi/llm/models/qwen3_vl/model.py | 40 +++++++++++++++++++++----- easi/llm/server_manager.py | 4 +-- pyproject.toml | 10 +++++++ tests/test_custom_http_server.py | 13 ++++++++- tests/test_qwen3_vl_model.py | 2 +- 10 files changed, 88 insertions(+), 21 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 43d1161..f8e09f0 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -566,6 +566,14 @@ def cmd_model(args) -> None: # --- Main --- def main() -> None: + try: + _main() + except KeyboardInterrupt: + logger.info("Interrupted by user.") + sys.exit(130) + + +def _main() -> None: parser = build_parser() args = parser.parse_args() diff --git a/easi/llm/client.py b/easi/llm/client.py index 5df6980..c32e514 100644 --- a/easi/llm/client.py +++ b/easi/llm/client.py @@ -85,6 +85,9 @@ def generate(self, messages: list[dict], response_format: dict | None = None) -> } if self.base_url: call_kwargs["api_base"] = self.base_url + # Local servers (vLLM, custom) don't need a real API key, + # but LiteLLM requires one for the openai/ prefix. + call_kwargs.setdefault("api_key", "dummy") if response_format is not None: call_kwargs["response_format"] = response_format diff --git a/easi/llm/models/helpers.py b/easi/llm/models/helpers.py index 0813b26..98bb1c2 100644 --- a/easi/llm/models/helpers.py +++ b/easi/llm/models/helpers.py @@ -42,13 +42,17 @@ def extract_images(messages: list[dict[str, Any]]) -> list[Any]: continue image_url = part.get("image_url", {}) url = image_url.get("url", "") - if url.startswith("data:"): + if url.startswith("data:") and ";base64," in url: # Format: data:;base64, _, encoded = url.split(",", 1) + raw = base64.b64decode(encoded) + images.append(Image.open(io.BytesIO(raw))) + elif url.startswith("data:"): + # Non-base64 data URI (e.g. data:text/plain,...) — skip + logger.debug("Skipping non-base64 data URI") else: - encoded = url - raw = base64.b64decode(encoded) - images.append(Image.open(io.BytesIO(raw))) + # HTTP/HTTPS URLs — not yet supported for extraction + logger.debug("Skipping non-data image URL: %s", url[:80]) return images diff --git a/easi/llm/models/http_server.py b/easi/llm/models/http_server.py index 98dde85..260956a 100644 --- a/easi/llm/models/http_server.py +++ b/easi/llm/models/http_server.py @@ -66,7 +66,7 @@ async def chat_completions(request: dict) -> JSONResponse: # type: ignore[arg-t try: content = model.generate(messages, **gen_kwargs) except Exception as e: - logger.error("Generation failed: %s", e) + logger.error("Generation failed: %s", e, exc_info=True) return JSONResponse( status_code=500, content={"error": {"message": str(e), "type": "server_error"}}, @@ -111,7 +111,7 @@ def main() -> None: import uvicorn - from easi.llm.models.registry import load_model_class + from easi.llm.models.registry import get_model_entry, load_model_class parser = argparse.ArgumentParser(description="EASI custom model HTTP server") parser.add_argument("--model-name", required=True, help="Registered model name") @@ -127,16 +127,21 @@ def main() -> None: extra_kwargs: dict[str, Any] = json.loads(args.kwargs) + # Merge manifest default_kwargs with CLI overrides (CLI wins) + entry = get_model_entry(args.model_name) + merged_kwargs = {**entry.default_kwargs, **extra_kwargs} + logger.info( - "Loading model '%s' from %s on %s", + "Loading model '%s' from %s on %s (kwargs=%s)", args.model_name, args.model_path, args.device, + merged_kwargs, ) cls = load_model_class(args.model_name) model_instance = cls() - model_instance.load(args.model_path, args.device, **extra_kwargs) + model_instance.load(args.model_path, args.device, **merged_kwargs) app = create_app(model_instance) diff --git a/easi/llm/models/qwen3_vl/manifest.yaml b/easi/llm/models/qwen3_vl/manifest.yaml index e4591ea..22da378 100644 --- a/easi/llm/models/qwen3_vl/manifest.yaml +++ b/easi/llm/models/qwen3_vl/manifest.yaml @@ -3,8 +3,8 @@ display_name: "Qwen3-VL" description: > Qwen3-VL vision-language model family (8B, 72B, etc.). Supports image understanding with OpenAI-format messages. - Requires: pip install transformers torch torchvision pillow + Requires: uv pip install transformers torch torchvision pillow model_class: "easi.llm.models.qwen3_vl.model.Qwen3VLModel" default_kwargs: - torch_dtype: "bfloat16" + dtype: "bfloat16" attn_implementation: "flash_attention_2" diff --git a/easi/llm/models/qwen3_vl/model.py b/easi/llm/models/qwen3_vl/model.py index 3439b74..e31b5c1 100644 --- a/easi/llm/models/qwen3_vl/model.py +++ b/easi/llm/models/qwen3_vl/model.py @@ -76,8 +76,8 @@ def load(self, model_path: str, device: str, **kwargs) -> None: import torch from transformers import AutoProcessor, Qwen3VLForConditionalGeneration - # Resolve torch dtype - dtype_str = kwargs.pop("torch_dtype", "auto") + # Resolve torch dtype — newer transformers uses "dtype" instead of "torch_dtype" + dtype_str = kwargs.pop("torch_dtype", kwargs.pop("dtype", "auto")) if dtype_str in _DTYPE_MAP: torch_dtype = getattr(torch, dtype_str, "auto") if dtype_str != "auto" else "auto" else: @@ -85,16 +85,42 @@ def load(self, model_path: str, device: str, **kwargs) -> None: attn_impl = kwargs.pop("attn_implementation", None) - load_kwargs = {"torch_dtype": torch_dtype, "device_map": "auto"} + # Use device_map="auto" only if accelerate is available; otherwise + # fall back to loading on the specified device directly. + try: + import accelerate # noqa: F401 + load_kwargs = {"dtype": torch_dtype, "device_map": "auto"} + except ImportError: + logger.info("accelerate not installed, loading model on %s without device_map", device) + load_kwargs = {"dtype": torch_dtype} + if attn_impl: - load_kwargs["attn_implementation"] = attn_impl + # Validate flash_attention_2 availability before requesting it + if attn_impl == "flash_attention_2": + try: + import flash_attn # noqa: F401 + load_kwargs["attn_implementation"] = attn_impl + except ImportError: + logger.warning( + "flash_attn not installed, falling back to sdpa attention. " + "Install with: pip install flash-attn --no-build-isolation" + ) + load_kwargs["attn_implementation"] = "sdpa" + else: + load_kwargs["attn_implementation"] = attn_impl logger.info("Loading Qwen3-VL from %s (dtype=%s, attn=%s)", model_path, dtype_str, attn_impl) self.model = Qwen3VLForConditionalGeneration.from_pretrained( model_path, **load_kwargs ) + # Move to device if device_map was not used + if "device_map" not in load_kwargs: + self.model = self.model.to(device) + self.processor = AutoProcessor.from_pretrained(model_path) - self.device = self.model.device + # device_map="auto" shards across GPUs; .device would raise RuntimeError. + # Use the device of the first parameter instead. + self.device = next(self.model.parameters()).device logger.info("Qwen3-VL loaded on %s", self.device) def generate(self, messages: list[dict], **kwargs) -> str: @@ -119,7 +145,7 @@ def generate(self, messages: list[dict], **kwargs) -> str: return_dict=True, return_tensors="pt", ) - inputs = inputs.to(self.device) + inputs = {k: v.to(self.device) if hasattr(v, "to") else v for k, v in inputs.items()} # Generation kwargs max_new_tokens = kwargs.get("max_tokens", 4096) @@ -140,7 +166,7 @@ def generate(self, messages: list[dict], **kwargs) -> str: # Trim input tokens from output generated_ids_trimmed = [ out_ids[len(in_ids):] - for in_ids, out_ids in zip(inputs.input_ids, generated_ids) + for in_ids, out_ids in zip(inputs["input_ids"], generated_ids) ] output_text = self.processor.batch_decode( generated_ids_trimmed, diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 9d4b5da..2917c68 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -220,8 +220,8 @@ def _wait_for_health(self, base_url: str) -> None: logger.trace("[%s] Health check passed (status=%d)", self.label, resp.status_code) return logger.trace("[%s] Health check returned status %d, retrying...", self.label, resp.status_code) - except requests.ConnectionError: - logger.trace("[%s] Health check connection refused, retrying...", self.label) + except (requests.ConnectionError, requests.Timeout): + logger.trace("[%s] Health check connection refused/timed out, retrying...", self.label) time.sleep(_HEALTH_POLL_INTERVAL) diff --git a/pyproject.toml b/pyproject.toml index e94d463..69eef6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,15 @@ vllm = [ "vllm>=0.15.1", "transformers>=4.40.0,<5.0" ] +custom-models = [ + "torch==2.7.1", + "torchvision==0.22.1", + "transformers>=4.40.0,<5.0", + "accelerate>=0.26.0", + "fastapi>=0.100.0", + "uvicorn>=0.23.0", + "Pillow>=10.0", +] [project.scripts] easi = "easi.cli:main" @@ -39,4 +48,5 @@ exclude = ["VLMEvalKit*", "lmms-eval*"] "simulators/*/*/conda_env.yaml", "simulators/*/*/requirements.txt", "tasks/*/*.yaml", + "llm/models/*/manifest.yaml", ] diff --git a/tests/test_custom_http_server.py b/tests/test_custom_http_server.py index 698ebaf..eebf842 100644 --- a/tests/test_custom_http_server.py +++ b/tests/test_custom_http_server.py @@ -207,8 +207,13 @@ def test_main_parses_args(self, mock_create_app, mock_uvicorn_run): mock_cls.return_value = mock_instance mock_create_app.return_value = MagicMock() + mock_entry = MagicMock() + mock_entry.default_kwargs = {"default_key": "default_val"} + with patch( "easi.llm.models.registry.load_model_class", return_value=mock_cls + ), patch( + "easi.llm.models.registry.get_model_entry", return_value=mock_entry ), patch( "sys.argv", [ @@ -228,8 +233,9 @@ def test_main_parses_args(self, mock_create_app, mock_uvicorn_run): main() mock_cls.assert_called_once() + # CLI kwargs override manifest defaults mock_instance.load.assert_called_once_with( - "/tmp/weights", "cpu", key="val" + "/tmp/weights", "cpu", default_key="default_val", key="val" ) mock_create_app.assert_called_once_with(mock_instance) mock_uvicorn_run.assert_called_once() @@ -246,8 +252,13 @@ def test_main_defaults(self, mock_create_app, mock_uvicorn_run): mock_cls.return_value = mock_instance mock_create_app.return_value = MagicMock() + mock_entry = MagicMock() + mock_entry.default_kwargs = {} + with patch( "easi.llm.models.registry.load_model_class", return_value=mock_cls + ), patch( + "easi.llm.models.registry.get_model_entry", return_value=mock_entry ), patch( "sys.argv", [ diff --git a/tests/test_qwen3_vl_model.py b/tests/test_qwen3_vl_model.py index 0f2a3c5..e543182 100644 --- a/tests/test_qwen3_vl_model.py +++ b/tests/test_qwen3_vl_model.py @@ -28,7 +28,7 @@ def test_model_entry_fields(self): entry = get_model_entry("qwen3_vl") assert entry.display_name == "Qwen3-VL" assert entry.model_class == "easi.llm.models.qwen3_vl.model.Qwen3VLModel" - assert entry.default_kwargs.get("torch_dtype") == "bfloat16" + assert entry.default_kwargs.get("dtype") == "bfloat16" def test_class_importable(self): cls = load_model_class("qwen3_vl") From c3876bc229a5218a74a86273a81363b0d2952b9f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 17:43:42 +0800 Subject: [PATCH 178/239] feat: add per-worker labels to simulator subprocess logs Add label parameter to SubprocessRunner so parallel workers log as [bridge-0], [bridge-1], etc. instead of all showing [bridge]. Sequential runs keep the default [bridge] label. --- easi/evaluation/parallel_runner.py | 5 ++++- easi/evaluation/runner.py | 4 +++- easi/simulators/subprocess_runner.py | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 567b5a9..a069d29 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -242,7 +242,9 @@ def _worker(worker_id: int) -> None: "[Worker %d] Creating simulator (key=%s)", worker_id, task.simulator_key, ) - sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, label=f"bridge-{worker_id}", + ) logger.trace( "[Worker %d] Simulator ready (PID=%s)", worker_id, @@ -315,6 +317,7 @@ def _worker(worker_id: int) -> None: pass sim, sim_runner = self._create_simulator( task.simulator_key, task=task, + label=f"bridge-{worker_id}", ) else: logger.error( diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index ac294df..efd4442 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -557,7 +557,7 @@ def _create_agent(self, action_space: list[str], task_config: dict, else: raise ValueError(f"Unknown agent type: {self.agent_type}") - def _create_simulator(self, simulator_key: str, task=None): + def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge"): import json as _json from easi.simulators.registry import ( @@ -610,6 +610,7 @@ def _create_simulator(self, simulator_key: str, task=None): bridge_script_path=bridge_path, render_platform=get_render_platform("headless"), extra_args=extra_args, + label=label, **runner_kwargs, ) data_dir_str = str(self.data_dir) if self.data_dir else ( @@ -668,6 +669,7 @@ def _create_simulator(self, simulator_key: str, task=None): screen_config=env_manager.screen_config, extra_args=extra_args, extra_env=env_vars if env_vars else None, + label=label, **runner_kwargs, ) runner.launch() diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 9f24794..1fbcb86 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -48,6 +48,7 @@ def __init__( poll_interval: float = 0.1, extra_args: list[str] | None = None, extra_env: EnvVars | None = None, + label: str = "bridge", ): self.python_executable = python_executable self.bridge_script_path = bridge_script_path @@ -58,6 +59,7 @@ def __init__( self.poll_interval = poll_interval self.extra_args = extra_args or [] self.extra_env = extra_env + self.label = label self._process: subprocess.Popen | None = None self._workspace: Path | None = None @@ -306,7 +308,7 @@ def _stream_output(self) -> None: line = line.rstrip() self._output_lines.append(line) level = self._parse_bridge_level(line) - logger.log(level, "[bridge] %s", line) + logger.log(level, "[%s] %s", self.label, line) except (ValueError, OSError): pass # pipe closed From 75878200d44dcc813ed3639e143cecdb4a8f69e0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 18:20:01 +0800 Subject: [PATCH 179/239] feat: add sticky progress bar for evaluation runs New ProgressBar utility that stays pinned to the bottom of the terminal while logs scroll above. Wraps log handler emit() (same pattern as spinner.py) to avoid corruption with TRACE-level log floods. - Thread-safe updates for parallel workers - Shows completed/total, failed count, active workers, elapsed, ETA - TTY-aware: sticky bar on TTY, periodic log lines when piped - Handles resume (start_index) for correct ETA calculation - Integrated in both sequential and parallel runners --- easi/evaluation/parallel_runner.py | 18 +- easi/evaluation/runner.py | 16 ++ easi/utils/progress.py | 253 +++++++++++++++++++++++++++++ 3 files changed, 284 insertions(+), 3 deletions(-) create mode 100644 easi/utils/progress.py diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index a069d29..f171cfa 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -232,6 +232,16 @@ def run(self) -> list[dict]: num_workers = min(self.num_parallel, remaining) + # --- Progress bar --- + from easi.utils.progress import ProgressBar + + progress_bar = ProgressBar( + total=total_episodes, + num_workers=num_workers, + start_index=start_index, + ) + progress_bar.start() + def _worker(worker_id: int) -> None: """Worker thread: owns a simulator + agent, pulls episodes from queue.""" logger.trace("[Worker %d] Starting up", worker_id) @@ -354,9 +364,10 @@ def _worker(worker_id: int) -> None: current_completed = progress["completed"] + start_index current_failed = progress["failed"] - logger.info( - "[Progress] %d/%d episodes completed (%d failed)", - current_completed, total_episodes, current_failed, + progress_bar.update( + completed=current_completed, + failed=current_failed, + active_workers=num_workers, ) episodes_done += 1 @@ -387,6 +398,7 @@ def _worker(worker_id: int) -> None: future.result() wall_seconds = round(time.monotonic() - wall_start, 2) + progress_bar.stop() # Merge completed results from resume with new results new_results.sort(key=lambda x: x[0]) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index efd4442..3ff46a5 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -209,6 +209,14 @@ def run(self) -> list[dict]: # 4. Start simulator sim, sim_runner = self._create_simulator(task.simulator_key, task=task) + # 5. Progress bar + from easi.utils.progress import ProgressBar + + progress_bar = ProgressBar( + total=len(episodes), num_workers=1, start_index=start_index, + ) + progress_bar.start() + try: for i, episode in enumerate(episodes): if i < start_index: @@ -259,6 +267,13 @@ def run(self) -> list[dict]: all_results.append(result) + # Update progress bar + failed_count = sum(1 for r in all_results if "error" in r) + progress_bar.update( + completed=len(all_results) + start_index, + failed=failed_count, + ) + # Save per-episode result (strip internal keys) result_to_save = { k: v for k, v in result.items() @@ -269,6 +284,7 @@ def run(self) -> list[dict]: ) finally: + progress_bar.stop() sim.close() finally: if server: diff --git a/easi/utils/progress.py b/easi/utils/progress.py new file mode 100644 index 0000000..2b3b1da --- /dev/null +++ b/easi/utils/progress.py @@ -0,0 +1,253 @@ +"""Sticky terminal progress bar that coexists with logging output. + +Usage:: + + from easi.utils.progress import ProgressBar + + bar = ProgressBar(total=50, num_workers=4) + bar.start() + # ... in worker threads: + bar.update(completed=10, failed=1) + # ... when done: + bar.stop() + +The progress bar renders on stderr, pinned to the bottom of the terminal. +When a log record is emitted, the bar is cleared first so log output is +never corrupted — identical pattern to spinner.py. + +In non-TTY mode (piped output), periodic log-line updates are emitted instead. +""" + +from __future__ import annotations + +import logging +import os +import sys +import threading +import time + + +_CLEAR = "\r\033[K" # carriage return + ANSI erase to end of line +_REFRESH_INTERVAL = 0.5 # seconds between redraws +_NON_TTY_LOG_INTERVAL = 30.0 # seconds between log-line updates in non-TTY mode + +# Bar characters +_FILL = "█" +_EMPTY = "░" + +# Colors (match logging.py conventions) +_RESET = "\033[0m" +_BOLD = "\033[1m" +_CYAN = "\033[36m" +_GREEN = "\033[32m" +_YELLOW = "\033[33m" +_GRAY = "\033[90m" +_RED = "\033[31m" + + +class ProgressBar: + """Thread-safe sticky progress bar for evaluation runs. + + Wraps log handler emit() methods (same pattern as spinner.py) to keep + the bar at the bottom while logs scroll above. + + Parameters + ---------- + total: + Total number of episodes. + num_workers: + Number of parallel workers (1 for sequential). + start_index: + Number of already-completed episodes (for resume). + """ + + def __init__( + self, + total: int, + num_workers: int = 1, + start_index: int = 0, + ): + self.total = total + self.num_workers = num_workers + self.start_index = start_index + + self._completed = start_index + self._failed = 0 + self._active_workers = 0 + self._elapsed_start: float = 0.0 + + self._lock = threading.Lock() + self._stop_event = threading.Event() + self._thread: threading.Thread | None = None + self._is_tty = hasattr(sys.stderr, "isatty") and sys.stderr.isatty() + self._wrapped: list[tuple[logging.Handler, object]] = [] + self._last_non_tty_log: float = 0.0 + + def start(self) -> None: + """Start the progress bar background thread.""" + self._elapsed_start = time.monotonic() + + if self._is_tty: + # Wrap existing handlers so they clear the bar before emitting + for handler in logging.getLogger("easi").handlers: + original_emit = handler.emit + + def wrapped_emit(record, _orig=original_emit): + with self._lock: + sys.stderr.write(_CLEAR) + sys.stderr.flush() + _orig(record) + # Redraw bar after log line + self._render() + + self._wrapped.append((handler, original_emit)) + handler.emit = wrapped_emit # type: ignore[method-assign] + + self._thread = threading.Thread(target=self._refresh_loop, daemon=True) + self._thread.start() + + def stop(self) -> None: + """Stop the progress bar and restore handlers.""" + self._stop_event.set() + if self._thread is not None: + self._thread.join() + + if self._is_tty: + # Final clear + with self._lock: + sys.stderr.write(_CLEAR) + sys.stderr.flush() + + # Restore original emit methods + for handler, original_emit in self._wrapped: + handler.emit = original_emit # type: ignore[method-assign] + self._wrapped.clear() + + def update( + self, + completed: int | None = None, + failed: int | None = None, + active_workers: int | None = None, + ) -> None: + """Thread-safe progress update. + + Parameters + ---------- + completed: + Total completed episodes (including resumed). + failed: + Total failed episodes. + active_workers: + Number of currently active worker threads. + """ + with self._lock: + if completed is not None: + self._completed = completed + if failed is not None: + self._failed = failed + if active_workers is not None: + self._active_workers = active_workers + + # Non-TTY: emit periodic log lines + if not self._is_tty: + now = time.monotonic() + if now - self._last_non_tty_log >= _NON_TTY_LOG_INTERVAL: + self._last_non_tty_log = now + self._log_progress() + + def _refresh_loop(self) -> None: + """Background thread: periodically redraw the bar.""" + while not self._stop_event.is_set(): + with self._lock: + self._render() + self._stop_event.wait(_REFRESH_INTERVAL) + + def _render(self) -> None: + """Render the progress bar to stderr. Must be called with _lock held.""" + line = self._format_bar() + sys.stderr.write(f"{_CLEAR}{line}") + sys.stderr.flush() + + def _format_bar(self) -> str: + """Build the progress bar string.""" + completed = self._completed + total = self.total + failed = self._failed + active = self._active_workers + elapsed = time.monotonic() - self._elapsed_start + + # Percentage and bar + pct = completed / total if total > 0 else 0 + bar_width = min(self._get_terminal_width() - 60, 30) + bar_width = max(bar_width, 10) + filled = int(bar_width * pct) + bar = _FILL * filled + _EMPTY * (bar_width - filled) + + # Color the bar + if failed > 0: + bar_color = _YELLOW + elif completed >= total: + bar_color = _GREEN + else: + bar_color = _CYAN + + # Elapsed time + mins, secs = divmod(int(elapsed), 60) + hours, mins = divmod(mins, 60) + if hours > 0: + time_str = f"{hours}h{mins:02d}m" + else: + time_str = f"{mins}m{secs:02d}s" + + # ETA + if completed > self.start_index and pct < 1.0: + new_completed = completed - self.start_index + elapsed_per_ep = elapsed / new_completed + remaining = (total - completed) * elapsed_per_ep + r_mins, r_secs = divmod(int(remaining), 60) + r_hours, r_mins = divmod(r_mins, 60) + if r_hours > 0: + eta_str = f"{r_hours}h{r_mins:02d}m" + else: + eta_str = f"{r_mins}m{r_secs:02d}s" + else: + eta_str = "--" + + # Build line + parts = [ + f"{bar_color}{bar}{_RESET}", + f" {_BOLD}{completed}/{total}{_RESET}", + ] + if failed > 0: + parts.append(f" {_RED}({failed} failed){_RESET}") + if self.num_workers > 1 and active > 0: + parts.append(f" {_GRAY}[{active}w]{_RESET}") + parts.append(f" {_GRAY}{time_str} elapsed, ETA {eta_str}{_RESET}") + + return "".join(parts) + + def _log_progress(self) -> None: + """Emit a plain log line (for non-TTY mode).""" + elapsed = time.monotonic() - self._elapsed_start + mins, secs = divmod(int(elapsed), 60) + logger = logging.getLogger("easi.evaluation.progress") + logger.info( + "[Progress] %d/%d episodes (%d failed) — %dm%02ds elapsed", + self._completed, self.total, self._failed, mins, secs, + ) + + @staticmethod + def _get_terminal_width() -> int: + """Get terminal width, with fallback.""" + try: + return os.get_terminal_size(sys.stderr.fileno()).columns + except (ValueError, OSError): + return 80 + + def __enter__(self): + self.start() + return self + + def __exit__(self, *exc): + self.stop() + return False From ce5ba7fd58d4600ba8f600d1cd6fd95bb30315b8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 22:31:50 +0800 Subject: [PATCH 180/239] fix: increase default LLM timeout for local backends to 600s When workers outnumber LLM server instances, requests queue up and can exceed the 120s default timeout. Local backends (vLLM, custom) now default to 600s. Users can still override via --llm-kwargs. --- easi/evaluation/runner.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 3ff46a5..ee6d784 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -544,6 +544,10 @@ def _create_agent(self, action_space: list[str], task_config: dict, yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) merged_kwargs = {**yaml_gen_kwargs, **client_kwargs} + # Local backends need longer timeout (generation is slower than API) + if base_url and "timeout" not in merged_kwargs: + merged_kwargs["timeout"] = 600.0 + llm = LLMClient( model=litellm_model, base_url=base_url, From 3ce43a7b68f673cd87cf52a51460d18c5307d117 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 22:40:25 +0800 Subject: [PATCH 181/239] fix: include model_path in run directory name for custom backend Append HF model path to run_id so different model variants are distinguishable (e.g. qwen3_vl_Qwen_Qwen3-VL-8B-Instruct vs qwen3_vl_Qwen_Qwen3-VL-72B-Instruct). --- easi/evaluation/runner.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index ee6d784..8208649 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -96,6 +96,15 @@ def __init__( timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") + # For custom backend, append model_path to distinguish variants + if self.backend == "custom" and self.llm_kwargs_raw: + from easi.llm.utils import parse_llm_kwargs + model_path = parse_llm_kwargs(self.llm_kwargs_raw).get("model_path", "") + if model_path: + # Use last 2 path components (e.g. Qwen_Qwen3-VL-8B-Instruct) + path_suffix = "_".join(model_path.rstrip("/").split("/")[-2:]) + path_suffix = path_suffix.replace("/", "_") + safe_model = f"{safe_model}_{path_suffix}" self.run_id = f"{timestamp}_{safe_model}" else: self.run_id = timestamp From 5716c397bac7d980457cee62e4363c389c1809c5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 22:44:16 +0800 Subject: [PATCH 182/239] docs: update CLI reference with custom model backend details Add custom backend to LLM options, easi model commands, custom model overview with installation/usage/authoring guide, rename --vllm-* to --llm-* flags, and add custom backend examples. --- docs/cli-reference.md | 177 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 153 insertions(+), 24 deletions(-) diff --git a/docs/cli-reference.md b/docs/cli-reference.md index e6c1d97..d93b3b2 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -41,21 +41,22 @@ easi start [TASK ...] [options] | Option | Description | |---|---| -| `--backend {vllm,openai,anthropic,gemini,dummy}` | LLM backend (required for `react` agent) | -| `--model MODEL` | Model identifier | +| `--backend {vllm,custom,openai,anthropic,gemini,dummy}` | LLM backend (required for `react` agent) | +| `--model MODEL` | Model identifier (HuggingFace ID for `vllm`, registry name for `custom`) | | `--llm-url URL` | LLM server base URL (for external servers) | -| `--port PORT` | Port for local vLLM server (default: 8080) | +| `--port PORT` | Port for local LLM server (default: 8080) | | `--llm-kwargs JSON` | Extra LLM/server kwargs as JSON string | | `--max-retries N` | Max retry attempts on transient LLM errors (default: 3) | **Model identifiers by backend:** -| Backend | Example `--model` values | -|---|---| -| `vllm` | `meta-llama/Llama-2-7b-hf`, `Qwen/Qwen2.5-VL-72B-Instruct` | -| `openai` | `gpt-4o`, `gpt-5.2-2025-12-11` | -| `anthropic` | `claude-sonnet-4-20250514` | -| `gemini` | `gemini-2.0-flash` | +| Backend | Example `--model` values | Description | +|---|---|---| +| `vllm` | `Qwen/Qwen2.5-VL-72B-Instruct` | vLLM-supported HuggingFace models | +| `custom` | `qwen3_vl`, `echo` | Custom model registry name (see `easi model list`) | +| `openai` | `gpt-4o`, `gpt-5.2-2025-12-11` | OpenAI API models | +| `anthropic` | `claude-sonnet-4-20250514` | Anthropic API models | +| `gemini` | `gemini-2.0-flash` | Google Gemini API models | ### Execution Control @@ -66,21 +67,24 @@ easi start [TASK ...] [options] | `--seed SEED` | Random seed for agent reproducibility | | `--render-platform PLATFORM` | Rendering platform override (default: simulator's preference). See [Render Platforms](#render-platforms). | -### GPU Allocation (vLLM backend) +### GPU Allocation (Local Backends) + +These options apply to local LLM backends (`vllm` and `custom`). | Option | Description | |---|---| -| `--vllm-instances N` | Number of vLLM server instances to start (default: 1). Each runs on a subset of `--vllm-gpus`. | -| `--vllm-gpus IDS` | Comma-separated GPU IDs for vLLM inference (e.g., `0,1,2,3`). GPUs are split evenly across instances. | +| `--llm-instances N` | Number of LLM server instances to start (default: 1). Each runs on a subset of `--llm-gpus`. | +| `--llm-gpus IDS` | Comma-separated GPU IDs for LLM inference (e.g., `0,1,2,3`). GPUs are split evenly across instances. | | `--sim-gpus IDS` | Comma-separated GPU IDs for simulator rendering (e.g., `4,5`). Sets `CUDA_VISIBLE_DEVICES` for simulator subprocesses. | **Notes:** -- `--vllm-gpus` is required when `--vllm-instances > 1`. -- `--vllm-gpus` and `--sim-gpus` must not overlap. +- `--llm-gpus` is required when `--llm-instances > 1`. +- `--llm-gpus` and `--sim-gpus` must not overlap. - GPU IDs are validated against hardware at startup (via `nvidia-smi`). -- All vLLM instances start in parallel (processes spawned first, then health-checked concurrently). -- Workers are assigned to vLLM instances via round-robin (e.g., 8 workers across 2 instances → 4 workers per instance). -- These options are ignored with a warning if `--backend` is not `vllm`. +- All LLM instances start in parallel (processes spawned first, then health-checked concurrently). +- Workers are assigned to LLM instances via round-robin (e.g., 8 workers across 2 instances → 4 workers per instance). +- These options are ignored with a warning if `--backend` is not `vllm` or `custom`. +- Local backends use a 600s default timeout (vs 120s for API backends) to handle request queueing when workers outnumber server instances. ### Data & Output @@ -136,8 +140,8 @@ easi start ebalfred_base --agent react --backend vllm \ # Parallel vLLM with 2 instances (TP=2 each) + separate sim GPUs easi start ebalfred_base --agent react --backend vllm \ --model Qwen/Qwen2.5-VL-72B-Instruct \ - --num-parallel 8 --vllm-instances 2 \ - --vllm-gpus 0,1,2,3 --sim-gpus 4,5 \ + --num-parallel 8 --llm-instances 2 \ + --llm-gpus 0,1,2,3 --sim-gpus 4,5 \ --llm-kwargs '{"tensor_parallel_size": 2}' # External multi-URL vLLM (pre-started servers, no auto-management) @@ -145,6 +149,22 @@ easi start ebalfred_base --agent react --backend vllm \ --model Qwen/Qwen2.5-VL-72B-Instruct --num-parallel 8 \ --llm-url http://localhost:8000/v1,http://localhost:8001/v1 +# Custom model server (auto-starts, single instance) +easi start ebalfred_base --agent react --backend custom \ + --model qwen3_vl \ + --llm-kwargs '{"model_path": "Qwen/Qwen3-VL-8B-Instruct"}' + +# Custom model with parallel workers and 2 server instances +easi start ebalfred_base --agent react --backend custom \ + --model qwen3_vl --num-parallel 8 \ + --llm-instances 2 --llm-gpus 0,1,2,3 --sim-gpus 4,5 \ + --llm-kwargs '{"model_path": "Qwen/Qwen3-VL-8B-Instruct"}' + +# Custom model with generation kwargs +easi start ebalfred_base --agent react --backend custom \ + --model qwen3_vl \ + --llm-kwargs '{"model_path": "Qwen/Qwen3-VL-8B-Instruct", "temperature": 0.7, "max_tokens": 2048}' + # Multiple tasks easi start ebalfred_base ebnavigation_base --agent react \ --backend openai --model gpt-4o @@ -170,7 +190,7 @@ easi start ebalfred_base --agent dummy --verbosity TRACE ### Output Structure ``` -//_/ +//_[_]/ ├── config.json # CLI options + resolved configuration ├── summary.json # Aggregated metrics └── episodes/ @@ -198,10 +218,11 @@ easi start ebalfred_base --agent dummy --verbosity TRACE ### Notes -- `--num-parallel > 1` requires an API backend (`openai`, `anthropic`, `gemini`). It uses a thread pool with one simulator per thread. -- When using `--backend vllm` without `--llm-url`, a local vLLM server is auto-started and stopped after evaluation. +- `--num-parallel > 1` works with any backend. It uses a thread pool with one simulator per thread. +- When using `--backend vllm` or `--backend custom` without `--llm-url`, local server(s) are auto-started and stopped after evaluation. - `--resume` cannot be combined with multiple tasks. -- `--llm-kwargs` is split into server kwargs (e.g., `tensor_parallel_size`, `dtype`) and generation kwargs (e.g., `temperature`, `max_tokens`). +- `--llm-kwargs` is split into server kwargs (e.g., `tensor_parallel_size`, `dtype`, `model_path`) and generation kwargs (e.g., `temperature`, `max_tokens`). Server kwargs are passed to the server process; generation kwargs are sent per-request. +- For `--backend custom`, `model_path` in `--llm-kwargs` specifies the HuggingFace model ID or local path to weights. The `--model` flag selects which custom model class to use from the registry. --- @@ -368,6 +389,114 @@ Executes `MoveAhead` for each step and reports observations and rewards. --- +## `easi model` — Manage Custom Models + +### `easi model list` + +List all custom models discovered in the registry. + +```bash +easi model list +``` + +Output shows each model name and its display name. + +--- + +### `easi model info ` + +Display detailed information about a custom model. + +```bash +easi model info qwen3_vl +``` + +Shows model name, display name, description, model class, and default kwargs. + +--- + +### Custom Model Overview + +Custom models allow running model architectures not supported by vLLM. Each model is defined by: + +1. **A Python class** extending `BaseModelServer` with `load()`, `generate()`, and `unload()` methods +2. **A `manifest.yaml`** file for auto-discovery by the registry + +Models live in `easi/llm/models//` and are auto-discovered at startup. + +**Built-in custom models:** + +| Name | Description | +|---|---| +| `echo` | Echoes input back (testing) | +| `qwen3_vl` | Qwen3-VL vision-language model (8B, 72B, etc.) | + +**Installation:** + +Custom models require additional dependencies not included in the base install: + +```bash +pip install -e ".[custom-models]" +``` + +This installs `torch`, `transformers`, `accelerate`, `fastapi`, `uvicorn`, and `Pillow`. + +**How it works:** + +When you run `--backend custom --model `: +1. The registry looks up the model class from `easi/llm/models//manifest.yaml` +2. A FastAPI HTTP server is started as a subprocess, loading the model +3. The server exposes an OpenAI-compatible `/v1/chat/completions` endpoint +4. LiteLLM connects to it transparently via the `openai/` prefix +5. Manifest `default_kwargs` (e.g., `dtype`, `attn_implementation`) are merged with CLI `--llm-kwargs` + +**Adding a new custom model:** + +Create a directory under `easi/llm/models/` with: + +``` +easi/llm/models/my_model/ +├── __init__.py +├── manifest.yaml +└── model.py +``` + +`manifest.yaml`: +```yaml +name: my_model +display_name: "My Custom Model" +description: "Description of the model" +model_class: "easi.llm.models.my_model.model.MyModel" +default_kwargs: + dtype: "bfloat16" +``` + +`model.py`: +```python +from easi.llm.models.base_model_server import BaseModelServer + +class MyModel(BaseModelServer): + def load(self, model_path: str, device: str, **kwargs) -> None: + # Load model weights + ... + + def generate(self, messages: list[dict], **kwargs) -> str: + # messages are in OpenAI format (with image_url for vision) + # Return generated text + ... + + def unload(self) -> None: + # Release GPU memory + ... +``` + +Helper utilities are available in `easi.llm.models.helpers`: +- `extract_images(messages)` — Extract PIL Images from base64 image_url entries +- `extract_text_only(messages)` — Concatenate all text content +- `extract_by_role(messages)` — Group text by role + +--- + ## `easi llm-server` — Dummy LLM Server Start a minimal OpenAI-compatible dummy LLM server for testing. @@ -455,7 +584,7 @@ The CLI itself does not use environment variables, but the LLM backends require | `ANTHROPIC_API_KEY` | `anthropic` | | `GOOGLE_API_KEY` | `gemini` | -These are handled by the underlying LiteLLM client. +These are handled by the underlying LiteLLM client. The `vllm` and `custom` backends do not require API keys (a dummy key is used automatically for the local OpenAI-compatible server). --- From d0bdf39abe394b5602dce8328b5ab0473436d18c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Mon, 9 Mar 2026 23:08:27 +0800 Subject: [PATCH 183/239] fix: address code review issues in custom inference server - Use context manager for ProgressBar to prevent handler leak on exceptions - Offload model.generate() to thread executor in async endpoint - Replace misleading _DTYPE_MAP with _ALLOWED_DTYPES set + warning - Fix race condition on _last_non_tty_log in non-TTY progress updates - Remove redundant self-import in cmd_model - Move json import to module level in server_manager --- easi/cli.py | 1 - easi/evaluation/parallel_runner.py | 5 +---- easi/llm/models/http_server.py | 7 ++++++- easi/llm/models/qwen3_vl/model.py | 19 +++++++------------ easi/llm/server_manager.py | 4 ++-- easi/utils/progress.py | 16 ++++++++++------ 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index f8e09f0..08d0647 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -559,7 +559,6 @@ def cmd_model(args) -> None: logger.info(" Default kwargs: %s", entry.default_kwargs) else: - from easi.cli import build_parser build_parser().parse_args(["model", "--help"]) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index f171cfa..03487bb 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -240,8 +240,6 @@ def run(self) -> list[dict]: num_workers=num_workers, start_index=start_index, ) - progress_bar.start() - def _worker(worker_id: int) -> None: """Worker thread: owns a simulator + agent, pulls episodes from queue.""" logger.trace("[Worker %d] Starting up", worker_id) @@ -387,7 +385,7 @@ def _worker(worker_id: int) -> None: logger.trace("Launching %d worker threads", num_workers) wall_start = time.monotonic() - with ThreadPoolExecutor(max_workers=num_workers) as executor: + with progress_bar, ThreadPoolExecutor(max_workers=num_workers) as executor: futures = [] for wid in range(num_workers): futures.append(executor.submit(_worker, wid)) @@ -398,7 +396,6 @@ def _worker(worker_id: int) -> None: future.result() wall_seconds = round(time.monotonic() - wall_start, 2) - progress_bar.stop() # Merge completed results from resume with new results new_results.sort(key=lambda x: x[0]) diff --git a/easi/llm/models/http_server.py b/easi/llm/models/http_server.py index 260956a..c38cfc8 100644 --- a/easi/llm/models/http_server.py +++ b/easi/llm/models/http_server.py @@ -6,9 +6,11 @@ from __future__ import annotations +import asyncio import json import time import uuid +from functools import partial from typing import Any from easi.utils.logging import get_logger @@ -64,7 +66,10 @@ async def chat_completions(request: dict) -> JSONResponse: # type: ignore[arg-t gen_kwargs[key] = request[key] try: - content = model.generate(messages, **gen_kwargs) + loop = asyncio.get_event_loop() + content = await loop.run_in_executor( + None, partial(model.generate, messages, **gen_kwargs) + ) except Exception as e: logger.error("Generation failed: %s", e, exc_info=True) return JSONResponse( diff --git a/easi/llm/models/qwen3_vl/model.py b/easi/llm/models/qwen3_vl/model.py index e31b5c1..c47bb19 100644 --- a/easi/llm/models/qwen3_vl/model.py +++ b/easi/llm/models/qwen3_vl/model.py @@ -18,13 +18,8 @@ logger = get_logger(__name__) -# Dtype string → torch dtype mapping -_DTYPE_MAP = { - "bfloat16": "bfloat16", - "float16": "float16", - "float32": "float32", - "auto": "auto", -} +# Recognised dtype strings for from_pretrained +_ALLOWED_DTYPES = {"bfloat16", "float16", "float32", "auto"} def _openai_to_qwen_messages(messages: list[dict], images: list) -> list[dict]: @@ -77,11 +72,11 @@ def load(self, model_path: str, device: str, **kwargs) -> None: from transformers import AutoProcessor, Qwen3VLForConditionalGeneration # Resolve torch dtype — newer transformers uses "dtype" instead of "torch_dtype" - dtype_str = kwargs.pop("torch_dtype", kwargs.pop("dtype", "auto")) - if dtype_str in _DTYPE_MAP: - torch_dtype = getattr(torch, dtype_str, "auto") if dtype_str != "auto" else "auto" - else: - torch_dtype = "auto" + dtype_str = kwargs.pop("torch_dtype", None) or kwargs.pop("dtype", "auto") + if dtype_str not in _ALLOWED_DTYPES: + logger.warning("Unrecognised dtype '%s', falling back to 'auto'", dtype_str) + dtype_str = "auto" + torch_dtype = getattr(torch, dtype_str, "auto") if dtype_str != "auto" else "auto" attn_impl = kwargs.pop("attn_implementation", None) diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 2917c68..ec20ff9 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -4,6 +4,7 @@ """ from __future__ import annotations +import json import os import socket import subprocess @@ -176,8 +177,7 @@ def _build_command(self) -> tuple[list[str], dict]: "--port", str(self.port), ] if extra_kwargs: - import json as _json - cmd.extend(["--kwargs", _json.dumps(extra_kwargs)]) + cmd.extend(["--kwargs", json.dumps(extra_kwargs)]) else: raise ValueError(f"Unsupported server backend: {self.backend}") diff --git a/easi/utils/progress.py b/easi/utils/progress.py index 2b3b1da..856d2d2 100644 --- a/easi/utils/progress.py +++ b/easi/utils/progress.py @@ -140,6 +140,7 @@ def update( active_workers: Number of currently active worker threads. """ + do_log = False with self._lock: if completed is not None: self._completed = completed @@ -148,12 +149,15 @@ def update( if active_workers is not None: self._active_workers = active_workers - # Non-TTY: emit periodic log lines - if not self._is_tty: - now = time.monotonic() - if now - self._last_non_tty_log >= _NON_TTY_LOG_INTERVAL: - self._last_non_tty_log = now - self._log_progress() + # Non-TTY: emit periodic log lines + if not self._is_tty: + now = time.monotonic() + if now - self._last_non_tty_log >= _NON_TTY_LOG_INTERVAL: + self._last_non_tty_log = now + do_log = True + + if do_log: + self._log_progress() def _refresh_loop(self) -> None: """Background thread: periodically redraw the bar.""" From ab04b0b7bdf84b1a731c55aea3b1a3d942f856cc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 10:57:34 +0800 Subject: [PATCH 184/239] fix: audit issues 1-2 + add easi ps command - Fix metric denominator bug: average over all episodes, not just those that emitted the key (inflated metrics when episodes fail) - Add effective_episodes field to summary.json - Narrow response_format fallback to BadRequestError only (transient errors no longer permanently disable response_format) - Add easi ps command to list/kill orphaned EASI processes - Update CLI reference with easi ps docs --- docs/cli-reference.md | 38 ++++++++ easi/agents/react_agent.py | 18 +++- easi/cli.py | 134 +++++++++++++++++++++++++++++ easi/evaluation/metrics.py | 6 +- easi/evaluation/parallel_runner.py | 7 +- easi/evaluation/runner.py | 7 +- tests/test_cli.py | 11 +++ tests/test_metrics.py | 17 ++++ tests/test_prompt_parity.py | 6 +- tests/test_react_agent.py | 11 ++- 10 files changed, 245 insertions(+), 10 deletions(-) diff --git a/docs/cli-reference.md b/docs/cli-reference.md index d93b3b2..31f189a 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -497,6 +497,44 @@ Helper utilities are available in `easi.llm.models.helpers`: --- +## `easi ps` — Show EASI Processes + +List all running EASI-related processes (LLM servers, simulator bridges) and optionally kill them. + +``` +easi ps [--kill] +``` + +| Option | Description | +|---|---| +| `--kill` | Send SIGTERM (then SIGKILL) to all found EASI processes | + +**Detected process types:** + +| Type | Description | +|---|---| +| `http_server` | Custom model server (`easi.llm.models.http_server`) | +| `api_server` | vLLM server (`vllm.entrypoints.openai.api_server`) | +| `dummy_server` | Dummy LLM server (`easi.llm.dummy_server`) | +| `bridge` | Simulator bridge subprocess | + +**Output includes:** +- PID, status, CPU%, MEM%, process type, and command +- `[ZOMBIE]` tag for zombie processes +- GPU memory held by EASI processes (via `nvidia-smi`) + +**Examples:** + +```bash +# List all EASI processes +easi ps + +# Kill all orphaned EASI processes (e.g., after Ctrl+C) +easi ps --kill +``` + +--- + ## `easi llm-server` — Dummy LLM Server Start a minimal OpenAI-compatible dummy LLM server for testing. diff --git a/easi/agents/react_agent.py b/easi/agents/react_agent.py index 78e8f63..516a6de 100644 --- a/easi/agents/react_agent.py +++ b/easi/agents/react_agent.py @@ -14,6 +14,22 @@ logger = get_logger(__name__) +# Exception types that indicate response_format is unsupported by the backend. +# Lazy-resolved on first use to avoid importing litellm at module level. +_FORMAT_UNSUPPORTED_ERRORS: tuple[type[Exception], ...] | None = None + + +def _get_format_unsupported_errors() -> tuple[type[Exception], ...]: + """Return exception types for unsupported response_format.""" + global _FORMAT_UNSUPPORTED_ERRORS + if _FORMAT_UNSUPPORTED_ERRORS is None: + try: + from litellm.exceptions import BadRequestError + _FORMAT_UNSUPPORTED_ERRORS = (BadRequestError,) + except ImportError: + _FORMAT_UNSUPPORTED_ERRORS = () + return _FORMAT_UNSUPPORTED_ERRORS + def _format_messages_for_log(messages: list[dict]) -> str: """Extract readable text from OpenAI-format messages for logging.""" @@ -152,7 +168,7 @@ def _generate_with_fallback( try: return self.llm_client.generate(messages, response_format=response_format) - except Exception as e: + except _get_format_unsupported_errors() as e: logger.warning( "response_format not supported by backend, " "falling back to prompt-only: %s", e, diff --git a/easi/cli.py b/easi/cli.py index 08d0647..f636b56 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -143,6 +143,10 @@ def build_parser() -> argparse.ArgumentParser: model_info_parser = model_sub.add_parser("info", help="Show model details", parents=[common]) model_info_parser.add_argument("model_name", help="Model name") + # --- ps command --- + ps_parser = subparsers.add_parser("ps", help="Show EASI-related processes (bridges, LLM servers)", parents=[common]) + ps_parser.add_argument("--kill", action="store_true", help="Kill all found EASI processes") + # --- llm-server command --- llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) llm_parser.add_argument("--port", type=int, default=8000) @@ -538,6 +542,133 @@ def cmd_llm_server(host: str, port: int, mode: str, action_space: list[str]) -> run_server(host=host, port=port, mode=mode, action_space=action_space) +def cmd_ps(kill: bool = False) -> None: + """Show (and optionally kill) EASI-related processes.""" + import os + import signal + import subprocess + + # Patterns that identify EASI-spawned processes + patterns = [ + "easi.llm.models.http_server", # custom model server + "vllm.entrypoints.openai.api_server", # vLLM server + "easi.llm.dummy_server", # dummy LLM server + ] + # Also match bridge scripts by looking for bridge.py in easi paths + bridge_pattern = "easi/simulators/.*/bridge.py|easi/tasks/.*/bridge.py" + + my_pid = os.getpid() + + # Use ps to find matching processes + try: + result = subprocess.run( + ["ps", "aux"], + capture_output=True, text=True, timeout=10, + ) + except (FileNotFoundError, subprocess.TimeoutExpired): + logger.error("Failed to run 'ps aux'") + return + + found: list[dict] = [] + for line in result.stdout.strip().splitlines()[1:]: # skip header + parts = line.split(None, 10) + if len(parts) < 11: + continue + pid = int(parts[1]) + if pid == my_pid: + continue + cmd_str = parts[10] + stat = parts[7] + + matched_pattern = None + for pattern in patterns: + if pattern in cmd_str: + matched_pattern = pattern + break + if matched_pattern is None: + import re + if re.search(bridge_pattern, cmd_str): + matched_pattern = "bridge" + + if matched_pattern is None: + continue + + is_zombie = "Z" in stat + found.append({ + "pid": pid, + "user": parts[0], + "stat": stat, + "cpu": parts[2], + "mem": parts[3], + "start": parts[8], + "command": cmd_str[:120], + "pattern": matched_pattern, + "zombie": is_zombie, + }) + + if not found: + logger.info("No EASI-related processes found.") + return + + # Display + logger.info("Found %d EASI-related process(es):\n", len(found)) + logger.info(" %-7s %-6s %-5s %-5s %-8s %s", "PID", "STAT", "CPU%", "MEM%", "TYPE", "COMMAND") + logger.info(" %s", "-" * 80) + for p in found: + zombie_tag = " [ZOMBIE]" if p["zombie"] else "" + ptype = p["pattern"].split(".")[-1] if "." in p["pattern"] else p["pattern"] + logger.info( + " %-7d %-6s %-5s %-5s %-8s %s%s", + p["pid"], p["stat"], p["cpu"], p["mem"], ptype, p["command"][:60], zombie_tag, + ) + + # GPU usage summary + try: + gpu_result = subprocess.run( + ["nvidia-smi", "--query-compute-apps=pid,gpu_uuid,used_memory", + "--format=csv,noheader,nounits"], + capture_output=True, text=True, timeout=10, + ) + if gpu_result.returncode == 0 and gpu_result.stdout.strip(): + easi_pids = {p["pid"] for p in found} + gpu_lines = [] + for line in gpu_result.stdout.strip().splitlines(): + parts = [x.strip() for x in line.split(",")] + if len(parts) >= 3: + gpu_pid = int(parts[0]) + if gpu_pid in easi_pids: + gpu_lines.append((gpu_pid, parts[1][:12], parts[2])) + if gpu_lines: + logger.info("\n GPU memory held by EASI processes:") + for gpu_pid, gpu_id, mem_mb in gpu_lines: + logger.info(" PID %-7d GPU %s %s MiB", gpu_pid, gpu_id, mem_mb) + except (FileNotFoundError, subprocess.TimeoutExpired): + pass # no nvidia-smi + + # Kill if requested + if kill: + logger.info("") + for p in found: + try: + os.kill(p["pid"], signal.SIGTERM) + logger.info(" Sent SIGTERM to PID %d (%s)", p["pid"], p["pattern"]) + except ProcessLookupError: + logger.info(" PID %d already exited", p["pid"]) + except PermissionError: + logger.warning(" Cannot kill PID %d (permission denied)", p["pid"]) + # Wait briefly then SIGKILL any survivors + import time + time.sleep(2) + for p in found: + try: + os.kill(p["pid"], 0) # check if still alive + os.kill(p["pid"], signal.SIGKILL) + logger.info(" Sent SIGKILL to PID %d", p["pid"]) + except (ProcessLookupError, PermissionError): + pass + logger.info(" Done.") + + def cmd_model(args) -> None: from easi.llm.models.registry import get_model_entry, list_models @@ -614,6 +745,9 @@ def _main() -> None: elif args.command == "start": cmd_start(args) + elif args.command == "ps": + cmd_ps(kill=args.kill) + elif args.command == "model": cmd_model(args) diff --git a/easi/evaluation/metrics.py b/easi/evaluation/metrics.py index 100be28..00fd2bf 100644 --- a/easi/evaluation/metrics.py +++ b/easi/evaluation/metrics.py @@ -26,9 +26,11 @@ def default_aggregate(records: list[EpisodeRecord]) -> dict: if isinstance(value, (int, float)): numeric_keys.setdefault(key, []).append(float(value)) - # Average each numeric metric + # Average each numeric metric over ALL episodes (not just those that emitted the key). + # Failed episodes may not emit task-specific keys — they should contribute 0, not be excluded. + total = len(records) for key, values in numeric_keys.items(): - summary[f"avg_{key}"] = round(sum(values) / len(values), 4) + summary[f"avg_{key}"] = round(sum(values) / total, 4) # Convenience aliases if "avg_success" in summary: diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 03487bb..1fd7a76 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -426,7 +426,12 @@ def _worker(worker_id: int) -> None: # Aggregate and save summary metric_results = task.aggregate_results(records) - summary = {"num_episodes": len(all_results), "metrics": metric_results} + effective = sum(1 for r in all_results if "error" not in r) + summary = { + "num_episodes": len(all_results), + "effective_episodes": effective, + "metrics": metric_results, + } summary["num_parallel"] = self.num_parallel summary["wall_clock_seconds"] = wall_seconds if backend and backend != "legacy": diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 8208649..5338045 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -312,7 +312,12 @@ def run(self) -> list[dict]: # 6. Aggregate and save summary metric_results = task.aggregate_results(records) - summary = {"num_episodes": len(all_results), "metrics": metric_results} + effective = sum(1 for r in all_results if "error" not in r) + summary = { + "num_episodes": len(all_results), + "effective_episodes": effective, + "metrics": metric_results, + } if backend and backend != "legacy": summary["llm_usage"] = self._aggregate_llm_usage(all_results) summary["model"] = self.model diff --git a/tests/test_cli.py b/tests/test_cli.py index 8de70ba..29f0521 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -35,6 +35,17 @@ def test_cli_parses_comma_separated_llm_url(): assert args.llm_base_url == "http://localhost:8000/v1,http://localhost:8001/v1" +def test_cli_ps_subcommand(): + from easi.cli import build_parser + parser = build_parser() + args = parser.parse_args(["ps"]) + assert args.command == "ps" + assert args.kill is False + + args_kill = parser.parse_args(["ps", "--kill"]) + assert args_kill.kill is True + + def test_cli_model_list_subcommand(): from easi.cli import build_parser parser = build_parser() diff --git a/tests/test_metrics.py b/tests/test_metrics.py index d6591ee..fb871da 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -61,6 +61,21 @@ def test_ignores_non_numeric_keys_in_episode_results(self): assert "avg_task_success" in agg assert "avg_note" not in agg + def test_missing_keys_count_as_zero(self): + """Failed episodes missing task-specific keys should not inflate averages.""" + from easi.evaluation.metrics import default_aggregate + records = [ + EpisodeRecord({}, [], {"task_success": 1.0, "spl": 0.8, "num_steps": 10.0}), + EpisodeRecord({}, [], {"task_success": 1.0, "spl": 0.6, "num_steps": 5.0}), + # Failed episode: only has success and num_steps, no spl + EpisodeRecord({}, [], {"task_success": 0.0, "num_steps": 0.0}), + ] + agg = default_aggregate(records) + # spl should be averaged over 3 episodes (0.8 + 0.6 + 0) / 3 = 0.4667 + assert agg["avg_spl"] == round((0.8 + 0.6) / 3, 4) + # task_success averaged over 3: (1 + 1 + 0) / 3 = 0.6667 + assert agg["avg_task_success"] == round(2.0 / 3, 4) + def test_convenience_aliases(self): from easi.evaluation.metrics import default_aggregate records = [ @@ -166,6 +181,8 @@ def test_metrics_nested_in_summary(self, tmp_path): # Metadata should be at top level assert summary["num_episodes"] == 2 + assert "effective_episodes" in summary + assert summary["effective_episodes"] <= summary["num_episodes"] # Metric keys should NOT be at the top level assert "avg_success" not in summary diff --git a/tests/test_prompt_parity.py b/tests/test_prompt_parity.py index c2a55e1..2ae0780 100644 --- a/tests/test_prompt_parity.py +++ b/tests/test_prompt_parity.py @@ -193,7 +193,7 @@ def __init__(self): self.call_count = 0 self.last_messages = None - def generate(self, messages): + def generate(self, messages, **kwargs): self.call_count += 1 self.last_messages = messages return json.dumps({ @@ -262,7 +262,7 @@ def test_buffer_cleared_on_invalid(self, mock_llm): from easi.agents.react_agent import ReActAgent # LLM returns multi-action plan - mock_llm.generate = lambda msgs: json.dumps({ + mock_llm.generate = lambda msgs, **kwargs: json.dumps({ "executable_plan": [ {"action_id": 14, "action_name": "find a Mug"}, {"action_id": 0, "action_name": "find a Cart"}, @@ -289,7 +289,7 @@ def test_json_repair_applied(self): from easi.agents.react_agent import ReActAgent class MockLLMWithBadJson: - def generate(self, messages): + def generate(self, messages, **kwargs): return "{'visual_state_description': 'room', 'reasoning_and_reflection': 'think', 'language_plan': 'plan', 'executable_plan': [{'action_id': 14, 'action_name': 'find a Mug'}]}" actions = get_global_action_space() diff --git a/tests/test_react_agent.py b/tests/test_react_agent.py index a55e24d..07b79fd 100644 --- a/tests/test_react_agent.py +++ b/tests/test_react_agent.py @@ -2,6 +2,7 @@ import json import pytest +from litellm.exceptions import BadRequestError from easi.agents.prompt_builder import DefaultPromptBuilder, PromptBuilderProtocol from easi.agents.react_agent import ReActAgent @@ -318,7 +319,10 @@ def generate(self, messages, response_format=None): self.call_count += 1 call_log.append(response_format) if response_format is not None: - raise Exception("response_format not supported") + raise BadRequestError( + "response_format not supported", + model="test", llm_provider="openai", + ) return json.dumps({ "executable_plan": [{"action": "MoveAhead"}], }) @@ -348,7 +352,10 @@ def generate(self, messages, response_format=None): self.call_count += 1 call_log.append(response_format) if response_format is not None: - raise Exception("not supported") + raise BadRequestError( + "not supported", + model="test", llm_provider="openai", + ) return json.dumps({ "executable_plan": [{"action": "MoveAhead"}], }) From e6fedfa6b67dbc7c8923dbd90f439b62848bf406 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 11:35:34 +0800 Subject: [PATCH 185/239] fix: process cleanup, worker safety, aggregation guard, resume data - Use os.setsid/os.killpg in ServerManager to kill entire process group (fixes orphaned vLLM tensor-parallel workers holding GPU memory) - Move simulator/agent creation inside try/finally in parallel worker (fixes bridge process leak when agent creation fails) - Wrap aggregate_results() in try/except to save degraded summary.json on failure instead of losing multi-hour run results - Re-attach trajectory and episode data on resume via trajectory.jsonl (fixes empty trajectory for custom aggregate_results implementations) --- easi/evaluation/parallel_runner.py | 64 ++++++++++++++++-------------- easi/evaluation/runner.py | 40 ++++++++++++++++++- easi/llm/server_manager.py | 24 ++++++++--- 3 files changed, 93 insertions(+), 35 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 1fd7a76..2b43b12 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -180,6 +180,7 @@ def run(self) -> list[dict]: completed_results, start_index = self._load_completed_results( run_dir, len(episodes), ) + self._reattach_resume_data(completed_results, episodes, run_dir) logger.info( "Resuming from %s — %d completed, starting from index %d", run_dir, len(completed_results), start_index, @@ -244,32 +245,32 @@ def _worker(worker_id: int) -> None: """Worker thread: owns a simulator + agent, pulls episodes from queue.""" logger.trace("[Worker %d] Starting up", worker_id) episodes_done = 0 - - # Create simulator - logger.trace( - "[Worker %d] Creating simulator (key=%s)", - worker_id, task.simulator_key, - ) - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, label=f"bridge-{worker_id}", - ) - logger.trace( - "[Worker %d] Simulator ready (PID=%s)", - worker_id, - getattr(sim_runner, 'pid', 'unknown'), - ) - - # Create agent - logger.trace("[Worker %d] Creating agent", worker_id) - # Round-robin URL assignment - worker_url = base_urls[worker_id % len(base_urls)] - agent = self._create_agent( - task.action_space, task._config, - backend=backend, base_url=worker_url, - ) - logger.trace("[Worker %d] Agent ready", worker_id) + sim = None try: + # Create simulator + logger.trace( + "[Worker %d] Creating simulator (key=%s)", + worker_id, task.simulator_key, + ) + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, label=f"bridge-{worker_id}", + ) + logger.trace( + "[Worker %d] Simulator ready (PID=%s)", + worker_id, + getattr(sim_runner, 'pid', 'unknown'), + ) + + # Create agent + logger.trace("[Worker %d] Creating agent", worker_id) + # Round-robin URL assignment + worker_url = base_urls[worker_id % len(base_urls)] + agent = self._create_agent( + task.action_space, task._config, + backend=backend, base_url=worker_url, + ) + logger.trace("[Worker %d] Agent ready", worker_id) while True: # Pull next episode try: @@ -372,10 +373,11 @@ def _worker(worker_id: int) -> None: finally: logger.trace("[Worker %d] Shutting down simulator", worker_id) - try: - sim.close() - except Exception: - pass + if sim is not None: + try: + sim.close() + except Exception: + pass logger.trace( "[Worker %d] Shutdown complete (%d episodes done)", worker_id, episodes_done, @@ -425,8 +427,12 @@ def _worker(worker_id: int) -> None: )) # Aggregate and save summary - metric_results = task.aggregate_results(records) effective = sum(1 for r in all_results if "error" not in r) + try: + metric_results = task.aggregate_results(records) + except Exception as exc: + logger.error("aggregate_results() failed: %s", exc, exc_info=True) + metric_results = {"aggregation_error": str(exc)} summary = { "num_episodes": len(all_results), "effective_episodes": effective, diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 5338045..b6b9011 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -159,6 +159,7 @@ def run(self) -> list[dict]: # Handle resume: load completed results and find start point if self.resume_dir: all_results, start_index = self._load_completed_results(run_dir, len(episodes)) + self._reattach_resume_data(all_results, episodes, run_dir) logger.info( "Resuming from %s — %d completed episodes, starting from index %d", run_dir, len(all_results), start_index, @@ -311,8 +312,12 @@ def run(self) -> list[dict]: )) # 6. Aggregate and save summary - metric_results = task.aggregate_results(records) effective = sum(1 for r in all_results if "error" not in r) + try: + metric_results = task.aggregate_results(records) + except Exception as exc: + logger.error("aggregate_results() failed: %s", exc, exc_info=True) + metric_results = {"aggregation_error": str(exc)} summary = { "num_episodes": len(all_results), "effective_episodes": effective, @@ -386,6 +391,39 @@ def _load_completed_results(self, run_dir: Path, total_episodes: int) -> tuple[l return completed_results, start_index + @staticmethod + def _reattach_resume_data( + completed_results: list[dict], + episodes: list[dict], + run_dir: Path, + ) -> None: + """Re-attach trajectory and episode data to resumed results. + + On resume, result.json lacks ``_trajectory`` and ``_episode`` (they are + stripped on save). This method reads ``trajectory.jsonl`` from each + episode dir and pairs results with the original episode dicts so that + ``aggregate_results()`` has access to the full data. + """ + episodes_dir = run_dir / "episodes" + episode_dirs = sorted( + [d for d in episodes_dir.iterdir() if d.is_dir()], + key=lambda d: d.name, + ) + for idx, result in enumerate(completed_results): + # Attach episode from the loaded episode list + if idx < len(episodes): + result["_episode"] = episodes[idx] + + # Read trajectory from trajectory.jsonl + if idx < len(episode_dirs): + traj_file = episode_dirs[idx] / "trajectory.jsonl" + if traj_file.exists(): + try: + lines = traj_file.read_text().strip().splitlines() + result["_trajectory"] = [json.loads(l) for l in lines] + except (json.JSONDecodeError, OSError): + result["_trajectory"] = [] + def _run_episode( self, sim, agent, task, episode: dict, index: int, episode_dir: Path, ) -> dict: diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index ec20ff9..91cb91f 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -6,6 +6,7 @@ import json import os +import signal import socket import subprocess import sys @@ -87,6 +88,7 @@ def launch(self) -> None: stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=spawn_env, + preexec_fn=os.setsid, ) self._log_thread = threading.Thread( target=self._stream_output, @@ -103,15 +105,27 @@ def wait_until_ready(self) -> str: return base_url def stop(self) -> None: - """Terminate the server process.""" + """Terminate the server process and all its children. + + Uses process-group kill (SIGTERM → SIGKILL) to ensure child + processes (e.g., vLLM tensor-parallel workers) are cleaned up. + """ if self._process is not None: - logger.info("[%s] Stopping %s server (pid=%d)", self.label, self.backend, self._process.pid) - self._process.terminate() + pid = self._process.pid + logger.info("[%s] Stopping %s server (pid=%d)", self.label, self.backend, pid) + try: + pgid = os.getpgid(pid) + os.killpg(pgid, signal.SIGTERM) + except (ProcessLookupError, PermissionError): + pass # already dead try: self._process.wait(timeout=30) except subprocess.TimeoutExpired: - logger.warning("[%s] Server did not terminate, killing...", self.label) - self._process.kill() + logger.warning("[%s] Server did not terminate, killing process group...", self.label) + try: + os.killpg(os.getpgid(pid), signal.SIGKILL) + except (ProcessLookupError, PermissionError): + self._process.kill() self._process.wait(timeout=10) self._process = None if self._log_thread is not None: From 6f950592d05fc312aa136384204939a2e89624bc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 11:47:38 +0800 Subject: [PATCH 186/239] fix: handle simulator restart failure in retry path - Wrap _create_simulator() in retry path with try/except in both runners - On restart failure, assign error result and stop worker gracefully - Guard sim.close() against None in sequential runner finally block - Prevents silently dropped episodes from evaluation results --- easi/evaluation/parallel_runner.py | 31 ++++++++++++++++++++++++++---- easi/evaluation/runner.py | 29 ++++++++++++++++++++++++---- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 2b43b12..621fd69 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -324,10 +324,26 @@ def _worker(worker_id: int) -> None: sim.close() except Exception: pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, - label=f"bridge-{worker_id}", - ) + try: + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + label=f"bridge-{worker_id}", + ) + except Exception as restart_exc: + logger.error( + "[Worker %d] Simulator restart failed: %s", + worker_id, restart_exc, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": f"simulator restart failed: {restart_exc}", + } + sim = None + break else: logger.error( "[Worker %d] Episode %s failed after %d attempts, skipping", @@ -371,6 +387,13 @@ def _worker(worker_id: int) -> None: episodes_done += 1 + # If simulator restart failed, stop this worker + if sim is None: + logger.warning( + "[Worker %d] No simulator, stopping worker", worker_id, + ) + break + finally: logger.trace("[Worker %d] Shutting down simulator", worker_id) if sim is not None: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index b6b9011..27beb38 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -258,9 +258,24 @@ def run(self) -> list[dict]: sim.close() except Exception: pass - sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, - ) + try: + sim, sim_runner = self._create_simulator( + task.simulator_key, task=task, + ) + except Exception as restart_exc: + logger.error( + "Simulator restart failed: %s", restart_exc, + ) + result = { + "episode_id": episode_id, + "instruction": task.get_instruction(episode), + "success": 0.0, + "num_steps": 0, + "elapsed_seconds": 0.0, + "error": f"simulator restart failed: {restart_exc}", + } + sim = None + break else: logger.error( "Episode %s failed after %d attempts, skipping", @@ -293,9 +308,15 @@ def run(self) -> list[dict]: json.dumps(result_to_save, indent=2) ) + # If simulator restart failed, stop evaluation + if sim is None: + logger.error("No simulator available, stopping evaluation early.") + break + finally: progress_bar.stop() - sim.close() + if sim is not None: + sim.close() finally: if server: server.stop() From 972e46e8c4f8b341fb9cd00778b482a49385f7b4 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 14:54:45 +0800 Subject: [PATCH 187/239] feat: add XorgPlatform render platform --- easi/core/xorg_platform.py | 35 +++++++++++++++++++++++++++++++++++ tests/test_xorg.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 easi/core/xorg_platform.py create mode 100644 tests/test_xorg.py diff --git a/easi/core/xorg_platform.py b/easi/core/xorg_platform.py new file mode 100644 index 0000000..5898e2a --- /dev/null +++ b/easi/core/xorg_platform.py @@ -0,0 +1,35 @@ +"""Xorg render platform — GPU-accelerated X11 display managed by EASI.""" + +from __future__ import annotations + +from easi.core.render_platform import EnvVars, RenderPlatform + + +class XorgPlatform(RenderPlatform): + """Render platform backed by a managed Xorg server on a specific GPU. + + Each worker gets its own ``XorgPlatform`` instance with a dedicated + display number and GPU ID, set by the ``XorgManager``. + """ + + def __init__(self, display_num: int, gpu_id: int): + super().__init__() + self.display_num = display_num + self.gpu_id = gpu_id + + @property + def name(self) -> str: + return "xorg" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def get_env_vars(self) -> EnvVars: + return EnvVars(replace={ + "DISPLAY": f":{self.display_num}", + "CUDA_VISIBLE_DEVICES": str(self.gpu_id), + "EASI_GPU_DISPLAY": "1", + }) + + def is_available(self) -> bool: + return True diff --git a/tests/test_xorg.py b/tests/test_xorg.py new file mode 100644 index 0000000..851ced7 --- /dev/null +++ b/tests/test_xorg.py @@ -0,0 +1,35 @@ +"""Tests for Xorg render platform and manager.""" + +from __future__ import annotations + + +class TestXorgPlatform: + """Test XorgPlatform env vars and command wrapping.""" + + def test_name(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform(display_num=10, gpu_id=4) + assert p.name == "xorg" + + def test_env_vars(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform(display_num=10, gpu_id=4) + ev = p.get_env_vars() + assert ev.replace["DISPLAY"] == ":10" + assert ev.replace["CUDA_VISIBLE_DEVICES"] == "4" + assert ev.replace["EASI_GPU_DISPLAY"] == "1" + + def test_wrap_command_passthrough(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform(display_num=10, gpu_id=4) + cmd = ["python", "bridge.py", "--workspace", "/tmp"] + assert p.wrap_command(cmd, "1024x768x24") == cmd + + def test_is_available(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform(display_num=10, gpu_id=4) + assert p.is_available() is True From 0bf9c84e2ab842655f0833c226f33ff80c66a6b0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 14:58:39 +0800 Subject: [PATCH 188/239] feat: add XorgManager for Xorg server lifecycle --- easi/core/xorg_manager.py | 244 ++++++++++++++++++++++++++++++++++++++ tests/test_xorg.py | 159 +++++++++++++++++++++++++ 2 files changed, 403 insertions(+) create mode 100644 easi/core/xorg_manager.py diff --git a/easi/core/xorg_manager.py b/easi/core/xorg_manager.py new file mode 100644 index 0000000..6041c8f --- /dev/null +++ b/easi/core/xorg_manager.py @@ -0,0 +1,244 @@ +"""Manages lifecycle of Xorg servers for GPU-accelerated rendering. + +Starts one Xorg per GPU, waits for health, stops on exit. +Follows the same lifecycle pattern as ``easi.llm.server_manager.ServerManager``. +""" + +from __future__ import annotations + +import os +import shutil +import signal +import subprocess +import time +from typing import NamedTuple + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +_STARTUP_TIMEOUT = 10.0 +_HEALTH_POLL_INTERVAL = 0.5 + + +class XorgInstance(NamedTuple): + """A running Xorg server bound to a GPU.""" + display: int + gpu_id: int + pid: int + + +def _find_available_display(start: int, max_probe: int = 50) -> int: + """Find the first available X display number starting from *start*.""" + for num in range(start, start + max_probe): + lock_file = f"/tmp/.X{num}-lock" + if not os.path.exists(lock_file): + return num + raise RuntimeError( + f"No available X display in range :{start}-:{start + max_probe - 1}" + ) + + +def _get_pci_bus_id(gpu_index: int) -> str: + """Query PCI BusID for a GPU via nvidia-smi, return Xorg format (PCI:B:D:F).""" + result = subprocess.run( + ["nvidia-smi", "--query-gpu=pci.bus_id", "--format=csv,noheader", + "-i", str(gpu_index)], + capture_output=True, text=True, timeout=10, + ) + if result.returncode != 0 or not result.stdout.strip(): + raise RuntimeError( + f"nvidia-smi failed for GPU {gpu_index}: {result.stderr.strip()}" + ) + + raw = result.stdout.strip() + # Format: 00000000:3F:00.0 → strip domain, parse hex bus:dev.func + no_domain = raw.split(":", 1)[1] # "3F:00.0" + bus_hex, rest = no_domain.split(":", 1) # "3F", "00.0" + dev_hex, func = rest.split(".", 1) # "00", "0" + bus_dec = int(bus_hex, 16) + dev_dec = int(dev_hex, 16) + return f"PCI:{bus_dec}:{dev_dec}:{func}" + + +def _write_xorg_conf(gpu_index: int, pci_bus_id: str) -> str: + """Write a minimal xorg.conf and return its path.""" + conf_path = f"/tmp/easi-xorg-gpu{gpu_index}.conf" + conf = f"""\ +Section "Device" + Identifier "Device{gpu_index}" + Driver "nvidia" + BusID "{pci_bus_id}" + Option "AllowEmptyInitialConfiguration" "True" +EndSection + +Section "Screen" + Identifier "Screen{gpu_index}" + Device "Device{gpu_index}" + DefaultDepth 24 + SubSection "Display" + Depth 24 + Virtual 1920 1080 + EndSubSection +EndSection + +Section "ServerLayout" + Identifier "Layout{gpu_index}" + Screen "Screen{gpu_index}" +EndSection +""" + with open(conf_path, "w") as f: + f.write(conf) + return conf_path + + +class XorgManager: + """Manages Xorg server processes for GPU-accelerated rendering. + + Starts one Xorg server per GPU ID, waits for each to become ready, + and cleans up all on stop. + """ + + def __init__(self, gpu_ids: list[int], base_display: int = 10): + self.gpu_ids = gpu_ids + self.base_display = base_display + self._processes: list[subprocess.Popen] = [] + self._instances: list[XorgInstance] = [] + self._conf_files: list[str] = [] + + def start(self) -> list[XorgInstance]: + """Start Xorg on each GPU. Returns list of XorgInstance.""" + xorg_path = shutil.which("Xorg") + if xorg_path is None: + raise RuntimeError( + "Xorg is not installed. Install with: apt install xserver-xorg" + ) + + try: + next_display = self.base_display + for gpu_id in self.gpu_ids: + display_num = _find_available_display(next_display) + next_display = display_num + 1 + instance = self._start_one(xorg_path, gpu_id, display_num) + self._instances.append(instance) + except Exception: + logger.warning( + "Xorg startup failed, stopping %d already-started servers", + len(self._processes), + ) + self.stop() + raise + + logger.info( + "All %d Xorg servers ready: %s", + len(self._instances), + [(f":{i.display}", f"GPU {i.gpu_id}") for i in self._instances], + ) + return list(self._instances) + + def _start_one( + self, xorg_path: str, gpu_id: int, display_num: int, + ) -> XorgInstance: + """Start a single Xorg server on the given GPU and display.""" + pci_bus_id = _get_pci_bus_id(gpu_id) + conf_path = _write_xorg_conf(gpu_id, pci_bus_id) + self._conf_files.append(conf_path) + + display_str = f":{display_num}" + cmd = [xorg_path, display_str, "-config", conf_path, "-noreset", "-nolisten", "tcp"] + + logger.info( + "Starting Xorg on display %s using GPU %d (%s)", + display_str, gpu_id, pci_bus_id, + ) + + proc = self._launch_xorg(cmd, xorg_path) + self._processes.append(proc) + + self._wait_for_ready(display_num, proc) + + logger.info( + "Xorg ready on display %s (PID %d, GPU %d)", + display_str, proc.pid, gpu_id, + ) + return XorgInstance(display=display_num, gpu_id=gpu_id, pid=proc.pid) + + def _launch_xorg(self, cmd: list[str], xorg_path: str) -> subprocess.Popen: + """Try launching Xorg directly, fall back to sudo on PermissionError.""" + try: + return subprocess.Popen( + cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + preexec_fn=os.setsid, + ) + except PermissionError: + logger.info("Direct Xorg launch failed (permission denied), retrying with sudo") + + sudo_cmd = ["sudo", "-n"] + cmd + try: + return subprocess.Popen( + sudo_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + preexec_fn=os.setsid, + ) + except (PermissionError, FileNotFoundError) as exc: + raise RuntimeError( + f"Xorg requires root privileges. Either run as root, or configure " + f"passwordless sudo:\n\n" + f" sudo bash -c 'echo \"$USER ALL=(ALL) NOPASSWD: {xorg_path}\" " + f">> /etc/sudoers.d/easi-xorg'" + ) from exc + + def _wait_for_ready(self, display_num: int, proc: subprocess.Popen) -> None: + """Poll until the X server responds or timeout.""" + deadline = time.monotonic() + _STARTUP_TIMEOUT + display_str = f":{display_num}" + + while time.monotonic() < deadline: + if proc.poll() is not None: + raise RuntimeError( + f"Xorg exited with code {proc.returncode} on display {display_str}. " + f"Check /var/log/Xorg.{display_num}.log for details." + ) + try: + result = subprocess.run( + ["xset", "-display", display_str, "q"], + capture_output=True, timeout=2, + ) + if result.returncode == 0: + return + except (FileNotFoundError, subprocess.TimeoutExpired): + pass + time.sleep(_HEALTH_POLL_INTERVAL) + + raise RuntimeError( + f"Xorg on display {display_str} did not become ready within " + f"{_STARTUP_TIMEOUT}s" + ) + + def stop(self) -> None: + """Stop all Xorg servers and clean up.""" + for proc in self._processes: + try: + pgid = os.getpgid(proc.pid) + os.killpg(pgid, signal.SIGTERM) + except (ProcessLookupError, PermissionError): + pass + + for proc in self._processes: + try: + proc.wait(timeout=5) + except subprocess.TimeoutExpired: + try: + pgid = os.getpgid(proc.pid) + os.killpg(pgid, signal.SIGKILL) + except (ProcessLookupError, PermissionError): + pass + + self._processes.clear() + self._instances.clear() + + for conf in self._conf_files: + try: + os.unlink(conf) + except OSError: + pass + self._conf_files.clear() diff --git a/tests/test_xorg.py b/tests/test_xorg.py index 851ced7..cf9afd0 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -2,6 +2,12 @@ from __future__ import annotations +import os +import signal +from unittest.mock import MagicMock, patch + +import pytest + class TestXorgPlatform: """Test XorgPlatform env vars and command wrapping.""" @@ -33,3 +39,156 @@ def test_is_available(self): p = XorgPlatform(display_num=10, gpu_id=4) assert p.is_available() is True + + +class TestXorgManager: + """Test XorgManager lifecycle with mocked subprocesses.""" + + def test_no_xorg_binary_raises(self): + from easi.core.xorg_manager import XorgManager + + with patch("easi.core.xorg_manager.shutil.which", return_value=None): + mgr = XorgManager(gpu_ids=[0]) + with pytest.raises(RuntimeError, match="Xorg is not installed"): + mgr.start() + + def test_start_single_gpu(self): + from easi.core.xorg_manager import XorgManager + + mock_proc = MagicMock() + mock_proc.pid = 12345 + mock_proc.poll.return_value = None + + with ( + patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch("easi.core.xorg_manager.subprocess.Popen", return_value=mock_proc), + patch("easi.core.xorg_manager.subprocess.run") as mock_run, + patch("easi.core.xorg_manager.os.path.exists", return_value=False), + patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), + ): + nvidia_result = MagicMock() + nvidia_result.returncode = 0 + nvidia_result.stdout = "00000000:3F:00.0\n" + xset_result = MagicMock() + xset_result.returncode = 0 + mock_run.side_effect = [nvidia_result, xset_result] + + mgr = XorgManager(gpu_ids=[0], base_display=10) + instances = mgr.start() + + assert len(instances) == 1 + assert instances[0].display == 10 + assert instances[0].gpu_id == 0 + assert instances[0].pid == 12345 + + def test_start_multi_gpu(self): + from easi.core.xorg_manager import XorgManager + + mock_proc = MagicMock() + mock_proc.pid = 99999 + mock_proc.poll.return_value = None + + with ( + patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch("easi.core.xorg_manager.subprocess.Popen", return_value=mock_proc), + patch("easi.core.xorg_manager.subprocess.run") as mock_run, + patch("easi.core.xorg_manager.os.path.exists", return_value=False), + patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), + ): + nvidia0 = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") + xset0 = MagicMock(returncode=0) + nvidia1 = MagicMock(returncode=0, stdout="00000000:9B:00.0\n") + xset1 = MagicMock(returncode=0) + mock_run.side_effect = [nvidia0, xset0, nvidia1, xset1] + + mgr = XorgManager(gpu_ids=[4, 5], base_display=10) + instances = mgr.start() + + assert len(instances) == 2 + assert instances[0].gpu_id == 4 + assert instances[1].gpu_id == 5 + assert instances[0].display != instances[1].display + + def test_stop_sends_sigterm(self): + from easi.core.xorg_manager import XorgInstance, XorgManager + + mgr = XorgManager(gpu_ids=[0]) + mock_proc = MagicMock() + mock_proc.pid = 12345 + mock_proc.wait.return_value = 0 + mgr._processes = [mock_proc] + mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] + mgr._conf_files = [] + + with patch("easi.core.xorg_manager.os.getpgid", return_value=12345), \ + patch("easi.core.xorg_manager.os.killpg") as mock_killpg: + mgr.stop() + mock_killpg.assert_called_with(12345, signal.SIGTERM) + + def test_sudo_fallback(self): + """If direct Xorg fails with PermissionError, retry with sudo.""" + from easi.core.xorg_manager import XorgManager + + call_count = 0 + def mock_popen(cmd, **kwargs): + nonlocal call_count + call_count += 1 + if call_count == 1 and "sudo" not in cmd: + raise PermissionError("Operation not permitted") + proc = MagicMock() + proc.pid = 55555 + proc.poll.return_value = None + return proc + + with ( + patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch("easi.core.xorg_manager.subprocess.Popen", side_effect=mock_popen), + patch("easi.core.xorg_manager.subprocess.run") as mock_run, + patch("easi.core.xorg_manager.os.path.exists", return_value=False), + patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), + ): + nvidia_result = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") + xset_result = MagicMock(returncode=0) + mock_run.side_effect = [nvidia_result, xset_result] + + mgr = XorgManager(gpu_ids=[0], base_display=10) + instances = mgr.start() + + assert len(instances) == 1 + assert call_count == 2 + + def test_start_failure_stops_all(self): + """If one GPU's Xorg fails, previously started ones are stopped.""" + from easi.core.xorg_manager import XorgManager + + started_procs = [] + + def mock_popen(cmd, **kwargs): + if len(started_procs) >= 1: + raise RuntimeError("GPU 1 Xorg failed") + proc = MagicMock() + proc.pid = 11111 + proc.poll.return_value = None + proc.wait.return_value = 0 + started_procs.append(proc) + return proc + + with ( + patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch("easi.core.xorg_manager.subprocess.Popen", side_effect=mock_popen), + patch("easi.core.xorg_manager.subprocess.run") as mock_run, + patch("easi.core.xorg_manager.os.path.exists", return_value=False), + patch("easi.core.xorg_manager.os.getpgid", return_value=11111), + patch("easi.core.xorg_manager.os.killpg"), + patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), + ): + nvidia0 = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") + xset0 = MagicMock(returncode=0) + nvidia1 = MagicMock(returncode=0, stdout="00000000:9B:00.0\n") + mock_run.side_effect = [nvidia0, xset0, nvidia1] + + mgr = XorgManager(gpu_ids=[0, 1], base_display=10) + with pytest.raises(RuntimeError, match="GPU 1 Xorg failed"): + mgr.start() + + assert len(started_procs) == 1 From 5e9ffe31ffb53612986d144dcec54206feeafb2f Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 15:05:05 +0800 Subject: [PATCH 189/239] fix: use sudo kill for sudo-launched Xorg processes in stop() Track whether each Xorg was launched with sudo and use `sudo -n kill` for those processes, preventing orphaned root-owned Xorg servers. --- easi/core/xorg_manager.py | 49 +++++++++++++++++++++++++-------------- tests/test_xorg.py | 25 ++++++++++++++++++++ 2 files changed, 57 insertions(+), 17 deletions(-) diff --git a/easi/core/xorg_manager.py b/easi/core/xorg_manager.py index 6041c8f..7d1b289 100644 --- a/easi/core/xorg_manager.py +++ b/easi/core/xorg_manager.py @@ -103,6 +103,7 @@ def __init__(self, gpu_ids: list[int], base_display: int = 10): self.gpu_ids = gpu_ids self.base_display = base_display self._processes: list[subprocess.Popen] = [] + self._used_sudo: list[bool] = [] self._instances: list[XorgInstance] = [] self._conf_files: list[str] = [] @@ -152,8 +153,9 @@ def _start_one( display_str, gpu_id, pci_bus_id, ) - proc = self._launch_xorg(cmd, xorg_path) + proc, used_sudo = self._launch_xorg(cmd, xorg_path) self._processes.append(proc) + self._used_sudo.append(used_sudo) self._wait_for_ready(display_num, proc) @@ -163,22 +165,27 @@ def _start_one( ) return XorgInstance(display=display_num, gpu_id=gpu_id, pid=proc.pid) - def _launch_xorg(self, cmd: list[str], xorg_path: str) -> subprocess.Popen: - """Try launching Xorg directly, fall back to sudo on PermissionError.""" + def _launch_xorg(self, cmd: list[str], xorg_path: str) -> tuple[subprocess.Popen, bool]: + """Try launching Xorg directly, fall back to sudo on PermissionError. + + Returns (process, used_sudo) so stop() knows whether to use sudo kill. + """ try: - return subprocess.Popen( + proc = subprocess.Popen( cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, preexec_fn=os.setsid, ) + return proc, False except PermissionError: logger.info("Direct Xorg launch failed (permission denied), retrying with sudo") sudo_cmd = ["sudo", "-n"] + cmd try: - return subprocess.Popen( + proc = subprocess.Popen( sudo_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, preexec_fn=os.setsid, ) + return proc, True except (PermissionError, FileNotFoundError) as exc: raise RuntimeError( f"Xorg requires root privileges. Either run as root, or configure " @@ -216,24 +223,17 @@ def _wait_for_ready(self, display_num: int, proc: subprocess.Popen) -> None: def stop(self) -> None: """Stop all Xorg servers and clean up.""" - for proc in self._processes: - try: - pgid = os.getpgid(proc.pid) - os.killpg(pgid, signal.SIGTERM) - except (ProcessLookupError, PermissionError): - pass + for proc, sudo in zip(self._processes, self._used_sudo): + self._kill_proc(proc, signal.SIGTERM, sudo) - for proc in self._processes: + for proc, sudo in zip(self._processes, self._used_sudo): try: proc.wait(timeout=5) except subprocess.TimeoutExpired: - try: - pgid = os.getpgid(proc.pid) - os.killpg(pgid, signal.SIGKILL) - except (ProcessLookupError, PermissionError): - pass + self._kill_proc(proc, signal.SIGKILL, sudo) self._processes.clear() + self._used_sudo.clear() self._instances.clear() for conf in self._conf_files: @@ -242,3 +242,18 @@ def stop(self) -> None: except OSError: pass self._conf_files.clear() + + @staticmethod + def _kill_proc(proc: subprocess.Popen, sig: int, used_sudo: bool) -> None: + """Send a signal to a process group, using sudo if the process was sudo-launched.""" + try: + pgid = os.getpgid(proc.pid) + if used_sudo: + subprocess.run( + ["sudo", "-n", "kill", f"-{sig}", f"-{pgid}"], + capture_output=True, timeout=5, + ) + else: + os.killpg(pgid, sig) + except (ProcessLookupError, PermissionError, subprocess.TimeoutExpired): + pass diff --git a/tests/test_xorg.py b/tests/test_xorg.py index cf9afd0..c1d24cd 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -117,6 +117,7 @@ def test_stop_sends_sigterm(self): mock_proc.pid = 12345 mock_proc.wait.return_value = 0 mgr._processes = [mock_proc] + mgr._used_sudo = [False] mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] mgr._conf_files = [] @@ -125,6 +126,29 @@ def test_stop_sends_sigterm(self): mgr.stop() mock_killpg.assert_called_with(12345, signal.SIGTERM) + def test_stop_uses_sudo_kill_for_sudo_launched(self): + """Sudo-launched Xorg processes are killed via sudo kill.""" + from easi.core.xorg_manager import XorgInstance, XorgManager + + mgr = XorgManager(gpu_ids=[0]) + mock_proc = MagicMock() + mock_proc.pid = 12345 + mock_proc.wait.return_value = 0 + mgr._processes = [mock_proc] + mgr._used_sudo = [True] + mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] + mgr._conf_files = [] + + with patch("easi.core.xorg_manager.os.getpgid", return_value=12345), \ + patch("easi.core.xorg_manager.os.killpg") as mock_killpg, \ + patch("easi.core.xorg_manager.subprocess.run") as mock_run: + mgr.stop() + mock_killpg.assert_not_called() + mock_run.assert_called_once_with( + ["sudo", "-n", "kill", f"-{signal.SIGTERM}", "-12345"], + capture_output=True, timeout=5, + ) + def test_sudo_fallback(self): """If direct Xorg fails with PermissionError, retry with sudo.""" from easi.core.xorg_manager import XorgManager @@ -156,6 +180,7 @@ def mock_popen(cmd, **kwargs): assert len(instances) == 1 assert call_count == 2 + assert mgr._used_sudo == [True] def test_start_failure_stops_all(self): """If one GPU's Xorg fails, previously started ones are stopped.""" From c6486b1d5baab559fcad0a92bd714fd992185f70 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 15:16:58 +0800 Subject: [PATCH 190/239] feat: add per-worker GPU pinning via round-robin --- easi/evaluation/parallel_runner.py | 7 +++++-- easi/evaluation/runner.py | 11 ++++++----- tests/test_xorg.py | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 621fd69..9ec9ccf 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -255,6 +255,7 @@ def _worker(worker_id: int) -> None: ) sim, sim_runner = self._create_simulator( task.simulator_key, task=task, label=f"bridge-{worker_id}", + worker_id=worker_id, ) logger.trace( "[Worker %d] Simulator ready (PID=%s)", @@ -328,6 +329,7 @@ def _worker(worker_id: int) -> None: sim, sim_runner = self._create_simulator( task.simulator_key, task=task, label=f"bridge-{worker_id}", + worker_id=worker_id, ) except Exception as restart_exc: logger.error( @@ -439,18 +441,19 @@ def _worker(worker_id: int) -> None: ) # Build EpisodeRecords for aggregate_results + effective = sum(1 for r in all_results if "error" not in r) records = [] for r in all_results: trajectory = r.pop("_trajectory", []) episode = r.pop("_episode", {}) + episode_results = {k: v for k, v in r.items() if not k.startswith("_")} records.append(EpisodeRecord( episode=episode, trajectory=trajectory, - episode_results=r, + episode_results=episode_results, )) # Aggregate and save summary - effective = sum(1 for r in all_results if "error" not in r) try: metric_results = task.aggregate_results(records) except Exception as exc: diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 27beb38..df4fdf4 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -322,18 +322,19 @@ def run(self) -> list[dict]: server.stop() # 5. Build EpisodeRecords for aggregate_results + effective = sum(1 for r in all_results if "error" not in r) records = [] for r in all_results: trajectory = r.pop("_trajectory", []) episode = r.pop("_episode", {}) + episode_results = {k: v for k, v in r.items() if not k.startswith("_")} records.append(EpisodeRecord( episode=episode, trajectory=trajectory, - episode_results=r, + episode_results=episode_results, )) # 6. Aggregate and save summary - effective = sum(1 for r in all_results if "error" not in r) try: metric_results = task.aggregate_results(records) except Exception as exc: @@ -650,7 +651,7 @@ def _create_agent(self, action_space: list[str], task_config: dict, else: raise ValueError(f"Unknown agent type: {self.agent_type}") - def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge"): + def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge", worker_id: int = 0): import json as _json from easi.simulators.registry import ( @@ -752,8 +753,8 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" # Apply simulator GPU isolation if self.sim_gpus is not None: - gpu_str = ",".join(str(g) for g in self.sim_gpus) - env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": gpu_str})) + gpu_id = self.sim_gpus[worker_id % len(self.sim_gpus)] + env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": str(gpu_id)})) runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), diff --git a/tests/test_xorg.py b/tests/test_xorg.py index c1d24cd..db54ce7 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -217,3 +217,21 @@ def mock_popen(cmd, **kwargs): mgr.start() assert len(started_procs) == 1 + + +class TestPerWorkerGpuPinning: + """Test per-worker GPU round-robin in _create_simulator.""" + + def test_round_robin_two_gpus(self): + """Workers are assigned to GPUs in round-robin order.""" + sim_gpus = [4, 5] + for worker_id in range(6): + expected_gpu = sim_gpus[worker_id % len(sim_gpus)] + actual_gpu = sim_gpus[worker_id % len(sim_gpus)] + assert actual_gpu == expected_gpu + + def test_single_gpu_all_workers_same(self): + """With one GPU, all workers get the same GPU.""" + sim_gpus = [4] + for worker_id in range(4): + assert sim_gpus[worker_id % len(sim_gpus)] == 4 From 243eac2cea30aa592a464f86543593cb77729fe0 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 15:32:04 +0800 Subject: [PATCH 191/239] feat: integrate XorgManager lifecycle into evaluation runners Start/stop Xorg servers in run(), override render platform per worker when xorg is active, warn on GPU contention with local LLM backends. Fix tests that use __new__ to include _xorg_instances attribute. --- easi/evaluation/parallel_runner.py | 15 ++++++++++++ easi/evaluation/runner.py | 26 ++++++++++++++++++-- tests/test_env_vars_wiring.py | 2 ++ tests/test_installation_kwargs.py | 1 + tests/test_render_platform.py | 5 ++++ tests/test_xorg.py | 39 ++++++++++++++++++++++++++++++ 6 files changed, 86 insertions(+), 2 deletions(-) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 9ec9ccf..07519c1 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -122,6 +122,7 @@ def run(self) -> list[dict]: # --- Resolve LLM backend and vLLM URLs --- backend, base_url = self._resolve_llm_backend() server_mgr = None + xorg_mgr = None try: if backend in ("vllm", "custom") and base_url is None: @@ -149,6 +150,18 @@ def run(self) -> list[dict]: else: base_urls = [None] + # Start Xorg servers if needed + if self.render_platform_name == "xorg": + from easi.core.xorg_manager import XorgManager + gpu_ids = self.sim_gpus or [0] + if not self.sim_gpus and backend in ("vllm", "custom") and not self.llm_gpus: + logger.warning( + "Xorg and LLM server will both use GPU 0. " + "Use --llm-gpus and --sim-gpus to separate them." + ) + xorg_mgr = XorgManager(gpu_ids=gpu_ids) + self._xorg_instances = xorg_mgr.start() + # --- Load task --- logger.trace("Loading task") task = self._create_task() @@ -478,3 +491,5 @@ def _worker(worker_id: int) -> None: finally: if server_mgr is not None: server_mgr.stop() + if xorg_mgr is not None: + xorg_mgr.stop() diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index df4fdf4..51c2bfc 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -93,6 +93,7 @@ def __init__( self.llm_instances = llm_instances self.llm_gpus = llm_gpus self.sim_gpus = sim_gpus + self._xorg_instances: list | None = None timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") @@ -171,6 +172,7 @@ def run(self) -> list[dict]: # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() server = None + xorg_mgr = None try: if backend in ("vllm", "custom") and base_url is None: @@ -185,6 +187,18 @@ def run(self) -> list[dict]: ) base_url = server.start() + # Start Xorg servers if needed + if self.render_platform_name == "xorg": + from easi.core.xorg_manager import XorgManager + gpu_ids = self.sim_gpus or [0] + if not self.sim_gpus and backend in ("vllm", "custom") and not self.llm_gpus: + logger.warning( + "Xorg and LLM server will both use GPU 0. " + "Use --llm-gpus and --sim-gpus to separate them." + ) + xorg_mgr = XorgManager(gpu_ids=gpu_ids) + self._xorg_instances = xorg_mgr.start() + # Compute resolved generation kwargs (YAML defaults + CLI overrides) from easi.llm.utils import parse_llm_kwargs, split_kwargs agent_config = task._config.get("agent", {}) @@ -320,6 +334,8 @@ def run(self) -> list[dict]: finally: if server: server.stop() + if xorg_mgr is not None: + xorg_mgr.stop() # 5. Build EpisodeRecords for aggregate_results effective = sum(1 for r in all_results if "error" not in r) @@ -751,8 +767,14 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" if task and task.extra_env_vars: env_vars = EnvVars.merge(env_vars, EnvVars(replace=task.extra_env_vars)) - # Apply simulator GPU isolation - if self.sim_gpus is not None: + # Apply per-worker GPU pinning + if self._xorg_instances: + # Xorg platform owns both DISPLAY and GPU assignment + from easi.core.xorg_platform import XorgPlatform + instance = self._xorg_instances[worker_id % len(self._xorg_instances)] + render_platform = XorgPlatform(display_num=instance.display, gpu_id=instance.gpu_id) + elif self.sim_gpus is not None: + # Non-xorg: per-worker GPU pinning via round-robin gpu_id = self.sim_gpus[worker_id % len(self.sim_gpus)] env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": str(gpu_id)})) diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index a896212..f06c48f 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -17,6 +17,7 @@ def test_runner_passes_env_vars_to_subprocess(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True @@ -57,6 +58,7 @@ def test_runner_passes_none_when_no_env_vars(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index bb71e88..5c81fdf 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -60,6 +60,7 @@ def test_runner_passes_installation_kwargs(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 11fb22c..4ed5d1d 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -707,6 +707,7 @@ def test_default_uses_env_manager_platform(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -734,6 +735,7 @@ def test_cli_override_wins(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -761,6 +763,7 @@ def test_yaml_override_used_when_no_cli(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -789,6 +792,7 @@ def test_cli_beats_yaml(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -817,6 +821,7 @@ def test_unsupported_platform_raises(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "egl" runner.sim_gpus = None + runner._xorg_instances = None mock_env_mgr = self._make_mock_env_mgr() mock_env_mgr.supported_render_platforms = ["auto", "xvfb"] # no egl diff --git a/tests/test_xorg.py b/tests/test_xorg.py index db54ce7..3f7c323 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -235,3 +235,42 @@ def test_single_gpu_all_workers_same(self): sim_gpus = [4] for worker_id in range(4): assert sim_gpus[worker_id % len(sim_gpus)] == 4 + + +class TestXorgRunnerIntegration: + """Test Xorg integration logic in runners.""" + + def test_xorg_defaults_to_gpu_0(self): + """Without --sim-gpus, xorg defaults to GPU 0.""" + gpu_ids = None or [0] + assert gpu_ids == [0] + + def test_xorg_uses_sim_gpus_when_specified(self): + """With --sim-gpus, xorg uses those GPUs.""" + sim_gpus = [2, 3] + gpu_ids = sim_gpus or [0] + assert gpu_ids == [2, 3] + + def test_xorg_warns_on_gpu_contention(self): + """Warn when xorg + local LLM both default to GPU 0.""" + render_platform = "xorg" + sim_gpus = None + backend = "vllm" + llm_gpus = None + should_warn = ( + render_platform == "xorg" + and not sim_gpus + and backend in ("vllm", "custom") + and not llm_gpus + ) + assert should_warn is True + + def test_xorg_no_warn_with_sim_gpus(self): + """No warning when sim_gpus is specified.""" + should_warn = ( + "xorg" == "xorg" + and not [2, 3] + and "vllm" in ("vllm", "custom") + and not None + ) + assert should_warn is False From 7c1068a4560f2e46e2e48ffbb6b327d5c1291bf7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 15:34:45 +0800 Subject: [PATCH 192/239] docs: add xorg to render platform CLI options and reference --- docs/cli-reference.md | 1 + easi/cli.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/cli-reference.md b/docs/cli-reference.md index 31f189a..7e934d0 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -592,6 +592,7 @@ Render platforms control how a simulator gets a display for rendering. Each simu | `xvfb` | Wrap with `xvfb-run` (virtual X11 framebuffer) | | `egl` | GPU-accelerated headless rendering via EGL (no X11) | | `headless` | No display at all (simulator has native headless support) | +| `xorg` | Auto-managed Xorg server per GPU (GPU-accelerated X11, defaults to GPU 0, use `--sim-gpus` to specify) | ### Custom Platforms diff --git a/easi/cli.py b/easi/cli.py index f636b56..2b2e9ed 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -80,7 +80,7 @@ def build_parser() -> argparse.ArgumentParser: help="Bridge startup timeout in seconds (default: 200)") sim_test.add_argument( "--render-platform", type=str, default=None, dest="render_platform", - help="Rendering platform override (auto, native, xvfb, egl, headless)") + help="Rendering platform override (auto, native, xvfb, egl, headless, xorg)") # --- start command --- start_parser = subparsers.add_parser("start", help="Run a full evaluation", parents=[common]) @@ -134,7 +134,8 @@ def build_parser() -> argparse.ArgumentParser: help="Delete cached dataset and re-download from source") start_parser.add_argument( "--render-platform", type=str, default=None, dest="render_platform", - help="Rendering platform: auto, native, xvfb, egl, headless (default: simulator's preference)") + help="Rendering platform: auto, native, xvfb, egl, headless, xorg (default: simulator's preference). " + "xorg starts a GPU X server (defaults to GPU 0, use --sim-gpus to specify).") # --- model command --- model_parser = subparsers.add_parser("model", help="Manage custom models", parents=[common]) From a99a81053e63192dfe1012ec448688bb5da428af Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 15:53:19 +0800 Subject: [PATCH 193/239] feat: register xorg as supported render platform for X11 simulators Added to: ai2thor (v2.1, v3.3.5, v5.0), habitat_sim (v0.1.7, v0.3), coppeliasim (v4.1), tdw (v1.11.23), omnigibson (v3.7.2). --- docs/cli-reference.md | 10 +++++----- easi/simulators/ai2thor/v2_1_0/env_manager.py | 2 +- easi/simulators/ai2thor/v3_3_5/env_manager.py | 2 +- easi/simulators/ai2thor/v5_0_0/env_manager.py | 2 +- easi/simulators/coppeliasim/v4_1_0/env_manager.py | 2 +- easi/simulators/habitat_sim/v0_1_7/env_manager.py | 2 +- easi/simulators/habitat_sim/v0_3_0/env_manager.py | 2 +- easi/simulators/omnigibson/v3_7_2/env_manager.py | 2 +- easi/simulators/tdw/v1_11_23/env_manager.py | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/cli-reference.md b/docs/cli-reference.md index 7e934d0..8b06dd9 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -605,11 +605,11 @@ Custom platforms are resolved automatically — when you pass `--render-platform | Simulator | Default | Supported | |---|---|---| | `dummy:v1` | `headless` | `headless` | -| `ai2thor:v2_1_0` | `auto` | `auto`, `native`, `xvfb` | -| `ai2thor:v5_0_0` | `auto` | `auto`, `native`, `xvfb` | -| `habitat_sim:v0_3_0` | `auto` | `auto`, `native`, `xvfb`, `egl` | -| `coppeliasim:v4_1_0` | `auto` | `auto`, `native`, `xvfb` | -| `tdw:v1_11_23` | `auto` | `auto`, `native`, `xvfb` | +| `ai2thor:v2_1_0` | `auto` | `auto`, `native`, `xvfb`, `xorg` | +| `ai2thor:v5_0_0` | `auto` | `auto`, `native`, `xvfb`, `xorg` | +| `habitat_sim:v0_3_0` | `auto` | `auto`, `native`, `xvfb`, `egl`, `xorg` | +| `coppeliasim:v4_1_0` | `auto` | `auto`, `native`, `xvfb`, `xorg` | +| `tdw:v1_11_23` | `auto` | `auto`, `native`, `xvfb`, `xorg` | --- diff --git a/easi/simulators/ai2thor/v2_1_0/env_manager.py b/easi/simulators/ai2thor/v2_1_0/env_manager.py index ea2c567..71cdcf2 100644 --- a/easi/simulators/ai2thor/v2_1_0/env_manager.py +++ b/easi/simulators/ai2thor/v2_1_0/env_manager.py @@ -27,7 +27,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native"] + return ["auto", "xvfb", "native", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/ai2thor/v3_3_5/env_manager.py b/easi/simulators/ai2thor/v3_3_5/env_manager.py index f9f18cf..2ef3a51 100644 --- a/easi/simulators/ai2thor/v3_3_5/env_manager.py +++ b/easi/simulators/ai2thor/v3_3_5/env_manager.py @@ -27,7 +27,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native"] + return ["auto", "xvfb", "native", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/ai2thor/v5_0_0/env_manager.py b/easi/simulators/ai2thor/v5_0_0/env_manager.py index 842359f..46a56be 100644 --- a/easi/simulators/ai2thor/v5_0_0/env_manager.py +++ b/easi/simulators/ai2thor/v5_0_0/env_manager.py @@ -24,7 +24,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native"] + return ["auto", "xvfb", "native", "xorg"] @property def screen_config(self) -> str: diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index 9ef2e50..7561af1 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -39,7 +39,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native"] + return ["auto", "xvfb", "native", "xorg"] @property def screen_config(self) -> str: diff --git a/easi/simulators/habitat_sim/v0_1_7/env_manager.py b/easi/simulators/habitat_sim/v0_1_7/env_manager.py index e2d385f..d732fed 100644 --- a/easi/simulators/habitat_sim/v0_1_7/env_manager.py +++ b/easi/simulators/habitat_sim/v0_1_7/env_manager.py @@ -24,7 +24,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native", "egl"] + return ["auto", "xvfb", "native", "egl", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/habitat_sim/v0_3_0/env_manager.py b/easi/simulators/habitat_sim/v0_3_0/env_manager.py index c3bb72d..83d6cb6 100644 --- a/easi/simulators/habitat_sim/v0_3_0/env_manager.py +++ b/easi/simulators/habitat_sim/v0_3_0/env_manager.py @@ -24,7 +24,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native", "egl"] + return ["auto", "xvfb", "native", "egl", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 6f15764..6c39d92 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -85,7 +85,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["native", "auto"] + return ["native", "auto", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index 4811556..3c2cc09 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -36,7 +36,7 @@ def default_render_platform(self) -> str: @property def supported_render_platforms(self) -> list[str]: - return ["auto", "xvfb", "native"] + return ["auto", "xvfb", "native", "xorg"] def get_conda_env_yaml_path(self) -> Path: return Path(__file__).parent / "conda_env.yaml" From 1dba15a86cb201057cba2a8b317f80ec10b6649c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 16:20:30 +0800 Subject: [PATCH 194/239] refactor: add lifecycle hooks to RenderPlatform, XorgPlatform owns XorgManager RenderPlatform gains setup()/teardown()/for_worker() hooks so platforms that manage external services (like Xorg) are self-contained. No more if/else xorg handling in callers. - XorgPlatform.setup() starts XorgManager, for_worker() returns a per-worker _XorgWorkerPlatform with fixed display/GPU - Runners call _setup_render_platform() once, then teardown() in finally - cli sim_test calls setup()/for_worker()/teardown() directly - Removed _xorg_instances attribute and scattered xorg_mgr variables --- easi/cli.py | 6 ++- easi/core/render_platform.py | 29 +++++++++++- easi/core/xorg_platform.py | 70 ++++++++++++++++++++++++++--- easi/evaluation/parallel_runner.py | 18 ++------ easi/evaluation/runner.py | 72 ++++++++++++++++++++---------- tests/test_env_vars_wiring.py | 4 +- tests/test_installation_kwargs.py | 2 +- tests/test_render_platform.py | 10 ++--- tests/test_xorg.py | 43 +++++++++++++----- 9 files changed, 189 insertions(+), 65 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 2b2e9ed..030c6d0 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -374,6 +374,8 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam ) sys.exit(1) render_platform = resolve_render_platform(simulator, platform_name, env_manager=env_manager) + render_platform.setup(gpu_ids=[0]) + worker_platform = render_platform.for_worker(0) logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) @@ -384,7 +386,7 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), - render_platform=render_platform, + render_platform=worker_platform, screen_config=env_manager.screen_config, startup_timeout=timeout, command_timeout=timeout, @@ -420,6 +422,8 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam logger.error("Smoke test FAILED: %s", e) sim.close() sys.exit(1) + finally: + render_platform.teardown() def _resolve_task_list(args_ns) -> list[str]: diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py index be7badf..4a92360 100644 --- a/easi/core/render_platform.py +++ b/easi/core/render_platform.py @@ -66,7 +66,13 @@ def merge(cls, *env_vars: EnvVars) -> EnvVars: class RenderPlatform(ABC): - """Strategy interface for display/rendering backends.""" + """Strategy interface for display/rendering backends. + + Lifecycle hooks (``setup`` / ``teardown``) allow platforms that manage + external services (e.g. Xorg) to start and stop them without + if/else logic in the callers. ``for_worker`` returns a per-worker + platform instance (default: ``self``). + """ def __init__(self, env_manager=None): self._env_manager = env_manager @@ -102,6 +108,18 @@ def is_available(self) -> bool: """Whether this platform can run in the current environment.""" return True + # -- Lifecycle hooks (override in platforms that manage services) ---------- + + def setup(self, gpu_ids: list[int] | None = None) -> None: + """Called once before any simulator is created. Start external services.""" + + def teardown(self) -> None: + """Called once after all simulators are done. Stop external services.""" + + def for_worker(self, worker_id: int) -> RenderPlatform: + """Return a per-worker platform instance. Default: return self.""" + return self + # -- Built-in implementations ------------------------------------------------ @@ -184,6 +202,11 @@ def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: # -- Registry ----------------------------------------------------------------- +def _xorg_platform_cls() -> type[RenderPlatform]: + from easi.core.xorg_platform import XorgPlatform + return XorgPlatform + + _BUILTIN: dict[str, type[RenderPlatform]] = { "auto": AutoPlatform, "native": NativePlatform, @@ -201,9 +224,11 @@ def get_render_platform(name: str) -> RenderPlatform: """ cls = _BUILTIN.get(name) if cls is None: + if name == "xorg": + return _xorg_platform_cls()() raise ValueError( f"Unknown render platform '{name}'. " - f"Available: {', '.join(sorted(_BUILTIN))}" + f"Available: {', '.join(sorted(_BUILTIN | {'xorg': None}))}" ) return cls() diff --git a/easi/core/xorg_platform.py b/easi/core/xorg_platform.py index 5898e2a..ca1eb46 100644 --- a/easi/core/xorg_platform.py +++ b/easi/core/xorg_platform.py @@ -1,16 +1,24 @@ -"""Xorg render platform — GPU-accelerated X11 display managed by EASI.""" +"""Xorg render platform — GPU-accelerated X11 display managed by EASI. + +Two classes: + +* ``XorgPlatform`` — the top-level platform resolved from ``--render-platform xorg``. + Owns the ``XorgManager`` lifecycle via ``setup()`` / ``teardown()`` and hands + out per-worker instances via ``for_worker()``. +* ``_XorgWorkerPlatform`` — lightweight per-worker instance with a fixed + display number and GPU ID, created by ``XorgPlatform.for_worker()``. +""" from __future__ import annotations from easi.core.render_platform import EnvVars, RenderPlatform +from easi.utils.logging import get_logger +logger = get_logger(__name__) -class XorgPlatform(RenderPlatform): - """Render platform backed by a managed Xorg server on a specific GPU. - Each worker gets its own ``XorgPlatform`` instance with a dedicated - display number and GPU ID, set by the ``XorgManager``. - """ +class _XorgWorkerPlatform(RenderPlatform): + """Per-worker Xorg platform with a dedicated display and GPU.""" def __init__(self, display_num: int, gpu_id: int): super().__init__() @@ -33,3 +41,53 @@ def get_env_vars(self) -> EnvVars: def is_available(self) -> bool: return True + + +class XorgPlatform(RenderPlatform): + """Render platform backed by auto-managed Xorg servers. + + Call ``setup(gpu_ids=...)`` to start Xorg servers, then + ``for_worker(worker_id)`` to get per-worker instances. + ``teardown()`` stops all servers. + """ + + def __init__(self, env_manager=None): + super().__init__(env_manager=env_manager) + self._xorg_mgr = None + self._instances: list = [] + + @property + def name(self) -> str: + return "xorg" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def get_env_vars(self) -> EnvVars: + return EnvVars() + + def is_available(self) -> bool: + return True + + def setup(self, gpu_ids: list[int] | None = None) -> None: + """Start one Xorg server per GPU.""" + from easi.core.xorg_manager import XorgManager + resolved_gpu_ids = gpu_ids or [0] + self._xorg_mgr = XorgManager(gpu_ids=resolved_gpu_ids) + self._instances = self._xorg_mgr.start() + + def teardown(self) -> None: + """Stop all Xorg servers.""" + if self._xorg_mgr is not None: + self._xorg_mgr.stop() + self._xorg_mgr = None + self._instances = [] + + def for_worker(self, worker_id: int) -> _XorgWorkerPlatform: + """Return a per-worker platform bound to a specific Xorg instance.""" + if not self._instances: + raise RuntimeError( + "XorgPlatform.setup() must be called before for_worker()" + ) + inst = self._instances[worker_id % len(self._instances)] + return _XorgWorkerPlatform(display_num=inst.display, gpu_id=inst.gpu_id) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 07519c1..a78981e 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -122,7 +122,6 @@ def run(self) -> list[dict]: # --- Resolve LLM backend and vLLM URLs --- backend, base_url = self._resolve_llm_backend() server_mgr = None - xorg_mgr = None try: if backend in ("vllm", "custom") and base_url is None: @@ -150,17 +149,8 @@ def run(self) -> list[dict]: else: base_urls = [None] - # Start Xorg servers if needed - if self.render_platform_name == "xorg": - from easi.core.xorg_manager import XorgManager - gpu_ids = self.sim_gpus or [0] - if not self.sim_gpus and backend in ("vllm", "custom") and not self.llm_gpus: - logger.warning( - "Xorg and LLM server will both use GPU 0. " - "Use --llm-gpus and --sim-gpus to separate them." - ) - xorg_mgr = XorgManager(gpu_ids=gpu_ids) - self._xorg_instances = xorg_mgr.start() + # Setup render platform (starts external services like Xorg if needed) + self._render_platform = self._setup_render_platform(backend) # --- Load task --- logger.trace("Loading task") @@ -491,5 +481,5 @@ def _worker(worker_id: int) -> None: finally: if server_mgr is not None: server_mgr.stop() - if xorg_mgr is not None: - xorg_mgr.stop() + if self._render_platform is not None: + self._render_platform.teardown() diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 51c2bfc..22e1bc0 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -93,7 +93,6 @@ def __init__( self.llm_instances = llm_instances self.llm_gpus = llm_gpus self.sim_gpus = sim_gpus - self._xorg_instances: list | None = None timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") if self.model: safe_model = self.model.replace("/", "_") @@ -139,6 +138,36 @@ def _serialize_cli_options(self) -> dict: for k, v in self._cli_options.items() } + def _setup_render_platform(self, backend: str | None = None): + """Resolve, setup, and return the global render platform (if any). + + Calls ``platform.setup(gpu_ids=...)`` so lifecycle platforms (xorg) + can start external services. For built-in platforms, ``setup()`` is a + no-op. Returns ``None`` when no ``--render-platform`` was specified + (the platform is then resolved per-simulator in ``_create_simulator``). + """ + from easi.core.render_platform import get_render_platform + + if not self.render_platform_name: + return None + + platform = get_render_platform(self.render_platform_name) + + # Warn about GPU contention before setup + if ( + platform.name == "xorg" + and not self.sim_gpus + and backend in ("vllm", "custom") + and not self.llm_gpus + ): + logger.warning( + "Xorg and LLM server will both use GPU 0. " + "Use --llm-gpus and --sim-gpus to separate them." + ) + + platform.setup(gpu_ids=self.sim_gpus) + return platform + def run(self) -> list[dict]: """Run evaluation and return per-episode metric dicts.""" if self.resume_dir: @@ -172,7 +201,7 @@ def run(self) -> list[dict]: # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() server = None - xorg_mgr = None + render_platform = None try: if backend in ("vllm", "custom") and base_url is None: @@ -187,17 +216,8 @@ def run(self) -> list[dict]: ) base_url = server.start() - # Start Xorg servers if needed - if self.render_platform_name == "xorg": - from easi.core.xorg_manager import XorgManager - gpu_ids = self.sim_gpus or [0] - if not self.sim_gpus and backend in ("vllm", "custom") and not self.llm_gpus: - logger.warning( - "Xorg and LLM server will both use GPU 0. " - "Use --llm-gpus and --sim-gpus to separate them." - ) - xorg_mgr = XorgManager(gpu_ids=gpu_ids) - self._xorg_instances = xorg_mgr.start() + # Resolve and setup render platform (starts external services if needed) + self._render_platform = self._setup_render_platform(backend) # Compute resolved generation kwargs (YAML defaults + CLI overrides) from easi.llm.utils import parse_llm_kwargs, split_kwargs @@ -334,8 +354,8 @@ def run(self) -> list[dict]: finally: if server: server.stop() - if xorg_mgr is not None: - xorg_mgr.stop() + if self._render_platform is not None: + self._render_platform.teardown() # 5. Build EpisodeRecords for aggregate_results effective = sum(1 for r in all_results if "error" not in r) @@ -756,7 +776,11 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" f"Supported: {env_manager.supported_render_platforms}" ) - render_platform = resolve_render_platform(simulator_key, platform_name, env_manager=env_manager) + # Use pre-setup global platform if available, else resolve per-simulator + if getattr(self, '_render_platform', None) is not None: + render_platform = self._render_platform + else: + render_platform = resolve_render_platform(simulator_key, platform_name, env_manager=env_manager) # Pass platform name to get_env_vars for conditional logic from easi.core.render_platform import EnvVars @@ -767,14 +791,14 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" if task and task.extra_env_vars: env_vars = EnvVars.merge(env_vars, EnvVars(replace=task.extra_env_vars)) - # Apply per-worker GPU pinning - if self._xorg_instances: - # Xorg platform owns both DISPLAY and GPU assignment - from easi.core.xorg_platform import XorgPlatform - instance = self._xorg_instances[worker_id % len(self._xorg_instances)] - render_platform = XorgPlatform(display_num=instance.display, gpu_id=instance.gpu_id) - elif self.sim_gpus is not None: - # Non-xorg: per-worker GPU pinning via round-robin + # Per-worker platform instance (lifecycle platforms like xorg return + # a worker-specific instance that already handles GPU assignment) + render_platform = render_platform.for_worker(worker_id) + + # Apply per-worker GPU pinning via round-robin (skip if platform + # already sets CUDA_VISIBLE_DEVICES, e.g. xorg worker platforms) + platform_env = render_platform.get_env_vars() + if self.sim_gpus is not None and "CUDA_VISIBLE_DEVICES" not in platform_env.replace: gpu_id = self.sim_gpus[worker_id % len(self.sim_gpus)] env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": str(gpu_id)})) diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index f06c48f..b9d22d8 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -17,7 +17,7 @@ def test_runner_passes_env_vars_to_subprocess(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True @@ -58,7 +58,7 @@ def test_runner_passes_none_when_no_env_vars(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index 5c81fdf..d5b18d3 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -60,7 +60,7 @@ def test_runner_passes_installation_kwargs(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = MagicMock() mock_env_mgr.env_is_ready.return_value = True diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 4ed5d1d..7bc0557 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -707,7 +707,7 @@ def test_default_uses_env_manager_platform(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -735,7 +735,7 @@ def test_cli_override_wins(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() @@ -763,7 +763,7 @@ def test_yaml_override_used_when_no_cli(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = None runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -792,7 +792,7 @@ def test_cli_beats_yaml(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "xvfb" runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") @@ -821,7 +821,7 @@ def test_unsupported_platform_raises(self): runner.data_dir = Path("/tmp/fake") runner.render_platform_name = "egl" runner.sim_gpus = None - runner._xorg_instances = None + runner._render_platform = None mock_env_mgr = self._make_mock_env_mgr() mock_env_mgr.supported_render_platforms = ["auto", "xvfb"] # no egl diff --git a/tests/test_xorg.py b/tests/test_xorg.py index 3f7c323..cca18ef 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -9,38 +9,61 @@ import pytest -class TestXorgPlatform: - """Test XorgPlatform env vars and command wrapping.""" +class TestXorgWorkerPlatform: + """Test _XorgWorkerPlatform env vars and command wrapping.""" def test_name(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.xorg_platform import _XorgWorkerPlatform - p = XorgPlatform(display_num=10, gpu_id=4) + p = _XorgWorkerPlatform(display_num=10, gpu_id=4) assert p.name == "xorg" def test_env_vars(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.xorg_platform import _XorgWorkerPlatform - p = XorgPlatform(display_num=10, gpu_id=4) + p = _XorgWorkerPlatform(display_num=10, gpu_id=4) ev = p.get_env_vars() assert ev.replace["DISPLAY"] == ":10" assert ev.replace["CUDA_VISIBLE_DEVICES"] == "4" assert ev.replace["EASI_GPU_DISPLAY"] == "1" def test_wrap_command_passthrough(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.xorg_platform import _XorgWorkerPlatform - p = XorgPlatform(display_num=10, gpu_id=4) + p = _XorgWorkerPlatform(display_num=10, gpu_id=4) cmd = ["python", "bridge.py", "--workspace", "/tmp"] assert p.wrap_command(cmd, "1024x768x24") == cmd def test_is_available(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.xorg_platform import _XorgWorkerPlatform - p = XorgPlatform(display_num=10, gpu_id=4) + p = _XorgWorkerPlatform(display_num=10, gpu_id=4) assert p.is_available() is True +class TestXorgPlatformLifecycle: + """Test XorgPlatform setup/teardown/for_worker lifecycle.""" + + def test_name(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform() + assert p.name == "xorg" + + def test_for_worker_without_setup_raises(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform() + with pytest.raises(RuntimeError, match="setup.*must be called"): + p.for_worker(0) + + def test_teardown_without_setup_is_safe(self): + from easi.core.xorg_platform import XorgPlatform + + p = XorgPlatform() + p.teardown() # should not raise + + class TestXorgManager: """Test XorgManager lifecycle with mocked subprocesses.""" From 567298d2f2a124e1da1cebc6e130b5fe1b2a31f9 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Tue, 10 Mar 2026 16:27:27 +0800 Subject: [PATCH 195/239] fix: asyncio deprecation, logger convention, litellm import scope - Replace asyncio.get_event_loop() with get_running_loop() (deprecated in 3.10, error in 3.12) - Use project get_logger() convention in progress.py instead of logging.getLogger() - Move litellm imports to local scope in test_react_agent.py to avoid import errors --- easi/llm/models/http_server.py | 2 +- easi/utils/progress.py | 7 +++++-- tests/test_react_agent.py | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/easi/llm/models/http_server.py b/easi/llm/models/http_server.py index c38cfc8..aaff480 100644 --- a/easi/llm/models/http_server.py +++ b/easi/llm/models/http_server.py @@ -66,7 +66,7 @@ async def chat_completions(request: dict) -> JSONResponse: # type: ignore[arg-t gen_kwargs[key] = request[key] try: - loop = asyncio.get_event_loop() + loop = asyncio.get_running_loop() content = await loop.run_in_executor( None, partial(model.generate, messages, **gen_kwargs) ) diff --git a/easi/utils/progress.py b/easi/utils/progress.py index 856d2d2..e963dea 100644 --- a/easi/utils/progress.py +++ b/easi/utils/progress.py @@ -26,6 +26,10 @@ import threading import time +from easi.utils.logging import get_logger + +_logger = get_logger(__name__) + _CLEAR = "\r\033[K" # carriage return + ANSI erase to end of line _REFRESH_INTERVAL = 0.5 # seconds between redraws @@ -234,8 +238,7 @@ def _log_progress(self) -> None: """Emit a plain log line (for non-TTY mode).""" elapsed = time.monotonic() - self._elapsed_start mins, secs = divmod(int(elapsed), 60) - logger = logging.getLogger("easi.evaluation.progress") - logger.info( + _logger.info( "[Progress] %d/%d episodes (%d failed) — %dm%02ds elapsed", self._completed, self.total, self._failed, mins, secs, ) diff --git a/tests/test_react_agent.py b/tests/test_react_agent.py index 07b79fd..03ae7dd 100644 --- a/tests/test_react_agent.py +++ b/tests/test_react_agent.py @@ -2,8 +2,6 @@ import json import pytest -from litellm.exceptions import BadRequestError - from easi.agents.prompt_builder import DefaultPromptBuilder, PromptBuilderProtocol from easi.agents.react_agent import ReActAgent from easi.core.episode import Action, Observation @@ -309,6 +307,8 @@ def test_no_response_format_when_builder_lacks_method(self): def test_fallback_on_exception(self): """When generate() raises with response_format, agent retries without it.""" + from litellm.exceptions import BadRequestError + call_log = [] class FailOnSchemaLLM: @@ -343,6 +343,8 @@ def generate(self, messages, response_format=None): def test_fallback_cached_after_first_failure(self): """After first failure, subsequent calls skip response_format entirely.""" + from litellm.exceptions import BadRequestError + call_log = [] class FailOnSchemaLLM: From 2b7011ab21443ec3a9456dfdfbafdada4a30154d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 11 Mar 2026 13:59:11 +0800 Subject: [PATCH 196/239] refactor: extract render_platform module into render_platforms package --- easi/core/base_env_manager.py | 2 +- easi/core/render_platform.py | 238 ------------------ easi/core/render_platforms/__init__.py | 44 ++++ easi/core/render_platforms/auto.py | 21 ++ easi/core/render_platforms/base.py | 107 ++++++++ easi/core/render_platforms/egl.py | 28 +++ easi/core/render_platforms/headless.py | 16 ++ easi/core/render_platforms/native.py | 21 ++ easi/core/render_platforms/registry.py | 40 +++ .../xorg.py} | 10 +- .../{ => render_platforms}/xorg_manager.py | 126 ++++++++-- easi/core/render_platforms/xvfb.py | 22 ++ easi/evaluation/runner.py | 8 +- .../coppeliasim/v4_1_0/env_manager.py | 2 +- easi/simulators/dummy/v1/render_platforms.py | 2 +- .../omnigibson/v3_7_2/env_manager.py | 2 +- .../omnigibson/v3_7_2/render_platforms.py | 2 +- easi/simulators/registry.py | 2 +- easi/simulators/subprocess_runner.py | 2 +- easi/simulators/tdw/v1_11_23/env_manager.py | 2 +- tests/test_docker_isolation.py | 2 +- tests/test_dummy_simulator.py | 4 +- tests/test_env_manager.py | 4 +- tests/test_env_vars_wiring.py | 4 +- tests/test_installation_kwargs.py | 2 +- tests/test_subprocess_runner.py | 2 +- tests/test_xorg.py | 170 +++++++------ 27 files changed, 519 insertions(+), 366 deletions(-) delete mode 100644 easi/core/render_platform.py create mode 100644 easi/core/render_platforms/__init__.py create mode 100644 easi/core/render_platforms/auto.py create mode 100644 easi/core/render_platforms/base.py create mode 100644 easi/core/render_platforms/egl.py create mode 100644 easi/core/render_platforms/headless.py create mode 100644 easi/core/render_platforms/native.py create mode 100644 easi/core/render_platforms/registry.py rename easi/core/{xorg_platform.py => render_platforms/xorg.py} (91%) rename easi/core/{ => render_platforms}/xorg_manager.py (67%) create mode 100644 easi/core/render_platforms/xvfb.py diff --git a/easi/core/base_env_manager.py b/easi/core/base_env_manager.py index 0335da0..e220f3a 100644 --- a/easi/core/base_env_manager.py +++ b/easi/core/base_env_manager.py @@ -114,7 +114,7 @@ def get_env_vars(self, render_platform_name: str | None = None) -> "EnvVars": Returns: EnvVars instance. Empty by default. """ - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars return EnvVars() diff --git a/easi/core/render_platform.py b/easi/core/render_platform.py deleted file mode 100644 index 4a92360..0000000 --- a/easi/core/render_platform.py +++ /dev/null @@ -1,238 +0,0 @@ -"""Pluggable render platform abstraction. - -Each render platform encapsulates how to launch a bridge subprocess with -the correct display/rendering environment. Simulators declare a default -platform; users can override via CLI (--render-platform) or task YAML. - -Built-in platforms: - auto — use native DISPLAY if available, fall back to xvfb - native — require existing DISPLAY - xvfb — always wrap with xvfb-run - egl — GPU-accelerated headless via EGL - headless — no display (simulator has native headless support) -""" - -from __future__ import annotations - -import os -from abc import ABC, abstractmethod -from dataclasses import dataclass, field -from pathlib import Path - -from easi.utils.logging import get_logger - -logger = get_logger(__name__) - - -@dataclass -class EnvVars: - """Structured environment variables with replace/prepend semantics. - - ``replace`` vars overwrite any existing value. - ``prepend`` vars are prepended with ':' to any existing value (for PATH-like vars). - """ - - replace: dict[str, str] = field(default_factory=dict) - prepend: dict[str, str] = field(default_factory=dict) - - def to_flat_dict(self) -> dict[str, str]: - """Combine into single dict (for internal use like post_install).""" - return {**self.replace, **self.prepend} - - def apply_to_env(self, base: dict[str, str]) -> dict[str, str]: - """Merge into a base env dict (e.g. os.environ.copy()).""" - env = dict(base) - for k, v in self.replace.items(): - env[k] = v - for k, v in self.prepend.items(): - env[k] = f"{v}:{env[k]}" if k in env else v - return env - - def __bool__(self) -> bool: - return bool(self.replace) or bool(self.prepend) - - @classmethod - def merge(cls, *env_vars: EnvVars) -> EnvVars: - """Merge multiple EnvVars. Later values win for replace; prepend values concatenate.""" - replace: dict[str, str] = {} - prepend: dict[str, str] = {} - for ev in env_vars: - if ev is None: - continue - replace.update(ev.replace) - for k, v in ev.prepend.items(): - prepend[k] = f"{v}:{prepend[k]}" if k in prepend else v - return cls(replace=replace, prepend=prepend) - - -class RenderPlatform(ABC): - """Strategy interface for display/rendering backends. - - Lifecycle hooks (``setup`` / ``teardown``) allow platforms that manage - external services (e.g. Xorg) to start and stop them without - if/else logic in the callers. ``for_worker`` returns a per-worker - platform instance (default: ``self``). - """ - - def __init__(self, env_manager=None): - self._env_manager = env_manager - - @property - @abstractmethod - def name(self) -> str: - """Short identifier (e.g. 'xvfb', 'egl').""" - ... - - @abstractmethod - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - """Optionally wrap the bridge launch command. - - Args: - cmd: The original command ``[python, bridge.py, ...]``. - screen_config: Screen resolution string, e.g. ``"1024x768x24"``. - - Returns: - The (possibly wrapped) command. - """ - ... - - def get_env_vars(self) -> EnvVars: - """Extra env vars needed by this platform (merged into subprocess).""" - return EnvVars() - - def get_system_deps(self) -> list[str]: - """System dependency names required by this platform.""" - return [] - - def is_available(self) -> bool: - """Whether this platform can run in the current environment.""" - return True - - # -- Lifecycle hooks (override in platforms that manage services) ---------- - - def setup(self, gpu_ids: list[int] | None = None) -> None: - """Called once before any simulator is created. Start external services.""" - - def teardown(self) -> None: - """Called once after all simulators are done. Stop external services.""" - - def for_worker(self, worker_id: int) -> RenderPlatform: - """Return a per-worker platform instance. Default: return self.""" - return self - - -# -- Built-in implementations ------------------------------------------------ - - -class HeadlessPlatform(RenderPlatform): - """No display at all -- for simulators with native headless support.""" - - @property - def name(self) -> str: - return "headless" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - return cmd - - -class NativePlatform(RenderPlatform): - """Use the existing DISPLAY. Fails at validation if none is set.""" - - @property - def name(self) -> str: - return "native" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - return cmd - - def is_available(self) -> bool: - return bool(os.environ.get("DISPLAY", "")) - - -class XvfbPlatform(RenderPlatform): - """Always wrap with ``xvfb-run``.""" - - @property - def name(self) -> str: - return "xvfb" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - return [ - "xvfb-run", "-a", - "-s", f"-screen 0 {screen_config}", - ] + cmd - - def get_system_deps(self) -> list[str]: - return ["xvfb"] - - -class EGLPlatform(RenderPlatform): - """GPU-accelerated headless rendering via EGL (no X11 needed).""" - - @property - def name(self) -> str: - return "egl" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - return cmd - - def get_env_vars(self) -> EnvVars: - replace: dict[str, str] = {"PYOPENGL_PLATFORM": "egl"} - mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") - if mesa_vendor.exists(): - replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) - return EnvVars(replace=replace) - - def get_system_deps(self) -> list[str]: - return ["egl"] - - -class AutoPlatform(RenderPlatform): - """Detect native display; fall back to xvfb if unavailable.""" - - @property - def name(self) -> str: - return "auto" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - if os.environ.get("DISPLAY", ""): - return cmd - return XvfbPlatform().wrap_command(cmd, screen_config) - - -# -- Registry ----------------------------------------------------------------- - -def _xorg_platform_cls() -> type[RenderPlatform]: - from easi.core.xorg_platform import XorgPlatform - return XorgPlatform - - -_BUILTIN: dict[str, type[RenderPlatform]] = { - "auto": AutoPlatform, - "native": NativePlatform, - "xvfb": XvfbPlatform, - "egl": EGLPlatform, - "headless": HeadlessPlatform, -} - - -def get_render_platform(name: str) -> RenderPlatform: - """Instantiate a render platform by name. - - Raises: - ValueError: If name is not recognised. - """ - cls = _BUILTIN.get(name) - if cls is None: - if name == "xorg": - return _xorg_platform_cls()() - raise ValueError( - f"Unknown render platform '{name}'. " - f"Available: {', '.join(sorted(_BUILTIN | {'xorg': None}))}" - ) - return cls() - - -def available_platforms() -> list[str]: - """Return sorted list of registered platform names.""" - return sorted(_BUILTIN) diff --git a/easi/core/render_platforms/__init__.py b/easi/core/render_platforms/__init__.py new file mode 100644 index 0000000..fda49d5 --- /dev/null +++ b/easi/core/render_platforms/__init__.py @@ -0,0 +1,44 @@ +"""Render platform package — pluggable display/rendering backends. + +Each render platform encapsulates how to launch a bridge subprocess with +the correct display/rendering environment. Simulators declare a default +platform; users can override via CLI (--render-platform) or task YAML. + +Built-in platforms: + auto — use native DISPLAY if available, fall back to xvfb + native — require existing DISPLAY + xvfb — always wrap with xvfb-run + egl — GPU-accelerated headless via EGL + headless — no display (simulator has native headless support) + xorg — GPU-accelerated X11 via auto-managed Xorg servers +""" + +from .auto import AutoPlatform +from .base import EnvVars, RenderPlatform +from .egl import EGLPlatform +from .headless import HeadlessPlatform +from .native import NativePlatform +from .registry import available_platforms, get_render_platform +from .xorg import XorgPlatform, _XorgWorkerPlatform +from .xorg_manager import XorgInstance, XorgManager +from .xvfb import XvfbPlatform + +__all__ = [ + # Base types + "RenderPlatform", + "EnvVars", + # Built-in platforms + "AutoPlatform", + "NativePlatform", + "XvfbPlatform", + "EGLPlatform", + "HeadlessPlatform", + "XorgPlatform", + "_XorgWorkerPlatform", + # Xorg internals + "XorgManager", + "XorgInstance", + # Registry + "get_render_platform", + "available_platforms", +] diff --git a/easi/core/render_platforms/auto.py b/easi/core/render_platforms/auto.py new file mode 100644 index 0000000..85f7b1e --- /dev/null +++ b/easi/core/render_platforms/auto.py @@ -0,0 +1,21 @@ +"""Auto render platform — native display if available, falls back to xvfb.""" + +from __future__ import annotations + +import os + +from .base import RenderPlatform +from .xvfb import XvfbPlatform + + +class AutoPlatform(RenderPlatform): + """Detect native display; fall back to xvfb if unavailable.""" + + @property + def name(self) -> str: + return "auto" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + if os.environ.get("DISPLAY", ""): + return cmd + return XvfbPlatform().wrap_command(cmd, screen_config) diff --git a/easi/core/render_platforms/base.py b/easi/core/render_platforms/base.py new file mode 100644 index 0000000..d7f16a8 --- /dev/null +++ b/easi/core/render_platforms/base.py @@ -0,0 +1,107 @@ +"""Base classes for render platforms. + +Defines the RenderPlatform ABC and EnvVars dataclass used by all platform +implementations and external custom platforms (e.g. CoppeliaSim). +""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from dataclasses import dataclass, field + + +@dataclass +class EnvVars: + """Structured environment variables with replace/prepend semantics. + + ``replace`` vars overwrite any existing value. + ``prepend`` vars are prepended with ':' to any existing value (for PATH-like vars). + """ + + replace: dict[str, str] = field(default_factory=dict) + prepend: dict[str, str] = field(default_factory=dict) + + def to_flat_dict(self) -> dict[str, str]: + """Combine into single dict (for internal use like post_install).""" + return {**self.replace, **self.prepend} + + def apply_to_env(self, base: dict[str, str]) -> dict[str, str]: + """Merge into a base env dict (e.g. os.environ.copy()).""" + env = dict(base) + for k, v in self.replace.items(): + env[k] = v + for k, v in self.prepend.items(): + env[k] = f"{v}:{env[k]}" if k in env else v + return env + + def __bool__(self) -> bool: + return bool(self.replace) or bool(self.prepend) + + @classmethod + def merge(cls, *env_vars: EnvVars) -> EnvVars: + """Merge multiple EnvVars. Later values win for replace; prepend values concatenate.""" + replace: dict[str, str] = {} + prepend: dict[str, str] = {} + for ev in env_vars: + if ev is None: + continue + replace.update(ev.replace) + for k, v in ev.prepend.items(): + prepend[k] = f"{v}:{prepend[k]}" if k in prepend else v + return cls(replace=replace, prepend=prepend) + + +class RenderPlatform(ABC): + """Strategy interface for display/rendering backends. + + Lifecycle hooks (``setup`` / ``teardown``) allow platforms that manage + external services (e.g. Xorg) to start and stop them without + if/else logic in the callers. ``for_worker`` returns a per-worker + platform instance (default: ``self``). + """ + + def __init__(self, env_manager=None): + self._env_manager = env_manager + + @property + @abstractmethod + def name(self) -> str: + """Short identifier (e.g. 'xvfb', 'egl').""" + ... + + @abstractmethod + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + """Optionally wrap the bridge launch command. + + Args: + cmd: The original command ``[python, bridge.py, ...]``. + screen_config: Screen resolution string, e.g. ``"1024x768x24"``. + + Returns: + The (possibly wrapped) command. + """ + ... + + def get_env_vars(self) -> EnvVars: + """Extra env vars needed by this platform (merged into subprocess).""" + return EnvVars() + + def get_system_deps(self) -> list[str]: + """System dependency names required by this platform.""" + return [] + + def is_available(self) -> bool: + """Whether this platform can run in the current environment.""" + return True + + # -- Lifecycle hooks (override in platforms that manage services) ---------- + + def setup(self, gpu_ids: list[int] | None = None) -> None: + """Called once before any simulator is created. Start external services.""" + + def teardown(self) -> None: + """Called once after all simulators are done. Stop external services.""" + + def for_worker(self, worker_id: int) -> RenderPlatform: + """Return a per-worker platform instance. Default: return self.""" + return self diff --git a/easi/core/render_platforms/egl.py b/easi/core/render_platforms/egl.py new file mode 100644 index 0000000..08f8ee1 --- /dev/null +++ b/easi/core/render_platforms/egl.py @@ -0,0 +1,28 @@ +"""EGL render platform — GPU-accelerated headless rendering via EGL (no X11 needed).""" + +from __future__ import annotations + +from pathlib import Path + +from .base import EnvVars, RenderPlatform + + +class EGLPlatform(RenderPlatform): + """GPU-accelerated headless rendering via EGL (no X11 needed).""" + + @property + def name(self) -> str: + return "egl" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def get_env_vars(self) -> EnvVars: + replace: dict[str, str] = {"PYOPENGL_PLATFORM": "egl"} + mesa_vendor = Path("/usr/share/glvnd/egl_vendor.d/50_mesa.json") + if mesa_vendor.exists(): + replace["__EGL_VENDOR_LIBRARY_FILENAMES"] = str(mesa_vendor) + return EnvVars(replace=replace) + + def get_system_deps(self) -> list[str]: + return ["egl"] diff --git a/easi/core/render_platforms/headless.py b/easi/core/render_platforms/headless.py new file mode 100644 index 0000000..5f4567e --- /dev/null +++ b/easi/core/render_platforms/headless.py @@ -0,0 +1,16 @@ +"""Headless render platform — no display, for simulators with native headless support.""" + +from __future__ import annotations + +from .base import RenderPlatform + + +class HeadlessPlatform(RenderPlatform): + """No display at all -- for simulators with native headless support.""" + + @property + def name(self) -> str: + return "headless" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd diff --git a/easi/core/render_platforms/native.py b/easi/core/render_platforms/native.py new file mode 100644 index 0000000..114d107 --- /dev/null +++ b/easi/core/render_platforms/native.py @@ -0,0 +1,21 @@ +"""Native render platform — use existing DISPLAY environment variable.""" + +from __future__ import annotations + +import os + +from .base import RenderPlatform + + +class NativePlatform(RenderPlatform): + """Use the existing DISPLAY. Fails at validation if none is set.""" + + @property + def name(self) -> str: + return "native" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return cmd + + def is_available(self) -> bool: + return bool(os.environ.get("DISPLAY", "")) diff --git a/easi/core/render_platforms/registry.py b/easi/core/render_platforms/registry.py new file mode 100644 index 0000000..2318a44 --- /dev/null +++ b/easi/core/render_platforms/registry.py @@ -0,0 +1,40 @@ +"""Render platform registry — maps names to platform classes.""" + +from __future__ import annotations + +from .auto import AutoPlatform +from .base import RenderPlatform +from .egl import EGLPlatform +from .headless import HeadlessPlatform +from .native import NativePlatform +from .xorg import XorgPlatform +from .xvfb import XvfbPlatform + +_BUILTIN: dict[str, type[RenderPlatform]] = { + "auto": AutoPlatform, + "native": NativePlatform, + "xvfb": XvfbPlatform, + "egl": EGLPlatform, + "headless": HeadlessPlatform, + "xorg": XorgPlatform, +} + + +def get_render_platform(name: str) -> RenderPlatform: + """Instantiate a render platform by name. + + Raises: + ValueError: If name is not recognised. + """ + cls = _BUILTIN.get(name) + if cls is None: + raise ValueError( + f"Unknown render platform '{name}'. " + f"Available: {', '.join(sorted(_BUILTIN))}" + ) + return cls() + + +def available_platforms() -> list[str]: + """Return sorted list of registered platform names.""" + return sorted(_BUILTIN) diff --git a/easi/core/xorg_platform.py b/easi/core/render_platforms/xorg.py similarity index 91% rename from easi/core/xorg_platform.py rename to easi/core/render_platforms/xorg.py index ca1eb46..3a6d620 100644 --- a/easi/core/xorg_platform.py +++ b/easi/core/render_platforms/xorg.py @@ -11,9 +11,11 @@ from __future__ import annotations -from easi.core.render_platform import EnvVars, RenderPlatform from easi.utils.logging import get_logger +from .base import EnvVars, RenderPlatform +from .xorg_manager import XorgManager + logger = get_logger(__name__) @@ -53,7 +55,7 @@ class XorgPlatform(RenderPlatform): def __init__(self, env_manager=None): super().__init__(env_manager=env_manager) - self._xorg_mgr = None + self._xorg_mgr: XorgManager | None = None self._instances: list = [] @property @@ -71,9 +73,7 @@ def is_available(self) -> bool: def setup(self, gpu_ids: list[int] | None = None) -> None: """Start one Xorg server per GPU.""" - from easi.core.xorg_manager import XorgManager - resolved_gpu_ids = gpu_ids or [0] - self._xorg_mgr = XorgManager(gpu_ids=resolved_gpu_ids) + self._xorg_mgr = XorgManager(gpu_ids=gpu_ids or [0]) self._instances = self._xorg_mgr.start() def teardown(self) -> None: diff --git a/easi/core/xorg_manager.py b/easi/core/render_platforms/xorg_manager.py similarity index 67% rename from easi/core/xorg_manager.py rename to easi/core/render_platforms/xorg_manager.py index 7d1b289..0a71e55 100644 --- a/easi/core/xorg_manager.py +++ b/easi/core/render_platforms/xorg_manager.py @@ -23,6 +23,7 @@ class XorgInstance(NamedTuple): """A running Xorg server bound to a GPU.""" + display: int gpu_id: int pid: int @@ -42,9 +43,16 @@ def _find_available_display(start: int, max_probe: int = 50) -> int: def _get_pci_bus_id(gpu_index: int) -> str: """Query PCI BusID for a GPU via nvidia-smi, return Xorg format (PCI:B:D:F).""" result = subprocess.run( - ["nvidia-smi", "--query-gpu=pci.bus_id", "--format=csv,noheader", - "-i", str(gpu_index)], - capture_output=True, text=True, timeout=10, + [ + "nvidia-smi", + "--query-gpu=pci.bus_id", + "--format=csv,noheader", + "-i", + str(gpu_index), + ], + capture_output=True, + text=True, + timeout=10, ) if result.returncode != 0 or not result.stdout.strip(): raise RuntimeError( @@ -138,7 +146,10 @@ def start(self) -> list[XorgInstance]: return list(self._instances) def _start_one( - self, xorg_path: str, gpu_id: int, display_num: int, + self, + xorg_path: str, + gpu_id: int, + display_num: int, ) -> XorgInstance: """Start a single Xorg server on the given GPU and display.""" pci_bus_id = _get_pci_bus_id(gpu_id) @@ -146,53 +157,95 @@ def _start_one( self._conf_files.append(conf_path) display_str = f":{display_num}" - cmd = [xorg_path, display_str, "-config", conf_path, "-noreset", "-nolisten", "tcp"] + cmd = [ + xorg_path, + display_str, + "-config", + conf_path, + "-noreset", + "-nolisten", + "tcp", + ] logger.info( "Starting Xorg on display %s using GPU %d (%s)", - display_str, gpu_id, pci_bus_id, + display_str, + gpu_id, + pci_bus_id, ) proc, used_sudo = self._launch_xorg(cmd, xorg_path) self._processes.append(proc) self._used_sudo.append(used_sudo) - self._wait_for_ready(display_num, proc) + try: + self._wait_for_ready(display_num, proc) + except RuntimeError as exc: + if not used_sudo and proc.poll() is not None: + if self._passwordless_sudo_available(xorg_path): + logger.info( + "Direct Xorg launch exited early on display %s; retrying with sudo", + display_str, + ) + self._processes.pop() + self._used_sudo.pop() + proc, used_sudo = self._launch_xorg_with_sudo(cmd, xorg_path) + self._processes.append(proc) + self._used_sudo.append(used_sudo) + self._wait_for_ready(display_num, proc) + else: + raise RuntimeError( + self._sudo_required_message(xorg_path, display_str) + ) from exc + else: + raise logger.info( "Xorg ready on display %s (PID %d, GPU %d)", - display_str, proc.pid, gpu_id, + display_str, + proc.pid, + gpu_id, ) return XorgInstance(display=display_num, gpu_id=gpu_id, pid=proc.pid) - def _launch_xorg(self, cmd: list[str], xorg_path: str) -> tuple[subprocess.Popen, bool]: + def _launch_xorg( + self, cmd: list[str], xorg_path: str + ) -> tuple[subprocess.Popen, bool]: """Try launching Xorg directly, fall back to sudo on PermissionError. Returns (process, used_sudo) so stop() knows whether to use sudo kill. """ try: proc = subprocess.Popen( - cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + cmd, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, preexec_fn=os.setsid, ) return proc, False except PermissionError: - logger.info("Direct Xorg launch failed (permission denied), retrying with sudo") + logger.info( + "Direct Xorg launch failed (permission denied), retrying with sudo" + ) + return self._launch_xorg_with_sudo(cmd, xorg_path) + + def _launch_xorg_with_sudo( + self, + cmd: list[str], + xorg_path: str, + ) -> tuple[subprocess.Popen, bool]: sudo_cmd = ["sudo", "-n"] + cmd try: proc = subprocess.Popen( - sudo_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + sudo_cmd, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, preexec_fn=os.setsid, ) return proc, True except (PermissionError, FileNotFoundError) as exc: - raise RuntimeError( - f"Xorg requires root privileges. Either run as root, or configure " - f"passwordless sudo:\n\n" - f" sudo bash -c 'echo \"$USER ALL=(ALL) NOPASSWD: {xorg_path}\" " - f">> /etc/sudoers.d/easi-xorg'" - ) from exc + raise RuntimeError(self._sudo_required_message(xorg_path)) from exc def _wait_for_ready(self, display_num: int, proc: subprocess.Popen) -> None: """Poll until the X server responds or timeout.""" @@ -208,7 +261,8 @@ def _wait_for_ready(self, display_num: int, proc: subprocess.Popen) -> None: try: result = subprocess.run( ["xset", "-display", display_str, "q"], - capture_output=True, timeout=2, + capture_output=True, + timeout=2, ) if result.returncode == 0: return @@ -231,6 +285,10 @@ def stop(self) -> None: proc.wait(timeout=5) except subprocess.TimeoutExpired: self._kill_proc(proc, signal.SIGKILL, sudo) + try: + proc.wait(timeout=2) + except subprocess.TimeoutExpired: + pass self._processes.clear() self._used_sudo.clear() @@ -251,9 +309,37 @@ def _kill_proc(proc: subprocess.Popen, sig: int, used_sudo: bool) -> None: if used_sudo: subprocess.run( ["sudo", "-n", "kill", f"-{sig}", f"-{pgid}"], - capture_output=True, timeout=5, + capture_output=True, + timeout=5, ) else: os.killpg(pgid, sig) except (ProcessLookupError, PermissionError, subprocess.TimeoutExpired): pass + + @staticmethod + def _passwordless_sudo_available(xorg_path: str) -> bool: + """Probe ``sudo -n -l `` — sudoers may only whitelist specific commands.""" + try: + result = subprocess.run( + ["sudo", "-n", "-l", xorg_path], + capture_output=True, + timeout=5, + ) + except (FileNotFoundError, subprocess.TimeoutExpired): + return False + return result.returncode == 0 + + @staticmethod + def _sudo_required_message(xorg_path: str, display_str: str | None = None) -> str: + display_hint = "" + if display_str is not None: + display_hint = ( + f"Xorg exited before becoming ready on display {display_str}. " + ) + user = os.environ.get("USER", "$USER") + return ( + f"{display_hint}This usually requires root or a console session.\n" + f"To fix this, run EASI as root or authorize passwordless sudo:\n\n" + f" sudo bash -c 'echo \"{user} ALL=(ALL) NOPASSWD: {xorg_path}, /usr/bin/kill\" > /etc/sudoers.d/easi-xorg'" + ) diff --git a/easi/core/render_platforms/xvfb.py b/easi/core/render_platforms/xvfb.py new file mode 100644 index 0000000..8afcf0e --- /dev/null +++ b/easi/core/render_platforms/xvfb.py @@ -0,0 +1,22 @@ +"""Xvfb render platform — virtual framebuffer via xvfb-run.""" + +from __future__ import annotations + +from .base import RenderPlatform + + +class XvfbPlatform(RenderPlatform): + """Always wrap with ``xvfb-run``.""" + + @property + def name(self) -> str: + return "xvfb" + + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: + return [ + "xvfb-run", "-a", + "-s", f"-screen 0 {screen_config}", + ] + cmd + + def get_system_deps(self) -> list[str]: + return ["xvfb"] diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 22e1bc0..585c5fb 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -146,7 +146,7 @@ def _setup_render_platform(self, backend: str | None = None): no-op. Returns ``None`` when no ``--render-platform`` was specified (the platform is then resolved per-simulator in ``_create_simulator``). """ - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform if not self.render_platform_name: return None @@ -201,7 +201,7 @@ def run(self) -> list[dict]: # 2. Resolve LLM backend and optionally start server backend, base_url = self._resolve_llm_backend() server = None - render_platform = None + self._render_platform = None try: if backend in ("vllm", "custom") and base_url is None: @@ -728,7 +728,7 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" # --- Docker runtime path --- if entry.runtime == "docker": from easi.core.docker_env_manager import DockerEnvironmentManager - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform assert isinstance(env_manager, DockerEnvironmentManager), ( f"Simulator {simulator_key} declares runtime=docker but env_manager " @@ -783,7 +783,7 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" render_platform = resolve_render_platform(simulator_key, platform_name, env_manager=env_manager) # Pass platform name to get_env_vars for conditional logic - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars env_vars = env_manager.get_env_vars(render_platform_name=platform_name) diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index 7561af1..f46bd5a 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -16,7 +16,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager -from easi.core.render_platform import EnvVars +from easi.core.render_platforms import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) diff --git a/easi/simulators/dummy/v1/render_platforms.py b/easi/simulators/dummy/v1/render_platforms.py index 6c077e1..a4d7acb 100644 --- a/easi/simulators/dummy/v1/render_platforms.py +++ b/easi/simulators/dummy/v1/render_platforms.py @@ -1,6 +1,6 @@ """Custom render platforms for the dummy simulator (for testing).""" -from easi.core.render_platform import EnvVars, HeadlessPlatform +from easi.core.render_platforms import EnvVars, HeadlessPlatform class DummyCustomPlatform(HeadlessPlatform): diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 6c39d92..2aefc00 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -30,7 +30,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager -from easi.core.render_platform import EnvVars +from easi.core.render_platforms import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) diff --git a/easi/simulators/omnigibson/v3_7_2/render_platforms.py b/easi/simulators/omnigibson/v3_7_2/render_platforms.py index 3626ecf..0c5cfeb 100644 --- a/easi/simulators/omnigibson/v3_7_2/render_platforms.py +++ b/easi/simulators/omnigibson/v3_7_2/render_platforms.py @@ -9,7 +9,7 @@ import os -from easi.core.render_platform import AutoPlatform, EnvVars, NativePlatform +from easi.core.render_platforms import AutoPlatform, EnvVars, NativePlatform class OmniGibsonNativePlatform(NativePlatform): diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index 3023769..e5b2e01 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -150,7 +150,7 @@ def resolve_render_platform(key: str, platform_name: str, env_manager=None): Returns: Instantiated RenderPlatform. """ - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform entry = get_simulator_entry(key) custom_class_path = entry.render_platforms.get(platform_name) diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 1fbcb86..37f94c6 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -28,7 +28,7 @@ write_command, ) from easi.core.exceptions import SimulatorError, SimulatorTimeoutError -from easi.core.render_platform import EnvVars, RenderPlatform +from easi.core.render_platforms import EnvVars, RenderPlatform from easi.utils.logging import get_logger logger = get_logger(__name__) diff --git a/easi/simulators/tdw/v1_11_23/env_manager.py b/easi/simulators/tdw/v1_11_23/env_manager.py index 3c2cc09..0b9d88c 100644 --- a/easi/simulators/tdw/v1_11_23/env_manager.py +++ b/easi/simulators/tdw/v1_11_23/env_manager.py @@ -13,7 +13,7 @@ from pathlib import Path from easi.core.base_env_manager import BaseEnvironmentManager -from easi.core.render_platform import EnvVars +from easi.core.render_platforms import EnvVars from easi.utils.logging import get_logger logger = get_logger(__name__) diff --git a/tests/test_docker_isolation.py b/tests/test_docker_isolation.py index d5ebb6c..33e7d88 100644 --- a/tests/test_docker_isolation.py +++ b/tests/test_docker_isolation.py @@ -197,7 +197,7 @@ def test_launch_docker_builds_correct_command(self): """launch_docker() builds a docker run command and spawns it.""" from easi.core.docker_env_manager import DockerEnvironmentManager from easi.simulators.subprocess_runner import SubprocessRunner - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform # Use a real bridge script path under the EASI repo root so that # relative_to() in _build_docker_launch_command works correctly. diff --git a/tests/test_dummy_simulator.py b/tests/test_dummy_simulator.py index 42b926b..456257d 100644 --- a/tests/test_dummy_simulator.py +++ b/tests/test_dummy_simulator.py @@ -14,7 +14,7 @@ @pytest.fixture def dummy_simulator(): """Create and start a dummy simulator, cleaning up after the test.""" - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform env_manager = DummyEnvManager() sim = DummySimulator() @@ -88,7 +88,7 @@ def test_is_running(dummy_simulator): def test_dummy_simulator_with_env_vars_wiring(): """Verify DummyEnvManager.get_env_vars() returns empty EnvVars and doesn't break launch.""" - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform env_manager = DummyEnvManager() env_vars = env_manager.get_env_vars() diff --git a/tests/test_env_manager.py b/tests/test_env_manager.py index 092ce9f..fcf1259 100644 --- a/tests/test_env_manager.py +++ b/tests/test_env_manager.py @@ -12,7 +12,7 @@ class TestEnvManagerGetEnvVars: """Tests for the get_env_vars() method.""" def test_default_returns_empty_envvars(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars from easi.simulators.dummy.v1.env_manager import DummyEnvManager mgr = DummyEnvManager() @@ -21,7 +21,7 @@ def test_default_returns_empty_envvars(self): assert not result def test_returns_envvars_type(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars from easi.simulators.dummy.v1.env_manager import DummyEnvManager mgr = DummyEnvManager() diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index b9d22d8..e4aeb56 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -10,7 +10,7 @@ class TestEnvVarsWiring: """Verify env vars flow from env_manager to SubprocessRunner.""" def test_runner_passes_env_vars_to_subprocess(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -51,7 +51,7 @@ def test_runner_passes_env_vars_to_subprocess(self): assert extra_env.replace == {"SIM_ROOT": "/opt/sim"} def test_runner_passes_none_when_no_env_vars(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) diff --git a/tests/test_installation_kwargs.py b/tests/test_installation_kwargs.py index d5b18d3..558eecd 100644 --- a/tests/test_installation_kwargs.py +++ b/tests/test_installation_kwargs.py @@ -53,7 +53,7 @@ class TestRunnerUsesFactory: """EvaluationRunner._create_simulator uses the factory.""" def test_runner_passes_installation_kwargs(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) diff --git a/tests/test_subprocess_runner.py b/tests/test_subprocess_runner.py index 5641b4c..40e3ad6 100644 --- a/tests/test_subprocess_runner.py +++ b/tests/test_subprocess_runner.py @@ -5,7 +5,7 @@ import os from pathlib import Path -from easi.core.render_platform import EnvVars, get_render_platform +from easi.core.render_platforms import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner diff --git a/tests/test_xorg.py b/tests/test_xorg.py index cca18ef..72b0818 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -8,18 +8,21 @@ import pytest +_MGR = "easi.core.render_platforms.xorg_manager" # canonical module for XorgManager internals +_XORG = "easi.core.render_platforms.xorg" # canonical module for XorgPlatform + class TestXorgWorkerPlatform: """Test _XorgWorkerPlatform env vars and command wrapping.""" def test_name(self): - from easi.core.xorg_platform import _XorgWorkerPlatform + from easi.core.render_platforms.xorg import _XorgWorkerPlatform p = _XorgWorkerPlatform(display_num=10, gpu_id=4) assert p.name == "xorg" def test_env_vars(self): - from easi.core.xorg_platform import _XorgWorkerPlatform + from easi.core.render_platforms.xorg import _XorgWorkerPlatform p = _XorgWorkerPlatform(display_num=10, gpu_id=4) ev = p.get_env_vars() @@ -28,14 +31,14 @@ def test_env_vars(self): assert ev.replace["EASI_GPU_DISPLAY"] == "1" def test_wrap_command_passthrough(self): - from easi.core.xorg_platform import _XorgWorkerPlatform + from easi.core.render_platforms.xorg import _XorgWorkerPlatform p = _XorgWorkerPlatform(display_num=10, gpu_id=4) cmd = ["python", "bridge.py", "--workspace", "/tmp"] assert p.wrap_command(cmd, "1024x768x24") == cmd def test_is_available(self): - from easi.core.xorg_platform import _XorgWorkerPlatform + from easi.core.render_platforms.xorg import _XorgWorkerPlatform p = _XorgWorkerPlatform(display_num=10, gpu_id=4) assert p.is_available() is True @@ -45,20 +48,20 @@ class TestXorgPlatformLifecycle: """Test XorgPlatform setup/teardown/for_worker lifecycle.""" def test_name(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.render_platforms.xorg import XorgPlatform p = XorgPlatform() assert p.name == "xorg" def test_for_worker_without_setup_raises(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.render_platforms.xorg import XorgPlatform p = XorgPlatform() with pytest.raises(RuntimeError, match="setup.*must be called"): p.for_worker(0) def test_teardown_without_setup_is_safe(self): - from easi.core.xorg_platform import XorgPlatform + from easi.core.render_platforms.xorg import XorgPlatform p = XorgPlatform() p.teardown() # should not raise @@ -68,26 +71,26 @@ class TestXorgManager: """Test XorgManager lifecycle with mocked subprocesses.""" def test_no_xorg_binary_raises(self): - from easi.core.xorg_manager import XorgManager + from easi.core.render_platforms.xorg_manager import XorgManager - with patch("easi.core.xorg_manager.shutil.which", return_value=None): + with patch(f"{_MGR}.shutil.which", return_value=None): mgr = XorgManager(gpu_ids=[0]) with pytest.raises(RuntimeError, match="Xorg is not installed"): mgr.start() def test_start_single_gpu(self): - from easi.core.xorg_manager import XorgManager + from easi.core.render_platforms.xorg_manager import XorgManager mock_proc = MagicMock() mock_proc.pid = 12345 mock_proc.poll.return_value = None with ( - patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), - patch("easi.core.xorg_manager.subprocess.Popen", return_value=mock_proc), - patch("easi.core.xorg_manager.subprocess.run") as mock_run, - patch("easi.core.xorg_manager.os.path.exists", return_value=False), - patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), + patch(f"{_MGR}.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch(f"{_MGR}.subprocess.Popen", return_value=mock_proc), + patch(f"{_MGR}.subprocess.run") as mock_run, + patch(f"{_MGR}.os.path.exists", return_value=False), + patch(f"{_MGR}._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), ): nvidia_result = MagicMock() nvidia_result.returncode = 0 @@ -105,18 +108,18 @@ def test_start_single_gpu(self): assert instances[0].pid == 12345 def test_start_multi_gpu(self): - from easi.core.xorg_manager import XorgManager + from easi.core.render_platforms.xorg_manager import XorgManager mock_proc = MagicMock() mock_proc.pid = 99999 mock_proc.poll.return_value = None with ( - patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), - patch("easi.core.xorg_manager.subprocess.Popen", return_value=mock_proc), - patch("easi.core.xorg_manager.subprocess.run") as mock_run, - patch("easi.core.xorg_manager.os.path.exists", return_value=False), - patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), + patch(f"{_MGR}.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch(f"{_MGR}.subprocess.Popen", return_value=mock_proc), + patch(f"{_MGR}.subprocess.run") as mock_run, + patch(f"{_MGR}.os.path.exists", return_value=False), + patch(f"{_MGR}._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), ): nvidia0 = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") xset0 = MagicMock(returncode=0) @@ -133,7 +136,7 @@ def test_start_multi_gpu(self): assert instances[0].display != instances[1].display def test_stop_sends_sigterm(self): - from easi.core.xorg_manager import XorgInstance, XorgManager + from easi.core.render_platforms.xorg_manager import XorgInstance, XorgManager mgr = XorgManager(gpu_ids=[0]) mock_proc = MagicMock() @@ -144,14 +147,14 @@ def test_stop_sends_sigterm(self): mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] mgr._conf_files = [] - with patch("easi.core.xorg_manager.os.getpgid", return_value=12345), \ - patch("easi.core.xorg_manager.os.killpg") as mock_killpg: + with patch(f"{_MGR}.os.getpgid", return_value=12345), \ + patch(f"{_MGR}.os.killpg") as mock_killpg: mgr.stop() mock_killpg.assert_called_with(12345, signal.SIGTERM) def test_stop_uses_sudo_kill_for_sudo_launched(self): """Sudo-launched Xorg processes are killed via sudo kill.""" - from easi.core.xorg_manager import XorgInstance, XorgManager + from easi.core.render_platforms.xorg_manager import XorgInstance, XorgManager mgr = XorgManager(gpu_ids=[0]) mock_proc = MagicMock() @@ -162,9 +165,9 @@ def test_stop_uses_sudo_kill_for_sudo_launched(self): mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] mgr._conf_files = [] - with patch("easi.core.xorg_manager.os.getpgid", return_value=12345), \ - patch("easi.core.xorg_manager.os.killpg") as mock_killpg, \ - patch("easi.core.xorg_manager.subprocess.run") as mock_run: + with patch(f"{_MGR}.os.getpgid", return_value=12345), \ + patch(f"{_MGR}.os.killpg") as mock_killpg, \ + patch(f"{_MGR}.subprocess.run") as mock_run: mgr.stop() mock_killpg.assert_not_called() mock_run.assert_called_once_with( @@ -174,7 +177,7 @@ def test_stop_uses_sudo_kill_for_sudo_launched(self): def test_sudo_fallback(self): """If direct Xorg fails with PermissionError, retry with sudo.""" - from easi.core.xorg_manager import XorgManager + from easi.core.render_platforms.xorg_manager import XorgManager call_count = 0 def mock_popen(cmd, **kwargs): @@ -188,11 +191,11 @@ def mock_popen(cmd, **kwargs): return proc with ( - patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), - patch("easi.core.xorg_manager.subprocess.Popen", side_effect=mock_popen), - patch("easi.core.xorg_manager.subprocess.run") as mock_run, - patch("easi.core.xorg_manager.os.path.exists", return_value=False), - patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), + patch(f"{_MGR}.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch(f"{_MGR}.subprocess.Popen", side_effect=mock_popen), + patch(f"{_MGR}.subprocess.run") as mock_run, + patch(f"{_MGR}.os.path.exists", return_value=False), + patch(f"{_MGR}._write_xorg_conf", return_value="/tmp/easi-xorg-gpu0.conf"), ): nvidia_result = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") xset_result = MagicMock(returncode=0) @@ -207,7 +210,7 @@ def mock_popen(cmd, **kwargs): def test_start_failure_stops_all(self): """If one GPU's Xorg fails, previously started ones are stopped.""" - from easi.core.xorg_manager import XorgManager + from easi.core.render_platforms.xorg_manager import XorgManager started_procs = [] @@ -222,13 +225,13 @@ def mock_popen(cmd, **kwargs): return proc with ( - patch("easi.core.xorg_manager.shutil.which", return_value="/usr/lib/xorg/Xorg"), - patch("easi.core.xorg_manager.subprocess.Popen", side_effect=mock_popen), - patch("easi.core.xorg_manager.subprocess.run") as mock_run, - patch("easi.core.xorg_manager.os.path.exists", return_value=False), - patch("easi.core.xorg_manager.os.getpgid", return_value=11111), - patch("easi.core.xorg_manager.os.killpg"), - patch("easi.core.xorg_manager._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), + patch(f"{_MGR}.shutil.which", return_value="/usr/lib/xorg/Xorg"), + patch(f"{_MGR}.subprocess.Popen", side_effect=mock_popen), + patch(f"{_MGR}.subprocess.run") as mock_run, + patch(f"{_MGR}.os.path.exists", return_value=False), + patch(f"{_MGR}.os.getpgid", return_value=11111), + patch(f"{_MGR}.os.killpg"), + patch(f"{_MGR}._write_xorg_conf", return_value="/tmp/easi-xorg-gpu.conf"), ): nvidia0 = MagicMock(returncode=0, stdout="00000000:3F:00.0\n") xset0 = MagicMock(returncode=0) @@ -243,57 +246,60 @@ def mock_popen(cmd, **kwargs): class TestPerWorkerGpuPinning: - """Test per-worker GPU round-robin in _create_simulator.""" + """Test per-worker GPU round-robin via XorgPlatform.for_worker().""" def test_round_robin_two_gpus(self): """Workers are assigned to GPUs in round-robin order.""" - sim_gpus = [4, 5] - for worker_id in range(6): - expected_gpu = sim_gpus[worker_id % len(sim_gpus)] - actual_gpu = sim_gpus[worker_id % len(sim_gpus)] - assert actual_gpu == expected_gpu + from easi.core.render_platforms.xorg import XorgPlatform + from easi.core.render_platforms.xorg_manager import XorgInstance + + p = XorgPlatform() + p._instances = [ + XorgInstance(display=10, gpu_id=4, pid=1), + XorgInstance(display=11, gpu_id=5, pid=2), + ] + gpus = [p.for_worker(i).gpu_id for i in range(6)] + assert gpus == [4, 5, 4, 5, 4, 5] def test_single_gpu_all_workers_same(self): """With one GPU, all workers get the same GPU.""" - sim_gpus = [4] + from easi.core.render_platforms.xorg import XorgPlatform + from easi.core.render_platforms.xorg_manager import XorgInstance + + p = XorgPlatform() + p._instances = [XorgInstance(display=10, gpu_id=4, pid=1)] for worker_id in range(4): - assert sim_gpus[worker_id % len(sim_gpus)] == 4 + assert p.for_worker(worker_id).gpu_id == 4 class TestXorgRunnerIntegration: """Test Xorg integration logic in runners.""" - def test_xorg_defaults_to_gpu_0(self): - """Without --sim-gpus, xorg defaults to GPU 0.""" - gpu_ids = None or [0] - assert gpu_ids == [0] + def test_xorg_defaults_to_gpu_0_when_no_sim_gpus(self): + """XorgPlatform.setup() uses GPU 0 when gpu_ids is None.""" + from easi.core.render_platforms.xorg import XorgPlatform + from easi.core.render_platforms.xorg_manager import XorgInstance + + p = XorgPlatform() + mock_mgr = MagicMock() + mock_mgr.start.return_value = [XorgInstance(display=10, gpu_id=0, pid=1)] + + with patch(f"{_XORG}.XorgManager", return_value=mock_mgr) as MockMgr: + p.setup(gpu_ids=None) + MockMgr.assert_called_once_with(gpu_ids=[0]) def test_xorg_uses_sim_gpus_when_specified(self): - """With --sim-gpus, xorg uses those GPUs.""" - sim_gpus = [2, 3] - gpu_ids = sim_gpus or [0] - assert gpu_ids == [2, 3] - - def test_xorg_warns_on_gpu_contention(self): - """Warn when xorg + local LLM both default to GPU 0.""" - render_platform = "xorg" - sim_gpus = None - backend = "vllm" - llm_gpus = None - should_warn = ( - render_platform == "xorg" - and not sim_gpus - and backend in ("vllm", "custom") - and not llm_gpus - ) - assert should_warn is True - - def test_xorg_no_warn_with_sim_gpus(self): - """No warning when sim_gpus is specified.""" - should_warn = ( - "xorg" == "xorg" - and not [2, 3] - and "vllm" in ("vllm", "custom") - and not None - ) - assert should_warn is False + """XorgPlatform.setup() uses provided gpu_ids.""" + from easi.core.render_platforms.xorg import XorgPlatform + from easi.core.render_platforms.xorg_manager import XorgInstance + + p = XorgPlatform() + mock_mgr = MagicMock() + mock_mgr.start.return_value = [ + XorgInstance(display=10, gpu_id=2, pid=1), + XorgInstance(display=11, gpu_id=3, pid=2), + ] + + with patch(f"{_XORG}.XorgManager", return_value=mock_mgr) as MockMgr: + p.setup(gpu_ids=[2, 3]) + MockMgr.assert_called_once_with(gpu_ids=[2, 3]) From a2acb53f6b1040d9a3048e771ea3a4ca50d1a453 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 11 Mar 2026 14:00:13 +0800 Subject: [PATCH 197/239] fix: initialize _render_platform in ParallelRunner --- easi/evaluation/parallel_runner.py | 1 + 1 file changed, 1 insertion(+) diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index a78981e..323fcf3 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -122,6 +122,7 @@ def run(self) -> list[dict]: # --- Resolve LLM backend and vLLM URLs --- backend, base_url = self._resolve_llm_backend() server_mgr = None + self._render_platform = None try: if backend in ("vllm", "custom") and base_url is None: From 537c5df39069feb93daceea2bfaef19f622a0dbc Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 11 Mar 2026 14:01:11 +0800 Subject: [PATCH 198/239] feat: add CoppeliaSimXorgPlatform for GPU-accelerated rendering --- easi/simulators/coppeliasim/manifest.yaml | 1 + .../coppeliasim/v4_1_0/render_platforms.py | 58 +++- tests/test_render_platform.py | 318 +++++++++++++----- 3 files changed, 280 insertions(+), 97 deletions(-) diff --git a/easi/simulators/coppeliasim/manifest.yaml b/easi/simulators/coppeliasim/manifest.yaml index fbb57f2..ae4f3e5 100644 --- a/easi/simulators/coppeliasim/manifest.yaml +++ b/easi/simulators/coppeliasim/manifest.yaml @@ -11,6 +11,7 @@ versions: auto: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimAutoPlatform" native: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimNativePlatform" xvfb: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimXvfbPlatform" + xorg: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimXorgPlatform" installation_kwargs: binary_url: "https://downloads.coppeliarobotics.com/V4_1_0/CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" binary_filename: "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" diff --git a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py index 2d7e802..1d622d9 100644 --- a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py +++ b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py @@ -16,16 +16,21 @@ import os from pathlib import Path -from easi.core.render_platform import ( +from easi.core.render_platforms import ( AutoPlatform, EnvVars, NativePlatform, + XorgPlatform, XvfbPlatform, + _XorgWorkerPlatform, ) def _coppeliasim_qt_env_vars( - env_manager, *, include_mesa_egl: bool = False, headless: bool = True, + env_manager, + *, + include_mesa_egl: bool = False, + headless: bool = True, ) -> EnvVars: """Compute CoppeliaSim Qt env vars. @@ -73,7 +78,9 @@ def name(self) -> str: def get_env_vars(self) -> EnvVars: return _coppeliasim_qt_env_vars( - self._env_manager, include_mesa_egl=False, headless=False, + self._env_manager, + include_mesa_egl=False, + headless=False, ) @@ -90,7 +97,9 @@ def name(self) -> str: def get_env_vars(self) -> EnvVars: return _coppeliasim_qt_env_vars( - self._env_manager, include_mesa_egl=True, headless=True, + self._env_manager, + include_mesa_egl=True, + headless=True, ) @@ -112,3 +121,44 @@ def get_env_vars(self) -> EnvVars: include_mesa_egl=not has_display, headless=not has_display, ) + + +class _CoppeliaSimXorgWorkerPlatform(_XorgWorkerPlatform): + """Per-worker Xorg platform with CoppeliaSim Qt env vars merged in.""" + + def __init__(self, display_num: int, gpu_id: int, coppeliasim_env: EnvVars): + super().__init__(display_num=display_num, gpu_id=gpu_id) + self._coppeliasim_env = coppeliasim_env + + def get_env_vars(self) -> EnvVars: + return EnvVars.merge(super().get_env_vars(), self._coppeliasim_env) + + +class CoppeliaSimXorgPlatform(XorgPlatform): + """Xorg platform for CoppeliaSim — Qt plugin path, no Mesa, headless=False. + + Xorg provides a real GPU-accelerated X11 display, so CoppeliaSim renders + with its GUI library (not headless). Per-worker instances include the + CoppeliaSim Qt env vars. + """ + + @property + def name(self) -> str: + return "xorg" + + def for_worker(self, worker_id: int) -> _CoppeliaSimXorgWorkerPlatform: + if not self._instances: + raise RuntimeError( + "XorgPlatform.setup() must be called before for_worker()" + ) + inst = self._instances[worker_id % len(self._instances)] + coppeliasim_env = _coppeliasim_qt_env_vars( + self._env_manager, + include_mesa_egl=False, + headless=False, + ) + return _CoppeliaSimXorgWorkerPlatform( + display_num=inst.display, + gpu_id=inst.gpu_id, + coppeliasim_env=coppeliasim_env, + ) diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index 7bc0557..d792d99 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -13,28 +13,28 @@ class TestEnvVarsDataclass: """Test the EnvVars dataclass.""" def test_empty_is_falsy(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars assert not EnvVars() def test_replace_is_truthy(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars assert EnvVars(replace={"FOO": "bar"}) def test_prepend_is_truthy(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars assert EnvVars(prepend={"PATH": "/extra"}) def test_to_flat_dict(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars ev = EnvVars(replace={"A": "1"}, prepend={"B": "2"}) assert ev.to_flat_dict() == {"A": "1", "B": "2"} def test_apply_to_env_replace(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars ev = EnvVars(replace={"FOO": "new"}) result = ev.apply_to_env({"FOO": "old", "BAR": "keep"}) @@ -42,21 +42,21 @@ def test_apply_to_env_replace(self): assert result["BAR"] == "keep" def test_apply_to_env_prepend_existing(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars ev = EnvVars(prepend={"PATH": "/new"}) result = ev.apply_to_env({"PATH": "/old"}) assert result["PATH"] == "/new:/old" def test_apply_to_env_prepend_missing(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars ev = EnvVars(prepend={"LD_LIBRARY_PATH": "/lib"}) result = ev.apply_to_env({}) assert result["LD_LIBRARY_PATH"] == "/lib" def test_merge_replace_later_wins(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars a = EnvVars(replace={"K": "a"}) b = EnvVars(replace={"K": "b"}) @@ -64,7 +64,7 @@ def test_merge_replace_later_wins(self): assert merged.replace["K"] == "b" def test_merge_prepend_concatenates(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars a = EnvVars(prepend={"PATH": "/a"}) b = EnvVars(prepend={"PATH": "/b"}) @@ -72,7 +72,7 @@ def test_merge_prepend_concatenates(self): assert merged.prepend["PATH"] == "/b:/a" def test_merge_mixed(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars a = EnvVars(replace={"ROOT": "/opt"}, prepend={"PATH": "/a/bin"}) b = EnvVars(replace={"HOME": "/home"}, prepend={"PATH": "/b/bin"}) @@ -85,43 +85,43 @@ class TestRenderPlatformRegistry: """Test platform discovery and instantiation.""" def test_get_platform_returns_auto(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform platform = get_render_platform("auto") assert platform.name == "auto" def test_get_platform_returns_xvfb(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform platform = get_render_platform("xvfb") assert platform.name == "xvfb" def test_get_platform_returns_native(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform platform = get_render_platform("native") assert platform.name == "native" def test_get_platform_returns_egl(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform platform = get_render_platform("egl") assert platform.name == "egl" def test_get_platform_returns_headless(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform platform = get_render_platform("headless") assert platform.name == "headless" def test_get_platform_unknown_raises(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform with pytest.raises(ValueError, match="Unknown render platform"): get_render_platform("nonexistent") def test_available_platforms_returns_names(self): - from easi.core.render_platform import available_platforms + from easi.core.render_platforms import available_platforms names = available_platforms() assert set(names) >= {"auto", "native", "xvfb", "egl", "headless"} @@ -131,14 +131,14 @@ class TestHeadlessPlatform: """Headless: no wrapping, no env vars.""" def test_wrap_command_passthrough(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("headless") cmd = ["python", "bridge.py"] assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform p = get_render_platform("headless") ev = p.get_env_vars() @@ -146,7 +146,7 @@ def test_get_env_vars_empty(self): assert not ev def test_get_system_deps_empty(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("headless") assert p.get_system_deps() == [] @@ -156,7 +156,7 @@ class TestXvfbPlatform: """Xvfb: always wraps with xvfb-run.""" def test_wrap_command_prepends_xvfb_run(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("xvfb") cmd = ["python", "bridge.py"] @@ -166,7 +166,7 @@ def test_wrap_command_prepends_xvfb_run(self): assert wrapped[-2:] == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform p = get_render_platform("xvfb") ev = p.get_env_vars() @@ -174,7 +174,7 @@ def test_get_env_vars_empty(self): assert not ev def test_get_system_deps_includes_xvfb(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("xvfb") assert "xvfb" in p.get_system_deps() @@ -184,14 +184,14 @@ class TestNativePlatform: """Native: passthrough, requires DISPLAY.""" def test_wrap_command_passthrough(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("native") cmd = ["python", "bridge.py"] assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_empty(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform p = get_render_platform("native") ev = p.get_env_vars() @@ -199,14 +199,14 @@ def test_get_env_vars_empty(self): assert not ev def test_is_available_true_when_display_set(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("native") with patch.dict(os.environ, {"DISPLAY": ":0"}): assert p.is_available() is True def test_is_available_false_when_no_display(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("native") with patch.dict(os.environ, {}, clear=True): @@ -217,14 +217,14 @@ class TestEGLPlatform: """EGL: no wrapping, sets PYOPENGL_PLATFORM.""" def test_wrap_command_passthrough(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("egl") cmd = ["python", "bridge.py"] assert p.wrap_command(cmd, "1024x768x24") == cmd def test_get_env_vars_sets_pyopengl(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform p = get_render_platform("egl") ev = p.get_env_vars() @@ -232,7 +232,7 @@ def test_get_env_vars_sets_pyopengl(self): assert ev.replace["PYOPENGL_PLATFORM"] == "egl" def test_get_system_deps_includes_egl(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("egl") assert "egl" in p.get_system_deps() @@ -242,7 +242,7 @@ class TestAutoPlatform: """Auto: native if DISPLAY exists, xvfb fallback otherwise.""" def test_wrap_command_uses_native_when_display_set(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("auto") cmd = ["python", "bridge.py"] @@ -250,7 +250,7 @@ def test_wrap_command_uses_native_when_display_set(self): assert p.wrap_command(cmd, "1024x768x24") == cmd def test_wrap_command_uses_xvfb_when_no_display(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("auto") cmd = ["python", "bridge.py"] @@ -261,7 +261,7 @@ def test_wrap_command_uses_xvfb_when_no_display(self): assert wrapped[0] == "xvfb-run" def test_get_system_deps_empty(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform p = get_render_platform("auto") assert p.get_system_deps() == [] @@ -299,7 +299,7 @@ def test_screen_config_default(self): assert mgr.screen_config == "1024x768x24" def test_get_env_vars_returns_envvars(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars mgr = self._make_stub() ev = mgr.get_env_vars() @@ -311,7 +311,7 @@ class TestSubprocessRunnerRenderPlatform: """Verify SubprocessRunner uses RenderPlatform for command wrapping.""" def test_accepts_render_platform_param(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("headless") @@ -323,7 +323,7 @@ def test_accepts_render_platform_param(self): assert runner.render_platform.name == "headless" def test_build_command_uses_platform_wrap(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("xvfb") @@ -339,7 +339,7 @@ def test_build_command_uses_platform_wrap(self): assert "1280x720x24" in cmd[3] def test_build_command_headless_no_wrap(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("headless") @@ -353,7 +353,7 @@ def test_build_command_headless_no_wrap(self): assert cmd[0] == "/usr/bin/python3" def test_platform_env_vars_merged(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("egl") @@ -368,7 +368,7 @@ def test_platform_env_vars_merged(self): assert env["SIM_ROOT"] == "/opt/sim" def test_no_env_vars_returns_none(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner p = get_render_platform("headless") @@ -406,7 +406,9 @@ def test_habitat(self): assert "egl" in mgr.supported_render_platforms def test_coppeliasim(self): - from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + from easi.simulators.coppeliasim.v4_1_0.env_manager import ( + CoppeliaSimEnvManagerV410, + ) mgr = CoppeliaSimEnvManagerV410() assert mgr.default_render_platform == "auto" @@ -417,9 +419,13 @@ def test_coppeliasim_env_vars_are_platform_agnostic(self): Those platform-specific vars are now handled by custom render platform classes. """ - from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + from easi.simulators.coppeliasim.v4_1_0.env_manager import ( + CoppeliaSimEnvManagerV410, + ) - mgr = CoppeliaSimEnvManagerV410(installation_kwargs={"binary_dir_name": "CoppeliaSim"}) + mgr = CoppeliaSimEnvManagerV410( + installation_kwargs={"binary_dir_name": "CoppeliaSim"} + ) ev = mgr.get_env_vars() all_keys = set(ev.replace) | set(ev.prepend) assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in all_keys @@ -465,7 +471,7 @@ def test_simulator_entry_has_custom_render_platforms(self): } def test_resolve_falls_back_to_builtin(self): - from easi.core.render_platform import HeadlessPlatform + from easi.core.render_platforms import HeadlessPlatform from easi.simulators.registry import resolve_render_platform platform = resolve_render_platform("dummy", "headless") @@ -491,8 +497,11 @@ def test_resolve_name_mismatch_raises(self): from easi.simulators.registry import SimulatorEntry fake_entry = SimulatorEntry( - name="fake", version="v1", description="", - simulator_class="", env_manager_class="", + name="fake", + version="v1", + description="", + simulator_class="", + env_manager_class="", python_version="3.10", render_platforms={ "wrong_name": "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" @@ -504,15 +513,18 @@ def test_resolve_name_mismatch_raises(self): def test_custom_shadows_builtin(self): """A custom 'headless' class should be returned instead of the built-in.""" - from easi.core.render_platform import HeadlessPlatform + from easi.core.render_platforms import HeadlessPlatform from easi.simulators.registry import resolve_render_platform with patch("easi.simulators.registry._get_registry") as mock_reg: from easi.simulators.registry import SimulatorEntry fake_entry = SimulatorEntry( - name="fake", version="v1", description="", - simulator_class="", env_manager_class="", + name="fake", + version="v1", + description="", + simulator_class="", + env_manager_class="", python_version="3.10", render_platforms={ "headless": "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" @@ -524,13 +536,15 @@ def test_custom_shadows_builtin(self): # To truly shadow, we need a class whose name IS "headless". # Let's test the lookup path: if a custom class is found, it's used. # We'll patch _import_class to return a class with name "headless". - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars class CustomHeadless(HeadlessPlatform): def get_env_vars(self): return EnvVars(replace={"CUSTOM": "1"}) - with patch("easi.simulators.registry._import_class", return_value=CustomHeadless): + with patch( + "easi.simulators.registry._import_class", return_value=CustomHeadless + ): platform = resolve_render_platform("fake:v1", "headless") assert isinstance(platform, CustomHeadless) assert platform.name == "headless" @@ -633,6 +647,7 @@ def test_manifest_registers_custom_platforms(self): assert "auto" in entry.render_platforms assert "native" in entry.render_platforms assert "xvfb" in entry.render_platforms + assert "xorg" in entry.render_platforms def test_resolve_coppeliasim_custom_platform(self): from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( @@ -644,6 +659,48 @@ def test_resolve_coppeliasim_custom_platform(self): assert isinstance(platform, CoppeliaSimAutoPlatform) assert platform.name == "auto" + def test_xorg_has_qt_plugin_path_and_headless_false(self): + from easi.core.render_platforms.xorg_manager import XorgInstance + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXorgPlatform, + ) + + mgr = self._make_mock_env_manager() + p = CoppeliaSimXorgPlatform(env_manager=mgr) + assert p.name == "xorg" + p._instances = [XorgInstance(display=10, gpu_id=0, pid=1)] + worker = p.for_worker(0) + ev = worker.get_env_vars() + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert ev.replace["DISPLAY"] == ":10" + assert ev.replace["CUDA_VISIBLE_DEVICES"] == "0" + + def test_xorg_no_env_manager_returns_base_env_only(self): + from easi.core.render_platforms.xorg_manager import XorgInstance + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXorgPlatform, + ) + + p = CoppeliaSimXorgPlatform() + p._instances = [XorgInstance(display=11, gpu_id=2, pid=1)] + worker = p.for_worker(0) + ev = worker.get_env_vars() + assert ev.replace["DISPLAY"] == ":11" + assert ev.replace["CUDA_VISIBLE_DEVICES"] == "2" + assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in ev.prepend + + def test_xorg_resolve_from_registry(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimXorgPlatform, + ) + from easi.simulators.registry import resolve_render_platform + + platform = resolve_render_platform("coppeliasim:v4_1_0", "xorg") + assert isinstance(platform, CoppeliaSimXorgPlatform) + assert platform.name == "xorg" + from unittest.mock import MagicMock @@ -677,7 +734,7 @@ class TestRunnerRenderPlatformWiring: """Verify EvaluationRunner resolves and passes render platform.""" def _make_mock_env_mgr(self): - from easi.core.render_platform import EnvVars + from easi.core.render_platforms import EnvVars mgr = MagicMock() mgr.env_is_ready.return_value = True @@ -700,7 +757,7 @@ def _make_mock_task(self, render_platform=None): return task def test_default_uses_env_manager_platform(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -711,24 +768,39 @@ def test_default_uses_env_manager_platform(self): mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() - mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path( + "/fake/bridge.py" + ) mock_entry = MagicMock() mock_entry.runtime = "conda" - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=mock_sim_cls, + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") rp = MockRunner.call_args.kwargs.get("render_platform") assert rp.name == "auto" def test_cli_override_wins(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -739,24 +811,39 @@ def test_cli_override_wins(self): mock_env_mgr = self._make_mock_env_mgr() mock_sim_cls = MagicMock() - mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path( + "/fake/bridge.py" + ) mock_entry = MagicMock() mock_entry.runtime = "conda" - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=mock_sim_cls, + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") rp = MockRunner.call_args.kwargs.get("render_platform") assert rp.name == "xvfb" def test_yaml_override_used_when_no_cli(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -768,24 +855,39 @@ def test_yaml_override_used_when_no_cli(self): mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") mock_sim_cls = MagicMock() - mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path( + "/fake/bridge.py" + ) mock_entry = MagicMock() mock_entry.runtime = "conda" - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=mock_sim_cls, + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) rp = MockRunner.call_args.kwargs.get("render_platform") assert rp.name == "egl" def test_cli_beats_yaml(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -797,24 +899,39 @@ def test_cli_beats_yaml(self): mock_env_mgr = self._make_mock_env_mgr() mock_task = self._make_mock_task(render_platform="egl") mock_sim_cls = MagicMock() - mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path( + "/fake/bridge.py" + ) mock_entry = MagicMock() mock_entry.runtime = "conda" - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=mock_sim_cls, + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) rp = MockRunner.call_args.kwargs.get("render_platform") assert rp.name == "xvfb" def test_unsupported_platform_raises(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.evaluation.runner import EvaluationRunner runner = EvaluationRunner.__new__(EvaluationRunner) @@ -826,17 +943,32 @@ def test_unsupported_platform_raises(self): mock_env_mgr = self._make_mock_env_mgr() mock_env_mgr.supported_render_platforms = ["auto", "xvfb"] # no egl mock_sim_cls = MagicMock() - mock_sim_cls.return_value._get_bridge_script_path.return_value = Path("/fake/bridge.py") + mock_sim_cls.return_value._get_bridge_script_path.return_value = Path( + "/fake/bridge.py" + ) mock_entry = MagicMock() mock_entry.runtime = "conda" - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - pytest.raises(ValueError, match="not supported"): + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=mock_sim_cls, + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + pytest.raises(ValueError, match="not supported"), + ): runner._create_simulator("fake:v1") @@ -844,7 +976,7 @@ class TestRenderPlatformEndToEnd: """End-to-end: platform flows through runner to subprocess.""" def test_egl_env_vars_in_subprocess(self): - from easi.core.render_platform import EnvVars, get_render_platform + from easi.core.render_platforms import EnvVars, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner platform = get_render_platform("egl") @@ -859,7 +991,7 @@ def test_egl_env_vars_in_subprocess(self): assert env["SIM_ROOT"] == "/opt/sim" def test_auto_wraps_xvfb_when_no_display(self): - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner platform = get_render_platform("auto") From 869b00981bfcbdaede7bb9d282c36a71f0d28b1e Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 11 Mar 2026 14:01:58 +0800 Subject: [PATCH 199/239] feat: add xorg render platform support to sim test CLI --- easi/cli.py | 441 ++++++++++++++++++++++++++++++++++------------ tests/test_cli.py | 95 ++++++++-- 2 files changed, 410 insertions(+), 126 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 030c6d0..0a4993e 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -20,7 +20,9 @@ def build_parser() -> argparse.ArgumentParser: # Shared parent so --verbosity works at any position in the command common = argparse.ArgumentParser(add_help=False) common.add_argument( - "--verbosity", type=str, default="INFO", + "--verbosity", + type=str, + default="INFO", choices=["TRACE", "DEBUG", "INFO", "WARNING", "ERROR"], help="Set logging verbosity (default: INFO)", ) @@ -34,23 +36,43 @@ def build_parser() -> argparse.ArgumentParser: subparsers = parser.add_subparsers(dest="command") # --- env command group --- - env_parser = subparsers.add_parser("env", help="Manage simulator environments", parents=[common]) + env_parser = subparsers.add_parser( + "env", help="Manage simulator environments", parents=[common] + ) env_sub = env_parser.add_subparsers(dest="env_action") - env_sub.add_parser("list", help="List available simulators and versions", parents=[common]) + env_sub.add_parser( + "list", help="List available simulators and versions", parents=[common] + ) - env_install = env_sub.add_parser("install", help="Install a simulator environment", parents=[common]) - env_install.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'") - env_install.add_argument("--reinstall", action="store_true", - help="Remove existing env and install from scratch") - env_install.add_argument("--with-task-deps", type=str, default=None, metavar="TASK", - help="Also install additional_deps from a task (e.g., 'ebalfred_base')") + env_install = env_sub.add_parser( + "install", help="Install a simulator environment", parents=[common] + ) + env_install.add_argument( + "simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v2_1_0'" + ) + env_install.add_argument( + "--reinstall", + action="store_true", + help="Remove existing env and install from scratch", + ) + env_install.add_argument( + "--with-task-deps", + type=str, + default=None, + metavar="TASK", + help="Also install additional_deps from a task (e.g., 'ebalfred_base')", + ) - env_check = env_sub.add_parser("check", help="Check if environment is ready", parents=[common]) + env_check = env_sub.add_parser( + "check", help="Check if environment is ready", parents=[common] + ) env_check.add_argument("simulator", type=str) # --- task command group --- - task_parser = subparsers.add_parser("task", help="Manage tasks (benchmarks)", parents=[common]) + task_parser = subparsers.add_parser( + "task", help="Manage tasks (benchmarks)", parents=[common] + ) task_sub = task_parser.add_subparsers(dest="task_action") task_sub.add_parser("list", help="List available tasks", parents=[common]) @@ -58,103 +80,223 @@ def build_parser() -> argparse.ArgumentParser: task_info = task_sub.add_parser("info", help="Show task details", parents=[common]) task_info.add_argument("task", type=str, help="e.g., 'dummy_task'") - task_download = task_sub.add_parser("download", help="Download task dataset", parents=[common]) + task_download = task_sub.add_parser( + "download", help="Download task dataset", parents=[common] + ) task_download.add_argument("task", type=str) - task_download.add_argument("--refresh-data", action="store_true", dest="refresh_data", - help="Delete cached dataset and re-download from source") + task_download.add_argument( + "--refresh-data", + action="store_true", + dest="refresh_data", + help="Delete cached dataset and re-download from source", + ) - task_scaffold = task_sub.add_parser("scaffold", help="Generate boilerplate for a new benchmark", parents=[common]) - task_scaffold.add_argument("name", type=str, help="Task name in snake_case (e.g., 'my_benchmark')") - task_scaffold.add_argument("--simulator", type=str, default="dummy:v1", - help="Simulator key (e.g., 'ai2thor:v2_1_0')") + task_scaffold = task_sub.add_parser( + "scaffold", help="Generate boilerplate for a new benchmark", parents=[common] + ) + task_scaffold.add_argument( + "name", type=str, help="Task name in snake_case (e.g., 'my_benchmark')" + ) + task_scaffold.add_argument( + "--simulator", + type=str, + default="dummy:v1", + help="Simulator key (e.g., 'ai2thor:v2_1_0')", + ) task_scaffold.add_argument("--max-steps", type=int, default=50) # --- sim command group --- - sim_parser = subparsers.add_parser("sim", help="Control simulators", parents=[common]) + sim_parser = subparsers.add_parser( + "sim", help="Control simulators", parents=[common] + ) sim_sub = sim_parser.add_subparsers(dest="sim_action") - sim_test = sim_sub.add_parser("test", help="Run a smoke test (reset + N steps)", parents=[common]) - sim_test.add_argument("simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v5_0_0'") + sim_test = sim_sub.add_parser( + "test", help="Run a smoke test (reset + N steps)", parents=[common] + ) + sim_test.add_argument( + "simulator", type=str, help="e.g., 'dummy' or 'ai2thor:v5_0_0'" + ) sim_test.add_argument("--steps", type=int, default=5, help="Number of steps") - sim_test.add_argument("--timeout", type=float, default=200.0, - help="Bridge startup timeout in seconds (default: 200)") sim_test.add_argument( - "--render-platform", type=str, default=None, dest="render_platform", - help="Rendering platform override (auto, native, xvfb, egl, headless, xorg)") + "--timeout", + type=float, + default=200.0, + help="Bridge startup timeout in seconds (default: 200)", + ) + sim_test.add_argument( + "--render-platform", + type=str, + default=None, + dest="render_platform", + help="Rendering platform override (auto, native, xvfb, egl, headless, xorg)", + ) + sim_test.add_argument( + "--sim-gpus", + type=str, + default=None, + dest="sim_gpus", + help="Comma-separated GPU IDs for xorg render platform (e.g., '0' or '1,2'). Defaults to GPU 0.", + ) # --- start command --- - start_parser = subparsers.add_parser("start", help="Run a full evaluation", parents=[common]) + start_parser = subparsers.add_parser( + "start", help="Run a full evaluation", parents=[common] + ) # All defaults are None so resume logic can distinguish "user provided" from "default". # Real defaults live in EvaluationRunner.__init__. - start_parser.add_argument("task_names_positional", type=str, nargs="*", default=None, metavar="task", - help="Task name(s) (e.g., 'dummy_task', 'ebalfred_base'). " - "Optional when --resume is provided.") - start_parser.add_argument("--tasks", type=str, default=None, dest="tasks_csv", - help="Comma-separated task names (e.g., 'ebalfred_base,ebnavigation_base')") - start_parser.add_argument("--agent", type=str, default=None, choices=["dummy", "react"], - dest="agent_type") - start_parser.add_argument("--output-dir", type=str, default=None, - help="Base output directory (creates ///)") - start_parser.add_argument("--data-dir", type=str, default=None, - help="Directory for downloading/caching datasets (default: ./datasets)") + start_parser.add_argument( + "task_names_positional", + type=str, + nargs="*", + default=None, + metavar="task", + help="Task name(s) (e.g., 'dummy_task', 'ebalfred_base'). " + "Optional when --resume is provided.", + ) + start_parser.add_argument( + "--tasks", + type=str, + default=None, + dest="tasks_csv", + help="Comma-separated task names (e.g., 'ebalfred_base,ebnavigation_base')", + ) + start_parser.add_argument( + "--agent", type=str, default=None, choices=["dummy", "react"], dest="agent_type" + ) + start_parser.add_argument( + "--output-dir", + type=str, + default=None, + help="Base output directory (creates ///)", + ) + start_parser.add_argument( + "--data-dir", + type=str, + default=None, + help="Directory for downloading/caching datasets (default: ./datasets)", + ) start_parser.add_argument("--max-episodes", type=int, default=None) - start_parser.add_argument("--llm-url", type=str, default=None, dest="llm_base_url", - help="LLM server URL") + start_parser.add_argument( + "--llm-url", type=str, default=None, dest="llm_base_url", help="LLM server URL" + ) start_parser.add_argument("--seed", type=int, default=None, dest="agent_seed") - start_parser.add_argument("--backend", type=str, default=None, - help="LLM backend: vllm, custom, openai, anthropic, gemini, dummy") - start_parser.add_argument("--model", type=str, default=None, - help="Model name (HF path for vLLM, API name for proprietary)") - start_parser.add_argument("--port", type=int, default=None, - help="Port for local inference server (default: 8080)") - start_parser.add_argument("--llm-kwargs", type=str, default=None, dest="llm_kwargs_raw", - help='JSON string of extra kwargs, e.g. \'{"tensor_parallel_size": 4}\'') - start_parser.add_argument("--max-retries", type=int, default=None, - help="Max LLM retry attempts on transient errors (default: 3)") - start_parser.add_argument("--num-parallel", type=int, default=None, dest="num_parallel", - help="Number of parallel simulator instances (default: 1, sequential).") start_parser.add_argument( - "--llm-instances", type=int, default=None, dest="llm_instances", + "--backend", + type=str, + default=None, + help="LLM backend: vllm, custom, openai, anthropic, gemini, dummy", + ) + start_parser.add_argument( + "--model", + type=str, + default=None, + help="Model name (HF path for vLLM, API name for proprietary)", + ) + start_parser.add_argument( + "--port", + type=int, + default=None, + help="Port for local inference server (default: 8080)", + ) + start_parser.add_argument( + "--llm-kwargs", + type=str, + default=None, + dest="llm_kwargs_raw", + help="JSON string of extra kwargs, e.g. '{\"tensor_parallel_size\": 4}'", + ) + start_parser.add_argument( + "--max-retries", + type=int, + default=None, + help="Max LLM retry attempts on transient errors (default: 3)", + ) + start_parser.add_argument( + "--num-parallel", + type=int, + default=None, + dest="num_parallel", + help="Number of parallel simulator instances (default: 1, sequential).", + ) + start_parser.add_argument( + "--llm-instances", + type=int, + default=None, + dest="llm_instances", help="Number of local LLM server instances to start (default: 1). " - "Each instance runs on a subset of --llm-gpus.", + "Each instance runs on a subset of --llm-gpus.", ) start_parser.add_argument( - "--llm-gpus", type=str, default=None, dest="llm_gpus", + "--llm-gpus", + type=str, + default=None, + dest="llm_gpus", help="Comma-separated GPU IDs for LLM inference (e.g., '0,1'). " - "GPUs are split evenly across --llm-instances.", + "GPUs are split evenly across --llm-instances.", ) start_parser.add_argument( - "--sim-gpus", type=str, default=None, dest="sim_gpus", + "--sim-gpus", + type=str, + default=None, + dest="sim_gpus", help="Comma-separated GPU IDs for simulator rendering (e.g., '2,3'). " - "If not set, simulators use CPU rendering.", + "If not set, simulators use CPU rendering.", + ) + start_parser.add_argument( + "--resume", + type=str, + default=None, + dest="resume_dir", + help="Path to a previous run directory to resume from", + ) + start_parser.add_argument( + "--refresh-data", + action="store_true", + dest="refresh_data", + help="Delete cached dataset and re-download from source", ) - start_parser.add_argument("--resume", type=str, default=None, dest="resume_dir", - help="Path to a previous run directory to resume from") - start_parser.add_argument("--refresh-data", action="store_true", dest="refresh_data", - help="Delete cached dataset and re-download from source") start_parser.add_argument( - "--render-platform", type=str, default=None, dest="render_platform", + "--render-platform", + type=str, + default=None, + dest="render_platform", help="Rendering platform: auto, native, xvfb, egl, headless, xorg (default: simulator's preference). " - "xorg starts a GPU X server (defaults to GPU 0, use --sim-gpus to specify).") + "xorg starts a GPU X server (defaults to GPU 0, use --sim-gpus to specify).", + ) # --- model command --- - model_parser = subparsers.add_parser("model", help="Manage custom models", parents=[common]) + model_parser = subparsers.add_parser( + "model", help="Manage custom models", parents=[common] + ) model_sub = model_parser.add_subparsers(dest="model_action") model_sub.add_parser("list", help="List available custom models", parents=[common]) - model_info_parser = model_sub.add_parser("info", help="Show model details", parents=[common]) + model_info_parser = model_sub.add_parser( + "info", help="Show model details", parents=[common] + ) model_info_parser.add_argument("model_name", help="Model name") # --- ps command --- - ps_parser = subparsers.add_parser("ps", help="Show EASI-related processes (bridges, LLM servers)", parents=[common]) - ps_parser.add_argument("--kill", action="store_true", help="Kill all found EASI processes") + ps_parser = subparsers.add_parser( + "ps", + help="Show EASI-related processes (bridges, LLM servers)", + parents=[common], + ) + ps_parser.add_argument( + "--kill", action="store_true", help="Kill all found EASI processes" + ) # --- llm-server command --- - llm_parser = subparsers.add_parser("llm-server", help="Start dummy LLM server", parents=[common]) + llm_parser = subparsers.add_parser( + "llm-server", help="Start dummy LLM server", parents=[common] + ) llm_parser.add_argument("--port", type=int, default=8000) llm_parser.add_argument("--host", type=str, default="127.0.0.1") llm_parser.add_argument("--mode", choices=["fixed", "random"], default="random") llm_parser.add_argument( - "--action-space", type=str, nargs="+", + "--action-space", + type=str, + nargs="+", default=["MoveAhead", "TurnLeft", "TurnRight", "Stop"], ) @@ -163,6 +305,7 @@ def build_parser() -> argparse.ArgumentParser: # --- Command handlers --- + def cmd_env_list() -> None: from easi.simulators.registry import get_simulator_entry, list_simulators @@ -181,10 +324,14 @@ def cmd_env_list() -> None: seen.add(pair) default_marker = " (default)" if key == entry.name else "" runtime_tag = f" [{entry.runtime}]" if entry.runtime != "conda" else "" - logger.info(" %s%s%s -- %s", pair, default_marker, runtime_tag, entry.description) + logger.info( + " %s%s%s -- %s", pair, default_marker, runtime_tag, entry.description + ) -def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str | None = None) -> None: +def cmd_env_install( + simulator: str, reinstall: bool = False, with_task_deps: str | None = None +) -> None: from easi.simulators.registry import create_env_manager env_manager = create_env_manager(simulator) @@ -200,7 +347,9 @@ def cmd_env_install(simulator: str, reinstall: bool = False, with_task_deps: str from easi.core.docker_env_manager import DockerEnvironmentManager if isinstance(env_manager, DockerEnvironmentManager): - logger.warning("--with-task-deps is not supported for Docker simulators (deps baked into image).") + logger.warning( + "--with-task-deps is not supported for Docker simulators (deps baked into image)." + ) else: from easi.tasks.registry import get_task_entry, load_task_class @@ -246,7 +395,9 @@ def cmd_task_list() -> None: for name in tasks: entry = get_task_entry(name) - logger.info(" %s -- %s (simulator: %s)", name, entry.display_name, entry.simulator_key) + logger.info( + " %s -- %s (simulator: %s)", name, entry.display_name, entry.simulator_key + ) def cmd_task_info(task_name: str) -> None: @@ -267,11 +418,15 @@ def cmd_task_scaffold(name: str, simulator: str, max_steps: int) -> None: tasks_dir = Path(__file__).parent / "tasks" tests_dir = Path(__file__).parent.parent / "tests" - task_dir = scaffold_task(name, simulator, output_dir=tasks_dir, - max_steps=max_steps, tests_dir=tests_dir) + task_dir = scaffold_task( + name, simulator, output_dir=tasks_dir, max_steps=max_steps, tests_dir=tests_dir + ) logger.info("Created task scaffold at: %s", task_dir) logger.info("Next steps:") - logger.info(" 1. Edit %s/bridge.py — implement _create_env() and _extract_image()", task_dir.name) + logger.info( + " 1. Edit %s/bridge.py — implement _create_env() and _extract_image()", + task_dir.name, + ) logger.info(" 2. Edit %s/task.py — implement format_reset_config()", task_dir.name) logger.info(" 3. Edit %s/%s.yaml — configure dataset source", task_dir.name, name) logger.info(" 4. Run tests: pytest tests/test_%s.py -v", name) @@ -289,12 +444,18 @@ def cmd_task_download(task_name: str, refresh_data: bool = False) -> None: logger.info("Task uses built-in episodes (no download needed).") -def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_name: str | None = None) -> None: +def cmd_sim_test( + simulator: str, + steps: int, + timeout: float, + render_platform_name: str | None = None, + sim_gpus: list[int] | None = None, +) -> None: from pathlib import Path from easi.core.docker_env_manager import DockerEnvironmentManager from easi.core.episode import Action - from easi.core.render_platform import get_render_platform + from easi.core.render_platforms import get_render_platform from easi.simulators.registry import ( create_env_manager, get_simulator_entry, @@ -329,7 +490,9 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam command_timeout=timeout, ) - data_dir_str = entry.data_dir.replace("~", str(Path.home())) if entry.data_dir else None + data_dir_str = ( + entry.data_dir.replace("~", str(Path.home())) if entry.data_dir else None + ) try: runner.launch_docker( @@ -345,7 +508,9 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam for i in range(steps): action = Action(action_name="MoveAhead") result = sim.step(action) - logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) + logger.info( + " Step %d: done=%s, reward=%s", i + 1, result.done, result.reward + ) if result.done: break @@ -370,12 +535,23 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam if platform_name not in env_manager.supported_render_platforms: logger.error( "Render platform '%s' not supported by %s. Supported: %s", - platform_name, simulator, env_manager.supported_render_platforms, + platform_name, + simulator, + env_manager.supported_render_platforms, ) sys.exit(1) - render_platform = resolve_render_platform(simulator, platform_name, env_manager=env_manager) - render_platform.setup(gpu_ids=[0]) - worker_platform = render_platform.for_worker(0) + render_platform = resolve_render_platform( + simulator, platform_name, env_manager=env_manager + ) + try: + render_platform.setup(gpu_ids=sim_gpus or [0]) + worker_platform = render_platform.for_worker(0) + except RuntimeError as e: + if platform_name == "xorg": + logger.warning("%s", str(e)) + render_platform.teardown() + sys.exit(0) + raise logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) @@ -404,7 +580,9 @@ def cmd_sim_test(simulator: str, steps: int, timeout: float, render_platform_nam for i in range(steps): action = Action(action_name="MoveAhead") result = sim.step(action) - logger.info(" Step %d: done=%s, reward=%s", i + 1, result.done, result.reward) + logger.info( + " Step %d: done=%s, reward=%s", i + 1, result.done, result.reward + ) if result.done: break @@ -474,7 +652,9 @@ def cmd_start(args): run_kwargs = raw if not task_list: - logger.error("Task name is required. Provide it as a positional arg, --tasks, or use --resume.") + logger.error( + "Task name is required. Provide it as a positional arg, --tasks, or use --resume." + ) sys.exit(1) # Remove task_name from run_kwargs; it's passed per-task below @@ -506,6 +686,7 @@ def cmd_start(args): if num_parallel > 1: from easi.evaluation.parallel_runner import ParallelRunner + runner = ParallelRunner( task_name=task_name, num_parallel=num_parallel, @@ -524,7 +705,9 @@ def cmd_start(args): results = runner.run() logger.info("Completed %d episodes for %s.", len(results), task_name) - records = [EpisodeRecord(episode={}, trajectory=[], episode_results=r) for r in results] + records = [ + EpisodeRecord(episode={}, trajectory=[], episode_results=r) for r in results + ] summary = {"num_episodes": len(results)} summary.update(default_aggregate(records)) all_summaries.append((task_name, summary)) @@ -555,9 +738,9 @@ def cmd_ps(kill: bool = False) -> None: # Patterns that identify EASI-spawned processes patterns = [ - "easi.llm.models.http_server", # custom model server - "vllm.entrypoints.openai.api_server", # vLLM server - "easi.llm.dummy_server", # dummy LLM server + "easi.llm.models.http_server", # custom model server + "vllm.entrypoints.openai.api_server", # vLLM server + "easi.llm.dummy_server", # dummy LLM server ] # Also match bridge scripts by looking for bridge.py in easi paths bridge_pattern = "easi/simulators/.*/bridge.py|easi/tasks/.*/bridge.py" @@ -568,7 +751,9 @@ def cmd_ps(kill: bool = False) -> None: try: result = subprocess.run( ["ps", "aux"], - capture_output=True, text=True, timeout=10, + capture_output=True, + text=True, + timeout=10, ) except (FileNotFoundError, subprocess.TimeoutExpired): logger.error("Failed to run 'ps aux'") @@ -592,6 +777,7 @@ def cmd_ps(kill: bool = False) -> None: break if matched_pattern is None: import re + if re.search(bridge_pattern, cmd_str): matched_pattern = "bridge" @@ -599,17 +785,19 @@ def cmd_ps(kill: bool = False) -> None: continue is_zombie = "Z" in stat - found.append({ - "pid": pid, - "user": parts[0], - "stat": stat, - "cpu": parts[2], - "mem": parts[3], - "start": parts[8], - "command": cmd_str[:120], - "pattern": matched_pattern, - "zombie": is_zombie, - }) + found.append( + { + "pid": pid, + "user": parts[0], + "stat": stat, + "cpu": parts[2], + "mem": parts[3], + "start": parts[8], + "command": cmd_str[:120], + "pattern": matched_pattern, + "zombie": is_zombie, + } + ) if not found: logger.info("No EASI-related processes found.") @@ -617,22 +805,41 @@ def cmd_ps(kill: bool = False) -> None: # Display logger.info("Found %d EASI-related process(es):\n", len(found)) - logger.info(" %-7s %-6s %-5s %-5s %-8s %s", "PID", "STAT", "CPU%", "MEM%", "TYPE", "COMMAND") + logger.info( + " %-7s %-6s %-5s %-5s %-8s %s", + "PID", + "STAT", + "CPU%", + "MEM%", + "TYPE", + "COMMAND", + ) logger.info(" %s", "-" * 80) for p in found: zombie_tag = " [ZOMBIE]" if p["zombie"] else "" ptype = p["pattern"].split(".")[-1] if "." in p["pattern"] else p["pattern"] logger.info( " %-7d %-6s %-5s %-5s %-8s %s%s", - p["pid"], p["stat"], p["cpu"], p["mem"], ptype, p["command"][:60], zombie_tag, + p["pid"], + p["stat"], + p["cpu"], + p["mem"], + ptype, + p["command"][:60], + zombie_tag, ) # GPU usage summary try: gpu_result = subprocess.run( - ["nvidia-smi", "--query-compute-apps=pid,gpu_uuid,used_memory", - "--format=csv,noheader,nounits"], - capture_output=True, text=True, timeout=10, + [ + "nvidia-smi", + "--query-compute-apps=pid,gpu_uuid,used_memory", + "--format=csv,noheader,nounits", + ], + capture_output=True, + text=True, + timeout=10, ) if gpu_result.returncode == 0 and gpu_result.stdout.strip(): easi_pids = {p["pid"] for p in found} @@ -663,6 +870,7 @@ def cmd_ps(kill: bool = False) -> None: logger.warning(" Cannot kill PID %d (permission denied)", p["pid"]) # Wait briefly then SIGKILL any survivors import time + time.sleep(2) for p in found: try: @@ -700,6 +908,7 @@ def cmd_model(args) -> None: # --- Main --- + def main() -> None: try: _main() @@ -723,7 +932,11 @@ def _main() -> None: if args.env_action == "list": cmd_env_list() elif args.env_action == "install": - cmd_env_install(args.simulator, reinstall=args.reinstall, with_task_deps=args.with_task_deps) + cmd_env_install( + args.simulator, + reinstall=args.reinstall, + with_task_deps=args.with_task_deps, + ) elif args.env_action == "check": cmd_env_check(args.simulator) else: @@ -743,7 +956,17 @@ def _main() -> None: elif args.command == "sim": if args.sim_action == "test": - cmd_sim_test(args.simulator, args.steps, args.timeout, getattr(args, "render_platform", None)) + raw_sim_gpus = getattr(args, "sim_gpus", None) + sim_gpus_parsed = ( + [int(g) for g in raw_sim_gpus.split(",")] if raw_sim_gpus else None + ) + cmd_sim_test( + args.simulator, + args.steps, + args.timeout, + getattr(args, "render_platform", None), + sim_gpus=sim_gpus_parsed, + ) else: parser.parse_args(["sim", "--help"]) diff --git a/tests/test_cli.py b/tests/test_cli.py index 29f0521..613adb9 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,21 +1,36 @@ # tests/test_cli.py """Tests for CLI GPU and LLM arguments.""" +from unittest.mock import MagicMock, patch + +import pytest + def test_cli_parses_llm_gpu_args(): """CLI should parse --llm-instances, --llm-gpus, --sim-gpus.""" from easi.cli import build_parser + parser = build_parser() - args = parser.parse_args([ - "start", "dummy_task", - "--agent", "dummy", - "--backend", "vllm", - "--model", "test", - "--num-parallel", "12", - "--llm-instances", "2", - "--llm-gpus", "0,1", - "--sim-gpus", "2,3", - ]) + args = parser.parse_args( + [ + "start", + "dummy_task", + "--agent", + "dummy", + "--backend", + "vllm", + "--model", + "test", + "--num-parallel", + "12", + "--llm-instances", + "2", + "--llm-gpus", + "0,1", + "--sim-gpus", + "2,3", + ] + ) assert args.llm_instances == 2 assert args.llm_gpus == "0,1" assert args.sim_gpus == "2,3" @@ -24,19 +39,28 @@ def test_cli_parses_llm_gpu_args(): def test_cli_parses_comma_separated_llm_url(): """--llm-url should accept comma-separated URLs.""" from easi.cli import build_parser + parser = build_parser() - args = parser.parse_args([ - "start", "dummy_task", - "--agent", "dummy", - "--backend", "vllm", - "--model", "test", - "--llm-url", "http://localhost:8000/v1,http://localhost:8001/v1", - ]) + args = parser.parse_args( + [ + "start", + "dummy_task", + "--agent", + "dummy", + "--backend", + "vllm", + "--model", + "test", + "--llm-url", + "http://localhost:8000/v1,http://localhost:8001/v1", + ] + ) assert args.llm_base_url == "http://localhost:8000/v1,http://localhost:8001/v1" def test_cli_ps_subcommand(): from easi.cli import build_parser + parser = build_parser() args = parser.parse_args(["ps"]) assert args.command == "ps" @@ -48,6 +72,7 @@ def test_cli_ps_subcommand(): def test_cli_model_list_subcommand(): from easi.cli import build_parser + parser = build_parser() args = parser.parse_args(["model", "list"]) assert args.command == "model" @@ -56,8 +81,44 @@ def test_cli_model_list_subcommand(): def test_cli_model_info_subcommand(): from easi.cli import build_parser + parser = build_parser() args = parser.parse_args(["model", "info", "cambrian"]) assert args.command == "model" assert args.model_action == "info" assert args.model_name == "cambrian" + + +def test_cmd_sim_test_xorg_setup_warning_exits_cleanly(): + from easi.cli import cmd_sim_test + + entry = MagicMock(runtime="conda") + env_manager = MagicMock() + env_manager.default_render_platform = "xorg" + env_manager.supported_render_platforms = ["xorg"] + + sim = MagicMock() + render_platform = MagicMock() + render_platform.setup.side_effect = RuntimeError("xorg guidance") + + with ( + patch("easi.simulators.registry.get_simulator_entry", return_value=entry), + patch("easi.simulators.registry.create_env_manager", return_value=env_manager), + patch( + "easi.simulators.registry.load_simulator_class", return_value=lambda: sim + ), + patch( + "easi.simulators.registry.resolve_render_platform", + return_value=render_platform, + ), + patch("easi.cli.logger") as mock_logger, + ): + with pytest.raises(SystemExit) as exc_info: + cmd_sim_test( + "coppeliasim", steps=1, timeout=5.0, render_platform_name="xorg" + ) + + assert exc_info.value.code == 0 + mock_logger.warning.assert_called_once_with("%s", "xorg guidance") + render_platform.teardown.assert_called_once() + sim.close.assert_not_called() From 6433a30b88ac307aecf96097176a30974510f861 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 02:06:14 +0800 Subject: [PATCH 200/239] refactor: migrate render strategy integration to bindings and adapters Adopt WorkerBinding plus SimulatorRenderAdapter across registry, runners, subprocess launch, and simulator integrations so render backends own resource assignment while simulators contribute render-specific quirks through one adapter path. --- easi/core/render_platforms/__init__.py | 11 +- easi/core/render_platforms/base.py | 63 +- easi/core/render_platforms/xorg.py | 61 +- easi/evaluation/runner.py | 257 +++++--- easi/simulators/coppeliasim/manifest.yaml | 6 +- .../coppeliasim/v4_1_0/env_manager.py | 10 +- .../coppeliasim/v4_1_0/render_platforms.py | 134 +--- easi/simulators/dummy/manifest.yaml | 1 + easi/simulators/dummy/v1/render_platforms.py | 14 +- easi/simulators/omnigibson/manifest.yaml | 4 +- easi/simulators/omnigibson/v3_7_2/bridge.py | 5 +- .../omnigibson/v3_7_2/env_manager.py | 52 +- .../omnigibson/v3_7_2/render_platforms.py | 55 +- easi/simulators/registry.py | 46 +- easi/simulators/subprocess_runner.py | 40 +- easi/tasks/ebmanipulation/bridge.py | 19 +- tests/test_coppeliasim_simulator.py | 70 +- tests/test_env_vars_wiring.py | 328 ++++++++-- tests/test_omnigibson_simulator.py | 82 ++- tests/test_render_platform.py | 617 ++++++++++++++++-- tests/test_subprocess_runner.py | 104 ++- tests/test_xorg.py | 78 +-- 22 files changed, 1498 insertions(+), 559 deletions(-) diff --git a/easi/core/render_platforms/__init__.py b/easi/core/render_platforms/__init__.py index fda49d5..01e2b84 100644 --- a/easi/core/render_platforms/__init__.py +++ b/easi/core/render_platforms/__init__.py @@ -1,8 +1,10 @@ """Render platform package — pluggable display/rendering backends. Each render platform encapsulates how to launch a bridge subprocess with -the correct display/rendering environment. Simulators declare a default +the correct display/rendering environment. Simulators declare a default platform; users can override via CLI (--render-platform) or task YAML. +Simulator-specific render quirks belong in a ``SimulatorRenderAdapter`` +registered from the simulator manifest, not in backend-specific subclasses. Built-in platforms: auto — use native DISPLAY if available, fall back to xvfb @@ -14,12 +16,12 @@ """ from .auto import AutoPlatform -from .base import EnvVars, RenderPlatform +from .base import EnvVars, RenderPlatform, SimulatorRenderAdapter, WorkerBinding from .egl import EGLPlatform from .headless import HeadlessPlatform from .native import NativePlatform from .registry import available_platforms, get_render_platform -from .xorg import XorgPlatform, _XorgWorkerPlatform +from .xorg import XorgPlatform from .xorg_manager import XorgInstance, XorgManager from .xvfb import XvfbPlatform @@ -27,6 +29,8 @@ # Base types "RenderPlatform", "EnvVars", + "WorkerBinding", + "SimulatorRenderAdapter", # Built-in platforms "AutoPlatform", "NativePlatform", @@ -34,7 +38,6 @@ "EGLPlatform", "HeadlessPlatform", "XorgPlatform", - "_XorgWorkerPlatform", # Xorg internals "XorgManager", "XorgInstance", diff --git a/easi/core/render_platforms/base.py b/easi/core/render_platforms/base.py index d7f16a8..ccfdf8b 100644 --- a/easi/core/render_platforms/base.py +++ b/easi/core/render_platforms/base.py @@ -1,13 +1,17 @@ """Base classes for render platforms. -Defines the RenderPlatform ABC and EnvVars dataclass used by all platform -implementations and external custom platforms (e.g. CoppeliaSim). +Defines the RenderPlatform ABC and EnvVars dataclass used by all built-in +render backends plus simulator render adapters. + +Also defines WorkerBinding (resolved per-worker render facts) and +SimulatorRenderAdapter (optional simulator-specific launch adjustments). """ from __future__ import annotations from abc import ABC, abstractmethod from dataclasses import dataclass, field +from typing import Any @dataclass @@ -51,13 +55,53 @@ def merge(cls, *env_vars: EnvVars) -> EnvVars: return cls(replace=replace, prepend=prepend) +@dataclass +class WorkerBinding: + """Resolved per-worker render facts produced by a render backend. + + Carries the concrete display and GPU assignment for one worker subprocess, + plus any extra env vars and arbitrary metadata the backend wants to pass + downstream (e.g. to a SimulatorRenderAdapter). + + Fields: + display: X display string (e.g. ":10"), or None for headless/EGL. + cuda_visible_devices: GPU id(s) string (e.g. "0" or "0,1"), or None. + extra_env: Additional env vars contributed by the render backend. + metadata: Arbitrary backend-specific data for adapter consumption. + """ + + display: str | None = None + cuda_visible_devices: str | None = None + extra_env: EnvVars = field(default_factory=EnvVars) + metadata: dict[str, Any] = field(default_factory=dict) + + +class SimulatorRenderAdapter(ABC): + """Extension point for simulator-specific render launch adjustments. + + Simulators that need to inject render-related env vars or wrap the launch + command beyond what the core render backend provides should subclass this + and register it via the simulator manifest. + + Default implementations are no-ops so simulators that need no adjustments + do not have to implement anything. + """ + + def get_env_vars(self, binding: WorkerBinding) -> EnvVars: + return EnvVars() + + def wrap_command(self, cmd: list[str], binding: WorkerBinding) -> list[str]: + return cmd + + class RenderPlatform(ABC): """Strategy interface for display/rendering backends. Lifecycle hooks (``setup`` / ``teardown``) allow platforms that manage external services (e.g. Xorg) to start and stop them without - if/else logic in the callers. ``for_worker`` returns a per-worker - platform instance (default: ``self``). + if/else logic in the callers. ``for_worker`` always returns a + ``WorkerBinding`` so callers have a uniform interface; backends that + need per-worker GPU/display assignment (e.g. ``XorgPlatform``) override it. """ def __init__(self, env_manager=None): @@ -102,6 +146,11 @@ def setup(self, gpu_ids: list[int] | None = None) -> None: def teardown(self) -> None: """Called once after all simulators are done. Stop external services.""" - def for_worker(self, worker_id: int) -> RenderPlatform: - """Return a per-worker platform instance. Default: return self.""" - return self + def for_worker(self, worker_id: int) -> WorkerBinding: + """Return the per-worker render binding for this platform. + + The default returns a ``WorkerBinding`` carrying the backend name in + ``metadata``. Platforms that assign per-worker displays or GPUs + (e.g. ``XorgPlatform``) override this to return a populated binding. + """ + return WorkerBinding(metadata={"backend": self.name}) diff --git a/easi/core/render_platforms/xorg.py b/easi/core/render_platforms/xorg.py index 3a6d620..03c1247 100644 --- a/easi/core/render_platforms/xorg.py +++ b/easi/core/render_platforms/xorg.py @@ -1,62 +1,36 @@ """Xorg render platform — GPU-accelerated X11 display managed by EASI. -Two classes: - -* ``XorgPlatform`` — the top-level platform resolved from ``--render-platform xorg``. - Owns the ``XorgManager`` lifecycle via ``setup()`` / ``teardown()`` and hands - out per-worker instances via ``for_worker()``. -* ``_XorgWorkerPlatform`` — lightweight per-worker instance with a fixed - display number and GPU ID, created by ``XorgPlatform.for_worker()``. +``XorgPlatform`` owns the ``XorgManager`` lifecycle and resolves per-worker +bindings for adapter-driven simulator launch wiring. """ from __future__ import annotations +from typing import TYPE_CHECKING + from easi.utils.logging import get_logger -from .base import EnvVars, RenderPlatform +from .base import EnvVars, RenderPlatform, WorkerBinding from .xorg_manager import XorgManager -logger = get_logger(__name__) - - -class _XorgWorkerPlatform(RenderPlatform): - """Per-worker Xorg platform with a dedicated display and GPU.""" - - def __init__(self, display_num: int, gpu_id: int): - super().__init__() - self.display_num = display_num - self.gpu_id = gpu_id - - @property - def name(self) -> str: - return "xorg" - - def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: - return cmd - - def get_env_vars(self) -> EnvVars: - return EnvVars(replace={ - "DISPLAY": f":{self.display_num}", - "CUDA_VISIBLE_DEVICES": str(self.gpu_id), - "EASI_GPU_DISPLAY": "1", - }) +if TYPE_CHECKING: + from .xorg_manager import XorgInstance - def is_available(self) -> bool: - return True +logger = get_logger(__name__) class XorgPlatform(RenderPlatform): """Render platform backed by auto-managed Xorg servers. Call ``setup(gpu_ids=...)`` to start Xorg servers, then - ``for_worker(worker_id)`` to get per-worker instances. + ``for_worker(worker_id)`` to get per-worker bindings. ``teardown()`` stops all servers. """ def __init__(self, env_manager=None): super().__init__(env_manager=env_manager) self._xorg_mgr: XorgManager | None = None - self._instances: list = [] + self._instances: list[XorgInstance] = [] @property def name(self) -> str: @@ -83,11 +57,20 @@ def teardown(self) -> None: self._xorg_mgr = None self._instances = [] - def for_worker(self, worker_id: int) -> _XorgWorkerPlatform: - """Return a per-worker platform bound to a specific Xorg instance.""" + def for_worker(self, worker_id: int) -> WorkerBinding: + """Resolve a per-worker binding for a specific Xorg instance.""" if not self._instances: raise RuntimeError( "XorgPlatform.setup() must be called before for_worker()" ) inst = self._instances[worker_id % len(self._instances)] - return _XorgWorkerPlatform(display_num=inst.display, gpu_id=inst.gpu_id) + return _build_worker_binding(inst.display, inst.gpu_id) + + +def _build_worker_binding(display_num: int, gpu_id: int) -> WorkerBinding: + return WorkerBinding( + display=f":{display_num}", + cuda_visible_devices=str(gpu_id), + extra_env=EnvVars(replace={"EASI_GPU_DISPLAY": "1"}), + metadata={"backend": "xorg", "display_num": display_num, "gpu_id": gpu_id}, + ) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 585c5fb..07b7bd1 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -38,7 +38,7 @@ def _sanitize_dirname(name: str) -> str: """Replace characters unsafe for directory names.""" - return re.sub(r'[^\w\-.]', '_', name) + return re.sub(r"[^\w\-.]", "_", name) class EvaluationRunner: @@ -71,7 +71,8 @@ def __init__( # Auto-capture all init args for config.json (before any mutation) frame = inspect.currentframe() self._cli_options = { - k: v for k, v in inspect.getargvalues(frame).locals.items() + k: v + for k, v in inspect.getargvalues(frame).locals.items() if k not in ("self", "frame") and k not in self._EXCLUDE_FROM_CONFIG } @@ -99,6 +100,7 @@ def __init__( # For custom backend, append model_path to distinguish variants if self.backend == "custom" and self.llm_kwargs_raw: from easi.llm.utils import parse_llm_kwargs + model_path = parse_llm_kwargs(self.llm_kwargs_raw).get("model_path", "") if model_path: # Use last 2 path components (e.g. Qwen_Qwen3-VL-8B-Instruct) @@ -184,15 +186,19 @@ def run(self) -> list[dict]: task.download_dataset(force=True) episodes = task.load_episodes() if self.max_episodes is not None: - episodes = episodes[:self.max_episodes] + episodes = episodes[: self.max_episodes] # Handle resume: load completed results and find start point if self.resume_dir: - all_results, start_index = self._load_completed_results(run_dir, len(episodes)) + all_results, start_index = self._load_completed_results( + run_dir, len(episodes) + ) self._reattach_resume_data(all_results, episodes, run_dir) logger.info( "Resuming from %s — %d completed episodes, starting from index %d", - run_dir, len(all_results), start_index, + run_dir, + len(all_results), + start_index, ) else: all_results = [] @@ -211,7 +217,9 @@ def run(self) -> list[dict]: all_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) server_kwargs, _ = split_kwargs(all_kwargs) server = ServerManager( - backend, self.model, port=self.port, + backend, + self.model, + port=self.port, server_kwargs=server_kwargs, ) base_url = server.start() @@ -221,6 +229,7 @@ def run(self) -> list[dict]: # Compute resolved generation kwargs (YAML defaults + CLI overrides) from easi.llm.utils import parse_llm_kwargs, split_kwargs + agent_config = task._config.get("agent", {}) yaml_gen_kwargs = agent_config.get("generation_kwargs", {}) all_llm_kwargs = parse_llm_kwargs(self.llm_kwargs_raw) @@ -238,17 +247,19 @@ def run(self) -> list[dict]: "task_config": task._config, } (run_dir / "config.json").write_text(json.dumps(config, indent=2)) - logger.trace( - "Run config:\n%s", json.dumps(config, indent=2, default=str) - ) + logger.trace("Run config:\n%s", json.dumps(config, indent=2, default=str)) # Skip simulator/agent if all episodes already complete (resume) if start_index >= len(episodes): - logger.info("All %d episodes already complete, re-aggregating summary.", len(episodes)) + logger.info( + "All %d episodes already complete, re-aggregating summary.", + len(episodes), + ) else: # 3. Create agent - agent = self._create_agent(task.action_space, task._config, - backend=backend, base_url=base_url) + agent = self._create_agent( + task.action_space, task._config, backend=backend, base_url=base_url + ) # 4. Start simulator sim, sim_runner = self._create_simulator(task.simulator_key, task=task) @@ -257,7 +268,9 @@ def run(self) -> list[dict]: from easi.utils.progress import ProgressBar progress_bar = ProgressBar( - total=len(episodes), num_workers=1, start_index=start_index, + total=len(episodes), + num_workers=1, + start_index=start_index, ) progress_bar.start() @@ -267,23 +280,36 @@ def run(self) -> list[dict]: continue episode_id = episode.get("episode_id", f"ep_{i}") logger.info( - "Episode %d/%d: %s", i + 1, len(episodes), episode_id, + "Episode %d/%d: %s", + i + 1, + len(episodes), + episode_id, ) - episode_dir = episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" + episode_dir = ( + episodes_dir / f"{i:03d}_{_sanitize_dirname(episode_id)}" + ) episode_dir.mkdir(exist_ok=True) result = None for attempt in range(1, self.max_retries + 1): try: result = self._run_episode( - sim, agent, task, episode, i, episode_dir, + sim, + agent, + task, + episode, + i, + episode_dir, ) break except Exception as exc: logger.warning( "Episode %s attempt %d/%d failed: %s", - episode_id, attempt, self.max_retries, exc, + episode_id, + attempt, + self.max_retries, + exc, ) self._clear_episode_dir(episode_dir) if attempt < self.max_retries: @@ -294,15 +320,19 @@ def run(self) -> list[dict]: pass try: sim, sim_runner = self._create_simulator( - task.simulator_key, task=task, + task.simulator_key, + task=task, ) except Exception as restart_exc: logger.error( - "Simulator restart failed: %s", restart_exc, + "Simulator restart failed: %s", + restart_exc, ) result = { "episode_id": episode_id, - "instruction": task.get_instruction(episode), + "instruction": task.get_instruction( + episode + ), "success": 0.0, "num_steps": 0, "elapsed_seconds": 0.0, @@ -313,7 +343,8 @@ def run(self) -> list[dict]: else: logger.error( "Episode %s failed after %d attempts, skipping", - episode_id, self.max_retries, + episode_id, + self.max_retries, ) result = { "episode_id": episode_id, @@ -335,8 +366,7 @@ def run(self) -> list[dict]: # Save per-episode result (strip internal keys) result_to_save = { - k: v for k, v in result.items() - if not k.startswith("_") + k: v for k, v in result.items() if not k.startswith("_") } (episode_dir / "result.json").write_text( json.dumps(result_to_save, indent=2) @@ -344,7 +374,9 @@ def run(self) -> list[dict]: # If simulator restart failed, stop evaluation if sim is None: - logger.error("No simulator available, stopping evaluation early.") + logger.error( + "No simulator available, stopping evaluation early." + ) break finally: @@ -364,11 +396,13 @@ def run(self) -> list[dict]: trajectory = r.pop("_trajectory", []) episode = r.pop("_episode", {}) episode_results = {k: v for k, v in r.items() if not k.startswith("_")} - records.append(EpisodeRecord( - episode=episode, - trajectory=trajectory, - episode_results=episode_results, - )) + records.append( + EpisodeRecord( + episode=episode, + trajectory=trajectory, + episode_results=episode_results, + ) + ) # 6. Aggregate and save summary try: @@ -391,7 +425,9 @@ def run(self) -> list[dict]: return all_results - def _load_completed_results(self, run_dir: Path, total_episodes: int) -> tuple[list[dict], int]: + def _load_completed_results( + self, run_dir: Path, total_episodes: int + ) -> tuple[list[dict], int]: """Scan episode dirs to find the first incomplete episode. Walks episode directories in ascending order (by index prefix). @@ -433,7 +469,9 @@ def _load_completed_results(self, run_dir: Path, total_episodes: int) -> tuple[l start_index += 1 continue except (json.JSONDecodeError, OSError): - logger.warning("Corrupt result.json in %s, treating as incomplete", ep_dir) + logger.warning( + "Corrupt result.json in %s, treating as incomplete", ep_dir + ) # First incomplete episode found — stop here break @@ -442,7 +480,8 @@ def _load_completed_results(self, run_dir: Path, total_episodes: int) -> tuple[l if dirs_to_clear: logger.info( "Resume: clearing %d episode dirs from index %d onward", - len(dirs_to_clear), start_index, + len(dirs_to_clear), + start_index, ) for d in dirs_to_clear: shutil.rmtree(d) @@ -483,7 +522,13 @@ def _reattach_resume_data( result["_trajectory"] = [] def _run_episode( - self, sim, agent, task, episode: dict, index: int, episode_dir: Path, + self, + sim, + agent, + task, + episode: dict, + index: int, + episode_dir: Path, ) -> dict: """Run a single episode and return metrics.""" agent.reset() @@ -503,15 +548,18 @@ def _run_episode( # Write reset entry to trajectory trajectory_path = episode_dir / "trajectory.jsonl" - self._write_trajectory_entry(trajectory_path, { - "step": 0, - "type": "reset", - "rgb_path": Path(observation.rgb_path).name, - "agent_pose": observation.agent_pose, - "reward": 0.0, - "done": False, - "info": {}, - }) + self._write_trajectory_entry( + trajectory_path, + { + "step": 0, + "type": "reset", + "rgb_path": Path(observation.rgb_path).name, + "agent_pose": observation.agent_pose, + "reward": 0.0, + "done": False, + "info": {}, + }, + ) # Agent-simulator loop trajectory: list[StepResult] = [] @@ -531,21 +579,24 @@ def _run_episode( # Get LLM response from agent memory (None for buffered actions) llm_response = None - if hasattr(agent, 'memory') and agent.memory.steps: + if hasattr(agent, "memory") and agent.memory.steps: llm_response = agent.memory.steps[-1].llm_response # Write step entry to trajectory - self._write_trajectory_entry(trajectory_path, { - "step": step + 1, - "type": "step", - "action": action.action_name, - "llm_response": llm_response, - "rgb_path": Path(step_result.observation.rgb_path).name, - "agent_pose": step_result.observation.agent_pose, - "reward": step_result.reward, - "done": step_result.done, - "info": step_result.info, - }) + self._write_trajectory_entry( + trajectory_path, + { + "step": step + 1, + "type": "step", + "action": action.action_name, + "llm_response": llm_response, + "rgb_path": Path(step_result.observation.rgb_path).name, + "agent_pose": step_result.observation.agent_pose, + "reward": step_result.reward, + "done": step_result.done, + "info": step_result.info, + }, + ) # Feed action outcome back to agent for ReAct reasoning last_success = step_result.info.get("last_action_success", 1.0) @@ -573,7 +624,7 @@ def _run_episode( metrics["_episode"] = episode # Snapshot LLM usage for this episode - if hasattr(agent, 'llm_client') and hasattr(agent.llm_client, 'get_usage'): + if hasattr(agent, "llm_client") and hasattr(agent.llm_client, "get_usage"): metrics["llm_usage"] = agent.llm_client.get_usage() agent.llm_client.reset_usage() @@ -608,7 +659,9 @@ def _aggregate_llm_usage(results: list[dict]) -> dict: total["total_prompt_tokens"] += usage.get("prompt_tokens", 0) total["total_completion_tokens"] += usage.get("completion_tokens", 0) total["total_cost_usd"] += usage.get("cost_usd", 0.0) - total["total_tokens"] = total["total_prompt_tokens"] + total["total_completion_tokens"] + total["total_tokens"] = ( + total["total_prompt_tokens"] + total["total_completion_tokens"] + ) n = len(results) or 1 total["avg_prompt_tokens_per_episode"] = round(total["total_prompt_tokens"] / n) total["avg_cost_per_episode_usd"] = round(total["total_cost_usd"] / n, 6) @@ -624,12 +677,18 @@ def _create_task(self): data_dir=self.data_dir, ) - def _create_agent(self, action_space: list[str], task_config: dict, - backend: str | None = None, base_url: str | None = None): + def _create_agent( + self, + action_space: list[str], + task_config: dict, + backend: str | None = None, + base_url: str | None = None, + ): from easi.utils.import_utils import import_class if self.agent_type == "dummy": from easi.agents.dummy_agent import DummyAgent + return DummyAgent(action_space=action_space, seed=self.agent_seed) elif self.agent_type == "react": @@ -641,8 +700,10 @@ def _create_agent(self, action_space: list[str], task_config: dict, if backend and backend != "legacy": from easi.llm.client import LLMClient from easi.llm.utils import ( - build_litellm_model, parse_llm_kwargs, - split_kwargs, validate_backend, + build_litellm_model, + parse_llm_kwargs, + split_kwargs, + validate_backend, ) validate_backend(backend) @@ -667,9 +728,8 @@ def _create_agent(self, action_space: list[str], task_config: dict, else: # Legacy path: existing LLMApiClient from easi.llm.api_client import LLMApiClient - llm = LLMApiClient( - base_url=base_url or "http://127.0.0.1:8000" - ) + + llm = LLMApiClient(base_url=base_url or "http://127.0.0.1:8000") # Load task-specific prompt builder prompt_builder = None @@ -687,7 +747,9 @@ def _create_agent(self, action_space: list[str], task_config: dict, else: raise ValueError(f"Unknown agent type: {self.agent_type}") - def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge", worker_id: int = 0): + def _create_simulator( + self, simulator_key: str, task=None, label: str = "bridge", worker_id: int = 0 + ): import json as _json from easi.simulators.registry import ( @@ -709,13 +771,14 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" # Task-specific bridge overrides simulator default bridge_path = ( - (task.get_bridge_script_path() if task else None) - or sim._get_bridge_script_path() - ) + task.get_bridge_script_path() if task else None + ) or sim._get_bridge_script_path() extra_args = ["--data-dir", str(self.data_dir)] if task and task.simulator_kwargs: - extra_args.extend(["--simulator-kwargs", _json.dumps(task.simulator_kwargs)]) + extra_args.extend( + ["--simulator-kwargs", _json.dumps(task.simulator_kwargs)] + ) # Extract runner-level timeouts from simulator_configs sim_configs = task.simulator_configs if task else {} @@ -743,8 +806,14 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" label=label, **runner_kwargs, ) - data_dir_str = str(self.data_dir) if self.data_dir else ( - entry.data_dir.replace("~", str(Path.home())) if entry.data_dir else None + data_dir_str = ( + str(self.data_dir) + if self.data_dir + else ( + entry.data_dir.replace("~", str(Path.home())) + if entry.data_dir + else None + ) ) runner.launch_docker( docker_env_manager=env_manager, @@ -777,30 +846,52 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" ) # Use pre-setup global platform if available, else resolve per-simulator - if getattr(self, '_render_platform', None) is not None: + if getattr(self, "_render_platform", None) is not None: render_platform = self._render_platform else: - render_platform = resolve_render_platform(simulator_key, platform_name, env_manager=env_manager) + render_platform = resolve_render_platform( + simulator_key, platform_name, env_manager=env_manager + ) - # Pass platform name to get_env_vars for conditional logic from easi.core.render_platforms import EnvVars env_vars = env_manager.get_env_vars(render_platform_name=platform_name) - # Merge task-level env_vars from simulator_configs.env_vars if task and task.extra_env_vars: env_vars = EnvVars.merge(env_vars, EnvVars(replace=task.extra_env_vars)) - # Per-worker platform instance (lifecycle platforms like xorg return - # a worker-specific instance that already handles GPU assignment) - render_platform = render_platform.for_worker(worker_id) + from easi.simulators.registry import ( + resolve_render_adapter as _resolve_render_adapter, + ) - # Apply per-worker GPU pinning via round-robin (skip if platform - # already sets CUDA_VISIBLE_DEVICES, e.g. xorg worker platforms) - platform_env = render_platform.get_env_vars() - if self.sim_gpus is not None and "CUDA_VISIBLE_DEVICES" not in platform_env.replace: + adapter = _resolve_render_adapter(simulator_key, env_manager=env_manager) + + base_render_platform = render_platform + binding = render_platform.for_worker(worker_id) + + adapter_env = adapter.get_env_vars(binding) if adapter else EnvVars() + binding_env = EnvVars.merge(binding.extra_env, adapter_env) + + if binding.display: + binding_env = EnvVars.merge( + binding_env, EnvVars(replace={"DISPLAY": binding.display}) + ) + if binding.cuda_visible_devices is not None: + binding_env = EnvVars.merge( + binding_env, + EnvVars(replace={"CUDA_VISIBLE_DEVICES": binding.cuda_visible_devices}), + ) + + if self.sim_gpus is not None and binding.cuda_visible_devices is None: gpu_id = self.sim_gpus[worker_id % len(self.sim_gpus)] - env_vars = EnvVars.merge(env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": str(gpu_id)})) + env_vars = EnvVars.merge( + env_vars, EnvVars(replace={"CUDA_VISIBLE_DEVICES": str(gpu_id)}) + ) + + env_vars = EnvVars.merge(env_vars, binding_env) + render_platform = base_render_platform + active_binding = binding + active_adapter = adapter runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), @@ -809,6 +900,8 @@ def _create_simulator(self, simulator_key: str, task=None, label: str = "bridge" screen_config=env_manager.screen_config, extra_args=extra_args, extra_env=env_vars if env_vars else None, + render_adapter=active_adapter, + worker_binding=active_binding, label=label, **runner_kwargs, ) diff --git a/easi/simulators/coppeliasim/manifest.yaml b/easi/simulators/coppeliasim/manifest.yaml index ae4f3e5..af45433 100644 --- a/easi/simulators/coppeliasim/manifest.yaml +++ b/easi/simulators/coppeliasim/manifest.yaml @@ -7,11 +7,7 @@ versions: simulator_class: "easi.simulators.coppeliasim.v4_1_0.simulator.CoppeliaSimSimulatorV410" env_manager_class: "easi.simulators.coppeliasim.v4_1_0.env_manager.CoppeliaSimEnvManagerV410" python_version: "3.10" - render_platforms: - auto: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimAutoPlatform" - native: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimNativePlatform" - xvfb: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimXvfbPlatform" - xorg: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimXorgPlatform" + render_adapter: "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimRenderAdapter" installation_kwargs: binary_url: "https://downloads.coppeliarobotics.com/V4_1_0/CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" binary_filename: "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04.tar.xz" diff --git a/easi/simulators/coppeliasim/v4_1_0/env_manager.py b/easi/simulators/coppeliasim/v4_1_0/env_manager.py index f46bd5a..06d674f 100644 --- a/easi/simulators/coppeliasim/v4_1_0/env_manager.py +++ b/easi/simulators/coppeliasim/v4_1_0/env_manager.py @@ -61,15 +61,13 @@ def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: """Return platform-agnostic CoppeliaSim env vars for bridge subprocess. Platform-specific vars (QT_QPA_PLATFORM_PLUGIN_PATH, __EGL_VENDOR_LIBRARY_FILENAMES) - are handled by custom render platform classes in render_platforms.py. + are handled by the CoppeliaSimRenderAdapter in render_platforms.py. """ binary_dir_name = self.installation_kwargs.get("binary_dir_name", "") if not binary_dir_name: return EnvVars() t = self._get_template_variables() - coppeliasim_root = self._resolve_template( - "{extras_dir}/" + binary_dir_name, t - ) + coppeliasim_root = self._resolve_template("{extras_dir}/" + binary_dir_name, t) # Include conda env lib dir so fontconfig/freetype/Qt deps resolve conda_lib = self._resolve_template("{env_dir}/lib", t) ld_path = f"{coppeliasim_root}:{conda_lib}" @@ -136,6 +134,4 @@ def post_install(self, context: dict) -> None: logger.info("Copying %s to %s", lua_addon_script, coppeliasim_root) shutil.copy(str(lua_src), str(coppeliasim_root / lua_addon_script)) else: - logger.warning( - "Lua addon script not found at %s", lua_src - ) + logger.warning("Lua addon script not found at %s", lua_src) diff --git a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py index 1d622d9..b861684 100644 --- a/easi/simulators/coppeliasim/v4_1_0/render_platforms.py +++ b/easi/simulators/coppeliasim/v4_1_0/render_platforms.py @@ -1,28 +1,12 @@ -"""Custom render platforms for CoppeliaSim V4.1.0. - -CoppeliaSim needs simulator-specific env vars (QT_QPA_PLATFORM_PLUGIN_PATH, -__EGL_VENDOR_LIBRARY_FILENAMES) that depend on the CoppeliaSim binary location. -These custom platforms compute the correct paths from the env_manager. - -Additionally, each platform sets COPPELIASIM_HEADLESS so the bridge can -start CoppeliaSim in the correct mode: -- native: headless=False (user has a real display and wants GUI) -- xvfb: headless=True (xvfb is only for Qt plugins, not CoppeliaSim rendering) -- auto: headless=False if DISPLAY, True otherwise -""" - from __future__ import annotations import os from pathlib import Path from easi.core.render_platforms import ( - AutoPlatform, EnvVars, - NativePlatform, - XorgPlatform, - XvfbPlatform, - _XorgWorkerPlatform, + SimulatorRenderAdapter, + WorkerBinding, ) @@ -32,21 +16,6 @@ def _coppeliasim_qt_env_vars( include_mesa_egl: bool = False, headless: bool = True, ) -> EnvVars: - """Compute CoppeliaSim Qt env vars. - - CoppeliaSim always needs QT_QPA_PLATFORM_PLUGIN_PATH to find its bundled - Qt plugins (libqxcb.so, etc.), regardless of display mode. - - Args: - env_manager: The CoppeliaSimEnvManager instance. - include_mesa_egl: If True, also set __EGL_VENDOR_LIBRARY_FILENAMES - to Mesa vendor (needed for Xvfb; NVIDIA EGL crashes Xvfb). - headless: Whether CoppeliaSim should use its headless renderer. - - Returns: - EnvVars with QT_QPA_PLATFORM_PLUGIN_PATH, COPPELIASIM_HEADLESS, - and optionally Mesa EGL. - """ if env_manager is None: return EnvVars() binary_dir_name = env_manager.installation_kwargs.get("binary_dir_name", "") @@ -69,96 +38,23 @@ def _coppeliasim_qt_env_vars( ) -class CoppeliaSimNativePlatform(NativePlatform): - """Native display for CoppeliaSim — Qt plugin path, no Mesa override, headless=False.""" - - @property - def name(self) -> str: - return "native" - - def get_env_vars(self) -> EnvVars: - return _coppeliasim_qt_env_vars( - self._env_manager, - include_mesa_egl=False, - headless=False, - ) - - -class CoppeliaSimXvfbPlatform(XvfbPlatform): - """Xvfb platform for CoppeliaSim — Qt plugin path + Mesa EGL, headless=True. - - Xvfb provides a virtual X11 display for Qt plugin loading, but CoppeliaSim - itself should use its native headless renderer (libcoppeliaSimHeadless.so). - """ - - @property - def name(self) -> str: - return "xvfb" - - def get_env_vars(self) -> EnvVars: - return _coppeliasim_qt_env_vars( - self._env_manager, - include_mesa_egl=True, - headless=True, - ) - - -class CoppeliaSimAutoPlatform(AutoPlatform): - """Auto-detect for CoppeliaSim — native if DISPLAY, xvfb otherwise. - - Both modes need Qt plugin path. Only xvfb needs Mesa EGL override. - Headless follows display: False with real display, True without. - """ +class CoppeliaSimRenderAdapter(SimulatorRenderAdapter): + def __init__(self, env_manager=None): + self._env_manager = env_manager - @property - def name(self) -> str: - return "auto" - - def get_env_vars(self) -> EnvVars: + def get_env_vars(self, binding: WorkerBinding) -> EnvVars: + backend = binding.metadata.get("backend", "") + if backend == "xvfb": + return _coppeliasim_qt_env_vars( + self._env_manager, include_mesa_egl=True, headless=True + ) + if backend in ("native", "xorg") or binding.cuda_visible_devices is not None: + return _coppeliasim_qt_env_vars( + self._env_manager, include_mesa_egl=False, headless=False + ) has_display = bool(os.environ.get("DISPLAY", "")) return _coppeliasim_qt_env_vars( self._env_manager, include_mesa_egl=not has_display, headless=not has_display, ) - - -class _CoppeliaSimXorgWorkerPlatform(_XorgWorkerPlatform): - """Per-worker Xorg platform with CoppeliaSim Qt env vars merged in.""" - - def __init__(self, display_num: int, gpu_id: int, coppeliasim_env: EnvVars): - super().__init__(display_num=display_num, gpu_id=gpu_id) - self._coppeliasim_env = coppeliasim_env - - def get_env_vars(self) -> EnvVars: - return EnvVars.merge(super().get_env_vars(), self._coppeliasim_env) - - -class CoppeliaSimXorgPlatform(XorgPlatform): - """Xorg platform for CoppeliaSim — Qt plugin path, no Mesa, headless=False. - - Xorg provides a real GPU-accelerated X11 display, so CoppeliaSim renders - with its GUI library (not headless). Per-worker instances include the - CoppeliaSim Qt env vars. - """ - - @property - def name(self) -> str: - return "xorg" - - def for_worker(self, worker_id: int) -> _CoppeliaSimXorgWorkerPlatform: - if not self._instances: - raise RuntimeError( - "XorgPlatform.setup() must be called before for_worker()" - ) - inst = self._instances[worker_id % len(self._instances)] - coppeliasim_env = _coppeliasim_qt_env_vars( - self._env_manager, - include_mesa_egl=False, - headless=False, - ) - return _CoppeliaSimXorgWorkerPlatform( - display_num=inst.display, - gpu_id=inst.gpu_id, - coppeliasim_env=coppeliasim_env, - ) diff --git a/easi/simulators/dummy/manifest.yaml b/easi/simulators/dummy/manifest.yaml index 18b0ad0..9d49ca3 100644 --- a/easi/simulators/dummy/manifest.yaml +++ b/easi/simulators/dummy/manifest.yaml @@ -9,3 +9,4 @@ versions: python_version: "3.10" render_platforms: dummy_custom: "easi.simulators.dummy.v1.render_platforms.DummyCustomPlatform" + render_adapter: "easi.simulators.dummy.v1.render_platforms.DummyRenderAdapter" diff --git a/easi/simulators/dummy/v1/render_platforms.py b/easi/simulators/dummy/v1/render_platforms.py index a4d7acb..04abf44 100644 --- a/easi/simulators/dummy/v1/render_platforms.py +++ b/easi/simulators/dummy/v1/render_platforms.py @@ -1,6 +1,11 @@ """Custom render platforms for the dummy simulator (for testing).""" -from easi.core.render_platforms import EnvVars, HeadlessPlatform +from easi.core.render_platforms import ( + EnvVars, + HeadlessPlatform, + SimulatorRenderAdapter, + WorkerBinding, +) class DummyCustomPlatform(HeadlessPlatform): @@ -12,3 +17,10 @@ def name(self) -> str: def get_env_vars(self) -> EnvVars: return EnvVars(replace={"DUMMY_CUSTOM_PLATFORM": "1"}) + + +class DummyRenderAdapter(SimulatorRenderAdapter): + """A trivial render adapter for testing adapter registration and resolution.""" + + def get_env_vars(self, binding: WorkerBinding) -> EnvVars: + return EnvVars(replace={"DUMMY_ADAPTER": "1"}) diff --git a/easi/simulators/omnigibson/manifest.yaml b/easi/simulators/omnigibson/manifest.yaml index 1d9c54b..cf5d08b 100644 --- a/easi/simulators/omnigibson/manifest.yaml +++ b/easi/simulators/omnigibson/manifest.yaml @@ -7,9 +7,7 @@ versions: simulator_class: "easi.simulators.omnigibson.v3_7_2.simulator.OmniGibsonSimulator" env_manager_class: "easi.simulators.omnigibson.v3_7_2.env_manager.OmniGibsonEnvManager" python_version: "3.10" - render_platforms: - native: "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonNativePlatform" - auto: "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonAutoPlatform" + render_adapter: "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonRenderAdapter" installation_kwargs: cuda_version: "12.4" behavior_1k_repo: "https://github.com/StanfordVL/BEHAVIOR-1K.git" diff --git a/easi/simulators/omnigibson/v3_7_2/bridge.py b/easi/simulators/omnigibson/v3_7_2/bridge.py index d5f513b..3a47e17 100644 --- a/easi/simulators/omnigibson/v3_7_2/bridge.py +++ b/easi/simulators/omnigibson/v3_7_2/bridge.py @@ -8,8 +8,8 @@ - Action execution and observation capture - Main IPC loop (reset/step/close) -Rendering mode is controlled via OMNIGIBSON_HEADLESS env var, set by the active -render platform class (OmniGibsonNativePlatform or OmniGibsonAutoPlatform). +Rendering mode is controlled via OMNIGIBSON_HEADLESS env var, set by the +simulator render adapter on top of the active core render backend. Note: Isaac Sim takes 60-120 seconds to start on first launch. Use --timeout 300 or more when running easi sim test for OmniGibson. @@ -17,6 +17,7 @@ Usage: python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] """ + from __future__ import annotations import numpy as np diff --git a/easi/simulators/omnigibson/v3_7_2/env_manager.py b/easi/simulators/omnigibson/v3_7_2/env_manager.py index 2aefc00..ce2ac4d 100644 --- a/easi/simulators/omnigibson/v3_7_2/env_manager.py +++ b/easi/simulators/omnigibson/v3_7_2/env_manager.py @@ -12,14 +12,15 @@ 7. Fix websockets conflict in Isaac Sim extscache (post_install) 8. Fix cffi compatibility (post_install) -Rendering mode is controlled via OMNIGIBSON_HEADLESS, set by the active render -platform class (OmniGibsonNativePlatform or OmniGibsonAutoPlatform). No Xvfb needed. +Rendering mode is controlled via OMNIGIBSON_HEADLESS, set by the simulator's +render adapter on top of the active core render backend. No Xvfb needed. NFS workaround: On NFS/FUSE filesystems, /proc/self/exe can resolve to "python3.10 (deleted)" which crashes Isaac Sim's Carbonite library. The get_python_executable() override copies the Python binary to /tmp (local filesystem) where /proc/self/exe resolves correctly. """ + from __future__ import annotations import atexit @@ -139,15 +140,15 @@ def get_python_executable(self) -> str: logger.trace( "Copied Python to local filesystem: %s -> %s", - real_binary, local_python, + real_binary, + local_python, ) return str(local_python) def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: """Export env vars for EULA acceptance and PYTHONHOME. - OMNIGIBSON_HEADLESS is set by the render platform (OmniGibsonNativePlatform - or OmniGibsonAutoPlatform), not here. + OMNIGIBSON_HEADLESS is set by the simulator render adapter, not here. PYTHONHOME is set to the conda env directory so the /tmp Python copy can find the conda env's stdlib and site-packages. @@ -155,10 +156,12 @@ def get_env_vars(self, render_platform_name: str | None = None) -> EnvVars: conda_python = self._get_conda_python() # conda env dir is two levels up from bin/python conda_env_dir = str(Path(conda_python).resolve().parent.parent) - return EnvVars(replace={ - "OMNI_KIT_ACCEPT_EULA": "YES", - "PYTHONHOME": conda_env_dir, - }) + return EnvVars( + replace={ + "OMNI_KIT_ACCEPT_EULA": "YES", + "PYTHONHOME": conda_env_dir, + } + ) def post_install(self, context: dict) -> None: """Replicate BEHAVIOR-1K setup.sh install process. @@ -220,9 +223,15 @@ def _install_pytorch(self, python: str) -> None: logger.info("Installing PyTorch with CUDA %s support", cuda_version) self._run_command( [ - python, "-m", "pip", "install", - "torch", "torchvision", "torchaudio", - "--index-url", f"https://download.pytorch.org/whl/cu{cuda_ver_short}", + python, + "-m", + "pip", + "install", + "torch", + "torchvision", + "torchaudio", + "--index-url", + f"https://download.pytorch.org/whl/cu{cuda_ver_short}", ], "install PyTorch with CUDA", ) @@ -292,6 +301,7 @@ def _install_isaac_sim(self, python: str) -> None: finally: # Clean up temp directory import shutil + shutil.rmtree(temp_dir, ignore_errors=True) def _fix_websockets_conflict(self, python: str) -> None: @@ -302,9 +312,14 @@ def _fix_websockets_conflict(self, python: str) -> None: """ try: result = subprocess.run( - [python, "-c", - "import isaacsim, os; print(os.environ.get('ISAAC_PATH', ''))"], - capture_output=True, text=True, timeout=30, + [ + python, + "-c", + "import isaacsim, os; print(os.environ.get('ISAAC_PATH', ''))", + ], + capture_output=True, + text=True, + timeout=30, ) isaac_path = result.stdout.strip() except (subprocess.TimeoutExpired, FileNotFoundError): @@ -320,6 +335,7 @@ def _fix_websockets_conflict(self, python: str) -> None: logger.info("Fixing websockets conflict under %s", extscache) import shutil + for ws_dir in extscache.rglob("pip_prebundle/websockets"): if ws_dir.is_dir(): logger.trace("Removing %s", ws_dir) @@ -339,11 +355,14 @@ def _check_glibc_old() -> bool: try: result = subprocess.run( ["ldd", "--version"], - capture_output=True, text=True, timeout=10, + capture_output=True, + text=True, + timeout=10, ) output = result.stdout + result.stderr # Look for version like "2.31", "2.32", "2.33" import re + match = re.search(r"(\d+\.\d+)", output) if match: version = float(match.group(1)) @@ -356,6 +375,7 @@ def _check_glibc_old() -> bool: def _download_wheel(url: str, dest: Path) -> None: """Download a single wheel file.""" import urllib.request + req = urllib.request.Request(url, headers={"User-Agent": "easi/1.0"}) with urllib.request.urlopen(req) as response, open(str(dest), "wb") as out: while True: diff --git a/easi/simulators/omnigibson/v3_7_2/render_platforms.py b/easi/simulators/omnigibson/v3_7_2/render_platforms.py index 0c5cfeb..594bee8 100644 --- a/easi/simulators/omnigibson/v3_7_2/render_platforms.py +++ b/easi/simulators/omnigibson/v3_7_2/render_platforms.py @@ -1,35 +1,38 @@ -"""Custom render platforms for OmniGibson v3.7.2. +"""Render adapter for OmniGibson v3.7.2. -Each platform sets OMNIGIBSON_HEADLESS so Isaac Sim starts in the correct mode: -- native: OMNIGIBSON_HEADLESS=0 (user has a real display, Isaac Sim GUI opens) -- auto: OMNIGIBSON_HEADLESS=0 if DISPLAY is set, 1 otherwise +OmniGibson-specific render behavior is expressed through +``OmniGibsonRenderAdapter`` so contributors can reuse core render backends +without adding backend-specific platform subclasses. """ from __future__ import annotations import os -from easi.core.render_platforms import AutoPlatform, EnvVars, NativePlatform - - -class OmniGibsonNativePlatform(NativePlatform): - """Native display for OmniGibson — Isaac Sim GUI window, OMNIGIBSON_HEADLESS=0.""" - - @property - def name(self) -> str: - return "native" - - def get_env_vars(self) -> EnvVars: - return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0"}) - - -class OmniGibsonAutoPlatform(AutoPlatform): - """Auto-detect for OmniGibson — native mode if $DISPLAY is set, headless otherwise.""" - - @property - def name(self) -> str: - return "auto" - - def get_env_vars(self) -> EnvVars: +from easi.core.render_platforms import ( + EnvVars, + SimulatorRenderAdapter, + WorkerBinding, +) + + +class OmniGibsonRenderAdapter(SimulatorRenderAdapter): + """Adapter for OmniGibson — sets OMNIGIBSON_HEADLESS from a WorkerBinding. + + Dispatches based on binding metadata ``backend`` key, then falls back to + ``cuda_visible_devices`` (present on xorg bindings) as a headless heuristic, + and finally reads ``$DISPLAY`` for the auto path. + """ + + def get_env_vars(self, binding: WorkerBinding) -> EnvVars: + backend = binding.metadata.get("backend", "") + if backend in ("native", "xorg"): + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0"}) + if backend == "xvfb": + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "1"}) + # xorg bindings always carry a GPU assignment; treat as display-attached + if binding.cuda_visible_devices is not None: + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0"}) + # Auto path: check runtime display availability has_display = bool(os.environ.get("DISPLAY", "")) return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0" if has_display else "1"}) diff --git a/easi/simulators/registry.py b/easi/simulators/registry.py index e5b2e01..fe880fa 100644 --- a/easi/simulators/registry.py +++ b/easi/simulators/registry.py @@ -32,8 +32,11 @@ class SimulatorEntry: simulator_class: str # fully qualified class name env_manager_class: str # fully qualified class name python_version: str - installation_kwargs: dict = field(default_factory=dict) - render_platforms: dict[str, str] = field(default_factory=dict) # platform_name -> FQN class + installation_kwargs: dict[str, object] = field(default_factory=dict) + render_platforms: dict[str, str] = field( + default_factory=dict + ) # platform_name -> FQN class + render_adapter: str | None = None # FQN class for SimulatorRenderAdapter, or None runtime: str = "conda" # "conda" or "docker" data_dir: str = "" # default data directory (from manifest top-level) @@ -67,6 +70,7 @@ def _discover_simulators() -> dict[str, SimulatorEntry]: python_version=ver_info.get("python_version", "3.10"), installation_kwargs=ver_info.get("installation_kwargs", {}), render_platforms=ver_info.get("render_platforms", {}), + render_adapter=ver_info.get("render_adapter"), runtime=ver_info.get("runtime", "conda"), data_dir=manifest.get("data_dir", ""), ) @@ -109,9 +113,7 @@ def get_simulator_entry(key: str) -> SimulatorEntry: registry = _get_registry() if key not in registry: available = list_simulators() - raise KeyError( - f"Simulator '{key}' not found. Available: {available}" - ) + raise KeyError(f"Simulator '{key}' not found. Available: {available}") return registry[key] @@ -169,6 +171,40 @@ def resolve_render_platform(key: str, platform_name: str, env_manager=None): return get_render_platform(platform_name) +def resolve_render_adapter(key: str, env_manager=None): + """Resolve the SimulatorRenderAdapter for a simulator, if one is registered. + + Looks up the ``render_adapter`` manifest key for the given simulator and + returns an instantiated adapter. Returns ``None`` when no adapter is + registered so callers can fall back to no-op behaviour without importing + the base class. + + Args: + key: Simulator registry key (e.g. "coppeliasim:v4_1_0" or "coppeliasim"). + env_manager: Optional env manager instance passed to the adapter constructor. + + Returns: + Instantiated SimulatorRenderAdapter, or None if no adapter is registered. + """ + entry = get_simulator_entry(key) + adapter_class_path = entry.render_adapter + if not isinstance(adapter_class_path, str): + return None + adapter_class_path = adapter_class_path.strip() + if not adapter_class_path or "." not in adapter_class_path: + return None + cls = _import_class(adapter_class_path) + if env_manager is not None: + try: + instance = cls(env_manager=env_manager) + except TypeError: + instance = cls() + else: + instance = cls() + logger.trace("Using render adapter '%s' from %s", adapter_class_path, key) + return instance + + def refresh() -> None: """Force re-discovery of simulators (useful after adding new ones at runtime).""" global _registry diff --git a/easi/simulators/subprocess_runner.py b/easi/simulators/subprocess_runner.py index 37f94c6..c32a845 100644 --- a/easi/simulators/subprocess_runner.py +++ b/easi/simulators/subprocess_runner.py @@ -28,7 +28,8 @@ write_command, ) from easi.core.exceptions import SimulatorError, SimulatorTimeoutError -from easi.core.render_platforms import EnvVars, RenderPlatform +from easi.core.render_platforms import EnvVars, RenderPlatform, WorkerBinding +from easi.core.render_platforms.base import SimulatorRenderAdapter from easi.utils.logging import get_logger logger = get_logger(__name__) @@ -48,6 +49,8 @@ def __init__( poll_interval: float = 0.1, extra_args: list[str] | None = None, extra_env: EnvVars | None = None, + render_adapter: SimulatorRenderAdapter | None = None, + worker_binding: WorkerBinding | None = None, label: str = "bridge", ): self.python_executable = python_executable @@ -59,6 +62,8 @@ def __init__( self.poll_interval = poll_interval self.extra_args = extra_args or [] self.extra_env = extra_env + self.render_adapter = render_adapter + self.worker_binding = worker_binding self.label = label self._process: subprocess.Popen | None = None @@ -114,9 +119,7 @@ def launch(self) -> None: ) if not status.get("ready", False): output = self._get_recent_output() - raise SimulatorError( - f"Bridge reported not ready. Output:\n{output}" - ) + raise SimulatorError(f"Bridge reported not ready. Output:\n{output}") logger.info("Bridge subprocess ready (PID: %d)", self._process.pid) except (SimulatorError, SimulatorTimeoutError) as exc: # Collect output before shutdown destroys the process @@ -157,9 +160,7 @@ def launch_docker( ) # Start output reader thread - self._reader_thread = threading.Thread( - target=self._stream_output, daemon=True - ) + self._reader_thread = threading.Thread(target=self._stream_output, daemon=True) self._reader_thread.start() # Wait for bridge to signal ready @@ -180,7 +181,9 @@ def launch_docker( output = self._get_recent_output() self.shutdown() if output: - raise SimulatorError(f"{exc}\n\nDocker bridge output:\n{output}") from exc + raise SimulatorError( + f"{exc}\n\nDocker bridge output:\n{output}" + ) from exc raise def send_command(self, command: dict, timeout: float | None = None) -> dict: @@ -234,7 +237,11 @@ def _build_subprocess_env(self) -> dict[str, str] | None: Returns None if no env vars to set (subprocess inherits parent env). """ platform_env = self.render_platform.get_env_vars() - combined = EnvVars.merge(platform_env, self.extra_env) if self.extra_env else platform_env + combined = ( + EnvVars.merge(platform_env, self.extra_env) + if self.extra_env + else platform_env + ) if not combined: return None @@ -250,8 +257,10 @@ def _build_launch_command(self) -> list[str]: str(self._workspace), ] cmd.extend(self.extra_args) - - return self.render_platform.wrap_command(cmd, self.screen_config) + cmd = self.render_platform.wrap_command(cmd, self.screen_config) + if self.render_adapter is not None and self.worker_binding is not None: + cmd = self.render_adapter.wrap_command(cmd, self.worker_binding) + return cmd def _build_docker_launch_command( self, @@ -263,9 +272,12 @@ def _build_docker_launch_command( """Build launch command using docker run via DockerEnvironmentManager.""" bridge_command = [ docker_env_manager.container_python_path, - str(Path(docker_env_manager.easi_mount) / self.bridge_script_path.relative_to( - Path(__file__).resolve().parents[1] - )), + str( + Path(docker_env_manager.easi_mount) + / self.bridge_script_path.relative_to( + Path(__file__).resolve().parents[1] + ) + ), "--workspace", workspace_dir, ] diff --git a/easi/tasks/ebmanipulation/bridge.py b/easi/tasks/ebmanipulation/bridge.py index 44960a0..3e3eabc 100644 --- a/easi/tasks/ebmanipulation/bridge.py +++ b/easi/tasks/ebmanipulation/bridge.py @@ -16,6 +16,7 @@ Usage: python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] """ + from __future__ import annotations import json @@ -83,7 +84,7 @@ def _create_env(self, reset_config, simulator_kwargs): scene_bounds = simulator_kwargs.get( "scene_bounds", [-0.3, -0.5, 0.6, 0.7, 0.5, 1.6] ) - # COPPELIASIM_HEADLESS is set by CoppeliaSim's custom render platform classes. + # COPPELIASIM_HEADLESS is set by CoppeliaSim's render adapter. # Falls back to simulator_kwargs, then defaults to True (EBManEnv default). headless_env = os.environ.get("COPPELIASIM_HEADLESS") if headless_env is not None: @@ -143,9 +144,11 @@ def _on_step(self, env, action_text): voxel_size = self.simulator_kwargs.get("voxel_size", 100) rotation_resolution = self.simulator_kwargs.get("rotation_resolution", 3) rotation_bins = int(360 / rotation_resolution) - action = [np.random.randint(0, voxel_size) for _ in range(3)] + [ - np.random.randint(0, rotation_bins) for _ in range(3) - ] + [1.0] + action = ( + [np.random.randint(0, voxel_size) for _ in range(3)] + + [np.random.randint(0, rotation_bins) for _ in range(3)] + + [1.0] + ) return env.step(action) def _extract_image(self, obs): @@ -158,9 +161,7 @@ def _extract_info(self, info): "action_success": float(info.get("action_success", 0.0)), "feedback": str(info.get("env_feedback", "")), "env_step": int(info.get("env_step", 0)), - "episode_elapsed_seconds": float( - info.get("episode_elapsed_seconds", 0.0) - ), + "episode_elapsed_seconds": float(info.get("episode_elapsed_seconds", 0.0)), } def _make_response(self, obs, reward=0.0, done=False, info=None): @@ -196,9 +197,7 @@ def _make_response(self, obs, reward=0.0, done=False, info=None): coord_result = form_object_coord_for_input( obs, task_class, self._camera_types ) - avg_coord, all_avg_point_list, cam_ext_list, cam_int_list = ( - coord_result - ) + avg_coord, all_avg_point_list, cam_ext_list, cam_int_list = coord_result avg_obj_coord = str(avg_coord) # Annotate the saved image diff --git a/tests/test_coppeliasim_simulator.py b/tests/test_coppeliasim_simulator.py index e1bacb5..dd4f574 100644 --- a/tests/test_coppeliasim_simulator.py +++ b/tests/test_coppeliasim_simulator.py @@ -8,20 +8,24 @@ class TestRegistryDiscovery: def test_coppeliasim_in_simulator_list(self): from easi.simulators.registry import list_simulators + assert "coppeliasim" in list_simulators() def test_coppeliasim_versioned_key(self): from easi.simulators.registry import list_simulators + assert "coppeliasim:v4_1_0" in list_simulators() def test_get_simulator_entry(self): from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("coppeliasim") assert entry.name == "coppeliasim" assert entry.version == "v4_1_0" def test_installation_kwargs_populated(self): from easi.simulators.registry import get_simulator_entry + entry = get_simulator_entry("coppeliasim") assert "binary_url" in entry.installation_kwargs assert "binary_dir_name" in entry.installation_kwargs @@ -29,14 +33,19 @@ def test_installation_kwargs_populated(self): def test_load_simulator_class(self): from easi.simulators.registry import load_simulator_class + cls = load_simulator_class("coppeliasim:v4_1_0") sim = cls() assert sim.name == "coppeliasim" def test_create_env_manager_with_kwargs(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") - assert mgr.installation_kwargs["binary_dir_name"] == "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" + assert ( + mgr.installation_kwargs["binary_dir_name"] + == "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" + ) class TestEnvManagerConfig: @@ -44,21 +53,25 @@ class TestEnvManagerConfig: def test_env_name(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert mgr.get_env_name() == "easi_coppeliasim_v4_1_0" def test_default_render_platform(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert mgr.default_render_platform == "auto" def test_screen_config(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert mgr.screen_config == "1280x720x24" def test_system_deps(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") deps = mgr.get_system_deps() assert "conda" in deps @@ -66,16 +79,19 @@ def test_system_deps(self): def test_validation_import_references_pyrep(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert "pyrep" in mgr.get_validation_import().lower() def test_conda_yaml_exists(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert mgr.get_conda_env_yaml_path().exists() def test_requirements_txt_exists(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert mgr.get_requirements_txt_path().exists() @@ -85,29 +101,34 @@ class TestEnvVars: def test_env_vars_has_coppeliasim_root(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert "COPPELIASIM_ROOT" in mgr.get_env_vars().replace def test_env_vars_has_ld_library_path(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") assert "LD_LIBRARY_PATH" in mgr.get_env_vars().prepend def test_env_vars_no_qt_platform(self): - """QT_QPA_PLATFORM_PLUGIN_PATH is now handled by custom render platform classes.""" + """QT_QPA_PLATFORM_PLUGIN_PATH is now handled by the render platform adapter.""" from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") ev = mgr.get_env_vars() assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in ev.prepend def test_env_vars_no_unresolved_templates(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") for key, val in mgr.get_env_vars().to_flat_dict().items(): assert "{" not in val, f"Unresolved template in {key}: {val}" def test_env_vars_contain_coppeliasim_dir(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") root = mgr.get_env_vars().replace["COPPELIASIM_ROOT"] assert "CoppeliaSim_Pro_V4_1_0_Ubuntu20_04" in root @@ -115,18 +136,23 @@ def test_env_vars_contain_coppeliasim_dir(self): def test_ld_library_path_includes_coppeliasim_root(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") ev = mgr.get_env_vars() assert ev.replace["COPPELIASIM_ROOT"] in ev.prepend["LD_LIBRARY_PATH"] def test_ld_library_path_includes_conda_lib(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("coppeliasim") ev = mgr.get_env_vars() assert "/lib" in ev.prepend["LD_LIBRARY_PATH"] def test_empty_installation_kwargs_returns_empty_env_vars(self): - from easi.simulators.coppeliasim.v4_1_0.env_manager import CoppeliaSimEnvManagerV410 + from easi.simulators.coppeliasim.v4_1_0.env_manager import ( + CoppeliaSimEnvManagerV410, + ) + mgr = CoppeliaSimEnvManagerV410() # No installation_kwargs assert not mgr.get_env_vars() @@ -135,21 +161,33 @@ class TestSimulatorClass: """Verify simulator class basic properties.""" def test_name(self): - from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + from easi.simulators.coppeliasim.v4_1_0.simulator import ( + CoppeliaSimSimulatorV410, + ) + assert CoppeliaSimSimulatorV410().name == "coppeliasim" def test_version(self): - from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + from easi.simulators.coppeliasim.v4_1_0.simulator import ( + CoppeliaSimSimulatorV410, + ) + assert CoppeliaSimSimulatorV410().version == "v4_1_0" def test_bridge_script_path_exists(self): - from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + from easi.simulators.coppeliasim.v4_1_0.simulator import ( + CoppeliaSimSimulatorV410, + ) + bridge_path = CoppeliaSimSimulatorV410()._get_bridge_script_path() assert bridge_path.exists() assert bridge_path.name == "bridge.py" def test_bridge_script_has_bridge_class(self): - from easi.simulators.coppeliasim.v4_1_0.simulator import CoppeliaSimSimulatorV410 + from easi.simulators.coppeliasim.v4_1_0.simulator import ( + CoppeliaSimSimulatorV410, + ) + content = CoppeliaSimSimulatorV410()._get_bridge_script_path().read_text() assert "CoppeliaSimBridge" in content @@ -158,9 +196,23 @@ class TestBridgeFileStructure: """Verify bridge file and supporting assets exist.""" def test_ttt_scene_file_exists(self): - ttt = Path(__file__).parent.parent / "easi" / "simulators" / "coppeliasim" / "v4_1_0" / "task_design.ttt" + ttt = ( + Path(__file__).parent.parent + / "easi" + / "simulators" + / "coppeliasim" + / "v4_1_0" + / "task_design.ttt" + ) assert ttt.exists(), f"task_design.ttt not found at {ttt}" def test_lua_addon_exists(self): - lua = Path(__file__).parent.parent / "easi" / "simulators" / "coppeliasim" / "v4_1_0" / "simAddOnScript_PyRep.lua" + lua = ( + Path(__file__).parent.parent + / "easi" + / "simulators" + / "coppeliasim" + / "v4_1_0" + / "simAddOnScript_PyRep.lua" + ) assert lua.exists(), f"simAddOnScript_PyRep.lua not found at {lua}" diff --git a/tests/test_env_vars_wiring.py b/tests/test_env_vars_wiring.py index e4aeb56..d0bb559 100644 --- a/tests/test_env_vars_wiring.py +++ b/tests/test_env_vars_wiring.py @@ -6,85 +6,279 @@ from unittest.mock import MagicMock, patch +def _make_runner(sim_gpus=None, render_platform_name=None): + from easi.evaluation.runner import EvaluationRunner + + runner = EvaluationRunner.__new__(EvaluationRunner) + runner.data_dir = Path("/tmp/fake") + runner.render_platform_name = render_platform_name + runner.sim_gpus = sim_gpus + runner._render_platform = None + return runner + + +def _make_env_mgr(env_vars=None, platform="headless"): + from easi.core.render_platforms import EnvVars + + mgr = MagicMock() + mgr.env_is_ready.return_value = True + mgr.get_python_executable.return_value = "/usr/bin/python3" + mgr.default_render_platform = platform + mgr.supported_render_platforms = [platform] + mgr.screen_config = "1024x768x24" + mgr.get_env_vars.return_value = env_vars if env_vars is not None else EnvVars() + return mgr + + +def _make_entry(render_adapter=None): + entry = MagicMock() + entry.runtime = "conda" + entry.render_adapter = render_adapter + return entry + + +def _make_sim_cls(bridge_path="/fake/bridge.py"): + cls = MagicMock() + cls.return_value._get_bridge_script_path.return_value = Path(bridge_path) + return cls + + class TestEnvVarsWiring: """Verify env vars flow from env_manager to SubprocessRunner.""" def test_runner_passes_env_vars_to_subprocess(self): from easi.core.render_platforms import EnvVars, get_render_platform - from easi.evaluation.runner import EvaluationRunner - - runner = EvaluationRunner.__new__(EvaluationRunner) - runner.data_dir = Path("/tmp/fake") - runner.render_platform_name = None - runner.sim_gpus = None - runner._render_platform = None - - mock_env_mgr = MagicMock() - mock_env_mgr.env_is_ready.return_value = True - mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" - mock_env_mgr.default_render_platform = "headless" - mock_env_mgr.supported_render_platforms = ["headless"] - mock_env_mgr.screen_config = "1024x768x24" - mock_env_mgr.get_env_vars.return_value = EnvVars(replace={"SIM_ROOT": "/opt/sim"}) - - mock_sim_cls = MagicMock() - mock_sim = mock_sim_cls.return_value - mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") - - mock_entry = MagicMock() - mock_entry.runtime = "conda" - - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: - mock_runner_instance = MockRunner.return_value - mock_runner_instance.launch.return_value = None - runner._create_simulator("fake:v1") + runner = _make_runner() + mock_env_mgr = _make_env_mgr(EnvVars(replace={"SIM_ROOT": "/opt/sim"})) + mock_entry = _make_entry() - call_kwargs = MockRunner.call_args - extra_env = call_kwargs.kwargs.get("extra_env") + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=_make_sim_cls(), + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1") + extra_env = MockRunner.call_args.kwargs.get("extra_env") assert isinstance(extra_env, EnvVars) assert extra_env.replace == {"SIM_ROOT": "/opt/sim"} def test_runner_passes_none_when_no_env_vars(self): + from easi.core.render_platforms import get_render_platform + + runner = _make_runner() + mock_env_mgr = _make_env_mgr() + mock_entry = _make_entry() + + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=_make_sim_cls(), + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1") + assert MockRunner.call_args.kwargs.get("extra_env") is None + + +class TestBindingCompositionWiring: + """Prove binding+adapter env composition is correct in the runner.""" + + def _run_with_binding(self, binding, sim_gpus=None, sim_env=None, adapter=None): from easi.core.render_platforms import EnvVars, get_render_platform - from easi.evaluation.runner import EvaluationRunner - - runner = EvaluationRunner.__new__(EvaluationRunner) - runner.data_dir = Path("/tmp/fake") - runner.render_platform_name = None - runner.sim_gpus = None - runner._render_platform = None - - mock_env_mgr = MagicMock() - mock_env_mgr.env_is_ready.return_value = True - mock_env_mgr.get_python_executable.return_value = "/usr/bin/python3" - mock_env_mgr.default_render_platform = "headless" - mock_env_mgr.supported_render_platforms = ["headless"] - mock_env_mgr.screen_config = "1024x768x24" - mock_env_mgr.get_env_vars.return_value = EnvVars() - - mock_sim_cls = MagicMock() - mock_sim = mock_sim_cls.return_value - mock_sim._get_bridge_script_path.return_value = Path("/fake/bridge.py") - - mock_entry = MagicMock() - mock_entry.runtime = "conda" - - with patch("easi.simulators.registry.get_simulator_entry", return_value=mock_entry), \ - patch("easi.simulators.registry.create_env_manager", return_value=mock_env_mgr), \ - patch("easi.simulators.registry.load_simulator_class", return_value=mock_sim_cls), \ - patch("easi.simulators.registry.resolve_render_platform", - side_effect=lambda key, name, env_manager=None: get_render_platform(name)), \ - patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner: - mock_runner_instance = MockRunner.return_value - mock_runner_instance.launch.return_value = None + runner = _make_runner(sim_gpus=sim_gpus) + + mock_platform = MagicMock() + mock_platform.name = "xorg" + mock_platform.for_worker.return_value = binding + mock_platform.get_env_vars.return_value = EnvVars() + mock_platform.wrap_command.side_effect = lambda cmd, cfg: cmd + + mock_env_mgr = _make_env_mgr(env_vars=sim_env, platform="xorg") + mock_env_mgr.supported_render_platforms = ["xorg"] + mock_env_mgr.default_render_platform = "xorg" + mock_entry = _make_entry() + + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=_make_sim_cls(), + ), + patch( + "easi.simulators.registry.resolve_render_platform", + return_value=mock_platform, + ), + patch( + "easi.simulators.registry.resolve_render_adapter", + return_value=adapter, + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): + MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") + return MockRunner.call_args.kwargs - call_kwargs = MockRunner.call_args - assert call_kwargs.kwargs.get("extra_env") is None + def test_binding_display_appears_in_extra_env(self): + from easi.core.render_platforms import WorkerBinding + + binding = WorkerBinding(display=":10", cuda_visible_devices="0") + kwargs = self._run_with_binding(binding) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("DISPLAY") == ":10" + + def test_binding_cuda_appears_in_extra_env(self): + from easi.core.render_platforms import WorkerBinding + + binding = WorkerBinding(display=":10", cuda_visible_devices="2") + kwargs = self._run_with_binding(binding) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("CUDA_VISIBLE_DEVICES") == "2" + + def test_adapter_env_merged_into_extra_env(self): + from easi.core.render_platforms import ( + EnvVars, + SimulatorRenderAdapter, + WorkerBinding, + ) + + class MarkingAdapter(SimulatorRenderAdapter): + def get_env_vars(self, binding): + return EnvVars(replace={"OMNIGIBSON_HEADLESS": "0"}) + + binding = WorkerBinding(display=":10", cuda_visible_devices="0") + kwargs = self._run_with_binding(binding, adapter=MarkingAdapter()) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("OMNIGIBSON_HEADLESS") == "0" + + def test_general_sim_env_preserved_alongside_binding_env(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + + binding = WorkerBinding(display=":11", cuda_visible_devices="1") + sim_env = EnvVars(replace={"DATA_ROOT": "/mnt/data"}) + kwargs = self._run_with_binding(binding, sim_env=sim_env) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("DATA_ROOT") == "/mnt/data" + assert extra_env.replace.get("DISPLAY") == ":11" + + def test_explicit_gpu_binding_prevents_sim_gpus_override(self): + from easi.core.render_platforms import WorkerBinding + + binding = WorkerBinding(display=":10", cuda_visible_devices="0") + kwargs = self._run_with_binding(binding, sim_gpus=[3]) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("CUDA_VISIBLE_DEVICES") == "0" + + def test_gpu_pinning_applied_when_binding_has_no_cuda(self): + from easi.core.render_platforms import WorkerBinding + + binding = WorkerBinding(display=":10", cuda_visible_devices=None) + kwargs = self._run_with_binding(binding, sim_gpus=[5]) + extra_env = kwargs.get("extra_env") + assert extra_env is not None + assert extra_env.replace.get("CUDA_VISIBLE_DEVICES") == "5" + + def test_base_platform_used_for_command_wrapping_not_binding(self): + from easi.core.render_platforms import WorkerBinding + + binding = WorkerBinding(display=":10", cuda_visible_devices="0") + kwargs = self._run_with_binding(binding) + rp = kwargs.get("render_platform") + assert rp is not None + assert rp.name == "xorg" + + def test_binding_path_passes_adapter_and_binding_to_subprocess_runner(self): + from easi.core.render_platforms import ( + EnvVars, + SimulatorRenderAdapter, + WorkerBinding, + ) + + class SentinelAdapter(SimulatorRenderAdapter): + def get_env_vars(self, binding): + return EnvVars() + + adapter = SentinelAdapter() + binding = WorkerBinding(display=":10", cuda_visible_devices="0") + kwargs = self._run_with_binding(binding, adapter=adapter) + assert kwargs.get("render_adapter") is adapter + assert kwargs.get("worker_binding") is binding + + def test_no_adapter_registered_passes_none_adapter_with_default_binding(self): + from easi.core.render_platforms import ( + EnvVars, + WorkerBinding, + get_render_platform, + ) + + runner = _make_runner() + mock_env_mgr = _make_env_mgr(env_vars=EnvVars(replace={"X": "1"})) + mock_entry = _make_entry() + + with ( + patch( + "easi.simulators.registry.get_simulator_entry", return_value=mock_entry + ), + patch( + "easi.simulators.registry.create_env_manager", return_value=mock_env_mgr + ), + patch( + "easi.simulators.registry.load_simulator_class", + return_value=_make_sim_cls(), + ), + patch( + "easi.simulators.registry.resolve_render_platform", + side_effect=lambda key, name, env_manager=None: get_render_platform( + name + ), + ), + patch( + "easi.simulators.registry.resolve_render_adapter", + return_value=None, + ), + patch("easi.simulators.subprocess_runner.SubprocessRunner") as MockRunner, + ): + MockRunner.return_value.launch.return_value = None + runner._create_simulator("fake:v1") + kwargs = MockRunner.call_args.kwargs + assert kwargs.get("render_adapter") is None + assert isinstance(kwargs.get("worker_binding"), WorkerBinding) diff --git a/tests/test_omnigibson_simulator.py b/tests/test_omnigibson_simulator.py index bf49378..704ff6f 100644 --- a/tests/test_omnigibson_simulator.py +++ b/tests/test_omnigibson_simulator.py @@ -1,4 +1,5 @@ """Tests for OmniGibson simulator integration (offline, no simulator needed).""" + import ast from pathlib import Path @@ -34,14 +35,15 @@ def test_manifest_installation_kwargs(self): assert "BEHAVIOR-1K" in kwargs["behavior_1k_repo"] assert kwargs["behavior_1k_tag"] == "v3.7.2" - def test_manifest_render_platforms(self): + def test_manifest_uses_render_adapter_without_custom_platforms(self): with open("easi/simulators/omnigibson/manifest.yaml") as f: data = yaml.safe_load(f) - rp = data["versions"]["v3_7_2"].get("render_platforms", {}) - assert "native" in rp, "missing 'native' render platform" - assert "auto" in rp, "missing 'auto' render platform" - assert "render_platforms.OmniGibsonNativePlatform" in rp["native"] - assert "render_platforms.OmniGibsonAutoPlatform" in rp["auto"] + version = data["versions"]["v3_7_2"] + assert ( + version["render_adapter"] + == "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonRenderAdapter" + ) + assert version.get("render_platforms", {}) == {} class TestOmniGibsonEnvManager: @@ -49,22 +51,26 @@ class TestOmniGibsonEnvManager: def test_import(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() assert mgr.simulator_name == "omnigibson" assert mgr.version == "v3_7_2" def test_env_name(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() assert mgr.get_env_name() == "easi_omnigibson_v3_7_2" def test_default_render_platform_native(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() assert mgr.default_render_platform == "native" def test_env_vars(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() ev = mgr.get_env_vars() assert "OMNIGIBSON_HEADLESS" not in ev.replace @@ -75,6 +81,7 @@ def test_get_python_executable_is_local(self, monkeypatch): """Python executable should be a /tmp copy (NFS workaround).""" import sys from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() # Mock _get_conda_python to return a real existing binary so the copy # can succeed without the conda env being installed. @@ -86,6 +93,7 @@ def test_get_python_executable_is_local(self, monkeypatch): def test_get_conda_python_is_conda_env(self): """_get_conda_python() returns the real conda env path.""" from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() conda_python = mgr._get_conda_python() assert "easi_omnigibson_v3_7_2" in conda_python @@ -93,28 +101,33 @@ def test_get_conda_python_is_conda_env(self): def test_system_deps(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() deps = mgr.get_system_deps() assert "conda" in deps def test_validation_import(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() val = mgr.get_validation_import() assert "omnigibson" in val def test_conda_env_yaml_exists(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() assert mgr.get_conda_env_yaml_path().exists() def test_requirements_txt_exists(self): from easi.simulators.omnigibson.v3_7_2.env_manager import OmniGibsonEnvManager + mgr = OmniGibsonEnvManager() assert mgr.get_requirements_txt_path().exists() def test_isaac_sim_packages_count(self): from easi.simulators.omnigibson.v3_7_2.env_manager import ISAAC_SIM_PACKAGES + assert len(ISAAC_SIM_PACKAGES) == 26 @@ -123,12 +136,14 @@ class TestOmniGibsonSimulator: def test_import(self): from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + sim = OmniGibsonSimulator() assert sim.name == "omnigibson" assert sim.version == "v3_7_2" def test_bridge_script_path(self): from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + sim = OmniGibsonSimulator() bridge_path = sim._get_bridge_script_path() assert bridge_path.exists() @@ -136,6 +151,7 @@ def test_bridge_script_path(self): def test_bridge_script_has_bridge_class(self): from easi.simulators.omnigibson.v3_7_2.simulator import OmniGibsonSimulator + content = OmniGibsonSimulator()._get_bridge_script_path().read_text() assert "OmniGibsonBridge" in content @@ -153,57 +169,65 @@ class TestOmniGibsonRegistry: def test_env_list_includes_omnigibson(self): from easi.simulators.registry import list_simulators + sims = list_simulators() assert "omnigibson:v3_7_2" in sims def test_load_simulator_class(self): from easi.simulators.registry import load_simulator_class + SimClass = load_simulator_class("omnigibson:v3_7_2") sim = SimClass() assert sim.name == "omnigibson" def test_create_env_manager(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("omnigibson:v3_7_2") assert mgr.simulator_name == "omnigibson" assert mgr.default_render_platform == "native" def test_create_env_manager_has_installation_kwargs(self): from easi.simulators.registry import create_env_manager + mgr = create_env_manager("omnigibson") assert mgr.installation_kwargs["cuda_version"] == "12.4" assert "BEHAVIOR-1K" in mgr.installation_kwargs["behavior_1k_repo"] -class TestOmniGibsonRenderPlatforms: - """Test OmniGibsonNativePlatform and OmniGibsonAutoPlatform.""" - - def test_native_platform_name(self): - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform - assert OmniGibsonNativePlatform().name == "native" +class TestOmniGibsonRenderAdapterIntegration: + def test_resolve_builtin_native_platform(self): + from easi.core.render_platforms import NativePlatform + from easi.simulators.registry import resolve_render_platform - def test_native_platform_sets_headless_0(self): - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform - ev = OmniGibsonNativePlatform().get_env_vars() - assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + platform = resolve_render_platform("omnigibson:v3_7_2", "native") + assert isinstance(platform, NativePlatform) + assert platform.name == "native" - def test_native_platform_no_wrap(self): - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonNativePlatform - cmd = ["python", "bridge.py"] - assert OmniGibsonNativePlatform().wrap_command(cmd, "1024x768x24") == cmd + def test_resolve_builtin_auto_platform(self): + from easi.core.render_platforms import AutoPlatform + from easi.simulators.registry import resolve_render_platform - def test_auto_platform_name(self): - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform - assert OmniGibsonAutoPlatform().name == "auto" + platform = resolve_render_platform("omnigibson:v3_7_2", "auto") + assert isinstance(platform, AutoPlatform) + assert platform.name == "auto" - def test_auto_platform_with_display(self, monkeypatch): + def test_adapter_auto_with_display(self, monkeypatch): monkeypatch.setenv("DISPLAY", ":1") - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform - ev = OmniGibsonAutoPlatform().get_env_vars() + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + ev = OmniGibsonRenderAdapter().get_env_vars(WorkerBinding()) assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" - def test_auto_platform_without_display(self, monkeypatch): + def test_adapter_auto_without_display(self, monkeypatch): monkeypatch.delenv("DISPLAY", raising=False) - from easi.simulators.omnigibson.v3_7_2.render_platforms import OmniGibsonAutoPlatform - ev = OmniGibsonAutoPlatform().get_env_vars() + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + ev = OmniGibsonRenderAdapter().get_env_vars(WorkerBinding()) assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" diff --git a/tests/test_render_platform.py b/tests/test_render_platform.py index d792d99..ff5cf23 100644 --- a/tests/test_render_platform.py +++ b/tests/test_render_platform.py @@ -364,6 +364,7 @@ def test_platform_env_vars_merged(self): extra_env=EnvVars(replace={"SIM_ROOT": "/opt/sim"}), ) env = runner._build_subprocess_env() + assert env is not None assert env["PYOPENGL_PLATFORM"] == "egl" assert env["SIM_ROOT"] == "/opt/sim" @@ -417,7 +418,7 @@ def test_coppeliasim(self): def test_coppeliasim_env_vars_are_platform_agnostic(self): """CoppeliaSim env_manager should NOT set QT_QPA_PLATFORM_PLUGIN_PATH or __EGL_VENDOR_LIBRARY_FILENAMES. - Those platform-specific vars are now handled by custom render platform classes. + Those platform-specific vars are now handled by the render platform adapter. """ from easi.simulators.coppeliasim.v4_1_0.env_manager import ( CoppeliaSimEnvManagerV410, @@ -551,9 +552,7 @@ def get_env_vars(self): assert platform.get_env_vars().replace == {"CUSTOM": "1"} -class TestCoppeliaSimCustomPlatforms: - """Test CoppeliaSim-specific custom render platform classes.""" - +class TestCoppeliaSimAdapterIntegration: def _make_mock_env_manager(self, binary_dir_name="CoppeliaSim"): from unittest.mock import MagicMock @@ -568,137 +567,149 @@ def _make_mock_env_manager(self, binary_dir_name="CoppeliaSim"): ).replace("{env_dir}", t["env_dir"]) return mgr - def test_native_has_qt_plugin_path_and_headless_false(self): + def test_adapter_native_has_qt_plugin_path_and_headless_false(self): + from easi.core.render_platforms import WorkerBinding from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimNativePlatform, + CoppeliaSimRenderAdapter, ) mgr = self._make_mock_env_manager() - p = CoppeliaSimNativePlatform(env_manager=mgr) - assert p.name == "native" - ev = p.get_env_vars() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + ev = adapter.get_env_vars(WorkerBinding(metadata={"backend": "native"})) assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend assert ev.replace["COPPELIASIM_HEADLESS"] == "0" assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace - def test_xvfb_has_qt_plugin_path_and_headless_true(self): + def test_adapter_xvfb_has_qt_plugin_path_and_headless_true(self): + from easi.core.render_platforms import WorkerBinding from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXvfbPlatform, + CoppeliaSimRenderAdapter, ) mgr = self._make_mock_env_manager() - p = CoppeliaSimXvfbPlatform(env_manager=mgr) - assert p.name == "xvfb" - ev = p.get_env_vars() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + ev = adapter.get_env_vars(WorkerBinding(metadata={"backend": "xvfb"})) assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] assert ev.replace["COPPELIASIM_HEADLESS"] == "1" - def test_xvfb_wraps_command(self): - from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXvfbPlatform, - ) + def test_builtin_xvfb_wraps_command(self): + from easi.core.render_platforms import XvfbPlatform - p = CoppeliaSimXvfbPlatform() - cmd = ["python", "bridge.py"] - wrapped = p.wrap_command(cmd, "1280x720x24") + wrapped = XvfbPlatform().wrap_command(["python", "bridge.py"], "1280x720x24") assert wrapped[0] == "xvfb-run" - def test_auto_native_when_display(self): + def test_adapter_auto_native_when_display(self): + from easi.core.render_platforms import WorkerBinding from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimAutoPlatform, + CoppeliaSimRenderAdapter, ) mgr = self._make_mock_env_manager() - p = CoppeliaSimAutoPlatform(env_manager=mgr) - assert p.name == "auto" + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) with patch.dict(os.environ, {"DISPLAY": ":0"}): - ev = p.get_env_vars() + ev = adapter.get_env_vars(WorkerBinding()) assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend assert ev.replace["COPPELIASIM_HEADLESS"] == "0" - def test_auto_xvfb_when_no_display(self): + def test_adapter_auto_xvfb_when_no_display(self): + from easi.core.render_platforms import WorkerBinding from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimAutoPlatform, + CoppeliaSimRenderAdapter, ) mgr = self._make_mock_env_manager() - p = CoppeliaSimAutoPlatform(env_manager=mgr) + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) env = os.environ.copy() env.pop("DISPLAY", None) with patch.dict(os.environ, env, clear=True): - ev = p.get_env_vars() + ev = adapter.get_env_vars(WorkerBinding()) assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend assert ev.replace["COPPELIASIM_HEADLESS"] == "1" - def test_xvfb_no_env_manager_returns_empty(self): + def test_adapter_without_env_manager_returns_empty(self): + from easi.core.render_platforms import WorkerBinding from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXvfbPlatform, + CoppeliaSimRenderAdapter, ) - p = CoppeliaSimXvfbPlatform() # no env_manager - ev = p.get_env_vars() + ev = CoppeliaSimRenderAdapter().get_env_vars( + WorkerBinding(metadata={"backend": "xvfb"}) + ) assert not ev - def test_manifest_registers_custom_platforms(self): + def test_manifest_uses_adapter_instead_of_custom_platforms(self): from easi.simulators.registry import get_simulator_entry entry = get_simulator_entry("coppeliasim:v4_1_0") - assert "auto" in entry.render_platforms - assert "native" in entry.render_platforms - assert "xvfb" in entry.render_platforms - assert "xorg" in entry.render_platforms + assert entry.render_platforms == {} - def test_resolve_coppeliasim_custom_platform(self): - from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimAutoPlatform, - ) + def test_resolve_coppeliasim_auto_platform_uses_builtin(self): + from easi.core.render_platforms import AutoPlatform from easi.simulators.registry import resolve_render_platform platform = resolve_render_platform("coppeliasim:v4_1_0", "auto") - assert isinstance(platform, CoppeliaSimAutoPlatform) + assert isinstance(platform, AutoPlatform) assert platform.name == "auto" - def test_xorg_has_qt_plugin_path_and_headless_false(self): + def test_xorg_binding_plus_adapter_has_qt_plugin_path_and_headless_false(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + from easi.core.render_platforms.xorg import XorgPlatform from easi.core.render_platforms.xorg_manager import XorgInstance from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXorgPlatform, + CoppeliaSimRenderAdapter, ) mgr = self._make_mock_env_manager() - p = CoppeliaSimXorgPlatform(env_manager=mgr) - assert p.name == "xorg" - p._instances = [XorgInstance(display=10, gpu_id=0, pid=1)] - worker = p.for_worker(0) - ev = worker.get_env_vars() - assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend - assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] - assert ev.replace["COPPELIASIM_HEADLESS"] == "0" - assert ev.replace["DISPLAY"] == ":10" - assert ev.replace["CUDA_VISIBLE_DEVICES"] == "0" + platform = XorgPlatform() + platform._instances = [XorgInstance(display=10, gpu_id=0, pid=1)] + binding = platform.for_worker(0) + adapter_env = CoppeliaSimRenderAdapter(env_manager=mgr).get_env_vars(binding) + merged_binding = WorkerBinding( + display=binding.display, + cuda_visible_devices=binding.cuda_visible_devices, + extra_env=EnvVars.merge(binding.extra_env, adapter_env), + metadata=dict(binding.metadata), + ) + assert isinstance(binding, WorkerBinding) + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in merged_binding.extra_env.prepend + assert ( + "CoppeliaSim" + in merged_binding.extra_env.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] + ) + assert merged_binding.extra_env.replace["COPPELIASIM_HEADLESS"] == "0" + assert merged_binding.display == ":10" + assert merged_binding.cuda_visible_devices == "0" - def test_xorg_no_env_manager_returns_base_env_only(self): + def test_xorg_without_env_manager_returns_base_binding_env_only(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + from easi.core.render_platforms.xorg import XorgPlatform from easi.core.render_platforms.xorg_manager import XorgInstance from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXorgPlatform, + CoppeliaSimRenderAdapter, ) - p = CoppeliaSimXorgPlatform() - p._instances = [XorgInstance(display=11, gpu_id=2, pid=1)] - worker = p.for_worker(0) - ev = worker.get_env_vars() - assert ev.replace["DISPLAY"] == ":11" - assert ev.replace["CUDA_VISIBLE_DEVICES"] == "2" - assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in ev.prepend - - def test_xorg_resolve_from_registry(self): - from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( - CoppeliaSimXorgPlatform, + platform = XorgPlatform() + platform._instances = [XorgInstance(display=11, gpu_id=2, pid=1)] + binding = platform.for_worker(0) + adapter_env = CoppeliaSimRenderAdapter().get_env_vars(binding) + merged_binding = WorkerBinding( + display=binding.display, + cuda_visible_devices=binding.cuda_visible_devices, + extra_env=EnvVars.merge(binding.extra_env, adapter_env), + metadata=dict(binding.metadata), ) + assert isinstance(binding, WorkerBinding) + assert merged_binding.display == ":11" + assert merged_binding.cuda_visible_devices == "2" + assert "QT_QPA_PLATFORM_PLUGIN_PATH" not in merged_binding.extra_env.prepend + + def test_xorg_resolve_from_registry_uses_builtin(self): + from easi.core.render_platforms.xorg import XorgPlatform from easi.simulators.registry import resolve_render_platform platform = resolve_render_platform("coppeliasim:v4_1_0", "xorg") - assert isinstance(platform, CoppeliaSimXorgPlatform) + assert isinstance(platform, XorgPlatform) assert platform.name == "xorg" @@ -774,6 +785,7 @@ def test_default_uses_env_manager_platform(self): mock_entry = MagicMock() mock_entry.runtime = "conda" + mock_entry.render_adapter = None with ( patch( @@ -797,6 +809,7 @@ def test_default_uses_env_manager_platform(self): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp is not None assert rp.name == "auto" def test_cli_override_wins(self): @@ -817,6 +830,7 @@ def test_cli_override_wins(self): mock_entry = MagicMock() mock_entry.runtime = "conda" + mock_entry.render_adapter = None with ( patch( @@ -840,6 +854,7 @@ def test_cli_override_wins(self): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1") rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp is not None assert rp.name == "xvfb" def test_yaml_override_used_when_no_cli(self): @@ -861,6 +876,7 @@ def test_yaml_override_used_when_no_cli(self): mock_entry = MagicMock() mock_entry.runtime = "conda" + mock_entry.render_adapter = None with ( patch( @@ -884,6 +900,7 @@ def test_yaml_override_used_when_no_cli(self): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp is not None assert rp.name == "egl" def test_cli_beats_yaml(self): @@ -905,6 +922,7 @@ def test_cli_beats_yaml(self): mock_entry = MagicMock() mock_entry.runtime = "conda" + mock_entry.render_adapter = None with ( patch( @@ -928,6 +946,7 @@ def test_cli_beats_yaml(self): MockRunner.return_value.launch.return_value = None runner._create_simulator("fake:v1", task=mock_task) rp = MockRunner.call_args.kwargs.get("render_platform") + assert rp is not None assert rp.name == "xvfb" def test_unsupported_platform_raises(self): @@ -949,6 +968,7 @@ def test_unsupported_platform_raises(self): mock_entry = MagicMock() mock_entry.runtime = "conda" + mock_entry.render_adapter = None with ( patch( @@ -987,6 +1007,7 @@ def test_egl_env_vars_in_subprocess(self): extra_env=EnvVars(replace={"SIM_ROOT": "/opt/sim"}), ) env = runner._build_subprocess_env() + assert env is not None assert env["PYOPENGL_PLATFORM"] == "egl" assert env["SIM_ROOT"] == "/opt/sim" @@ -1019,3 +1040,459 @@ def test_render_platform_saved_in_config(self): render_platform="egl", ) assert runner._cli_options["render_platform"] == "egl" + + +class TestWorkerBinding: + def test_defaults_are_none_and_empty(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + + b = WorkerBinding() + assert b.display is None + assert b.cuda_visible_devices is None + assert isinstance(b.extra_env, EnvVars) + assert not b.extra_env + assert b.metadata == {} + + def test_fields_set_correctly(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + + ev = EnvVars(replace={"FOO": "bar"}) + b = WorkerBinding( + display=":10", + cuda_visible_devices="2", + extra_env=ev, + metadata={"backend": "xorg"}, + ) + assert b.display == ":10" + assert b.cuda_visible_devices == "2" + assert b.extra_env.replace == {"FOO": "bar"} + assert b.metadata == {"backend": "xorg"} + + def test_two_bindings_are_independent(self): + from easi.core.render_platforms import WorkerBinding + + b1 = WorkerBinding(display=":10", cuda_visible_devices="0") + b2 = WorkerBinding(display=":11", cuda_visible_devices="1") + assert b1.display != b2.display + assert b1.cuda_visible_devices != b2.cuda_visible_devices + + def test_metadata_is_mutable_dict(self): + from easi.core.render_platforms import WorkerBinding + + b = WorkerBinding() + b.metadata["key"] = "value" + assert b.metadata["key"] == "value" + + def test_extra_env_defaults_are_not_shared(self): + from easi.core.render_platforms import WorkerBinding + + b1 = WorkerBinding() + b2 = WorkerBinding() + b1.extra_env.replace["X"] = "1" + assert "X" not in b2.extra_env.replace + + +class TestSimulatorRenderAdapter: + def _make_adapter(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + class NoOpAdapter(SimulatorRenderAdapter): + pass + + return NoOpAdapter() + + def test_get_env_vars_returns_empty_envvars(self): + from easi.core.render_platforms import EnvVars, WorkerBinding + + adapter = self._make_adapter() + binding = WorkerBinding() + ev = adapter.get_env_vars(binding) + assert isinstance(ev, EnvVars) + assert not ev + + def test_wrap_command_returns_same_list(self): + from easi.core.render_platforms import WorkerBinding + + adapter = self._make_adapter() + binding = WorkerBinding() + cmd = ["python", "bridge.py", "--workspace", "/tmp"] + result = adapter.wrap_command(cmd, binding) + assert result == cmd + + def test_wrap_command_does_not_copy(self): + from easi.core.render_platforms import WorkerBinding + + adapter = self._make_adapter() + binding = WorkerBinding() + cmd = ["python", "bridge.py"] + result = adapter.wrap_command(cmd, binding) + assert result is cmd + + def test_get_env_vars_receives_binding(self): + from easi.core.render_platforms import ( + EnvVars, + SimulatorRenderAdapter, + WorkerBinding, + ) + + received = [] + + class RecordingAdapter(SimulatorRenderAdapter): + def get_env_vars(self, binding): + received.append(binding) + return EnvVars() + + adapter = RecordingAdapter() + b = WorkerBinding(display=":5", cuda_visible_devices="3") + adapter.get_env_vars(b) + assert received[0] is b + + def test_subclass_can_override_get_env_vars(self): + from easi.core.render_platforms import ( + EnvVars, + SimulatorRenderAdapter, + WorkerBinding, + ) + + class CustomAdapter(SimulatorRenderAdapter): + def get_env_vars(self, binding): + return EnvVars(replace={"CUSTOM": "1"}) + + adapter = CustomAdapter() + ev = adapter.get_env_vars(WorkerBinding()) + assert ev.replace == {"CUSTOM": "1"} + + def test_subclass_can_override_wrap_command(self): + from easi.core.render_platforms import SimulatorRenderAdapter, WorkerBinding + + class PrefixAdapter(SimulatorRenderAdapter): + def wrap_command(self, cmd, binding): + return ["prefix"] + cmd + + adapter = PrefixAdapter() + result = adapter.wrap_command(["python", "bridge.py"], WorkerBinding()) + assert result == ["prefix", "python", "bridge.py"] + + +class TestRenderAdapterRegistry: + """Test render_adapter manifest key registration and resolution.""" + + def test_entry_has_render_adapter_when_registered(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("dummy") + assert ( + entry.render_adapter + == "easi.simulators.dummy.v1.render_platforms.DummyRenderAdapter" + ) + + def test_entry_render_adapter_none_when_not_registered(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("ai2thor:v2_1_0") + assert entry.render_adapter is None + + def test_resolve_render_adapter_returns_instance(self): + from easi.simulators.dummy.v1.render_platforms import DummyRenderAdapter + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("dummy") + assert isinstance(adapter, DummyRenderAdapter) + + def test_resolve_render_adapter_returns_none_when_not_registered(self): + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("ai2thor:v2_1_0") + assert adapter is None + + def test_resolve_render_adapter_env_vars(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("dummy") + assert adapter is not None + ev = adapter.get_env_vars(WorkerBinding()) + assert ev.replace == {"DUMMY_ADAPTER": "1"} + + def test_resolve_render_adapter_wrap_command_passthrough(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("dummy") + assert adapter is not None + cmd = ["python", "bridge.py"] + assert adapter.wrap_command(cmd, WorkerBinding()) is cmd + + def test_legacy_render_platforms_still_work_alongside_adapter(self): + from easi.simulators.dummy.v1.render_platforms import DummyCustomPlatform + from easi.simulators.registry import resolve_render_platform + + platform = resolve_render_platform("dummy", "dummy_custom") + assert isinstance(platform, DummyCustomPlatform) + assert platform.name == "dummy_custom" + + def test_manifest_with_adapter_but_no_render_platforms(self): + from unittest.mock import patch + + from easi.simulators.registry import SimulatorEntry, resolve_render_adapter + + fake_entry = SimulatorEntry( + name="fake", + version="v1", + description="", + simulator_class="", + env_manager_class="", + python_version="3.10", + render_adapter="easi.simulators.dummy.v1.render_platforms.DummyRenderAdapter", + ) + with patch("easi.simulators.registry._get_registry") as mock_reg: + mock_reg.return_value = {"fake:v1": fake_entry} + adapter = resolve_render_adapter("fake:v1") + assert adapter is not None + + def test_coppeliasim_entry_has_render_adapter(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("coppeliasim:v4_1_0") + assert ( + entry.render_adapter + == "easi.simulators.coppeliasim.v4_1_0.render_platforms.CoppeliaSimRenderAdapter" + ) + + +class TestCoppeliaSimRenderAdapter: + def _make_mock_env_manager(self, binary_dir_name="CoppeliaSim"): + from unittest.mock import MagicMock + + mgr = MagicMock() + mgr.installation_kwargs = {"binary_dir_name": binary_dir_name} + mgr._get_template_variables.return_value = { + "env_dir": "/fake/envs/easi_coppeliasim_v4_1_0", + "extras_dir": "/fake/envs/easi_coppeliasim_v4_1_0/extras", + } + mgr._resolve_template.side_effect = lambda tmpl, t: tmpl.replace( + "{extras_dir}", t["extras_dir"] + ).replace("{env_dir}", t["env_dir"]) + return mgr + + def test_resolve_adapter_returns_instance(self): + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("coppeliasim:v4_1_0") + assert isinstance(adapter, CoppeliaSimRenderAdapter) + + def test_adapter_native_binding_headless_false_no_mesa(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding(metadata={"backend": "native"}) + ev = adapter.get_env_vars(binding) + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert "CoppeliaSim" in ev.prepend["QT_QPA_PLATFORM_PLUGIN_PATH"] + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace + + def test_adapter_xvfb_binding_headless_true_with_mesa(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding(metadata={"backend": "xvfb"}) + ev = adapter.get_env_vars(binding) + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert ev.replace["COPPELIASIM_HEADLESS"] == "1" + + def test_adapter_xorg_binding_via_cuda_heuristic(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding( + display=":10", + cuda_visible_devices="0", + metadata={"display_num": 10, "gpu_id": 0}, + ) + ev = adapter.get_env_vars(binding) + assert "QT_QPA_PLATFORM_PLUGIN_PATH" in ev.prepend + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace + + def test_adapter_xorg_binding_via_explicit_backend(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding(metadata={"backend": "xorg"}) + ev = adapter.get_env_vars(binding) + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace + + def test_adapter_auto_with_display_headless_false(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding() + with patch.dict(os.environ, {"DISPLAY": ":0"}): + ev = adapter.get_env_vars(binding) + assert ev.replace["COPPELIASIM_HEADLESS"] == "0" + assert "__EGL_VENDOR_LIBRARY_FILENAMES" not in ev.replace + + def test_adapter_auto_without_display_headless_true(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + mgr = self._make_mock_env_manager() + adapter = CoppeliaSimRenderAdapter(env_manager=mgr) + binding = WorkerBinding() + env = os.environ.copy() + env.pop("DISPLAY", None) + with patch.dict(os.environ, env, clear=True): + ev = adapter.get_env_vars(binding) + assert ev.replace["COPPELIASIM_HEADLESS"] == "1" + + def test_adapter_no_env_manager_returns_empty(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + adapter = CoppeliaSimRenderAdapter() + ev = adapter.get_env_vars(WorkerBinding(metadata={"backend": "native"})) + assert not ev + + def test_adapter_wrap_command_passthrough(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.coppeliasim.v4_1_0.render_platforms import ( + CoppeliaSimRenderAdapter, + ) + + adapter = CoppeliaSimRenderAdapter() + cmd = ["python", "bridge.py"] + result = adapter.wrap_command(cmd, WorkerBinding()) + assert result is cmd + + +class TestOmniGibsonRenderAdapter: + """Tests for OmniGibsonRenderAdapter dispatch logic.""" + + def test_omnigibson_entry_has_render_adapter(self): + from easi.simulators.registry import get_simulator_entry + + entry = get_simulator_entry("omnigibson:v3_7_2") + assert ( + entry.render_adapter + == "easi.simulators.omnigibson.v3_7_2.render_platforms.OmniGibsonRenderAdapter" + ) + + def test_resolve_adapter_returns_instance(self): + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + from easi.simulators.registry import resolve_render_adapter + + adapter = resolve_render_adapter("omnigibson:v3_7_2") + assert isinstance(adapter, OmniGibsonRenderAdapter) + + def test_adapter_native_backend_headless_false(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding(metadata={"backend": "native"}) + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_adapter_xorg_backend_headless_false(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding(metadata={"backend": "xorg"}) + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_adapter_xvfb_backend_headless_true(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding(metadata={"backend": "xvfb"}) + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" + + def test_adapter_cuda_binding_headless_false(self): + """Binding with cuda_visible_devices (xorg heuristic) → headless=0.""" + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding(cuda_visible_devices="0") + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_adapter_auto_with_display_headless_false(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding() + with patch.dict(os.environ, {"DISPLAY": ":0"}): + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "0" + + def test_adapter_auto_without_display_headless_true(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + binding = WorkerBinding() + env = os.environ.copy() + env.pop("DISPLAY", None) + with patch.dict(os.environ, env, clear=True): + ev = adapter.get_env_vars(binding) + assert ev.replace["OMNIGIBSON_HEADLESS"] == "1" + + def test_adapter_wrap_command_passthrough(self): + from easi.core.render_platforms import WorkerBinding + from easi.simulators.omnigibson.v3_7_2.render_platforms import ( + OmniGibsonRenderAdapter, + ) + + adapter = OmniGibsonRenderAdapter() + cmd = ["python", "bridge.py"] + result = adapter.wrap_command(cmd, WorkerBinding()) + assert result is cmd diff --git a/tests/test_subprocess_runner.py b/tests/test_subprocess_runner.py index 40e3ad6..5c4eba5 100644 --- a/tests/test_subprocess_runner.py +++ b/tests/test_subprocess_runner.py @@ -4,8 +4,9 @@ import os from pathlib import Path +from unittest.mock import MagicMock -from easi.core.render_platforms import EnvVars, get_render_platform +from easi.core.render_platforms import EnvVars, WorkerBinding, get_render_platform from easi.simulators.subprocess_runner import SubprocessRunner @@ -60,7 +61,6 @@ def test_extra_env_prepends_to_path_vars(self): assert ld_path.startswith("/opt/sim/lib") def test_non_path_var_replaces(self): - """Non-path env vars should replace, not prepend.""" os.environ["MY_EXISTING"] = "old_value" try: runner = SubprocessRunner( @@ -73,3 +73,103 @@ def test_non_path_var_replaces(self): assert env["MY_EXISTING"] == "new_value" finally: del os.environ["MY_EXISTING"] + + +class TestSubprocessRunnerRenderAdapter: + """Tests for render_adapter + worker_binding params in SubprocessRunner.""" + + def test_constructor_accepts_render_adapter_and_binding(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + adapter = MagicMock(spec=SimulatorRenderAdapter) + binding = WorkerBinding(display=":5", cuda_visible_devices="0") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + render_adapter=adapter, + worker_binding=binding, + ) + assert runner.render_adapter is adapter + assert runner.worker_binding is binding + + def test_default_adapter_and_binding_are_none(self): + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + ) + assert runner.render_adapter is None + assert runner.worker_binding is None + + def test_build_launch_command_calls_adapter_wrap_when_both_set(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + adapter = MagicMock(spec=SimulatorRenderAdapter) + adapter.wrap_command.side_effect = lambda cmd, binding: ["wrapped"] + cmd + binding = WorkerBinding() + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + render_adapter=adapter, + worker_binding=binding, + ) + runner._workspace = Path("/tmp/fake_ws") + cmd = runner._build_launch_command() + adapter.wrap_command.assert_called_once() + assert cmd[0] == "wrapped" + + def test_build_launch_command_skips_adapter_when_adapter_none(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + adapter = MagicMock(spec=SimulatorRenderAdapter) + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + render_adapter=None, + worker_binding=WorkerBinding(), + ) + runner._workspace = Path("/tmp/fake_ws") + runner._build_launch_command() + adapter.wrap_command.assert_not_called() + + def test_build_launch_command_skips_adapter_when_binding_none(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + adapter = MagicMock(spec=SimulatorRenderAdapter) + adapter.wrap_command.side_effect = lambda cmd, binding: ["wrapped"] + cmd + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + render_adapter=adapter, + worker_binding=None, + ) + runner._workspace = Path("/tmp/fake_ws") + cmd = runner._build_launch_command() + adapter.wrap_command.assert_not_called() + assert cmd[0] != "wrapped" + + def test_adapter_receives_correct_binding(self): + from easi.core.render_platforms import SimulatorRenderAdapter + + received_bindings = [] + + class RecordingAdapter(SimulatorRenderAdapter): + def wrap_command(self, cmd, binding): + received_bindings.append(binding) + return cmd + + binding = WorkerBinding(display=":10", cuda_visible_devices="2") + runner = SubprocessRunner( + python_executable="/usr/bin/python3", + bridge_script_path=Path("/dev/null"), + render_platform=get_render_platform("headless"), + render_adapter=RecordingAdapter(), + worker_binding=binding, + ) + runner._workspace = Path("/tmp/fake_ws") + runner._build_launch_command() + assert received_bindings[0] is binding diff --git a/tests/test_xorg.py b/tests/test_xorg.py index 72b0818..1df5381 100644 --- a/tests/test_xorg.py +++ b/tests/test_xorg.py @@ -9,44 +9,17 @@ import pytest _MGR = "easi.core.render_platforms.xorg_manager" # canonical module for XorgManager internals -_XORG = "easi.core.render_platforms.xorg" # canonical module for XorgPlatform - - -class TestXorgWorkerPlatform: - """Test _XorgWorkerPlatform env vars and command wrapping.""" - - def test_name(self): - from easi.core.render_platforms.xorg import _XorgWorkerPlatform - - p = _XorgWorkerPlatform(display_num=10, gpu_id=4) - assert p.name == "xorg" - - def test_env_vars(self): - from easi.core.render_platforms.xorg import _XorgWorkerPlatform - - p = _XorgWorkerPlatform(display_num=10, gpu_id=4) - ev = p.get_env_vars() - assert ev.replace["DISPLAY"] == ":10" - assert ev.replace["CUDA_VISIBLE_DEVICES"] == "4" - assert ev.replace["EASI_GPU_DISPLAY"] == "1" - - def test_wrap_command_passthrough(self): - from easi.core.render_platforms.xorg import _XorgWorkerPlatform - - p = _XorgWorkerPlatform(display_num=10, gpu_id=4) - cmd = ["python", "bridge.py", "--workspace", "/tmp"] - assert p.wrap_command(cmd, "1024x768x24") == cmd - - def test_is_available(self): - from easi.core.render_platforms.xorg import _XorgWorkerPlatform - - p = _XorgWorkerPlatform(display_num=10, gpu_id=4) - assert p.is_available() is True +_XORG = "easi.core.render_platforms.xorg" # canonical module for XorgPlatform class TestXorgPlatformLifecycle: """Test XorgPlatform setup/teardown/for_worker lifecycle.""" + def test_module_no_longer_exports_worker_platform_shim(self): + import easi.core.render_platforms.xorg as xorg_module + + assert not hasattr(xorg_module, "_XorgWorkerPlatform") + def test_name(self): from easi.core.render_platforms.xorg import XorgPlatform @@ -147,8 +120,10 @@ def test_stop_sends_sigterm(self): mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] mgr._conf_files = [] - with patch(f"{_MGR}.os.getpgid", return_value=12345), \ - patch(f"{_MGR}.os.killpg") as mock_killpg: + with ( + patch(f"{_MGR}.os.getpgid", return_value=12345), + patch(f"{_MGR}.os.killpg") as mock_killpg, + ): mgr.stop() mock_killpg.assert_called_with(12345, signal.SIGTERM) @@ -165,14 +140,17 @@ def test_stop_uses_sudo_kill_for_sudo_launched(self): mgr._instances = [XorgInstance(display=10, gpu_id=0, pid=12345)] mgr._conf_files = [] - with patch(f"{_MGR}.os.getpgid", return_value=12345), \ - patch(f"{_MGR}.os.killpg") as mock_killpg, \ - patch(f"{_MGR}.subprocess.run") as mock_run: + with ( + patch(f"{_MGR}.os.getpgid", return_value=12345), + patch(f"{_MGR}.os.killpg") as mock_killpg, + patch(f"{_MGR}.subprocess.run") as mock_run, + ): mgr.stop() mock_killpg.assert_not_called() mock_run.assert_called_once_with( ["sudo", "-n", "kill", f"-{signal.SIGTERM}", "-12345"], - capture_output=True, timeout=5, + capture_output=True, + timeout=5, ) def test_sudo_fallback(self): @@ -180,6 +158,7 @@ def test_sudo_fallback(self): from easi.core.render_platforms.xorg_manager import XorgManager call_count = 0 + def mock_popen(cmd, **kwargs): nonlocal call_count call_count += 1 @@ -258,8 +237,8 @@ def test_round_robin_two_gpus(self): XorgInstance(display=10, gpu_id=4, pid=1), XorgInstance(display=11, gpu_id=5, pid=2), ] - gpus = [p.for_worker(i).gpu_id for i in range(6)] - assert gpus == [4, 5, 4, 5, 4, 5] + gpus = [p.for_worker(i).cuda_visible_devices for i in range(6)] + assert gpus == ["4", "5", "4", "5", "4", "5"] def test_single_gpu_all_workers_same(self): """With one GPU, all workers get the same GPU.""" @@ -269,7 +248,22 @@ def test_single_gpu_all_workers_same(self): p = XorgPlatform() p._instances = [XorgInstance(display=10, gpu_id=4, pid=1)] for worker_id in range(4): - assert p.for_worker(worker_id).gpu_id == 4 + assert p.for_worker(worker_id).cuda_visible_devices == "4" + + def test_binding_contains_display_and_env(self): + from easi.core.render_platforms import WorkerBinding + from easi.core.render_platforms.xorg import XorgPlatform + from easi.core.render_platforms.xorg_manager import XorgInstance + + p = XorgPlatform() + p._instances = [XorgInstance(display=12, gpu_id=7, pid=1)] + + binding = p.for_worker(0) + + assert isinstance(binding, WorkerBinding) + assert binding.display == ":12" + assert binding.cuda_visible_devices == "7" + assert binding.extra_env.replace == {"EASI_GPU_DISPLAY": "1"} class TestXorgRunnerIntegration: From 095fcff3bde05e3ed30d41d8d64b3aca60ba10c7 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 02:06:36 +0800 Subject: [PATCH 201/239] fix: make sim test use binding-aware render launch Keep the conda-backed smoke-test path aligned with the new WorkerBinding handoff so render adapters and per-worker launch data reach SubprocessRunner consistently. --- easi/cli.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 0a4993e..ea34af5 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -460,6 +460,7 @@ def cmd_sim_test( create_env_manager, get_simulator_entry, load_simulator_class, + resolve_render_adapter, resolve_render_platform, ) from easi.simulators.subprocess_runner import SubprocessRunner @@ -545,7 +546,7 @@ def cmd_sim_test( ) try: render_platform.setup(gpu_ids=sim_gpus or [0]) - worker_platform = render_platform.for_worker(0) + worker_binding = render_platform.for_worker(0) except RuntimeError as e: if platform_name == "xorg": logger.warning("%s", str(e)) @@ -557,16 +558,40 @@ def cmd_sim_test( logger.info(" Python: %s", env_manager.get_python_executable()) logger.info(" Render platform: %s", platform_name) + from easi.core.render_platforms import EnvVars + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) + render_adapter = resolve_render_adapter(simulator, env_manager=env_manager) + + adapter_env = ( + render_adapter.get_env_vars(worker_binding) if render_adapter else EnvVars() + ) + binding_env = EnvVars.merge(worker_binding.extra_env, adapter_env) + if worker_binding.display: + binding_env = EnvVars.merge( + binding_env, EnvVars(replace={"DISPLAY": worker_binding.display}) + ) + if worker_binding.cuda_visible_devices is not None: + binding_env = EnvVars.merge( + binding_env, + EnvVars( + replace={ + "CUDA_VISIBLE_DEVICES": worker_binding.cuda_visible_devices + } + ), + ) + env_vars = EnvVars.merge(env_vars, binding_env) if env_vars else binding_env runner = SubprocessRunner( python_executable=env_manager.get_python_executable(), bridge_script_path=sim._get_bridge_script_path(), - render_platform=worker_platform, + render_platform=render_platform, screen_config=env_manager.screen_config, startup_timeout=timeout, command_timeout=timeout, extra_env=env_vars if env_vars else None, + render_adapter=render_adapter, + worker_binding=worker_binding, ) try: From 3450c348f30c1cf4b0d83b17512dea7b4c308abd Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 12:59:51 +0800 Subject: [PATCH 202/239] feat: log resolved render platform for sim test and start commands Add resolved_name property to RenderPlatform so auto-detection shows the actual backend (e.g. "native (via auto-detection)") instead of just "auto". --- easi/cli.py | 6 +++++- easi/core/render_platforms/auto.py | 4 ++++ easi/core/render_platforms/base.py | 5 +++++ easi/evaluation/runner.py | 10 ++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/easi/cli.py b/easi/cli.py index ea34af5..f470b16 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -556,7 +556,11 @@ def cmd_sim_test( logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) - logger.info(" Render platform: %s", platform_name) + resolved = render_platform.resolved_name + if resolved != render_platform.name: + logger.info(" Render platform: %s (via auto-detection)", resolved) + else: + logger.info(" Render platform: %s", resolved) from easi.core.render_platforms import EnvVars diff --git a/easi/core/render_platforms/auto.py b/easi/core/render_platforms/auto.py index 85f7b1e..7b4ad92 100644 --- a/easi/core/render_platforms/auto.py +++ b/easi/core/render_platforms/auto.py @@ -15,6 +15,10 @@ class AutoPlatform(RenderPlatform): def name(self) -> str: return "auto" + @property + def resolved_name(self) -> str: + return "native" if os.environ.get("DISPLAY", "") else "xvfb" + def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: if os.environ.get("DISPLAY", ""): return cmd diff --git a/easi/core/render_platforms/base.py b/easi/core/render_platforms/base.py index ccfdf8b..3360b93 100644 --- a/easi/core/render_platforms/base.py +++ b/easi/core/render_platforms/base.py @@ -113,6 +113,11 @@ def name(self) -> str: """Short identifier (e.g. 'xvfb', 'egl').""" ... + @property + def resolved_name(self) -> str: + """Actual backend after auto-detection. Defaults to :attr:`name`.""" + return self.name + @abstractmethod def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: """Optionally wrap the bridge launch command. diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 07b7bd1..bf57bc9 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -167,6 +167,11 @@ def _setup_render_platform(self, backend: str | None = None): "Use --llm-gpus and --sim-gpus to separate them." ) + resolved = platform.resolved_name + if resolved != platform.name: + logger.info("Render platform: %s (via auto-detection)", resolved) + else: + logger.info("Render platform: %s", resolved) platform.setup(gpu_ids=self.sim_gpus) return platform @@ -852,6 +857,11 @@ def _create_simulator( render_platform = resolve_render_platform( simulator_key, platform_name, env_manager=env_manager ) + resolved = render_platform.resolved_name + if resolved != render_platform.name: + logger.info("Render platform: %s (via auto-detection)", resolved) + else: + logger.info("Render platform: %s", resolved) from easi.core.render_platforms import EnvVars From a71cb0fb4c944280a40ee5d4ccc69bb6050895f8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 13:55:13 +0800 Subject: [PATCH 203/239] refactor: add log_name property to RenderPlatform to deduplicate logging --- easi/cli.py | 6 +----- easi/core/render_platforms/base.py | 8 ++++++++ easi/evaluation/runner.py | 12 ++---------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index f470b16..44f74b5 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -556,11 +556,7 @@ def cmd_sim_test( logger.info("Testing %s...", simulator) logger.info(" Python: %s", env_manager.get_python_executable()) - resolved = render_platform.resolved_name - if resolved != render_platform.name: - logger.info(" Render platform: %s (via auto-detection)", resolved) - else: - logger.info(" Render platform: %s", resolved) + logger.info(" Render platform: %s", render_platform.log_name) from easi.core.render_platforms import EnvVars diff --git a/easi/core/render_platforms/base.py b/easi/core/render_platforms/base.py index 3360b93..04dc5cd 100644 --- a/easi/core/render_platforms/base.py +++ b/easi/core/render_platforms/base.py @@ -118,6 +118,14 @@ def resolved_name(self) -> str: """Actual backend after auto-detection. Defaults to :attr:`name`.""" return self.name + @property + def log_name(self) -> str: + """Human-readable name for log messages.""" + resolved = self.resolved_name + if resolved != self.name: + return f"{resolved} (via auto-detection)" + return resolved + @abstractmethod def wrap_command(self, cmd: list[str], screen_config: str) -> list[str]: """Optionally wrap the bridge launch command. diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index bf57bc9..394478c 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -167,11 +167,7 @@ def _setup_render_platform(self, backend: str | None = None): "Use --llm-gpus and --sim-gpus to separate them." ) - resolved = platform.resolved_name - if resolved != platform.name: - logger.info("Render platform: %s (via auto-detection)", resolved) - else: - logger.info("Render platform: %s", resolved) + logger.info("Render platform: %s", platform.log_name) platform.setup(gpu_ids=self.sim_gpus) return platform @@ -857,11 +853,7 @@ def _create_simulator( render_platform = resolve_render_platform( simulator_key, platform_name, env_manager=env_manager ) - resolved = render_platform.resolved_name - if resolved != render_platform.name: - logger.info("Render platform: %s (via auto-detection)", resolved) - else: - logger.info("Render platform: %s", resolved) + logger.info("Render platform: %s", render_platform.log_name) from easi.core.render_platforms import EnvVars From 7a1344c1f55afa4a393c9abbcfe563e2d0e96ac5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 14:46:40 +0800 Subject: [PATCH 204/239] fix: ensure render platform setup/teardown lifecycle in all code paths - cmd_sim_test: move setup()/for_worker() inside the try block that owns finally:teardown() so Xorg servers are always cleaned up - _create_simulator: call setup() on per-simulator resolved platforms and register for teardown via self._render_platform --- easi/cli.py | 95 ++++++++++++++++++++------------------- easi/evaluation/runner.py | 3 ++ 2 files changed, 51 insertions(+), 47 deletions(-) diff --git a/easi/cli.py b/easi/cli.py index 44f74b5..ba97aa8 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -545,56 +545,57 @@ def cmd_sim_test( simulator, platform_name, env_manager=env_manager ) try: - render_platform.setup(gpu_ids=sim_gpus or [0]) - worker_binding = render_platform.for_worker(0) - except RuntimeError as e: - if platform_name == "xorg": - logger.warning("%s", str(e)) - render_platform.teardown() - sys.exit(0) - raise - - logger.info("Testing %s...", simulator) - logger.info(" Python: %s", env_manager.get_python_executable()) - logger.info(" Render platform: %s", render_platform.log_name) - - from easi.core.render_platforms import EnvVars - - env_vars = env_manager.get_env_vars(render_platform_name=platform_name) - render_adapter = resolve_render_adapter(simulator, env_manager=env_manager) - - adapter_env = ( - render_adapter.get_env_vars(worker_binding) if render_adapter else EnvVars() - ) - binding_env = EnvVars.merge(worker_binding.extra_env, adapter_env) - if worker_binding.display: - binding_env = EnvVars.merge( - binding_env, EnvVars(replace={"DISPLAY": worker_binding.display}) + try: + render_platform.setup(gpu_ids=sim_gpus or [0]) + worker_binding = render_platform.for_worker(0) + except RuntimeError as e: + if platform_name == "xorg": + logger.warning("%s", str(e)) + sys.exit(0) + raise + + logger.info("Testing %s...", simulator) + logger.info(" Python: %s", env_manager.get_python_executable()) + logger.info(" Render platform: %s", render_platform.log_name) + + from easi.core.render_platforms import EnvVars + + env_vars = env_manager.get_env_vars(render_platform_name=platform_name) + render_adapter = resolve_render_adapter(simulator, env_manager=env_manager) + + adapter_env = ( + render_adapter.get_env_vars(worker_binding) + if render_adapter + else EnvVars() ) - if worker_binding.cuda_visible_devices is not None: - binding_env = EnvVars.merge( - binding_env, - EnvVars( - replace={ - "CUDA_VISIBLE_DEVICES": worker_binding.cuda_visible_devices - } - ), + binding_env = EnvVars.merge(worker_binding.extra_env, adapter_env) + if worker_binding.display: + binding_env = EnvVars.merge( + binding_env, EnvVars(replace={"DISPLAY": worker_binding.display}) + ) + if worker_binding.cuda_visible_devices is not None: + binding_env = EnvVars.merge( + binding_env, + EnvVars( + replace={ + "CUDA_VISIBLE_DEVICES": worker_binding.cuda_visible_devices + } + ), + ) + env_vars = EnvVars.merge(env_vars, binding_env) if env_vars else binding_env + + runner = SubprocessRunner( + python_executable=env_manager.get_python_executable(), + bridge_script_path=sim._get_bridge_script_path(), + render_platform=render_platform, + screen_config=env_manager.screen_config, + startup_timeout=timeout, + command_timeout=timeout, + extra_env=env_vars if env_vars else None, + render_adapter=render_adapter, + worker_binding=worker_binding, ) - env_vars = EnvVars.merge(env_vars, binding_env) if env_vars else binding_env - runner = SubprocessRunner( - python_executable=env_manager.get_python_executable(), - bridge_script_path=sim._get_bridge_script_path(), - render_platform=render_platform, - screen_config=env_manager.screen_config, - startup_timeout=timeout, - command_timeout=timeout, - extra_env=env_vars if env_vars else None, - render_adapter=render_adapter, - worker_binding=worker_binding, - ) - - try: runner.launch() sim.set_runner(runner) diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index 394478c..fc4d6a5 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -853,6 +853,9 @@ def _create_simulator( render_platform = resolve_render_platform( simulator_key, platform_name, env_manager=env_manager ) + render_platform.setup(gpu_ids=self.sim_gpus) + # Register so teardown() is called in the finally block + self._render_platform = render_platform logger.info("Render platform: %s", render_platform.log_name) from easi.core.render_platforms import EnvVars From 3d9e435d16b6d8aff015b79f5ba9ee665809da86 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Thu, 12 Mar 2026 22:16:28 +0800 Subject: [PATCH 205/239] feat: add REVERIE-CE task (navigation-only) Integrate REVERIE-CE as a new task reusing VLN-CE R2R infrastructure. Same simulator (habitat_sim:v0_1_7), action space, and metrics. New prompt builder adapted for REVERIE's high-level instruction style. Dataset: oscarqjh/REVERIE-CE_easi (repackaged from Dynam3D) --- .../plans/2026-03-12-reverie-ce.md | 665 ++++++++++++++++++ .../specs/2026-03-12-reverie-ce-design.md | 231 ++++++ easi/tasks/reverie_ce/__init__.py | 0 easi/tasks/reverie_ce/_base.yaml | 40 ++ easi/tasks/reverie_ce/actions.py | 2 + easi/tasks/reverie_ce/bridge.py | 27 + easi/tasks/reverie_ce/prompts.py | 72 ++ easi/tasks/reverie_ce/reverie_ce_test.yaml | 6 + .../reverie_ce/reverie_ce_val_unseen.yaml | 6 + easi/tasks/reverie_ce/task.py | 22 + tests/test_reverie_ce_task.py | 183 +++++ 11 files changed, 1254 insertions(+) create mode 100644 docs/superpowers/plans/2026-03-12-reverie-ce.md create mode 100644 docs/superpowers/specs/2026-03-12-reverie-ce-design.md create mode 100644 easi/tasks/reverie_ce/__init__.py create mode 100644 easi/tasks/reverie_ce/_base.yaml create mode 100644 easi/tasks/reverie_ce/actions.py create mode 100644 easi/tasks/reverie_ce/bridge.py create mode 100644 easi/tasks/reverie_ce/prompts.py create mode 100644 easi/tasks/reverie_ce/reverie_ce_test.yaml create mode 100644 easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml create mode 100644 easi/tasks/reverie_ce/task.py create mode 100644 tests/test_reverie_ce_task.py diff --git a/docs/superpowers/plans/2026-03-12-reverie-ce.md b/docs/superpowers/plans/2026-03-12-reverie-ce.md new file mode 100644 index 0000000..30608f1 --- /dev/null +++ b/docs/superpowers/plans/2026-03-12-reverie-ce.md @@ -0,0 +1,665 @@ +# REVERIE-CE Integration Implementation Plan + +> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Add REVERIE-CE as a navigation-only task in EASI, reusing the VLN-CE R2R infrastructure. + +**Architecture:** REVERIE-CE is a thin task layer inheriting from VLN-CE R2R. Same simulator (`habitat_sim:v0_1_7`), same action space (4 discrete), same metrics (SR/SPL/NE/NDTW/SDTW). Only the prompt builder and dataset are new. + +**Tech Stack:** Python 3.10+ (host), Habitat-Sim 0.1.7 (bridge subprocess, Python 3.8), HuggingFace datasets, Matterport3D scenes. + +**Spec:** `docs/superpowers/specs/2026-03-12-reverie-ce-design.md` + +--- + +## File Structure + +| Action | File | Responsibility | +|--------|------|---------------| +| Create | `easi/tasks/reverie_ce/__init__.py` | Package marker | +| Create | `easi/tasks/reverie_ce/task.py` | `ReverieCETask` — inherits `VLNCETask`, overrides paths | +| Create | `easi/tasks/reverie_ce/bridge.py` | `ReverieCEBridge` — inherits `VLNCEBridge`, standalone entry point | +| Create | `easi/tasks/reverie_ce/prompts.py` | `ReverieCEPromptBuilder` — high-level instruction prompt | +| Create | `easi/tasks/reverie_ce/actions.py` | Re-exports `get_action_space` from `vlnce_r2r.actions` | +| Create | `easi/tasks/reverie_ce/_base.yaml` | Task config pointing to REVERIE-CE HuggingFace repo | +| Create | `easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml` | Val unseen split | +| Create | `easi/tasks/reverie_ce/reverie_ce_test.yaml` | Test split | +| Create | `tests/test_reverie_ce_task.py` | Unit tests for task, prompt builder, action space | +| None | `easi/tasks/vlnce_r2r/` | Imported, not modified | +| None | `easi/simulators/habitat_sim/` | Unchanged | + +--- + +## Chunk 1: Data Preparation + +### Task 1: Reformat Dynam3D Data into EASI HuggingFace Repo + +This is a one-time manual/scripted step done outside the EASI codebase. It prepares the dataset that the task will consume. + +**Files:** +- External: HuggingFace repo `oscarqjh/REVERIE-CE_easi` + +- [ ] **Step 1: Download Dynam3D REVERIE-CE data** + +Download from HuggingFace `MrZihanWang/Dynam3D`: +```bash +# Download the REVERIE-CE specific files +huggingface-cli download MrZihanWang/Dynam3D \ + data/datasets/reverie_training_data \ + data/datasets/reverie_val_unseen_data.json \ + data/datasets/reverie_test_data.json \ + data/datasets/reverie_val_unseen_gt.json \ + data/datasets/reverie_test_gt.json \ + --local-dir ./dynam3d_download +``` + +- [ ] **Step 2: Write a conversion script to reshape into JSONL** + +Create a temporary script (not committed to EASI) that: +1. Reads the per-scene JSON training files from `reverie_training_data/` +2. Reads the val/test single JSON files +3. Normalises each episode into the VLN-CE R2R JSONL format: + +```python +# Expected output format per line: +{ + "episode_id": str(item["episode_id"]), + "scene_id": item["scene_id"].replace("mp3d/", "").replace(".glb", "").split("/")[-1], + "instruction": item["instruction"]["instruction_text"], + "start_position": item["start_position"], + "start_rotation": item["start_rotation"], + "goal_position": item["goals"][0]["position"], + "geodesic_distance": item["info"]["geodesic_distance"], + "gt_locations": item["reference_path"] +} +``` + +Note: `scene_id` in VLN-CE R2R format is just the scan name (e.g. `cV4RVeZvu5T`), not the full path. The bridge constructs the full path from `data_dir + mp3d/ + scene_id + scene_id.glb`. + +4. Writes `train.jsonl`, `val_unseen.jsonl`, `test.jsonl` +5. Copies ground truth files as-is + +- [ ] **Step 3: Verify episode counts match Dynam3D source** + +```bash +wc -l data/train.jsonl data/val_unseen.jsonl data/test.jsonl +``` + +- [ ] **Step 4: Upload to HuggingFace** + +```bash +huggingface-cli upload oscarqjh/REVERIE-CE_easi ./reverie_ce_easi/ \ + --repo-type dataset +``` + +Include `mp3d_scenes.zip` (same Matterport3D scenes as R2R — can be copied from the R2R dataset repo). + +--- + +## Chunk 2: Task Implementation + +### Task 2: Create Action Space Module + +**Files:** +- Create: `easi/tasks/reverie_ce/actions.py` +- Test: `tests/test_reverie_ce_task.py` + +- [ ] **Step 1: Write failing test** + +```python +# tests/test_reverie_ce_task.py +class TestActionSpace: + def test_has_four_actions(self): + from easi.tasks.reverie_ce.actions import get_action_space + actions = get_action_space() + assert len(actions) == 4 + assert "move_forward" in actions + assert "turn_left" in actions + assert "turn_right" in actions + assert "stop" in actions +``` + +- [ ] **Step 2: Run test to verify it fails** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestActionSpace -v` +Expected: FAIL (module not found) + +- [ ] **Step 3: Create the module** + +```python +# easi/tasks/reverie_ce/__init__.py +# (empty) + +# easi/tasks/reverie_ce/actions.py +"""REVERIE-CE action space — same as VLN-CE R2R.""" +from easi.tasks.vlnce_r2r.actions import get_action_space # noqa: F401 +``` + +- [ ] **Step 4: Run test to verify it passes** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestActionSpace -v` +Expected: PASS + +- [ ] **Step 5: Commit** + +```bash +git add easi/tasks/reverie_ce/__init__.py easi/tasks/reverie_ce/actions.py tests/test_reverie_ce_task.py +git commit -m "feat(reverie-ce): add action space module" +``` + +--- + +### Task 3: Create Task Class + +**Files:** +- Create: `easi/tasks/reverie_ce/task.py` +- Test: `tests/test_reverie_ce_task.py` + +- [ ] **Step 1: Write failing tests** + +```python +# Add to tests/test_reverie_ce_task.py +import json +import pytest +from unittest.mock import MagicMock +from easi.core.episode import EpisodeRecord, Observation, StepResult + + +class TestReverieCETask: + @pytest.fixture + def task(self): + from easi.tasks.reverie_ce.task import ReverieCETask + mock_config = { + "name": "reverie_ce_val_unseen", + "display_name": "REVERIE-CE Val Unseen", + "simulator": "habitat_sim:v0_1_7", + "task_class": "easi.tasks.reverie_ce.task.ReverieCETask", + "max_steps": 500, + "dataset": {"source": "huggingface", "repo_id": "oscarqjh/REVERIE-CE_easi", "split": "val_unseen"}, + "simulator_configs": {}, + "agent": {"prompt_builder": "easi.tasks.reverie_ce.prompts.ReverieCEPromptBuilder"}, + } + task = ReverieCETask.__new__(ReverieCETask) + task._config = mock_config + task._yaml_path = None + task._action_space = None + return task + + def test_action_space(self, task): + actions = task._build_action_space() + assert actions == ["move_forward", "turn_left", "turn_right", "stop"] + + def test_format_reset_config(self, task): + episode = { + "episode_id": "50001", + "scene_id": "cV4RVeZvu5T", + "instruction": "Go to the laundry room and get the cushion", + "start_position": [1.0, 0.5, -2.0], + "start_rotation": [0, 0.707, 0, 0.707], + "goal_position": [4.5, 0.5, 1.2], + "geodesic_distance": 10.5, + "gt_locations": [[1.0, 0.5, -2.0], [2.0, 0.5, -1.0]], + "_data_dir": "/data/reverie_ce", + } + config = task.format_reset_config(episode) + assert config["scene_id"] == "cV4RVeZvu5T" + assert config["data_dir"] == "/data/reverie_ce" + assert json.loads(config["start_position"]) == [1.0, 0.5, -2.0] + + def test_evaluate_episode_success(self, task): + info = { + "success": 1.0, "oracle_success": 1.0, "spl": 0.8, + "navigation_error": 1.5, "ndtw": 0.9, "sdtw": 0.85, + "path_length": 8.0, + } + obs = Observation(rgb_path="/tmp/step.png") + step = StepResult(observation=obs, done=True, info=info) + result = task.evaluate_episode({}, [step]) + assert result["success"] == 1.0 + assert result["spl"] == 0.8 + + def test_evaluate_episode_empty(self, task): + result = task.evaluate_episode({}, []) + assert result["success"] is None + assert result["path_length"] == 0.0 + + def test_aggregate_results(self, task): + records = [ + EpisodeRecord(episode={}, trajectory=[], episode_results={ + "success": 1.0, "oracle_success": 1.0, "spl": 0.8, + "navigation_error": 1.5, "ndtw": 0.9, "sdtw": 0.85, + "path_length": 8.0, "steps_taken": 30.0, + }), + EpisodeRecord(episode={}, trajectory=[], episode_results={ + "success": 0.0, "oracle_success": 0.0, "spl": 0.0, + "navigation_error": 6.0, "ndtw": 0.3, "sdtw": 0.0, + "path_length": 12.0, "steps_taken": 50.0, + }), + ] + summary = task.aggregate_results(records) + assert summary["num_episodes"] == 2 + assert summary["SR"] == 0.5 + assert summary["SPL"] == 0.4 + + def test_bridge_script_path(self, task): + path = task.get_bridge_script_path() + assert path.name == "bridge.py" + assert "reverie_ce" in str(path) +``` + +- [ ] **Step 2: Run tests to verify they fail** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestReverieCETask -v` +Expected: FAIL (ReverieCETask not found) + +- [ ] **Step 3: Implement the task class** + +```python +# easi/tasks/reverie_ce/task.py +"""REVERIE-CE task for EASI. + +Navigation-only evaluation of REVERIE in continuous environments. +Inherits from VLNCETask — same metrics, same bridge protocol. +""" +from __future__ import annotations + +from pathlib import Path + +from easi.tasks.vlnce_r2r.task import VLNCETask +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ReverieCETask(VLNCETask): + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" +``` + +- [ ] **Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestReverieCETask -v` +Expected: PASS + +- [ ] **Step 5: Commit** + +```bash +git add easi/tasks/reverie_ce/task.py tests/test_reverie_ce_task.py +git commit -m "feat(reverie-ce): add ReverieCETask inheriting VLNCETask" +``` + +--- + +### Task 4: Create Bridge + +**Files:** +- Create: `easi/tasks/reverie_ce/bridge.py` + +The bridge must be a standalone script (runs in Python 3.8 subprocess). It inherits from `VLNCEBridge` but provides its own `__main__` entry point. + +- [ ] **Step 1: Create the bridge module** + +```python +# easi/tasks/reverie_ce/bridge.py +"""REVERIE-CE bridge — inherits VLN-CE R2R bridge. + +Runs inside the easi_habitat_sim_v0_1_7 conda env (Python 3.8). +Inherits all reset/step/extract logic from VLNCEBridge. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.tasks.vlnce_r2r.bridge import VLNCEBridge # noqa: E402 + + +class ReverieCEBridge(VLNCEBridge): + """Bridge for REVERIE-CE. Identical to VLN-CE R2R for now.""" + pass + + +if __name__ == "__main__": + ReverieCEBridge.main() +``` + +- [ ] **Step 2: Verify bridge script path resolves correctly** + +The test from Task 3 (`test_bridge_script_path`) already validates this. + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestReverieCETask::test_bridge_script_path -v` +Expected: PASS + +- [ ] **Step 3: Commit** + +```bash +git add easi/tasks/reverie_ce/bridge.py +git commit -m "feat(reverie-ce): add bridge inheriting VLNCEBridge" +``` + +--- + +### Task 5: Create Prompt Builder + +**Files:** +- Create: `easi/tasks/reverie_ce/prompts.py` +- Test: `tests/test_reverie_ce_task.py` + +- [ ] **Step 1: Write failing tests** + +```python +# Add to tests/test_reverie_ce_task.py +class TestReverieCEPromptBuilder: + @pytest.fixture + def mock_encode(self): + # Must patch in vlnce_r2r.prompts where the function is actually + # called (super().build_messages() resolves it there, not in + # reverie_ce.prompts). + import easi.tasks.vlnce_r2r.prompts as prompts_mod + original = prompts_mod._encode_image_base64 + prompts_mod._encode_image_base64 = lambda x: "data:image/png;base64,AAAA" + yield + prompts_mod._encode_image_base64 = original + + def _make_memory(self, action_history=None): + memory = MagicMock() + memory.task_description = "Go to the laundry room and bring me the blue cushion" + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + memory.current_observation = Observation( + rgb_path="/tmp/test.png", + metadata={"geo_distance": "5.3"}, + ) + memory.action_history = action_history or [] + memory.steps = [] + return memory + + def test_system_prompt_mentions_high_level(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + system_msg = messages[0]["content"] + assert "high-level" in system_msg.lower() or "described location" in system_msg.lower() + + def test_build_messages_has_image(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + user_content = messages[1]["content"] + image_blocks = [b for b in user_content if b.get("type") == "image_url"] + assert len(image_blocks) == 1 + + def test_build_messages_has_instruction(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + text_blocks = [b["text"] for b in messages[1]["content"] if b.get("type") == "text"] + full_text = "\n".join(text_blocks) + assert "laundry room" in full_text + + def test_build_messages_has_distance(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + text_blocks = [b["text"] for b in messages[1]["content"] if b.get("type") == "text"] + full_text = "\n".join(text_blocks) + assert "5.3" in full_text + + def test_parse_response_valid(self): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + response = json.dumps({ + "visual_state_description": "I see a hallway", + "reasoning_and_reflection": "Need to find the laundry room", + "language_plan": "Move forward", + "executable_plan": [{"action": "move_forward"}], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 + assert actions[0].action_name == "move_forward" + + def test_parse_response_invalid_json(self): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + actions = builder.parse_response("not json", memory) + assert actions == [] +``` + +- [ ] **Step 2: Run tests to verify they fail** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestReverieCEPromptBuilder -v` +Expected: FAIL (module not found) + +- [ ] **Step 3: Implement the prompt builder** + +```python +# easi/tasks/reverie_ce/prompts.py +"""REVERIE-CE prompt builder. + +Adapted from VLN-CE R2R for REVERIE's high-level instruction style. +REVERIE instructions describe a target location/object rather than +step-by-step route directions. +""" +from __future__ import annotations + +from easi.tasks.vlnce_r2r.prompts import VLNCEPromptBuilder +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """\ +## Role and Environment +You are a robot navigating in a 3D indoor environment. You observe the \ +environment through a front-facing camera and must navigate to the location \ +described in a high-level natural language instruction. + +## Observation Description +- **Distance to goal**: Geodesic (shortest walkable path) distance in meters \ +to the described location. Decreases as you get closer. + +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 15 degrees +- turn_right: Turn right by 15 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached \ +the described location) + +## Strategy +1. Read the instruction carefully — it describes a target location or object \ +in the environment, not a step-by-step route +2. Observe your surroundings in the image +3. Reason about which direction the described location is likely in +4. Navigate room by room, using landmarks and room types to orient yourself +5. Use stop ONLY when you are confident you have reached the described location + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about your situation, reflect on \ +history and feedback", + "language_plan": "Describe your next navigation plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan. Actions execute \ +sequentially.""" + + +class ReverieCEPromptBuilder(VLNCEPromptBuilder): + """Prompt builder for REVERIE-CE benchmark. + + Inherits message construction and response parsing from VLNCEPromptBuilder. + Overrides only the system prompt to frame the task around high-level + instructions rather than step-by-step route following. + """ + + def build_messages(self, memory): + # Use parent's build_messages but swap the system prompt + messages = super().build_messages(memory) + messages[0]["content"] = SYSTEM_PROMPT + return messages +``` + +- [ ] **Step 4: Run tests to verify they pass** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py::TestReverieCEPromptBuilder -v` +Expected: PASS + +- [ ] **Step 5: Commit** + +```bash +git add easi/tasks/reverie_ce/prompts.py tests/test_reverie_ce_task.py +git commit -m "feat(reverie-ce): add prompt builder for high-level instructions" +``` + +--- + +## Chunk 3: YAML Configs and Integration + +### Task 6: Create YAML Configs + +**Files:** +- Create: `easi/tasks/reverie_ce/_base.yaml` +- Create: `easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml` +- Create: `easi/tasks/reverie_ce/reverie_ce_test.yaml` + +- [ ] **Step 1: Create _base.yaml** + +```yaml +# easi/tasks/reverie_ce/_base.yaml +display_name: "REVERIE-CE" +description: "REVERIE in Continuous Environments (navigation-only)" +simulator: "habitat_sim:v0_1_7" +task_class: "easi.tasks.reverie_ce.task.ReverieCETask" +max_steps: 500 + +dataset: + source: huggingface + repo_id: "oscarqjh/REVERIE-CE_easi" + subset: null + hf_data_dir: "data" + zip_files: + - "mp3d_scenes.zip" + +simulator_configs: + render_platform: auto + screen_height: 480 + screen_width: 480 + hfov: 90 + sensor_height: 1.25 + gpu_device_id: 0 + success_distance: 3.0 + forward_step_size: 0.25 + turn_angle: 15 + allow_sliding: true + additional_deps: + - "fastdtw>=0.3.4" + +agent: + prompt_builder: "easi.tasks.reverie_ce.prompts.ReverieCEPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + use_geo_distance: true + action_history_len: 20 + chat_history: false + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 +``` + +- [ ] **Step 2: Create split configs** + +```yaml +# easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml +extends: _base.yaml +name: reverie_ce_val_unseen +display_name: "REVERIE-CE Val Unseen" +description: "REVERIE-CE validation split (unseen environments)" +dataset: + split: "val_unseen" +``` + +```yaml +# easi/tasks/reverie_ce/reverie_ce_test.yaml +extends: _base.yaml +name: reverie_ce_test +display_name: "REVERIE-CE Test" +description: "REVERIE-CE test split" +dataset: + split: "test" +``` + +- [ ] **Step 3: Verify task discovery** + +Run: `.venv/bin/easi task list 2>&1 | grep -i reverie` +Expected: Should show `reverie_ce_val_unseen` and `reverie_ce_test` + +- [ ] **Step 4: Commit** + +```bash +git add easi/tasks/reverie_ce/_base.yaml easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml easi/tasks/reverie_ce/reverie_ce_test.yaml +git commit -m "feat(reverie-ce): add YAML task configs for val_unseen and test splits" +``` + +--- + +### Task 7: Run Full Test Suite + +- [ ] **Step 1: Run all existing tests to verify no regressions** + +Run: `.venv/bin/pytest tests/ -v --timeout=60` +Expected: All tests pass (946+) + +- [ ] **Step 2: Run REVERIE-CE specific tests** + +Run: `.venv/bin/pytest tests/test_reverie_ce_task.py -v` +Expected: All REVERIE-CE tests pass + +- [ ] **Step 3: Final commit if any test fixes needed** + +```bash +git add -A +git commit -m "fix(reverie-ce): address test failures" +``` + +--- + +## Post-Implementation + +After all tasks are complete: + +1. **Data preparation** (Task 1) must be done separately — download Dynam3D data, reformat to JSONL, upload to `oscarqjh/REVERIE-CE_easi` +2. **End-to-end smoke test** once the HuggingFace repo is ready: + ```bash + easi task download reverie_ce_val_unseen + easi sim test habitat_sim:v0_1_7 + easi start reverie_ce_val_unseen --agent dummy --max-episodes 1 + ``` diff --git a/docs/superpowers/specs/2026-03-12-reverie-ce-design.md b/docs/superpowers/specs/2026-03-12-reverie-ce-design.md new file mode 100644 index 0000000..1245c65 --- /dev/null +++ b/docs/superpowers/specs/2026-03-12-reverie-ce-design.md @@ -0,0 +1,231 @@ +# REVERIE-CE Integration Design + +**Date:** 2026-03-12 +**Status:** Approved + +## Overview + +Integrate REVERIE-CE (navigation-only) as a new task in EASI, reusing the existing `habitat_sim:v0_1_7` simulator infrastructure and VLN-CE R2R vendor code. REVERIE-CE uses the pre-converted Dynam3D dataset (HuggingFace) with Matterport3D scenes. + +## Scope + +- **Navigation-only**: No object grounding. The agent navigates to the described area and calls stop. +- **Reuse existing simulator**: Habitat-Sim 0.1.7 (Python 3.8), same as VLN-CE R2R. +- **Pre-converted data**: Use Dynam3D's pre-converted REVERIE-CE episodes from HuggingFace, repackaged into an EASI-compatible repo. + +## Architecture + +``` +easi/tasks/reverie_ce/ +├── task.py # ReverieCETask (inherits from VLNCETask) +├── _base.yaml # Config pointing to REVERIE-CE dataset repo +├── bridge.py # ReverieCEBridge (inherits from VLNCEBridge) +├── prompts.py # ReverieCEPromptBuilder (high-level instruction style) +├── actions.py # Same 4 discrete actions as VLN-CE R2R +├── vendor/ # Reuse vlnce_r2r vendor code (import, not symlink) +├── reverie_ce_val_unseen.yaml +└── reverie_ce_test.yaml +``` + +### Key decisions + +- **Bridge**: Inherit from `VLNCEBridge` (not symlink) to allow future customization. +- **Task**: Inherit from `VLNCETask` to reuse metric extraction and aggregation. +- **Vendor**: Import `SceneSimulator` and `scene_config` from `vlnce_r2r/vendor/` — no duplication. +- **Simulator**: No new simulator code. Uses `habitat_sim:v0_1_7` as-is. + +## Data Pipeline + +### Source + +Dynam3D pre-converted REVERIE-CE data from HuggingFace (`MrZihanWang/Dynam3D`): +- `reverie_training_data/` — per-scene JSON files (~60 files) +- `reverie_val_unseen_data.json` — single file +- `reverie_test_data.json` — single file +- `reverie_val_unseen_gt.json`, `reverie_test_gt.json` — ground truth + +### EASI HuggingFace Repo + +Reformat (not re-convert) the Dynam3D output into EASI's per-split JSONL convention and upload to `oscarqjh/REVERIE-CE_easi`. This is a one-time reshaping step — no discrete-to-CE conversion is involved. + +``` +oscarqjh/REVERIE-CE_easi/ +├── data/ +│ ├── train.jsonl +│ ├── val_unseen.jsonl +│ ├── test.jsonl +│ ├── val_unseen_gt.json +│ └── test_gt.json +├── mp3d_scenes.zip # Matterport3D .glb files (shared with R2R) +``` + +### Episode Format (JSONL) + +Each line matches the VLN-CE R2R format used by `vlnce_r2r`: + +```json +{ + "episode_id": "50001", + "scene_id": "mp3d/cV4RVeZvu5T/cV4RVeZvu5T.glb", + "instruction": "Go to the laundry room and bring me the blue cushion", + "start_position": [x, y, z], + "start_rotation": [qx, qy, qz, qw], + "goal_position": [x, y, z], + "geodesic_distance": 10.5, + "gt_locations": [[x1, y1, z1], [x2, y2, z2], ...] +} +``` + +The `mp3d_scenes.zip` contains the same Matterport3D scenes as R2R. Can be shared or symlinked to avoid duplication on disk. + +## Task Configuration + +### _base.yaml + +```yaml +name: reverie_ce +simulator: "habitat_sim:v0_1_7" +task_class: "easi.tasks.reverie_ce.task.ReverieCETask" + +dataset: + source: huggingface + repo_id: "oscarqjh/REVERIE-CE_easi" + hf_data_dir: "data" + zip_files: ["mp3d_scenes.zip"] + +simulator_configs: + render_platform: auto + screen_height: 480 + screen_width: 480 + hfov: 90 + sensor_height: 1.25 + forward_step_size: 0.25 + turn_angle: 15 + allow_sliding: true + gpu_device_id: 0 + success_distance: 3.0 + additional_deps: ["fastdtw>=0.3.4"] + +agent: + prompt_builder: "easi.tasks.reverie_ce.prompts.ReverieCEPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + use_geo_distance: true + action_history_len: 20 + chat_history: false + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 +``` + +### Split configs + +Each split YAML extends `_base.yaml`: + +```yaml +# reverie_ce_val_unseen.yaml +extends: _base.yaml +name: reverie_ce_val_unseen +dataset: + split: "val_unseen" +``` + +```yaml +# reverie_ce_test.yaml +extends: _base.yaml +name: reverie_ce_test +dataset: + split: "test" +``` + +## Action Space + +Same 4 discrete actions as VLN-CE R2R: + +| Action | Effect | +|---|---| +| `move_forward` | Move 0.25m forward | +| `turn_left` | Turn 15 degrees left | +| `turn_right` | Turn 15 degrees right | +| `stop` | End navigation, evaluate success | + +## Metrics + +Same as VLN-CE R2R (navigation-only): + +| Metric | Description | +|---|---| +| SR (Success Rate) | 1.0 if agent stops within 3m of goal | +| SPL | Success weighted by path efficiency | +| NE (Navigation Error) | Geodesic distance to goal at stop | +| Oracle SR | Best geodesic distance achieved during episode | +| NDTW | Normalized Dynamic Time Warping | +| SDTW | Success-weighted DTW | +| path_length | Total distance traveled | +| steps_taken | Number of actions executed | + +Implemented by inheriting `VLNCETask.evaluate_episode()` and `aggregate_results()`. + +## Prompt Builder + +### Differences from VLN-CE R2R + +REVERIE uses high-level instructions ("Go to the laundry room and bring me the blue cushion") vs R2R's turn-by-turn route descriptions ("Exit the bedroom and turn left, walk past the kitchen..."). + +The system prompt should: +- Frame the task as "navigate to the described area" rather than "follow route instructions" +- Emphasize spatial reasoning from the high-level description +- Otherwise keep the same structure: image, instruction, geodesic feedback, action history + +### Response format + +Same JSON format as VLN-CE R2R: + +```json +{ + "visual_state_description": "...", + "reasoning_and_reflection": "...", + "language_plan": "...", + "executable_plan": [{"action": "move_forward"}] +} +``` + +## Component Reuse Summary + +| Component | Source | Method | +|---|---|---| +| Simulator | `habitat_sim:v0_1_7` | As-is, no changes | +| Bridge | `vlnce_r2r.bridge.VLNCEBridge` | Inherit | +| SceneSimulator | `vlnce_r2r.vendor.scene_simulator` | Import | +| scene_config | `vlnce_r2r.vendor.scene_config` | Import | +| DTW metrics | `vlnce_r2r.vendor.dtw` | Import | +| Task class | `vlnce_r2r.task.VLNCETask` | Inherit | +| Actions | `vlnce_r2r.actions` | Import or duplicate (trivial) | +| Prompt builder | New | Adapted for high-level instructions | +| Dataset | New HuggingFace repo | Repackaged from Dynam3D | + +## CLI Usage + +```bash +# List available tasks +easi task list # Should show reverie_ce_val_unseen, reverie_ce_test + +# Download dataset +easi task download reverie_ce_val_unseen + +# Run evaluation +easi start reverie_ce_val_unseen --agent react --backend openai --model gpt-4o + +# Parallel evaluation +easi start reverie_ce_val_unseen --agent react --backend openai --model gpt-4o --num-parallel 4 +``` + +## References + +- [Dynam3D (GitHub)](https://github.com/MrZihan/Dynam3D) — conversion scripts and pre-converted data +- [Dynam3D (HuggingFace)](https://huggingface.co/datasets/MrZihanWang/Dynam3D) — pre-converted REVERIE-CE episodes +- [VLN-CE (GitHub)](https://github.com/jacobkrantz/VLN-CE) — original R2R-CE implementation +- [REVERIE (GitHub)](https://github.com/YuankaiQi/REVERIE) — original discrete REVERIE benchmark +- [REVE-CE (IEEE Xplore)](https://ieeexplore.ieee.org/document/9674225) — prior work porting REVERIE to CE (no public code) diff --git a/easi/tasks/reverie_ce/__init__.py b/easi/tasks/reverie_ce/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/tasks/reverie_ce/_base.yaml b/easi/tasks/reverie_ce/_base.yaml new file mode 100644 index 0000000..8973d5a --- /dev/null +++ b/easi/tasks/reverie_ce/_base.yaml @@ -0,0 +1,40 @@ +display_name: "REVERIE-CE" +description: "REVERIE in Continuous Environments (navigation-only)" +simulator: "habitat_sim:v0_1_7" +task_class: "easi.tasks.reverie_ce.task.ReverieCETask" +max_steps: 500 + +dataset: + source: huggingface + repo_id: "oscarqjh/REVERIE-CE_easi" + subset: null + hf_data_dir: "data" + zip_files: + - "mp3d_scenes.zip" + +simulator_configs: + render_platform: auto + screen_height: 480 + screen_width: 480 + hfov: 90 + sensor_height: 1.25 + gpu_device_id: 0 + success_distance: 3.0 + forward_step_size: 0.25 + turn_angle: 15 + allow_sliding: true + additional_deps: + - "fastdtw>=0.3.4" + +agent: + prompt_builder: "easi.tasks.reverie_ce.prompts.ReverieCEPromptBuilder" + prompt_builder_kwargs: + use_feedback: true + use_geo_distance: true + action_history_len: 20 + chat_history: false + message_window_len: 5 + generation_kwargs: + temperature: 0 + max_tokens: 4096 + top_p: 0.95 diff --git a/easi/tasks/reverie_ce/actions.py b/easi/tasks/reverie_ce/actions.py new file mode 100644 index 0000000..ca6d9e3 --- /dev/null +++ b/easi/tasks/reverie_ce/actions.py @@ -0,0 +1,2 @@ +"""REVERIE-CE action space — same as VLN-CE R2R.""" +from easi.tasks.vlnce_r2r.actions import get_action_space # noqa: F401 diff --git a/easi/tasks/reverie_ce/bridge.py b/easi/tasks/reverie_ce/bridge.py new file mode 100644 index 0000000..dd1b887 --- /dev/null +++ b/easi/tasks/reverie_ce/bridge.py @@ -0,0 +1,27 @@ +"""REVERIE-CE bridge — inherits VLN-CE R2R bridge. + +Runs inside the easi_habitat_sim_v0_1_7 conda env (Python 3.8). +Inherits all reset/step/extract logic from VLNCEBridge. + +Usage: + python bridge.py --workspace /tmp/easi_xxx [--simulator-kwargs '{}'] +""" +from __future__ import annotations + +import sys +from pathlib import Path + +_repo_root = Path(__file__).resolve().parents[3] +if str(_repo_root) not in sys.path: + sys.path.insert(0, str(_repo_root)) + +from easi.tasks.vlnce_r2r.bridge import VLNCEBridge # noqa: E402 + + +class ReverieCEBridge(VLNCEBridge): + """Bridge for REVERIE-CE. Identical to VLN-CE R2R for now.""" + pass + + +if __name__ == "__main__": + ReverieCEBridge.main() diff --git a/easi/tasks/reverie_ce/prompts.py b/easi/tasks/reverie_ce/prompts.py new file mode 100644 index 0000000..542aa9b --- /dev/null +++ b/easi/tasks/reverie_ce/prompts.py @@ -0,0 +1,72 @@ +"""REVERIE-CE prompt builder. + +Adapted from VLN-CE R2R for REVERIE's high-level instruction style. +REVERIE instructions describe a target location/object rather than +step-by-step route directions. +""" +from __future__ import annotations + +from easi.tasks.vlnce_r2r.prompts import VLNCEPromptBuilder +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +SYSTEM_PROMPT = """\ +## Role and Environment +You are a robot navigating in a 3D indoor environment. You observe the \ +environment through a front-facing camera and must navigate to the location \ +described in a high-level natural language instruction. + +## Observation Description +- **Distance to goal**: Geodesic (shortest walkable path) distance in meters \ +to the described location. Decreases as you get closer. + +## Available Actions +- move_forward: Move forward by 0.25 meters +- turn_left: Turn left by 15 degrees +- turn_right: Turn right by 15 degrees +- stop: Stop and end navigation (use ONLY when you believe you have reached \ +the described location) + +## Strategy +1. Read the instruction carefully — it describes a target location or object \ +in the environment, not a step-by-step route +2. Observe your surroundings in the image +3. Reason about which direction the described location is likely in +4. Navigate room by room, using landmarks and room types to orient yourself +5. Use stop ONLY when you are confident you have reached the described location + +## Guidelines +1. Always output at least one action in executable_plan. +2. Only use actions from the Available Actions list. +3. If previous actions failed, reason about why and try a different approach. +4. Do not repeatedly execute the same action sequence. +5. Keep your plan efficient and concise. + +## Response Format +Output a JSON object with exactly these 4 fields: +{ + "visual_state_description": "Describe what you see in the current image", + "reasoning_and_reflection": "Reason about your situation, reflect on \ +history and feedback", + "language_plan": "Describe your next navigation plan in natural language", + "executable_plan": [{"action": ""}] +} + +You may include multiple actions in executable_plan. Actions execute \ +sequentially.""" + + +class ReverieCEPromptBuilder(VLNCEPromptBuilder): + """Prompt builder for REVERIE-CE benchmark. + + Inherits message construction and response parsing from VLNCEPromptBuilder. + Overrides only the system prompt to frame the task around high-level + instructions rather than step-by-step route following. + """ + + def build_messages(self, memory): + # Use parent's build_messages but swap the system prompt + messages = super().build_messages(memory) + messages[0]["content"] = SYSTEM_PROMPT + return messages diff --git a/easi/tasks/reverie_ce/reverie_ce_test.yaml b/easi/tasks/reverie_ce/reverie_ce_test.yaml new file mode 100644 index 0000000..7633883 --- /dev/null +++ b/easi/tasks/reverie_ce/reverie_ce_test.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: reverie_ce_test +display_name: "REVERIE-CE Test" +description: "REVERIE-CE test split" +dataset: + split: "test" diff --git a/easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml b/easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml new file mode 100644 index 0000000..0d2edd6 --- /dev/null +++ b/easi/tasks/reverie_ce/reverie_ce_val_unseen.yaml @@ -0,0 +1,6 @@ +extends: _base.yaml +name: reverie_ce_val_unseen +display_name: "REVERIE-CE Val Unseen" +description: "REVERIE-CE validation split (unseen environments)" +dataset: + split: "val_unseen" diff --git a/easi/tasks/reverie_ce/task.py b/easi/tasks/reverie_ce/task.py new file mode 100644 index 0000000..37e23e8 --- /dev/null +++ b/easi/tasks/reverie_ce/task.py @@ -0,0 +1,22 @@ +"""REVERIE-CE task for EASI. + +Navigation-only evaluation of REVERIE in continuous environments. +Inherits from VLNCETask — same metrics, same bridge protocol. +""" +from __future__ import annotations + +from pathlib import Path + +from easi.tasks.vlnce_r2r.task import VLNCETask +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ReverieCETask(VLNCETask): + + def get_task_yaml_path(self) -> Path: + return Path(__file__).parent / "_base.yaml" + + def get_bridge_script_path(self) -> Path: + return Path(__file__).parent / "bridge.py" diff --git a/tests/test_reverie_ce_task.py b/tests/test_reverie_ce_task.py new file mode 100644 index 0000000..9633882 --- /dev/null +++ b/tests/test_reverie_ce_task.py @@ -0,0 +1,183 @@ +"""Tests for REVERIE-CE task, action space, and prompt builder.""" +import json + +import pytest +from unittest.mock import MagicMock + +from easi.core.episode import Action, EpisodeRecord, Observation, StepResult + + +class TestActionSpace: + def test_has_four_actions(self): + from easi.tasks.reverie_ce.actions import get_action_space + actions = get_action_space() + assert len(actions) == 4 + assert "move_forward" in actions + assert "turn_left" in actions + assert "turn_right" in actions + assert "stop" in actions + + +class TestReverieCETask: + @pytest.fixture + def task(self): + from easi.tasks.reverie_ce.task import ReverieCETask + mock_config = { + "name": "reverie_ce_val_unseen", + "display_name": "REVERIE-CE Val Unseen", + "simulator": "habitat_sim:v0_1_7", + "task_class": "easi.tasks.reverie_ce.task.ReverieCETask", + "max_steps": 500, + "dataset": {"source": "huggingface", "repo_id": "oscarqjh/REVERIE-CE_easi", "split": "val_unseen"}, + "simulator_configs": {}, + "agent": {"prompt_builder": "easi.tasks.reverie_ce.prompts.ReverieCEPromptBuilder"}, + } + task = ReverieCETask.__new__(ReverieCETask) + task._config = mock_config + task._yaml_path = None + task._action_space = None + return task + + def test_action_space(self, task): + actions = task._build_action_space() + assert actions == ["move_forward", "turn_left", "turn_right", "stop"] + + def test_format_reset_config(self, task): + episode = { + "episode_id": "50001", + "scene_id": "cV4RVeZvu5T", + "instruction": "Go to the laundry room and get the cushion", + "start_position": [1.0, 0.5, -2.0], + "start_rotation": [0, 0.707, 0, 0.707], + "goal_position": [4.5, 0.5, 1.2], + "geodesic_distance": 10.5, + "gt_locations": [[1.0, 0.5, -2.0], [2.0, 0.5, -1.0]], + "_data_dir": "/data/reverie_ce", + } + config = task.format_reset_config(episode) + assert config["scene_id"] == "cV4RVeZvu5T" + assert config["data_dir"] == "/data/reverie_ce" + assert json.loads(config["start_position"]) == [1.0, 0.5, -2.0] + + def test_evaluate_episode_success(self, task): + info = { + "success": 1.0, "oracle_success": 1.0, "spl": 0.8, + "navigation_error": 1.5, "ndtw": 0.9, "sdtw": 0.85, + "path_length": 8.0, + } + obs = Observation(rgb_path="/tmp/step.png") + step = StepResult(observation=obs, done=True, info=info) + result = task.evaluate_episode({}, [step]) + assert result["success"] == 1.0 + assert result["spl"] == 0.8 + + def test_evaluate_episode_empty(self, task): + result = task.evaluate_episode({}, []) + assert result["success"] is None + assert result["path_length"] == 0.0 + + def test_aggregate_results(self, task): + records = [ + EpisodeRecord(episode={}, trajectory=[], episode_results={ + "success": 1.0, "oracle_success": 1.0, "spl": 0.8, + "navigation_error": 1.5, "ndtw": 0.9, "sdtw": 0.85, + "path_length": 8.0, "steps_taken": 30.0, + }), + EpisodeRecord(episode={}, trajectory=[], episode_results={ + "success": 0.0, "oracle_success": 0.0, "spl": 0.0, + "navigation_error": 6.0, "ndtw": 0.3, "sdtw": 0.0, + "path_length": 12.0, "steps_taken": 50.0, + }), + ] + summary = task.aggregate_results(records) + assert summary["num_episodes"] == 2 + assert summary["SR"] == 0.5 + assert summary["SPL"] == 0.4 + + def test_bridge_script_path(self, task): + path = task.get_bridge_script_path() + assert path.name == "bridge.py" + assert "reverie_ce" in str(path) + + +class TestReverieCEPromptBuilder: + @pytest.fixture + def mock_encode(self): + # Must patch in vlnce_r2r.prompts where the function is actually + # called (super().build_messages() resolves it there, not in + # reverie_ce.prompts). + import easi.tasks.vlnce_r2r.prompts as prompts_mod + original = prompts_mod._encode_image_base64 + prompts_mod._encode_image_base64 = lambda x: "data:image/png;base64,AAAA" + yield + prompts_mod._encode_image_base64 = original + + def _make_memory(self, action_history=None): + memory = MagicMock() + memory.task_description = "Go to the laundry room and bring me the blue cushion" + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + memory.current_observation = Observation( + rgb_path="/tmp/test.png", + metadata={"geo_distance": "5.3"}, + ) + memory.action_history = action_history or [] + memory.steps = [] + return memory + + def test_system_prompt_mentions_high_level(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + system_msg = messages[0]["content"] + assert "high-level" in system_msg.lower() or "described location" in system_msg.lower() + + def test_build_messages_has_image(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + user_content = messages[1]["content"] + image_blocks = [b for b in user_content if b.get("type") == "image_url"] + assert len(image_blocks) == 1 + + def test_build_messages_has_instruction(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + text_blocks = [b["text"] for b in messages[1]["content"] if b.get("type") == "text"] + full_text = "\n".join(text_blocks) + assert "laundry room" in full_text + + def test_build_messages_has_distance(self, mock_encode): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = self._make_memory() + messages = builder.build_messages(memory) + text_blocks = [b["text"] for b in messages[1]["content"] if b.get("type") == "text"] + full_text = "\n".join(text_blocks) + assert "5.3" in full_text + + def test_parse_response_valid(self): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + response = json.dumps({ + "visual_state_description": "I see a hallway", + "reasoning_and_reflection": "Need to find the laundry room", + "language_plan": "Move forward", + "executable_plan": [{"action": "move_forward"}], + }) + actions = builder.parse_response(response, memory) + assert len(actions) == 1 + assert actions[0].action_name == "move_forward" + + def test_parse_response_invalid_json(self): + from easi.tasks.reverie_ce.prompts import ReverieCEPromptBuilder + builder = ReverieCEPromptBuilder() + memory = MagicMock() + memory.action_space = ["move_forward", "turn_left", "turn_right", "stop"] + actions = builder.parse_response("not json", memory) + assert actions == [] From 811d5f944d19c905192a09b703e148832228f65a Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 01:46:15 +0800 Subject: [PATCH 206/239] feat: add trajectory video renderer for post-eval analysis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds easi/analysis/ package with trajectory_video.py that generates per-episode MP4 videos showing robot paths on top-down maps alongside camera views — pure post-processing, no simulator dependencies. --- easi/analysis/__init__.py | 0 easi/analysis/trajectory_video.py | 399 ++++++++++++++++++++++++++++++ tests/test_analyze_trajectory.py | 222 +++++++++++++++++ 3 files changed, 621 insertions(+) create mode 100644 easi/analysis/__init__.py create mode 100644 easi/analysis/trajectory_video.py create mode 100644 tests/test_analyze_trajectory.py diff --git a/easi/analysis/__init__.py b/easi/analysis/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/analysis/trajectory_video.py b/easi/analysis/trajectory_video.py new file mode 100644 index 0000000..06eb3fc --- /dev/null +++ b/easi/analysis/trajectory_video.py @@ -0,0 +1,399 @@ +"""Trajectory video generator for post-evaluation analysis. + +Generates per-episode videos showing the robot's path on a top-down map +alongside the agent's camera view. No simulator dependencies — pure +post-processing from episode output directories. + +Requires: opencv-python-headless (optional dependency) +""" +from __future__ import annotations + +import json +import random +from pathlib import Path + +import numpy as np + +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + + +def _require_cv2(): + """Import cv2 with helpful error if missing.""" + try: + import cv2 + return cv2 + except ImportError: + raise ImportError( + "opencv-python-headless is required for trajectory video generation.\n" + "Install it with: pip install opencv-python-headless" + ) + + +def discover_episodes( + run_dir: Path | str, + filter_by: str | None = None, + sample_n: int | None = None, + seed: int = 42, +) -> list[Path]: + """Discover and filter episode directories in a run. + + Args: + run_dir: Path to evaluation run directory. + filter_by: "success" or "failed" to filter by outcome. + sample_n: Randomly sample N episodes after filtering. + seed: Random seed for sampling. + + Returns: + Sorted list of episode directory paths. + """ + run_dir = Path(run_dir) + episodes_dir = run_dir / "episodes" + if not episodes_dir.is_dir(): + logger.warning("No episodes/ directory found in %s", run_dir) + return [] + + episode_dirs = sorted( + d for d in episodes_dir.iterdir() + if d.is_dir() and (d / "trajectory.jsonl").exists() + ) + + if filter_by: + filtered = [] + for ep_dir in episode_dirs: + result_path = ep_dir / "result.json" + if not result_path.exists(): + continue + try: + result = json.loads(result_path.read_text()) + except (json.JSONDecodeError, OSError): + continue + success = result.get("success") + if filter_by == "success" and success == 1.0: + filtered.append(ep_dir) + elif filter_by == "failed" and success != 1.0: + filtered.append(ep_dir) + episode_dirs = filtered + + if sample_n is not None and sample_n < len(episode_dirs): + episode_dirs = random.Random(seed).sample(episode_dirs, sample_n) + episode_dirs.sort() + + return episode_dirs + + +def world_to_pixel( + world_x: float, world_z: float, map_meta: dict +) -> tuple[int, int]: + """Project world [x, z] to pixel coords using map metadata. + + Habitat-Sim uses Y-up coordinates. The floor plane is [x, z]. + """ + bounds_lower = map_meta["bounds_lower"] + mpp = map_meta["meters_per_pixel"] + px = int((world_x - bounds_lower[0]) / mpp) + pz = int((world_z - bounds_lower[2]) / mpp) + return px, pz + + +def world_to_pixel_fallback( + world_x: float, + world_z: float, + all_positions: list[list[float]], + canvas_size: tuple[int, int], + padding: int = 20, +) -> tuple[int, int]: + """Project world coords to pixel coords on a blank canvas. + + Computes bounding box from all positions and maps linearly. + """ + xs = [p[0] for p in all_positions] + zs = [p[1] for p in all_positions] + x_min, x_max = min(xs), max(xs) + z_min, z_max = min(zs), max(zs) + + # Avoid division by zero for single-point paths + x_range = max(x_max - x_min, 0.01) + z_range = max(z_max - z_min, 0.01) + + draw_w = canvas_size[0] - 2 * padding + draw_h = canvas_size[1] - 2 * padding + + px = int(padding + (world_x - x_min) / x_range * draw_w) + pz = int(padding + (world_z - z_min) / z_range * draw_h) + return px, pz + + +def _load_trajectory(ep_dir: Path) -> list[dict]: + """Load trajectory.jsonl entries.""" + path = ep_dir / "trajectory.jsonl" + entries = [] + with open(path) as f: + for line in f: + line = line.strip() + if line: + entries.append(json.loads(line)) + return entries + + +def _parse_positions(entries: list[dict]) -> list[list[float] | None]: + """Extract [x, z] positions from trajectory entries. + + Returns a list parallel to entries. Reset entry (step 0) has None + since its info is empty — start position comes from episode_meta.json. + """ + positions = [] + for entry in entries: + info = entry.get("info", {}) + raw = info.get("agent_position") + if raw is not None: + pos_3d = json.loads(raw) if isinstance(raw, str) else raw + positions.append([pos_3d[0], pos_3d[2]]) # [x, z] floor plane + else: + positions.append(None) + return positions + + +def render_episode_video( + ep_dir: Path, + output_path: Path, + fps: int = 4, +) -> None: + """Render a trajectory video for one episode. + + Args: + ep_dir: Path to episode directory containing trajectory.jsonl, step_*.png, etc. + output_path: Where to write the MP4 video. + fps: Frames per second. + """ + cv2 = _require_cv2() + from PIL import Image + + traj_path = ep_dir / "trajectory.jsonl" + if not traj_path.exists(): + logger.warning("No trajectory.jsonl in %s, skipping", ep_dir) + return + + entries = _load_trajectory(ep_dir) + if len(entries) < 2: + logger.warning("Trajectory too short in %s, skipping", ep_dir) + return + + positions = _parse_positions(entries) + + # Load episode metadata (start position, goal, gt_locations) + meta_path = ep_dir / "episode_meta.json" + ep_meta = json.loads(meta_path.read_text()) if meta_path.exists() else {} + start_pos = ep_meta.get("start_position") + goal_pos = ep_meta.get("goal_position") + gt_locations = ep_meta.get("gt_locations") + + # Start position as [x, z] + start_xz = [start_pos[0], start_pos[2]] if start_pos else None + + # Goal position as [x, z] + goal_xz = [goal_pos[0], goal_pos[2]] if goal_pos else None + + # GT path as [[x, z], ...] + gt_xz = [[p[0], p[2]] for p in gt_locations] if gt_locations else None + + # Load topdown map or create blank canvas + map_path = ep_dir / "topdown_map.png" + map_meta_path = ep_dir / "topdown_map_meta.json" + has_map = map_path.exists() and map_meta_path.exists() + + if has_map: + map_img = np.array(Image.open(map_path).convert("RGB")) + map_meta = json.loads(map_meta_path.read_text()) + else: + map_img = None + map_meta = None + + # Collect all valid [x, z] positions for bounding box fallback + all_xz = [p for p in positions if p is not None] + if start_xz: + all_xz.insert(0, start_xz) + if goal_xz: + all_xz.append(goal_xz) + + if not all_xz: + logger.warning("No positions found in %s, skipping", ep_dir) + return + + # Determine panel height from first step image + first_img_path = ep_dir / entries[0].get("rgb_path", "step_0000.png") + if first_img_path.exists(): + cam_h = np.array(Image.open(first_img_path)).shape[0] + else: + cam_h = 480 + panel_h = cam_h + + # Blank canvas fallback + if map_img is None: + map_img = np.full((panel_h, panel_h, 3), 40, dtype=np.uint8) + + # Resize map to match panel height + scale = panel_h / map_img.shape[0] + map_w = int(map_img.shape[1] * scale) + map_base = cv2.resize(map_img, (map_w, panel_h)) + + # Load result for final frame overlay + result_path = ep_dir / "result.json" + result = json.loads(result_path.read_text()) if result_path.exists() else {} + + # Helper: project world coord to map pixel + def to_pixel(x, z): + if map_meta: + px, pz = world_to_pixel(x, z, map_meta) + return int(px * scale), int(pz * scale) + else: + return world_to_pixel_fallback(x, z, all_xz, (map_w, panel_h)) + + # Set up video writer + output_path.parent.mkdir(parents=True, exist_ok=True) + fourcc = cv2.VideoWriter_fourcc(*"mp4v") + frame_w = map_w + cam_h # map_panel + camera_panel (camera is square) + writer = cv2.VideoWriter(str(output_path), fourcc, fps, (frame_w, panel_h)) + + if not writer.isOpened(): + logger.error("Failed to open video writer for %s", output_path) + return + + try: + path_so_far = [] + if start_xz: + path_so_far.append(start_xz) + + for i, entry in enumerate(entries): + # Update path + if positions[i] is not None: + path_so_far.append(positions[i]) + + # Draw map panel + map_frame = map_base.copy() + + # Draw GT path (dashed, faint) + if gt_xz and len(gt_xz) >= 2: + for j in range(len(gt_xz) - 1): + p1 = to_pixel(*gt_xz[j]) + p2 = to_pixel(*gt_xz[j + 1]) + # Dashed line: draw every other segment + if j % 2 == 0: + cv2.line(map_frame, p1, p2, (180, 180, 180), 1) + + # Draw agent path (solid, growing) + if len(path_so_far) >= 2: + for j in range(len(path_so_far) - 1): + p1 = to_pixel(*path_so_far[j]) + p2 = to_pixel(*path_so_far[j + 1]) + cv2.line(map_frame, p1, p2, (0, 200, 0), 2) + + # Draw start (blue circle) + if start_xz: + sp = to_pixel(*start_xz) + cv2.circle(map_frame, sp, 6, (255, 100, 100), -1) + + # Draw goal (red circle) + if goal_xz: + gp = to_pixel(*goal_xz) + cv2.circle(map_frame, gp, 6, (100, 100, 255), -1) + + # Draw current position (green arrowhead) + if path_so_far: + cp = to_pixel(*path_so_far[-1]) + cv2.circle(map_frame, cp, 5, (0, 255, 0), -1) + + # Step/distance text on map panel + step_text = f"Step: {entry.get('step', i)}" + cv2.putText(map_frame, step_text, (10, panel_h - 30), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1) + geo_dist = entry.get("info", {}).get("geo_distance") + if geo_dist: + dist_text = f"Dist: {geo_dist}m" + cv2.putText(map_frame, dist_text, (10, panel_h - 10), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1) + + # Load camera panel + rgb_name = entry.get("rgb_path", f"step_{i:04d}.png") + cam_path = ep_dir / rgb_name + if cam_path.exists(): + cam_img = np.array(Image.open(cam_path).convert("RGB")) + cam_img = cv2.resize(cam_img, (cam_h, panel_h)) + else: + logger.warning("Missing image %s, using placeholder", cam_path.name) + cam_img = np.full((panel_h, cam_h, 3), 30, dtype=np.uint8) + + # Action overlay on camera panel + action = entry.get("action", "") + if action: + cv2.putText(cam_img, action, (10, panel_h - 10), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1) + + # Final frame: overlay outcome + if i == len(entries) - 1 and result: + success = result.get("success") + if success == 1.0: + label = "SUCCESS" + color = (0, 255, 0) + elif success is not None: + label = "FAILURE" + color = (0, 0, 255) + else: + label = "NO GOAL" + color = (200, 200, 200) + cv2.putText(cam_img, label, (10, 30), + cv2.FONT_HERSHEY_SIMPLEX, 1.0, color, 2) + + # Concatenate panels + frame = np.concatenate([map_frame, cam_img], axis=1) + + # OpenCV uses BGR + writer.write(cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)) + finally: + writer.release() + + logger.info("Wrote %s (%d frames)", output_path, len(entries)) + + +def generate_trajectory_videos( + run_dir: str, + filter_by: str | None = None, + sample_n: int | None = None, + fps: int = 4, + seed: int = 42, +) -> None: + """Generate trajectory videos for all matching episodes in a run. + + Args: + run_dir: Path to evaluation run directory. + filter_by: "success" or "failed". + sample_n: Randomly sample N episodes. + fps: Video frame rate. + seed: Random seed for sampling. + """ + _require_cv2() + + run_path = Path(run_dir) + if not run_path.is_dir(): + logger.error("Run directory not found: %s", run_dir) + return + + episodes = discover_episodes(run_path, filter_by=filter_by, sample_n=sample_n, seed=seed) + if not episodes: + logger.info("No episodes found matching criteria in %s", run_dir) + return + + output_dir = run_path / "analysis" / "videos" + output_dir.mkdir(parents=True, exist_ok=True) + + logger.info("Generating %d trajectory videos in %s", len(episodes), output_dir) + + for ep_dir in episodes: + output_path = output_dir / f"{ep_dir.name}.mp4" + try: + render_episode_video(ep_dir, output_path, fps=fps) + except Exception: + logger.exception("Failed to render %s", ep_dir.name) + + logger.info("Done. Videos saved to %s", output_dir) diff --git a/tests/test_analyze_trajectory.py b/tests/test_analyze_trajectory.py new file mode 100644 index 0000000..8c4b498 --- /dev/null +++ b/tests/test_analyze_trajectory.py @@ -0,0 +1,222 @@ +"""Tests for trajectory video generation.""" +import json + +import numpy as np +import pytest +from pathlib import Path +from unittest.mock import patch + + +def _make_episode_dir(parent: Path, name: str, success: float | None = 1.0, num_steps: int = 3): + """Create a fake episode directory with minimal files.""" + ep_dir = parent / "episodes" / name + ep_dir.mkdir(parents=True, exist_ok=True) + + # result.json + result = {"success": success, "navigation_error": 2.5} + (ep_dir / "result.json").write_text(json.dumps(result)) + + # trajectory.jsonl + lines = [] + # Reset entry + lines.append(json.dumps({ + "step": 0, "type": "reset", + "rgb_path": "step_0000.png", + "agent_pose": [0, 0, 0, 0, 0, 0], + "reward": 0.0, "done": False, "info": {}, + })) + # Step entries with agent_position + for i in range(1, num_steps + 1): + pos = [float(i), 0.5, float(i) * 0.5] + lines.append(json.dumps({ + "step": i, "type": "step", + "action": "move_forward", + "rgb_path": f"step_{i:04d}.png", + "agent_pose": [0, 0, 0, 0, 0, 0], + "reward": 0.0, "done": i == num_steps, + "info": {"agent_position": json.dumps(pos), "geo_distance": "3.2"}, + })) + (ep_dir / "trajectory.jsonl").write_text("\n".join(lines) + "\n") + + # Fake step images (8x8 red squares) + from PIL import Image + for i in range(num_steps + 1): + img = Image.fromarray(np.full((8, 8, 3), 128, dtype=np.uint8)) + img.save(str(ep_dir / f"step_{i:04d}.png")) + + # episode_meta.json + meta = { + "start_position": [0.0, 0.5, 0.0], + "goal_position": [4.5, 0.5, 1.5], + } + (ep_dir / "episode_meta.json").write_text(json.dumps(meta)) + + return ep_dir + + +class TestDiscoverEpisodes: + def test_discover_all(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + _make_episode_dir(tmp_path, "000_1", success=1.0) + _make_episode_dir(tmp_path, "001_2", success=0.0) + eps = discover_episodes(tmp_path) + assert len(eps) == 2 + + def test_filter_success(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + _make_episode_dir(tmp_path, "000_1", success=1.0) + _make_episode_dir(tmp_path, "001_2", success=0.0) + _make_episode_dir(tmp_path, "002_3", success=None) + eps = discover_episodes(tmp_path, filter_by="success") + assert len(eps) == 1 + assert eps[0].name == "000_1" + + def test_filter_failed(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + _make_episode_dir(tmp_path, "000_1", success=1.0) + _make_episode_dir(tmp_path, "001_2", success=0.0) + _make_episode_dir(tmp_path, "002_3", success=None) + eps = discover_episodes(tmp_path, filter_by="failed") + assert len(eps) == 2 + + def test_sample(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + for i in range(10): + _make_episode_dir(tmp_path, f"{i:03d}_{i}", success=1.0) + eps = discover_episodes(tmp_path, sample_n=3, seed=42) + assert len(eps) == 3 + + def test_sample_larger_than_available(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + for i in range(3): + _make_episode_dir(tmp_path, f"{i:03d}_{i}", success=1.0) + eps = discover_episodes(tmp_path, sample_n=10, seed=42) + assert len(eps) == 3 # returns all, no error + + def test_sample_deterministic(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + for i in range(10): + _make_episode_dir(tmp_path, f"{i:03d}_{i}", success=1.0) + eps1 = discover_episodes(tmp_path, sample_n=3, seed=42) + eps2 = discover_episodes(tmp_path, sample_n=3, seed=42) + assert [e.name for e in eps1] == [e.name for e in eps2] + + def test_no_episodes_dir(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + eps = discover_episodes(tmp_path) + assert eps == [] + + def test_missing_result_json_skipped_when_filtering(self, tmp_path): + from easi.analysis.trajectory_video import discover_episodes + _make_episode_dir(tmp_path, "000_1", success=1.0) + # Create dir with trajectory.jsonl but no result.json + bad_dir = tmp_path / "episodes" / "001_bad" + bad_dir.mkdir(parents=True) + (bad_dir / "trajectory.jsonl").write_text('{"step":0}\n') + eps = discover_episodes(tmp_path, filter_by="success") + # 001_bad has trajectory.jsonl so it's discovered, but no result.json + # so it should be skipped during filtering + assert len(eps) == 1 + assert eps[0].name == "000_1" + + +class TestCoordinateProjection: + def test_world_to_pixel(self): + from easi.analysis.trajectory_video import world_to_pixel + meta = { + "bounds_lower": [0.0, 0.0, 0.0], + "bounds_upper": [10.0, 3.0, 8.0], + "meters_per_pixel": 0.1, + } + # Position at world origin -> pixel (0, 0) + px, py = world_to_pixel(0.0, 0.0, meta) + assert px == 0 + assert py == 0 + + # Position at (5.0, 4.0) -> pixel (50, 40) + px, py = world_to_pixel(5.0, 4.0, meta) + assert px == 50 + assert py == 40 + + def test_world_to_pixel_no_meta(self): + from easi.analysis.trajectory_video import world_to_pixel_fallback + positions = [[0.0, 0.0], [10.0, 8.0]] + canvas_size = (200, 200) + padding = 20 + px, py = world_to_pixel_fallback(5.0, 4.0, positions, canvas_size, padding) + assert padding <= px <= canvas_size[0] - padding + assert padding <= py <= canvas_size[1] - padding + + +class TestRenderEpisodeVideo: + def test_generates_mp4(self, tmp_path): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import render_episode_video + ep_dir = _make_episode_dir(tmp_path, "000_1", success=1.0, num_steps=3) + output_dir = tmp_path / "analysis" / "videos" + output_dir.mkdir(parents=True) + output_path = output_dir / "000_1.mp4" + render_episode_video(ep_dir, output_path, fps=4) + assert output_path.exists() + assert output_path.stat().st_size > 0 + + def test_generates_video_without_map(self, tmp_path): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import render_episode_video + ep_dir = _make_episode_dir(tmp_path, "000_1", success=1.0, num_steps=3) + # Remove topdown map files (should fall back to blank canvas) + (ep_dir / "topdown_map.png").unlink(missing_ok=True) + output_path = tmp_path / "out.mp4" + render_episode_video(ep_dir, output_path, fps=4) + assert output_path.exists() + + def test_skips_missing_trajectory(self, tmp_path, caplog): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import render_episode_video + ep_dir = tmp_path / "episodes" / "000_bad" + ep_dir.mkdir(parents=True) + output_path = tmp_path / "out.mp4" + render_episode_video(ep_dir, output_path, fps=4) + assert not output_path.exists() + + def test_skips_zero_step_episode(self, tmp_path): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import render_episode_video + ep_dir = tmp_path / "episodes" / "000_short" + ep_dir.mkdir(parents=True) + # Only reset entry, no steps + (ep_dir / "trajectory.jsonl").write_text( + json.dumps({"step": 0, "type": "reset", "rgb_path": "step_0000.png", + "agent_pose": [0,0,0,0,0,0], "reward": 0.0, "done": False, "info": {}}) + + "\n" + ) + output_path = tmp_path / "out.mp4" + render_episode_video(ep_dir, output_path, fps=4) + assert not output_path.exists() + + def test_handles_missing_step_images(self, tmp_path): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import render_episode_video + ep_dir = _make_episode_dir(tmp_path, "000_1", success=1.0, num_steps=3) + # Delete middle step image + (ep_dir / "step_0002.png").unlink() + output_path = tmp_path / "out.mp4" + render_episode_video(ep_dir, output_path, fps=4) + assert output_path.exists() # video still generated with placeholder + + +class TestCLI: + def test_analyze_trajectory_generates_videos(self, tmp_path): + cv2 = pytest.importorskip("cv2") + from easi.analysis.trajectory_video import generate_trajectory_videos + _make_episode_dir(tmp_path, "000_1", success=1.0, num_steps=3) + _make_episode_dir(tmp_path, "001_2", success=0.0, num_steps=2) + generate_trajectory_videos(str(tmp_path), filter_by="success", fps=4) + videos = list((tmp_path / "analysis" / "videos").glob("*.mp4")) + assert len(videos) == 1 + assert videos[0].name == "000_1.mp4" + + def test_analyze_trajectory_nonexistent_dir(self, tmp_path, caplog): + from easi.analysis.trajectory_video import generate_trajectory_videos + generate_trajectory_videos(str(tmp_path / "nonexistent")) + assert "not found" in caplog.text.lower() From 97cc3ef498a01f373580dfae3252a8eaad81f9cb Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 13:09:57 +0800 Subject: [PATCH 207/239] feat: add _get_topdown_map and _get_episode_meta hooks to BaseBridge --- easi/simulators/base_bridge.py | 39 ++++++++++++ tests/test_bridge_hooks.py | 109 +++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 tests/test_bridge_hooks.py diff --git a/easi/simulators/base_bridge.py b/easi/simulators/base_bridge.py index f7153ef..14bbff6 100644 --- a/easi/simulators/base_bridge.py +++ b/easi/simulators/base_bridge.py @@ -98,6 +98,22 @@ def _on_step(self, env, action_text): """Custom step logic. Default: call env.step(action_text).""" return env.step(action_text) + def _get_topdown_map(self): + """Return (rgb_array, metadata_dict) or None. + + Called once after _on_reset() inside the bridge subprocess. + Override in subclasses that support top-down map rendering. + """ + return None + + def _get_episode_meta(self): + """Return episode metadata dict or None. + + Called once after _on_reset(). Override to persist gt_locations, + goal_position, start_position, etc. for post-processing. + """ + return None + # --- Image saving --- def _save_image(self, image_array): @@ -133,6 +149,29 @@ def reset(self, reset_config): self.env = self._create_env(reset_config, self.simulator_kwargs) self.step_count = 0 obs = self._on_reset(self.env, reset_config) + + # Save topdown map and episode metadata (optional, non-fatal) + if self.episode_output_dir: + save_dir = Path(self.episode_output_dir) + try: + map_result = self._get_topdown_map() + if map_result is not None: + map_image, map_meta = map_result + from PIL import Image + Image.fromarray(map_image).save(str(save_dir / "topdown_map.png")) + with open(save_dir / "topdown_map_meta.json", "w") as f: + json.dump(map_meta, f) + except Exception: + logger.warning("Failed to save topdown map, continuing without it") + + try: + ep_meta = self._get_episode_meta() + if ep_meta is not None: + with open(save_dir / "episode_meta.json", "w") as f: + json.dump(ep_meta, f) + except Exception: + logger.warning("Failed to save episode metadata, continuing without it") + return self._make_response(obs) def step(self, action_text): diff --git a/tests/test_bridge_hooks.py b/tests/test_bridge_hooks.py new file mode 100644 index 0000000..8a6023d --- /dev/null +++ b/tests/test_bridge_hooks.py @@ -0,0 +1,109 @@ +"""Tests for BaseBridge topdown map and episode metadata hooks.""" +import json + +import numpy as np +import pytest +from pathlib import Path + +from easi.simulators.base_bridge import BaseBridge + + +class FakeEnv: + def reset(self): + return {"rgb": np.zeros((8, 8, 3), dtype=np.uint8)} + + def step(self, action): + return {"rgb": np.zeros((8, 8, 3), dtype=np.uint8)}, 0.0, False, {} + + def close(self): + pass + + +class BridgeWithMap(BaseBridge): + """Bridge that returns a topdown map.""" + + def _create_env(self, reset_config, simulator_kwargs): + return FakeEnv() + + def _extract_image(self, obs): + return obs["rgb"] + + def _get_topdown_map(self): + rgb = np.full((100, 120, 3), 200, dtype=np.uint8) + meta = { + "bounds_lower": [0.0, 0.0, 0.0], + "bounds_upper": [12.0, 3.0, 10.0], + "meters_per_pixel": 0.1, + "height": 1.25, + } + return rgb, meta + + def _get_episode_meta(self): + return { + "start_position": [1.0, 0.5, -2.0], + "goal_position": [4.5, 0.5, 1.2], + "gt_locations": [[1.0, 0.5, -2.0], [2.0, 0.5, -1.0], [4.5, 0.5, 1.2]], + } + + +class BridgeWithoutMap(BaseBridge): + """Bridge that returns no topdown map (default).""" + + def _create_env(self, reset_config, simulator_kwargs): + return FakeEnv() + + def _extract_image(self, obs): + return obs["rgb"] + + +class TestBaseBridgeHooksDefault: + def test_get_topdown_map_returns_none(self, tmp_path): + bridge = BridgeWithoutMap(workspace=tmp_path) + assert bridge._get_topdown_map() is None + + def test_get_episode_meta_returns_none(self, tmp_path): + bridge = BridgeWithoutMap(workspace=tmp_path) + assert bridge._get_episode_meta() is None + + def test_reset_no_map_files(self, tmp_path): + bridge = BridgeWithoutMap(workspace=tmp_path) + ep_dir = tmp_path / "episode_001" + ep_dir.mkdir() + bridge.episode_output_dir = str(ep_dir) + bridge.reset({}) + assert not (ep_dir / "topdown_map.png").exists() + assert not (ep_dir / "episode_meta.json").exists() + + +class TestBaseBridgeHooksWithMap: + def test_reset_saves_topdown_map(self, tmp_path): + bridge = BridgeWithMap(workspace=tmp_path) + ep_dir = tmp_path / "episode_001" + ep_dir.mkdir() + bridge.episode_output_dir = str(ep_dir) + bridge.reset({}) + assert (ep_dir / "topdown_map.png").exists() + assert (ep_dir / "topdown_map_meta.json").exists() + meta = json.loads((ep_dir / "topdown_map_meta.json").read_text()) + assert meta["meters_per_pixel"] == 0.1 + assert len(meta["bounds_lower"]) == 3 + + def test_reset_saves_episode_meta(self, tmp_path): + bridge = BridgeWithMap(workspace=tmp_path) + ep_dir = tmp_path / "episode_001" + ep_dir.mkdir() + bridge.episode_output_dir = str(ep_dir) + bridge.reset({}) + assert (ep_dir / "episode_meta.json").exists() + meta = json.loads((ep_dir / "episode_meta.json").read_text()) + assert meta["start_position"] == [1.0, 0.5, -2.0] + assert meta["goal_position"] == [4.5, 0.5, 1.2] + assert len(meta["gt_locations"]) == 3 + + def test_reset_no_output_dir_skips_save(self, tmp_path): + bridge = BridgeWithMap(workspace=tmp_path) + bridge.episode_output_dir = None + bridge.reset({}) + # No crash, no files saved outside workspace + map_files = list(tmp_path.glob("topdown_map.*")) + assert len(map_files) == 0 From 8629bf809fd4b87356a417a78bcf614999d716f8 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 13:17:06 +0800 Subject: [PATCH 208/239] feat: add topdown map and episode meta hooks to VLNCEBridge --- easi/tasks/vlnce_r2r/bridge.py | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/easi/tasks/vlnce_r2r/bridge.py b/easi/tasks/vlnce_r2r/bridge.py index 49dbca1..9399dec 100644 --- a/easi/tasks/vlnce_r2r/bridge.py +++ b/easi/tasks/vlnce_r2r/bridge.py @@ -115,6 +115,48 @@ def _extract_info(self, info): clean[k] = json.dumps([float(x) for x in v] if hasattr(v, '__iter__') else str(v)) return clean + def _get_topdown_map(self): + """Render habitat-sim navmesh as top-down RGB map.""" + if self._scene_sim is None: + return None + sim = self._scene_sim._sim + if not sim.pathfinder.is_loaded: + return None + + meters_per_pixel = 0.1 + height = float(sim.get_agent(0).get_state().position[1]) + try: + # habitat-sim 0.1.7 API: get_topdown_view(meters_per_pixel, height) + topdown = sim.pathfinder.get_topdown_view(meters_per_pixel, height) + except Exception: + logger.warning("Failed to get topdown map from pathfinder") + return None + + # Colorize: navigable=light gray, obstacle=dark gray + rgb = np.full((*topdown.shape, 3), 60, dtype=np.uint8) + rgb[topdown == 1] = [240, 240, 240] + + bounds = sim.pathfinder.get_bounds() + return rgb, { + "bounds_lower": [float(x) for x in bounds[0]], + "bounds_upper": [float(x) for x in bounds[1]], + "meters_per_pixel": meters_per_pixel, + "height": float(sim.get_agent(0).get_state().position[1]), + } + + def _get_episode_meta(self): + """Persist start position, goal, and ground truth path.""" + if self._scene_sim is None: + return None + meta = {} + agent_state = self._scene_sim._sim.get_agent(0).get_state() + meta["start_position"] = [float(x) for x in agent_state.position] + if self._scene_sim._gt_locations: + meta["gt_locations"] = self._scene_sim._gt_locations + if self._scene_sim._goal_position is not None: + meta["goal_position"] = [float(x) for x in self._scene_sim._goal_position] + return meta + def close(self): """Close the SceneSimulator.""" if self._scene_sim is not None: From 8d13aa66c7a71b43e5672069191858ad6afac99c Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 13:17:26 +0800 Subject: [PATCH 209/239] feat: add easi analyze trajectory CLI command --- easi/cli.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/easi/cli.py b/easi/cli.py index ba97aa8..20e9c7c 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -286,6 +286,32 @@ def build_parser() -> argparse.ArgumentParser: "--kill", action="store_true", help="Kill all found EASI processes" ) + # --- analyze command group --- + analyze_parser = subparsers.add_parser( + "analyze", help="Post-evaluation analysis tools", parents=[common] + ) + analyze_sub = analyze_parser.add_subparsers(dest="analyze_action") + + traj_parser = analyze_sub.add_parser( + "trajectory", help="Generate trajectory videos", parents=[common] + ) + traj_parser.add_argument( + "run_dir", type=str, help="Path to evaluation run directory" + ) + traj_parser.add_argument( + "--filter", choices=["success", "failed"], + help="Filter episodes by outcome", + ) + traj_parser.add_argument( + "--sample", type=int, help="Random sample N episodes" + ) + traj_parser.add_argument( + "--fps", type=int, default=4, help="Video frame rate (default: 4)" + ) + traj_parser.add_argument( + "--seed", type=int, default=42, help="Random seed for --sample (default: 42)" + ) + # --- llm-server command --- llm_parser = subparsers.add_parser( "llm-server", help="Start dummy LLM server", parents=[common] @@ -1005,6 +1031,19 @@ def _main() -> None: elif args.command == "model": cmd_model(args) + elif args.command == "analyze": + if args.analyze_action == "trajectory": + from easi.analysis.trajectory_video import generate_trajectory_videos + generate_trajectory_videos( + run_dir=args.run_dir, + filter_by=getattr(args, "filter", None), + sample_n=args.sample, + fps=args.fps, + seed=args.seed, + ) + else: + parser.parse_args(["analyze", "--help"]) + elif args.command == "llm-server": cmd_llm_server(args.host, args.port, args.mode, args.action_space) From df1af985b80102317fef8e5a4999d90c92c425bd Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 17:51:36 +0800 Subject: [PATCH 210/239] feat: add topdown map, episode meta, and agent position to EBHabitatBridge Add trajectory visualization hooks to the EB-Habitat bridge using habitat-sim 0.3.0 API (articulated_agent.base_pos). Includes topdown map rendering via pathfinder, start position persistence, and per-step agent position tracking in trajectory info. Co-Authored-By: Claude Opus 4.6 --- easi/tasks/ebhabitat/bridge.py | 61 +++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py index 5b83d71..6ce40e7 100644 --- a/easi/tasks/ebhabitat/bridge.py +++ b/easi/tasks/ebhabitat/bridge.py @@ -27,6 +27,9 @@ sys.path.insert(0, str(_repo_root)) from easi.simulators.base_bridge import BaseBridge +from easi.utils.logging import get_logger + +logger = get_logger(__name__) class EBHabitatBridge(BaseBridge): @@ -94,8 +97,15 @@ def _extract_image(self, obs): from easi.tasks.ebhabitat.vendor.utils import observations_to_image return observations_to_image(obs, "head_rgb") + def _get_sim(self): + """Access the underlying habitat-sim Simulator instance.""" + try: + return self.env.env.env._env.task._sim + except AttributeError: + return None + def _extract_info(self, info): - return { + clean = { "task_success": float(info.get("task_success", 0.0)), "task_progress": float(info.get("task_progress", 0.0)), "subgoal_reward": float(info.get("subgoal_reward", 0.0)), @@ -103,6 +113,55 @@ def _extract_info(self, info): "feedback": str(info.get("env_feedback", "")), "action_id": int(info.get("action_id", -1)), } + # Add agent position for trajectory visualization + sim = self._get_sim() + if sim is not None: + try: + agent = sim.get_agent_data(0).articulated_agent + pos = agent.base_pos + clean["agent_position"] = json.dumps([float(pos[0]), float(pos[1]), float(pos[2])]) + except Exception: + pass + return clean + + def _get_topdown_map(self): + """Render habitat-sim navmesh as top-down RGB map.""" + sim = self._get_sim() + if sim is None or not sim.pathfinder.is_loaded: + return None + + meters_per_pixel = 0.1 + try: + agent = sim.get_agent_data(0).articulated_agent + height = float(agent.base_pos[1]) + topdown = sim.pathfinder.get_topdown_view(meters_per_pixel, height) + except Exception: + logger.warning("Failed to get topdown map from pathfinder") + return None + + # Colorize: navigable=light gray, obstacle=dark gray + rgb = np.full((*topdown.shape, 3), 60, dtype=np.uint8) + rgb[topdown == 1] = [240, 240, 240] + + bounds = sim.pathfinder.get_bounds() + return rgb, { + "bounds_lower": [float(x) for x in bounds[0]], + "bounds_upper": [float(x) for x in bounds[1]], + "meters_per_pixel": meters_per_pixel, + "height": height, + } + + def _get_episode_meta(self): + """Persist start position for trajectory visualization.""" + sim = self._get_sim() + if sim is None: + return None + try: + agent = sim.get_agent_data(0).articulated_agent + pos = agent.base_pos + return {"start_position": [float(pos[0]), float(pos[1]), float(pos[2])]} + except Exception: + return None def _make_response(self, obs, reward=0.0, done=False, info=None): """Override to include dynamic action space in metadata.""" From 96bc896041c6b1163aff123442e997b40bb7ca4d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Fri, 13 Mar 2026 21:49:20 +0800 Subject: [PATCH 211/239] fix: correct sim access chain in EBHabitatBridge (was missing one .env level) --- easi/tasks/ebhabitat/bridge.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/easi/tasks/ebhabitat/bridge.py b/easi/tasks/ebhabitat/bridge.py index 6ce40e7..2e072e4 100644 --- a/easi/tasks/ebhabitat/bridge.py +++ b/easi/tasks/ebhabitat/bridge.py @@ -98,9 +98,13 @@ def _extract_image(self, obs): return observations_to_image(obs, "head_rgb") def _get_sim(self): - """Access the underlying habitat-sim Simulator instance.""" + """Access the underlying habitat-sim Simulator instance. + + Chain: bridge.env (EBHabEnv) -> .env (gym wrapper) -> .env -> .env + -> ._env (HabitatEnv) -> .task._sim + """ try: - return self.env.env.env._env.task._sim + return self.env.env.env.env._env.task._sim except AttributeError: return None From c9268d78de8f4fa5c61e6128dceb698ded85a2e5 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sat, 14 Mar 2026 11:10:20 +0800 Subject: [PATCH 212/239] feat: use progress bar for trajectory video generation --- easi/analysis/trajectory_video.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/easi/analysis/trajectory_video.py b/easi/analysis/trajectory_video.py index 06eb3fc..9ea1b32 100644 --- a/easi/analysis/trajectory_video.py +++ b/easi/analysis/trajectory_video.py @@ -353,7 +353,7 @@ def to_pixel(x, z): finally: writer.release() - logger.info("Wrote %s (%d frames)", output_path, len(entries)) + logger.trace("Wrote %s (%d frames)", output_path, len(entries)) def generate_trajectory_videos( @@ -389,11 +389,17 @@ def generate_trajectory_videos( logger.info("Generating %d trajectory videos in %s", len(episodes), output_dir) - for ep_dir in episodes: - output_path = output_dir / f"{ep_dir.name}.mp4" - try: - render_episode_video(ep_dir, output_path, fps=fps) - except Exception: - logger.exception("Failed to render %s", ep_dir.name) + from easi.utils.progress import ProgressBar - logger.info("Done. Videos saved to %s", output_dir) + failed = 0 + with ProgressBar(total=len(episodes)) as bar: + for i, ep_dir in enumerate(episodes): + output_path = output_dir / f"{ep_dir.name}.mp4" + try: + render_episode_video(ep_dir, output_path, fps=fps) + except Exception: + logger.exception("Failed to render %s", ep_dir.name) + failed += 1 + bar.update(completed=i + 1, failed=failed) + + logger.info("Done. %d videos saved to %s", len(episodes) - failed, output_dir) From fc6ed05577c904c75ca6c62c5805304aa9f8b06d Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Sun, 15 Mar 2026 11:57:15 +0800 Subject: [PATCH 213/239] feat: replace --max-episodes with --episodes filter (IDs, ranges, mixed) --- docs/cli-reference.md | 4 +- easi/cli.py | 12 ++- easi/evaluation/episode_filter.py | 119 ++++++++++++++++++++++++++ easi/evaluation/parallel_runner.py | 5 +- easi/evaluation/runner.py | 9 +- tests/test_e2e_evaluation.py | 44 +++++----- tests/test_episode_filter.py | 132 +++++++++++++++++++++++++++++ tests/test_evaluation_runner.py | 16 ++-- tests/test_metrics.py | 2 +- tests/test_parallel_runner.py | 10 +-- 10 files changed, 308 insertions(+), 45 deletions(-) create mode 100644 easi/evaluation/episode_filter.py create mode 100644 tests/test_episode_filter.py diff --git a/docs/cli-reference.md b/docs/cli-reference.md index 8b06dd9..ed30fb2 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -63,7 +63,7 @@ easi start [TASK ...] [options] | Option | Description | |---|---| | `--num-parallel N` | Parallel simulator instances (default: 1). Works with any backend. | -| `--max-episodes N` | Max episodes to run (default: all) | +| `--episodes FILTER` | Episode filter: IDs (`2,5,7`), ranges (`10:20`), or `:N` for first N (default: all) | | `--seed SEED` | Random seed for agent reproducibility | | `--render-platform PLATFORM` | Rendering platform override (default: simulator's preference). See [Render Platforms](#render-platforms). | @@ -127,7 +127,7 @@ easi start ebalfred_base --agent react --backend openai --model gpt-4o \ --llm-kwargs '{"temperature": 0.7, "max_tokens": 500}' # Limit episodes -easi start ebalfred_base --agent dummy --max-episodes 5 --seed 42 +easi start ebalfred_base --agent dummy --episodes :5 --seed 42 # Parallel evaluation (API backend) easi start ebalfred_base --agent react --backend openai --model gpt-4o \ diff --git a/easi/cli.py b/easi/cli.py index 20e9c7c..17cafea 100644 --- a/easi/cli.py +++ b/easi/cli.py @@ -176,7 +176,11 @@ def build_parser() -> argparse.ArgumentParser: default=None, help="Directory for downloading/caching datasets (default: ./datasets)", ) - start_parser.add_argument("--max-episodes", type=int, default=None) + start_parser.add_argument( + "--episodes", type=str, default=None, + help="Episode filter: IDs (2,5,7), ranges (10:20), or mixed (2,10:20,40). " + "Use :N for first N episodes.", + ) start_parser.add_argument( "--llm-url", type=str, default=None, dest="llm_base_url", help="LLM server URL" ) @@ -693,6 +697,12 @@ def cmd_start(args): logger.error("Resume directory has no config.json: %s", resume_dir) sys.exit(1) saved = _json.loads(config_path.read_text()).get("cli_options", {}) + # Migrate legacy max_episodes -> episodes + if "max_episodes" in saved and "episodes" not in saved: + old_val = saved.pop("max_episodes") + if isinstance(old_val, int) and old_val > 0: + saved["episodes"] = f":{old_val}" + saved.pop("max_episodes", None) # Saved values fill gaps; explicit CLI args win run_kwargs = {**saved, **raw} # If no task was given on CLI, pull from saved config diff --git a/easi/evaluation/episode_filter.py b/easi/evaluation/episode_filter.py new file mode 100644 index 0000000..691fb5d --- /dev/null +++ b/easi/evaluation/episode_filter.py @@ -0,0 +1,119 @@ +"""Parse and apply ``--episodes`` filter expressions. + +Syntax (comma-separated tokens, freely mixed):: + + :N index slice — first N episodes + M:N index slice — episodes at indices M..N-1 + M: index slice — from index M onwards + 42 episode ID "42" + +Examples:: + + --episodes :10 first 10 (replaces old --max-episodes) + --episodes 30:40 index range 30-39 + --episodes 2,5,7 episode IDs 2, 5, 7 + --episodes 2,10:20,40 episode ID 2 + range 10-19 + episode ID 40 + +Semantics: +- All selections are unioned and deduplicated. +- Original dataset order is preserved. +- If a requested episode ID is not found, raises ValueError. +""" + +from __future__ import annotations + + +def parse_episodes_flag(value: str) -> tuple[list[tuple[int | None, int | None]], list[str]]: + """Parse ``--episodes`` value into index slices and episode IDs. + + Returns: + (slices, ids) where slices is a list of (start, stop) tuples + and ids is a list of episode ID strings. + """ + slices: list[tuple[int | None, int | None]] = [] + ids: list[str] = [] + + for token in value.split(","): + token = token.strip() + if not token: + continue + + if ":" in token: + parts = token.split(":", 1) + start_s, stop_s = parts[0].strip(), parts[1].strip() + start = int(start_s) if start_s else None + stop = int(stop_s) if stop_s else None + + # Validate + if start is not None and stop is not None and start >= stop: + raise ValueError( + f"Invalid range '{token}': start ({start}) must be less than stop ({stop})" + ) + if start is not None and start < 0: + raise ValueError(f"Invalid range '{token}': negative index") + if stop is not None and stop < 0: + raise ValueError(f"Invalid range '{token}': negative index") + + slices.append((start, stop)) + else: + ids.append(token) + + return slices, ids + + +def filter_episodes( + episodes: list[dict], + episodes_flag: str, +) -> list[dict]: + """Filter an episode list according to an ``--episodes`` expression. + + Args: + episodes: Full episode list from task.load_episodes(). + episodes_flag: Raw ``--episodes`` CLI value. + + Returns: + Filtered episode list in original order. + + Raises: + ValueError: If a requested episode ID is not found, or the + expression is invalid. + """ + slices, ids = parse_episodes_flag(episodes_flag) + + if not slices and not ids: + raise ValueError("Empty --episodes value") + + # Collect selected indices (as a set for deduplication) + selected_indices: set[int] = set() + + # Apply index slices + for start, stop in slices: + s = start if start is not None else 0 + e = stop if stop is not None else len(episodes) + # Clamp to valid range + s = max(0, min(s, len(episodes))) + e = max(0, min(e, len(episodes))) + for i in range(s, e): + selected_indices.add(i) + + # Apply episode ID selections + if ids: + # Build ID -> index map + id_to_indices: dict[str, int] = {} + for i, ep in enumerate(episodes): + ep_id = str(ep.get("episode_id", "")) + # First occurrence wins (IDs should be unique, but be safe) + if ep_id not in id_to_indices: + id_to_indices[ep_id] = i + + missing = [eid for eid in ids if eid not in id_to_indices] + if missing: + raise ValueError( + f"Episode IDs not found in dataset: {', '.join(missing)}" + ) + + for eid in ids: + selected_indices.add(id_to_indices[eid]) + + # Return in original order + return [episodes[i] for i in sorted(selected_indices)] diff --git a/easi/evaluation/parallel_runner.py b/easi/evaluation/parallel_runner.py index 323fcf3..f7aaf0a 100644 --- a/easi/evaluation/parallel_runner.py +++ b/easi/evaluation/parallel_runner.py @@ -159,8 +159,9 @@ def run(self) -> list[dict]: if self.refresh_data: task.download_dataset(force=True) episodes = task.load_episodes() - if self.max_episodes is not None: - episodes = episodes[: self.max_episodes] + if self.episodes_filter is not None: + from easi.evaluation.episode_filter import filter_episodes + episodes = filter_episodes(episodes, self.episodes_filter) logger.trace( "Task loaded. %d episodes, simulator_key=%s", len(episodes), task.simulator_key, diff --git a/easi/evaluation/runner.py b/easi/evaluation/runner.py index fc4d6a5..2b85ed8 100644 --- a/easi/evaluation/runner.py +++ b/easi/evaluation/runner.py @@ -53,7 +53,7 @@ def __init__( agent_type: str = "react", output_dir: Path | str = "./logs", data_dir: Path | str = "./datasets", - max_episodes: int | None = None, + episodes: str | None = None, llm_base_url: str | None = None, agent_seed: int | None = None, backend: str | None = None, @@ -80,7 +80,7 @@ def __init__( self.agent_type = agent_type self.output_dir = Path(output_dir) self.data_dir = Path(data_dir) - self.max_episodes = max_episodes + self.episodes_filter = episodes self.llm_base_url = llm_base_url self.agent_seed = agent_seed self.backend = backend @@ -186,8 +186,9 @@ def run(self) -> list[dict]: if self.refresh_data: task.download_dataset(force=True) episodes = task.load_episodes() - if self.max_episodes is not None: - episodes = episodes[: self.max_episodes] + if self.episodes_filter is not None: + from easi.evaluation.episode_filter import filter_episodes + episodes = filter_episodes(episodes, self.episodes_filter) # Handle resume: load completed results and find start point if self.resume_dir: diff --git a/tests/test_e2e_evaluation.py b/tests/test_e2e_evaluation.py index 8a53b21..b21398d 100644 --- a/tests/test_e2e_evaluation.py +++ b/tests/test_e2e_evaluation.py @@ -40,13 +40,13 @@ def test_dummy_full_run(self, tmp_path): assert "metrics" in summary assert "success_rate" in summary["metrics"] or "avg_success" in summary["metrics"] - def test_max_episodes_limit(self, tmp_path): - """Verify max_episodes limits the run.""" + def test_episodes_filter_limit(self, tmp_path): + """Verify --episodes :N limits the run.""" runner = EvaluationRunner( task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", - max_episodes=1, + episodes=":1", ) results = runner.run() assert len(results) == 1 @@ -58,7 +58,7 @@ def test_per_episode_files(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=2, + episodes=":2", ) runner.run() @@ -80,7 +80,7 @@ def test_episode_metrics_structure(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", - max_episodes=1, + episodes=":1", ) results = runner.run() @@ -117,7 +117,7 @@ def test_deterministic_with_seed(self, tmp_path): agent_type="dummy", output_dir=tmp_path / "a", agent_seed=123, - max_episodes=2, + episodes=":2", ).run() results_b = EvaluationRunner( @@ -125,7 +125,7 @@ def test_deterministic_with_seed(self, tmp_path): agent_type="dummy", output_dir=tmp_path / "b", agent_seed=123, - max_episodes=2, + episodes=":2", ).run() for a, b in zip(results_a, results_b): @@ -163,7 +163,7 @@ def test_config_json_saved(self, tmp_path): agent_type="dummy", output_dir=output_dir, agent_seed=42, - max_episodes=1, + episodes=":1", ) runner.run() @@ -172,7 +172,7 @@ def test_config_json_saved(self, tmp_path): assert config["cli_options"]["task_name"] == "dummy_task" assert config["cli_options"]["agent_type"] == "dummy" assert config["cli_options"]["agent_seed"] == 42 - assert config["cli_options"]["max_episodes"] == 1 + assert config["cli_options"]["episodes"] == ":1" assert "run_id" in config # Task YAML config is included assert "task_config" in config @@ -185,7 +185,7 @@ def test_trajectory_jsonl_format(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=1, + episodes=":1", ) runner.run() @@ -216,7 +216,7 @@ def test_images_saved_to_episode_dir(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=1, + episodes=":1", ) runner.run() @@ -238,7 +238,7 @@ def test_max_retries_stored(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=5, - max_episodes=1, + episodes=":1", ) assert runner.max_retries == 5 runner.run() @@ -368,7 +368,7 @@ def test_retry_on_episode_failure(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=3, - max_episodes=1, + episodes=":1", ) call_count = {"n": 0} @@ -397,7 +397,7 @@ def test_retry_exhausted_records_failure(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=2, - max_episodes=1, + episodes=":1", ) with patch.object( @@ -421,7 +421,7 @@ def test_retry_clears_partial_files(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=2, - max_episodes=1, + episodes=":1", ) original_run_episode = runner._run_episode @@ -460,7 +460,7 @@ def test_retry_continues_to_next_episode(self, tmp_path): agent_type="dummy", output_dir=output_dir, max_retries=1, - max_episodes=2, + episodes=":2", ) original_run_episode = runner._run_episode @@ -498,15 +498,15 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=2, + episodes=":2", agent_seed=42, ) runner.run() run_dir = _find_run_dir(output_dir) - # Resume with higher max_episodes to complete remaining - # Saved config has max_episodes=2; override to 3 to run all. + # Resume with higher episodes limit to complete remaining + # Saved config has episodes=":2"; override to :3 to run all. args = Namespace( command="start", verbosity="INFO", @@ -515,7 +515,7 @@ def test_resume_loads_config_from_run_dir(self, tmp_path): agent_type="dummy", output_dir=None, data_dir=None, - max_episodes=3, + episodes=":3", llm_base_url=None, agent_seed=None, backend=None, @@ -623,7 +623,7 @@ def test_sequential_single_task_via_flag(self, tmp_path): agent_type="dummy", output_dir=str(output_dir), data_dir=None, - max_episodes=1, + episodes=":1", llm_base_url=None, agent_seed=None, backend=None, @@ -654,7 +654,7 @@ def test_resume_blocked_with_multi_task(self): agent_type="dummy", output_dir="./logs", data_dir=None, - max_episodes=1, + episodes=":1", llm_base_url=None, agent_seed=None, backend=None, diff --git a/tests/test_episode_filter.py b/tests/test_episode_filter.py new file mode 100644 index 0000000..dae8b90 --- /dev/null +++ b/tests/test_episode_filter.py @@ -0,0 +1,132 @@ +"""Tests for episode filter parsing and application.""" + +import pytest + +from easi.evaluation.episode_filter import filter_episodes, parse_episodes_flag + + +EPISODES = [ + {"episode_id": "10"}, + {"episode_id": "20"}, + {"episode_id": "30"}, + {"episode_id": "40"}, + {"episode_id": "50"}, +] + + +class TestParseEpisodesFlag: + def test_single_id(self): + slices, ids = parse_episodes_flag("10") + assert slices == [] + assert ids == ["10"] + + def test_multiple_ids(self): + slices, ids = parse_episodes_flag("10,20,30") + assert slices == [] + assert ids == ["10", "20", "30"] + + def test_range(self): + slices, ids = parse_episodes_flag("1:3") + assert slices == [(1, 3)] + assert ids == [] + + def test_open_start(self): + slices, ids = parse_episodes_flag(":3") + assert slices == [(None, 3)] + assert ids == [] + + def test_open_end(self): + slices, ids = parse_episodes_flag("2:") + assert slices == [(2, None)] + assert ids == [] + + def test_mixed(self): + slices, ids = parse_episodes_flag("10,1:3,50") + assert slices == [(1, 3)] + assert ids == ["10", "50"] + + def test_inverted_range_error(self): + with pytest.raises(ValueError, match="start.*must be less than stop"): + parse_episodes_flag("5:3") + + def test_equal_range_error(self): + with pytest.raises(ValueError, match="start.*must be less than stop"): + parse_episodes_flag("3:3") + + def test_negative_index_error(self): + with pytest.raises(ValueError, match="negative"): + parse_episodes_flag("-1:3") + + +class TestFilterEpisodes: + def test_first_n(self): + result = filter_episodes(EPISODES, ":2") + assert len(result) == 2 + assert result[0]["episode_id"] == "10" + assert result[1]["episode_id"] == "20" + + def test_range(self): + result = filter_episodes(EPISODES, "1:3") + assert len(result) == 2 + assert result[0]["episode_id"] == "20" + assert result[1]["episode_id"] == "30" + + def test_open_end(self): + result = filter_episodes(EPISODES, "3:") + assert len(result) == 2 + assert result[0]["episode_id"] == "40" + assert result[1]["episode_id"] == "50" + + def test_episode_ids(self): + result = filter_episodes(EPISODES, "20,40") + assert len(result) == 2 + assert result[0]["episode_id"] == "20" + assert result[1]["episode_id"] == "40" + + def test_mixed_ids_and_range(self): + result = filter_episodes(EPISODES, "50,0:2") + assert len(result) == 3 + # Original order: index 0, index 1, then index 4 + assert result[0]["episode_id"] == "10" + assert result[1]["episode_id"] == "20" + assert result[2]["episode_id"] == "50" + + def test_dedup_id_in_range(self): + """Episode ID that also falls within a range is not duplicated.""" + result = filter_episodes(EPISODES, "20,0:3") + assert len(result) == 3 + assert [r["episode_id"] for r in result] == ["10", "20", "30"] + + def test_overlapping_ranges(self): + result = filter_episodes(EPISODES, "0:3,2:5") + assert len(result) == 5 + assert [r["episode_id"] for r in result] == ["10", "20", "30", "40", "50"] + + def test_preserves_original_order(self): + """IDs specified in reverse order still come out in dataset order.""" + result = filter_episodes(EPISODES, "50,30,10") + assert [r["episode_id"] for r in result] == ["10", "30", "50"] + + def test_missing_id_errors(self): + with pytest.raises(ValueError, match="not found.*999"): + filter_episodes(EPISODES, "999") + + def test_multiple_missing_ids_errors(self): + with pytest.raises(ValueError, match="not found"): + filter_episodes(EPISODES, "999,888") + + def test_empty_value_errors(self): + with pytest.raises(ValueError, match="Empty"): + filter_episodes(EPISODES, "") + + def test_range_beyond_bounds_clamps(self): + """Range extending past the list is clamped, not an error.""" + result = filter_episodes(EPISODES, "3:100") + assert len(result) == 2 + assert result[0]["episode_id"] == "40" + assert result[1]["episode_id"] == "50" + + def test_single_episode_by_id(self): + result = filter_episodes(EPISODES, "30") + assert len(result) == 1 + assert result[0]["episode_id"] == "30" diff --git a/tests/test_evaluation_runner.py b/tests/test_evaluation_runner.py index 81b104b..ebc6d00 100644 --- a/tests/test_evaluation_runner.py +++ b/tests/test_evaluation_runner.py @@ -22,7 +22,7 @@ def test_run_single_episode(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=tmp_path / "logs", - max_episodes=1, + episodes=":1", ) results = runner.run() @@ -48,7 +48,7 @@ def test_results_saved_to_disk(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=1, + episodes=":1", ) runner.run() @@ -94,7 +94,7 @@ def test_cli_options_contains_all_init_args(self): # All non-excluded init params should be present expected_keys = { "task_name", "agent_type", "output_dir", "data_dir", - "max_episodes", "llm_base_url", "agent_seed", "backend", + "episodes", "llm_base_url", "agent_seed", "backend", "model", "port", "llm_kwargs_raw", "max_retries", "render_platform", "llm_instances", "llm_gpus", "sim_gpus", @@ -120,7 +120,7 @@ def test_cli_options_captures_raw_values(self): backend="openai", model="gpt-4o", port=9090, - max_episodes=5, + episodes=":5", max_retries=2, ) opts = runner._cli_options @@ -131,7 +131,7 @@ def test_cli_options_captures_raw_values(self): assert opts["backend"] == "openai" assert opts["model"] == "gpt-4o" assert opts["port"] == 9090 - assert opts["max_episodes"] == 5 + assert opts["episodes"] == ":5" assert opts["max_retries"] == 2 def test_cli_options_defaults(self): @@ -144,7 +144,7 @@ def test_cli_options_defaults(self): assert opts["model"] == "default" assert opts["port"] == 8080 assert opts["max_retries"] == 3 - assert opts["max_episodes"] is None + assert opts["episodes"] is None assert opts["llm_base_url"] is None assert opts["agent_seed"] is None assert opts["backend"] is None @@ -168,7 +168,7 @@ def test_config_json_uses_cli_options(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=output_dir, - max_episodes=1, + episodes=":1", model="test-model", ) runner.run() @@ -179,7 +179,7 @@ def test_config_json_uses_cli_options(self, tmp_path): assert opts["task_name"] == "dummy_task" assert opts["agent_type"] == "dummy" assert opts["model"] == "test-model" - assert opts["max_episodes"] == 1 + assert opts["episodes"] == ":1" # Session-specific params should NOT be in config assert "resume_dir" not in opts assert "redownload" not in opts diff --git a/tests/test_metrics.py b/tests/test_metrics.py index fb871da..7818802 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -166,7 +166,7 @@ def test_metrics_nested_in_summary(self, tmp_path): task_name="dummy_task", agent_type="dummy", output_dir=str(tmp_path), - max_episodes=2, + episodes=":2", ) runner.run() diff --git a/tests/test_parallel_runner.py b/tests/test_parallel_runner.py index 5b4a640..feb6adb 100644 --- a/tests/test_parallel_runner.py +++ b/tests/test_parallel_runner.py @@ -82,7 +82,7 @@ def test_parallel_dummy_produces_results(self, tmp_path): num_parallel=2, agent_type="dummy", output_dir=str(tmp_path), - max_episodes=3, + episodes=":3", ) results = runner.run() @@ -112,7 +112,7 @@ def test_parallel_single_episode(self, tmp_path): num_parallel=2, agent_type="dummy", output_dir=str(tmp_path), - max_episodes=1, + episodes=":1", ) results = runner.run() assert len(results) == 1 @@ -126,7 +126,7 @@ def test_config_json_records_num_parallel(self, tmp_path): num_parallel=3, agent_type="dummy", output_dir=str(tmp_path), - max_episodes=1, + episodes=":1", ) runner.run() @@ -143,7 +143,7 @@ def test_episode_dirs_created(self, tmp_path): num_parallel=2, agent_type="dummy", output_dir=str(tmp_path), - max_episodes=2, + episodes=":2", ) runner.run() @@ -297,7 +297,7 @@ def test_parallel_resume_basic(self, tmp_path): runner1 = ParallelRunner( task_name="dummy_task", num_parallel=2, agent_type="dummy", output_dir=str(tmp_path), - max_episodes=1, + episodes=":1", ) results1 = runner1.run() assert len(results1) == 1 From 465d35d6e8fd34fe1b81af5319e3189c77c3150b Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 18 Mar 2026 17:05:07 +0800 Subject: [PATCH 214/239] feat: vLLM v0.17+ compat and InternVL3 custom model server --- .gitignore | 2 + easi/llm/models/internvl3/__init__.py | 0 easi/llm/models/internvl3/manifest.yaml | 11 + easi/llm/models/internvl3/model.py | 315 ++++++++++++++++++++++++ easi/llm/server_manager.py | 33 ++- easi/llm/utils.py | 4 +- easi/tasks/ebnavigation/_base.yaml | 1 + tests/test_server_manager.py | 4 +- 8 files changed, 357 insertions(+), 13 deletions(-) create mode 100644 easi/llm/models/internvl3/__init__.py create mode 100644 easi/llm/models/internvl3/manifest.yaml create mode 100644 easi/llm/models/internvl3/model.py diff --git a/.gitignore b/.gitignore index 7e7e712..f10dba1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ __pycache__/ yolo11n.pt .tmp* /scripts +.sisyphus/ +.claude/ diff --git a/easi/llm/models/internvl3/__init__.py b/easi/llm/models/internvl3/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/easi/llm/models/internvl3/manifest.yaml b/easi/llm/models/internvl3/manifest.yaml new file mode 100644 index 0000000..29a03b5 --- /dev/null +++ b/easi/llm/models/internvl3/manifest.yaml @@ -0,0 +1,11 @@ +name: internvl3 +display_name: "InternVL3" +description: > + InternVL3 vision-language model family (1B, 2B, 8B, 78B, etc.). + Supports image understanding with OpenAI-format messages. + Requires: pip install transformers torch torchvision pillow + Recommended: pip install flash-attn (for flash_attention_2) +model_class: "easi.llm.models.internvl3.model.InternVL3Model" +default_kwargs: + dtype: "bfloat16" + attn_implementation: "flash_attention_2" diff --git a/easi/llm/models/internvl3/model.py b/easi/llm/models/internvl3/model.py new file mode 100644 index 0000000..054f23d --- /dev/null +++ b/easi/llm/models/internvl3/model.py @@ -0,0 +1,315 @@ +"""InternVL3 custom model server for EASI. + +Loads InternVL3 models via transformers and serves them through the +EASI custom backend HTTP server. Uses the model's built-in ``.chat()`` +method which handles chat template formatting and image preprocessing +internally. + +Usage:: + + easi start --backend custom --model internvl3 \\ + --llm-kwargs '{"model_path": "OpenGVLab/InternVL3-8B"}' +""" +from __future__ import annotations + +from typing import Any + +import torchvision.transforms as T +from PIL import Image +from torchvision.transforms.functional import InterpolationMode + +from easi.llm.models.base_model_server import BaseModelServer +from easi.llm.models.helpers import extract_images +from easi.utils.logging import get_logger + +logger = get_logger(__name__) + +_ALLOWED_DTYPES = {"bfloat16", "float16", "float32", "auto"} + +IMAGENET_MEAN = (0.485, 0.456, 0.406) +IMAGENET_STD = (0.229, 0.224, 0.225) + + +# --------------------------------------------------------------------------- +# Image preprocessing (InternVL3 dynamic resolution tiling) +# --------------------------------------------------------------------------- + +def _build_transform(input_size: int) -> T.Compose: + return T.Compose([ + T.Lambda(lambda img: img.convert("RGB") if img.mode != "RGB" else img), + T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC), + T.ToTensor(), + T.Normalize(mean=IMAGENET_MEAN, std=IMAGENET_STD), + ]) + + +def _find_closest_aspect_ratio( + aspect_ratio: float, + target_ratios: list[tuple[int, int]], + width: int, + height: int, + image_size: int, +) -> tuple[int, int]: + best = (1, 1) + best_diff = float("inf") + area = width * height + for ratio in target_ratios: + target_ar = ratio[0] / ratio[1] + diff = abs(aspect_ratio - target_ar) + if diff < best_diff or (diff == best_diff and area > 0.5 * image_size * image_size * ratio[0] * ratio[1]): + best_diff = diff + best = ratio + return best + + +def _dynamic_preprocess( + image: Image.Image, + min_num: int = 1, + max_num: int = 12, + image_size: int = 448, + use_thumbnail: bool = True, +) -> list[Image.Image]: + """Split image into tiles using InternVL3's dynamic resolution strategy.""" + width, height = image.size + aspect_ratio = width / height + + target_ratios = set() + for n in range(min_num, max_num + 1): + for i in range(1, n + 1): + for j in range(1, n + 1): + if i * j <= max_num and i * j >= min_num: + target_ratios.add((i, j)) + target_ratios = sorted(target_ratios, key=lambda x: x[0] * x[1]) + + best = _find_closest_aspect_ratio( + aspect_ratio, target_ratios, width, height, image_size + ) + + target_w = best[0] * image_size + target_h = best[1] * image_size + blocks = best[0] * best[1] + + resized = image.resize((target_w, target_h)) + processed = [] + for i in range(blocks): + box = ( + (i % best[0]) * image_size, + (i // best[0]) * image_size, + ((i % best[0]) + 1) * image_size, + ((i // best[0]) + 1) * image_size, + ) + processed.append(resized.crop(box)) + + if use_thumbnail and blocks > 1: + thumbnail = image.resize((image_size, image_size)) + processed.append(thumbnail) + + return processed + + +def _load_image(image: Image.Image, max_num: int = 12) -> Any: + """Preprocess a PIL image into a pixel_values tensor for InternVL3. + + Returns float32 tensors; the caller should cast to the model's dtype + via ``.to(dtype=model.dtype, device=model.device)``. + """ + import torch + + transform = _build_transform(448) + tiles = _dynamic_preprocess(image, image_size=448, max_num=max_num) + pixel_values = torch.stack([transform(tile) for tile in tiles]) + return pixel_values + + +# --------------------------------------------------------------------------- +# Message conversion +# --------------------------------------------------------------------------- + +def _openai_to_internvl_messages( + messages: list[dict], +) -> list[dict]: + """Convert OpenAI-format messages to InternVL3 format. + + OpenAI format uses ``image_url`` content parts with base64 data URIs. + InternVL3 expects ```` placeholder tokens in the text content, + with actual pixel tensors passed separately. + + Returns a new message list with image_url parts replaced by ``\\n`` + text tokens. The caller is responsible for extracting and preprocessing + the actual PIL images via ``extract_images()`` + ``_load_image()``. + """ + converted = [] + for msg in messages: + role = msg.get("role", "user") + content = msg.get("content", "") + + if isinstance(content, str): + converted.append({"role": role, "content": content}) + continue + + # Multimodal content list + text_parts: list[str] = [] + for part in content: + ptype = part.get("type", "") + if ptype == "image_url": + text_parts.append("\n") + elif ptype == "text": + text_parts.append(part.get("text", "")) + + converted.append({"role": role, "content": "".join(text_parts)}) + + return converted + + +# --------------------------------------------------------------------------- +# Model server +# --------------------------------------------------------------------------- + +class InternVL3Model(BaseModelServer): + """InternVL3 vision-language model server.""" + + def load(self, model_path: str, device: str, **kwargs: Any) -> None: + """Load InternVL3 model and tokenizer. + + Args: + model_path: HuggingFace model ID or local path. + device: Device string (e.g. ``"cuda:0"``). + **kwargs: ``torch_dtype``, ``attn_implementation``. + """ + import torch + from transformers import AutoModel, AutoTokenizer + + # Resolve dtype + dtype_str = kwargs.pop("torch_dtype", None) or kwargs.pop("dtype", "auto") + if dtype_str not in _ALLOWED_DTYPES: + logger.warning("Unrecognised dtype '%s', falling back to 'auto'", dtype_str) + dtype_str = "auto" + torch_dtype = getattr(torch, dtype_str, "auto") if dtype_str != "auto" else "auto" + + attn_impl = kwargs.pop("attn_implementation", None) + + # Device mapping + try: + import accelerate # noqa: F401 + load_kwargs: dict[str, Any] = {"torch_dtype": torch_dtype, "device_map": "auto"} + except ImportError: + logger.info("accelerate not installed, loading on %s", device) + load_kwargs = {"torch_dtype": torch_dtype} + + # Attention implementation with fallback + if attn_impl: + if attn_impl == "flash_attention_2": + try: + import flash_attn # noqa: F401 + load_kwargs["attn_implementation"] = attn_impl + except ImportError: + logger.warning("flash_attn not installed, falling back to sdpa") + load_kwargs["attn_implementation"] = "sdpa" + else: + load_kwargs["attn_implementation"] = attn_impl + + load_kwargs["trust_remote_code"] = True + + logger.info( + "Loading InternVL3 from %s (dtype=%s, attn=%s)", + model_path, dtype_str, attn_impl, + ) + self.model = AutoModel.from_pretrained(model_path, **load_kwargs).eval() + + if "device_map" not in load_kwargs: + self.model = self.model.to(device) + + self.tokenizer = AutoTokenizer.from_pretrained( + model_path, trust_remote_code=True + ) + self.device = next(self.model.parameters()).device + logger.info("InternVL3 loaded on %s", self.device) + + def generate(self, messages: list[dict], **kwargs: Any) -> str: + """Generate response from OpenAI-format messages.""" + import torch + + # Extract and preprocess images, cast to model dtype + pil_images = extract_images(messages) + pixel_values = None + if pil_images: + model_dtype = next(self.model.parameters()).dtype + tensors = [ + _load_image(img).to(dtype=model_dtype, device=self.device) + for img in pil_images + ] + pixel_values = torch.cat(tensors, dim=0) + + # Convert messages + internvl_messages = _openai_to_internvl_messages(messages) + + # Extract system message (prepend to first user question if present) + system_prefix = "" + start = 0 + if internvl_messages and internvl_messages[0]["role"] == "system": + system_prefix = internvl_messages[0]["content"] + "\n" + start = 1 + + # Build question from last user message (model.chat expects this) + question = internvl_messages[-1]["content"] if internvl_messages else "" + + # Build history from prior messages (pairs of user/assistant) + history: list[tuple[str, str]] = [] + i = start + while i < len(internvl_messages) - 1: + if ( + internvl_messages[i]["role"] == "user" + and i + 1 < len(internvl_messages) + and internvl_messages[i + 1]["role"] == "assistant" + ): + user_content = internvl_messages[i]["content"] + # Prepend system message to the first user turn + if i == start and system_prefix: + user_content = system_prefix + user_content + history.append(( + user_content, + internvl_messages[i + 1]["content"], + )) + i += 2 + else: + i += 1 + + # If no history, prepend system to the question directly + if not history and system_prefix: + question = system_prefix + question + + # Generation config + max_new_tokens = kwargs.get("max_tokens", 4096) + temperature = kwargs.get("temperature", 0.0) + top_p = kwargs.get("top_p", 0.95) + + generation_config = { + "max_new_tokens": max_new_tokens, + "do_sample": temperature > 0, + } + if temperature > 0: + generation_config["temperature"] = temperature + generation_config["top_p"] = top_p + + with torch.no_grad(): + response = self.model.chat( + self.tokenizer, + pixel_values, + question, + generation_config, + history=history, + ) + + return response + + def unload(self) -> None: + """Release GPU memory.""" + if hasattr(self, "model"): + del self.model + if hasattr(self, "tokenizer"): + del self.tokenizer + + import torch + if torch.cuda.is_available(): + torch.cuda.empty_cache() + logger.info("InternVL3 model unloaded") diff --git a/easi/llm/server_manager.py b/easi/llm/server_manager.py index 91cb91f..c656342 100644 --- a/easi/llm/server_manager.py +++ b/easi/llm/server_manager.py @@ -24,7 +24,7 @@ _DEFAULT_STARTUP_TIMEOUT = 600.0 _DEFAULT_VLLM_SERVER_FLAGS = { "enable_prefix_caching": True, - "disable_log_requests": True, + "enable_log_requests": False, } @@ -138,15 +138,27 @@ def is_running(self) -> bool: return False return self._process.poll() is None - def _check_port(self) -> None: - """Raise if port is already in use.""" + def _check_port(self, retries: int = 6, delay: float = 5.0) -> None: + """Raise if port is already in use. + + Retries a few times to handle TIME_WAIT from a recently stopped + server (common when running tasks back-to-back). + """ logger.trace("[%s] Checking if port %d is available...", self.label, self.port) - if not _port_is_available(self.port): - raise RuntimeError( - f"Port {self.port} is already in use. " - f"Use --port to specify a different port, " - f"or --llm-url to connect to an existing server." - ) + for attempt in range(retries): + if _port_is_available(self.port): + return + if attempt < retries - 1: + logger.trace( + "[%s] Port %d in use, waiting %.0fs (%d/%d)...", + self.label, self.port, delay, attempt + 1, retries, + ) + time.sleep(delay) + raise RuntimeError( + f"Port {self.port} is still in use after {retries * delay:.0f}s. " + f"Use --port to specify a different port, " + f"or --llm-url to connect to an existing server." + ) def _build_command(self) -> tuple[list[str], dict]: """Build the server launch command and environment overrides. @@ -176,7 +188,8 @@ def _build_command(self) -> tuple[list[str], dict]: if value: cmd.append(flag) else: - logger.trace("[%s] Skipping disabled bool flag: %s", self.label, flag) + no_flag = "--no-" + key.replace("_", "-") + cmd.append(no_flag) else: cmd.extend([flag, str(value)]) elif self.backend == "custom": diff --git a/easi/llm/utils.py b/easi/llm/utils.py index d192423..85a4fa1 100644 --- a/easi/llm/utils.py +++ b/easi/llm/utils.py @@ -36,8 +36,10 @@ "tokenizer_mode", "seed", "max_num_seqs", - "disable_log_requests", + "enable_log_requests", "limit_mm_per_prompt", + "chat_template_content_format", + "chat_template", "model_path", } diff --git a/easi/tasks/ebnavigation/_base.yaml b/easi/tasks/ebnavigation/_base.yaml index bbd7515..44940ed 100644 --- a/easi/tasks/ebnavigation/_base.yaml +++ b/easi/tasks/ebnavigation/_base.yaml @@ -8,6 +8,7 @@ dataset: repo_id: "oscarqjh/EB-Navigation_easi" subset: null simulator_configs: + command_timeout: 600 render_platform: auto screen_height: 500 screen_width: 500 diff --git a/tests/test_server_manager.py b/tests/test_server_manager.py index 96ef51a..b389e95 100644 --- a/tests/test_server_manager.py +++ b/tests/test_server_manager.py @@ -63,8 +63,8 @@ def test_port_taken(self): sock.listen(1) try: sm = ServerManager("vllm", "test", port=19877) - with pytest.raises(RuntimeError, match="already in use"): - sm._check_port() + with pytest.raises(RuntimeError, match="in use"): + sm._check_port(retries=1, delay=0) finally: sock.close() From 8a7679e590656c68fa70f918f704b3e3af4d5142 Mon Sep 17 00:00:00 2001 From: oscarqjh Date: Wed, 18 Mar 2026 17:05:36 +0800 Subject: [PATCH 215/239] chore: add internvl3 template --- easi/llm/templates/internvl3.jinja | 4 + tests/test_internvl3_model.py | 215 +++++++++++++++++++++++++++++ 2 files changed, 219 insertions(+) create mode 100644 easi/llm/templates/internvl3.jinja create mode 100644 tests/test_internvl3_model.py diff --git a/easi/llm/templates/internvl3.jinja b/easi/llm/templates/internvl3.jinja new file mode 100644 index 0000000..9867dff --- /dev/null +++ b/easi/llm/templates/internvl3.jinja @@ -0,0 +1,4 @@ +{#- InternVL3 chat template patched for OpenAI image_url compatibility. + Original source: OpenGVLab/InternVL3-8B tokenizer_config.json + Patch: accepts both type=="image" and type=="image_url" content parts. -#} +{%- if messages[0]['role'] == 'system' %}{{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}{%- else %}{{- '<|im_start|>system\n你是书生·万象,英文名是InternVL,是由上海人工智能实验室、清华大学及多家合作单位联合开发的多模态大语言模型。<|im_end|>\n' }}{%- endif %}{% for message in messages %}{%- if messages[0]['role'] != 'system' or not loop.first %}{{'<|im_start|>' + message['role'] + '\n'}}{% if message['content'] is string %}{{ message['content'] }}{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or content['type'] == 'image_url' %}{{ '\n' }}{% elif content['type'] == 'video' %}{{ '

        -RgOItHvva)@+aq$IDTCM#(SK;lJtU^5ct}-+BVJ5m z`cyG9LK;D<&}(;R36e6~=PS1bImNrC6T0JF$wpH=AgGESVnYmo+1f_6WP=dIKsFyj z@K?g=FoeB%xK>#euVnjcQbIh~`zvHkGEXsvArif4&n2}sPrKomfrs&uCkcDLtGRQ( zQ8*HHoZD7}Zr<{hPGkOtZ5n|%F#V|Cr}aAMFa}&^V*S64Lgw~ZfAjd2!96C`3Hnqv z$6UyFDFrWpj6z}wNlKO;Eu)T_&0+$ig`t-ng%=H0g#W#CybOu_$?xi~BUE|JB4urrf;PNV zQGA2YRrp~-7eHQTH`nS}5zct*);IPFZoQ|KGm{RKJDgVbAygo6PWSvb3qY&BxF8{J zCKv=}40>s488|}Im2moP{cl*4S_9Y0FwemENW{L3IMz$0j^Q5~#Yog;)W0IFhs|-X zd7SlX4P6=CTq8ijO)+QurD^z2O+rx_bY+qoQ}GM>7LdP`x~X_7E~9Q=Fkz%lj?*Q1 zwOB}^TW4XMI3FO!1dP-BqfEqzMnYvYA=L}es(HY|)TKq;ojfzl*PxcBDAzL3N2Oj8 zd-}YH`bZT?H4~9z8f}k>=0nyM)HYmlCRjd_X~fUw>nl{ z>qtdZcT{(mK6+PdvgC*U9viUlM&>419iWkwIwoewn!Ry&gDnQMYUsOwh!LU@T8qc* z^EZ!KNu^7B?;CXt1&a+ZS7gSCRH z=NnD$jo|Vx(!gN4jm&A)cc>!wmf6i#x?dO89Nk&zO zD$@pzdF!@(#HIVZZ9la{5L)T3gDW`}oh?BAIuj1FQ~@Ia*kQ1M2fh{<3j}yU#r783 z3t(6^W(JSdah#~}aKcwdTBB8W%+WD;gPzg)NWGaoKZAgk6eHs26;3{;=EWfzxvn2Z6vgCk13db z*2bfn1;qW2$qEsZ5m=y5aY5wc!Yoeu!i`MgJ}NODTgRyJ#E*}j8YW(cJd1S9}6 zN7|AUUKVK?Uf*J@M*Tm++6Wg$uC6;9?6r(%%c(cT**2mZ^HWuJ(74DPRT@l>?-SNU z`X)kajafpVeRNL)D}f=yhNW|j9de}lA#CFJI2w!G!i}1pEPCFyN6Xt->DsW7)O2+fgWDTe5QU`dgp z6E~E&gE0aFGOx$G!oPkunJhTtZK23aO75X@-xA`LC$-_Q_TRT6MTNN`r3QZ<)? zmbsZMi7TD@j!SZ2{~NX$Ix_6B=a^c4qAf^z{~;guDb(;YiK5UFv2c;KD`CESFff6z zd#WbcgE+F9)GlB+1JjcI0!Dvxs&@I`E21Bv}RfS#rS*6SwbEtIHmK zE&O6ZyD!@|RtUisqQ-JJvyKHk?jG3`+tkuC2_u;w{j=B1LthXgyTYsydV)P-smVu*7P^y5h_BIapkv>^-se)l zH2@h58L2OaTkQ-+PH=a~+FD9UCKz%1^3qND=V!S+98_5b>N1Zw27K;-fU;tqWi61o z$bI91T>O_-FyYz;%Da-nYdrxstg;@}3%+1Q$JNlia`>iDR1DFZNB2)kL#ig?2u)%j z&>$j}f5rkRUHeXu>CtjuV!bpC^DNd$oFZ)V@{g5NC#a=?zFU$oJR)aAWDWy*0ugE% z0~lkp6~sqz5x9c*yTB?N5BNZg2 zCX(F4sb9{RywMY~jr47=HX1_)*1qd~QwUm4t+so3Z6bOZEgw_6k&3j56r4v ztlU~Pt=r>g9u#(~$nmZt26Z_J$V+|s-;kre(vtoJvm)?CfC^X} zKCC+8`&Hql!`AbTqjP0KwOI~IJyAkf2?cdS(}yAf)Wz>v(KuH>-@d2X;$6>O2Ak^~ zWa~OYa@=4N%Cc;b42=z;E=W`~XgT8q2a60&a3+qE(>1K6NJs9A9PEw4aO4;r8ZW6q0MgyWt2*)Jp#j=Jr5xPVW z314n3leeOAPFlT@&Ato#B(5#|_UPB6F%1v~vPRI6ku;{IMlZq(@B~UM(#IL_`epu+ z)KG2-%?;q5mD@pwhT8*GDx9n`CI~WWawc(FLRJ|KG6*$@fw&BAGi|&U-R8UFn_(6Z zFUpDC3tm7+CMhonm2$wkL;8Y_)v6%lQ6x_ahoPfS&bmJG(Bl>&Mev|l$?x|gDw+~ zGM1F5Ug$k=&*~Sh(JMG)e)BPyo(w^PQ!~N`NW+x~5~8jlTS2TH6Ol@n+fbcN{JOgH zkOEOjVaCiGziRz>p*h&bRMmdE-Gih@W@KGz6L9A1SX5`;_J&GLICz02RVu+w9Br3E z`igcVbk{4*p5yV0uR}F~f=yOi-WBL$+FA}(@(&WIk2K(C@Q)b?e94Tn$u!lqPKAyv zG~I63aexa~K#`KBg_&$Kk)#ejc%ddTqz-g0@-bN2&6K|=4~BE+Sa)-QPWH`{g#0ZG z!1(FlabdO}y{I`2*mNWne4yV7!GfoYChq_CLTf5}en6Y~@2J|=GPLS5LeDdEj?>vn zl$4BCoKddV}ZH)uS>;g$mZN{W|(%&*d$%RiRA z9jVkT0AC1+;TOX(4xVSzeen1i~m&zDQ9^?8SzlVD0tb0!YKKf3l`vFu;l3+q>7Q`Y6^=qRGnpz``7x7 zMU*>woKs14fu?W>`iMA2(IYMqX<7IS5F(f1%;Wv;-6TM7+ksA5_rfqCgGwKSaNBr_ss=gaO`r^Jz+F4xa33T?sn@;jy{#jIhek zG`)&LG8RJ#(id|Ad&xXj3#-AER8XYnZF$q<7?Y>YwV1kN&0MfI5^0y1di(E0jIt2o&ASxcW?dYy+}Z-AIJ=q2&M(rGF^)+l>1gzbn@X- z5E0lrhlIf2{OQzpzhV$It$jYelkKoYtYoc46lfk z#1GjSNFhN0*5{q$*A310(r+;f9D9GXDtPpT!SXwCbbWLO%TRP{82YUIeQ>Gx$ZYls zGG2V?vV^pdumhR4BUa~WCsKV6E>cGRm8?{Q`dTHz{)_C`UOdpJjFvQ2IJetC_vg4Y zj#lb#Y#lzyFp=`UKsSbE0Oux|iHrDsyP6j>2E*2_EWbl1bpG*NG4NVewkrsTdZFFb=g*Xs*G4f?pKk-MruR>8=cQ@4^>_~L*&`0ULYa)tJMq6sn} z8#Sz5>wC++)vjRqQEM!TsS~oK=+(0S1O{av5Y_q9%hv0(-lr_>;eer7X;Wo&L z*rN{*Mdu?Tzz>M@;BEQ$I2H@;VaTruRol?2m#Rcd0GdNOBlEv_p5#BH#|T}@j$Akk zdXDxt1oZivnFcX<6&~ird`5;eX?o_$v)f;IM6s+VA9 zTUzbcU31-vbl3X8QFm~OCJgpKUHpye#qwyB5}0ByheO9q+|Th{8P7bCdO+!qrIp8n zjb0SnPrvQdLZy0jA5rKU014+72LnE5a5vb?`JY@A+=n}vW_1f{## zZhcV8677()I4qQ^1e2?{+w(|u7ZW+b^ui0h>}ybrSP?~a{+nJWl-a$ay-c#ml-h(=^-Dd%Jglhi9Z9I69YpU2*rzlfQJ~3WqN^+7|Sx(5k)N0 zEXDi<&C&rPxhV^OR`!Zh^23T57sJ=Qv(7X*a#6XqoRRR4$joDw$-;KBxUW2f53Z1d zM$?y9G`6s6dNx=KZtfo^|0hK`F}#R{1Y@cJ1!Gc5vTmF!w9W?{=}6P(Xf5)8!0m3H z(aKyE9kiAVhDD-9S}H7c@*^=~efMp`bc{hpQh+C@3?4m-o742)`4(tLUxL~2x;u{C z_o>MYnZHm1G9<`|Oi-92P>xJ`KF~q}RGhBwZRpu*P-9t_)H(%TPYmrb0D!iLK*>Y{ z0Gz31+g$w{W1rAb*~Q*>vQHh@77n@RJR49Q`K*>yV*HThNr(bDRk}d9k(s>!EwF>> zv7O_P_W9!?KX~4OmOhes8%l9^Okf7Kx%S)cW&T;<*hcgn@>oqPPPw@uein1pBbj@1 z1lsUrAy`y0Xz4$J@rr6mWsq6XLZ~ginrB(A>(r|mo`{~~W`N3cdK<&|o~REFk z)@K$o0LozLlTgxvNjBdUV3r~NMf}$nM_>J8S<@#|JBEpW z6(~FKtN02-oU;7GAnj;_3Zl|gCBFVw>X!{6C-kZM1^!bPfEMa>UI4Ly*+0VIQ`PC!VfBce z+XBo@+3w9|oyI|PN6}+h1=S=6Ql<>p`siQ3V7B{cKX;o8mLFZMR73B$yDJl?nVG=* z0Y|zFP-5`<1&V`r-6xA{%NH2k2zPjg^s{JFw1X~Kc_V!LZ`CiKUIj}8`zy#h!w|Bd zR%K3(Dk(qREDQaHaw(EEiRv_23ZW|m?MO0luxLV6JKV~ya;#teWyhQThfZ1v5cm`p zcduTl?kVxu4srN$0Sk<-S&_<#J=dL<-jw+KUn!OJHZQ! z4X(CwJ;yO$+vgv2jSElr(|rio@`1(%*k}|+Z^+jkJk^`UMfG|ZHs@q5L;u9ZdHDx? zpYDCAhp+*_jp5+`%WW8WS2MX=`sIA%$zzN8!`AadvLHY8ub1x>5EzS;&Y~YsM5qA6 za2UhyWW6d|96Hc4Rr5tyRFyNP^B9ODGEAoCq4{Hy78h+BBydJ7g?q}$++R4|#{>1T zv(zDoj6ixS*8qP0%%2Xzkw%4G()$|Koa;AnrFUH$#80yfs?-v=j)AToK}K;~dhN4_ zmydLD5Og>+{g|YUwgmE7OqDa^vX#ntkrwiRzVEDdPNq)@nvGA9kA!OCRRlu|aZ>{gihu2KM z0|m^MOA(wGGh9O&+;0?OFhxRi#63%C@-mrFuQ7pZ2m;(>)1*TQTP_y#YFTUsXYEIH zD=-en`3!G+2uFpOb|K0Gi;9R1f(zp4KViZj)`NQ(#PleVlo!)x;tUpOx#A6M)nh@` zFqpzT8<@I<7yi$hMqmu{6MIrXJ1lz45V1)TZ!%!SwAa1S!nze+Dn0RQKo|w03|!O8Pn~fjQu=y%K|w)HV&@XtkS}e*km$uEdquz9 z1(De90QK(m^ss_j>*C|0=h(QBd7djE;gOQ5i_8cH4`{KKWK0p?328P|WAipId*#%8 z7>S&M!dQ6^VtD<_8$UTLM1G}Nvn%iEF$jOa+v--UvV14^b+=m%Aj?P-9aKDalU9{! z@E5LV*kdsh8JACcTzRH%5okbkm%VP3tc*x6q()kU%wXu}TPQJGA~+k}Jh6wdY6=b^ zD^6v}YbLE<_GZEA=7Yf)!=z;`wXNt|z^MBMA0`)2*$|0uy?1R16c6Y%Tf#rBzE}8J z(!Vj`^ek)PKkXtHCt6OS#xUai%ua~OrZ{Uag47=eg_$9_?^BYmfJ*d>gG&~Y)Wtk9 zAX#W0+0PV}>;#2Y{&xx$gG zl58-+n9Kzd;*EF2IYw8tGN2p-B=3X=iyF)dO>w|`NE~u_V7AY-P}mS53M*By-yO0tbZ3_1 z41^`*9%mY_=n1<~Jpcq0+eBIQm|&q4V+#^!DW&woqa}G9vu9|W^^~#Njzln5n4P3`kU{gC>5r@HH_x;3EhAEIq^Vr!oqmTo ztY+0{S#0txC5@T;jZPaQEolnOTL?MTq#h9UVo!ng*(m*XdzH&8nOe-%@_E#-i9nBl zkm{QTLF>6`L+=1uviYu?@fk-<_4!>SxFY|G)3lz_ompKb#}D%e_Lh#$A=~|086H{w z7m?3%Jryy!+GeRdK6~`)=_YZVc$yI|JO_c>{fm{M4Pe9x7+4x}9eMiTChBxeww5g*!~~eWd7GC^O@*|{x+mG&vaf{gRF~=NMJZb^^@yQ zESd@U`#_9%YRD{R#FOMJ@}LUqF~n?6bJ>mH5NQ!K&ZhT%{jf|J9ppCb?sxN`*%!cH z;HF;~u1JDXCr&qYtI+?M_Z@;uI&PTC!`akCy%41IMCUDosGHLPDB|dwrTvK%`x7f6 z9mXzr>i$+{c6kBtER^AXz0aNx8(s#gLS~rgkJUa4b?%wx)C5M=w0O#vc8_8o=gDVr zW#CVtDP_OIQnRFO@94v65%(X?pW85TT3MpON&Y-BlrfBgDoV9e1~@s2ZkOT-wx)KjY={H9JMDY!) z6IEg}@3@(%G*F@67(u2`8Tgd`;w#tqx0-iR6k!}h{xz5OrKIlLMPLyeQ~nYlJj*!%p5ta)EK`63vxRY z@8c8#Gp_iMA|-^SkuApq1}gyrPLmlxOK`xv2HuEeQET35d}*>6T&ox?wX!`jDd-ku z<&c;(3QsHFN2nagCQ+ot@E|9#6Djf%pNm++gcSLYPw;UHeud9aMYaF{8BsoNtx459 zo?&Gi)wUB&T>63pFqk<)O)vl&CXRQDqX(Q2PRCZuFJtf8Q~325Ip`oYCoNLlK;qo~ z#?G&#P^d2N0n?&k0I;>JHqLyH(avYI>0`#W+SI5HZxdImY=tj3r=>3Knk< zLKI9CN*97Grwpw!E*JVI`B*i>_hS~m~Eg&8%w-Q&4*%{?d+K& z%;te{(rOxNh&Rb_j7<8EUm&!Wfvnd*(f8rHzA86N_#@Am?*Wi9FcrJipc*W0DYXG?>TGz|9ouTfZT3D z+M0SeJj@$|RTJG078}FzVYUx(?r3jNV2=T77-FguGl!L2*g;z8mFVn0R#MAv!x{&r z_lYQl7@%cjp%Kh3_%}pNINt@b2?0@|aoBovQHcAMUqdm3B+8Rbb3>ZH%#roqNk2C@ zxCke+;{FDf3U!m1Bh+nOwd-xdv3*?lHXPX}*$CftCP`ic7cbPz8ciP;>Iat#^TDnf zk$%_Ss>Ja^clR#XQe)1myj`-T?x6afyC0E{(Si``xvmRWVxg_Fyiv|KF&cbl|KJso ze2hGC(So*M`CTBVAH9|JivuhN7uG2ujE$PW^dCcu_m3(Z0p5-M8Un$&O)k3uES|mK zSgc-3Ve}iISchQOm#tpl81~(7ws6Y1$ch3r_br0#j5N};903nrx0~a*qr}97Bi;wJ zV>sf)9%a>oPUu^B-{ncvGtNe>oXp+1nZ!dsMr{bZv4N`__+JQGG@~ajxik)Me{j}R z&T5^7pHQY<38&qFr3f$!H%k)RYJiBWMh=VuhPYmSsv9Z$BP_F$&l2KDs4244vYj7b zbVGXdvO+MvN)Yy$`^4@;!+zyP>|uW~`;V?H|NFc#cYTQ=9phVC{WySl6rq;ra$~G; z1=$9Iw6><%reX)XGyaCwoTj?j=WgWLa>N_fJj8Mi_Xm@+*LcdNqAkIep?|rBMm9q zu1_%o&=iXA1f}cG^sg`$Z^Oisy%1rp=OS~yU?MliUfLxjF~1P_2!_}?*K;6<^?fL4 zA!#Y>&0FSPD8x|$U5Xq^$vZ&7B7FfRj-=I;Lm`)h{+E5OekqqF-Cd>oRE{x-wZ{Hna)lEgJ$c$a+d5q+ZeJ)btmX4>>JgopH>$HoH zKpJLyLL!Oi;OnSg=p-|#)4fz2u*fZt0;h}6_yYS2{sDSQsAc{ODI^4KN1wQ4pc$*> zmIH4e9Qgx~;bG?!@f7JE%u6LfgKuHpin(ruaP4=5C$^Z*TGTn}wkZM1GWuA*X$zn1 zpT>BoB)W}JT{)e7+^1=lNp)r+vX{!}R&{-H!GqU*!jXlMH%lY)M+As&$b?}k#3QX0 z!$y<(VXKec{l~JhCB(|oTKl((7bTmwQ)i(>IbjoJXR5o=1T@6w3?~4YKLN0ThA9th ze$lZ)Xbg!p)%3oRXLHK{Jw-PYtX~2MW2*>PUWa&-d4IfQHSWM|y?kbTMf#Qw7pwDE;* zkF^oh@&LvcXrkn5AQ=J}12)j0(W{{4hi(Gl?+A*LjaBT!_Z_f~!NkTt>s;h#x3po$ zDo$R>_T)i>jA11)>X2mf0f#SW=h4b5T3~gHVYs{_$+p~gNn^*kMmiC5>j;uTO$}cL z-qSx=(PYUbLrAGq@pXHE%WiL$0Ms{mV0cma5n=rxmi<&ywcN9vYwVzn4G zY!TNjC}`eHS9(7Nl@7YDB*P)fPFsDi_kH5}ADC1&cFAdEg65f2nj!FUtBBoTkKhN2HAI)+{fMd3 z$MgPrvhSw)eRApLw>OK8mvI#X%NChTv{QZnFf(Kl*p~Yfy2QXP2+1zJ{BEYvQlGBF zyljktj!n+!c@mPIa@mDQLb7<%nmvZSwEJ%(@iNS#;2!4zpzRHd~7GO@NfB`mdU(DTV_sUQ_kNP#yQBh8J&ayu&9S$i~oi(k(jwGgi%-Hn=> z%n5gAT}vd@OLhC<+h|a`?KsMkJV3!BdNA9Ok@oDrx*L^{`x55kdOJn|@A;~HGCd(f z7wsWNPtx#XLMNLzT6G^WsleBIeJ|QCzrG$-QwG=@-vElRMxz=KSfJ~Y;828Y6kLJ+ zwbBxzFS*W>`c>0!U+bE;q@29)6kggW6cT6(2r6^NmQY?7EN%377>hDIl6}c0!0(VC z1Z*%zj7ND1s_rv2ZB@|JWwoJhNqipM=HED~njrsfJd1_bEphIR;;}I1rx^~jCGpWg zRxz2#NMBd?C&>|r?lgWfr#sWNnX&Y_dZ+7TRCNRp2fZwckH0=L8@Yuf9-`u`%&@Al z?K6v}sR6DZoQp0?5LG&3UpTg(RtVO)UC1nPlX?2&A zpC|3jZTvE)g%*whln84JvUA9@_6G`;wKHd&J9TQE>UUFpCx#j=?R*~G%GOP|ljq!X zq%rc~>j(dCsuYeBuo{acVgnR0A!M1>5_4k%Qebx zHh+h4UIDvMeXpmd`VsyqJ{haaKFF~l9T;jE z8+g_tJ$>mjcR6jvnzZ+ojnBbLYc8!3z$MU;<{TvboczUh0MLvawU&4^Q9s$)(o|HZ&$KLS+>t0Ee;ODWexH7dn<#N(!4nR6B*N z7INt7gI0oUM)Xc2420VtxLo+wtz36nH|CpZFdrxaHr92WGVN;xfLgADm`e6a(#G0=nTa6vD#bRZLZ9`W%Y~Yc5)}Yi+ij zHAlTixs_qoBe%FQ2xpAK6uZ$jiJz9)Rblx1Ujoq?H8(|hyv_b&VOjT;8zWi977F@- z#`)hUCZ}HLF5QJPeAtGjVbbuTp^aWDDQt4kzf;I2|KW<^Y9O{pbKs z6{TN7l+rD&lwrIICCxoa0`NV zjT7cMP}&-q84Ql8)GbdB-N)KQ6$5n7`` zd86^BI`0T<`IT0*eHaJSsYkHSv3C(-N;z@fWJePl&O&FBuPOE5GiDAYb0b@?=aKLP z`FTqSqT}V0$^>HJB6@GcBWx%DUsUX7K`{dP1YYMuNU>gU#}0Ox8W$Ml%N%$=ZY!_F z{M6|>*q4K6eZQ?(Q0j`1yQAC7@JKg=EZ|?b*OvU`xoRK^LHD)Pv3vz6^v%QhmN?(U6fKIEkx* z{qyw$XeDMb+kLIBSlTi2*8_4}3s4RwW?C*2L#Z*rM?5cLay^ZE`5^@@$IRdL4+K1V zsC>aO&>e(GFfrC5n~0c#Nn{r}`hY@4x(W0Jav(}1BMj)VmT`5tt}Qy1c@cZ9_Vlox z95C~QV8pdmE$co=sMBv{!RL-M3v{LTLG@6@5ruxBi5L`0kxHg4sYE#jAQ@4p;xQcj z2G{C%hJN|KbEb8HE?gKZR|Oxw0^ueLuA|Ln#^`=(DTI#I!xhtP>9`Q&OeKmzvGe@x-E}R!4BfN!zw= zE7@Jf(kXLQzW+!b@sxoZGJ-0WEGK7W5@-p+xsTN zOVC$?VqueAFssTL={vS<*C$}ffqsp}KE8%QwHAZ_Ug?6xK@@6Q`7lkzmXO@J0E zu}9?2%}mB}rU8cgBZW6}GZ*6NIXOf5?IZcFxtS)M_3CN$3Px#m%Yie1Nk0UpKe#x; ze2OPCI!m#%I!T#i#KjBI5(}kbvaKCixs>!A%=d}GkKm-6axuiq^85V1Bn+FN{C$vX z+0b=)mCW7B=LTNrLLSO9@B)eJ5TY34o7F0wE0%(tXsDgg{Fj|dQgT01a-y-O6BT!l zhb1$qA#1F+k-)DsgHB{5O&bm!qG zsJna!1S~{OZuqc6Qqmpl`^3R8bd|PNS{zMV{h$n#>HH1rtZM}-bDi=*kK!OXiR^Z! zZbc9&_|kVwAGacs;^@OBcfO|VMzn|CZ)aUwiI~t6w!dF=Zb!2+5iT}Q94kHuA?kB@ zM~Sn6v;21?V2G8!M_Ml2?|jC=7?!3Z6_;dz4v@4L&p}TaVqv<&Z1KeK>Wysimk2l) zKKipP$rsgvAF73j)%cbQdLt}0-{marR(Yej`u&(-g5wt!FAyxp9*vnrxH06yCqo+Q zZqj%NobpJ&2E{^u^WK#ap7A{Bw)ew6<{svQuC&=*lUif*H02Q;=iX?yp)kBP!ncsn z&8Kk8?$7A4TgGMe_}67@ghsarzQxYcUtjHn0jRT&*zNVq*Z$@zrUhxRIb zV|5+zBLmtHHIiu1Q#hRJ<=DCCuGh-NVzg}%8apn!W~HJB(XBAQ+>BaNZ@Z_8o)e%q zFCHCZ*Oa2Z5A|b`4GZ5qg2duiCheWkm4UqOPLoD82;33LK;8K_j>w&d-3N2ynZeqv zlO`Yu&$m#?%_lPyS>>Qs1aH5tMQYX7r^P}t^5Cj3@i^riWpH^)1sw|u8j zXTM{cm#(Df4mZ$7Xy`H8^c*kqR=ocKqwc!=Z~D&bIbL#HE8lSjV3z6+2Z#)5(@!ly z9enVR^wB;@j2pb3p=~or+WbVtKFY75yz0C92T7TNlZeU$5q&2&xYOc`*@wC!(u$s_ zHf4{ty~=fN1A54iCJ>Q3w=@_0KU9X~Zl68Sqzwl^$VFa~<7ru2Q@NWM}w{3WYvDjidr7FNdUz1*9d%sT6r- zDHMhm(y-}NlE@%pvOznYbVCyg)q1s*>S%Ti1WGJZx5lJu{!0d+0ge0NaCO9<56^Ct zPw_m?#^Hd0=cT#gJ0%<<>e5pWNG##a>qWo0)CqpEim$s#eInZ6WqdJ1FLOXNn;dnP zWL@$uSzj`0?qI&0AL|T?P+{-?7W?I=TADmp4E#byb zZ9W?8JxbgXlcJH)yUO5ErF{#Zu2^4F*XlE7o(8SD7QL#sGBH7V4x=QXY-aPYxZhX+ z8RBiM@d^$u8K`92{mSbcOVZNYSP4LTANo1&u9MbnH17ClHENKx`VG=KXj+k&S)`A6 z6Y6C?K=C8Bp@_3m#@GTV=p^Ur+H5*}PPbtAfAaC4q#8XgXi9fT*vmEWO$d*Bh;)trmgl(@^jHDjL`b zoxP+vQc>=NYA@9URk(rVSFg?6MsUTvO*);-0&*Mz%!8rSOjs+rJjf3W`n!<6) z_7}bl!K0#HS(Bl`LPJf>XB0lVd2({)@LySV=uF%SaQTr0Hi+oe)CU;bU@As#BC+-} zof~)i-$Yj->;A*$)fSD4?Jz4fbY%pF8+F?{2#C;>Lvj#9Ah$vwD?CpQ>5=U&FCE$4 z_^l=24sD1{;cM!lO8stO!CSzXkiy5tTQ@B3u9iwZ_N$Kx+ewU_l%PbDvtCKllK{B3 z2Do9|@;Bx+eLg3q-Nh*_@}`<#{9IRr&m7R0O!`?!5x}mkWVEr-%_2$;8#h9 z5$8%#OW^C5FoDF@TKaS$lwJv4A<|7v63GX~hA$hFz-a=Ug120prjWj^JongTq6O;Q_ z4Adbcs^iPtQ#jqYLE^wyWf-(3wKBfLoqp2h?}SI8f$!L@ASN%~PAoll-oo1~6LCp7 zGWr>3q=z|!eN1_3UTgG#NrMCacc$z@RM9A(`A}exDq5G?4Ki1v4K3Q+O~Xk2cEdDE z$Wny#y?W>OXm5YSu;0gAGe8BTR`B*5<~p$eIWG(@@*IP0kv{!}2DDB}Aa&Q%J#OOD zX-%5)CPaiqwockjU)s8jF3zZbbPPBHNRUqkxnS5Wp6MV5OM(NCUb%Lh5o*!s^bBGt z7okZ=M$cZ@fSXq;A|?KXE_U)(bZjH;1hl|4#wG`fS58`KMUM*#^v|VjG>I$Fk4XD| z1-VOoxzM~p{|L_d(*#(sRG?xdF>e%O2AG-uzZwW4L|EoF1?;TD>i4gU%JS*V^`qvH zC2_sVrM5s40Sse{@xA&7=}cUgN5-V_@Ds{%&*dsM&oK$*D#E_v``tpdKqoV1_pVTj z8U?x+{5POxl23u4XswZQp|6zyCD25>;k8w2FE1Qp?81MyYxe009>?S$rID|#l2bDu zC+B0FIr13*&Y@g6$cB|Y{4xy>otWU^7<9+zvEmNKWez6GzwIQQb12_n3Xm>?B$xm* zljG7ih%zKi0kMR45_!KUT!WeJ$gkj=IS90VaC5rk&<yT1^YZsV?ttj3w%OTbpv7=V}dMBH|_^j}8 z!8(zpyJ+yeDx!{&*c)h#&{u0kdkrg9dB+WsvLL!6xLXF2oyj#E^~s4JpFkh{DK${Y zQ!J8{^QQ6tzYN;JTA`wEo3VA6(rak~U0%V7h4xx%-ds$P5TI(L5Qvm0Nvu0*Y6@xANtAj36@6Bc$B}v!KV= z)AK7y6T$Bop}6||p8`iM)VMM(>XoL22$%Gsv9-A98TdTCAq4a-!Jkw|39-T`wt)A= zB+;%CWf@(geG0~b5s})J)TO>OF=9E!fRjcfG_Q>pH=Th{GI?sR>sq;+H_Ca=U@+3l z9NL*fs(*xqk(iYhhH^>=D!BFkvn4+_0v}1HJ?bGQaquDY7>i0Umn38HRi6M@{FH}M z=~9hld1|fiTlT1GZU?wh`+?6Zsf&oWkzS{7+R4(Jaer}g^YWe8HI33~1_ zy1t5Q&^7Q!p}}&@^1hgRd2P6UhwnpvLTcE%o`?M3=U!+^dd5dt_YU><7^G8|OXU6o z1e8g*JXdJKsFzs*p7V=5C$>|-1ijKU1M~wP*Yr*C}^16Aa zm_-d36FH_@RQKF3b4#7}0MxTEujRuyBY3|(F39h`o#Ny6e^Uaz(_X4D`=9co$KJ+q z2YRiRxol!$Iq=A6HOP?~GhU;bh{e=Hg%XGr0*!nh?P1dCneo~U)Vid1q#oeo>@$tv z>TiBaX0(KEFO$zRpqfn@NF)6*rE*i9x*gGT5eTIK)TqeD)1WAoEhq{{N~eRs*7fyP z)HwLAj-1+ceJ=Zj_#3XrPmqze=H2E6Mw^L-vtR7YZIk2PfBlA&<8qR6K=vInTzcnQ zNd3R5>~4HZ8@NWG?FDqrgVV0o)95UD_akj;0Si_@0E++}T7kY2q3hN4gL~+&jWCn!MccGEPYfCD2g+|K1^3C*r5E<57 z_vcuvGoSq7_sK8*4~C{@8^pdm7cOgsSgeEga)yRoK{18QM&%^I4wI<=nKcMXM>z$Q z?*6VlKVtK(GtYT9s()*|te>&dBy#vI>k60ck;C`*WKI|sDbLz5PFXHMtq$#4)KXZR zZoK>{O~iDfskd8b6ES#?bRLrUPui{|tbXV)Az&fqL;HL1xF-D5WzHs+KGY&`AI6_> zqk3Bh#BG-II2MBYkBc^iN7SF3XZzg2r4~8KD&Yyy@Q|lgrz&<&VpqHRZ|U$8F`R{m z;(>{p5L1ErJfL(Mq>`qtSg$2csZ;ipjlSdZZGw+mV`|AA>bs%d{4Q)35B8XZdCWG# z+7zw}MgnxI>&d00y$ObB&zom>C;1}{I|86C-FkDQE*5`u^s#ag4>7F7Ylt zGP;E~KLl?~UxT8KBpd23hUfdZyw01&n>~+tz5ySxy;LG5<<47jn@Y%m7@qCpJQlI+ zHkIy^ggaT^?j8gUeb{q-WO!?3$DrmJ&8EX}E=mIJkX{LV%Waj@+A6HyzMQa-We?g9w&ER58arpa-x+hD za^N>Ov(aKtsy>UXntb$)io!4Za1mbPaJK$&ewue|+iU~vOVt-%*d*=!&9%J#ak=od z|GuG|xO8$)GA~8Bj@OZy`=HhGH%C9v4j>|UMFjKPCYRb22Z4qz|0UZz0pAA4Ks)V! zI(%rBfBO&9>vUM%Np&8BHW^iY>+}}E8}+6*G*zT+gy8LP#<&f;K)m^R(b1S0L+Ztf z=RXLWM)>I3EV(~{KaKbRLFj{=0U6Dkpe>f!1N3m*o4r{p$Vu1fH1Q}d2ej^X{Sq?d5Z$I5do0^HhJklu<)9!Nz&h#hnQ^prx! z%FvhS$q-Nj&LPQlrn6w#IYwvbpthk6U(#e?6w#RnUpijeS5gO>r<-A(1@SfKRS38tId$hKb*q5g{l!1~eSb$2XZ5iuJ56yfle zl*5F<$~Ju)4k4g^55~BVH+v$cCLd}+6@lsJRGm}8AYs8G`3N6|9|BhGGw`9#6o#{r z6DaA&(L1})BHeRz#+G64tV!=*J;;7|Lho~D0b4hA3?88mLEq`rjMHEmXR^A|nVT!S zc+6vV%JSKA?h~q&uXh9%lU@ck%3vTNhccBLpg^T%jTqO#@W|I|KAP{f_*zye&Me4x z;af}@r+#r-$7bW%KXhT``j2LuV?-JTE|?#S1}>+37?RNDQJM>%$2MWC^nF<@36}H<*XN+z zib@Tu>v<^9OVfYvn{P?(tg917Mgn?Jo#25%53+84zoh?O>-$w_Bc1C`>hj)`u}{@f zN`6hXR2wBOdpN#S&4cy7GZP)|1Ngm=t`UA|x_H(mg>s#nX0xn3 z{7O@fRu{a|vardzD8AeLl@4-h_)r)pm8lao&Rxr+7h;+ZA-x&DMJYrlos=fpsxSkR zo+1xC1A;~lVf0_%TirZAZ1ramy(g(AG6btGDxXVOqePBUnLV^OHn-2uWX77A+BK!BFfS!1)gnSLaw!!!0n zlxDgll9$+a2-jJr@}Y-5su=pL_Y3AVIJL~B#`d#bDroMEl);oL5U(e#4?G1~In6B1 zy03D=;}=>i2t9ok1Ix}V8a_a;fD~y(Bz=>@(Zl~tywzgq8wr}fk8mm6qR5I>Neu7V zQPy0`jr(JB4|JzWc_g#VdNQ4TgLiAQoZytm0DpD7Gj~`AW=6V|=cuHRL zz!iobcoU?**6q8}q98ZR$M^HmJ2I)VT_gC8&3Xy>(4I^JT&BHhGMoKhX^X;ui)N@^ zZ@p9ek0bw;UQ@>EK?5E^2StQ%72uKpVoG{@$V+I1{tVA}&ZR^{-=PS?3JC=s!t0v+ z8-T4c0;AeCsCVbOMP!aD)AU3KkMu!l1svt_p)-R93b>Kje{_1A!ub1&+~>ygjESa< zUV)B6iU?Q|>L8@Xk(5;6!B1ORuDpWEK7;PwU#l&gYw${=R1TnnrjvI2-^c$n>po%2_AI9STCUqI8 ze~7%h2lY={y%FT^d(+;9tv(%wbe2^lq{+Ja8g^f@C97O??$9DzGWzVrZ`4X1>*C#y zH0)VHp)Ey#OQGxyQ=b8%`p)-*KTm&B^(EJJe7c?cgoOm^(QcGie?6UPBU}h%?~Y(F zESwMHZWNr)(7$eV^7r}^`3u+`AKf9@d_PhV?*dFe zDXl)GIcS73f@(sb%>Fvz6823*Lt~vmCw7}~@*|n~fd2fKW)W|I|C>? z+h;~^Q9kO|G{Cq>8QYbC-=8O346C|c_#OI%k&Ev&02~^QR$5srdfgFsNC6ACrrE;7 zc9F}VF_D?*e0&Dv$%1rLd3k<-!8`3I1dsav>-zy~tr5eGB3E}{ z#T<>|`Y`%d>JnD!c&+lyEOM*8R#{u-@uPCXUXJmrIEZPzZ~3U4lCRZEI<`!<_(43z zvjJsNSon5`0yQK6CwdTs3-J8BCjwNvO4UTNHxvI?YO&^Q!(or8xB{66#3_~lk`5ce zz|i||1XhRC+uN8E)`35n&usrvhbJTNmEPQkD1=m!i^rZNc((*+c@$$0`j%tnoHkldlmYp@~>g>!AjbQ4${*m*WNjBk(y3lhcfVJXQyko8*pjM)Q@E9CNIf_EWU3T^Ay>o#dPB8Km(xXh%+T zA(&vkb5`{J)9$S8?r+eqIbdhSjuW7DfwAi|S|Cd6A&^2sis>K#w=q*c0B$tZnx@p+ zZf9{;MVkZZqc$)a@{PnwHar{sMmz&F#w0B>$!CIY!{~aM+VmyH#PHL!A?psUOLB+? zGN`;GX|tuTL96hNsFhlYI*xbCuN)FqJ|4ZqB);g06EQB#TcJZ|5$c-{BHI#Ad&Cy! z6C%ME!cmZY{3YQsrfF0BhvG{;~J7$-;B1@V=s9)3&8HdbqPb!*}7X!)rot}bFBW;(BB+Vv9y@~ zlxINL`#GCx1w!N+>_Bvi%Hl zSlVWE!w-jAWB@qyV7j&s{5_GpVbwoRln2DSf-Lcq+wX1<^a_U&(n9#%bcP%Lu50hS z;&kaR4u-Me)WX0qE+t}Jh=qMi)jtWT@qEXblGyRF@<&02S|D5gOi=q-?r18yXsf3R z>fyfng-pg=K{QqW&ErB5;sL9nXJ)C{BKJD{I7}xUvwM@KkmPR(;e$ zKpt))3ythh{IAH}K69V+BW`{Kz=m0xIWdS_F>&*`@S-EWoC7)+B;Q9FfOI9<2neeS z;{I*r=__MSwid~`0F3^{B-lRY4sEN#II24oMS?Hw+3f=H%Ph! z{q9<5*_rUJ4Qvk1nf!al7sgZB!p_7~A~r5ryr4iLl&>Nb%M zHAL>Fvozr4Cy5KqTJl=9Hmr z+J>bFSc7inin*Cg@9YBPWmuhoo@c`M-Z)f|oEg~%>uM(akYZ>`a?ROlmyzbFR#}fu z8p0#!u$!w(U`BYOND;IuX^~Qt~a#JPPv`d;}&=|M~b73f&8j;F3u+s1%;T|Z^L7xUXhdy_BCyKOWl%#A;J>=(B?z>Mg9T4u<8BK zF0AveeNpCPU=#_-ue-nZD>aSz(+@oP>3=m^*ip3gShF;vYNJk6h0s{Vdir8x^l;L!o+RAkyF<;)xAEWf{3kWoLo61?HnUhm4H*4ruecpMy zU7LWNWFj@r4*c?dFb@q3gSMXVni+jQ9Wjy;GbYEb+&8f8JpZUmA zT^`Gv@BPA9tn7jjx|da~p?U~a@n%7`WRSc98DxN3p2$zEayu}B@uF2Mk{AeU2%kO%Dp&M}!J$Zn!(&}D}m9PRnd9X-zYjoFZfMfPhk)Ap@(&P2g z15~bGx4{OxnIPa}*mEqZMG}Pb7l%FA%{_Wn`a%h2-ME<@Ss=KUb$4{UC(+%>yi&IK)+luOk1*$7U4M+qH1#*6nlfS+SF-on)$!(u*>JA*`zew41gkpkH zuM3G|x{p{u^S1aNduw9?TcaViq?bIn(D?&bnTz<951FKI zI;5M}&JXjlxrnLRR&(J8OS{oYrK#m!By*6rzuTXUa~yr@2*_DV-y(CCO5Xx$D_nw1fMkyMDSe8d!xbSZrlBo;}BC0R{jv&2C7Jts(1@>`7;MmuTRE4~CqTC4DDZ06-1(DkgqKmsWAP*o$qcI_eonrza!6#P14qUxls50K~=LqIZGD#!0inl zhX{3kd3#Mw)BzL9qF@)oTZW648U^c#F3rrih5#z{aW(cypW)A~l@d1o9Rq{Xz@D-8|;Ct+0FWnY!9Sza=SmLL#TfGbZZ_^mE+Q25u- zB%Mc{+eZI#*((dG1Xh?JR_xqh={)e2R$!RNlt!36F(%N(j@X-0oP-8Q*kcRGJ?$C!FWmb3(R)m(s(%X zT^Z^*cpQ+N&f~$@7@WmoIwnLr{{whqScwC>%)eh-C+q?%7?$pjnk0pT%NqOwSC`DhwiK&!5bM%wD2DX;d*9r^9{M~~G9<%O1PLL+2}ZP+xwfnA z;v{$d(NLV)RPM8DiaD&x&M7BE5cg&GQRM%c<#-_dVjyM?2&V@*jfG`|Of`J5P-rYI zVy?*nXprzH1ZWItKA9Ce9!^RS#o~5eC4ieQW7G@t3RM^!3XqLNXT}wby-hIr7QE0A z)I8~z>Q%jAHAvCcOxFyX(`ZSx@xL}J@UhXmQaa=s(N0TJo3<^ovG_x0?>hCOQ!2IJ zD7Jo~=CN;o+U-R)rKhGlp@>6MiwGs6nF1-K#Q2DTEgKZ9+!1{?fw6x5=(>V!YcOW0 zo8bdnOx&Zmw@sXjfzEs^4^0H(P+B(=eiQA(TO!~kBWj`ows9DkpR9oQa@kJ{l|o=U*KuF!pPq??DfV6gVABbk8LU;GciNIH2zIgAoqx|pdfMZi)AH)4eP0iA zqRJo0mWGg8m<}Xe#?HtZQz|8PiBWl5a?gd1WvVSs<9;na9~q-~+;(_eX$G}(Ni)zRPj9%}YB&M_!+Z(OnantfAbhS#Lk&Y8z(=`F2CdKQ)*`yD(#AiLmrW!iZtl84AYatTBb4!CH~L5&AZTq$*8 z#q&~=9W(S@U>DnAZx-1}d$nKZST%VIDZ&eD4ja`D{BDN6$3@sVv}bz$KI}m2tQ#X$ zUPtzZy#SOM;_o&vbDn=m_=24lkmnqMyV}Xc+;14S$9tKC1urtt9=FzH*gUgnL9D@! z_*qbuG5J1LOoR>V22E75l)OLL3%L1~rD>im+Wv0@Ius{P#Jo6iCS2?qF#w9Mr*Q%1 z2(n@u2_Fv^Wc^^o5^Q`Q0v#v^Cg;2Bw4TWKazzqc;{t^iRBdZP7>N|*J`z+yP)pHu zEXO=RFqeY3#TP8v8WNgHwWvYScRg@4Gfe;Ra2}~^<}mAT$!xqsxbwWTO(Hk!1I)bi zcdhuDFk(os@%LQkB2@Bf+1==m!u_-;_kXLS+$j4s7k0p(bAn>&ytG;a*Rs%COxD}y+g>V@d z*x%mm5D2m#&tkWr5b`CBi5GQYz67C-J-|-HVsO^uQAd zZbQe-dr{20q;h2aC+er+82g=tucxGwr=Te0#6n+9eTsVF_o{{8i@d1H*xsBvyk~RD z+pbSJId|nJ>zvx)pT;^OndFqfb4llR1G^Z#JHjS~OVzhdymWnQ?BaL9dW~eJIJ5># zM-J6_SMyp8MV3-VG21{`c7Cq`0tHS15f_6Q<(Gkr(e3@~7vwP)1&o)W;6#MrVbp+19M)C7*Wiuj9w3M?e^&{kSTrvvaIPHBI}f*k z7dfE5ZvM;2VcmP5+_!a=wmyx?49%ey2DM8CbI%CE9{c20aVni7gco`dt>|<$1oL-i z*G~pf!KQIDKuyP!U1O1v1R#S3R@F>z(p-7U%k52sjk`{M_yOS;EVnrSgdH#9T$2Z5 z#84DdpmcuJHJC{+OGi8%A|J%G3WmBVex3V#0)?(?K*NQ-IjY``=juHQ^4<(S8j!BWy)LB~y)*XJnXJ*xsW1r5vwKJsjKf^IQYy$EMJp(`T>0j}=NgGqeta61L=Be?{Ea_?v`e zvrkTWVj+|Oi+#>KdYE|`esyk?a{FHoU?SqR`}2E2X2&D3pORzXF1JUujz(j1NK;KT zJxC|1Vd4M&0_tu?O2c|dGmy8^XOk9WIYLD9fJ{HvOyyQ}y`8>?YZoscf zrNMKFVDwF97i~aHh)*MEA;mbq)cLz{er;esptDD2&K`NAc92F|NE7DR6hSPeC{0Tp$krjDYWg ztce%4^Sj1uhJ9d1s?N5t3*wfae03oWCZzwEP&b%uQ7#%UFwi>rtHvJ7gQ=5m7B8@T zJJjFhixr$s*fU>pg_u849|9G3N7p8G^ckWpi`CBb+_Gfy|Cr9C)(DR6{<}<-(;|R- zwjEb$3Lf`b<9K|Vh;}0*HkPS>m`-JCK!^TDo+d*8hfuca#`M{R7|=MM7=nn5GVtR5 z9)N<@Vn>jly}F-Mux}k$9w4Ftgelj#R&$)43uraEOecrFE28te_H ztP04~wnv1tJo(b;ZU&-0#r;WgIhqrBtE|MRHH>rWAu?_R@c+;Q*ix+xivC$KefM@L$~m#J3V;f_?~HO1F|jGPr9t z)i43^Qss9H@{yF{bWSMoM|O}-7p(mysn*@+O(+k=2azP&RF#k1>CwcN!LMU1f4x9YrLsw+YCO1uTcI9 zFN$5CGGF35m{s>&`}t*G_?-TZlgEBsr@~<$&XZ4C_j+<+1cj1*@V>Li1OQwD+6J08 zmb}sJ5zy1#l!J$%hJhHQ;x{n-7Pwz;dX?Vn;=N64#Bd2+S>yvP!ty8V*ZFmk`W>YH zexvyQ3xBtNESUF;qP5?h*lGf&D*rC-AJ)MriW58rKu~ z-i;yk>eKe)BY-zs@}BnkDS#q2KrkAAZ>Y&>P}Ju_7xM$Tx|78WzTa1O0!o07!W6QA zo))*>~SZCxVQ>1zx&G)un(hyK@*67P4}A%FDrYxqCvqpcn{N^pf$l0n};+} zH)Nz|@ACa4^DgVWd97QrT9xD@tI=sM6~d{NmKlKJJw!KM)UM^NI?Jp^Zf zR}wWt!P%=sPpkc^*Y88jMb2^F^Dv9i2OY~-RcL#OOfD&1{up#-g|&K{bNg2m*N;AZ zs9%YZ{eUk`i289x<_{9GKcEL-5-lWJY4-EZ1aq#c3@&YpftB|~XDG`OzNNZBKB|v>5S0%0+v7EZ4CK7G4O|Dr5_oC_y8|_Sx#X`)U}^9}=!Y zRQAqoM2r`YUbO?OD>v7}lVro!j`=wAk>ZJAg`a?KM{F2qQ(o$Hb#GI8-${HLK^-g9 zJ6Q^X5?suE4j`FkUV$6apaj{78Wj1cGPr7d7%#)1o<~e=kiTkX=fH&fgc4pqK#piX zr4?n;H1Iwy==3j){-G^+nx96Pswe8_pn~TsXpn$odUI{4AYOj3C>zC>#X$}jQh!36 zhA=VWdr1mkJp2?C`Wnc?Axvb5B^nWt=H;rYGW?jPi3wp+7wEr$#)&!<{1@7{vw>Xg zE6Vo)F&IcWJ0_N9MPFi$3e2*Es?hus$oJB`28OC`W?{}mn4tCg@u3_6j&Pgq>Q<}7D+dvoh|A@twJDVn_54tKbY2xH~NRknx-wsM|?8) z@}?!1Ad8uF1YCLl#-$+us7Npb6BnjQ0h|IV-;WS7If^WxcyP4dC-!_cL)FdrtK?K< z06T#(bM@XkM*5X7zY~@Wd3Da*w z^F7L6EovOs5##nabA>Q<@dGbUmSjH4E*Uua~x zLmyS?O3mk8mSdKGL)Wok_OPcB)SG54J>oR5$c`v_V)BeMWU@;3g0Mq5TeKC*)^TRU zn7p+e6zkcd?5%E`ZCNr`4~OTMG;JisUQMu(!Lr262oE%2SrOnD6-wLScWZl6q9CQ| z4>@`wYUqt6!~<)E3JFBt&vS;AgNjIlE50G{KDIb`#3Z9hh)ryxA_7CYr86K}4Vi+r ztJlx60)FDRL3z49GO;cD7wg;xHeaV++J=)UxU@RhSN9Wy4ShHKgk+l7+vS2udMlNA4o$-#$T0V^RqQv6c%(xW(CU4|Z|I1sWf zWhMjKv8MIP#3@LX>S@+2Mm6acl_{`9MIWNoDP7&^H%{Q6&^!Exc(b5MAcVt^iVX<~ zl6|}7m(iwzz#9F-YG+ZksPRmfLJSo*k*QoOgZ>Am7eu0$W-2wDgC779yr2W~ge2Nb zA(esWWX7<)HYoN8(%w>qu$r9*O&mNauyo#U57>;HlzcXi_mg`ho<@erE@_Jyx0+By*nd6s%VosMw>esw{1o^3Zmat z%43z~3I;TsD{Fgt`^A=157qcyrDP~C$bL6K6Of7iVQdKVA~b-Ua->65x&bFbK?~EM zAi$z5nBJ{f*-gfc@FYvfX!#iq>>v-xiaCyBK6{C2S)}d8P+R@GcHnR7{W^>Ffmo<6 zdfcz}OFzQ`PN0c)x5=&a6t~ysP>>*eaFbo~#Da_^In?k}49W_gWsTfR@6ZO3$D3_0 z%?Y{|OxuC?)hx`OI7;8ip?;oLyI;M^QAaxtA(P#>k?dwe5Q+|#sMZrlZ<6NcqRZWP zF2JPjcIX?pL;Sk}#<-z{7I}Z-B6B{_DN!ZKA!3?PPpYh`GeJ$I>kCw+ttxIRM(2y6 z3dY#rkp%(~sAQ$MY_UoO)i2!r^*%6=w0s*D?P98YE#1I#i~!Q#z$tLBO8f-oM6em% zZpic>T%Y!)SA4G-OmlK_;6p`0i@2x}##Y45pN3Qi$Vi%V{x2QBK-tdMC0j7}v@BrK zy+x7DUy>~rog*|Rv{#U>38zomg~SZM_PF=&AeIZ%0>}kL~NVx2Pp`5L;S&Ka}kfJOSV8{*%NUU{(LZdQoOpnNKgYDp`422)e9<>4h zlN~?Eci0H1pMgoCyM4dKClvV8|Io^Y+0o~B)7y}=p+3t7Eu9!e5jo72;~&imRmSfw z5ZXxv3pKa^2%y8aMJ5qR@AL8DxelZHI&&j$s9+W2?`ij^+X&1UjCyYMEMi!s4*<45 z(o}s%7S=zFv^2&aP5CQ z%sf=#gCRu%7fmu{8w}CMpybi=9a%GA-Tre7Y*$*<4M%>bJ-#piBn&p5Rb&w)MH8go zJsA@&4Z1O3fCRAb1=j`rbW)&PFuT5~}q?sZ0yFCIL|Od*6{2x|Pv zZj84L!D{9Qe?=&qD#LKLS2e7-Sw32^>bO5KyJQ-aFQoC5z1D9>466s8;`p@u9|%K( zDraI##=hrQ|8)>;(p$j-#&zri$ca?N>$3cb(YbA7zfII~G_E|o2`dyF zQBUxMncJn%$%xT!bj0az8DA1xl74Cztp;HnABMk6QFYACNn0mFn&?cr5_0}k|;ISwc+KZ`O zEWt}gXi6+&`!Q2;;uf}Fb&m>OF}VG7hr7MmDNpND9%D~=uK!fHtV#bWZ^67c4}NZl zJzrhoG2)TxSFk}*Z(bhU{Pq6i^cg*X`QEz|w)aeS#H__CJlCA_%uR1Fg7KyzEi=;Y zJH`MJ6FoQ~{@SxaLEOVN1|kC0VUMShovVgPdqtX7GvjB|R4@_>k_JwtBNBMJjjd${ zz0z<#9YXBs3brTw6g9sk#d=G~w?1cq4?x1i*4`j6^-_Bivq_x=rwQIiS3_wlNY*?X zffop-9W}H|9NRuqV>@jW!hNG2j4wHB2@$~bmH;h-&j(KvMDBFBZ6vzEF7n;0QV-3` zp6e!v+LAu{6Ti+eDBc#EBI_Zi{buUoFGVE^AxAIUSDFc?zvV`}zb3_kUo8 zI3^&RgtHYGx7U!wrdqh+e`!#FNKe!As!@$X?koInIv#TO+WGDR9sd??QCXa!`}jhczP!gr%{lE(H-27vA-d= z9?=N@7GZcSw%6Aq_CrxnmoLU3G0O)gFCU1%wa=T2eQ60rsn-^5D(lfvcjox+VUsdD z9wzKjX+^5zp;KO2`}qU$e&X#FdQ33PK#9j5Vv(uw-|djZF|dbYd7Vdff4%E*qfJg1 zN3YqqVk#&};G-rjY6IXZoM6aN(&JWn&n(;(`-#LCm8!0wUA(Q)tHh-L+2(@aNu6Qx z)F#rOI_c*}L%~Ws*Ys+}P;yc(>o;s#MZruCaj3{VP=;XAYiq)iPym%~4TkktP541X zWhP`GE=H+K6~^i?O3QG$D_Y$$I8540jStU0_!1J+LH;hL3ydO9hFLyZ9xb-c z=@mJl3(<76M=qMb_OFMO#PV`k=$&h3UI8y#&9`c~^8uE$SyX_;4KFU+-Ub+1axwhdeVdicnz zmHH(}!5QhjcieF(enstxcmTy@NYi{v8b6`t%^2rsOwKVFoDB>|NVTPn-C4bAyT3j| zFbv8VMWT9jXLvz^azhjbDa-J}4Op~kg^|9=d)SipZymWu$?1?v`g_lvm8LsA?ex9!AE+KY)UOQ(@=G_y9(*7W5Y`o+nv!6>x#&2>Fv@a?BxS+O0-LU$<0cEe-L? z!7Kp6CxojV+fHVLs3NG4=(9HwS0nhzr3h3`*wD#A8g+t=!q)}Q;Kj0lh+Uw1D|Zh` z?S`CCzY0DdJk3|P+_FbJCT#J){o3(bM_N&{s>&*c6^2fvS63eiUjsZum!fq(?imQ1 z)ekD%r0kni5+MjPO!x~veC)06E&)a5^(OE|_Tkw^5XJKcm3J?}9*ms;aaD(Ygx2}YQD8N%znx^_k7K6NSK+XA9rV$!QvQ?f1#SkD#mtnDg zo8@KI5&3j()LVgadMEe@uV)T>W|laS{A|K*|4SApkyJi1B~h{Kh()=9u(*Jx{yfZr zc-6M|hzb5v45sl{`nbC_<@YYH!U7E|*P6E%XkUR|4NOJkpRQ6xwerZ~p;jn?!;%d` z`d3I0l%`iipLkpcl9^I=G51jLthN8yZ2t%oV+avJM!L%&0g-|%c1II}C}N5*^F*RP z!P)(z=emx4QQuH|QOf!L%+mqnE{LAQV{EC%*dITpKPj?yc{J7|$4?Uu$p`NYf@syJ ze*U!c0eUbv_#a>|%eO!4^v}y0z}XbhENJjOG#E~03^6=gJlgA-;0=c#EHK)!g{PV* zTrp8dgZm=9RUUzJq+6f{+kn@C+}co)LZ>H0${MRlYD9o3)VrWXfgm9@GcT8v>_GHf zL}Eha0UE>ol!N1YHW&G#R?bp#?=dzNb#u|q9B7URfo&NODulC)D^=ua${!hEn2rm* z^(WSqPH?$6pZY@4_#Lbj$swmd9|}U?-{R)IF9;3c2q2`~cE#A&?>Crf^O2hdW2eF$ z2ikat_b@V)za>Dy4||6?twi$jQBUyKo+nqQse|;=0?R%|4V=yytT|J%R7;LGjtB<023Yf`HW0 z%_rt#x{sHh0TJ;itnAtOD(*G5QZsb65($4_%vQRho#?LA+Ks%Ti4DexNjq0V zu`acZU`z344D@3xz~R~uYngEw${d7iMBA^ z&Ogvt1kbV=0N1<4IZ%TfMynxePFCotpZ_>2H|CBPl16O)jUiG6PR&1O-qxTaXhfFE z6-HGN!H!j%GS)Ts6H>gWR}nQP)TQJuNAJ?*xPD&#Np#2_X zPz=h!UNIJ2_k?pN0QpCK9LiZfD=PjWYqo=JC5!1&h!UhHuZ|%u zda$2^x*u?qxi-zd?(peQ*E88yWY=seWn1K2T!w+-NAxFAt)9W1hxaF6Kht^epGEne z$3u#qcQ_4vc^l&gp;TSWXMsHmOAAKivFL>&x51z~ASk)|PP>QY!#gXy5u_}A&xwtj zZg`9l59dG_K-c^gqduYDghW+L_Z>`Xiq+x;0;ziK%q!fD_F!>3)T@5g?zF zD>%eq5Z~3kKLJl9BadslNw*@U^}#R&VtM^)_&&vua*QPCi6oy#s6jc1qL0mXfnr{! zJ@K2F@hnAYxOI+)`Tw1R$xl11Cp*oP?rGm{u)f{!vFHf^6cm~E#i&uqa1%ap_&61= zwqe?n4>l&~O=Q}W`kAo?S(h1ewN$OvukPK1%A!6JX$hJ0dPz%Q{jFJ04aV31h`6D9 zQX$69+~^s__2tY3+u95Ac}A@w?FlD~zDQRc{yv)%VUk?8O6l14{eT&})EiP12eh*? zGU%u1PLKAOE6d#M(WD5Tso=+aT42C;v9o{sOkh+C@>MbtCyy=HAJ*Jo!`=5_s;?|s zBJ4|`K0(7W!m@6#zv~g;E91h-M{0!xc{uH32ziK-G@Beiy$0VOhIJo}p*(HJlm$)u z(hR4&lp-)@VWZMIa#nI3F|k|dAAA0Z8+f)yv2ugWt>Fl(Z~{>7x}N?H`D`&S3{9FL z+=qEpFRetcJw|*~*E_p(BUmofrNJ5Xg)#9EUuLa@V;7vKaKuYDBr?ARqYQv6#GWum zu0dCgjn6zNqAuk4?ZjPPybC*7SS%t9IBjq)W))MTZ%Ku|3CZ3p<(o-AkN_wUlV*45 z6x;&a1D zvE^YX;tMdJj>1%p;*(K^fyRX4^?100SYNp_X;oSAc9;W6kk%{Dy0d0MoZZhK6j-S+ z-c?}g;^fQANYH@5|SgJG)BDzk%>5ItNRnYiUd8yqs_~Q`1aK- zD-V!(bH13qZ#Q>v4+lxfZXuas$YLn3r&zwXRNJ${1`0>y%RSC@v!SM#x`uC6%jCEJ*)`Apx6k%mkoAGi6 zk4-KtH1_PPtZ!y0nMB%^V!Hcm&*;;h89eo`PjkiQ!y+(;^uz2(q$ha7qB9s$jWwA5 z%e%3=5XyTX7^xSAEx}L*f%7XQ|FRTd$s>qf0U53m&5@wY&9&h#x32A~1r+fPMt=I1 zHw*P%g=r@##>-w?8u|$~nZceSjcQLk05Nj`zSo7$Ry}!1{uC-bavaDX4)&5h+Z(y4A_gyaTvVh%fCT_kR^B zHKO#~U^hDel+&LabJ!Vs;?*0o=q5NCC!*A#g4#ggzt7=5q371Si=h%bonZ2 z^gd~;cX$i(sYA7^;zo#f#KC4KIC+SSLo#+t=C1<5c5#1#+UjHQlk?6IMWcKWz6ZawEBxPC z)d@lsOFfax%IeOCNXA)WRopR z^Ouy|L7&!^eWhaX6~gPvA1f4U&i7o81YH0_8saEnA!xExDn?XQD3AwT*PjgGMe2CU zzw(Bo?!=DWp2(n^*o6oa??}7wl!J-Mq*oNOyLxW2DEers3M>o*B88GQw@TIyN%0@{5E+9uwSbVm8Y=d z3L|vU=$viXw{gq=L{0mShAvVUFk69Z#I^vd{Nk(#8{5~4Ouq9xfFOw0=tFKIfl;h0 zPp>e0^VEi!`C>e7m8N75&r-xnFRs+|A~k6Gyp4iz;GY`+hjf#)%j0P|KKzVRw$}V$ z1X4B~jlAG(J&SY^-Y!=dP(_|LmLYuM0xDu^2FEY}!CU$V#p2A=zVHHMTMp z1lZfcIs!k-2D|lq1lRVxLX3&RVHoSd5nK^A76xt?&VApqJE+qiLos-)yb-=-tz&!Z zEqzuPzbf4EXJG)|ML~AD<$Bk&=7Lw8SOK&HXIergw#+UQ!MBRc69)7Vs$f|yEDQ61 za!vnc1`JOF-v|N7&)}o(_U1XPTwVH&m2;+u?{=zTMRLgP!F&UlVqhD8Nt{Rc|36?x z@fsixCyiW|!kTH3ehGDWcZmh;{A7Hp9E~+Yb4$3%dI(1PU2BHca zm;sMq=}N-X3>L3T2=3n7r9q&Znz97iq~L39H{0re5YE)wQq)VU;MPf0}JV^kNc)s~Ti z^&XugmrTjL%T(-E!1j$Y-HK%Vv>ZaA<-P~+oHiSHbxUSp{`Q{?|CsGx_f<@zNbn>% zkNW(MS;h^>RCJ0~1W)tV_+z#o%=saUHX&+PFOm~*5X9#yv8GWmwU|svN?8M=q>W=o zqqqbpxe5Vv2v4#F)*T(aOUV@=-}`>rIi$zz1X8>mlt=C$O~mi-xM zDH;w<3jf!nfxjA`+t1f^>&0tr4=-vqvv4PX&1Gz=Fn)LT7@q+!;^7^85TdX}<>a!& zhyP;kyaOL1d4PX*gb$Jj2EZ)nW3cYJtxqP%UDs_rK1C9|MILOpwgxfL(PDCaAJlg6 zFO~q@$Wc9qhz0X;oUd}#y+XEQ#H^dtHjJUL(gxo5f&sy&Z-#k?WV^XqRO$H|gxAAM zOy#6$Ti)v~_BCbyXrT|s;SjE}H+LMn$XbKTF}DMa7DgH|DF;Ce4%(8_3eWa$sW%DP ziA`oW{u=)D{d~!}g6Fi_RI&GxN1G5OV|6Ed1K=i$N{sl;zI?K)zzm*-axZyNZ+~W3 zTH;e&o1YpucQ0hujqI6e7`k?w$rwYIA4HPc-v=;jOPeeolqKs@Gmc94I-{drG6%w0Nj}% z$>1np#cGl>mjz6O=${2MBV?>J=DL#<*+7d3T{)qD!UGImct{%ZMxcl_0%8zD#E43W z--|v7*eMVa5hB2N(~Eq&w*MPZxw|Q*zO~Lst9=%*j@u6*IpFpqRgXxl#Y(p1KQ77e z#M(CM8ownhrV&tdq4s?Kz@wo;jXzZn;9h_gAphSdbHN%?>-4#|a!7OV3O&V;oWsWC zw)PZqc%KzU=bT?!7Ve1NZis{9{Aly1L-AH}T}*3JT-+Go@H?viW*YoZC>FXgm+#RZ90WPuY5;jaC_pWYV!u|M@ zv-J6O`j%1|_h@m80d7u;)ni2`svf4VCT;c9IFauw!|KAwjE&*+(g@?6f#Z+*v~Uc} z(VYyRw4g8_BKmnxYg?njM_1~-#qj6AI~M?-$DBN^=F?gtG8bv+#!*H&h>s@TIt;g< z8c4yM8=w@V`59*1y~pC{+IWv`pAkEo@*wdUMvMGr(&iL?vmfMP zxbOBonfC=llmIL1h#c+7RaF&PX9SO55ZQV^<(Jb-waZg;=FPs5Qxd()?XA`V7gaI< zmGdj&$g4}L;2=}*S3EydHxz;BU~f&DijJrKbTL{GDo#jU#-b+@Hm49Y6-^*=Q{L5Z zeOi|WZ|Hn5hGM<|M8PHaiO~DZ9c-N~u{5JRs%0Jl=qI;VP_#!6qXmm$c* ziYX@`t=cvq&7ldwAd~x<7&&G^K@yIUCi+Raz$l#gB#0@iHo1s07I=wa=oaKQYWaH` zG`%|f6-U z8AqzSARA8xHG#`Y4Ci2sh25`*CWV0xD7d~8c3lqZWXWGbuSiU6budekyKZNv`c}ul zbu4+x9~q(Tde`B?X)XvZEeq=Wr7D@al0TTPWN06r2A)-EuNZ{I>c6f|E0Im6k!s#w zZ?ES|z2`gO6C`CqHIJcTK<7$-zsMt*71A&S5xBy`dmj@!I4>n}t8+qmOj`Na7-fYr z%l;UROE_CNedLU(&j`X^8p3o@Au*->8Q0r@h>08v>@(hbsT&=Dp(x8YAss36VWFr+ zkWGNXonp8fz}IA&5{Ob5Zdc$^@SPCmUgr)=;+$hj?~rSXTqz;18`SRXnlGi66p&Ic zB8oPg1H~xXY)NNq*b*M%wh)^N5;yB(24esd#xVfgiw{^z!DA=IU|m8*cS zg$HGSJU?)i;H!%fr>($`^?H|&Y%{N^yxIFI2b^_R8l86+!?VZ=_A3kz z7UjUP)btv#l7Ynsn$#N-mn&RkoP+zcY7@7mC^_7mm2NvLWi=iQM*~^h#J#)abjPt1 z+bTl1W4uwhYD_e@`<3E0FsJ z9#?6|{LvNwSz%dX-5)zKyh}b}KbG30xocLI4cMwSLm}_F?dVU5+yM>%d7**BCnma( z(j=e;yA5qVBrth)yu;oMBMyI0Yo{*j>fF+ckD~<#_CqQ6O*LGd5sjkQmRy~5eWKWG z9%jQy@EbP4n#g)bOE)F#C*b}`lg}S~0)`0}ZmSNRNFscGiS!AOj(`Ip94+?JlpqwH zU=nCf)ti0N-ppx-_xPmMDS$ZgqPh?lb`7=mHpZ5VQFHsW!97@Le<`c;mRxDC)Dd(* z^nJZKfeX~`=ii}C{ORhGelE<+pclp#06`({#}fWw=^Dg0csnY&#T$8o<{ib&IBqa- zoXr&qqFhC_b*s2D5!00*_{K>g%>qV;eRX2v2JjOfr9{?&h4p*U;CPZ}Sxb3tN*cj# z96I#j$!~@wzfq-5dY1m1)C$xEC$>NkhN%JDM)i7=%Dn)9#UQ)lsbLsgch0puuXh?8 zknqIk{He&Nu+_vsxROlK@J@^9CU26gRr<7yg) zA08Q!k?)xyI9Q<+kHLW&PxXq=fJ^W%kAO$s#}K)seg>84bz9H1ca${k`e%4m8{+ud zGjy6NxA;+OJ|)xjp^1;kMD&l!(TpH>MA9cJdpy-ji(pJ@kjmNtUB6vC8BoAa^#e_b z_&BKzrL4S~OwQS;wk}-t@81uxj=zCFr_LaAz~-_k=1<$vjxRun2Fc}!kt%6H#P@>aLKNT> zk8}u)jo%o330T4{R2SSDE7uXO;eo>Ws&oq?se8nSq4cdnViWk1AhTuT9T>ekG{G$z zu7eu|fru;#`Y5bKQ2?1qne%bmbx3yv9c-ib<9jL$x_UPw@oq++vNZg+Y!!_e4ox40 zjI9oRlNS3t%<=~vjd;uft(x4gx2yWrz^T|y{(yzCTY=*WtzC5niuM)TT0I`EZ$GoG z4u*5;@}YV89$oP6dh#Vnw5*&wZI8|w^cy$T&TCK9uZ9iSo1uAw5&b*$myL>WFu)$x zJ3tRVNgO*bdCe{^7fU&@o_Etj!TucjxzAd2zwdxMiYQzlBC+*0d0SGaBsrxeR{M7G zP>Q-9o9}vlq!Da09yc0RKW~o(2C;xsCdNW~DFcO&=&L|*ZJd1?<2aC$z4^+EVC-{6 zF=bX7a1WwjHSuQG9r8657ti7k5qg#YW;S%0crS)6op9Pk4kwgGjQt^KRl@RC`wBwo z#On_0iHJvQ8c^rK?k6>~kXMeJ`)}%CBt0l38{OKv@NDon@N&SptdeO^pjn;sp=H!O zRNJ7RT5^E4yfJBq-oGIysK;o5!g5&)g0$0$QK*H5A zwaLf*;gZ&iJkB|Dzr75Z@UVs55eph4%WM1W!Yv4P4^IKf^GbH>B|n&n#-b@fZLkp- zBPo`c5o^y9fKU-R{WAUSZP39RLdoCaIR+XNP`zth`swb`L6;Hrv$V4_-X!Tvc_|Pj zOmBw8xa5F@zl!5jNx*Xlfy4!EkaK(_J|g-tDwtvB6;!e^sL2BPF9S9~W)i9$%%8V} z8P~~&Ax)*LRA!2h$~l+{z`8X`VEQ#8@Di+f1_KeYGEQWsvj}ZJ8x11ek^-t`YdFMR z)65xVUi&OYYJy;57>oYrp_<=@{@SGvLwS17Fh4zx`RRvl1KcP0nGig#x?xw`dOh{q zW!1MQtxijJ_~b$^th=Sg4RZ2RWWdSps)dr$*7yvUFw-xP?9d{ z4E&Um9OQU}cXJH~Bx=d?H67K@N2^|GK)c^N=YqWcT@do2HU%EK{!`)V)s;lrs>Ex? zFj#L0H0O_AHc!FVPBZoM&YwV@p;2$qClf?XAkvS9Ghi(MB%nu#=3$W%NOWjlNoabl z)x=FhYLqdQcII}!N5RPJc0Li`rFLI@iN*;_%!bFz?6tIuFkOJvBdkDkR6QR*>QEAV zR=+&9*;Ja~AeW*IbOeNZOLt9l_Xv6zj!Qnm?9q#V33CgR z<1liu>iMPj+Mh!d3msVw@2}7S`i$EalqC`9;p&+9E5h~IEUaeH=eVbh;eq$H24{RA zGvOWrIa?J(oP>AEw-Bn?mO>EYhgULe{V9a=j!|VAfRg9218Vg;VW6))0K1E1pOb&1 zqT`aefQ}1O&Z|Srrh|wv$&P;%s&!8#N1!6iaSn8gbuH+<3?qhKBz}CrOT8=OwVFr| z@8OI#qn=io|mw58vO?-sCV5HE>aZJ1|Eoz!N3L?m^?D_z zEs&{{!QMEu(}Ab@=y+sZ@rT-yT})f@&>~Gq8AED~2Txz?1=`$4F$Q_ae`qFv`yFF} z^&=i>W2uSnrQQw^@-{%$)K!?~8y{Yh7O9LGmI;)JpmU@kFtSe!oVkjh`Q0t!1{pRs zS>V(=Nz}cL-AOtLYg7w{oP1YlD^EyS6N z?ob;LSm*rXMU#c6bl)rMnD;7q?~aj(Tay*)QNF}cc-s2hP^7&-#cJ-G}M(zW{R zNLaEefJWOB#Xjy1o|uCWR8nNuMuE$q=+~mWl+B;+`56Sh$hvIHP;_7>lag4}5$zW)ExPEG|9(1}ZW{A^%1+FS()1YcpuT&UPhlN6yATm$xO; zhu@@8V3x4M`PuC9w(ApHU~SWFBa{eR|)_dB$}c7~HmX#k>h`nf)a>V6QbZ0MW1%hAP37LpU;7Y-`nf5J(A!)&|hahh9{RPvO;#`vM zfouuWo$L?as>o|3!>9zCAUZ@>X-w7*LJWj+L_-_{mh^Ha_pG7Nk>K_r%TwzjZOxV1 zt!dxX!5`o+a~P$r`Ce7%Qi(ylyeT{xc!A^vpW(8qxS1Eb@)IA1HV6J+dYkf!{-+cdm zAl~%WlW%U_nG2*OiP`KhG5@gG9bWk2Rm@tufMC@5ORW2_Bz9Mg?;JC}XO<*xKY4{I zJM_S-r&kKzA6}nM*trkz9P-Z>W`7?nVJ6V0=A{I#YfV_ctYV^|tpBK?C;Z!-U;J{) z!$PgojJ>b=c*HH&{9^2n-uqkpg6ALb^%#v`5?r8}-AXiui9|J*{`iWYwMumdTr&@`jr#z8V0v;FZg4OpUx;~W2SHt_qPwKaGYTNYhRNzc_ zu#_0)2g9Yn;h5!cMf=b)QHTJBzB+?b`mkTg`WdrTjD0so4EU4Hu@SX_6l=n`xTouj zP!w80@IB3NsWVoq1H%RPxT=Syk77k*<{Zoz?LgfXf*~u6(w`1Pv%(-F;xD=^p7Oak zMZ$AkUSlta0w>c$gzeB{}t@VMY zzs_kw5)D#yYbH56;BzZ!L)e|5=Pp6|Mb-_o%GZSl@bT>CYLv_Ah;6X}h4cjD9LHqu z3Y!rjLXWj`uM~qp{jwSH?mOHrv7HV~3yE!S|K)4sl$4FD63*+Efo9;h&{$r!T zx=E|l4jg@G4nPxqiQ%XPo3`ai+Wz zvgZ;iO`rq-k?Ry2%6Kp*;V}sCj>j()*lGI4@8w2WjlW#C4h-@@oRU-AJvE-t}*71plX|M_@-Z<=7UdVOZHxU zf-l11XcWRW$VsoG&~|K{JN&DV05d5Y45-UKMAVdVv*_iEIUK>7$o68ynH<1JdE=Np z5e>-`>c$}-OgZ^~U~$1ic=&R-b(t?oLmL;TtUj*#r?%w!<&L?beZwRo1sy;}h)Z(w z$bbK*{T|O0HxXs=^hzMv!G<5vlt^+B988E1dL>{A%QbN1R` zLVOH~3$mRz0^)JSZh4`3mtw+T{5R?5%{J^_s8+<~37()r`OqR0)Y|}3iI{Ty-0+0P z^~*T=uTl%tm`+Q&%_5IZ(E_y#1TR|X#x!;cqcL6}PXK&_%qZ~t8Ni732xaA|Y`lw% z3Rd*n#J`rFWHSpKquuVDi)c%R!UH7o;AzX&5jvs;egQ@F|g$kzwWvi8%~CM?%pZ-!ROTK$-x zzIJ@o`YW#*uo7`d3z zyk!NFD7~A;#xxpm5SgL_*hExF1Mh2 z|7KV{i4g_`VVGOInLMUTwBJOi76O8iP>Ptco$PY}ZHsFHIYy%QNnfJB^LQY~I_?vY zp1wm2l0(TMmEF&gbFc-%9{IhaR6~glGNz#1<9Y1a#*PNBx{HeNx>M=UpOSKDU(rxC zIN*r@1(sVTdc^l7A7th;F8mV1gMWf?9${Gbyu@?uJOw+?!s|H(`pDT~@)I)Hfa*RU zi?s1CF)XGg!uSAU1h}iv=b|PdlC0Er+$(r3ojnzU9a5u0cE6hGe++uuxLE+V za;u#)0;G(|ou6TMrG2%G82WR{m{r~~8|k+He17@MvwC&vlfvdAg%knPbO;ES%qfBY zlcf2Os+m|uBuJ6$vT59KdJBbQ11{n2UC}S`Wcb5Bbo8d735j~!^+aw*A|!4dXivW} zeamMv3!WhxXy_Efw#P6X^0T*-Qne#kkr-TZCwnp`GUOgtvi3~LS~UArGc$~lk#Xx@ z(3*$vBPHZ-G}vYnd53k^1_`?vz}p+cnW9|8GdiS=Z4k zQUXo%uDsT23COIo>l%{8rIuQPkxBYM5o#v+&R7FDr0MaY%Y!`cCxkgefWyex;7{Jm z{?{EKk=hu;;9;4^DYJ8htddj`&&nS^+P{F)$%=SC#8aUHY}fJvudwSaVX+X_y=zam z0pSyAxHgzwG1Wf~Lm8YTc6MPXlUZ!SqDpKdrv)=Jo6Yx+9l!kF3Wp?eD?=7jj`lOX zkW}u{3pqes&GpY7;St;?y`Xp(Cz&i_+iwPfy{D77!^u}kqgbItbN#BpHE|n3uEg|< z%~g@!ZzPfzX~?#_Pb7`t+qhldldspXQsf4Ks}x*}81#3@lgx3si_FbgBtCa#cyQ9@ z!RSty$oQ((DTxpJp9!i8u_UpKPYwc}%ewP*od;0b0#|qdb+?F$f5gsrmuUd#=U1XCRyq<7&q4%bR>VZbBsE z`g7*o8!!o$FCGyCBXSXw_nHBF%uQ22KQUx03=62dmc?L9Tv}N+IOx&ijts|$X9}M0ieIQE99sO2&pM*Xc&w0c(Z%Qd z*!6F8Kqe-$j@>Fb1zE#wE`=*)T;B+*PLNOwSH_4UOV!c%6mCSEgjA)015)N_WWU5- z9K+@jmCRjKGWVJH-U*bgqGtl^0kx@oDT$26M7ygNyE#&cF7lKqplXsGZ%PVTZ$N=A z3kQG9ml)8nY#B`cL$v|CV4rG&eDGI-LV9&~`Vkl|v+!5L2MVSg^N)WcP@imU;jug) zj*r^65rxU77I-=rTsLxnTMn5Rd}K%BxozYeesgG5oo4dp-?*W53vNs`wq*5c-SH7| zd%~#O8O~>1vzG%8T4z+Ro45u$~{maq9dtuLx4MuK7-Ob;arHC#xaXkH+6f2@?@NM zb~cnJ$VfA34t)W4pYr@i|T#0gQXf@hIlUKcXV?Kj#=G? zQbr#ZQLVAZ^#-@^7YzD+Nm>+GTJYw)#4s2ac<;Ul3Nf=S5A2Lb(_Ft-YTlVwz^3*$Jw=uEO zeT+AE3^aRCPkCo^%;5?gpLg9Yc3^l=9Sr}Pk%xfx4R0R?x6C%nHYdXE_hWjJtoI6~ zDQ(5z2OKyaJ1`=oNw;w8{o1;4p5x^oF; z3Q{eVB!@-3HwZ~-CzM>x6t22uJqaN+b@N-z)iLce9hjhvvL*0es7~TG7m?^mDA{H} zJ)|i1o;_<~{pLwblfyB0eUm1b_dRM;3DI^;bNGz%E~S`qy+1FGUR4&XhjzxkYD+~* zH59S0a^KcfBG#f;;;5vI5UUe}TO~-Z+5<2}aj=VbLN0wpF;oxXN+#O4kNxQ~H69|qqBazi1rM)6%O21%ZPo0%_` z;J_&W{HxVb!(?D%zb3+OFaqUKSJ-Dy z;#C8&PGnI`Ro9SY?d>chjbg?Af)a$W=N`l8e_=)>?&#SkLLi^*Or+j6n2a_gbK1(R zyBcEnyOlCr-tp#ISF({QuAeRY@P3b(=EmdjZSNrMC^jJ1wBWcy`TmSlOk$`V3Hm^7!=(r`|{ounV|B48~MGFD`D{wl6 zt`~7;NK4DSH61O9huJ|@Gn>#TgGlbD6RJ-7J3m@rv~^sV-tgriU~?&|NBOHD5WbHK zNT+`?_lEP!*NNJycV{|4tPZ3@fk$pvPlr(8AxM%S?zz)9DQVDAPg$LNDuI9D;)WWT00~{-hJ6cD9 zxup$UtZ-!zMyR5$gb8+)v?M^QgGy<2o7@Ro62_boufty_wtq9zu_?9U`mxXfGhoN$ z14d6<0k&I2z2E>+5Cr-OvN8k^ku)U2Um2Pl0Hl~rdpG+EpifvD;HM+o7SnuybHZoPL$LlEh|Bk*})tN6i&a%(@cX`XRR(X za)uR;Sp3+-mdBX#HrNF>B6i_RuZnD#+OIb^7>=}~Y7@JhgrhsIs5d@D%o$jqc4_zY zivO$W_~S1D*M^!F{Tx|qYS}v8f6s~q^FRefQi<|q&-J4@82?lxw|GZz$&t5qYV7P$ zjH&C04Im6l7J*8lCHej`c$kUSqWjAxY$gYz7!1-TZS^S6QT09U@Rc^=$qheSmeNZj zVvp3*mz2ForyCI6V&}OL9{ShdMR6qqL(VWiLGBxd9uBxcZ2c=7MnYdSOf*OaQa2lr9VW{17A_qx?+jG`I_K4-)z`z(@kM2v$D}C+ zwYc<#87f z@%<2gw}BL(7`|X59~g=9dJhGP|FI^k50@J#^}B%JfAY`1Kz#WSzgpK&h|vEHLrmCq znT6^i0_=10G|X0x0ELxOOSi*R72Sxbu&X0S*i=-Z)?IsI`17phy9Q+J%9%F%?o7v; zNodxHc3}qA*1i|!^s6O{x)IbZazJX?FoUusX|;jom8ZNd9O~i28~0ev_jy)qJOR_%l56$F*m=-vWvLgA$HM1AilA|96D+q@B4j8gI zDO*9^BK8(YTOuF!aEqk#StB67)vH6k=&4%Rosk(AC}ga^2)U$i=u2AoKGGhe1c=?LxqwJRG_>8`U9W;fdFi9h=40BjG+JMs*r7}U?aJ-Cj1lD&g&2m z6XUl*BzXr^vc5R9&A2Mv7vnNy%;9{3p;a1sMu>pZMv^%KVhfVN-$0(3rOo#6r!AV_ zE)NgIpJG=^?sp(k;wFPD4ReRFk3DZPY`6>#mIYJ`B}^RqwqruR=x%)bEYm9R#0)$O z+FfyckYvC)?`I`r5H%(hAQ%ZsgRY`qnUU%_D|eK*YN56ZIQEtGqU4GEpou$>r-GGnfm* zWZ78_f7Pwkm~N06;htd})dkHosj!o6$stM?<=gH zIc$90f`@l`5s#LK3=a6u-Ve7QA81$>S-;h4KFmq8RYoVE(DvDY=>iA!&}zksj?6h} zamyXWUtGr*7u7>wC|0y&&Y>?Z%}3lsqJHqSz>W9&fwd*{diXp22n(mM+$}36yM%Gf z2;^Yk6KepSlEZKuDo~@MF-apXUps6oh>vv%sWu20!52vLOAaX8q0-i%<~^%!)~4Gp zwwx|Tt|z0EU-N;Pj>vYa7t%Qx9!ygdSp5*BdT(+pjv9uiun0yTf)2 zQWFCWbiWFrM2mfv@i(FoGgMIaWZI1L>YHx<>uLF<1zyK;?Ve!MRQIiBsHt-B2We1( z8iHO{aG`xrLHX9tE`*qMfH9yQ!a4U4F&+TOO!Cf1%j2JJUEU&SJ~fgMz{d zf|mX1yi?N!j!%)P=3$stZ3vh}VBnJvWoF9Fwh{J;1}wDzwII7d;u3MU7^VTEYoQq- z9n->5BGI=*@H+?ud&09#9zN_}Rr{wwWxXl-h$e0Mix%-vXmEI82;kdOrTHbxFq zWpRHf_b7Biuobt?F3YPnkmMu`M$CGOiXVX*fBIp63lKGhE3hIX$?Q=FcCC|e&*rWn z0~~Qs3Bk_c4DuY#1=;&FX1)x}a4)sVf>)L9d3JGKvi`F$W0yxsZNm09dLi%c* zW6_T?OM=NX|3B8Q1Rl!#|L2JO6!rHnrJ~lZ_SZpMt`4T#wvo22wH>4-afmznWMjOY1&Kkv`y zeUxr|XRG4fh)W_bCi^msSucIx71g87{e`7!RrRoO+UAbYqjr6B`0m9e8*_iu-I}Dj zcIlxjzdd}xzrjtt7wcZ4n$+E5s|m{NxptTP2qw}q89$l0CK1vu>awL2Y5kKvqSA$w z`hku`a7x3lrPY=-9oP4xDGv9a>z-d6&Up?Le*O$ zn~LCY+%p1d67Z-8ln;^qpyUW#N|7rZk_(*_ve7HHOb%|+_?mwkT_^eYTU5G(zQ@bZ z^)BXD4j%hHEMv(z;yFP6YSfc|McUb$??1e*#jk4?VxLx zV9qWzqU*N}A^t@S!O?5?y{Q2vvf7OOpXu=n10V9_-zkjplKWwAfUD_(1g%LMRF8id z_`qZ7Yj~-hg{tsy@)x$}vdX;guTCPf=5#mX;uE}dT(GMfi8G7%s{98}f&h=- zu;-VrBz?)?BBB-Va9{&hjP#E%pcYp$y)t35ZZPqMRbWq^!7ewJRr67K=E4EfQ~C zw%xKu^!m@p0IOALS1$jgdZg;G+nPt^bL%K;E4-JmxdJ)$6A#)e z>rThB7n~0Nd4bh!WvLdZF{aS9m<>ZSF-DoP4c{sK9(;I?#Mk2|3@5AK!OSD$es@>6L8Nbx1__mNd z;7yi3i$<+_oUspnp%XWKt8Ns&w7zsHqfq0zX{7 zpFwL`kgrkYCW}s(_)EQj^V8JWvzR!q@lGe{j%bj$Di(xqMTy;q#f97|Sa?=C;|@GI zu-;w5lnY;radhTvWZK7VU_C1uZ{b8dG%yf(KHWW|`MskaA`q9u>C#5Rly;_4OQLC(dgb?tIo(=;YdrPRrEq$qCGS(uLT{w>F4PnM#K zS9|`l*O#9-FX;nVhAw{cvr_)z=yn&4?;rh0yzckMtZV-l%k=(tj)hZQxkD`?Y=4id zA8qKnFFO0inxgkl$vq+}{K5is^f}%JgKnRC?_5{3Fe?P-`a0`@Fob z>RlKFPzTqqYP<(TZ`3*w+V~isoL$-8DtAc!xad^Pqo=UwEQBu{{-F%UosXC;z<7h^ zp7bGeNi|oOQ!KAss!xnCIG9KI%2Od5p6ux_tGcREj2{}*-t)SiHIx05`+>6ijyinh zISx&g%0~HP*Z7^zifTeySpo?qpi(D zwXO#VChB8-_xy2|ago4(Cm_uS;+X=TNUFODKLd8}u+xN9ri5J=c$(s>^yzs}ZiArP zo!kUn8e8Q}UV@KnCnGO=KW{qq(20kA+53eLM~m7YAqO$Yv1HUW?vDmwU7{CZbQY0b z2?jC6>vTz|1)}Ecf~5|8W;0M|pVq`6F9DoUox>)+rUTw3?comKhr-Z+#aJ{OhG38~ zvLhmg!PZ3K)PYGbvw;=i1w2^HP>t@Y`s4G=)IW%f2D@L*#9g9_;2)qDOu`P9OyII% z%9EiDM=He6hH%WfzS_sQesn5hMYTh1+1%iev7`YK^(JRd>URsOcq`_F)vbG0uwg-q zHBT<5(L)tBGDNe9hyqfA7?h(gXyZ9pkIr|?LR7r<$z-jpl3kk3o;kZwyZ^T zxh67BvlE6P@Jkt4m5wFyuoym+a%p5od1C4V?|YP6W%AkuID~TY`f>QE~z7nU7oJS zRG7(XbUWvgySK##>XmZ+Xdc%TA{MA5z1_;J)1Sjb4^Dc)IQWJcg7J2OATXthKHR71 z18p!ff|W*ba;tMn18SU=Bb_#=e|2C2ckBk$rn5J9j@_Vm^WY61`oX*Fes)v%1it8@ zaH?-Tr42mya!jyfA-V9+06S~U&C?DifnNk)j z*Wei&amgjFA!xVn&1-r2hc(u_%dJ>B*|GM~h#AIgFn`o^1S?G4T6H$aBZCyi`)1Tf z3FCczv$u%+5ME_M_IkhEnG0Zlh|3?q{)DdEzNep=b*9TQ90Kkyh*weW$}!ffUQnKT zR?eBPKjLcO`5)(7caN%Q$_Z9q@MzCn1?|T;Uqkn(HuwFAmt5!#ZC|JUk<`HIp>IQqx7bL`FJPOvd;qJE zfj>`Kl_El6TY$oGt^duFBbido=b4-0{Epmfkke`N7|wc;Gs`V$K_*^0cY2Jt`X=tU zP5aD!ZLy(Oe?K~k=VBaOS2pL8cXpTu``?%Lgu23u@IkVu$@R~%PR_*FJ=Qzy3p>%B zgG@-~;-zspCdxJeRX@A`yw!26gT#aOSciRI{k)YtOt0Fiy`YL8zS#jefo^U@Mc=|4 z!qxug&xw3RSh{1)=@7}pF?hH=tzQHWYFM8k&F|1PrqmNHc4^ppt)`&a0XbaL1?VtUR(*dij7O5xPjNqKB}07J7Bqo$DA);`JS;ZFEHpelKoN{ZP#pdg*OMUdzs52B2 zDalhH($$4bWz=C6g%ky)8KzHteq+kCsFEZc(F{9`w0OO5BkajTZwUu81pYjk2bL;g z_lle5PRzWZEg;w@+_}Z|_0`PORW?8I7Ba`TzUXnwU!&+3c7CpcwoJ}fV^sofFYp+? zOb)k%z>k0Lr+~xV2|Me0!WQ_fsFJw}Lhx%ooYo{J!JpnFr~d^Q<#5$s2Vwm^+llut z$i%~;cq3*t)2j*z;a7 z_asL)#sWe3xs1t}*P+X&vyjljAclpu(uHi1hWC}(H?QwjDL?`|$F{-q%slHV(F^$Y znx!a?MDaPw3)81xKZQ5e2M39nW|25ixHsU)nG!wnhVMU$q;KVf`$J3Y*4IzO&+#$| z&i$Bxl*p@Z+oybE_wB-Y>l^R`A`uCW0h4M9&diTbpzC`JA7Son~xWqoXBcRdOVyQ8K_)cLgb)6e7rjt*%z zzJEpDGS^gR{brkOXxbuxnh^4}MY9_TD$g9+kc|3xmxg8--vG^#HYaspf`i=ULVm@C zJocXHJQDTS3dL_=mP=kzSZm1a#h*XR$(*e}%bYzN5()Gv;2qdV!Zv4H)>!9vo3+kE zU~DclU%Eg*LUP-Gi+})*$n{Bb2P26vLmA=AUQ~(~uX=G=a*a>NSyeyGAwu*`-Z{7w zo3nkDLSrK#j3J8sESFf!q48#{koXl}4=}!w7~J$7-|!4biX^CIk9TKmWV(O1x9V(@ zw^O5zM#`gyRx95*H|d5YJ&lg}tv>(vCX2b}TJtZPhwVbX;q3?nspb1!N-_G|rzi#w zxaROvMdXmkJxY>I+c<+ohCkY;9!B9K#%C#vG99|UAz*AMZmAl?U#a}%X;}_Y5Lr8g z4^SPcpQWs$L-b8$9U}6OUS)$!EMmEW)O#N0IJv)1>4DH)7#j^Ig+j^635`4YY|p|# zUySGe_u3Kk5dT0+ro>vN&{~EjF7|>S^3x3h)B57K zTtW6&LAA%ZjL(4lY_5vHu3VcNbe z{*yxCib*)X9xm*F?XZnzx*wnvmvHI?Rs5eFQC{RvKRwnEO=Bb`!+75?dudfs4YA*3 zIYxR~-qAvDvUT1G9{!k%@1S3az_Wb__p{l#ft7{eCxp$1`2Ja6$fK>Q2A}1i{25@D z16Gb?`Gei+s0I|eSL7TI3pAVcl{wu4en)|z<6bH+0!d|?5EI=k&^b+VXql|}s-1Dj zRKSD2zhFNMi}n564fm?Un+IkCALZpWpwm|)pxo3ZRkL1jBTw&CiXz}&0?}NPFUchtq z2Ww2C^Qa`D7VW3OD7DFoyA4;*Z){V|%B!DvEzhj&T6gewoXZ_4e+T<;E|X+=JhXvD zgipTzusYkUZF+a`Y9s_*;~H&5j-QR|umYA0COc5X!0O5pg9+5@+-HS7Bp|{f7(G`A z&=J1XJD+?X-3Sdz@wF$5ZoP&KlMHtlmdMNSL!K=vfo`;D?N3Gtyu0xaZrE<#;RiMz#pLo9xhphap`9P9*b@lJ$62(yIJx`fTT43`8*$#W2x zIpV_)$h}Qy`Sx#0$cgL^^q)=M8`s*n-!>w6P@}iEA$|wFTMRWpDL!&a{>LrYJ^*iE z9(LSa)jKVy=?8U`vvFU;3OMY%73qSEKwq}^-n*B&`C=P)gkCHkD?!VOIsu%2M$J@B z)JGCrHSW|+810gB<)tj+Qd0~unF*8<;SHwF9|#3$={8PnGMVt3&yZy^H>E$tZo9*rs*zwEa3{I8!|1GO6;;Ua_c=u5JA%LF7jDmNj*ag4a!T#VeZ;pC z%6(#B+>gPiSU@YKtgTIX?7^wH>*j84lo-P*UF-R9krKNa6V(WeB*99P|MS?J&~M*j z`+c{?EY&N{GxO9>U9+Ofbk_JC_%k>s^xJMscDZa;YBX^Y69&>}nGVfD+y#RoS3_YU z_tsse)7Zaf!U8{)N%*YR{==&GA1RhgpP**3GMcRu7VK4gv=j>8K_oB(L79HkG(S@w zoeIg7uCa#cw+oFI&QckfdKT3}X0eiP85i3aFu+dNy+#qP!6`+>j<>TVz7u)aO$zQxUpvaAPC z=ONjFNSfkJ5Ln-;W6|9anz|m5BWlxM{kR3ux$EwpYcoqW#}fR8dHhW9J2jniON%Zg zh7NtV?(L=#5&C}@wOIbE!QXzbqUk%iWNbweW}4(Vy-|Ji#}i&qm9y4rEGc7SCGag* zeUmo?o2K!onJThaGeVHO7Dm?-M$c3`@7XdRw+!Lyol$IV8nRu<-!B-nb&X8`JZ>A-EbxyV~V~41`83I3XhEWOm*SmN2I44aUcUzTJ*M+P=NwgJ2@nSpbD7M ztv8#ws8NV*7Rs|RXIV7MJm)B?zYk>*k-<@qbdICUHm#{X}a1 zBsq&3=(#oVxX6v2i=QGQC+QO44PQBnr&F39%u$jC))8 z%`;!TPQLGb;USFV4R)neT5aGEIAe*=7wBl*?FhY;(4yZSGD=Xf1)-Fe+nNkCQ&Z5M zqp?j=t|?_8PP*@QVS=M}CmFe)79+XJHHj$oDt1U@XHUbODtrSH~Px`BHUd1FRf^bft2w?Fn>=5s;vT&`Uh-vjvrOz=0TQRoOcH>4Mm|PQJE=Oz;{I?N)9~3WyH>a-Gu!ff!UL{J%q+&+N-;_wsK{ zW7J{ZUHaYE%Z56J_@44IDuTNH)Sh6LVdq%Ck12n1UEOSxi3FZGJZbm7pGwY zc@SKf>Kj8l0g^?ALlTYJffe53OiA(tflZL&bC6RtcJ#92!G%sT&8}|=x{2@bZ$HH> zuyf??HuN$YldV%xR55eB$ zX#SVThLQus6J!$)Wb?=8&kFt^UAy{%Tu+0S)~vSJ+03>oH$>_R3PRC1Fsie0;JG|2 zyY9tmQ#$oi=q&bg9b~z-nZ-CcJwiycUHL|Dw=4)%d&e^W5ZJ7Lp_=ugN@eoiT%MbE z6h}w92lqM|g)1HApZ!aVlN`k@_?7AXF1X3&TVCCt3=&sEH#<1^iB9>NUB@uv50>M_ z-L8o!`w=h|Ym8VCp&>F8WE8l!KFYlLPC6zM?#KPkFNiHN@df^-5srEoVHd#;fn+n8 zmiZVIbVT!*-fjiSY*Gr?;7#H<@O+St>;=h+q1(F#7SyZ&hkk#g7zs4ij~Zd9Ct2q9 zx*iS&V&1;5BEo8^O+lh}^@Rcsi|aPq54|3~{xweiH*O93(fkiR0GjUDVn(nK7{<_% z{tjqE|NfD^gc~BO0kn~Dk`~6?%-&o_JX{cMN34*=&}QKylR8Xz&t1vpkG6ec@-+ z@i`mvuuG*O`dsQ1IR9Z7AYN)M>fRpkcA~G*!3BcjGZvSAAKCaJmRcWPo1R7EwCIk} z`98nU0O#sGjgc$eOfdB)Kpgl5H(STAOuu)*?Hp&*7bQlwcSkiOKlknk3$|$i>CxH5 zhiw*%>O?x31@2_ewymzG4FH6W|Fm!NBqS=r{=eTBeytP7!Z}Rm2YIEl<0q>l`XO^s zM~iKUB+vds4fs}f=b&^HOJRL8|yjf=J8n(~3CvY11HES7t%bFNW} z;xc^hTwB0)>Izp^I_}}}Y@!CtL2;A3e{o&?1fY#97vV;#+BnsX+(r}Z381)s_$B!7 z*+O1MVFA2#>j~k>by-{keJVkF9mRzzAhWv$V|G>HDEtaaX^1~e5U;ZkG1-|99Z>h* z7u58YKa^`xLr4XbAzBv1q_YL0GNW#vd?rSC?M3ZwPH>kG`~IgpNEn0f{q1wXeZo@}B7x-3%nI>HqV^b}@z3+@kB57Zh*mA4xDy zVj^1mszuqfHZMUN>`98mR$E*E6n%I5 zKKqH|cIRd8&Zi{;B6KB$S%6%hc2M!->27mD%UU#wM@b^`BMZzdq z4>j8(b~stgKZVF{$FRFFrOZzsffAp=;hy+N_CLNEtWhbH3zTjG#Cglt zO{sEa!u9c`ui0fM;#_UU+xs_Ye&4p2%`-|s#@ruS?1p>0-L|!WTo_)Ky0?ng0@r1I zB7Al$M=w(qyfr)wE#0=2f5&Wf{L(%vwWd_YJ=7SOaDUO-qXuQv32bR3e}{akWztze?V1QXE>Dss|b_}S}8N@!|1tyq%0MK_{H?#@053?Nocz88h*5G0P3i4_m3sf{Tzl9IP zI3=zM+n!r_TospP>UIZ6q{I}`*SHNQdWJ`e;|zOun2+*pd%s5n?VTy6){bn!OJv3! z)xlud?7A211PwGVRz*EWWqLX+cr_+AHqIt1*k-?@GS$N=phg|-ZuqIhVp0wQN-g5S z@e5l?BR<+l;FAzfF|Uq@b_%?5I`zoCL@f&fT-{)<@u$BTlb*HE)s;LLY{Rt<7XEh8 z!=aZ$9hL4qHMS6xAr$F?Vmz7a;BtrS`^UwNN&1_--(_D-0?le(giL?sQl&u9&Cu{6 z#aqW}sr&hNf<}8|>)2!W&;K}2A>eSmhJr=u)^SGej`F+Dq?tK6Dy0S*TeQRBfVDUC z{P*aG>@81OTXd_UA$l}|>}lUY%6d@P0;U?l)}HFtA~SPXpGo!*23-({Pv9s-fmj`~q<)lC7 zzErqH0w(uIgm4+>&+3m>{o>CD4q_A} z3`vA{1D$vY-^5Q@bsJgDx1)R9;Kv3RTSEF!n{9*PR=})6R5rImW{CNc#qR$hRGyq} zx4Bvt)dsZ`7FUfTEtl~82j&JoUmeI#Mr#zB7lhmOX$ImmAAd}VFVKpAf~{}c8~;0%_P6X1IcF5%jQwhg41BBM z-+-1s7)_Yf2K^?o8MqBoU&saY=8}TiJ~Z(P;Mf1pEC+rrFm69fhLZ>oyd`0!hMY!{ zzH#U+b##nbkwnJfaDjRfYN!dB2Nzv%Xc}O(h{3Y3O#k#b4$K9-W-6Mt1R|F1ivAT7 zLQsoi!vYPcW#J=rj|P{7^qbrtXZDazhNjNKj3cLHDz^B0x7cokBc?jMed0D(I1u}9 zUl=9q=iJc!|B~k%gz=3}F^He=90ry-B~xeW>WdwmB6r9dRHfl|jzMJS=`(Zxsv^0G zq<}AA4cS*e!GW5Un{XM6MlzrwCyCep%@Ai=A{;Al+^IU{l7|i>$R^)$a(L?QR}VaM zYMxCjdV+1-qi8X)A0vpNl^zjHu}&TlbHpWFh&f4@waTp(fWy0An*o|E_bK2egfC$; zfRWAIZI4&+;9{tYN!=dm5D)7lom`Prcq zxEFvQA|YOZm_|Zd1ApULr#;75oqc?=+TF^lCW2e6i7`$q;tK-@F&Q9!74E;1^wOFa zC=Lpw3muBb1D{P1)dy}B4;#hGLgZ)U zxa68;eV7|a>MG4~otzW~3`flvyOClOw-9{{N8 zIO>*1eveCJ%lW!@MYepPoJbCAKkm8i-A28`d|j`L=ys*;mHQfFAsEZBK%FweG$2Nh z64rzVI3l4kH0{%*}$3zHo5q!3hv2~S!g_<{c& zc)^xKH-NN!hBAWXcGpQmh_5j=v$n&8JJH(VtQ=`XwQKsb7$30 zus;)AThy>hd-+v?{`q^Oc%b~>f_eze&U@qM ztAbZg+&~H$hRZ&o89pFM2y5*3j3848l(oMeVVFK-{GuNj50Wk+6oSjjIvdk+$tAfK zBB9+kdB*1)+!XBEm|8MIvE3iGqqo?sa*JsX%EqMZvlH;m;;K{u8^%E9bI33*lZuFGepvxYQ7yc88jl9hg z1Jy}qjgD_S^y-~COI2+~kSELT2fo7p)Tj{iRmxQeo<>4CAkyjpA`8ih7NOBD{&?_6 zXy)3&VK)egFC@gv+hAIX1~f9XC*Q!xMBEKo%>4zwBzO*#2O2zeG5ExK`P6n_y;hzR zOy30aMyt5Bvx-`x+r8m$eb>z~hI+BLHYH-Nn`0KMsE$5!TLq%VfOC`%NFGdD{L2-o zXAhRaf3@0{Ny4-THaru9n!cS`tseL1Lw03`0g4>D@09~B2$SUV(%7;ILnJm{kXbC5 zRKceKHn_`@OE8#KxCK=Zi0q5`MT23dxr`Y!iA7qg6=%7RZQ~^J(C1Ii@foDp=IV6kz=8Mt=9hXDRmpE{> z-J4c!ND>#+796Q!d%Fr*F=A=@VO}(B$Z+*S4`R$ahJ&uq=#PmM&FXH$F=}5XTXSBc zZZ4@SS!C$mjNzgs8@`e!^LKqyd-tNV=IdRm+wUGqv?h05yS##tK zOV8{STckQYQf!^9&XQZ-5Dh{UCNgMqkWPo_pkIFQBL+7UJ>_tGi8K=H1aCJ(_>5F8 zK^qIxl|BbWIEOPMIqu3)PwY-$k+9ln4T;STMu5F#XR|eB{Tt)oq+8KR9EtiKy$cyN zLPP4i@Zh-b%se&kVSCt{cA1DhFJ3@Ilm07YAvX-*v`o2;X+X~Sg8DYZVS~bed!dKM$*fCu*g%^ZIbD<)L@ODhgv~|?DIma8EiAq zLJGp+b55ds0=N_Kgg%Lf>-Hw;= zuKfevwM`zbM^4>8S%}GSTB0Sw8V2?09K;NRKE;96__N`^*-sqnS5%|3L1Fo+u+J$U z!6F7kLD&^3n{)iu=;8B8f+>E}^HYc-re}tySpG)&g3OMMM_JmH! z?DH|1j)dlr4imPXzLnd>QZ(zKN?@&3Wd~<8utJt!eGylj8d&v05He#wQcxrL$5si< zzND_9*C4hQCv>fmetU0fr}-A!EAGh%d9*J~P&MoE$d@lOOS- z^Zpa@#wqor;UZRvV=TBdo3)LA^d%3$7IQ9Hcxv3idPhun-I33#ae^Nt{>lE-s`*Q| z)e`CIbt!7VT5xn~<-H!Onyf9OA1zp#GZ9x5-nB%&?z=`D6fyo2KI*o!)NLYj8R_z6 zT^EqX#kA2&ap=}9RE3pr0c9{HL;wY$H<57ymBR1vyWo(O87qL<(%or6pjx5EO2IgC ze`o${u7wZ#7}i%Tw0rovXnFMFCozy3_z7LbCPRD&WgMva=(?mYe>)ZNu!?{^4KNm? z4(fSE!z?PomyG4zj7Pg9YUrGT9zJfD`nQ5QhCxlf-_DG*1VX+1gfS+4XGIBu_A%2r zEaG`t0yEKTK&x+FaCD#?YzOm4tpXMVhr53E`~Clid7^773EWV%XY#w8WV?W zu#AEa+M7)BMv|}?8!7;$4fFGU_>rQ5LMV-)#w%)nao{)}Wp9q4?XRLZ?T2U-_sdqN%l=04%yxd@kH z>iS=Ss1CE)|UqZUi9*MS*%uZg(96=GgmC zcUAFa_ip=|FS?}xadE4ihF6xvy-oo)birOeaxo?}ugn-n;xZswRsl{P4Fyc@_tY8-xFh0HHa#1KCr zsq>X}k2^YG1+H>W@5C-eTUtN*#jYVFj{a7YAU<3f8$wC6Y(u`x?%Gt|1pz;gDR5#4 z;v)oENL#rqvomD6V#is=eooE-q?4l(I>JL>1FEEtm%{+Gw2I^~|7Il4YC8TyprC}@ z=`f?Mf={!Z$8y00`||mNAKtdQJD7ssjn%g;Zb?rvg!^zYuLkrm*ZI`#RHREHmJC;< zkQ(7XO|V9dvQNsr1xG{iiOD_SnL(&V9049FosxU4ZpF38S6fy4%RaA>pYDG)Ecvjr z=EAvd040@f97?s1MWTv@+p_rvprE+O7_jw-btlz(+iIf3zn_aNXktJ?RX3y@2J34u z0vXU2ef<&WBDtWrB<7>aM@xBRa-jk|drvMdDv54qstNcWoa_dpIIcxKKi`KDFY&_E zqqOX-kx{h;y9=?EzypUG0_1`AYgFzwRUc)xq%*oIspP~D)F=JXN6ZA{ z2%q`uf7VY}xSPt;!g@$I8_1TUHk~l*u)>l_k_{|BDL1%T4A)j@kSo7_K|1H(eG|pk zdYl2ji%&-+fFs0j%o>(skDusYF)gWX<6G!mQ^;EAbv16YOpnt$QUbtoNGit*D=_{d zOS-5NzoP^VDU{cXz%&*~(1^ioT9eRk`2|$9D zB4i-Vh*SZ?iUTuG^!^xj2P|JGOU@kWKqV=G8Ffb?8)f^qTyrk_<~UEda%@nrLicyu zSM)ZiC`niQ(DQwqL>>9c~7*>~xC1J#@j5b}C^toCRfts7m179PaID+FsJDa|?nkdE5knhutKb{ou z!GrumM(!;gCyZ^-SAt)L;xckI%r)@rHAF|=0Of2-2QUMjST-5wBSLcz87iHJ&zVaq zyblcFoE5H!`S)fzujHQq61w;6M%bxB$_IRP(*D%>u@26(AtH0y_n4B971VJS>^|-8 z4jB&Sk_1`}g{7#eTs-y(@p5G+7UXOlpZp1e{6rBC#P^CwxEd$O50AA58iMjBq z%uKu8XXGt4{}#Szz*lC}??mq#Lc)VUB*f4f6wFU?<&(rHAaBFf6Fr6RaRmp%$K;9e zz8V#;KJIK-mc+kjZx|rSv4maHbh$^FseXi^@1YHOi&6OSgZ+irj7L1QWRR(NNfwm^ zgcKiD5PJLD`M3zat<$iuak}uLC+s`Re_(`&~#!n94{psOTG2P;?CTiPP>?zmJL6J$9Fn{xP)JWN2aYA{LE<`PN6 zNlwt$q7*;z4>yiJ0pyL}?7JqX4v2P!ozd=D_t5IZ?)+tle!PW%5Zs6B1@pnjlsPW6BUl{SWH;FGDEbHYW79UEb3VtM4kpcNcrFo{}R;CmsNb(yD_?%)9Z9F5FY-x88CPD2)%%e>}DbL8NGeWut zE~&?sXpY~x=<)I#hDi@$5(866zV!`V0u>OAlZbalI#UOO66k@*bW8;JL{kw1(x{@U z7UJ4eKLMHKE-2%g-IM^Smw?j?7rOzvL@QyTJAYqn<6w^Z$UL*be!p$H z6t!KVR%k68C)XZ|YhJ!(v$8Qf)|S8oR=Y=S#<`Ou*q0nT(BzUnnz@MSBW^uA_HGi} zGmAXWNgvM1Lvfdfq6d-5MUI2$(6_z-R}aHNP&h@<62moFF5usF6U49tb=0>E)e%X8#0|P||%Rgj(vd9{ex!!C0mo zy!Egn`lY5swgw}?!@pkDAAv^3nZPE3W3!kU;~14kBbw7KJ1eL3xQ9?DXiVb7sNP@^ zm~5V)i=l-5Q`x^riX7Q?bll~DVA)}RZ zOJwyv+vjLDjm9Joc^cPes=TXFAu@JqN+OgM_1|kG@#x!T9yyhMi?}$G`@u2;;?MtT zN`fhKLkJ!nD5bDRTdKOp-)2y&XnbFpy!})KxjxVoNe3u~|aT zPP4ws2Qt0y@7Rt?tiToek)5q2zg)A`{<}!tJ8K4r-L2r4Ym05^J zkSa{Yc!3(y`QoXm(;L|RoZ6$AG1kEMAqjdVbG(0mNe+YOWP*M|#h=;Wtr@x@9(r6p zv+YQCq~sF%edOzY#A6sd{svWNUk&w+5_C-56tJfE3TtCB_kcOmZjj&l zsgWf$_`r19BCY}!`TyB#z4IHlJ1E2!e*?+y1_fxRj(}8}U|iXbLlW&tJO|PK_{7(5 zC+@H>+L6un#GlJAJO8j+VH2uxn!6?bDSC(OqLIjZEeHGyCBZzJVOV5x%mkj6Ivb2k zTPHZ0%f+ljaG!*yO7?&+(EO@KZdK+fIWFZPxeV4u1)j(e{bWzLY4kryI(qTd;}f%7 znUuR&S|ALQn9UV^IR274A(6aFFdjze4>30B9QVB+n$avSbO&z;d5201>N6xEqa1op zLgkhAC&s6mt!TMu1s7_tztlUBw=ZCmVQfz*pf-uin*#-v5K~h*b-hvEq6KK#6)IZK znf*C)Ri2JNtcFx(nsLoKMgw*MlJtqO=>t#tfg}`88OD?|gOU04$~D9CocV5{S4)#@ z$;>b0tK0PdEA)z%fJ_9H(6#CnDpkbnX28`9LY^dALi~{gW61tH5dF3# zs87OItioqPAlCMxH#urwv+Nw%^8-PRF1pDh9I5mO%GXzv0*{Jq8ug>BttJg5ykj*8 zn8-YpZGljGpBI{;7xCUAhnyO?#uNgi*Y)9&NG@9aKdtQQRYKS0nii26>ME6Ne2r7je0QiXR#9`nh-9GUKoy@plICgOb1>(ne9D z6T6l^XYl{XHfZgLJ`1G}2ei0padv+JClE*2zA>M;7)7(YJCLe~rc)A-gvKX_b?>Kx zh@Jwoa&DDHPf?p@Bx6YrbNm{@0_^8ql>jRA9|a7eI#`NB^WKQ&r!2}Kj8Fj~PYUO! z693?%@X6)S+^fm#6W7YM-a5(LHF_rJp9Bh4BZhlp>nOui39D3zN}&_}>*hY}Xw$I# zsStrth8Q8P&|M*Q@=Hn(I|+)DJ_mMg8iz)xKlW6Y{NvH;lVX|_VB?31z_g*a@6pisQmTG$h==+Os(^bbv1G4Xd3 zm@H5}%9I<1d~0-#JVS4GQ?msO3#6tZ13?oqmRn9`3=u!#M_I>K1wPPF%8y+2ZWZEU zXq#jxPmphU5ZZgC{Dp&Q?=NG(GXJn`c-aP16+iUl5bp4!k2(AZF6K;>-1SOmW|L%h zPPpfT-Vy==7gD9S+$5<4z~Ru2VhKQ}Z%rR9Cg`0~G8E|oy4Mi-1-{9nC&mG@RAxIC zs>YY`_W8LX02tIQ!qzHwa|DlzhuMjf#EZSPcTzv+XImQ?RYkJfz=+Zzyj^!?Q`h+` z(TX4oWTVgm=o1=0be-evGQo$jauS%6(@BFC_R#bQlw!Du=b>UZ4WZY7a31Qe%%*tF z_qOscM(Do{TeZm(NY?45J5i?h4?y}wCHSO=l{?Y=ylD@Wf9no9glq@&W>ppfVps%L zf^a5+mE*l(iLhe_Dk*y3f0b^1*BEjC=#b8YJz8>O;qC)LmRH)J(lra%9^}x9C!Sqm zk8_GZCZlUu)T^TX!Cs`VxP%} zQMmOkQY&x7-@2g5;Sb=@9e5|F$bg(wGDW7i|H=I0-Zz7y;RyqDgfp$1xuE%u`1hri z+50*zK4-2b8WKvgNEaqTzM{Bzf`&jsH-JoznTMKh!`gpmlLeRG9+Ah${T+>IT>@W_ zoFf^JW3OBOfkPGk(B*3Z_dQtMZlNdb&>SK2H)_CR!|)I${R(=rt-Irk@%RH5Svu6Z|S-E|F8Oa4%;vEOska%}g7q#D)b#SSL3tnA<{N^6z zX<7ZifMuAK0Gymg=}JLmI;*SC^+5RO^NCShd+eILeSFt9>ZM7F8@1AFVp@05_6`&{ zp;8*8mmeV(h{?upX1b=SgX~lrjDfoWeA$y zl9kBEJWqco7Yq1dC+pUeCs%=L?5%kYPtQ;xDNEmr?qKyrCPu_=mQapJg&YIXTgRBi zJhhf@*adO9e8BXVD8ZmHK_9BXeOHrl5?GB`odD)P<`|y^!3z$djA0PJKHbqLpT=#jT(KDHbb?MA z5MHHDh;iG#qoU(!``(YFa9N!rQz}9=0`8g4Bfd$EbRa|g$FgIB%b3q-k()c zMDXO5akdV* zduM}4I%S=)>dD9Vgr&FA@Vs1FiRjL zusWGmwW91*@4n2ZV98X?Z$_>R6T*@YTY{~bzwi9HQ7(yh_-!cSR3?GDqDF*11H`*A zC^EBn-=~cV08!%2VW0q*L}DY;63OLD1Pum@`%LvEm@A}P+;eN};N3%PM-#b3s<9_?B}by*=oKPHNWp?Q zq!{?5)aZSm9kxpmUQGjaga`Qin|5QX@QrPy*4_u<_^RKev56X&gnhRX-p@Uu#F&uy z(Lcr2Aw5%tngop{y1;}p8@f!h?V5XBY~U(0{jEt5JOmMY=H=;*o~mSkgpd}58&>k3 zmAqjYb`f4cfY`H&x4-}mc_IS1pe#G1xHaNRU%Nbd3BCSaJK(jq+Ya;z)-kGo$_6lg zc^~@J1re~>mHuzV3&tQ%XvTx3(>V-^lS}0F2rLDsJ}`#5Y6o?YJPrSz-eXthnPM2V z)R1J}wwtl$a+T3CXpxYfGzz}H9mVgC7g{ z3P%{rkO(S|%n@}KZdJ(MMU;{iqHc2Uj2?|$s(g}Wq2MYv01F$rH;61gpjPE>Ru zwB4Y)tw;@me~nnv(c8j*NE>j9i159>p1^t?*Y}&Yv3SI6#_v#GlGATVb|A1EV+0cR z%KQG_#QHlB6crq?UNYHQGT9yH8~oZM?t@$Q`P0o^#wvLjalzaR4PJV&`oJAdvrP(- zMQJW~dlmV1HJtW{T*ul6pxY~@K~vHnYm2rpkvNkn=&|ExfuU=R2_hU9U~EFxc5egi z&c2XCI1&-fQj92W9ziE!sL7#*VHhd6AX|b>Jc~zmoUbf~1&AQ4ADk5>VyyK-6E$*~ zHrXujj5X1S^)Wzrr%fK5GNE<>1W}iowF$9++dML&>FpayUY%5%iDde@pzx`%vkG%s zxB!%#+n(dmP5Tpre&Qw}OtqBw7Lu#|?N^UCr4VBI^Rn4i=9rt5eWk^3x%8IA$x9(@ zNwiI#qwgOh!rYSiwd9lRu%>YJD^3fURlllV1t-F7ULc?sG%jFC_OiDmCpwaxvvDhu zg2vVgw6c}Tg>ituYRf>KSf*Ci-OQLVqyo;-ywl7GOAE2fgq9_BkEl)03NCBgqG0YpWCZq!)aVDEtY&WimVY_LsPf0GHQom@ zFIjTn^h`9B(kw2~b@^!Ur-eE(ba=t zlgYb@OqJp=kl@+l}8>6NPO`Sgy+((JK_#3o=7%fttBNxgn`c?R^>x5mfWoI zop0tWH`t6!mMfq0M!j|JhETUQ`3u`~O%)CxJX}IRgQ@J6n`6TjQJqVXwj}Y0)Cq4lfhJ3E%`z|+ zQSeHq9=Wjny>>&MK_4$%g?QyU9xqNa~dkIH09 zXLtMa%$t}*h%$Jo@hHs163J2vBcn3}o)G_0yeXX4iL_fBb18-<99zV#U2W9)LG@FI zCQvFi5etru@B9w8&vfRFK>S#X4j<&Qh2Y~fc{pdX_LIR$qhTNI>XfG`YLGCKb;%m+ zQdovQb84${y#w3A!Zh$d1Kv)5t*^A(_2oauCSOIt#_*bxMK>UB%)|PI{9S9D`kg$# zchi-wiFmNq^TE$bNcR0=#NY?)U+nUn%>r)8H~*f^GT__bT`|;BlA>Run*LhxPPg6g%}V(VKo4uYsSnY7@d??J|f1T zu<1gKI|IwQ+_Dy8`y`2DJ}5Cc&PdD!{TS?878QB85gi*CqxbC)h}%?Xd(j<91Wb#F zC?Ps=+{&Vs`X66v=YReC_YDDqO203!Y1mGB5bdQyFZmY}^h zbv|Lq6_T0nQFCyhJ~S8rD!3|?d8FmigUjUd&AR1V;2zR6(__mkV|F!yE7M=preaC% zZ~4OeNw3wt@AwoVx#j2#X$UTSy{?P6Le+8ena-q2h9QX5bwgi6B%l&bL>VHMq107D zmC;UE-$orBVN>_is?cen*9Ermz9uuI_1F{VJ5jJHx=~_^qLhxxCFz%24w$KcIhfN8 z53Lr*5T<&T6Gy9b4G;*8#v})Z;^$_xXpCYiN^8z$2K_rVA$y;ISEFae3G+Nu^@P)o znN=bL8re3xd}4qtN*bTsP^J8YosAGc&wUBvF!G$? z(Gz-`9zT7EVp~YWQqa>Nn?+QnCuc0am73HV$VrPLpp}fbqWo=FMPs!Ly*8NZdt;nDiw@@R*EDgyMGuOHe_O zn4b`moN#19<|icoB7Nj0cf^|_HNKJ)=b6!b+vr@-NeH7p%;}=v?^quUPh3mOW}41u zkt?CEJ0R|6gp}KbU>m(&-&-D!d*Xgn1@q*~ZSLCY5hj=U(7I^Z zHZev4jq7jAdeQI%8WdaI7iErfo8rRvDzDE*-Kft;2*60ozz700_ADJ_O!EFB#;m)2fZGrpFt(!dTzm9~~7o!?Jij?h$}sI^2t#5G;c zivV5gtWjL``?`0r)TF+Po~-G)Ql569nlxJn@TUg@}d!%US#0faLxH!R^}`w?oB zpj*uJVoElDm#|9n59q>Z@+@-jNap~8&`XcRjv$04MKvO*d?d=$f}V>~1_dPgRRx0+ z`RP1Z{2?*+%$mhs`fP3Evqtc?PnAl|Jj&(Hx zYQzP=goRi{H}8Ynr-RzD0y+bc-xd-Z!3i40fDnxB4XO7f&;j9%bQ3L1$jTJie1rKC8fKiqyY5;;{<}W`}49`u(xcP8e%hD_ppO6mKV-YQm zG_Qn=If^@oQ#hJM2l28=_Q%|+vZ#CHJ_i?MQ#OLi{2Mci+`19XcWKkA4|jPX)J3bs z&Z4uJOhxB1kq^_#@ituVmUYuu{U?@SV2MfZnK=x>4-tYa1|%mkJA;eu)n*)i*nXcy zgePD~i-!Y*I)#=!rWEO`8xcW58P&kaT37nSm!XM719GI>z=&mMT@Ap5r3`vTzM*2j z-bnQ24T#cvd7Ba)cM5r%{i}=Kdbs%*G$6drCkw&I?kBv`z}?wwBRxW)hbLIHpU{v4 zWwV%c3wy;F==bm)xTeaDItJd+|6wFE48br&HL#9Qv#4JSFblsEjaSyG!g)?&#m9HW z^0GF>2ySz^^_z!QflbA0apoSXA7R%XsxH*$_hT%FnnBF(1Z5M)uF~PVN-TDj{wsO2 z{yU$XP1z|!JJe=x_>Ui^lAy@d{G|#NjBu1Q2sj}bF!*6}uY#Npxh~7`{({&r#x;n~ z8G#5&>>mg8!3RlXN#-Q`H|Y9f^^r3|NKD6(#Kbf+HVMUpcZ7pJmRwD17QrV4B#eak zVZ%p?$W40j30(T%`iw;vJ_TRAdVCU@T*yNGgXF(Xg2(tAb+Rt03^F{y)J(LZLH$KI zeGRG=o!r9Wldlj+8rcduT>%S5BgD1@{eD0cNt7bSC-7igMC3p2uyD&Imo2FLhH?V* z&vh*3BeST7;dBBSD8TcufWIIJ`nXmfwE%m16eceF52MFC%%i@Q$%Pq_8j+KJ0zRQ_ z%`%X8(mdO;mSmuS+XZ86=-)3;XhXQ?{q<2jeH{-X!Jd{N|0D5dhlshs_zCZr$s0ld z{us##NL|pv$6`Z9crhXvWsyvRL}*yPVFy8%%bC#pWC-P%ELi;_6LJa%S;Y{-<7S-L zk;N`UlsW_>h{6d3y8A}ortZXxkQT0`>W z$~VonI_OCpLWx}{V7k<(g@E<`fQl*pUa=++G&r>(jcya8WV|E)r80tq0PWq3VVI5u zRbg$lY^JoE2F>y!{4S>4gb2AwI4G-6%@*5bIkViVxAi?EC+@S(=R-K#Z3^vbC)vYf=JQ-PAl;MmXyLnb|Mh0 zh6xsf;Fn@-7+USSLj>IAXT~gHGa@|~*C0XU%EV1)jS|-}5L5C1I^Aij-UbecSHxM4 zcipzHKa@DD;TTcBBRUdp?gh~|3lL%ku@|j%A8>3!pU`L${219;oLs1SgcPo6^Cj82 zE`zvoVQlgr5%EiSEr1#RANvVjyH#eRNl!pV_g1BDk4fjg(Qx}hmN^(cS$R-|PjVnq zQJZUAM~b<^Sxz3#1r)sn-MBvBq%TWD*rv1WLUc$c7OM=wc;%#{zuCjK3i#xP0S7@K z5W`4E>R`7b(Q|#d$-pPzI^X65eQR2Afl0bYBBJl(p}XSAONr@Dah119iz8i!;5c3Zd^qFZUf?( zxcQAevMw>djmqxrVQM5gX(U4rpOe?!@D-qrWiG>-;FDR3z4$~!o8S|nI9-TOI)(l1 zx&%{g(9pQQpvG)XevajGdr=fsH}sjzbNz zGbpQ#%!b+IsP9cj?DsjoxWLt&klPaO4<+5}ZQreuDVRbAXCxk$;_&nmkBGs87`4!o z6_^2%f=<`J4#Pl{X4iTOU`N{o1KH8TH;sBb5hFuf_}IQAS?F+>7cx_Y{8YONJOKd> zyth>~MH=5(wnYp@kY}uCN?5DpUrB0lmo&0lPYPGDWf56$(W4G-aw_K47v#gP*UGjo zFey;aJ740f`VO^wmt{)rhnFDbDv?cL|4~@Ie*RQ;RwHBt1GlaQz$dg#XRvPJs3W1V zL#vUS(PG_JVlkQmCq#uN$^GoRhzK`nN~eOxehA-y*MRiMxLqcH2d@WxNh=;2CJ{Ix z+rBhD>356ACwpATOy^mFe<*?_U*4B_JJBb*`iF>S!YNVvkXS%&0Ev8S=5+Gn^1TvLp`Tw$@@)r9p@-W5i?r8NWz$cy;BACl zzBXJ#=OZwHkAIR}Y!Bbw)6y6Pj@645_ zi1|hRKA9urBSrg#fuWJF*%A=pSg6q)aFyj{AfvG?_6rioMFLs~4FOxtl1`1!2R=Ze z!bSwYJ3>ywbc1|@h@m}|a#jcYwym)YBrdo8GdZQXog{_ceRtC&xG5YBtahkd_XY+) z7CmqY$s_EjALm)kf9_Z9Y@$DB&)}vhH{L>R<`6& zkyB}zqLGfKlbj$N zE;r}Om$Nl_(`M%ZlkfMt=L)Gi;lYt^-QP#zcOvd!u$=nEE?FuHdqzkL2`>ZsV;O+* z(d@0OhSzexS}TlQ5ab$H+NGXPUCE3wt(!Y*LfP(GgJ4G|^i`7fORFbyh46e=0`2i} zRTn%Z^0*bKy3pQ{C2_=N=!r|{d~R_Nqibl47M*paxx#hX@v^3LQlX=VIUibK1MmTv zmt%xtY@z=c#zJU#Q#6+oG$Cu_FofkU#rArl;hEClI!iIi6H)E3&);i>xOL5rl^9iy zG%LLoGarNnc{fY#34R}dM+WTyV)eZ^KMN=)!HtgPj%q28`duDl7{(9U8Zm+%dA;b7c=3-TzdVRclZIc!(X zMCL(p)zY`(+Sp?d42pTA^*U6YtmQ^b-lszM0(D3cVh!gPyF12M5{J`B3-Im- ziF_O4OzKgZTqFiim(qZisSx?9-Y~?<@82ZVgt*P_>U4cFL@KrOPSh7gk6&q5zBY-> z@JgX~*hksHY?Y$?8!Oi*Hk>3C!K(#P>2SBdG~0j~35F;Ci6LewYd6$SsL z`UL*ZMbg>LWYo$YaKdr7Zs3iDd}(4E6Ng8W2J7-X*( z@&)X>^IE3!4?;Lum)&I!bK6sPI?;^iTzx`nFJfNCYaJwkSJ5jix9ILV6%?wWMdk)s zV#WYw=n2jqdYC}%(PThgG}UDf|1;Za>)PSh$m}?lLzwhFX-#9^9USxSXO*(vS?P}N zun~X~MDK3Zno!svS|`VZHC0KIfcCFuig@~5Ky9tv?WxCU;tij&+1~-Fn}uKE#fN2 zQT8v~Wzj~sLmiAGw7>EvXw$b+NV~9`l1sZ3r~UL8u7zQvw-9jw(|NkGL%~b&CIf0mElr5= zf;m1U@ER@XS0obd)yY~to@wviaZ1qO(?FTpei7J_BpnK7{)sq*^=)u935>ud3?lni zV_IwePJM#E;|dJ~fd>!``KoJa%G^H)(i{Im7W%1d)ToywiVhAo&WHfG%6RKhoFJ(l zlLv{3C2=4rRI06g4y&7@EKz<37!ICbSM=&_;_}`pKv}~f)}yc=kL`{_ROMufmc2?i z&TEx1C!FSI+Y8KaZSip$7KpLoRQc)0 zK%La_!Rpb#0YF>ub8lE8)=QUFEgDzUqcF4S>`_mc2Z#xy8PF%UP!YASf>Q9fuDUye zQ^RLu#r@}N%SNPWQ@A43GbiNjAhxW>eM458kZLkarK7ZzEl*)P!=eQ`2~fz(YP_2! z3(^TpwI17YU32xe$VbW(l4#!otPN?l=%s$S{}C`M&sJc;R%w8#%2;F*Dh#GDg8i3# z?Z+4TZ|~G6feyW)fFlaj-EBM=3x^@jjA`_tLg@sJzgSwZbWWovvS#H$3$D;$R10RM z#S~kNY(LH86NTeM5d=ep%Jdk>lM_O4zfE8NG#G>J%Jngl`c2y^XJ(}{S^+sIzmw(3 z)nphpFF~{|IcSkFnLhi2QFpX3IO|wLCu2G*8&a%K4p(YqS*|tQLU*^}TTA_;=3pF+ zPCh(6p)v>ujf7#2#T>}r{k#xWMJcjN`v{75Z~La?_LV+jq+MWOlFwQ zRj%wfn`UNRp&MG*npv;){zp!dTaa6yxgckd~(;Vq7x#Fv#KQV7Sro{Di^Lzj)KgIX|RpwO3w0}j#;@22h zQ@Q6WH+Y{&Dec;DH)fb!TA_cfbz;?ILxK&fP`)4%QM6)-cAzTkHY><8t@nzsC&hJH z`flu{E_ZbVrt5E2CqBqMneNK(DlW1vZure-L|y2hSvjs&6|+LCjtO^u^C6vAEpujk z%X3~V-4ZuZ_tT4K`|A@zc#BVK-+%HFO27*~)vGNsxT7&j%Y|o-*e+ApGCSbKW|G|@ zbWYthU+wGk`<0yW#il+N?S9?8ec{XL{~bGGc6YH+ck!g{3T9WE0%frNKZcAs@;yJ) z`0U$3xP&6}3QYL+mqZadI&k>5mt-hZt@||2R0h)Dph&~tx9I+{3-!~v;hz;A-X2wBa%DPJ*`2)aBKE^~H>qBNOh=uVip{i&RJ zkyUBjRa>wN?x0WUl&eRc1lB?WDMlv^dUM0VCR$2;%MC5dJZ&7OcYy9v7VoIy(;Zx+ zUY)G>%q=<8=M2J?yK$||Hr+~l%8YZ=)`w#%c_wURo(gt}U868TX=3{tYr5)3q;|<$ zCbjho_Alk$9JDFs5ClPr@`RNRX)I5W-*KQkbm~QuN`yo?xeLmLU5f6To%L-#mn6o* zsa#Q&PCm_78e7V29Fcd&ZunIT6u8m7S32%_)cEP_`jfK>DyxRS#1Kd0K@zl<0~Aq5 z)9R(Ye5<$D#!q`BJ$;>JNh`e43Nehb%gmnU<0U5HBd4Vw(I3!iyOo-c@we?u8Z7GJ z0pAnG-KA=tS3Y+#ZR9X|V8Bw?f>}0aWHPi(zH2l}ebD z;CL$1g~b0i7WQ(_3QN2_B170QfJX4<^D!J~Q7{3EZ zVXPC1jk40I-9|-+E+XOqM<+#4%3@~yW*SIC8GOQVO1iVkNssQ8oN1Ttpw_)&dsytR zP9x3U=9x-rvEO}8jnE5$#unhLp)MuWsYW?e+iexE`sSk6oxn2Wuirb0Qm|nCz|JfF zhOg8t>#q(^P@KHY`{7aJ9p*=h?!Bx&0mESgZiKOHEJY1Mkv1I-Q!u+&i^$_x_yL1x z(tgYO;9(hl?efn$ei0Q10IfkBuDBJgA|B0X6-5l$|Zvq!&R*4TWXVzeC~&PJZ|w~YTB`Yt%w$=1(?vOu=h(Z33bcFs!{il2as@HeUx`Zx)k_y;K6%bNT9V?|{=;MhB_IYJ}|Rd=p@ zn1~sV4wJgce(_nw{cyZG*=q#_68*M&u=lCY05ITi!7xFiUpbJZ28#S>L+w(a8=){f zu?6X{V;Ue6!p3=ip?@hrXuix=Ktqw-5z))EHbc+g7{&`rJde9`;xMluFr$2-Mlf-A zkb{RPJP@*E6S+Hr342xhI8mxBz)Ch{r8bfYBWnxBv66sFv^N}vnZIGa=8u`#apSCby3*|$L_N!Je&3p>ooF|SXTfO zJ4oK{(=6<|ANBe_H~RgW>V0Lm_vPg&h^h;6NnanFzg8FrbqypSP))F+F5+}S)b&8| zfva-5vJlWj3E(tj|Khbr;i$)kzGqD1Eh}vIgt3_^>O0U6%syl>SAMc~bAbr*t#+DwX5&5Tzcd zEhmhOYx`u#dAV0qp2`4SB`VC|P8TQlq-IXi zBu-@W*|PG6n?qJ2wLk>tKVb6l(Z2D~hVje0YigmYHi8O3h>k(;9YVZHB;*v$DsG6% z*FELPU{;8fuDb2V#E12nF+lbe42_ShWnndT{V_p-{RN+Je~e(zs5!bmBp#Y7V^3rg z30BT*3+rkVHjlrx(8%TD}m7Ymqr##j;%^llH4aA0!X|=XIdD#HwDES{8yO4)r(6% zZMwT1w?JmRLW`nJfpSpM!W_^_&F!Ir(Ei|VP436DF9hot_QL2-NV49E0SbaCdsR(B z4wWvyO9KL6fHC*3g$a^MjSuo}Y#8WiJAXXV_?{wh>=~u~+@kw(Juz!uDD&tl?d`lGc?8VQ9>r5x(?f8tMFerZI=rcz5D+8lZ;Dfrf zM)4BbZJQa}E2kYG>=E`HXa>v(P8@~?1E+IxPDI5eyb2O(i=OXa>GBz9ZQB-TF9$Y*Yp)IN$#1*%z#5rh0;Y3+ktw?`R$#`1_=baC;<#{fZ2uO^w)SfMazVNknZ zHdY*{nywl~t~_WC%k?kfN{@vD7Rf~2q?v6$j8wgolBhan5f))X3Oa!$q8T8=aFBR_ zpI|GLO=>}mvaUYc;#a8S6q;n2MhOPW@G0w3JdAEPL@wuZtV?VoMvaFL)LieVz513H ze4aIJfDQ8Yi?EbH7|(%RHvOY=?lqn+$_Ziue!zHyw+J1mHbn_Wg~B;_WI;j*@MbU! zl`d=cN-{q@zye6;2`p?yQPR?^T~VaqJk~w6g6E<8C^*rg#$gjaTLhgv;aau!pYi2x zp7U$QcLHr!C*@stE^QqCALibhe_p(*(%tEHtYG?yz)O3P<$`pRr%Z*ym}Hmgs#GZI zB;l;2BhE+H4*v~l$jIg@_?pi>)aTxwZ_cM2JjU-(c(Kj-PKdlJO|#B6nkG-|lBc)o#_!2p9OfNCRzs-o6o{4; zQs}l%SalaGbyf(TK^O+b3s#h|DM7A&BQ1K=G?!06qzm>|EFzF~)I*p-cOUtkNaVat zR#!4xfPZco256jK3Saz1i%C?f@DMs)zKpI5@GG@=tn9W@E)7KrtSB!%wO^fW%8o4G zJ)%BjE0-%Coo8XBvjuYzTa&%*d8Y%A9UrHNY+yD~-@G)t8+z>e7Koe&0<4)b_X*wq znqE=X5XE_Q9KfioQ@j%`Qi$k;nMK!T#SWgmVA4OF3$G|uRK85-8#aO0K^XqjU}^UW z(+-@~-CM$;*~r+l6wXKqD4GJ}-;W$q;)gP338&?59k7+mmSrt026>c|MukTEz=DSz zz3~WhUlDMfCsH8(;Zr-NV+M}hb8esoeY6KvdQS)j`km1ZGfVm2|;Ac{s|M2IhO z5j}b`?T0cnz+e1+*<)%_(>*hd@g^TFRg(GA_Z(7rx%-n6+%#!&zX6q2CwfVTKFV9J zXNRl5oj{^p@2Bzg<)sCP!qZL;c>&-|pW_IrB`y|FYi(>Dvb#@?q!QGQr0Z(+(tpH-$4jM0F$B(8l&;U_B1WSXFCPs}SYIFa6H zcsF9GY1%vg3|$Hsv4?e49aP)N3Cd&#Pr?h`e*ke86BmC{e=w|+*!YHZP%FZ9w*?@L-KgQci8?u+``Z`$ z%C=50y^V>4e3PR235`!0u?e@^T^=z@v?mN?Mtu43ov2kNEPJNo35t9JAOe(iBoI-z z3y)!j`y6?8_k^N^m#E-b!HjAH-v$s*d7mFolFGJ(gXt1IwfnR5b1AS2)!5ugv8>Z| z=!IQWhb<#Dua?M_tg>uJ2ts)jD=1LVQ;2CqNx9#(08|NF_yL|aVDv4;+{nS(!cO13aqcbl|rBd*` zegmKtq~dha;AXsnPb{|L3tzr+iu~b1r8sS%VS&kM4zW+iK=RXC9_9nigR4ufpN948 zBLXj*8Ls=PcU)_+^O<4oY?L_o6W zdD&-o!^8~cUV?%_B#7qjkCY+ zcJopAnm%=bm>2Ac@iKJR?KS{JiEmYb=6-xybpg{k$)}l z))m{F?^?3-=Uo8AqH0wWfw!

        68&0`bnjY(>}*oeyMm|KhRNO)7~I;YfJ-*!*Dp7(5u2SJ z@JPB$o8*~3C#P}l#ay3lhoPbTB(v&xyofhDlikFLH;#3)!|qgX+^0;iosg?;TO z{ecO)Zabd-JEgw(UZnA2OwyLI`f>mjhJ1GIb-? zhPZXRvkLnqcq4M>f+0X2j(Oz*^-{5L$AOoQL(ICLM^*4g3Aj84@EHWskqgV!KzadMGvU0WNgqB0q|0s^j8;cRXv0HVF-2HvxkvQ z!dfgsd6L)V&^=M}FxokW%)->Li$nWj-iP15Y*;osCcZ+!(L)PH`dLDe?XnxrYi9EW zq!W)NlQg`n+gx^^95kcn_Q`P5ptg85Y7!3unv1$TPXgvGLk!?=e^suN0fedEk>a}a z6@xc8m+7t{O=2O1g6PAQK;@fM@D=B8nD*<13@#7A^-v1`55qJ`sYfs!(@fY`7I*O! z=IY|n5+FW*wMzVb4D=9dX`JLcNhbWZdVOyun{Q*)Q>oFN8wV^`E}UrdBKnxYlF>tW zs(c^uW%OQWpR$%xPx8qpPB72AW@csZ^ z15pNgV-J=a*sEX%OS^PIkT+9K@)sK380_OTs+gX6>6iiYN;n8t;WX?`X+^Zh0V_8$?-2+dpJ5^sTL^@CvO*Mjo?*tg zfc{xgT%e3uevdH9t45!VnaT-=j!B9ImR7j3+Ci}mb7-5SM>}p}3o|3N`n;#)5L*)P z7MT%W=1A7BHClGDwcpGSmS>Y4$Rl~iSmE+_iRk^N)@NH&@z2)h{!5MB%+ z`(F_&ha>8I`DYo6<-fDn}Lc6;G4A@5!9BEk}Yn5UTv&5 zTTdQhi|RIb!zuaxuvT z_j@~Qk#nwyy+NYcJ9@cNPdC6B>eK;pm+OlHQ|*Qyut`6XWWq^oqJ>MuAU!E-M*D^p z+nU~>-oyK|@>w%H2~TV1I-k|p8B=9Q0&^l#SG1n_^pp15X7Uf{=}`?}iGNKhcA#*( zF)mlL4=91+sqxptUBCr4oz;bjvc#)`2ar(!VY23_gRleGqQB=izbv@5llpg`iL;ZB zW}#>&g+kK`BFa7+Qm+bpk&HjkL%4V+FkqBAc=4o?6tLJ1tZm9IorMm^lK{_c=dQzR zh1teX;XPwVNI38Kw|AQG~>C9>abpA zr@~<_X~3)zQV`Ph&&VdifcyVJ{;jJO)ePy9eK~@SPf*nj|AghPf zfq~;l@_qq(i(jGLQSC3L6`8u>%QhJHl3P~ShA zf<{EGNr7GQ_|6E)573{abT};%!84#f>peiXWX(*E+W(Tj_U?RlBQ@nL?^*M0GOo_) zq@ODk`sr&5i9Wcr{MNT3;0iQA-q6cW8uBT84CDJ&CFQN7gZCymmWkG_WiA1k^C~L-D>S3wJ*muS#SG$eb%?R8+9#T1?nM~E2Z%!BlLIN#M zq6wb5ylYuX(uT=$^%XeExEZO;@6TOhoTruD%@LpqsnEsciT|#jI%Dh`;-lKKbsG z&qj&_u>bE>Er3NZ8uw+R^7iQL)@-`{EXy%is+5-x`R>osIEJ)iCzo-x0ct=*WC0%wO-Y`)ys-=xGw|m%kS7@r}Zrj)TN< z8;}TVeum&(xc9!&AVK$Y)y@gwKaf{*LN%WT&Q&_vhsF5O5j(RRZ1vjbRv_qA4(0s4 zcqC3h@yFw488nCTPh~fiIY`B)pNWB%igI6zuq@QP zH+@s?Sf3PPDa!@glj_%Io46ySS?a+u+is)}8JmUIpJwrD;Dtdx(L(Z>coh{Nq9tb#AKmCex*hrK-TbNBh|_@}3nXde6+E^Fo9M70@JDF?Xw9$3kaa%y|PPq80&5Jj4M;bi9iD+wNtUKC~*fj&XFlp!G zN!i~!X~qyFB~9@7JnHcdrfjy_yl~C|v_=oU`br2@WVh4ei72n1C?tQ$X(Qw%QNzZu z&;EBr27v?1{A7Z2MkX#$u}+MHmxe zyWXv?MFF={ZB!irsGn+F}k79k?x|zwvpxOnvt%i@-|?VE%7?L zaM<~vUenF0D)xV~Tf#l0xDn0CZ0f-uEhr5<+ifq)i1IC{V;9T$vfTIl52`N)5+U!Q z{}BDPfY*AD{$kntqoLjw%u9|P*E^G#J667oM!yhRR2%TvZ2kqK$g*%tTNPYXvm~op zKfV6xr#?J2ZuudR$aU`q$R1C)^1;V_PyO9zFbK+-Kq*NENA)znxZSrTO;nfv3Mz2G zXZs{#5W|^UZl1gHt7jmtGkZ-&QJnmKYJ|dDALjeF2PYvgC&B~yhZm*AF!Oz*`IA15 zfHD5R#<~LCMsA7gKPiN8nn zA+SQcM4o9;Zdo#vAUu}*G)3(eQ4ZoOW+9IBBRwbf6TirSb6zHbZ9F5`{bFTMoUbb~cq>?W~vlh6;wU*59DoLY?`;Bj-!QCNxHq%=$>mA zns98G+Cz-7Z0qa9B!L2h%IhZj zHE)qc9i8cVdOkd1*%1f15dHbd23j)ve?oDJdAb8Ih{a>8hoUCxlh)81qpQ?^bH=CM zI7B(FUOZRpHo6sH>$w3|PZbIn-_Mj^t^fSn(|8dLZBet?-~6CfbXLt+J=_Ioo$;wP zDgL4NEYJ@1hMap*70ROt5ANUD$dbenwaDSZ#xs#8|5E~TGGDvGAGa@=Hg(W9|BcvT z`926xSwrz_M&TEq92z+fK)Ha5vJsxM6kxb-tOvySc!Y6u(`CGtd)F8$(3Iw~oCh|x z@|nZh@mgQh=h<&vf=De-!hiT(il9mFt?Dht`8?97TQbkAJAm(Tvluf8vK8>OXOgbB zx2GDNS$K*P`ETL4x7lIi=3a~EWWD};HRUHz??rwiN?gx4rN{nrm)aIbC}1mU*uYOA%D3g40A zni!N5eaU?4YWAS>+4Rie8X{;%)hv_bZDP0aKDX2wmK!+{P?WVe_pzj3A}{BY=N7_; z)y!Uj9vY&+DUHAIBTG63zUlrU2)HE1mxUEJTrCz1E)p@<4 z9NuKmHDEsAH*kROX#c*v>Jz{^$Do!2ke??T7QhBT7I!B+Dni5UyNO2krr3S?Eb~Uv z8Tl~L?9d5^x(?i3f?*Ks{RtJc>9??}1?-zH*sE??)ncielB{!+6FpE4Cj8t2b;b`% zg-X+*cyipY8yU!_iY08rx95_kCqn!}gTInz&M5e8eD|IzKJGLuOE*{04eDxWY%$1w zl^xdU?LJd*;+93uFymdo=cKo-3Hg)P({|J5y4H^7(v8K~U`i;|t|+N8hXWSf<48RU zo$cBRQU?Hf6ml+=To@e{h?l5M@r$8U#cjq<<`SlI6p1tTXBFFoBLpj`-KLUy3*2;* z91B8fC27;jxfN$}?L6=4T2>C%886wHb*FqjreOIXdrryDUx|EBqg?@tw_8EmjekB6 zPtRyeR#Evr{j`6U_*=GifNk>hzp*8M*W&PPh2rhb@B`0v_(MP0>lz-fuaTA(7}v{QQo4d4svxRCDIM`UYwC!H_m`Qp#&kmVYhHmrPN!a|=k~>;Zga^$hs**~;(vfH zF-L8Nm;w)m>B-ANEHwX|`g)n9Cmc09=}034c#OQqil?DCR?=ZNA#p5h{~FMH8z*OJ z?t6oGP>w;Ks>U?-_Sy#D_VGa#ab9(+jU*I5RqxHZ?;XfaE*j~NnpA_f2xnqLx-6va+;O9 z6G{gn1~a{FVnJ;AmwyoUFGhoAy0`ybf6psx<``M`Ky<0O!0w7VyD$8A+(lGGtpr`h zwjKp3dtIfe_sY8w$aJR^n&Vm3G3A~ew+er;D@wJQ|1^!Eblbe$JcBbX_00y-+Ovx$ zp$$bV{w>gA5ON*6gk6-pxY#Idh)ggBOO4{+PrFQk9v>GJJ?^B}$vQM54&Oq@=bQfs z%UmeX8tRJfi1SE|d~%Zaw*vEkFOJ@&xFtQI5_8h)16iCtyhg2bEkA!$n-=cKuzVEi znGyQ$>xB-Z_#vydFG*Mjbsbx368PR*e?6!KcPy+4<1Q>js1GkiNz9fsz3Ui(*+NO?7m%I z?$>qZL+1iY7@sD&YfF2evziA6fKI8i!WUk`u}tUKP*cOwn(q-+Ct|I7_G{YKu420Sb-48gOodozkf9f zQoHOo8odFsF-GBA$v6N>Nc5h#d@pKZT5^B-8G!~Y^g_X|Dyw8Upj3nux?noCx|RcR zU1EzYO4iCa$vA-7xRNkU{Jpn!*VdJOYsdz)WSFWJA7*Lq6$t}SiHT;z+mD&Po>PqA zG3(^B!>lbdfg$7dT!#)OfY~PS)K5Qu@xC4(m+I~Uo0mccW<=N|2bQ37jec4mE*2Gv zAHu*A(`RY76r(v;}jqHH2w0cGklhtl`?@Jhq%%^tCR0#q}vxQIA7UW$n(;6 zWDY6xWM`)*zVeXQ^=uUjeg5*^9U*&&`Xmfux~k%2upXBrSI+4rZWY3*RC%BgKZ2Oj zn=26aO{E7LGb0^DAx7KZ`j*I=^A7KXad}xcYHnSfldGu$A)qH#Sf6aTQ{=yuFf=k1 zm*e3Q6p3)Xkh0gqLXx-Y5+_x^{(86DTsOa)8`@eMcJ)!YNh%^131166n={%0rGfkE zNA|8^uh7_z_{3ikr$#GuK4zukqAq}%{n8x@i9%!Xj2L%HE14%KwLC{*5rbZHC2%O) zw4nxv#qmWFZ`lB5B~F@Aj9W5Tg|O_~uTTYJFg|~^SY_4CaihEDGw>3We(=U~H>${J zXOSZ5Y_NL0ri_!pBNDkg+bjuTm<9&0wVYX5HsK#ev8AV~RE6F+|DfYi!GZC4B{VM7 zsq5kW8OG6qWO3eS-_{k8MyTsMy~$h4-q^UGoWA%6amWN2Mc26zF8QZUDH2@2*99t0 z3?=whm|0$9c&M6H$5y*titR0%*>-QR@6D56 zH>6GQEDE0a+J#r9CC~CRcj}xdv>^I;ULv9ZFOIf{JV<{Agf{dP!n`pid+;k5jbsRy ziZK^`rHo-io|@@mjwE7?*iDe>$IiR?$X8Iv5sX&vzQ^L z%SAOuiMIE30N=r#{cVe>NK6jyx<&Ib?Y(k1ge7HlA|he_y2v<8FswP;aU%g0h@i&x z8$vE0Rkqd16Z0#7T@aB@*s2ECp+Im&< zYzo^jQh%-?l)pazE{q|AaI=C-FN(=%LK&k)BOW535JN{0xvWmo%Wy3}0Knk#Bh1N#Taz;^YT{=ko7UmtUaWraY_ zmHR;J`O}2nLG@huHQ5Ib#k2`Q9uW8KV_qJmR*aS0{gC)o$OPa$-jYk3`XF>*y4ia4iY-#-;%DfkgWmc`{*o1BjqDR1+{0(?J_Hf{XiCVOouIy@gBkdexmOwuDp0NXn zulo#Z;;J0sU`+P-wR|wpbVm|Ka*Pv0rp<6`64$dHi$2`sU;Dl!?|CzX@;&V;(<`CR z$D4o3^e9l9?qH$?>qlpJ*_XpL9?s#rM`B=M=_e^B8K)F^Fd73s16g3ZC5huXl<7UF z-hAa2xdeQ+8YrlBz-iQG1I>umBpwE6KuW=h(d?$h1!cH<{k>91|n zx$3062;OIbzO`so{I}`JQ=eCE$91-KetExgd%_{BBuf%cZ9>@IhqU=*)edxfv5$N@ zcm2j|72Jlig0p5vM8RRQ$hF_DT?5ON(Cj&;*4%vG8=;%CtO!SfQWR2}kvE+L1M4l8 zq7o$>2t9Ym1e1c?hz{cgbXPwm-%z@zz1L4HwE=PH<-z-1nAmxbTD}D=Hxo;xrp`G% zIPc8FV*R8lahL<{pxw8*tr%H2CXmPN9GrfM*>NC7TBrhq-h{qo2DXpfZ%_&9NJm%A zN`uPV>yvBpPxkm?x@<8Dn5P{wQC8l!m6s^`Jb&+9?%q?^K%t}Kd@S3^k81Sjti zCjc^Cxpia1C6fr<@7?|LatfTrWhH?@$gg*%3->U=G*-+ zZmY}VR!c%B8A{k$ShU-jG48OP-Ss&mR(sPoWdVg3Co=EkTcXUVu;c%0g$K9CWO`V| zmdY+mz@lF<%Y7GMXJ%vFqq#3=L*4fyScW`l!T~&1B9xUc$Nm!`o^&X2nD+WWZUe~; zKM!B|ldJE1FG`Hh&h5~Eu+&reo*nUZFDrBM4^RcOZz?B zB!3FE?DXh|!8va`b6m*4%MRlzX$Zco-y*uM4e#nfy;3jh#ix$M8O@sRfPlTfxrYjX zFsnbWh>l|GdaO@< zZ|FQ>I&e|=mVVi^pHKVT64EK99MqQNjNUk{hiM8%E$*0mufDsTBSBKQg46KT9e-{UZtP4izGT)%mr%?6a4}?qO&+K~*rzSw>}Qm z$C;DGBzm8)>N2pEt*3I@D9Soa`}^XE>Q=okBS>^f-j~#n+NkQ&?iB(|$h8A_Nbo}X zS`YR9WN+=d65Tb(IPA;dmxa0XhAYvX9a(8TWk&S=v+VfH{hU;ib%QCnF2d0jd0;|F zxiOU6(ZCa93WF$h5OQ5C5?vbw<}z5cf1yT~KXZy)gLhxaTV}^2{kt9S7c_SA_>BX_ zbRuqeLB8rE;3j3V_x@r(RNv}-t6Sl)uN;spKizF99IC{Dg>7ZwR$zwz)!%B3L5pe~ zY0aRGX!iu-voks@F&E~T7>`mdWN?7^d|&wRVK^cbKK`X%4!>?Fz)$16^#PlXf5f!` zLNJ*FP0<Mn|5c$>dU?@Nk07gI1e+J{!(mlH+3G;rM+@K1QZGH%^HF{P zL!de8R((_-F0h_Hz9`Ux!L);=u35*2( zb#-1Mk!zMFafz{tQY^l~A9Y<-ovy)srGG>i(#9N$@#vmo9;*7k73ltdl8&PU9vTc# zfmPNFry+eUn&y;1o20e9K~~V{nyYUmWj2HhjS(HKa?MU~MpLyG#{M_xS+Oag>&YtU zLg4^8UI-7uIJYEY!byHAc^{GxcE*wjtDT4UoAeC9c2TDCa<6)O@L7{8-<4S3l|foM z@iZAb)}`bl5km-i;K&kz^j;bVaiy)2zc3sl9kZ?Hj36e&v<$n{u$F!a{3p!e}=XT66CO%jK(E-L*`tPC7bJH1KpnWx+-FL`31`dFjhByZ*@J|qWd zHGYxtF2SO3Cr#qH@euun)U04Nse1eSV;tl%z)&ktFQdvrM%IZpIFumYO%B!^(`gJD zH+h-WX`an7SqWv64f+V;Er#)nH$&>=(@#iT$O9cZ_`&AuFysYF?zGIv2m(EV<@S1&XMl)`|gt12G`0^I;ndPII1ACE$i9Vt2=6sfH#be8w zJjI2axoTz#c)?N5Bfs64rb=F%A$LZAGiR*t$R{28^|7!$)4|jlE_LJiZao&>H7q`_ z8E5CfOe<@+r!XOFw7h}p3spP3oUj*SM{*|(l)n!shHqL^9XpYAl9}YXHg{2Lvwwjv z`j%P`VMnu8OdT>y^X!9C0*@8#Lcm*-JB@Jxrz&O$UYIZn9{NbJByD7=y~#U3ykCig z4$bl)J%d^qk7}xP4ekAQ8+{&)Qg@?EZn(!}cOEWN?0wI#g5Kvy?T=2SijYDlZplcB zcTC48IxC0kVJ{Cbsd9}i!Q~KGPsvHn4V2`?5DG-$kjl1w@^rNv_ddRNPr{D{Pq^OJ zA^yTj65Fdq&uz~!RZzC~1+ADykzL-}IBZ=y4BYlTqp>!{?#AOXts^h85;5*8q!EA8 zxvdy}l+S`kQP;L=jT!d#_jd!m-`?h9hdqVcH_gRxr&$n^LhQHZt2M9P(z%ADvLO+^ zSu-7JGJsDj|MXQ%c`iate50|M@Jb|{zsA@>GpPs8{<8#Yc)`@P@7R|3C6MYN*;K0j zax7u#mFedLmu?Y;&R8V{#<4JFXPYCu$+)aR&CT+Ckcan8YsxJTdYyaIk&@AFiSk*m zbk!sARN089<`;_k5+C{JLO8~8LCDJr(gqO915xo)k_DgOFmmXhf;9&1%xu#T9%)6( zEr=elsi|}{hi~P=#kX)+ZwPp0TfME#nxZer-7l5TV;1^2^harUpvg}7zJKn$*r0yL zK~+kF*zwI^X^U=N1caXgsl4b>)elDft>~wB5{QoqWIgTwaXULmtcLD6`W0Lo} zr@BN#aXC9i%I1mVQtEwl0N6>hK2*Bx6e{&DN07Gt)0I7Ay(Ofy%s>l}%a6xfUkA zPl?4sy*>iN>ceO*3ZQ2euO^|5v|=+GZhKilWZ401GdO3#!4BP^x*1ka&2qE-Cn8Rh z!iiM#HZt!K8~1Yx%hc;vbBwunK|1HJPCZAOa}$ zRw`C+;_81|679n%wSsm9UIcI_}si3b= z7b4X6t`cR}G@HstBrA*RtXcBT%w<1d{i!+bI^o)y>7rc!#af7Kn`aU)pwBD2DVt@9 z^Z}dldsRp)!)}~SrQ}eF?uKn&LdhZU%xyBA`L@`l%#Yc-Ccro3<3@%NHfx* zbazTA9g5NoDjkB9N=k@VPuM#Pq~pbMKh?)piWDs8G&G3A}BJ<=D~J6aS*r zDC)>xZ$Tzo&m@C5k5j%kW}L@+;}fO?rYJ@#fP}E+nwB_bLd_C2ebaWQtNEm^eMJ&z zD7-Z7n}5?BT=(@ayOOFjKR+@Asa3YCSqS@c0&lTlm4a)+kRAR{IU2&AG}@fU>{Ctw4P{N&!BW2Q`{nt(<_A#KFk$Yqojx zL9X+{4fC{DP`KJZf78o(jgAU<*li&o^iAq%vi)&ro~(YyR+^-c_+K5ui6o*(_qcwO zpt!`$cN?l5`F?hu2+Y9SKR|`f&L%L`d1^X~njFZ;%_{rGwKvj|I>`eZ#;p%I!wS_@ zE|j@zx5Eb=&J|4Z*`Gye%K46G?BT;?zk|33XOvTF(1_^vve40Z50e}k78Q}xMz!zZ z#?-xpq<`Lj%|Rv!r__O)Qt-8^J{~aK%c*-Q&iOA|&Bp>rvY3=VCSd{|x>PRd!*%h+ zg@QY)wvTcz`S7P*k;_kRKZXdPb~kdxWQM~$A?RiVAI2Mdx&yJmq0V7`Y&!&FDF9Av zcf<)awcR#j*bX*}Y)Y+sIUMGRZ>S)<1#ma)3=6q6Q>?p0^3tY2;~%n5P_f5ln}4ik^KkOSZ@#7f$&2`5^lsb-ssRP|n_0)hCY zXVlviASahow2CssS;B%!ZzMl%I7V0ZQ~3S}VG8Dto*tcPnpk!YZB$pckWVtZx2EL+ z&)|*0=|XP8oYYYocTEw(9|h5NnA?8em3Q}|F$Y3Zq5Cc12N?db!9Ux;5w5iHn)I9M zf2kMpY%_e#Tf=+bJ0*dM0Aw^38dA`-nml%V3r^}E+D-VZOCW_ixw76=dU+&u;*5uZU3Enwa_-PJhlE8 zqpv`a2kJ+F(iw2JRGL(>11<2Kt8Z!W>%sSUhQn@w`skFo05dzZcyw!P*AVgaomGa7 z(-Oh7H3~2S*Y;KG@(saaImD7Vf=?D7`auSFna-QgPH4_s$wB@l*kDU3uX}7Ln_x{? zP1QPoPrP4I_uz&l8qjTvQlXCJpI0Yg)y7ezq;DC+ILkEqJF%f?$QoXhk%u)(O)}CM z6cx@?CwI}d{FfQa`d!8wmfZ)6FQZo;c|~Ugk~;f&d_A*PEsyn?YZ))%Nrt8GbQ3+k zb0yP-7`ONV)A@e;86YX3qtRejs0eDdlU@E^sBa zr)RPJ?lp%VesV-j2W2~zxkS<>vpaJELNMoC`Y`S=IIBKu(DVADKf&SJfj z>|0cMPgErKOY@uW%QNW89vSPN&KVYbu99*1M)y9(8zL8)V|y@r-C>+cizHp@Fn(V? z5%68>rgoWEUgJ?kpdW07`wrijT2Jy^5-OA|{iZtGeVzRcC8@YXfoTid^O3-@R1#72 zij5%U_ zauvP|vG{X;ytmz230RNl!@E@Wlj5~vMH4+g1D3k3n?CQK1kofv^`xw(s4!gS?;3SAJ)Z1;8 z2UJ?PzZP=5aV&d$ov*s`o}+CG`8szU`A<8MFFmFmQDuJ9E)-;3Fd+VZCF*<2Rk!i$ zU{HvL9oIICy{aUC$mdYW2W2Ah}$)@K59^G6v@#0-n zIZ}63^6J;?&aM|oeEn`4E#v=s>KfmtSmf)hg4+hAq+80)ny2IBUz!9A=P|#fN;|E8 znm396BT1r1C7UrFs&yLm>JYF{CHBH|-up+9(c4;sQCGTY7zN*t$GY`!5^l$>x6Rmn zFBb41O2K}V@fZBHOD*u}%nG^B;!SJ{-(FxFto70z_U2|w`ruBt(lD&9$YtrQM>8Pa z9UrE9^rkG8_1vXSY=h^CgyL{e8_?0L*mX|ZyY?`8n2Q^wJ6uQEyyI06=!&rR&l87+ z&M7_;Cf{gPd$LL`(E1hM@!ap6UGW|3CObtl29ped-Y|x3%yYkTTwE&MY0orfiDjZt z<7Wzaf~o%DHcn#vjLv`QLgHs*Yga)=n>?O*u7F2)`oL)JE9=`xz5Bqgyd|$Az{eb7 z?Sp4eYbyKfC3kcD*GxJ>CI1{=_BIoqc4wn?JN_>trVWrmYBk>fuE8RPltQGAXVbgg zN87IEXYU0SqOYdtwWLzP?{90OYy*9;x9m;G!x-B2152Pn{Ni>vBM(v0?rY_o&n30Z z7I51mkpDEZl-9NuRVASd34rZvxP*2!xY0{b?cqK*(ArFPf=+t1YFJ&twr-!)mQxhW zbD|4ysIAgrOBqhA%*Xv>qzow+S+>aqIs z?Zw~x(IzRnkT;_e^A9`jr&vew&a}PO{|fhHB_TgVL$**cG;cL*1lR#^3mNNVs~yBx zoA)aDUX+j=q#Zs{{yl7D!Ie5C3SxW-R)P)goDz|$XUu5LHE?A;$F^{ithjIJ%7;MR zjSa%vdH*f{Dr1yJ4 zh%2Ah00p6q$0W}2-Hc80mRoLDVVGtLZ#r3_d5xi*MTOwBDxQwk;5_#CR3777*Ffeh zhGZ3l8OH(kvVdpMI@wzU?VSv)?cv~WR&qIoOQii1%{;EKA=RgQOzp<@9#hDrG5j-m znOCI%J?3W`$=qPYIUMmbgoDe+Luyt{tmYe*%9J8=O{|oI7eCTxx3a) zsWm-Qbh^DBv8%?#=erjW_!Tw&hOT`PVlRnO~39J zCu_fc9~@yv;ik0HkqHqajp)fvVd%9~MEKRdpDkzQ)g$&0hl{ z5YXZ0#1f`qL7?4U3aI*sY93yzvGIehY7Gkr=u(Wkg>Z@lPwh6`*k8=VyBuAMU}XdU z#hN)qq{Bq8+1p*0Y&NpHm;@P@9^i;?-f@z6aAjhP9&L*pZ|9M57_#2ro?D6X@-Sx0 zj+WXENPCrDXrUlowIqfB_c?RAmlR(Kr`P#37N4>lIBej?F_whN!moE#T-Tyl2u_w6vvu zz$vO!SAu?R4J!DymwL>%yp~7OR4#6p<8T`je0Z_^G9Sn`Ro&}Dw7-DJ*Lg_*c<`0Q#`+-55jsI1+Y^60o9 zZCk5Jc*tjc-iuR@gY3>B5r{R~(RPZ-JW@;Tm}rV-?bn>1gPQ7EDO%Tuo(a2bjby6G zcfF86(BG1;$XLx+8t@d5fDF4Gwp28bBBo2YiOeANa;~T#kxq0g1o*dA%Y1uNlu`91EO+#w|0?6j zLh8UO*teq(1?yH@o+XacaK+Y#i+7%X1t$H_Lw%Y`CT>XFx}x885zF`&9&E4;ocjJ< z;0%{^Za$nn=P!q9PcI3Nc;K!IO>3N}Pd-=~U@PV~oneF;g}N8~VS1Ety29}pM%xd6 zn!-=$1af${I$BFGhd`-QmQ)(PP1?9X!|j9dGOIYLA>Rv4L({%!zefZ;E!ZbJBKxm( zo^<~bi}8Mf@S4p0vYcgni5-6TjpUQJf}(aoe{|VsmGjsayDCx4fTF9X-Lr>t} zQ~?!y=lTASBc|VL?UH~!4qtkp)(J~SJC@Z%=nh&w#y&Z=vE1nocbK4Cwreut_u16w+t&uuzmBQDHJGHve+WD9hG7yyQ4&U#`oANJX|QICdqRWrX1+a{`5_QAXiBR}eo zZ%R2zm@wtsQ0hMTDAwwC8y>!r5P}Pcpxt#4DQ9eQAgI#@h>Iv5htF+a<1CKB`YC}W zvO)Ze{nk?&4_rCbJnYdccjeOVCKI--Q3tv-S(3i6xTVncGW#^>DIKFFBGit5ZY1_c z)Su6JGM!8xXGILbS&czBL0qUuzkh-3PxS9-jx<>Ju9#HciuAEeZ$iQkb`Qzzb2xLn z=RS&8nfYT0BNq(Tj-)0T{M8o0`6To}XawF8KSO#Gc^%Q&?R->stJwvWq8kc#Br7uF zRzAC;4igW+ebx*rmrTG6%%N=4Y(qGizh!Mbd?}ik=1T_ZnShM+b{qR`X)m?_0_{`w z_yUO3Lp0l^OC>vqf-INo$(eDrTgBvFQUp7uq>H5ITu+cNJC`EA)+E!#eY1O#{6Jxn z{0rdbdL}np89_H2e(Xl2K>yQBsDa(5Lo49dc0Hf)6}{@qhBk`Cmw4x=DLTT zlkJ;<4$EXmWM9@o1~Z|fsD$wF&Ks?%aq$m@o<-%U$ndg3T$GLir*C%lh^DBPI9|$@_QKUoziozMb8Z0jG>O$ zim!_6Fk@q3jbY@$!5>R^Fa@W4`AWuK99G!NnO>nKa)uF&#z)8!&+^mW2d>#3Bkir^K?Gy|TV)y2NAgs^_3lXhvu&3`vjZm7LHuVjSlX z;W(F-Oo5=7x5LfjnVPUR3`>3?fAC8aI2n`|dF_m&6+=%Vc8VxKTF6iQaj*NSRkx zbjy`$U<(CXDp)M6IE(=nKWzxo)2DX!5mpu)^8O{kYN&>p513r4gr?XMe}Vffm=`=N z(cg(oN*qjy{OkqFUPa-nY3d$uZIar35?9sH;{-k5$QB7a*bDQF)3^eZ47ZQpKnBT{KT&6##nO4`^8|T2;uol1_e0S0tUnKF?EPOyFiZK z{K6zJO~?AJ6@h;9MB$T(5#|%u8?ww$JpzW<3iVa;r2p@ti^uYHUJFYQfz^GFj>Wco z5C=m_uWOGm&%!N6ZnbU8p{O)QuCoVB@aG;h)3+sTFtOkem~r{H7yWr`RZIr0olY)l zl_M#ZOUDV;HvpTZsce#3-A?|uXg)ZY3ado-o`l2Y!0|rN#h%dr5be#Q3&qly{$eXE ze*PM3t}Cf`WD8Je6yl`mPM-#q>=Yy9zC|Q0&EP(wDdgAus1?GoNy=LVvTPmD{6;nf z-M-|5*c$EUG+!=;!TP-(BoO6!RE{s2x3t^_qm4cg0s&a1>RCit4k597)fOGzzVhYb4hDm{eHNun@=Fow~A#+_388Gj9l=eO;U`)A`6ZronD zHeih=eJF*{X>WlwaS}+-+Wx|Na-fm;UH8xA;tHaN*fNc zV<`J`ZvxDAHJYZ`Y2kg)!09BW0;lxJj7p{k2r2yq;TfZp57G%COy9`E@-^;b$T4TO z>evWLp{G)QJlqIbw39!-cHnHyUpv}A9g)E*zcQHzw_~}`Y^{tFh@K`56X^~n(@$+2 zC4Uzu06tNb!IA|64jcGd+jewkok`g>3|efZ&WznjXHaQ0xy|$UFU{Obkfu?@Q#q`YuYCQwBbPtV`Y%BlI@N_|zs4(%KnJzVN z2FC4ap1+VXVbf3G&&9Rc8Y!;fmH&POqI0IX7z*4A=Nl3hugMrkGn3*5sF^V5i&%Cx zv^9)}i`rVI$nh4yZ?+To33O70`;^?LQ-jyi=FUU0SX&EsbzmVk70XY|;M~?(3#wcI zuATlf;e6a*mm-XMm!Anm+Fc8Ay;IB6iK|E3w!W~JFD1?wO`2;Ce zzb@9_SH`qR&@R3dfE@&bNCqph1b?+a#vbM9Q`7r*z6Ice{by%18gd->S@XuP9%vBu zVBkvRn7~o+U-Jgau+ZZ5c0shfkD1@O27&K(=xChewGW<=Yh&e#Tmq{C_Y`OfFD$6+23Vc7Q%^mGf)Ra#PfL*F9pgj^#i20| zKW}A19kk%TI`1MM6opGP)Zbn#$0RA+_tcR^z4G1|Z+%p&)|so!5`|~;PH!RFeWI5u z4nDOB=XvsRwJ@=C`%;GQ#*v8c^OXOC9XZe6bm(oj7z#+V>>JFqmn^fsX-5JWNz(P{rgQmi<@y9Di9hRa{m4Aub&eqXX|4pT0_ zyY05;_mkjHi1>JW|NNN%mba#ed`upQl?z@B`u1eN0Hw}{OLrCk_ZtaVr0TvD|Ri>su4)M{ZW6WJcVxY z$+(%ge^re7!)zi|-kO9WGT^w)dHpJjhs3*T%#~JTw!n28C9!xs=zd1kA;V8|2f85H@y2{>oP2B= z8f}&`zZNo>?zwC!yq};rAkcZj*uo#SAxjhT=l8EB8MB2~*&!9F$KPeivOe)vEiH_E zInfkd;Qodd5>F=CP~y@qLq(NRkUIVOB5oeLUq1KPX6U7M>Ywo61X-XVKxVURGb>a6 z@T!;yn0>ViA@}gju^wT%skjX-#qx^?tzL5HCZI_<_7L`}856KjCj&C>ren7?wq0MP zwzS%_=7MlQR^)DS#&rhaX$P$Oi9i1S9+zG#{1pQGgD`O_J3X_U&-#@g?p0}8l}FT` z&>b7Lw2exQ!;D*!C)xDiFAx$j|9s9W-Bj%%2G;>SimXq2MSB6{dG))EwHDWL@Isof z#ZZ_Hk+JvA1>n=m?W8mf{o#r88N|i0&g*Fh4KcpeI){gj3S)|KbKPJK%J|k*JWiEb^V{Su70jUds4ZaC=t&8CDN4Zp`*#WqIHSC z)n4Fm;5G?>2lq(^x1IrwCf3brExEd{wQx9`>E#`Gg~QLw^zkvg0uh{BF^^%bJ{@>2 zKFPbKh%Di$ATf{N1!b%6b^?dO1tVjbb6aKE;|ME9^q((9X8Xv8zR~8xqBb{Nj5%`o zByP;>NP5!KO+|SD)tc0m+WUPCJ^NHvq>=4a0)r;h*RYz(iPzr4g6@8;o4O7k@3%uLTc%)U>_mm&!b9}zn^of(3o(GA0a#kwYpbG zUVi$76;#x+bl>$uLPSwGC~W5ccv6dTivd8zt%p*a)Ygs4aw&PD2(`Cpeqjo<$$UJ{ zsxNxl%B+4LTW!NysKL{v@jNYr>jo?LYtBXXf_KZYrx9To0gVN!U0 z(NA152mRPXF_r6|;EkGH#Az7_89A>;tAS$%3k6!YgI*1Jv_ zxqm;Ual$U@*~uchKgiwws(LDk2os>w=S(=gYmIzP;BXOJqpi;*1+#WurQn4u8PS2( z1??}Vz3VZP+$rt{YnqCOokX~`Z|)Y5gnZ{-Y~V=_>9%fVd$m@Iqd-V^??xup_L`>J zQ!q6-K9PiCNO7M?wLk(escx48i}asp>iMjLZtG5i#!udqYL$Xl19Utl<5PM+x7Nq5 zea&Q6UvvkQK-DwGO>8(j6Z>oUu%?)#dEqihXxs%uw$ue|7X(ppsvAfE^Km@>^Hl@p z&MjAh7Z9vt*dExdhI(yM_OrD?HhYDFjZ+!(H=Sy&Mh7w+>_*W(-wo(Oz;O2~tB9e*AbfvIgjvsWtYFI9DAi3d^?jD-d& zjFwusw=;ja)W5MD)3U5fX7CK}SHL4;lgjD?60f$UMZndVaXzpnoVZ+Q7%7&#SV^NW zw=+rX@GmG|j-9(BkaV7iwW$P)P+Ld{XLB-{gidlU;GU+>v64)ylKAPTj z0sLX^X8Emo0-M8aU1=D`;HCZRw$BMnIi*oK*08!#dZmF3bI2=zjTpLvIE46h(a^vG ze#}0e8miHUl@oT|Ox=6O&^hAz{m8eykF$0ieAvN`KQ!XMEVNg{Ky^xuXbOYVH>a@f z=khwprts@ZYU%l*;>X1cfR1tPokuUdT?qQ>YRL=fTVpl>R=>uqUtd!1wo!Ks-&4%= z0@(v1prCchkM_b<3&Ms*Q&(yDNyfjQyjDSKG0(WAMl_oH{PQ1+qJ`-=ffWmfi&jLW zJ(V_7?L~qBFHVXz6*TZ_<2ks#)S6Tf`}2C|jJ2}Q8n}0vqTQv4;xdE!@iOO^d`=2jXw9M76s9GiBCH+*X?uZJ87guC_1otK*Vu;WPexwa3Za z+qz$$LaDKh8GgCmJz)WTaF6L*1;H6MrphM2y(4n3vOBITS=KSfl4PMJ-Ge9e-!BqG z7w&?A`yu8zmzx%?R=oQu=?}%EYCGI4MlA5#{Y@^{-ITY^d$UYf3&14>HZ`z&bSq@gv44EJk$#;KtqnFLM zey1Z+TEPGG)TSB4a*damo3K#7HB8u{6?d-te!%8h?Ya(AzAxpKGkOHbBVBJmBoX%5 zxq8)tn9*#+x(|>`>Z@!DJr+1;c*#b!KKR*9=2F5Ox35l7qo*lBp27+KQ}OI@C#1Gm ztvn@8e)h8O_XW~g@-(dMbMaFbw)|oab~*xpH^~xz(yv&Ze%R+b-tZ_R6kUI)H+eow zuT-DJ${CfBO7)?s&`{3vfSq4lzPK6u9}h>f-G*KePW+3odqPiP1YzT!mQe;`4+&5G zI+d__NBRG(`|QN@2SALcK4JP9uz$mbX=?Z&(9(m%iU^+}|3^H9vmPK}0t`YfrTghW z#FtVyG3pF4gXcB4ZpwewvNTiJ7TOukJ`JeY5G9rF;d5y;tsp{(RR%Q%&6qt?$&I1| z)_QS-Xdpjy&4ehf9#bYu9v3(_0YB6eSK^-%2BFb3rTUD5gZwn$ZpIWrASWd{vxfzQ zis0~W!X6N!*#GsRk#&HT=Ri$;8x<);lTznw-g@m;%w7=R3P8y6U#v%uL>V0FeIrRq zuw(Z;EXs~|>6NHg**DnR2gcXsB=|eJagSM{C9y+(m@K3l8FMRFHRkT^7^!73aXUy` zbdzjtD+3YX^09!wT_1}m%xgN`!abHtZw5}CuQg90B|NP@*G;lZ3c}iF@;yg%WCa3^ zofQF`cUwS9472vgqas+#;_Kw5<(_gmZhu~L6j_{l*c5`i4M1ULSNfZat*=48ybCaY zZKOYT<2U?wEpc}%a+mE`&cO8x>*H3vxZWJ{ZP@Apx&Ld=L+H7IxeL-Z9;o9JrHkw5 zmIM|uH|L;xe~7}&W_|&x69}23H{XzdC}!rN-TH?AoA!QEXo(!nVf#I4AJp+=+ISg< z@v!2!mX+VH!3)#W-_|(eJ8#?az2@H3mf9ve7C2^S+$0-&0D|Oo%=Yl=B#kUEAu8uA z1x_3`Rb)7B(cN;zKQPysvXePtRDh>wzYx3h- zVS6N|aA@fRX5YQAqVV6;PoBS<$)+8-SNYN9<}daf_Z2BZ?bP2{oqH_zXH&^h5aZ;G zsQS6?f=A+Kg|2BAOoFGMp1;>2E=@^$u-?>GkUkPS)`R&1@-Ly>swc-L9On+1>$(}U zU<1@HOB7^^5$$y|!%tMB!Dc&>P^?!zsmoo%iU^H(2qugGzN`D~l3Gowx}e1S`5e?3 z-@OEGyDyb}07sZh=di$uGZ>3O*Nlo7c|?QY8?E}8Po+>pPqCcEXUHb&`Adqg$<5#Z zA}J#=Uhz%z%pZ#Kb9&T)F$~Mc&z0IzS$T~+Z{MPhmx{l_w^?;Ff4cFgGMJiak=x(~ z6X)k8(K4POik6u6%z3Yplk%ZQKq&ziul8J@R8zbV#7fzYH@;WISRZCpt%)YM85&j* z$!u8z1ZX)}E_Cu52ku~Cqx^IF?SgN_K$_Tt2Gg`oVtIF8wu>Am);#$&aixM9&MzuR zOYDfB=?%`zl0ZDJ-euOGQmFw^Rjd+Sll z|H$5?bXTM~AaK#Dq!mm`P#V@l(Nh+1uJWx!8H7pPCc`2r4#n1f$1HAP?YNz>x&Ed< zk*5i+0*2bVKonudPg}3tNBSg`CR?@t&9VR*!-$$~ zR8EP7g5Z(Ey(B-j6-2_#yyiG5hso7Ro`EKK6h&G@btRal?yR!SR$wj|*&%eU`w}RA z+h0A`x`m<<5miTjM^p1PiqUnl@Kw%*+&)u=I3 z0{t6rrXD**SLylLj(nzI2yKK;-J!z>ptW*f$?D+QJy>mw|N%`i=CX**4 zS3#7l7*WfWm+cae`Jf12{vq}bmM zx_8H1Hx^5&U~iH7)s~0Y9qrK!Le3{fzj8_g;BqU%8AQk9orfnsP>m_^(k=W`7*{2J z{!}OL>{U{4TA0FvQVvFv)T!`ug`2(XNH31LT*zzwsC|yCi{8A$y+E4&2smV>W`@P| zIfH>e;P(QUa3dOUqVp{IK9P2s!HyZ1&aE*7hlgNhKvJ~5>`rO8>_?jwPIo58k=XO{ zW$2q(uGjCZThSss$ipGbT&CYN|5qu58%IbGkiDVF9uL8W#HDvXn-&pq*9tKlq$$D3 z1rbv2{}IPteIw5C#Jyz_UWLYhF)H7Vkagau?`R@z9%fyDKXz= z$;C;1-#rfmDFpZl7Eb%{fa^w6!_m#pzJ+F^HN8}JO+e3S+p+YoV@*QQliwrOGb$&w zi%j*UECQaF8WKX`H@4unRz!T9=b`=ep-`LS+^Cj?mNi@U3pxT`c%(O-c1Op@YJqPQ% zx1mLNi_u1D^;vkx#c8pLCpaezcAOW1@J-VDu;UU6z2xa$6^g;kUV{x$@1dN753^?yq31&^dI#@ zZ#{jpYpn{dx;P58=C=4H59OSgCGORn*VE0@wi~yaXUM&tTvF8y&SA5Xt39{(F_3XTji6G>( z(IFh>0)hPPuO{PpwuXdh-NTlp1vMsCsu>c-Sia&rw}1XBgH?tD@3fc&Qv`0ue2oDa zbl)BxCq}JW0C<;`7+8JV+tcWv>fw&V4WD(ufn;f+R!8OCXH8uablG|ogq;fIi}UZT z%Kn93O?KhPagD`KbX=P)o3FO8>u!67h82<8Q;FCCT3 z(k1-#Rdy6S1Tdt_c7ImQYJC52RwC&+)1SbJBp`@_qoTaq{|=vwwNn7(d!fHK^w6G`D{djNOxX^)|am#3W`;Aap>-LorbnT%y<3;7@4*8 z>2n(cd|Pw$zW%QC_9>wNRzy^)*;H42h0|Z7Io*x#-~@rR?rHYldC+1-95WNXQlTOL zUx(hU{xb;cup@efxZ@g*%_H{9V}I&q96+Q&tH~m_vy++7Ng1}sZE#E01waHc95fXI zcDv$EevsyPCF-WX3`cLEhW6C;Un@<}xYz12bH*cnilSTgp<%uA84?zVv%h1F2l&f2 zZ^s7p6D#$GvK9>dez%I=HSN|Z`n(S8wGsW*52=Zyum>ujGn5gFC))41C^KzxETE5e zp)7jWB1BH)=NfVAsjK;hmVAYPiq=cNcv&F)TD@9r&{_5CtO7*$*w6|$SSUbx-6)+A z_#-b!QQZ7$;^D_FFvY#UbWH3OzbvNXSqTb_p(bJnM9`;|G(J)g#C(i8Hnb`y=&!9> zN3;yE(j++?3GvV?QUn0GH^$Yf7asx)0)cH4v!~o5yP7`ZJOl5YA&Bf4-`IyQ*SLpv zHD9;QshtiS%WxUWYFwxcth8+#Ul)06NjK$yiTbmKt`kcR@}$NdQJ?c0W|C^`Aa(XR z{0h^0#f0CA@@^vEYSqn++(s#X?zqeXP=FT=*?_HgNshr?wRC>q2y9yeUGsY3lW#Xm zJ=5te{f=CMkhuYMJ_feO<-W?k~%~sB;kxvj#L_y#uJl42ZdAGr90|dXn#UEX> z&8CMRlFKIT3f8|!WiefrvH&191e1J%@p?_vcEGOm$R%*wmEH*1RB`kc6+RX9BFy$I zB`Fl$sZL3IzgNGPFl%3wT)-@qT{m-fFv=L4arQ}GGv|}GQhe`?eb2k!S8t_kjgcur zZh{uq~tY<D{scKS43ut9MD{dtNci2w}wuPOFB~ZJb z!mG?9>GRwj4*NLjI6cCM8x`J}xQh?C&Jhx(xpbGlf!ysgr;A-H0=uhJ%S*&sAB`UH zH6MfDE3zX(llLKaGvEM1*M}xL!e?CZH6{4IJiqbL(utUZo`(Is)(t#_M+$P$m& zdANhI?n)QAX#iaS-Lr&A>Ui$p(^94DaIDPR7{6p3vsu3SAl{+CO#aiKXT`y`bEhME zCS$_44{9=oLlePR$}adI1p9W)&;`$CNI`t!$OVsc-RHLWi(W}-_EYz940s!GmaKk$ zw31Mxpw-j-7~ztS^j2sSH{sN3s^eww_l6%Et1E8H&7n~#@5`oFUpm=%ypeQfZMttG zcqQIy;^@7U7IKZYqp+7X%>Ad4|DXStx>F`#dF(Vi3y$(oy{6M@_YhMW*xv!}ykO=t z+#EHg6ixEI_bdRj{h48NImFjP$#7o-q8+DUJguyoMKqUyUg-kc9lrJ!ORxR1WS!`n z^eY;x|fKxV1^ZSw%d|ov%$F*11FWW-~O%- zb(Ka2EAvXkm_MQ6Kd+!m)&X%MpK!t{Qx)n#8)B%%g2-<}!#3rLa!NMK3K!PgM8UiL z^!Bdi({E@OT-B04@5N^vbM|C}FH{e{Mn?!;v7Btq?RB-?VKOIG(|qw7vF~bJrS&_Q z`!zR$aVysWY}RGZa!xz8-3|l$TY+IgzX*<$s^1*mznrGsSX`oq(It8N%E?p^KF=%V zfe?|5d5JkGvWEAz1nD*9&3&yTJb18Em9}Jw869E+V;s7C9H#D{fO7_Du|KaIdq+lj zx*K@NClr`{1&B@*DSG+epgGCj3nw(VX-eF*rRL#epKONtdUzrcdZ2)r=HV1IGk8@0 zTJPJ^yS!me@0<^&u75b@b)cFFZyA}iwcfQF$Ze=)pkcvWU$lT&i!M>U^^IG>bP{aS z`5H|c(a$gC-nIi;1$)ooiGspIDIeFmE>u=y}V=|#_sGv^Y2OozMK=pS_5v#@ZUt7Dn2i>SAy8lb+kI4h~fsnaliXD zW`EcPX^6dO&T6&zrJGWK#J&8!{zrv>u&?Bj9TqlZe>D(%Hv_r(O7(|#RFehaj3D1X zVa1<%rGACe5D3;;fSuU?K)yq^y;Pusd9?7}7l%^k+HVb8#=~VI^l)?z0K{|z9CM#P~i}m zZal(Kyk9NQ2@M#=Psvy64|$3OK%5Ejk0*B+^RwE#Ra7-!5Frva03Ae>pAn&D&HR#L z%Cu4Z?33&0fz%o8`A@QsE^IJewQR-M@AnW^c3)x@m*Q8ucPqAUa%r-*}#U~X~iw6UQN$L*v;>sn>CfH%HCYy=MJm(y#3g!Y^(!W0JZ}% zA^R8n##f$-Dzoh?87((;3(@lToal-6{AwbH#O25DuXYP{-Yy6#I~fdWr7n-#ZQh25 zkwvVl134T~nz56eiE`aMLEUwV7j%_=@adkSn_*fPHW zQ^t%n6TJ_|zzvassfP_wWpT6uoa2;6(LwlxaWJ8-3mh5j*wjnzV>Yifeufg3&=ZlW z??oeqn|Kw&LdJewx3Ogw@tqSkL$-$PC)4^HI0~ZX;J-eu4BSzfGjOV{A^+)Eu>jlR z6flbbp7rCrvgB;6hydP0cb3_eKo~LmNh7AI=i!9w!z%22ui&u!*ZP~W!K_HuB@1?i zPS%{1?0wN{`8oks&O?&k{oYMRQ2OXtM&+Jyhz8w$Y*R5e?Y!!!f1CTGHgEyKp3Hi% zuW5h6@)fFjT2}r7+R|H}Tc0!tyXaJWUN=h{7^M!*750<T)b@AL_nJJJ&NpO^ruA1VZo-p{Q)Z-(EyZ$> zG3kjc1*140mafR^NZ=1Z-9?|70US0&wdMNMWZ5F%DIhSBC$q>bAB-5;?;@*A{S!fw z&-Psi;eM$nc9<*2e9m?;s?6KzqZjxw)`Cqe$4TO@Xi9NobG+hc)V56v z=`Dz&-+tT=Vr~L$e8LdeKxyrQ9ztmtFRNGQzn6Qu4Ze@}8_ckmgo?E5kb)ebVzVTJ zAoA|uBX3eRXX^Zb%x8c&*1tJc_^=@rC}BXi+Op{u+8^m-mK)z~D9>@S6PAR=e5Lk+ zN!OHZ!&d4~eV(yvcYqSszIs>KR!9mE%s5{^x2Ou68v~^{jUc)IGTF7N41*%mzeFS zT5YewoD$f0@XQV)SE0Rk`OKWPQp|<0YVXf~u|RWuWDuvcpH*9YVnKDqlOF%nuQBi7 zlSlZ;rBAZN<5Pa7eA~Dzscfy0^ZzEcO|iuU_qa-?IqFv;G#%uNg1<%PZ0;M5-(19y z>1SB|o|c)G$SWGnO~|m0p&-a8kh&-1tYJMVI5ZX5A2R2c{n4`fBTxitQNQ==H{sbp z#nK{PX0M9S;YQ}b(^>S@-EltJzw#TXXYes_-!*a_y1w38&;czMS9U`>1K%wv`>klT z&%u<51{r~k9!{a= zjN_6tO(Lwj%!(Dqn|Iznlg+RRjbo8>X1eN&8=J4uVP>TG@_KICY;(7N2^}3lb&*ak zMPA3JPc}pHaFh?eq;aZWC6&( z^&j&NrSjeDJb0Q*qEnPLns5hwi*Ym}st9X|wY-HymFAG7C&$)KM_Ttnq0h~BLhxe3 ziqgRSY0!<1>`7dY-dy)k^boR!2a>L}&u=e~Ee?q-K!mV-0TdgW$t8b zi1lvDU~#a=VU@@ovH@9vVf1N0bMlnauZoxI8qRGmrSyps?Cv5%M$acKXA5EfOs8`4 zllOkF1e19puD#Zu(qiDn0-E-$SE{ET6N9cOiR>t$3(1m3Fr3s*+kP(>WjF}*hX}ea^HV$eyz@kNcfG`W#%Bu($Z$|pOj9E^Xqpibv!T+a7 zQ&PgDPY0N4beUf0CsGa<&Mc*Ruiv|{+kwSdjNG!#2YTrFxHgF*sV%nJYvGb9z!I}; z74G1r*B%n?LhD9wj3buRC9VXwZ^QJ7Ga95B!VBgxtF%G4wG6a6KiPm--QMSGN&0O2 zTEu>%zHpDH#{m$)v*UE(LV{29N{!yR7Mv=Aw(MZ8Jp}%07c|-=`APhJZECkw?XD(_ zh?hL3fw)RKz%~3VU#TJV-uzh)C|`Bhj!}=ZUtt^hrD!i;vlHVv8V@Z|SldW_ro;C_Lu z$5B+@g$z}&NKaH6FqI<-^7dH_p#{gHU@!rw04an5v6dtz_QVy}++NV?X5M@L^bWRw zI$YZc;ygTw_%9mqyBD7Q5DCFV`EogcoETCP9VIi$w~V^g7kW)yY`fYN?(&Qm7!G#2dz zaYTApI;m@{e|s)>9*=d{>C)5MguO;;D*5rSUfVv`$xk49J62t(-E;C99bdsFshPpw zkuRg-6vixf)+{C0v*u&hP0`W%62wYr(g-$RbeWqltifkd6Np;ck&z``wyOaq9)(m`i@5*Ik2? zNB|f|^r%vKa)?H$U7Os?&bz3z_jUWjym*Z4hKI=i2btZ`lmEeEm{;6_!f7fN&yLvE zp!c(0Nh)!pA@XYvEd^`mX|ZtVWH3oNNu(UQrY!r7)V9xeg=bxgV9+H{d_7N@uUvl! zmnqRK@YcHoU0x}3s4I@kGgcShjCXh@Mgz4i=~Y%|yH4-r|0uv*63viS+f2Z=uQAb- zwgAjZ@<9|>M<*EA4Bt~;NM}J3`wm1NJjdg7nBXJ?RS<^lp*MFy^LN>I=Dfy%&8YDV zPod#EJA_T6FGDQ4@d(mMW|=r zgsf=23?&yua{{J5Ax>Z5g$1?d8mU^T+JpWCt61P3P#2o{Nkz}sNV+~pj>vs2umb( z*q^lnmppCoeV11|F zV3mh%B(5bA3nb`ptPCzeJ~0V3H3`d}zp4c9;CZADU;|Q{Q~GbT3oPPFgQ^ItCfP0= zuU%nODbfKg#vjAW4pyt+4BYZ|^>=MLH(`gYUC<}}F~w?;`0kCtq-r+?*)pAe$4lbX z34uZ}9o1g+9Fzm4KN_~A?kk+IXq<{GHLSin#+OtodPbs%M#5lu~&r~dC zfrA(gWl;vO=2h_X;g8OP+AdbK{PPwF&!66$PRA)z94zJ=}Upwx)xamor{s#R%Xn6H6);|_MwS3tVWgKJG`b3hJ zZwu&tAW7(Dgcsro>U@P|71qY^{y^}3q#=@0>ugQNn|!s};c4r#$@~$^k|7yr%Vz?< zhbTIbzCb=8zOi>Zu$`)F>Rt!1u)Y@`mD(mol{p?|DF5L8YefB(6EYlL2eP{R=cZd~ zI-2r5kmt6SsnoF)l?=f55=#50+x`OTYn&<`mM^EWD5GVLZb2kt_V1@p`kjQS0>or@ z&$VMvO7h(Vy)?u?qQ0SGc3J6v_J1UucR1CL`^GC&Mr7|zc1YQgJ&wqpWfR$CMKZ!U z_BuvJc2-vQO7_TX8OPq)BZNM`$M^SdU02BAJn!eZ@7K$6!Vok$@DlS~Ww~Oi?i#_l z|IQ~apx%xuJ_&f?HH`EH{FQ3PoeOyB%T0z~YpMn|HPJtr`H0BGsjY=;3>-8Ir)v1K z;8RU?QesAxQcOVHWG%vbE^ljquc_B!fY@fIlbb5?L0}vH9^9R+y=};A_+p#}6u&`U zI%AV8{ZFYVEQAZS%MvJmzMTW+2XMjZ2?N(HnsWT=)?0DO z3FnrZ8p~+E87w4yd*oOaP6-OMgyI%w)I!&H`^fk%F9Ba6^>joQmF8Z9Jk zf^*H*pIpBz8OMkV%cQ`S-$LQEFU3nUd&I5tl7ATPMI4F|N-w^bN;c%Wqd%cZHaci` zpJIMmo1TP|N3CVmf zo;Z~!(h(*sLNKdR5FWThRC zohe5G<9*hZoKNcREcn|tmW>7zGmhk^{d&0BJiZ`$Xj=ARMp`?C_R2pn4mIJE0HjD? z3e`Rb8!_JrFgbbJUHo3>O2QpvBqU}N2s?f zULnl=!M==C!pfc@IjXtg(|@W`l)p6v@9G7fntECfZVse^RDjo5 zT`kkK6IPYwN227=&WN#{P)vMC8=XwV=2>_>iH5)axb5RzEyBpAITZNrg1BEFWSaJT zA^KdU%F3GcHZxV)eZM-IcLCk6YMp!{z`v{QKgv$^ZSHGu4%N4zuY0y0H=eB<<*eHi z!|E1jQLP5ir;PD+w!jptLV>mT_Hij@UyUyDQ#=p3^_RAG%YfpZqYp~fDLvJ9IX1qh zGCeN*Y$ZIz z4tEjet#uK#ssLW_ef6;O!H3(9A}R5)jIX6zA85S}+^ic=C}UJke&@(r3w#a{i=~iH zLhs2kt~4)wje!Q&XezFuhDEKLHi;(H*%FdP5ZbBAET7RHMRQroEWoG5%HY>cztA(` zZ<>6X_$>*Ty8l0XKVUj9qYnZ%o6hEhQm@aWzt}<=SYRBMTm*#QVNvS(vko2Cs@$l;0*70t-`%>r z?*CvWFuBZsxWQ)vA!~iC1(P_AJ9inA4#AP)Q}K|hqdG!D%m^za^bzOBt#yeQRm9!I z#FD9M89*hj>t)&qtKNYu0ec3aOmFd6q29bkXZ5X1MuxJ;d<}3A*f4r)s&xfcAU{r- zZM3nkTE3VWAWFtH4vIb><58_?3QCBU%5=4;!^zl}y*&Hy4mV8%cI@q1-oCYB5sR86;2H>&va=={H2V6_^`m#y2G#U*^cfMxTaT}+T4LYxG~ z&;2$CM6246D7S9rcubS_&1Laed7?%$ zf=k-p>EN8ck4AXA2uBQA()5Ov}S|C;dC>&wZ5*W&8HS_Ef3Xw>2Bk*K= z^OKe7;36Vmz5iRn+Z=Dung+8PE)5p?g~QFeE_d9r9qK z-JK=+vfD`@b^;uN$w=Y)oB$gINYh<}j|j8MHS-T13ki!0%Jrh*IYG~Z>wm&*(Foig zk{e4Yz@8r=-IG6cI=WTl;0oagEfOCt7nd~%U8`Diq;u$XReR$pv2d0leR>!fw0NA7L=4Ih$fOa+!#EVAX4=xl%iXAcdP8JRq zYJ>2>0*QuLKpN=ikPlkfapn_)b=A87GD>o0nT^~Ir@X^|B#!Y1-39xf16l`7^i+XJ z5<_e8q5ZN%T6!hxw->IkD>h2rD};qu=%4fcQ<&R39_=2E zwE_n2Gw((VMD*2-rNS{9_(TlkVuvfk?fw7shQd1b8;j1Lr!U*{LVUEP^UNZ>Rf$X^ zo$Qn*LRd5hNNJGv?SUh^VfBXf(f#F$q5<0#HsA}FGqip@dacKzK24U{^7WxBtuye2 zfz+2$ZHc44^_w?JF|fkG!M=71q-whtMDB+$f)FO^6N8yKqnPFI-m=j8z{zML6xZrN zDXaxqk{wvWf#BKA$P+#Q1TTsqc%j}#`qd!?d~ss`m{HqdfJY4=3&{)(6TDLk%cq{{ zb8S38_LP$2MVbV>;5_c{wcBcs8u$n|*nSjhv=kRQLpoSYt=LvfbF-rC=h{AX zQ4U{SamSC0FvsFYzxZ%AnzN?|C$JTU+4(U9PsC-Fgh-34jeuMHo1d=cd3;;aLSc!jFU4eS_R|;%&3Eo$yX!&YK_jX@9qECg25NI(DKGT@O2hz7_m$l z^5KnAPF(^n1fG@bywjf*0~T@VVlICRfFmSpTk(b@l`x-vOF2#jSg6X#Pu20EXYkuS zOGWn>aOPjn5pe+d9RL$m%97=}APLhULp|=FV5*1v$Emx3sl~*vUJz# zR)dcxEKQ=7nwAexWn2)?AQE|FEz&DIsqpDO<}SS(CsnaI+XsDa%wqcwbfsMHjCbLV$HF zti`6}E+yu-P%ny5{*xO^;37t%E;%5mTRfxZw?K5#=H0;GmUh$d0+kbR>;Mg}YU{nOW zph{*vy+LsU^lOZK0RP(CQG8$!-+~q_?v~JvXw}b1t|;F%fxP(Fl}BGU9$lDqN5hBc zk4@(O>=C<^H+7Oo^^%(ky4eNv^n5o+kErh@@GOLWVCK2fuLOY364nf-G$ z%6#-&Y-T7Wu@rFcwTKiib``R&I;`-#-k%*3h4R*aP2TF~VPR9*(}~9_#vupo3hAj8uk|~d#{l{~*7=6vvik;@ zSfs70ZaY~rt4954fXCornWe^@4}H+$_Kfv8Y_?PUmpdibI@fSAg3MsnDy_9ITaIr@ z7A4(j^4dO!f67k!>(Y*BMxtiu1IfQnzfH77j2sSj^mIpeKBm{8*1y)f!Rd84d|0-i z!D75UWAW*ucm8#H6`T@6F)md?8^_sq^HF-@I%<8k@)@7^m9XFMZNDopV2tMgtjAr7 zVYQ42vaPYQj4MqQD&&yx1*ihy(*kwIufbk9NN~~!rV2(5vrPJs-yB(&png=XvjK+X0nCxF4%dNy5e8$W*Owdza~ z&?6vi(!f|ekk1yWIg|_vOM3VQw*~LZ!_TV6wS#ftu>u>0qj#;iKx1a_{in6#Su*yYYC9VM(jIGt3P+qdvk;C+0_%rG6}9$R-baT+tvlw26(*i;3K>@# z%SEdUYGdc&O=E^j!S)d^i1s>l>QrmpNfO?JRp=y{N5OCyz;x`+cLT6h1Zb7jCT8LJ zv#QYT3z6@Up8K&M*h*x_a-;I?dsId+jAV;5@ZoxC=#06n#UfNQx}Bd; z&VU0)X=sQ89xj=A0ERrQR?}?B#(>%m30t7QrIUWbE7pUc?Ydp=zGsD zf+bPo4$7Y>O}!oYJ%u0hhAq1XS&e2+8?w6je3FZc|D${RbTRKQg9Fi(;_EMTx~oPf zXt}BN!lx5UtR87Fx4RDx28VKbRDwU(sBo`Ptl}M$m)3uc*$YYvFoe#OcuQy9F9UPgp zAn3UZn)O~NYcBH9D{Iw4U{JPfG#&W80259%_fmt{U)Cjw*Kvcr-l$ZVwcmC{k|%y- zyVxH_VWVPCArkl4JRWwAGBL+ux2bQ4y(0tPN%UkcR|`WMo+Rd3k(yuk)aA05^!K>f zXfANT>ZD;_%~AJ5LzDbTAzyAv$1B0m{dy&DBfs6Qt&?!ihyItsJ3U?36^;E7f>k^d zsEa`eGxSO0y{T_owSpusG^<7jgsgi-l-@i}65{o%IXSdD*+Oht2rPaxECYmDWWhsf zwMdE?;iBVKW+pHj%h&aw%r!?wHfm=I`QnNTO*M}hiZiBD-nxY~yAyjY2U2>R2aN4D%vVUg+?(M>jYNPaMm~u+ZP%Wb9`iZ{6gn!#=^du z0cRl`I&sG@S$z{zy%6rxhlL$E-&9{Y>gjKd*S@)=amxN0-n*9#*d%2OHf>r|7-iWS7MwxQ zh0mFgr(wQ@j8>cudQ;-OZ}g-)RH#}1wzt%I>%*CWN2SgNQ289-!T_%^UyDLfO!AfS zwf)o+?w2u&Mx~^uKzv_H5f^k?Q@&?JU&GgeZo?BC3BUGJa&R%7f_WvxW*T678FY)} zqP!wdE#0ES&>gIScS6m$0Va{;mE ztOGm16`>m(!qZ5zF))l2&i%1EN;X=fy~tqPeKh1R`1m6hHQ9hyQ#R7c?M|`!3}qH( zc+F2v7V~9hb@`ZSQ+qua71ei=x=j*i637xemFt% z5Fa}eJatf{eL5_mB>BT>DA;?TeSkDU5ElX|iq@cA5$%HiS07@VwNw!oQ{-Q$BYsmj zIAZy&UAow3Hx=ID;l4Y86g^__n=G7ZzkJPcVJpPk@q^OKD<9i*E+~KflQNl8wI#lL zD<#PR(RbiIy&yM2p|bp1hS>JC9qnfa87>RLz+Ebd$$s}+w`QSs&XQ4{cu`N;Bhn`2&Cj>0F6Krw4#z^giW zZOGzNGSBwFglYrBjREAbGq-E^tmp0$U4-bu=i{pXjM5oBls}bOLYP(X1&w&rW(wR~ z)yt4>xWBvY8eEq8T=n z!Z1V3zGRklT0+~ZiR5CWiv+qyBpOX#7ylcJE@jb-{70!++cR1pv7^Syo#q2N1+}Ok z&@H(b!Bz>BkE7?2|J(hL7$jz<kM~ zkYn>p6RvKNX8BaPd5m!ftv4V)!95Tb5R?|c+a4*)N`-7Qh!!`vn_HAmvaHN7qZ87% zn(n}ubWriQ^^}n(vYD+XfBPtv8l!sd-A{P48PaFj8$NdM(ggUrPs` zt_->K?KMJQ3mJ;ess#sxs(5A>LM*k;N(~3){%Fh%ha5uj|36h9JQtR{;CB z7%;gnu1N?5S7l!5F1*TH_gCjz6Th93rfdS$=hb;Q7mKB2t|>o9FZ-!UUMIzMSTxa8~3 zxLU;-NT{S z)31Q-Hv8u)MD{&m>g(scA&8|$nzE4zE=b8go#!1b8@NnxNbKmK=LOR2gYO@e#$5AopT>?+sEFRix&@zL~@j=$`@@s|} z30LK7t`OS299wU-Co_#6r$cD__%+(`2=wtYFBIbL-ISs&g0N>&=T*uv#Vbs7{l3qvfXUG)fXhHKCS72eBgSgSvZ*b_pBS!)ph+|dmP52#{UJ_|`#0ItY zbk~pr%Is7k;vGq6>0E>6yL`bli*p z@VWnEFydhPD>`@26ju*Rb;8IhC8l#lk{ivkgSf*%&C z{bk7%6ZChda=?1cAIkp`pU_`vRuuVXU+)EBXmBI5iGl>_@=?#`38umVVaZ- zZ6_xKH5|v4gbn&c^)~o_h(F7&f|h=2coHMDoH*S}r^R&d@I#6nRD9*wBJTEWy)?DO~%L7`TBg$ z9R82E*F@5;H&=VgKhepNSU-4FuW<7??J6Go>gU+V%3HH6x#PaA1(CHBhE2S^t!)I| zOZ}Q?;}?ltPiYB7_sct)(-)ykPa)M4 z0h*9M8-+j9!#hLSYb?$ulY3)~b9*g$2A%X%(#jOGW^a#3h*l|jw5|bq=6a|90f4LD z0uN0VfNn(WT=J(1bXuQ=6O9Xh6ll?gTF@F~zh-D)O8OMUOTVk;)P(?B&q((I@78x9 zS0{X%@yPwe5+#H%CiSgb_lBgVx~a3^-V9Ys z@k|smuf`?gk$lh)W=>1+!`%Oi8H)`LC)aQK?<=H$V+VGo%V&( z-Z87fMFhK4hmu^M%Yle;N#MdqeZVUHFT(~7A`qNdnWp#Yh+bCP?#N%8<|ka?nuO;{ zhE+yU%?naKdc`meQRvB#q4{DIg&FVC?TD6*3v8qBAB>iP6Nq{Up|PcyB^D)JpN&_* zS66hK*T=t^TmlTNCwc5mLFpP@B`(h%u?6Se+xDnyBsNjX`kDV=?U(C5;^PL zt>r#|3d|Tc*IT9(^@XzSTZN?*>0T1rIO6zELMU-K9Gm!Fc^aG->@9vfALTu*<7)YA zGr)&dB6vR;k2=?q>mqzh>Nu_3_6rHzx$8L^EkV`B$P27N#Lxkp+Y|q($dgoMt&CSi zb^R+EoTc!1Nel09Z1vAd0ug}MY9Rwen@ghl8_h=aLkuu zTl^c#06~Z+=)%eiG}5g;{~(qR^lP7Lbfq3br$m~pajdx zH{5aowpVW?Uu8#rVWkRDar>0+s$OcEp1kJDfD@x#)`5%tMkDF7*)*xjl`Qo+q$r78 zpI$FZUNW295I%#8F>*X}#pWi95OV|ynE%thB?1QkhU)PNc=lJ`;-Qe;FbOU4d>Er{3ch zUiqJYKGd3+w0V4k_nc-PW&Mv|_XAp$vO*_5n|RV*}{Lcx*! zkh)i-V3p3SBxxn-zQ8%IxXyMH-|Vnj{zO;&Ro-=*J1_|!Cj;9eq-^<*X8whj@$8BV zjOY+0B`~Y^ly6Pi{PN7+s@@HgaeeM58Unpg^Cb@#Q(i9VldcGC}c0ALzWmpy^6vQuv;KVP>14ivM{mE)>^Yhy!8DLzQ| zK9i=oh*SZSWP&80Jlz4xYQBOb5EQ$?P~NnZaw|1;E?xt>z_ojf6)9{Ubj;&d)XO34Dn+~IK0YV@tJuVRl)<$VZD!{ASr<4 z#&X_H^u{KqrEWg%^9^juzNb~rgp6H9Sfwk&YJV5D{Hg1(lzmL|pTPg4k~M!J^MWEE z3|}qIe$o60L@?O-Cg#=eDdVWxH&k(biah13D>Mqhlrq{df^TPgU!VGQQq#fM8obrt zxm^3d%W?ZCFh z=~FlNFnaE{t``w{SS~yP+Rf0LN$)!$RTJ?Az9mW7ybYSacvXzQWVI6;hio*@a?d?4 zBTX1hET(|E;|hR(qtfE-~lNADndh49Rrj|e0b#6bKeK^ z$+K>D-#-$!7vKz){0WMK>t^+_3Th`fg`asppnUF9Lqz!2-_X6}I{9YlYf26#@hnd~ z1kIMoK^Z}o52`TleCAFR?VZ~*YnCtBnRK0w=SNlONI6bF#im02Km}sfuXy1n{4O2b zp(eMLn5HM{n7kga=s z$XwZD;>MnIvu@T32JV;QDoc9n5sm*xii}U|M<+Q4qv)T&RlaHQkKu&{NAGvoWfn@M z=ReE&8rg%X=MfeyAfFHS@Tjb^qy?aQ=lE%}CDSrJy~-7ld6^ELE=n)#))>;Q@uBo% z#51vRE&(bYRpUEP;)YUhgCy=r?Iyyi`4%&A?RI4JYke(#QIX}BFnK5(eOLKie735a zZ9MkQF#dz4z-f&m+`gkstQS*}=?b499xmwE#ieNVsF{DH#3J3j5IPGdiSRYwB$|fLFfc1a>4Q4ruqZKqzpk{NA|^QW7iaYdhHkqgY*S)t z^D7}ku)qZeT<}a-q@w-B{hKQhiE1@46WhS5*1X3akivygq`aUj{##ai&*DG$<3g^t z_S&qvwe{;tmV-bcX2`Y9y#$>~wUDM2vp47<+#cv`YKrx@2SO1ytY3U}&(Xh6QBq=${^NU1f#+XrE2>{wd4j{(eY6uKqm%jw zUIbI$o4zU3HmEHtB@Q3FZ}`l?4Hf@uS63ODQeK&=%QQ;zOSj&^DdevMPg$OJJ+Fu( z!bzZY%8^q`F$6lGZpQ@vGgu0KSMN4Nl~(%-mx{d9@*FQ(97K6(F|{bab!AC{ zdAqp72&utH&`-?|&ph}=w@t~ijpE+0)odG1bNR7AJQ^)Slk+JukExN!KurwD4D|pKPa6A*Y^X*XGC?KqQVM^;-4oN3wTbC7VUA$M3Hn67w{GK`p;&{*BkV zlT-2c&@NiXGR4dWe!>L-phcGj6~1cZD8f^QT$k9|3}+^ME*p7U;QY8uNVAaOYWL2) zWh0a6v>}u?+1J`PKzpr{?Q`61mjXwSyO5+#)P@=)rm#c#g3}%IlZo}y6D>9 z?V~|+Z}Rw~8y~{ig6$}WuQI4Qk~p$lu<#dOZT+(Vv!W?@d3WyakPe%q2JIX9E?4aV z8n=rtF`mEP95+*8?>dhlBYmNH86e?G`e`D>+B@Xb+7yvPS zWjkCO`Zz~1?&+SHdah$|(|$>EgA)Rs`FLpX}<<3N46k;4)D&cqZ%xrIHP)$@vra>+LpUy@+oiUtdBcwy%8db zZ84I(l2?WcPNs)tns#OdUVYq;IIGVmZw#d7KgQplfufjw*?b>#me}E}f5uhhsZ^cm zitr-HqcfKn;sVxMJ%cAy>d^mO$%Et3?9R%EmV~{@ZMjha@`IMwMG(Z{uYO)6jv=i( z*+J#?hYaqlbbeyoK1`Y5d4O!^WdAh#h$Er}N> zuo(knu;Hp`_|Ixd{MLA7z0oMs+eh?aqGqFE$Sc;Fcz{cYTZQt#XsO@_8+xN$iT%cD^-j*`t@dlf+2;^C?pK@~!wF^+?CQtbOL%dzg4t>aX6;F1m z-uli}m*a}1bVIfX9Pk#qHOIS#1aSimcPz&CIOEzY3*3$OVH*hh%OK+n$W*Oq#@?6{plY`e48Ha+>L=m} zO6B!3ReaK#q87%Z-8m z4jAI-fnWaU-NJMO5YPaYz(v8CYC1&GxSNz6HGvEIY6$g*)YC|?6z;?=R%jrtzog@` zd{jYItzXKr<&Q-^xLbFuLXM*957|q4u2s@r7Ylbv?wJoKiM03lk3HB}Q;`rWexoV3 z+yTb9sy>`|gO+3M3dgSqk}q3vXM9=^(S}bkKs{+Tt*;M#EXyq$PwxB#L>q{>{oJ=Z z>)FNF9mv07fas1hm;RcU*sp{j-2*Dvexu%gl8cm%e6^3o_pv8XeCS2TFQ=%^Bqk1! zyGiS|^Qa=fh2t*W(Spao9>yC>;ad^xO0*Idj?Ly^lh_UoxrA_WId!SM(U97)Q?@XO zWl!iWJX=Bu+OH+EDLiw2m(MA~1<6s8p)lzntAse+0%fs{Q?7U1a}g8iyUFivSQ!(B z05-vFHfi45Ye7?spc5z_^t?KuyfKObgf!$%coL%Rnw|3}6w30#Zp@AORW&3I_EJA| zTvf{-L@m-fB_$r9Ks(JCZ+>&&^(D6kEf|!16pyd^2c7hQzj+n)p6|k_T6ZNc`5G`3 zf|K^?NbLwIn%+DKVa;O?u;-o8=QSlA-UQ05wGiBD=SsKQ4Sxp}W;Gf{uiNxJYuSte zdJAtd_OrnT`RW`yrD`ag+_~yBq(3xHspC?4BPV!QAXA~bLK9#Wq6;bn2p(Tpx5Bm7 zYd}afBl4xVt_iT6yI^C^a?Ry*4ETj(G3cG71F$&en6eYMh1*MHXFsG4@DPV^VN<4W zX6Spm2aF`BK9^^302vFqbWzONn&k|!d_Ksr8X`&sjFI-Mo}AE}HUCBK!UJ>-V&Wk{VdIZOmuW4YBo9)bb8O$D3Dp zEa1WtmO<^5hza?6J?P zqHYHT;S;;N6w$tB2ZFhoCgzI1cUhXiXe&xR{_L;t!>4x_BmAp{C+EE@<$JQ_ng zU#(m!P0F{r^$zw2@V?>J=&3Bk|pn#|M(y+dn(_>XO|IqLIRtv@gcR zN^*>o7@SJjZMrR;>AGpDkrJ+q?xSVB1@~SPYGSnhp6A2>88|vbpE$IqvkPyg>f3W# zT@89-*qomJ$*-$0c3KelaY+&$*BaytV!Dj&e9V3Q|ejkYO3CaL-UEu9DI?4jet zi^)Pr?q>O}a(}CZ`cafFSYQwKsKAQ!3nIZFo&)FvzGI12>S?6N^MMyjrND(~>7X>$ zt=-1Gl;L?t)j=(3uCNE_Z;INA-_bElX#hU zE1Gg$VEfnSM-wGgN6;x2A$DTJ3Ggk!_l++D>#gx%?!03`uM~8ajo0UWSB~s&gy@lh z1B0(EJBM@{=^~2T=lbG?6iBmsQ1-$`;j~@lK)u5gDTOH>npO^iKhw_J z%5m(G&$5V;W?*~L2tGm>nJQK<8E1gJU7%Bubuq$eH|&Aly5R8;-tbesz*j}LAVl!C z@R*?82PwAL?>$%X3oMCFP9HA=%BIHOTOW>1Z^(*-?W2;GS6LB2EbhV!MI6$Uc ztBK2;G?Pr8+7LktbutkXV_mN3G=MBDlOUX-3eyl5RImOKr9uBYoljSSa9nu)HGA`Q ztT-~bSsPP)ou*`WR#hQK{Yst>6$!naZwJ^&MG&^J*2|{Qi9)31N*F698^C@w@;Gcxn4LN>DtGyls#-&GgJC}_GRM*;+W4&O%gg7fBJu+$s_Z@lfUyV-vIje3(bh(~#nXJiok#&i zmV@lQ^VGmFMZutvHIah$7USKo0R(x}LU>DEM}6TQwBtg73QWl7ue|1W?7&-0D+qyP zy`nCkd=JzF0s6bd^qA!1wPIc9MbY!1CkAg`IR!{Z1)vgA(0vYduzk`Xw(^c&tCaK<0 z`YTK6dc1PcX3k4`^@aa%1iH*(BW;yNw@@J@M-f z&`7+l4x!yw*7bW;Tj7m1of1;s`5=HxON8sasHyl>xnZ^VrBu-f97C6>&t@fYC%!i3 z`}2P^#lLRQwdLe7`~f-i)6-Vnm3Z+C@(a=jkI)j>RdVEzuZ94^j7b^y9jEhI4bchX zY-yqntPtK<_NW=8XG&uZJElN==H96QX{;}hql%Wa)FBm$ZTLB!2l&*iwz>T9D|f-n zW-a|vDI5FV<1KtE8mNk^=EDX8E+0KIy3vLFh$dijk%6dXnr|VI?9fsuJUKpG^}Wh> z7b#dMuHmpf;*wlQHcPS7mSgW9Nyb_n!iR-?Mmx6`&+g&icQ-ZN{_*V@GT2qcX|N+7 zxq(A069gDn@3SWZ1Wl^nw(`fvPvz$7YEwIRAx<&est`|%8z0`zq=NZuC3a%ir{*fF z39{*3vR*OD?S~`2wsn7tGWPp73m`B~yp+#ItR=Rw>-;#Z?rpyO(B*7?U&Jg0)|(#% zV?7|cYLJ|k)w~Ay0QUaTM)vI?;j<;bO_F$`$MHkqJ43uL#lc{x-dhB@++=*?d}HY$ z?m8UWdOjx9aC3vqDI=sxT)Rn|7lsca@||z}Vh^cj^k4pR28fFEeL3q_NKi;f`28G)$CUE3qNgOU<+X%Y%@oaU~ZT;?i5|ueH$7lJ$+P zaee}f%6UV8)jH7bPHRe67z4`)&xcr+NPk6=GAMStRF$Tj49n%$p*7@<$1WX$%E{P< z+Y~U2JI%fKTZyMCiw_4ido!QJOFhqE^aCUI<|m!NL)s% zN42EJnoGZC{4N*t9tyzA5rBUP+(Re_A7U?2!xlE!3x~G*-X_WiSHI7t4w6=NI2_kd zVi4g?&-8Fcu6__z&=7j0BB-E5OCtJ9^v;-86}@WUS~s~*>7cg<-2<#_2o{hxvhSOa z0lXrVN8=%lY&>$8V!UFJ{%#n=wX_A&J1g;2Ip~xLX^?#=4VDZOOSAbWpmg3)mSQJg zu-gzfC`ZXAb&I4VWRdWflf5q<<)>G<_DOLnA5DE=H~Sk+I+{mZ$2hp?75TSotRh(-F7*xT}OFuXd79%AWWpL0NmIU;_KmVJRS zG<=Ft^G_GC8n^J|G{1CJca~;Z?{~)qUm8NnFn1DHh%pqHT02?&{qCe#PujfD*!UJ#gomtbGuiXKj zmfYLU_cpxH`EB8@sJ$RyC6f2PsZ@Tbc7}PE_15Ie#{0`hCl-5q_gBBEz+m=5^G}UX z294Xyee232?Zuv|{yzVvFT27yUs2Xap81srjGha;izlyhp)fC|7R~k!%+Fhh9i_6K z7ExhcW&HS$@6yqT z&(lvn*ee{trg~36gmieD`mI#~aENZHphPXM)2qG_vwY3W37vjH4k^}Kk>nDFaRJpd z0RXOp{a-NIQ;E6Bgxl~S*ca}_K4q3AxK9@S$T7|;?ueEwXoY#UJIvcWg)Y3N zIP;-Fwzv5cAQU$g)KEKcv#8gw5RV}#Z!$xFgiA?uJE;QQ3~7!%-2a(PHc z0>18>dYUv?-!?ptm~ZuYLj<6aW%4AZt^OI#Nn%*z6Km%uScx>>3IaIOKF!WdSM#KQ zz~-FJ>S-vc6G`f~DS0!bpLTTqA`434K(x2aJA8&G^&*AZd3K;9`Q0R_A2~DG0S5@AAon4`BFahTb5qs>EDoGpO*CZQ7wwImk#lxjs(xBDV(XDTGXSs!aBs)B z-;)o@Z=T8Yd|rMR-=&7;D~vN^jAweST>YNx2EmgROWS?546x93LM=ou$qtmx^$tM6 zy^@nDujSg6&@T0mx^F3;eqU9xOL9(A*KH6i_t*+I9s-n>C|voboGjt(8nrBqvMlyJgASokGUD6p+%b&$kIVU0#<%Jls$)(`d zs}F*_bIxi!7MZHLOZAMGBc(H;3r8nOm0qejkEeZ691jl9HVQV7z+zn`)?g+%a#j$r z$P%2>?$fJd$)mIAq^d|*6>2m({pSn?H^B0j4iye(EI~OFV;r+OKjnc}TP(=+4u@ zLH}{BEIz6H6`l`n`;{k{F~w({w&s&$G_j=dL8y1s4_Hjwy%^lJF=1^PfjC{yJPq^o5K$%a_kXIcOC zbB<0H!Qyq@z8+@Y&0K|ib#%bH1;cT`oo%*+3Mw9=O}=tJcQfO-bXS#hoK~=}eDS#? z2`5}>{HO=oI_^0XhBy^h&CX3~42-zFdr$6QM^ic-s;pQ*(@AvUk+c5!LnGCh+pm>F z>RG~;ynVQ5)+`E%&358|A{~GAK9SnGZj->_Q2DO%x{ceqg-`Dgn&E$j-dJ%E)am-< z#a($X_M9W#Q8dDi7oieqZJc{`$Bv}nr9|L+zq*4Hmg1o#>A;mF(()$nr*Zoo<3b>i zo8@Wmjkv9vVc7d|fA#{l z+ef-}>ENmY@`0FNa>0#AvDcz+ijp<^dIFVw4%g}(M@f>t^>;Uxe2xLtf~90jdRX=h zn1Lkl-1v2OZ9umkh`XuSdN+mw^6e8X^>8j|XZoM34++OnfkpCa8-6}|Up)16HRn}9 zfJ^gH?0jM^6aP+w6F{Xu)}n4t^O0~Z=MA9 z@#WN>Mz^cRzm`8FS{0C%x=Rl~Fd4y~@a5A!LuTH(8Z&?5*r^MEc!6-`}70=n-c)Ua$Lp zKCg?g-~lfL2i8-sh06S7@3^$E#JO~jr6frlswXI7GTeq$IcUqiIbCRKe;~q`a%4^d zYobTB3i7|w>(ex`S-W6MWvXs}zWk`s-7b9$IzEv%I_O44?I_dCQU?9AxXrCM^f zB@}6jCnF}F*2tt}jmMlz6KS+RMdnbK2)}M4x&&Nkrge(X@ZJm4)@nOAgToSV5^o2C zz*oQXld!@ilbh34fXYK#C}nId!sg_XyfyQ8bilGrC;)?4@0Y1EL-S1H4#5h3ljU?g zflV__meBB;d>XC!*CmSUVYLL=^GoEtLG0H#M{y%8o5Z{}qQg{46fH%!GDFw>SP2aH zLQz~)vHqpnbc-Rvq%dX7kf4}>8q@kuZ`k_U#r!UAZ-~7yTRGeMbW44W2{^b$pr@N2 z-}HisGMr=cg{{7_m0*Vs6ZT=TreKmR8g3N3Pyb}y=SZG-lKi9BcN%(MhhLBJr<(O3 z(py~A|I}Jw7S53=RnerO&}M5uosF-6U~L_o5EBm7#nUhKq>fbwBNg6F0-#IV!4Ay3 zoQaBkCD>9@=7V$LuUqbfOgNOcRhc!gAOG+9{gF@dN$nYs$X3Xs+Q7`AF;O4!QE~R} z%K5YJ>)>$ieRI&xDTm5ytukweP=ncTrP+ER4j1XHu=q7W&MBr@5!R#gbrKOSA@6=^ zg!Np9=DeHK3!NRM%ARawba53NjZ1HGrB(2HStykoWSYL0?iY|OZg)ah&*o@m+z$3M z#|C`}jH$JbKM61Ho6=1@t%WgkR1KQc!6zm7S-%4``~VseH+H6HLvNwE&A#HS@4nn8 zQ~ZsWZ1}ffR?)OQpw|}Q{H7h5JU6~^;yMU6j1jOQhZmGt5JA}52;plxwu3D1S*FoR z`l2Z5s3(Z_HJH03nB+YgNC{-cq^rm_W-&ktHI;IW^th&kC`t)k7v1=5+HoZLM~-G= z*jYwOrvcOTx|91_tHaQ~Gncvm6B!v(WKTdfJ$8rDbi2S~vGj;b1*{0he9Jhgr$95h z?d*97{~f}|Xr;^#@)F6YRs$wc~7jLF4kC)q;zywe^nst7yL{geILqu(R3qOV$aP zdaZW|O~rLFr~KnOHB%4+j@$ixlf?B+3JfT#kA&FvD1 z-xRk;hdk98Nxg>ZZ?Ga#{xXB`RfaghS*F%;7c)_#_UZA~ucD*{oto)rooTRGz_%rq z;X^@F#{5qtoyx`qzbWGd-G^;ZDfnut%8)AxK2m_0H=13r(+#&jZ}p( z0`h5abZ88Sn!i6D7OJ&Yj$-|9;SD2^%=%MhG4K>eCa)_=3KapGc^^W??h4W!T*R%M zj;U(yyfBt4d;{BZW%y)%-#hCbKOWST&sg#u+6lGm@GbL|#Sk(>Nr52H&<+6lymO!b`xVFA;Mh~?2qH@WWS2*p z(SI2l^Up*%ZOlWBtus#MHDPCX;&K&AnZY+dVvp=h?J>V#9=e)2bVKQTgNVJ8lDHIOl zG&m)xW|Fw&RtA0n!oZ2U5`7*_}Fr?-}8i~@B{z1a#6dHILIerw@MG*F@ zjqe~EQnbcw#s-yL0$NITUXgarWcetWh`3Ail|+n-3QxVkp(79_iu*%~XQ{kdY7d>{ zroS+B)Op`6E{dz2Pdt%N)JK(a-M1j$E8j8OKn`T2d|Fc^kt8FIyE4$xi+Tb==-r#W z>KXprKy}*rZDC*MdAD$OcsWJ&X!B#8tHh$aj?mizRYX9yReS5`gv;bhZdIwIM4^8n z7VtJet6o|KXnh%OZd}+(!ERqGZ?xJaFYrG}p}7VYGn7`~h}f@!SBMmRaX1QzM{#*v zql&rIAGicvPV1Xk;Yqs1cRmNbCz6MJvgQYGIT>&FmEnRfY_vICB;2bvDF$^PLbgwM z<2rI0J?*M8i)%wlUb9=Hj0g>CouTY>bBHAkpX24^)87jh6%43qiDQd$RN-uBt$&`z zo4oL={ydM)%gdJ*ppyx=1DWnVc%fa?L^qv!%{2+D6NXM^>-$0q+?up;t-Ev z{0cB##V`wj$Y^1xZIR8tp|gWOQL3>I3%7s0!)Igls|ZWCcsY^b4IV%O zLg1OFO_HZ$TEHiE+;xIhbFwFXhc`F$dbjiuBd$;#fu-03S<>&@G1vTPBAyt(5dUu> z3wAznoa_M+h=8S|LPc@xuKuO?y!cjsjit);a4uVy@%8eh4O`Q`vmsAt#H|zNW>cfn z@rWrKMcTa0FBQ@d+vEZKuRC&p_MB&xHPNdjrX%Oe{hO@<@N$L{STYH~92nmF0fwb- z%nd$X>=?oFWiF|Jk0o}xEQhsf=iX@#AU~cqL22>rFM@h9noBP(SX zcqr!UEjW3&a@RA%8ziGUvAb@;6SNL&0+amDoIAf~D2UbOAe+g&4a+uO*S&L#@uOkm zf9~18jL;|@N%pB=$yX7H&3Gne2O68-dg)s8_jb$X)yyvgQM8}{|EVG73&B|XS zM+0`7jwYTq$5UDa7Yq{&XK-ZBXm&Q5e|Fm)iz`3FnruX9j8I7u@*MN&Rgr_Fk!)SX zc~ve%TRSCf!3$qmulXkHx7iKYT{gckw7-@ow`f!^KwkT5O4cd@SlJ?#@>ijA2xFK| z4v^}>Wt1`8k;?pi9S4ZrIi9hA0z}BhhJ5%{b<@*=yl>afH#TK^R8JWRi*OcN=v{U} zX6ChJXVzW+CxAT0?jxE}HT352B3UP~^?k2fuR#CgX`q*77UJk?7QUE!U)CB-Dc6te zQwU(55~skj6pPF=CZ;BYkzK4tcj<66GPbxKsrA8;>i?JkHVa#PoVr)~?-RXGqwI#h z({@5&gLxzc^;F5dI#aq<&FZ#;wZ*t=Lj;@hlrtAl*tTKQksjjNRl$)Ikhx5ntC%B0 z$cQP^fyEi4+KPmq)4PtTmO%p~to$rX8dTOKth_}k&(`s-)Mc&;d4+W4d${b^2S1jN1JDqT~gwnx6#@-Nl&u zxeC;Ag)odx!Tc8UZPcDT=dVA~*&z<$3imbRy^inc;c^!-y&lb9-DjbgIz(Y1`+3uIS9i;rXDQz*6M_qu5@Ze+ z*;{eDKr^j>Bf4+?2ou82x?rLh>_XuN;xULHbmGA=IWsI%l>2@Kfsr|!z%`>&s_Y_b z-V!*`Xk$*w?AF0TQ7{{A6`W=cVP-|9!C8uog1oG8qef7Nkb^8-j{hZ-EuYu$2+C~HaC zsWx^05Aj=Eg=AeoE4O^!^mx|4HI+OJyj(k^5@`qoR*LV>ibP4hU^-X?Z9+&O>z{~w zX((H9w~)-)RK+AKHD0#c`JKP!l5F-E%WK_?w-l)kf2HW_FSJl>d#bvih<-x-)t-(}iC*W@v5D zw_LukmZiCL{rL)wo_sC+%%G`ZV*ihOHaDu*h!j_3h3vG;^`vgy_Vv}D_WpSPfZBVc zXsKT~r_Y8nBBT~u(aB%|SvuRySq%~rHvaNX#=8n9aA}0}$asoJ$Wz0kmb*i)LXi`$ zsg)~2(V&DO)j*5-Q{SsQv_dS+EW^^H0BU18Qj$)QUcL?P)ITFdFvdQs0zcsu4*<7x zzNENA;r{I1-!))A9~10Z7BYYoghb5|!l8^qPFc)~F~V#9-8JhqQg$Z-xjNR9QZ<|9 zmQzXGGG-z>!ITSg&6GlEujU`kR^{G0wwzkqARfe}6i~C7Pa2+=W&Ce@^$@M$oY=>d zdde^52O<8@2X13zGIyP>sQ(j&gPLQfC{|v#qFXzm-RHdAulAzcRwksHV#0A_H2{$o zoZ;A?IuEh)yzF~>)MH@HVG_c1s;-+x?%!j1Cerzs^kFe7^LvqWsqXK206%ygFp@@x zSv`&go5Pi1#S>X_V(J^t!9A!a2O|J(hxN)nw0I)Vaij7>A;I z&9zZi<3CWuEX1SAl(e-9&+O7`>iqNrix^@SVi{B|5u6}kGIeU?OpRMkKm>%(y`MiF ze&@GDKN9tGhf{5D?)t66#ZNt-Fgg>EdGI)?b>*Zt|h| zFmFWtvRWfn`_AjiY}OVg_lzX+U`DqY(b49Vo!1O7u1jzMht^@G=kCSz!B0N;9#IQ! z)D}Oz#{*EZ>rQ^+A(`*oyFUo*}ve~99Ay~ww@-n|-l3CQw z44_K{#9@dyzm3jgjF=pWxe=7p!2U6%izN@4=LCS&1yCCdrTQywsY;Hg5Cx8@Q7!go zrmOm)L}y|WP5U=2_YbQjb~b=oo1hkZ?1cSe)}+%`zt_A**7EnfKpX&0B}f|B4Gx_Y z!E?5mPc^_)!beu7l-ly^*PI8B`^T$B!)p+a$ay&lN3QU1T}e+n9 z)J6+bArVUNMDjp~VG-Itf2S(mc8J2%KQDgmPp{}n`iqENYl*C_^T08LC!uy^inIoASNWD9|PsE4vqyt#Cao+Bj#zo8Th-O-q(D6`F>$je)?r(en`esNyfWJS zIFX?w*t_13-UTRHJs!;VHPD( zaN2@*#Pt6D;y#;_2Pcq7k4Q=(F?&S5ipg=9Te6A2~SlT{7ZlxU#Ie${KH0Olv zYz~~(cv>&;(;Jvl57k@%Vl_rnnQxUtzgm3co0L6h$7U??5R9;EK#J+`{hJcM)}VbS zOjpGE)}mi1qF^Z3%p~F6rAUqjyvjr%F^J5UVgijCP2HQz)5UJ*5yT+^ko0N!Qh3nS z6CZc9`=t78sUbF1c37^E^neh>_suBIKY4ucs@hemorvz&glOwy6U_#93T z(qvum%GgaiMLac0jX*H{fx|u2<`i|9dF+BUI9@S0BQ zp&6<$L9-9eG_FgvO(|wsg0JyS{(5|o3d)n0=$hD1>GMW031}tb%99d2e--pHc1WRQ zdzRDs1see%*&O@nCGwlM(s(FnC`%6ALdLt3_tXRW6K3VTeWyILT%X?V4Y6r3YF0^r zs%J+S|EnSGN2RDn9}>);y?f_^m_Lz!eJgAIyUDR!@t@Cs5c+RtBz!KnwCu2D_5vTo z9B1AYzP3M~+jSmYKb+0&`)~5SMEJ8+N4O;zC(ka^Bsd#}a>Q@TQJLh}?do903Z{Wd z5l@+^%{c=+l>kk+{FtVc43Yn!UsHl@gP5<6!h6uoyzW>6S$RNa7uwep&))Okg|3=& zVZY7t=c62l2D~eK)YmTUEmV62I$P}sxH36%=!%$S<>>si%e26@IW|u(zE`gj=q(gX zqQ(0I{61;-OA;P|gwYjvPC-0wW0uTN|Mf=+iLjnKsM+k|6%Uy$#eD;*bVJlN`pBjr z8$qfB$IgJy3UvFj`W=leMmk|1^+41hWwP8k-6g!oQQi(F0v0E#Sv8Gst}ULK4mbS& z?%fqA{B!J=3Iha)sjuGq+q{yl#@^?$kIJqQuRqgNGzH=-DvzD?30esM z{vE{c#%JTld+G!o2esjAj`)LUy)-X`bh-YrPR(AwSq@w!(`&$4+0>O@-^H~tjv4!e zo(R)*WzB&&rPsdb280eZMSe;lhns4Hs@|yp+{fy}WESnA7H*fIIbHQrh_GA0?nC{t zeHYCn=lxye^Rc4o0x(NXdym&hZt>ERO;Ux6{MOl8IPoyKfx)Nxdy#LGLc>o-3BLvAemKZdO3iYja_YEu zGfj{xJ5=mijO#ZIrgUQ+x1QvfMA*3c?XPOihqEjZ_Z)lcmj!k=>-E6F3}j@FdF9aw zPI9wtaSESb(AN5tUP^&`Z>pxAzqre4LXw*&AZvUTej%#Y3b%ncK`N=3zu}pg%YLtE zKOBF*U=?^d|9h~bC{lTbkl5Mxx;B;%=dVeP?#j2qYN7GlAW>w`T&ML%OZ*3@*nJkN z{IENT<}h!iD%keg_a-%imU8w%qbfW{u#p8lL*7Gv;m+1cB`Rr_ZXY7ha{w0kJ&rnJ z@6I>L=XCA8l{gRIWBR}3ph{xb2>#p_j5(2&ElFHz^zy)j-YuF(Rf{ke{XDGmWUkgB z8%nseIEW$7bX6-CU^JMy8e@Tdv&CS}t&kcb8IV_$F;8~ z(c@I^^q-bB1fK5P-IvfOFR0S_YZbImUr2;~;nN84AG{wnBfoWkIFJk__Ub=v! z(9hq7_~k}%(UFMu{=6^(m~_&GDcvVNOl)F|;PmCy)uyV1tZD%G4ouN)&W9R8zTcOq z%kCD!^+SxRRY4TtYEpvdDgmyvIXHxuvb*+WrV~N_;FOUpTg^WVPfrM(#eDl4zGITV zqFA}S^ z6`9`~T+Jv%z@nIx$uT#w`GM?>CrH76x%{ydcWG3Z z;u~TEM^bV6gX!#&^8z~cQT>=ds&#kBR-UQx-GmRSo{w=5fvpEpGGw1KQVQDlE2$FT zhp{RGhL@5;0A~cVh-A|}qha)E=cP`3RtLy&x>`AsSXSkZZRl}n$ z3i!7cPXGq(ZR?x-X~MMwL~e~C9njN#WvmvW`j-7|ZTRGB-jr3l{6tDveZt`&cYB^3ekWBAeUCznDM_}Q|P zYUU*ix?1l;N=u%x&|k@AS!apn0)di`HaRg>{&u7W zQ+#FW`xd3;s>~i>PVzwXMkk*AZMHYuN;%Sc<=0r*?Grvmiy`)S;3Gaa))!^f@ zS5pi=P~l!5A}VEUGK6^UM8+ssg=FCUqZ|yQzAt2!J1^SfH4bG7Re(RPn9EMx;c^z zB!W&tCsfsK-m7CtdlN=~Q!w`l9K}#)sLp#w+HUim-0`@B;w0(%v|iR+)lC1ic)MZz z)?-~3*7DtAd)n=Vd$Bub@}y2ecfXL%|Mbc&Y7RaWdb)}RA}J1_*@v=b-K^pjv)J6 z-`Anj90q?4POL9t#qRfXFw40BtEg^ke<{$SXqew1eD7`-3C7sH1lV>$;L?UeIS{(q z4lsvS%eSLw2b{=R@R#_3zYrE*i*4hCLV$zSLt3VA7wLiBm`{iCmkY;ya4xjw`3d7O z`r12ifG=^#W>s{Hw6r0Ts_Qm-rEFyAvSNj}x+gE*_LrDx z(9ZQjG`hvp+~1sYYKY8Vv8FGr#-Ae#ga^VUJ`PBS|LyUk!D4YV)LcS5#Wr(XgxP}_ zX$L_7P$3)@itPP3GU4H2GJF7v+@VtH?O2?ebW7CduP)|LL7-G;YmC1nhc{EhjDEaE zL2$q-#`{IEvkqz(igqWnm=`?M6Genbi0(6HDr)?QNVu zeECVy&uq?2yG-x&nr^~YAI)#jYlOdu7cjNV14rGZni)SNx08IZZt166chOqDRbrZB z@py~mhWcBbd!F1Pkm)_(opSE-6_;_Z(6uU^%6U3`Sr4q0Vt&w2iaqu5qFHlTzI}Ni zEs`qBN#|fJ_hKS}TMs$t{Z zI8C{wHcz-PetV67_?6ym0az<|8CfXRVc!v4+li|~Q@o5w2wNZiZ>q#YL|5V5S^K$V2a$%^ z9qgL#ZfP$^r^h?1_Q;+q)sHOrR%;-c7fE3>E%s5Ql~KBy6Vkxlq&Ct7za3N}IH%#P zzSj!oJROFWEBLN}3_RXQUa|YQR=}ItPFWj#LK~!r$-Ca6(&bG}v7?xQYVqpAA0f|3 zmz&QrMMno_iWYFZQ(6cN&66h>-7U!zNWPg!6H7CXGx}r27$iVemY#(=!de zy)E;}&@s@@T`usy$ta2S*<4fqFjWMNlaKll%)o*BfYLO=jVwV4FWNj4UTDmtqaEml z8B88uDVNJg(uua9w@@76Hx2c4V`j_B6<8+Ak##WhLt89>b@L~D==&`9o@IvM;Fg1% zM*iIlzm!bX%}$O|8i!(QL;YfpLXi4>n*N_{e2wji<81|HNovrIZG))m&Lyo9@nL}j z@Fk0h#8jbvj9Ci_@R1A9bdSD$RqL;la9$7bWXZho4VJ&bYhZBS=E!IsZUc$SVh}&J z#)LSLed=pvMI?OO1fS4}JJC~4lNn_#y!j;i7><_b(iG@#6VIYz*aIfho3H?cB6z^XN>sJfYs32Lmk#DXm}VI6 zPS#eBj<0OESj}xZ`!!ZBeKI^0ua`E8VJ@6(T=o@tV@}v{F86_cHep-Y@szOZ-ug!&(ZotxMo1`(HdZL*0PbbDgDA3wF+S*(CD6Bg#kfw?^_usuV zfnZRtDZb#?=KkU33iD%BrO(nQ6Wb>hzp52Z9`aZq5IpOzH&Q{kEFH(PBRukxkGWKf zYaY}FDunuR%bw_Pi(&N)?|TibaDdQTjjud9cPF6lW0%=q!5K;@iDRyc@WW7X9Vn~u zp1b37c9Z{Ilkix(W$>>1NeaE{qeLMzkERqbhWWN${?+|)xS=S7J2%olxSYRET)Sac zv0+>l7dG%uc<3NY84L6;uYWI)_50HWbZ<*;wWvTV&sIywWA)pi)xy#&yealsA!{1r zVtIj+>G3(I0{8Do-Iv~>FXKa({#_yQa|-6$41wKMzp`J_*=Q7{3f-;8*3R36-GqHesL^e+QRw5_-9IItJe6jaMp;_I2X%^yQK zcK#CC?a%Y|)VbiQvRWKVC}Cn3pbwcpsncXbW6X8B zK<)#+6449zcKfGvFid|Txtw;P#C_3+YNsyBDFU2b1<6Z3S1TdNyFh86pY$gi(P)Cl z*HN)_o) zo{n8--T-e{^0hTTC-`3O3_kHwn)8Vg=bdZBs+2V!YGuJ8!dGO?yry?MYm6ZDrbJOH(q#6qLaa*lKQSizAoC*s8KdCVmhBGV!3n z#4b~>_3!J+L*~6r)x`7sG4t&x#R=D3Ob~x~{?~OSO*ukz`c;y)n4q8+EI6qj90%o- z3oWZCWd8NlKhx`fAZ7?NfE&qjtS3_D>DwGlmYf_goUZE{X5tYO93_nq1}if~oF}8^ za_FR8N8;AE<9%o}6fY;J#XWg>=@Vz9`U#w2TA$K(`{YBBEd1>dbD6IAAu0WihHPFS z)W^+#P9Xx9kLbG#4(k`zk03hB_NX4*CroW#x46P;^bhSmYar`50rBxqc;?Z7k0KAz zSQ=#ni3q>QVjC%3Q$R4%%ZINlzoJDph{gv~%o;J=6wvQT#|w$`9?=$iCNW)ZKPwNISeRCaEcVv1mJ;QeYQ0 zd2Bc_DE~(y%=hk=>nByc5&oiDLCF9l0YWoM)E-n_CR$#<^%q>EmKNR&$Hhm7@QdP^ zR~q}o+X(Ctax^$HG}>!HId&VEs}O{L z+GIhiIZm9!f~t_q3zs;2CaUCV4p9vBgboZ-?f!RgJy%FWZMrk}+XMNb+UP)W8Y*-2 zxu#>|!9LOi#RXmI8net0=AE15Zw3!`jJ0J@Mf2D-!1|@cBSW4dbGHa{*w zfF*+c=q5Lh!uyKV&0Vz}Ey2EOBt+Fsp%_O1ir(p(qT^G=iLp=L0Xd+}VA3579BSZ8 zgj3d}6hsxn;&_^3YyUNa^sn5S^i8 z5d#9EsW+gA7lY;4An<%BVoTKON$$$pJRY<^5O6-?z@#X7DLBy?&R zH8SXulnzdqmJatL%N;YLUnh-_-ZSby)c)s5>hqWE;9tFbX265`)z>axo#e<`aIh7< zu4k^%jHv2S>(3#193XbKi8`B#lCBEL)Jhlz_P0E;Ydl}kf@o=2air*bzg1aBVJOGD zcWnA5`F4%(+?HF8Ivi@mwB|w&fxM03^e6o3EwZv>FvBlb>g|3Vw zm#8k&ex~A;^2~e#cwPh$!WWlC+~O(CT^Z}bK^D2aCp8^y>Z@p6JYJ)>^`1*GWq#q! zfJ(JI5@PWBIm7Su#BtJT;C!o&_4{Ws!v<_bKCEP2Kh$8>G`(#BO$vsiUYu;p3QMn6 zjkQCm+o_l!UL@I44hYtISlfTz$i`gvSDr zPB^*gF0zs^-Ty84eLJZ5Kp7qGwGrXlJsO9%$2|px=MAm?br)w;HL-n*sLg)oXpS`^ zkV=|+XQGr-fTGvjSXFP~AbSJZx1rPE@ilht>H~m(1w26uzA&l4bG^%&HtIz&YFOa7 zV3!k>9-yoy`cDlZ1b(%IZ)Y4i5GL++-sj4X`bMYletYPwS|KlBsY*A@*G&9^#^f4s1SJeuLY>km0YWox_20SzyHm!YSa((J^scY2d8Wr2VT2_$?bW~v4=TDqmf$L zf2|Qz1LkUc`iXbheMoIi;X%Hbw2Sa(DexM*Hl__Gvp1ZifK4y4Mf$CI6629<$p>R^wMLV;01nJHf$q}DvF>0C-_ zMl&(dA{wg4rb+k?F=F;}op;@t9Ft1kCY8(%DdNAS%;-$+V01fQtYyN`n!g1<#AfWe zaO+>Yt6#FM)nb>IB5Y`%sPR!+zC?5DHplLG8*+s3fN#0gi*trrpbcT5hJ^7Z7I zC|iqa9Y0|43SIG?{o?N2lu-8g^kasLSeY^)yED^CD#J&3YX2r^1Wxzq_3TRC6*%56 zpw(fzI@coqww3csHEIVE^6T>DwwlX+^x>TsHaKW%!(UXSQ=hKilYqV%w{xFYC)a4D z<9t;MP7tJ``$Om@cdX#w$hZDp5MQyS)7bQ9De9)+8uBY`_3)_zgW_MyU9#r9yoazi z=>3`m+&$L*Ta9F+PwssPyfDR!sLe9{bRK2mQ&Vw3SUluY3y7K_ z{{>!2Cz5U8fc+9U9R*|zB!vM?(ECPN)zRBL&af1RNcM9H@~aNR|3u7%>Aq8Sv1_EW zFPQXyfvMS}m#FFbmEQ}%YoRKLI(dliaZSNi%|$j#f=p#TQ+(bw4?qs@204x$TY2<5 zE1@3%;d%2OX|ADxn)rC~aj)}IP7NwK&mt;FPAPN5PNreyEZG{@UH+)OB-x(TPrSuy zt6viN6nPIAf}rBIcI#S?q_<`{$a%7mwH*``I7T#;gbN_Zik_63XP(WEl>BZdgME*NYRHnHx$~8*s;P!f8Fvi=_lPyg*@-3Hi<-2qSrt`-o+Na=w_NC-?4oZO~kHc#{W&MxN z2hQ{>Ri9L78iZ2XpU^VZ!|x4KZx}EKS=Gm4Lyaw-!+=n>q1eOij(1?*gJ3RN&2PXg zW?kE_8+yTXyeM_l@wAKBsAa?YWfr3o)iY54%q7C}4wJkIsbi*x5%fg5+!w9b@Zc8(T4)c00|T4?vdv@-1&IQ5Rsklp{u?SMzcswWH8sB z!y7kWOU}qJTMyObCJTQu05e0|e$y)*4>xj8;wUZ=V&JBfnIgQkb=iBnEkARRiQX;6 zku|sK6T9iZY-=g);)m%J{17o1Q#UWWGKb|A(LzCEWNv^U-#$_JUBKTA$yU7@G}#=j zA}wmAwu-_9urSrg=)!`RS~V?9KIaMV{cm3Lkbr|jdFPECG7XWvobg}9r;mcPDk~>= zt>jzEu{E}VFmc~d7nZM))nime9Xhp&(1^RFBs7lQ5(z)I?e_#-ZUJw(T`iYH>rwH{ zN3x$wnTgQG>e#(c;4nje)}0#8sDihaf58~Vu+dkmc5nwsby<5nwm53bz$r}447YY; zVjNEiZHR55To*LIH6B5u%@2d*Qay20|Dl7L1H_64RJM{VxDh8uV(Ips?>}2roMrf& zNE3y%JFylV_9Gf@o~2u&UHcVe&+ULmfs9S5LPju{bY=d0BeHAg*qs2F z1vop>M?tjPcSbST^~ch_;B>y`Fn#WC(AT+}iXyNf76ev`fC6*$kmN=qpUl0x3Qe}D zHY1;Y|1TVGqWHQLX|Kh3fe8|Z)xL#{cht2f1;g8rV~V%HYVp0v3ziUztio2!=6Heo z7Tc0a5CJCcE**gqTk$kB8>LhqZf~Sv!taY0J;G6u!O8Jse6yH%5KfuNliyrC# zNiFY9vR3JyiWwY{;-;U@WJ6}$em)T!@p6dXvNCIAj!WxK zX@4sv|EzTjj@#ueSr-1-BvS>QFjMov8Tqt7B_bFr0#JuE7-dk{SAO40d*J^chZ4h7 z20lU3l4hwYC}2v=J=|75$R%j)o0oc7XntTUQq3-j88idKTB^d!tPc~OIf#NouZP~Q zsnp@Z&%Q5M=1!0M!f^C=V;Y~_J(CbSa3i0{%7uNqN8>0hM5SL^!#V8&){g>Z5aTsb z&VB#YWYPb8zJ*W$+t`w0T;;gvjT5pIEh?Lj9#Sasr|pKyqm-vvM8~BSU2-e!t(?1V zzmFH~+Efj?)o7T04L1;>yK=lVX)z}FBa-hUY2+E|;&Y#W&h&G5;1U~2AVr}F2C&Ej zF2Urp)~_rV|9w&E;B`Iyb84+r|A_Cw=^xjK+pj3U{KvPlQ$F_U;X_gfZxrVIp~wXr z9ge_u4pHH;@m&R>gQ$rSm_Dn(3-W`Mtp>D^&~~ssv>n@8lscVIflbbHEjCCCA+<5{ z!OU8skeaK0n_^O1s#@P=xh9}P7dYsotPw34D8(xST7v1L^ z|81^t0o;mpd{--iUcYRWj`RdgnFeIXIp_M&%gn3^&CJyxW}d#~ms}-dHkXjNkm?bN zk#VC;@6`er=aTtWa$&*$vL|uj#0y)Oy8U;eUAxu#_Q=YSY8aXKGey=&S^Rzr+KBYq zIK2PeH?N}h-u#HhSc6)o_qus0(#c2l0^V<8*BDR{C6TWJ$7zL#A()4;okD+`QFwow zQ}~6UlW{^xhfeJ7xqyiIvY2e?yI_0J)@yrP9*j}4IDby!_B3^Qn-qll%vEouV*bc& zOf3G!Zl4yoQG*6pNbQNpzOP4UV4c;EF_9+MzA|fw$;M3!^tM5)4KZtiY)qy<3r%zd zOL4+RLLy-*C%ko3hVe}tiTq`{R_{-^$XT}ca?4Ns#DOrPM&^}crOOPc+H1=sZoR8d z?j*7$A$#%E8%3rUslG($3K%};j(qxvY<OzB$hdAvCDi^@L|$mYf+*w(v`T*GzNA=h(dO24ail2y{D>2?5>d zCpZb^DQ=2I{eV0H#~*{^vX&(PWF=NE&i~5xE_u!1XE5hO$f8K5Oy+9({BHSEO)QM$ z*5sspuW8lj!2Fkim38`@$&zX+n2&c@OeRyn7jNZBQxIJ)kr^c?Ce<3~Djovd*49yc zYn7w|UHG-jqy4W+qcL1DH<86&a5-3Yd};P)SXwlwoQ_qI9%9)xit|}iR!;{YT}q`S zFU}l`R)na(mlI2!C1Cw}q5{32(2ThfLmCo(qtgWd@s}-;W;ThL%;3|-(#qUO70E*$ zNitq;Lv-x^#X*L$y5T;X28Noe*=AC4Nj3eg6U)j4!Rx382AI%Wru`nh_#SD|PT8#xD#u<9iZNN!F4aToqm^ttK^ z_|wsXF?-t$#-YsBhI8{@N2}FN;2}-4a{s85SkyR3WgmoxMzx8`I>;bfi9ib`8V&F4 zDmShq=Dj48<}vC(;tbica=xVs1;ZcP)l_;XsozgN6VKPtDtU=rD2isn?oA=AJ*o#Q^8AxkuE_*Jc1e3ZG>F#GTN z6>cw=sgHgeMO@2?tb*;mYTVAS>*(!$qv715mWx06A+6Jv54UPaAOj!xVy&ZO#4!^l zH?K{P!trzGHA}J_aADxT=fih*<{9lzoqP$AaZtPA*+?5)dA-VI8Q@ubj0AE`w(GAY zVh%vD2h@58$Qm##aKv;}tmU((J%Og*a{e-tKv}F==-T60q+;gt2u274FZan6-QZJ~ zu}SAoQ?U4QKce1R18c;X4G@HMJgT+WYo|>l>Jal0y>Pf&R3y%XtV*<8&c~IbkToV= z%M?YtsJi1FgZjL$-@1{}bC6PYRfXP-eN9b2mFeTUPOB8_*O(VvWQGYicuE8s{$ZIC zn&OsV%)3#~qXy)f`ai)YBs8%RGHrg;a+<6fUJ>11_UL_C67TgS6laIN@0zN|>K||O z<#@{YE3f>NLNih&2Crui+V^~!ik5OUKi_S-z#+P_-mj@>RXDa5Twov8Zc}GEdzmc> zo%fYkOtgnRyev3Y@Zw`oPmT3*(nTc_rO8=v(y8cpRB+9Q6%nkY;T(}F@-_>YY9*>` zxvvfo50|JGg95Q@X4Pfuqp{EBXgbdIiZeV9&mBg19TN%&b0vq3R9@vfvp{3qV~s-A ziVH2su>RE#D-f6*%Ib%m6WON!TmA*+1|vu0;gfg$*~T+mS?PO-`~K=_spl03 z?(T^!obMc&w|$jne0U|HR5VqzG!a2XBP2OGz->Mq@zj+4P>K;4$vkco=lp$B$v+^I z8vrHz*cL8D&#WkkLt8wQp!r^j_uU{ElScGjx-M!-Yom&%xvY+j+Lg*5P5=Zp$Dy{5 z#e2qX`6V|KQyXX0`gBUk{D&y@HLjFSGXhOhs+O9(re`w?Uf-S{$bL^T`dk05@Zc88 zzLH((Z4kUUJI*W`895ADezjL_1;ZIw>bP*+8xMJ zuZ4fwV${ezaco@L^g?ZE{u6rK_MF&Y7+*tD_d+c1u5#h?)~Cargbt*>zm+n7Mz|m8 ztc@l0| zCr*|V{2_V!9);Ca>We?UJ8yfM~cdHV$Q${0dr0^WP zt&Tw{SJ-c{k|NcQ(3Lj~ruL0o!JOJx?f+PKQZyCK8{MhgO~{x_d%wVFN_6utn4N!B zbjxa?aW!8sOXy%PvOxc|La`P~a_HOY=SiW?y1$;Zh(pK~q47QYp?&hqIj^`21)R-h zVKV65kB?6B-QuTLME;DzUX+jvCkwI65-Y`Dl)qKHAHpIJj)?gd0&g=Uuj3J!uYFgr zL%+*>?nSks2R0*GKj4&T4gLg8$FTU%bS!kk>n;HAOO4W}A>TNL1w=QTN|1VvmKUi* zx2R_#Y{c$b)fS~bHGN-M?a-*vj>HaiK=`8d-czg&7e*L4KRQ&ZFUsMx0>sLMl<#ey zze+QxO^;8yJI0^T+eyOMCuQnfwCV%a@wuV@Ddw>f9~T$oY0978k@)znA=e zKKkwy;f2ZecOKxjLo$ajILfe(TYY}k_f#igq+h_d&ph`QmK|$7^_%+`GY8;j0GHVg zXeQP_2)=eOek*ud0YUVm#KiiB!lPsTJj5P_%W}(iK%S`A-odt^hXMTyaf+3DML(ZI zJ9B2e0*64Ph-x7vN83E&ZYD$WGOMgFN#?i1_5Q&*`!cB}=|^GR#$$~1>g-&pjuXXx zB1a8}1D{^E%V<>9!UlnvC<688lwZ0i!bvF^9nIU^vu2hsq;S*GbN|nbU?G6`B<5?| zvpdKV77}tuHMa57XLarw@>U-(Vb_}F#I;L>1e{Pzzw_+Ck^$XKXzW=3$zAZy_*=>vu!?Y(WE4q$W0^VQ5c9Ij^Th_`v&9Xqn zxXN<&YAC`Ace0D?H9kGos|Pn?=Vk4@)U8};`f54fralNJ_3=?|ZVIuJ!8e(w(b1R& z%AB3xnOB$n>qqnu_U^gsjUG%=(=^?XY0Uh89G!PO)r%X)Z$&b)H_6_z${yLAqa%Bk zGLE=5*`>%jM)oM9>{;0}Bb$@0vI!j|dz1Tn{QkQ4bzi+M4js?;c|M=_J82=&2#|+4 zsKBs=I`q|_&l$%Rqe~nEG0OYweoIxj9O0kpK}(i5J!a<)Okb{7UYQP3cf#IuXTA1W z;+Y?g`0M3gCgWJ;6OODT?Bmbsmc&BI&(@~@YBmLuNgbgB!9_EcYQS76W|GXhXOBbf z--J2R@m1f0ohrkWi|OU$Vy4rS`l3Y>oFfdq`eZ)njBSKwYd=;xg4lzJ@0STuk`i<% zl2*S>!l*OlDVtsVM`lQhv-v`Eqn}Q0(Y`fHQafMSX2(Lz%dLE+OUlwYCgrYY)s?&< zc`d?~{$2JPa1r9xHIpiE(gW@fiS$YlIk6-HT2mI{if{AW%lJnJLVK-x&5VFOwvl_s z41$Z8^t4)%?1oaw=WLj)4AS!$5r3a&g6fK;3BimXuFSTd)`lo1EqeADmIE~_L%^hM zWh6d7isg-o|D-B#w)zuc`1(((;t`KGfSWn*3DRG>@Q;_hF5<`s2JVpi4yW zyh1aqKO7my8N@fU)5(0nI^axycIYn%cD!zSN!R5$K~uiBvb)bF{I4l^ww@8nif13# zHhH;KC8B)Zv&DD1bcnj^3WH7YqvTA=r;jT$=p!FRQ`Sn~SQ!)EO0SCc;~K8kiHR>e zthDj-?{8@aGrVZz&9Ln5r!VjWp4=R}&Uh*783~m2WZ5TlJNd&4xcaFTVSUB}5n9UH z6xn3!rZwZEOz-1#Mw1tnfebT(2`PI9jpA=~Ui2Z~SB4kCvS@-D(s^WkJF@t%(M1C( zPer=yQvJO*j%We80Bum1O3x_37h~v*O`@VP+I+s+vucCm&wmPIDk3dC@oR*g_Qlv6 zu~y>uAZ{HOWP*%`I-V$O0tKnEJRQ|V9sw}7qT^oPJ<`B8_jpe(#CS`PV2!7U(qzwt zXw9q>XDbRRqkGFVUbA#P8&PsA#g|XhZ)K7+`PqnZklk+mZ^ONj{*EX zH{I4Z|LDQk-O|RP7*AP8q@!;6e?tlN4%fJEsoeZKT)u`l6_;4o7QHv};ie32GEZhw z2}|;Oz)o8;e&D2dbW_GA@q=Bfu*~HNJac|LP-avAsV%2o8C z9PG4rXB(yPI^TtVXXJe67s|E96L0Z-B;-10 zL~bX3Q2Oiv-;xd3$Wz`*F1QRa>fLP0WqUbH8lUmD>ON%cVZvK7(t0r!aS{w7J1Z0U zCcbkQS>eaUfaSgiH>-s|3ni-64cv$rksE>lL>m;RE?fDwsoIOE+P!^!b|^lnch#yc z?<#@7ckWxY9ikcug2tC#!PBwW+^W7_7LEoWm4e6tso137?+z>W3Kt1#?c^x$p2gY4 zp+Hj9n-H8F%vI0}XZf1}hsyVThqdtZv|hBns-#K~^v<|ul|cy?fRs<|IMwxjpOU!6 z=Bt>IWO)X^st-0?mRw&Z$eB8j^T%dB$+g>W+8EqH(R$hUM>G(t3`N7dz`)%3vjNpvkVkFU08zBK@s ziz%j#UD7IdH}6dU3VGgL&-VdvSNC&F;mlvM)Y6Vk;morjYZP17!KVYz+*0RJre9AK zPXmSS5GDofDlyBoMDSC=ZizR9ymMyFS=M6e0YH|6YSaP`K^D~QH0krN6A8E*W5+i79bLGVd)@2ROP*_6rH(FKy?BsP@9(bT#?T7>d#rq zIv~6G-Xhi7$Fi{6sdh#X_VymIlT_s=H3c%pQ>&!0aA8B}=sjDnK878pQXla)Z=tkh z>oQ2=8c~+raB9!lGy@4;v|<>Nrem~bx>JXB_>a-#o|@R5oB!%k4-)WxWSwjrZvZHS zm}MYZVshbGS>cp3WNtlBldzZv(C zYBn1srzUHFaxD8gftDETaLP)pbZK}z5)T*bCZTWiXTLuP_& z-U;?sqR;#x+YNDztbZX0kunLsvT}N-Z8_QYYxkuPms;ow6HH#+fwuuo6&0wS8iw6q zaC)x9(fVo(Vgw+mWwDG2uf5SIv}ScmjU`=EW}5!`WTp2guc9NIlPUWsHhN7(@?RQt z;x@^m<82n!YE5Ik`FB7Am6qUVp-ZTLbghnTk?)r5DiA zWU?3mrnlzp1ZKRVsqx6a!F0dmYpR(@1876s7z5D=I&E`~xM!AZ4JBSC23lu6c@eA& zI>dL1=S4ni-ik(57pv3>$eQN~mSNJnr;no*?5BJ((ZPC#MBoj%rv4~kUksZy^>JA0 z9a`QQCiOGeWUfmsPCWK~&(Ley=-1pY^z4Cjz%zqmYTF9F=&{LySs1SToIe_dj>8_6 zee$+i7t*Dd#yjHKIOI7e8_h11A(lsv)h)5 z+ZI+9HRUi~b71zDx#I0~RQ1_}3-|r#pe%c_m#K$$3~Z}6EmjT{>1Id<+wW9q?Z51o zOrTJ%#UJFlMM^`+XL=<}StV4JZHRzZnCRXJyH5DKqFw4|4pYv1`3I&=A5`x6cCEwT zqu~_jwN4d-1uI z;Yjxg-4RAOS*a2GL0M8^oFR~fK5JSG=x{R^=11_bDC~=;7hmMFwpS9jw?>$>k8YVg zi!^*Q5$Cf+q30Xn`UFFc&|lyS=nd*tx4Ay76NVhTt6y|&AXgM}H!-TU+^o(knr`%N z!J*k1p*6X8>qG;~py5|E2?V|(s?$)mxri)@qW#q=pRJC4>;))DnEG8qiG*za)t`xU zp~CXguxy`V7FBRZln!=aE3?BD+T_Gd>19 zDGI$Z%mi~qZV;xF`tHG}E0cAG+5_Gk$J6CxT;}bBq{M%o?EElrl-jrAt>s(v%W@uv zP&V>3Ev+NfC>mAer&9AV=$E!`f+otQy-8$@6rnFBJV^51FIpa+Qhur7GXBY~LV=B5 zHi+}o>)D`1tktB3V5c1;i*{Rs)s8+70Yj{Wl{@-s{GO5ad*8U{_ERq8$-xmP%xNKD z)Qk0WG2~$&$j&$}O;@c+Dw%8GfyyNF9t0%b!Z5sO_uQVT)rpl#r@^kpZ6#ytHrO?Q zX1p=0d#!)Gj(7Hwl|{6|pJmHo`Ss6ffoj5=w+x<^)~y^p;P=)C9R*(bq-{Fxw?=w?6+g` z6E!hI=MGArMFAO$h)920QgZUdd(Uy{vL?#`OA^&=zmI-u!AO1{q**qT`KwB7@*REo zTrjZQ67+@OK>Wu)x}Kj*4)j&Le|;x7yfyg?-d)k_950*6``eS-C(zu2xvXQn{hbX-~Tm! z|F2YCbh1=koXT#u*@c%7xkA^_DXR3whQ?;fV zr6mJf*(~J;EmesBztB?&sf)N%els8j?fA+zmok|-yy~^o8-sPw4_>GndwG+ZS{gX@ z|ICKvyqwVa$69150d5GLWGNyk0ONQ~#$|Rfvqb_VjWcro*cI>?o{%8dMYdE&A!cKJ z4)x?_`N44x_j~oYF&8a6ZHS5gWPIUS=!T%{ieUNKM9-Gul~uyG0@@V_n=G%bFr>1w8N;>EUPK>)M~oQ)$0ssxX#P^yK6g^s znXA?Q^y(^A<@;?tQP#!zC2^qwTsp1BrGZA{Oyu}r(l2SW?0{f{(03uXLM70Ol6$~Pk-*}iSVH3SX* zZ9*b|M8@g)QgJ;=UPBOX{Z;WqX&}XBD0e7Q!gfsxG2S-jI>4S7R>?|=-@6Y*k?g<# z72R!KNe`6t@T=P7SIpVK79-%jrEO`l^X5pXX3N~krh~YXD2$}dqo?%fRj3E$*O8P= z!o48jW`?&{v29Cv5$=feG;2?kO`e&INr4@cfT!fbNd%6GpFP9;_61}4x+;z&DchF) zlB)+P$nW;b_0y$qTqnGBtsqV;JxxjijoZ=&Xo)+zJA;WCt9#X|&X(6XqUV>DhB#Bg zHIz*sV;m6(Nz6l7heeDp^9gu)#Hh(LV3#^!5wYH%#6^|13LW!B=cG772LRB|@Rlz1 zK?EF#{UBp7^MC=Rh>}ig2UwGu<(s^J_{nIptUPY8MfYi zHV(;O0RK=t)s3$hOwDF)ul$vE3Q2+&}Xw`I2q$hAz&J+c} z2Li>UqJV&uDPMs*yVOU&M7HxSjn(zR>fH>N=ae~4h6q-y%Tq1}u|kKc>kgIQg^~}n zI~e1r(Q4pn*xmYjcTHJCPyEZ7QOR`&iODfF@hx)~H@V~2LLaUlKY+#}h#OMIM(azK zmD$v5*`r!wh@Bt|?pG@H=lilNVKGE$3;$l_xZXs4E|FJ#tUciX^S2Hxb5HTZK5)#B zX&oO~Vm8qCnbBXTB^F-U=~Ses_jFJ#GwG>6Y#);Vb7E(I@&Vvg4w-RG^t18qtvXNFZ}1J zrhIql>o^>J1r+O`MyVS*F6;D1V{)v2?UTWuhaXF-^~=>Q{h}4R%+7fCPR48xJ{oPh ze$fpF@SXDKu@HTpAJ~hC16abvx!J}ecN54rtabEwb?fl5An@R4>71q`U#jbuKn{;? zplXg#0B3fy3XSx?d%pL>^~L(wg@^mld94Qjelxqhs^F`=j24+3cUtU07t7@^Du$pZYo3s)drW^F;8?7Sdv4wDGx`bF`^0n4+F|&@ECtFG&y&67 z3fWA*HIbHm?(ZgtRs0a|DAC6iQiKFfHhu4QS`x7c+5}5&PHh z{kmfz#c(830$uG-aD(5wSdd4{KS}sAD%1_o>7XfZ-Gy%(RI#e2=0Ujl6av9k8D;Zq zcNxZr)yQpS_)Yb}3gu^&DfhvnCwe$=C;IZsea66>7)|q5VVzLB{vzaKY^O0_dNKP& zP`hYsW4K_p7Em|lmZAlR)S^7`$wo} zGkVNIiqKQGnj={WkYP$A#HY-ZHv+hwy#M>Fv8m;FrAa`JX6RW$+Q2WWHeVcduN8nm zD@-b4)q+av;-%R6YXKchS&M(^GgILi?~?Y*2FYnGHX-6tm;2m+KvVr21MQie4rjHn znLF&JqcEvzy)cKh%d5^_+m;PKrtQ>W3mEW}hErmrnmk7N>u$o-pGn9XfWy??L`k(ZaDi}4OVwG4daa(De<^YEYwng7 zje8Y%Rghn+mip~32e2HNmDZUVtQ(qFa-|TdUWL%**PnM|s-xk+4(-I$M6L{8X4}t+ zD7fZ(rywiwqAu2}l2Ez3U6{EFs_l%6Z7h|<#h9a&vWF_*);V+$KpcQg=L3w=Q!S7b zVUhpcgxgV4%j!8xTK{ygmjSWt&moFmd2E^gy{PxSf;F<`WY>Cr7>MFzFcwSsJo!RW zKhs2rdt9qR_^IZlGYL5tUq{%E#Hs_4c2He{Wj}4HX!DN+YByX7^TlWf{#66*yQ-f* zGR^^UZ&^c$WWsK*O*`KzqYE;G@!qOu(KIwN+q)aQGp;wFDV1(BCpJ{|D^O4yU$R+@ z;9)l9;y<)w(sZrG=o&gAHD62yUglxligctmpo*N+(^rsY23HC z4%sJyi%;_@xSsOv?p1N}u@R6M1PMdK(kRL4ETDeY&0lC4EQb@cfXhx#tMn%J&kqRB z4d&L1HhLK*PAQ!_ZjThON>8>BGZ+Nt$&66Ires1JXM9IRRf%DqAXFRn`X0pT$hS4) z-t^57UDVJHK1ql9WbZC@eglC*D)i$Y#lgZAqTeQc*R0kT_> zxRWm3W9!}WRj7Zli)8Yq@919NNIR2W0b@sr>V2j?c)mD#_0l}3Jr6^m`EO+eXZfu% zK6nlyH1B6kl3vPdX7~uDl8)O%;WcspzXS=kni<$X-+Wj+?<+;6#hOWwA2oZqZ8$m8 z&n^VOu^0uet00#HjO@?YA?NgMz=E2-aQqtVS>0fpCXT<=LMda~yke~(<1vkGmHeQT zEm%t3K6EpH-4Wcg9R`i?G(~O7;vrkakkQ8L&i?gBja*_=JRgC&jj~D3SS-+_n9qc% zAS-@;d(GRre;utRn|k^!qh^z&n6XISjn;YlHdxupJ9baf^P^>^`MLI=Tb&+Ty;(^! zHB0P)VHlLV5LpE5D*Ne!Va3KbUTX#01x}w)S&Deg)P5&#Bus(4Dy(g2me}1U1T&WN z^u31&opkjngMZg@uwyu)qJGg30F3Ew4|x!cCW214JpS~xE@~F>wW$l*b59#H18q74 z!YjWwJo>Db9-vDan;X(NY#J$X&J8l~DOeFZ=-<>01r%8^tU60zMkj{eSnR!fMcOA^ z$EJKztNlkm1;Ln6-AR|3Hei%Jc*EeB(lk>3nuv6mhVp%7MvR21asHYU!n(V@;h3px5=c6;;|bpGful*rtw$GZ`+JJ(ctPExi)?XA2@seAj-VMJfH(I%U-hYQ}4- z8J|TOO;PthJ-#|_UNM_5RLf%NZFu-q)>#ybg`hm8@Blk1pgY6~h`Y4210GpDE<}3; z(T(YTUQ<11vh#Zpz#e*%4;{Bit5Bbv`Y0{I!fXX z)&Pp3$(Lex=T!1*yR)+ux-L0=ba*aLI6Ol2E;R!Ksr!J(@ z)|dm8yMy2#061KP`5mwSP8a}=!NW4X$0J>}QBD@NP`Z!%r=_D@NM8*tNeVvB zx7o|>)egU5onRTC(m)zZ?h8*yx{Q&dc|F8gSBd1cl&*O)eFmh%E$h~?-lN?#pDm#u z8==->RuouljOVg>-k*_V1GlQZejP9nnSpF52U>JBgRt*bZ?`rQKBU?wh)3B8$G>^n*{@s||j=IaSiHmy!YA|Gsu znYAY#*6bsK*}gCd7|NZ+Jl&0Yf)oDI7J25|?wE>pGV&Y#v=4WNB67YZwJ;eQX#vMH z1KA8}qXoIwQqWR&xg>q9YrNIbmlDWAS3*M?0q|oHpPww(_Xw#-R_o}7{0fMD7ncW?(`1thW~fH7$XdM0P>{=U!HG*ZM=WO4N_j^mtAJlONKTkl=h#YH@W$N#O|1twjAdRpj=kN0y^`69ML7uk8-~{u+6H z=;O&P%AkB5RSfkmR)I5>EWh;No7CTr;jcQM8{vG&Dt7o0Q zZ8u+M-si*RG`>_THQ8;*5Oxhp@o`1?k`vqOE0XondJ^zYyq6cci~CPb)QdnHM{te5 zN`0UGpu|r=6g>fp?Jb2&!qCJ3zSdL$*P4vb>eYKifMP{wdjt#34jFwVt`X?<{baN^ zh!i83SyybFunhQE!0ou1^scLvw12|kCEsa(>N;ijqr|_nea@*3r7M`S1<$&QQ@&9R zhgSLyE2IoZ%bi#C?1Su+=WsC>zhe;#B4bI<$3M8DNBO*aMU4e58-3g#(WMg!E`5EQ z{_N!E0B{RNu=sfnk%$B1IZo3pA}vIJgRU;T$;o(Z?M;UY_={)nm6@(S?4vJ$fG#Z0 zM~@h_UYG!r@ig6Oe#(SH*MIn( ze@g&8qWj|(43_arzBknOQr-+;>mMX<;wT=oi9UUj-izo-d7}|xX|zxK!)O4^t}Fg~SGq8o@ZkX>C{_h$hE*{m>pqEWpHLT|gz31ev;? zn1$V;ESvFT@*XvLh#+MXckG$O&PB7;D5{$U)cry;Ly$K0)tk`yM zIL`4Zi}ST+4@y;T%$f?WAnL7TcO#`D332q4^FBA@IaBeM(lvegbbu!#E;iGqMS|2) zZ3@mInh|Ek_EjMvU)w2Yf307Wi;s12bv~YdAQgGb_V0S{xxMg8S`S_v{o0pfQ|TN{q<8R%mB7_t&URX#eEOa%G5+Qt-EV#&u@lq_)fvD z(y-<`@c=}aw-NkGqp&nC@oc)m_FycEasb4cHpyH|`Fb;AZNq5}a{Ru0zVq2Ji1gr4 zg4EKiHi{;^R~5^R%MsjHtRP&U4@r4kM`ghM*eh^RK&x^{|4e-6Sze)+m~aW%A{m^S zD);pgF2}qF(&F9i7WA>z!arQjTJ(h`scRiTvnsnWtL2yq#8YAp@srazG$IpU~WFs;l6KCQA=N^SW$3*Xoe7Ej_W6Qz$Bq#xd)}&&x-#utsZLv)#4l>IT=-J1Cj9!L*dHeg6&aj2+wcni{ z%?zKpSG>Efd~6c21NU>APu~m7ja7dYgrL7=XEBY^_(tBTdlRq*p=tf@V&FQzv!d); z6Paw&$?Bxb(mm{1dGZ8f2c`v3NTc)x@bY6yoJtH%J&{k3tPXxk%=ShC8{7MWry6(@ zqUn5+9`sHQHQx(tlY-3I$CDmH-dQdEC@%1mWuQ$9O@yerc3U9%3VEJ#1`1YfbyoNw zhf8-+m#f+H)nWQBbFlHWM_p%zWX@BZUN~k6d-pnJfI8;VXLsqf<6Fds2$dNTOV2jn zDCvC=DZf>yWt4~fbV$K~)mJCYma#vzuIB&hm*TQ@U{>`SgQ5KHv^bRIj(byuL)pv? z<@U4=$|fG`7R(Gth6J6SWY{@t=gNtM{=9u1HRZMM{8=Vr(rRi#Sh4P5z;Ia)9M^*q zaB&0An4IP4-xrOYbSKYLo6t3oml>uX6hAGe{a2S~@-^Sb2vGu(FQ7*^`}Cvj*?^2m zX-b%ejAh}L1jpu@*y#i8_ccYDt^E|wO5bQwXa|B=5C5=tNgJ+j0G2CGc#Q#*;2#)C z>R#6aJ7GBS%V$eN7JXv;&{j5$rTZL^8eJB*b*PMqQ24{39iWNg-&D|m_qtjd*31I)cGcPEJyCCJn5bP5 z9@5A1-Hq#H)SUlZ7}}A558e66FV)s$ZI>Z!6p?J*4$ygkZ@j__OXp*bh`XhpG1PIU zM>V5~sM5~m)|dO)+hNcHH$5Z71m*_mOI*GO3qJhaBtnflA~O*Wk*{`l^Wtk$6yyGz z5r^f0rj>rfBMUVJIX*d`Opi5@*#)geb@Q9LJU6L}nZoVI_(8~Fry;Q3jvEEJjb6hejO!WptW*8nhq=lD$FJ{@LU2~m-ew~H>U0O z`sb7ptafq4Xx)Kzcr!NlaUFNO4?C&VM16N(o2s|p0Lnx0vwoIOI@M~9&SyUugZ-XB z?Tj=Te*Y&1NAhqp9lV0`=U?rNiug=d`;&Q&$**NI!Fn1xun zTKTmB4R&`xc$L<|_9>%ZWCu+dFbUhjtTvhkBLKFtF36Ow#C&w{F%{TAbm} zMjjRu$%=oS0eo0{FoWDpPv@K>;P8Hy>&WMPI7^?I%T~DY>`eMEfgRN#d&b-qrCvmU zIv*#MO0UJiLo6&JZv=tnP6MP|$4%?`DbQXE)VZ=DzgFUdI=*?a(&Gdj1#AMj)RSf{ z>Y<1yqz4oNuD;<$8i+PKCq2RCi?eUXhSJsJTsj7ZT)#}!54+HJ1VQ?s#V9H9mtetN zv-Jfppb13T&fyta#DPzlEQMd$YVkeqMb+gtRcbw(5Z*4v(6<>rJ^&NW$G=Ypv^4PK z0>NQEVDl^IlCqX>4R}6~UqjB#b(#(1zL#C)fYe7jgho=>GY9Y%j;MS6xTde_kJ7cg zPLWz9KJmIWz-g>S$clhnoM+L<0Q(f;fc&}otBM8S<0^O#^qd&)x#cozZYFbUxA{bq z0=NKZ1?Lf)zbOfR8}bRRB)k*)8L=asnnq|UY1OL8*?Q~_a%k8=yYjqT%?tyw1Iu1; z-p(T)E*H&Yi`szew~O9KJ*xY<6?FOfzleH1<0iBTXYPW|})G}fQWrXvs<&1l`8<2XKd^DNAq8_hGCZ>S}__;~`r19xzaP{yy*&3N?S z{a-GkB3+!MeLRQ?NCf02d*<0A2QFTN{=WuOw^&SpIW~`hwQmr=e_m>Qnx-VMN!nK= z$LWvqTgK*x3|)Vn*8Bal+sO9=JT=!xW1Z7$IjH6Q9`;Gdr*e9J(nlXvfRc}^HLk(% z?@$m}t#8J?zlHy*G8-lJDdqA#!C$XlN@V@26cgUYE331uh$md&m%Qoe=w~Y3PA>?I z4|}sbGHtAfI5ZjM5_4R2{e>*N%*tCj@I({ZPJS){9wg;5s^=)sZPTAOb8a#_3rEoy zH1de&blF!rl8+FhBbD!N%aIn1_3_-{f($b3{%ESd46M264J0-pLG$%tDM`aBSocbTycQ}Pa#8OL8r$_w0R(uHXK0;oC`;29Yjic&^l`QaWxJ%#Q82Y&~QAh1!Tksve?O-wtVFCfFZGmsrnsf(^{X7^i5>8`d-BsJc` z;cPzNpZP<`cW(gk$g|w6_)nuv*nm5$6qKk-=ijvn??ZbN)~gn;K`^PsQu zJpX^A8%exS`ch~R?=g#ghr~yes_+Z***fu(8pY(!SuOqqjdHUdDQu=oz)WB~N83Ke)_ zgCoVz#B72n66FCjP1&`%rIh{ zh`duy?}!%sCNJm=OEp>}M@-n_oInuP6|IEt>`)HbwDQv{STN?(y8 zw3}GR%=26-QsRz@GlUd>Cen^IKQGQGe%c`M%b^VU*g*jYtYXjzatkX`p=9;m$VAEc zSpIwERTzfV36ctt5(?}Aqf81N`il1|DPjPzpn`oK; z4vyJW0hS>YGL{tDAhW8t|#s1-?f(9vVUpP`(=-#J-QVK>)c+DwmbYv9|y zW@Np&?AQf;dLXw!L?SI&&R6?%ywP*b-&M~KL?0I-4T<8tT9({CYDej#$E;ZUzlB4R z9k&5BGXLpYj&OOO3yZv>6QgoX(dD(~>#0L9o2F}YyWPAomYQRDc%a?MAdWx!X%XNI z+O=T6X!3=d{HbxC#L8RXNZ_Ch_~ksbWU;Ex-=~P7`tffaYD;Q16Tv%mW`1jeGe^%E z!}DWu?~bkRuJl=VCl6-x<@h=0r#Y)p1k&#}97Te<*!iczH!$X;jcJy+yE16Z$D>BZ_=BV{sQ=wmWYm3)TsHoxW&i`DxwF={lI>LsEg_@DdfD@5CU zZA=ePfBDJs#*v>LH#>&?wCYa{V6#VQzgIg|qY}Q&q`c;f1e!F!4B{wm*={47B3hhnJz9@2-?40aBcca=Ih4 z4&&{1Gti-CihwlK3gzm$B7iV8rx64EVp>5*F+mOWzXwWV;V#f5s!Ndk#*82?lbswpVuP;i+ zrZ%O(*_%pQ6upj=w0ao$R?QJv;`%T!{r<6gL69kHBq>j6Zu&FXq$8=$TvvplKhq}O zVzb7=>W{|Hc02<-?Rmu`WiFS>aro8T_s0^0G`U|cPTN~u_U;#j3U`OOx5_)^_#iU% zUPQm{!d%$0f2Ln%l$Em8NfB@sJl523ax2(iII=zh(3XJr+Ax!Icwb$+VS|{TXu@!m z)(g`{+JWPTns~zvHd)@EKxELk99|M67{mvOPkB*gGHr17YG2iVM`yHxP3&#!vSnS; z?L|`dKfmzNHR#u~_3rx0#+_|SVk)!15XR-NDSwB{XzOjhQ>PFC$!&tvf_S&E8D{%~ ztpc24CgH0rsp21rT**U8zjud-YuSGU8Cg=t2BUd*I08vJO04v}IlGpObe2;$lX+|c zY6BpZt~4G*;!DmH8yaoFFaF{jB!^IXrm3DZn&7n`B5ggrKG5??ft_MYoApTV z{CWeCd3;H>?uy)5tS;IhwV{G%ncE8PvwZn=;+WQO10 zElqU^P`g^jh!%IwT8IzP!>Djt%@J7C!;&G<;~9AOsYEjI%?6&zV{S?9He=3i-;s!i z{TZ#JoALa0?GV!AzMQ;@)N;jzQeGLLIuv*JyJBl&5t*zB?lk)x46! z^5Tm(M_W`T@rgI|rp9esCfwW)bY=dcDd-DaMN>64B{1f)GmGlrgrwU4QNdE{p^m)rS1rrqu_D+B3(w&f#;OgP9CjU#Epw z_qvHuvvgB4!_qrOPNdJhF?IuRyy>2X011E*jlN#4MNT!`RgMqw!~~~Jg%><|CDuY7 z6q5%sNb5N2I2?J>Z%LqYxc9{rsEVo%<`ut@iH0M6LQerR7U@}{DPuW9g31|OC1udE z`eBuc|F@XSbSPBxTCHowoZw)iL5ttJP%)2CQBv8ZKmbcCa+>@$2F&oqRN5xy%K7rb zL6;yI%y=HL{*+p=(R;1l>!cU)W%o#pBBCky(cT9|)`b)6mCT;iy3Z?6&}t(~Aq^Dh<Cm`)6Flgs;;l8! zdFxqD@4L`&xL?v$xoFge^*rRw!?aGQ-<`jIUZ1-tQ8y0&eF1GoV z!;7oed?e%7DB}N1=ok@b$gT9-rJEpTjsx-B8i(%nj#Ja(h7@^)@9FV zN_<-<;P`fgR{H3Xhx8G=Y1Yg_YYCO*7v2)Xu`%75Zo@XT@hV6a9_#2O5xw_06Ji82 z3AvN*aIYj6FZ;^9UdoKbMLx z7n?7lw5(X{($_{|+xTo(<;!ZOo;lShg4$fbjlkI3{|-pW?tm%>+71ESDI??!8^ntX zTte9_!vSsyL}V??(w!3A@xyJK)+DC7)5HzOk4p_4Eca;Pdpdf&0*Era;wSU(A5 zNDKK8fbx~rb_cc3RDk|-Ra?ndBsBI#Tz%Jz8KF!<_9~xoK0UgJC$iXt?(c10vg;zXc>@SBgxB1;NO|NNre5F@(GHh|1sozpB?`~6XtSR8ew91ML9L8#zksCh_rA;vq zQnni|>&BXPcZvv84VrnL8mLKD(s~UGeeZoXm|E$L*Ain*#_0aT;9vJ@>Z9domTaL# zR01vpcaWpAP79;EtbaaDhiTai`KAX7e)x`sNPmhf!XVsEF4^&}Nm#Kl^9E#tfnb&q z=FDlCp&6nf?=eGSWIZ_VKIDxc4zDz)uw#L(Xv$38>t;9TDR}BP#HG_007GwBs2hO5 zg$cD>hf)`5O}=)qFwaivKh-bWX|~BXJ6fx3Po;^ykVYR_ zMz=lt8-Iqfc`qG(d8vc0aP*X$JqFC+c^6>?^(pJP=g(H1rbebF;_!!geiQ_FrPVr@ zA}Ch>dfbfeeP#2?>f~e0FSYXmo!S{fGUCAu%@�pP%&oJNvQkwTG?q?GsS_acr8| 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�$CZAA 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ÙWTT>+u&bK{n)R2x@dKVK}lCKFT_CN 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

        vZb$90Wq`?GsD*ST%-Le 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�Gu)?a96=mK{k08M*{FBf;W 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

      LtNXYRLEkr})6 z!wQ$dUs)*b4=S1ZX`$INA1vn%!vz;c+N9MWR2=!Av03aDgbPb$w$+n8tVm;v2KW9RswY4$}$P7tiL ze7XyS)X4K3s6?ZJq<`J~!9*ls^@2xFoU1C~l;HO#tUwl!fUw=oYi=zI<2=90L^0T; ztD93X50{Zug%<2voSc|PVFun~^cu*OqW(xB58rVefFD9DUW)=KuaGeY-$hmlU8M+% z!&Tltd>>SMYY(fknZy4Us0Tp1&JocmxU>lVM zK|V`by5>IiFnm_i)Yvg5mTg`Y4bS#!TICwyKs?rhX(paTw!k(S8__up!xm8&ln#<& zsyQ8Y=dtL%I6#gJRE8{zL-R{c)g=0Dw=~nU#0pSZE*DA+^TNV&5|<&8NWmG-Hw`q| z33*H4OjC8^c*BFokV=aFdJ8*m$Tl2U>k0Eg5I3$t4_*1q%S-1mOF0IhyLeO2-rG!fVNgpSq}wycpKot+Pwmw>hW72Bt^jpKa9dGnq$6r z0!@VB;&g~eKCi)Rjbbapl9wZZiQLu^i8u=){9#=MujmXezMU$B15U2w zyNq0q4sBXg=WjL=eOu*rS#?TqEjLUH2jcR&DuojanQqyTY-|7UDqnAizJ})|4N|;K>gkkTKjC;U2}%T}`4l<#ggnrp;nWwH$0y zhACa851!JXjq9U3%v2c-W}Lp^4x0Rc3P@3<#^lKlWC4f0MgF9XFe^CpBseTfjzA}1 z=hqJ3F&~76?tz`rx&Z{)KHZgNA+SD%u)C{!HJCRl=dJ>r!b67~^I5k&x&ZGdl5e9m z<#ahTlfr=;-xjB9Rh84{OdOs|OuBLb%nMDafp8X2Ds57_7)3+;Mcap5Fl*P3IzQoK z}2a z-jIgd{i4a;Ph%k@1XbW7tYvdg9P2XV5N>e^C|(4^gFS4l^Vr9FC@1{jNMS%!QdMdt z%r-4>u--1}xHt*=Wj@`u+yrT>%7@sqYA6RH&v=-O6a|cl!>iYnMLcdo{|tUBJOg!d zXmsVo_Df|_%~9m>yKSA}RZ$)ETCV_!Ae5UkuVn}{j6fch@$2(0eo9{uMzlQP06S?! zUc$V1#$B>$So5yoLNi}K%l@sCr!hv_!xpuY-k|!RHu_~`EREl86RCuvBo&G6Zmk6X zDUR$Wwjl|tVM-}#cB2|!_Sit_di7JvN{VTt4?!8+i-V~l?od$bdEi_1%YYNg_g)>N z$6OEUGh9xYN9PTz;pBbIV!51+{12pV*CS*WzDj@<*w z))Ums!3D_6(FG({J<=Yez)GukY}mhBJclHNUXwO4M*M{`D88U%A z<_FG@sZF!o7UQnmp<1-69{6bu;fXsT>N8|%rBve=go4{@rO&vFM!4f(;MUE5f9qed z+kK~b0|DJFtGL>L{H7@6-(4 znmLy>7feBa@6saPW+L^xIfkN;Q@I-Wxsw!WmoitLD#%Dp5rHVKiR|5}4EYY1qR=83 z==$I4@CW{aDS9b&zi0ikYK~6q5P+r=PyVaZnqE<;_UQG(98iG^z09QNS@EXsdG;Q zLrlM{(A+ZZikX0QT$gzx;~M#3iyu~n+`ujBM7Ze2weu6wC=+)=0&DLj&CYM#bpM3h zfMsE{MPnnPAkVcVZjHEr29*v;1P0|m3$OFVLV$=_1!pX`|q=P54&O7N*9w9pW*R3rt5D@)uft zo0zj(^DrXlHB=90qrdxK$!@K-J!gD?@vwjvUAmLlG70+A(wkl82>9q$Ba%#3IjsRQ zgeR|AJ;KN(;KJ*p#9lV!6ZQ8E(4RMBJ$E0*E^XK;XbEC^f{O$Z3WTsGJzRoTOOq`j zP*_9^=#S0ouT_9a_7HLs7NMD_h#I>*2)43xN3gpsMJC|L@4zj9!^7f7dZ^w~t|U(L zG9g%nS8c^kuGH8TALe=T#rQc}(xk>toi+Rb_6!_P&8236y$`}$hi_MTMpGh#?GNEm z83DSs8_ktlzG~;j(yH=+eO-rFdX0Ab_$TsKAz8++l8|L++(fJ7h^N1()?NQynH_H2 zPSf*W%0v3ejUuo0no!+b$$T(P5#sqArGLJ8O-2BoiLXT;*9m82Ijl(J$J`PsT5qYLfsl$?aoww^lECVTk< zddOI`s-Rfn(b`H$M5b+HT21SF8hOw}^R042v}jTtus9dvOvlklHq@FGqdZ_VwdKR? zyKd%;#`$!;=D&k20{1f5`7P_hmuJx1#tDI}q3i3awiP(rD*>V& znbA-S)nuME7^4<>81^RLMLf}39q+)A9oDjyT}=PG93=de?~P^@0wVd1825eqt)4{;2#{UxO98q@RH(IHJZj zgvR24r-zh!QR&EAy zkinnIioXc~qs4)4OekyJmOy@|G`OM-x;}cYqOgn#q^Q`a_b0>iGD~33VhzJUgOxCO zRZ`$ch^<>*8MT-yFmEqTqdc*&9%szSqI3hUST^AIM%x@FaXm~*Bz4i>zCVDY0A%N} zT-DbJ#}1;XI~=OoK;2UgWw_wH9BOCgZI7F(u5|OKdL)s1?8#d!nT_Yl8Rvg#>CZf| zA9YQ@;`Nt@>jI`H>9BKH#n+du6JJ>r%oSVR1L05!+-VLw;0NYkXNU0yk7D`Qi+ez6 zz+v}k9zP|uP%Ko>+Z$UNoA3knwdiGT2=)K~#aeZ5Ly((CFKW!mvN9TS8W<43FPW8* zzTkpGz0g_EbvtKZ)jhovwE(jW;=!Fh%gQj;)Hh>koLfqJJldZ>xnEl?nEi_T3DKo0%*^&EbQ(!5g?aI(^Q zawrDQj}bG=pqfzU2VU}l?yLImklY1A^DdX(WglA(sEZmLL#TSf>>c~4Q^Ht#Q?YFt zhh5tB*B-zs7MsAj2^Rp%{;hX4;yd$-<2zUk{2RHNC%Ynv+u!@u>?1X8ov=^I>&B3T z{UZ2gfP)>HU;dAEVG49S(7idebZ~rEiTZn1uO3%&--Ogd*ZF)e8z}O~?mcDk)K_%b zhLEbVBhsqto6V!i4uW^S$S)z#mAtyg(*t2#z;u8c)7kVn6MXn@bLl!&y%K@;;{R)b z$Shu}0QxfV1XlU*mB9J%^v35ca}MExvJlA9lfBheW9A+Ub)EB0VAeb(g*-6!Acwoj z=38sZ0Gc>AaD#G4Emgj@*6ZGIxVDOy@}^ht`?qoEgW{(Z5KHBh8xLKE-sDk~DMQQ4VFtfYz_x31dv*4VJPQ;H{4#W~8R#^xTdgY<E^YlqoO7d0E#Gb2B)*8^@Ov@Tg3&2Amdb$Ou@erz?;aN8`dgjSMA8OD1ZK>4 z0*{h*rAenLQZg4A^!F8ol`l5|Rtylk{o(ia1uB?m4HS!(FC=f&=!wW|SGL{ib0&5D z*(3^a3exvo9=`SWZiT)&zvTpZf+M@~!UD4^)%q4*5zHxdpS~Pr?;J`@{baXpYyF{F z{h>vzdhdQE?Hwo9p)TH7VwRoN)U`#AlDI#?)dk3EiQ@4_AovDUc~dNJ7qk>S5QqO) z2(XpCe1azEmECG}mJcOh;)SW-5m&E)Tzn#qg z$ux5Lfhp~S!+k| zh`#wpUPugW*LCS2nTMr<=_`uDSp*Ekmsc&MS~N@fKZMG>&ZorZvRjtd5T|SBD_pgF zb;orc$ZN0B^yR1!)c5Z5dAos^FAMksVJp1J)^N)IDh`u1MZSQ}g#B`bDMMG-rzy6g zWqEvYzNrw`O~MGY!`EX?=k}Xu7{^PC(>AFy+8Tc0fAB;K+O_G{D1R{?%B4*idGpbo zJkDOF3sE`$XeRg>D+`zV%IBap%0|K9i60@$FGN!T(Ckbbr+3+Yy4)|hcMWYZs3jRyo)3G%EWbjZ~JS>0m9xQEqp5hH`5rZ5`169^pF zo%iV=eEht+8KB`Q^%(JKE)Z|nyrI+^nGQzqP4{sUR`Cl2U?<-IgfQk35YrV)F~N!?8liMc|yFUeUJTni46JW!6f=Sp;=p=M{q0UTM; z!sFPzm6&(mUiN-9*dIx2 zcJWC)Sts*6tu4hQ>CR46n_Ee5ATRrXR-v~h8Pr3c=A#jY2Fb0M6-8UA#=FpcHz0zq zCjoXJSDYuCIPRNN2ezunrLst5#4L9djp|XW5|aNwHnY7!8XNR_1bDs@d!o(Y~qnWmWa!rOWa_DGAp7~!!7-bE$(0c8gjUqF6o{QOuR z`V>Y1k4HSbFx8v3xh4XLQ@tM#u%fz7Ph2^zWT=P_eh|E&+7n*xAXED8J0$J^B!1_Q zeM6Fc<1JuzhNYryVnQX4!CLx*coU6piV?$9SVBb7OZaCO9;T(gsQP*b)OK!==1g{k z;Ds$0rXL8VoaKU%E8y;?i3#|pK-KT_@zaIm7?pA=F$S@8@wV0t&%>|}#J*>{A5Zq+ zy4eI9SEcZ1$h!E}DNu!5mo;Sv)G1g1M!SbGRXXbcCxDalKTMB3eKiW8?EyVPBq>N0g5rhR2x zo@QlF6s!TOP7sFLj1VOPm>d++au_kH4q4BEL9ticB2x>pK{K)?4MYIg zT5Ou|6W8*8`-9uF8wW;jt8%8$MMD4z-Y?2CTLjqN#QL1ItPYkm)#wARKNS%!SL2mG zqj1uI1#+cFDL6AAMFJRZmA-&;6ZL@y<0i!LgrOe()-twf+~|%Y-dU;@1W0@ykjx6e z*sa1{@P{;nMI7MQrstzM~0YI4s^CBUxjrXvuusB z1TAwfSmo$LfzOt3Sn+vx8m^_V8qQ1IwveFlxew%7W~VZsQZ|XQ(AWu#z*f<9&I9b4 zq+r*4xSAx2_P0dsu;Nh)3yl&eqT6psin16uw4??&w4{gpVYzA8JHmk#&Zl?cL2w>3 zYo6Dfr$Z$}>jVjQgu$(RTkqd&09uHlT*%~IM=Xfgm^}%F=NFnDFQw4!)l}>~KY;?e zbWdVnvCW+H)FtGf{ub6(A#7X*^0}T4!9Xh@F2rPc z$*tKoE$f0+FJM_*vxqHeOIIoGW3d3WgY*Htb>31&rLW`|Wme~>^w}AhJdy%VR2v}a zZa4(ap8@4YZAL6@;xYxSp8>vH8TZyv4QhRm|AF86Eno3-3i89XiHqqHTqvFercU6Ji=v|a8 zZnPv?NazpL$B;;eWs=NTw|4~^+zG-@tL#EmjHm%ofvHo6NO|+pNHvks z+MisV{Fe!h8*eG&K-CwFRE587wq(2Fvt6LJ5f?`jr=|id{I=g5!9Ie;0*!C*=Rdc%#Ch{-+;P&K>3@@kb39GRHvPl z9wp}nBoM3H1u=~Cs7Q1>xmt3Y(?;YaUR4~s+pp$+W#Cg zEdGklw*S49@%E3bIDNS8V?UY-wbzgvCYWdFptznsLs@M0h6Vh`9pvAmgo za|P@mX;IhiEj_#3uu6dIMs_MMHdsO| z5U@$>zX{k<>m8fs3c6MS(CXyp{%P{WLJd)n?^WWjFEb=SN}C?rwx4g?acd(i`i81s z;9L5f3Q}U&cm=mUZe}a|Z418@9vmuJ#hC)kvQ>v98Zy#T$yc2R{}*8B6i$bmIRo1k z*#Ld~=)!H6h@?~EWrsG6n8A@}ToVlBHOOia;HA|`m)_I@Jb>6QvC|b)S}r5rd>H&i zj8sO*OhM?tCzSf8+p$(<>~>h=WM!L6ztaF}*Vx=Dp?lMCUW8|}c!F`r75)b&zJab6 z9||*=ZssMBrFtV#^vI8uw1!Sx6K%#h?`jD7CB7;9+@?5Mxbxy!ipkFhK8ZRCbAdk2 zsb_kB#gv^^dwC#K0o&rq0@IQ1#haO7Be=o=JAWxQj5BZN3+lYn@w{5yp|WMlk|92f z>!r-uHoQE4_lXN&g{e@W+F0Stz2{%fniqN$YoKRSte z#F+m={@n>ylxl&T=>L&)-tkoT?;rn)NJcq!sOZ@9AQ|D#KK4vPBAmEwQZ{8BB#wDF zi0o1s*?W|gaio$hSs`U-{jPKW{<y-$=J0tTymZ_#~(J!ZL}uiXE5Tm9%uX6Z%a7 z%)%oH^fPo4j-t?uPk%xVpx2eL(r=s;cv|5ew`y?_J0MrYnQjZe{^rS-S;xACOsK>7 zMjIE?2hfYgKMM)bqgC=L89J-)(PN(R;cgy|C(HVB<#)sQCO^K!QA5@SJBLPz-s!&y zPW5sNosrIBZI(GJ{GlmQO0mV0+t7HIa6S0Aa+y+ajY_^JtP;@Fc?XAUG0}@&K zCP~;~W^819{q84@}oTQ#Rk4jvV>e-l=B-uV?N@%d>*r z?){0=P-}Ppwd` zZSoXINO`#U3=9um!zijMraSew!-mXUn6RlgvwUAcO#tU;zCT#iII{ZI;kab%xXfYM zp&xKuav9iPrqJdG(i1x7V#uak4oqvL>uw@816O1G&O9x(o4-zlnuw*8{N__UwQSiL zpXU#3?G>jiA-Mn`2S9DF^$q}sMLwbZg;%joVv#-mSHGDcd3!HY3cd0Mit=1E7JF_F%HU)Ro!MuB`tMS%~leN&JVF1g$v5BH6JV~+NrMJ$L z2s=Q6{ zo+@ia13d_bZH>7BfdQkzAaKETc6;&lpd`_fd+Vo0CIwnHp%(;@+8YyeYy%e11b6sX zOO6@JesFXLR9A4x*z^bB&GyAVOD!ccXr>xTPj+W_dC)k}ik^Ir8tYB^CC_imocpz| zW#;bM%9CMVVE*jcKI1c29%rOTq=P19mX_#WhZTa{Dn*fl9u%AsWA2+DK6`UG^1(|9 z+R7-m4TZ4Rlibb7VS`Hh61MkUw zU%oTapA)4l*CdICEFbRl#{-wThjkl3BZ-&ad#`1^Ld8DJanU_W6y5Q7?!^mjFy?_oX&l+% z1ee`G0inWMGIxS5N!U{BdzxFqQSAjT1X;Ys@RY-oJf@O#hztWuAm20jA@HNr!@4Vo z;JTB;+~w&^&xB%QDVZKr$Att!0%;Yle~N-cZGX$OkijUEq$Y=^ml7{o@|FgFt7u4? z&@oJE85RCI+mt?<6nZqSB(B_S3d}vDPsW>%62yPm!r>U+yUQl;mv6s^P&={Bvtm?- zduaSvs}2@*`>xXP1zJ=GB1%DP{&jNtsaO)Y7-S^)lQF~!feq%RW2u|k_&x847Zp=J zC6g|{86f`3)jGZwP1Gv({RhBWko`#5peuD`@liH+=^&{MhfT5!&yfXY+yD-r6X2Jh zMTBHA;T&Giuz)fGLI)>ue~M_fYB`)viSKw6re*j^4jmoc_o9JhgZ4|A!N63l7f7g z5!^1)Kw_r#=_FpM77Ok!i~nKq)uTF%9JrcMGZw^m1-q@4Zy6w$bs)>4<#Ts)qZ1di zXB)wL@^6hP$(H@&7Q{#fuSz-;=dc;^2;ZxiMugs5h3JFpo6Q_2jMBlTNkQ+p7K0r+ zhDtU&Afog+v|~-6VEXr2Ix6*`QjFiB;dhKr&D6Se&KZ%ZQt{7cMYHdP#qjx?eyR?% z;tVXiYdv51;-HWBU|D%n zM;bP_glH&Gwe_F%M=*Ol5%O?Jrh?os@br>cA?=#P?uYEEs=cIOXY9?~;y29fm+#K@ zEsuAxP`n^bGVs&~JQnm-vJkbUbU(8slL?F{{eT-*uqi&BJ?mVf(bmpd+VK!ubboOc z8fx_XF6j>Tl}6kdq06b={(Rmqlo{zan!m3*0k4hV^P-7B!_R}_UBZj2>#Kp&ekHvO zp!uDH%K|a*LN}#`@jQqE zlIyNuk??sF+V4&))iq3HI=P!11zC_nt;nn}uu^!m|_j{iI0{?H$19yq)=DeV?o3~6gG)umG8sXj= z&plJf^i)kcK-T8*b;AL4;PK*kEkueLe`beAG?xD}`+P2%mDlmTjzQw5@QtqRp4iQa z4T&YYW?q5yXmJ!qnW>c1Ksnl&dE+?Bdz(D>`Q@dF=Fj?Hiv#1AyLnMRoaAEpF)Y4!+IibpbP%1jm(Xgx+GeHSIkL#E!%~e? ztn}0vLtN0GW?yx**qMrZbda0RP=9pW7mS2H+^%CWaL|^^;V%*J_0(NFO%7^N=ygs0 zg}qCGx1w-P^BFid@}mSp0?^;=H@~K~^d(Q?@#1PPgPFoRDig&M+5LD#sB~#xU%`KMl^oYus<3A8qgQ|wHL+&0=L#Uw~t5hQO z>LxHcq5(}T!esQx?agv7?#KNys1`&(hZ0E5v|Ttmy9bvig}>Guz7z-Jkypv8Zu22x z^0H0#p-wVH^U=mTMcgo>&dFQs|*5O zikwO@hr@uOLu&q3@yt*66k~?q`5pmK=gn$oY7`1q_`qD#p4^=vzxM4>kPzUg`mR)_ zIxhcc0Dp)7=IY!RH_E{WfZ2B&%gXK-A49|tIL@{1Pn-e}*XqE1RO)8IB_a8#^WIN0 zJ5;93drNIPa@?svQ5?%1e{;H2ASBrNUM=Ia(`;~MD&So;EgRwVhe|t-Gf|AwJ1X}= z1qdV{b4rC&p{*}xgV4Q0GR$R?L{umQdZ@xc<*1gK&-{`-Im47g)qm$2upn-}YYGq2W@6c*EyJod_WMA=wfhb$VvOXI?UUQA#!-PW`x z_w0#_iUUVP4IFgKQTZNk!G=9SmvwG`T%zLAPvM~K*W%bS4fcs=O}B(fZMcasi6YW5 znm*BWU{|*6s&bY!Fp5Lu8*W5^ zkR9sOsqB1OIVT4<)F7&?zoT&O_AGEa`S0L!$8GcrEMK5&1Zd$OXzrx~qXdNZJqJzg zlSJeL*qcjz{h(!DutC?=TZ30Wlq5zJOm|vZm5$Ndhd8t;T3Skf!}Xjbn(RR&$7ZZgS(9oi*WR|r1b}b#E0sSYAmlAK^m2q{hg|m&DM#>tD}Y8Ph4uc-FSd7TsF&mgkD>V62OkC)p4fp}FW&k{ zT4V|&-ied~_^q;g2D$`g;ephbmp1(zMheH>5Cgnx0205FY(paZ5>DzJEpsL2qaio!uxb(~$SmQ+ka{YH#au6L{g2X*v%c8dV3Mop{ZZiOD$; zPWd@eX~nUY$KYFQ^1}rG@2A@#I2%og=ICpLO=6}wZLw?vK$F|5zVA7`0zouF?^QeA zLbURarM;tQ$*jS55M-PVx~UzsrtTMQXLo@66#Y=B$si}qWbarHv(e7Z!mK-Xi)`9!_vVXN*ST9Zc#xJHjLq2g& zg2jymr`RKIw5U!>yw3096sLcZD(zDVr_$MU5$~caCDhlq+G`2}3PHL2VlLqYvCE@t zd(^eOctfT%>!mTCN&V`YHfE)Id@q>IhuaSo^yp5=#RAoOu^L)yx232@cBl7(&11Ny zqhM z)gxvWQ)gqqLrCD8_8U}?T<|Hg0D0Cq;LeKXic!+H$(VKjwj5Coe5tftg7&bmEcjkP ziNhxE(%Uy7CNs!~y0RU4&4uTf5)?ugRJbeC>vG7F9(4qh3SKqPfUwsA&qMfCPCdCn zdC41lb=^<9J&XfSwH*@CKD;oSiRVvb>!>mXOkbD88`}04c>E{4>P-Qc^cdNkq3g49 z6t4uoa?M(NqlZ%A<3G14xzH5J>SX;SsGlaswbbWZdM?TPjM=%_vwan!DSa2#QK?(W z`f+x8+^{%H_;>@Er>PD>Wa;#f5%6BX|1JfNo%Ay^uYu+hP~oe5WYabycVLInk^7V1 zpH&Fwy(lMLNWZBmFP}dNYyN$ChEdGA?@J&_4+%$p{ez{Q(?D-OcDhS zIlN3WXE%v?{$Pk8Wha&zL~jibZ@k%O0>lwLexQ%xnM1>o5PuWiee;pPo3-gdHCr$N zfc6#G`rS!75YZIMPQBf|esg%N2f`0jvV=qyW2g?1yi1py(sn#Vkkp~xPeHzl2<@3T z4Wg-|+r%+Do}&+5!7Iy=g2YnUR>j6T5le&9taU{t%Qj*&k_pSunNUr%RBWqTr@iPH z8h({3JClo6zclNvC%J;hVu8C*04l`oGz9$!(S46J?WK%%d;bEZGr!NLGH>ANKgkfK zOtkD%E$H4iJzWmMsP{MIAbSY!Q3we(S?Nnc#F3OneZd(EJrkF=cVOckM9^PbVRbh= zDwJ45(6_2bUYP|kf)8xYjdTFxNvsLyjDco9IGO>TOl*oE&0o}YDpPi~ckJgiD6jnR zk-F^b&&k#hcBN64@boJht-B z$Kk#f+4*~N1}fQ?Rx)_O(JL+q1X-XzKqjN5Flx7#2(r}Z_Z38zRN`D)k(Fu=ruh32WMoR zK-V1!lfxUtr!5q>k{D4FWlw6Qc9IQ!wC>e00{vRyi6WK&hgHR;%8{%2D#wbfZo1;j zzYH4+{z#lD8V{>SKmEWdn6KVjh%wVqkhd__r#mXQ2~MAQh=;0`IFL-h`@mBjaFwxy z8T7~j1!qZrf<7(8bTyv>qa5L*rfoYABS1bt2*01*>UQL`33z8ULp6$685 zDi3J|M#U&li9zLEkf|+`6$F<}YkKh019Cw4S2G3f;?r{riB{!OU(1r%zII8M48xwu z_S+TDF;_~dRNqque_y0!wy9UnUV%w4m)jZoDtO$rn-YcZmard`G@%6+^rs5$DByV+i0~;XggzR4Z-L7lHFp|PMg^o#*X1th zc1@b7O_yTCK>uRcz6}ru|1H~<>0wxA^AzcC-j~u#%B$ir$+6`>z7 z=*Xr3%4#e?zNbkWj!qArFe08fgXVH))Skj<$E3Ptee(7Gd92wsLV9rQP+#9wDQbc| z%phC_4^KD4e`O_%|CAXolQuc-pV$u|C);!-*2M03lncGr{UWVckDG=(+RCVPk0je<0_Q3cm!dJibNf)JA&2z@^SAw{l}7@3B58Z;FGG}y2W zh6cx1TDu%pNi7y!&2biQNfeYG}&N0oPLr9IipkCOQpL;SaMoXIe@EzV}!BY z$7N<^NW-N{$Vp91wG zX(m$?hGQSK*jp_u75e(69$DrSH^sS9{~kk*Sn6a{;mxSR*A>i>!0vZ;&)^wxdbL`g zE>ME6QrHxv{#CnoZMWh@Wrj~l0Trai@yBlQx4M`br_SE`X=?LIi{X=J%PnmEEivWW zuQUWooG@xg&zk8geFtNiO5&(kQ;S9>^PN8p;{FpzczZ3oX^?)S>obG}=ksoKex)4o)h&mURebE+n)GMsaewAX(84Gqrlp&l!g)hd01x?_(o}u z2Q(Z0=D=R_O$pp<$LP?=5!sim;OXkcyEe(8$nGSvWY3G|7ICi88Pu>*WO%0!aQ{9S z-0p&^3xWU`H_ie7&@Fu;-PI`RuONSjP>No-upe(w@?}&LuT*3iu7W99Qnw^Rxc1)& z$Pe7e2f#!J4=tpS1$^GjosY+Gpjv~+ zg4#V~bQ*jD!(XdDHeNq9CNc!4+lh_3f*;~*;C zh`t7rTY8MUm)bnjQRJz4txiBqlI$Y6*Iq{3!u3Rd6 zrauQaX>6TYdfO~h(n&%+jVl>tH_dLvm3o;hF0g)}9QhKV|HXSfcyYo{@DCL2JSBd^ zEIGYKSfV=KR!1a7;j6HZ)5N?Z|L;#G<+!9pGyNJGgH^Qyqn|5FpBGo8&(gEKN^jg3 zul;iq#v?9UD0}W)TxZqR$COIO4uM)TCO4!RkFn zBPu8$Z*y0D4O)Wf2hZyH2kyBXc4l-68gfyeS-vlu$F&}8UVpw(J(C?3V4!kV#hP9q z=NncAg>Z33e*a`q6FqKozWHhCxX61B>k;K=Qn`}?sKvY}o#*uM@y@Ihk=nESy{rE9 z^2tG6VU71dU~*=CtW3pCS4WZYb*J}GRP=c~=po~s>-wFVn^vgS_Q{4sRv$tKF+z~c z`d{9Qh-Xs&s3cS`#gXTSS=l0MSr9+8p#8hlVfG%yCwbc4aKNs~Qkp+I9jR9F`b=eX z386Dr{A&CJ2U|_L%B{qqCxO@36lq_VV3=wN=k)Aa~5OdNHL;@jM|p19lBJw+uR4 z>##df%0m7rWW;1Div4f=fH!@}rc3UJI)JYoj5d&VO+CpbVmxa`(4O*Lq&AecJve)Wj1$ zo}13VZ?Hfg1nC)t5uRD(5VC7ojrsiNT~<9S&n;uL+F$_O5g8Ndj*N&%PgxIb)eR&e zdF<>B*eC&~vfl!+sfGHN%}yx=?&=_Adj)G--M{c~6eMnyS^Ju(u98w=4|cOyj<@$O zYg^|*r6@^9baBeNd*vZ}v)GL|wJ%%7VDHd0QTaHZc;w7Cwn2bbaY64}<;-)VFLPlr z2axm)Boglq=d!PSUk(%9;h+uM%CN|^Q}|`w25nwrI~)UtY3Jmz<oQ>}c;a9>6TOBXO`dK3u$>+l1I(V^@i)9zK(KmOy7tr#7#lGy;92w##}c zvX)TA(fI`KB6Bn~^_|Mx!v;t5w=qP0S|K%F&}Xsd-aHvKd0yd=+XC+t!k#>adyfSg zMo3Tnv@80p>OH)<@|U_F^^&(rUJBE9r<8H~Yz@8uHEk{b(4?^Zi>@&1z%7v=nHAMb&0Pt>hGnJk1LZ`*BmrGSeK330VYR$7V#I(RL-#l`e_bO z%OPQ~pt57|;6`Ib&Aumpf!7)XNuj!FQ8D@yI{K@O{~p%XTYQx9$71=!`Phxox;FdO zEkA-Pp5gxv*k;zmps}@3;ZJ|FtO+lW6k=g8=Um9=+pY5!kXW4FuV&j6{i+_Ac3iJ{ z7U7c@SlQxa2%*ToH5MTYHP?U*27m?FX-{sv_W~W(kua&Vv%0+O_klm;%0|%BH{kjeflsor4M@Nm!dYQgG=kl+C6yshsp+h8M2y*FUuL zj|{52s2~-0falm&r`ax@fuD-1J~%W2?F2qMyky;7tFH&N8m{A%OJQv6lvC=Ig8@9Y z+StZ^+?|$|nOh|SV@xg4x}R4=nwh<*hXpcu8Pp51(V5hS0^;xd%SU&~3O#_Rb^z=&|cp zYB@gPMX>2X`uo_d{g|+X7N7|}oc86rjc!YP60dQ+mx`z6n*SyQN>0LbYD}f0D-s4G z(}b6Q6G|y?sw3RcmxIUC!njVD!CjvD#IumQ@b$4y;e5MDv$}0f>UgOqeBkLhe}dIu znZj_?6a<_pYne9zmEZ{vgpGp=?NN{hHUgG6rC`nxL9}2Y`y?#lfw} zH7Q_e9|v0GI0$&Xhan8?yR7#2MhY);K`TkJ?9+#qMTIO_zKuB&17{^xX@HfmO}pTL zsiX-$^W3MuNXih6I0a8%|HrCVsd7#bx{%_eo5FV*RKGrNGW3K#GBko)?GoVH$g2w7 zL97$n_bbJI=`?&VX-&#`)6V^pH-5GF=M3x`ZN;S%hyTDg*QXfZ*2=3j_<{gxL;f#Y zMp%qC5aJ5J8m+`S*4_c9;XS4;6qlw$^Ri|yT+bju-Wl*4YL9_5QvSs+UMz!&6Dn_T z2mjmVNo?~#{mW5Mnt82bap;pCm)nU>%I?b3Ri7Y{DJ||eR&q88$O_w`% z|8+4=f3{_aHMPbMQi{$wc}QeOcR!-HuJwYW6}1I@q-dkKF@s#U+M=S=t*wF28|{bJ z*W9*@K^(%v!FQYeoMDe6@U%f6K-_dGY2O@5CU^RFW6wfdt=m!H$w#L_Lr?{D9{B3k z(=CHrA#6z_^+zYCIjp?7)8H5TwB@6hI#VC`A6@Z9ZwzKE8*Ft=_o8xQQ4gh9YJo?+sCxM-=I%QR<@8KV^>jdhp z^!NPbqTCF1^e{`d^D^5UW;aa-Yc`-m|HHw}Yshdi(j4EaIV_>}s$$DaMO~s-eH_*X z1Yg{XIAnn!FQZ_O)k}YAoc$&NdMQ2BHm!53atmAU1VP<;o_EP_)ImzCB zgE#4xmw+t%GUFBQn@pk6+nZyaf?wub-$h%36k>-)B(Qyq$mHn-s9u+qK!ZDTV%pDyA>zf>$r~nU3cjxQ!e#`M} zVYS(TzopmaoXVm*+ zw4`x`8}`wHqn6Z#*Ql0gm1FK$%6@a046|l6n$XWTZeQ;=T6U(=rfVM|aLAvX5OwRU zs5#C5j{qE;`Nvz%RRdJnne}C-Yy4D#OL8XYW88M0_}2@#7l@59dfCMBlBL zc)vk-Cx`%7ho6`4Cs2Ona}|jUgYDgpqDJp~!96Ejtt0V#?q6Z-dw+gq@3r!eVAog! zQjXS~-v-T~Zq_uxaDTAJubI%<7|FZXD#~^7<5*|Xhy-q{&tFSRnMO`%>~~x##oNU9 zA7_gJbcnSx;qlB9>?59F+XW&^8pRfXjs8O z`8YdTD@2AOz3w5KJCuFwZ@!GY;4LvQeAx_ISyvXFVifG`R7|J}QcTlxSF}iXM>5Ct zr#lXva7@z)<2{l(_=^D^8m);gC?$yR{NXuz4d-3(@|65%=?5Io56?AkW@u{mooh{; zI1NpRM39teQU7!M(nnw+fZ1987R2y@vI?@O%7_$M)Q+d}So=}9MbKlB5>ot7IFd!p zwi1_q4vx^|=bBC9yQ{DFo9^(!%3hHn!u`lhhqmNbpPyy^MR)xG)$(XOZ3i^S$D9jV z;Qgqvn_HY&DP}+a3e50Az@SIu*jr8iXohauf4(`A;a4F=2{^r+G2q5!dxj+z!31Lt3U&;?-nxv}=mf`}u_W^TsY zYRVQ81Ji$sOgle}0c@5Iu%KzG0kUie-5Q;+@Q3*O>lA;j&O*@;#&2*)8Y2+pm6-NU z1Ch9@><46$cf9iH(4qp)We@k#`mSKlWDE~2>bdJIWwq} zSe?k|_MMI>Yn4oH|D65EM12{9WGf8TCg+Y@oW$Z0Pj8GLIWfv0JHHZ676K%Q-2Q|4 zzCLfE-U$w`bWKd3f>K&vP2ObXSuQM2*Bmqw1+8t66)mC6?tiruB9vtar()s&`fGZ3 z+XuPE>b4p2mieF^YT2#^t<}YER`Bi5`*5cd=50_E(~u9^ zAN*eYU5Fw<7MTn!Yr_PR+GzC?>b^-^s<-HH}?$;Tn(n493S1Lic8t4N(S;VJ)nM(&f}RD?re znZ4wtZ2aIvk`qLmhUwzxEfkmPewk9i?IC6qt#$-A#J>AeIP5wr*eMHIvnHGo?70ug z`ggU=I=|)UR0j-I*q)HbmjAa54v9!V6nzW(;PXz6ev9msnf5$u^tK68e9LF*XTIJW z$Y)(^1>E7zDTtosCo;dD5rxM{RIwS6l^YLM^MMEdC@|7ba$i5mR)8BDUQcA{1;a)& zw*bk)-p6vBkv8R{C;SC)@=AxFo#25&3NZh-xa);M1a$R&B^IVg%dW`yo44 z$pVm~rT$WbhRS%vd~_PP))fUGGsv}dO^x2Eo9MWxD^+nZ_wwPd&O2U+_<=ag>TK}9 zY1|b$bFnAYyyvvRFE*h4ab&PPI~=TMME0R1t=qN0{t_wa;MKK?PxjRr&W|p7NG1=E z==WYX(np2~-D=I=h_roA@%;-zx_7)0Bk8HYu~R!OX$3P$ zQ3aTiiVRQ1%wP%w4v;7fWD^IkaKa%qV9ep?reDV(G}{|Nyv(04^P)0VK@h*J+4OK> z1R62gSt3!V=L;<5+R);<3U<}r2*4P@A$aKqkWv?zhI<6_RK$j^;{P~$zVv&0W1)P3 z;ALCP#kk*u!3NU4Wm93{y_}Fp)cWH-B$IPTlllyC|JDuD#G(ndhL^IHYD+BTw=WMeJhYew(l!S!9TQ#8ZXK{{mG*IH{+K% ze)mr6X1)uDB2sOQi@r-}D#9Z%gYvUx-`fa!;t#UMZXJ+hX2NVZZU{ z8sXD^+x5@%B%a5PUZm}+zPWWu?(CkN%DQ*)6-}(t3|-x(!djb+x%1rvBPHh2%~dc? zL{x6Gxy|Q)o{JX8&bVX48nOesF{+T&m4|YhFfQqyk>hV_AEiqv++vY-`V;A4&tOVx zWUZcArCa4;^7BylnDg+p-GDOu&b$y$H3i(r7c>1)c9&rOEwUz=GOX_gV|-lWALBn~ zx{}Dy6#6&%5R+IZ5p7}Z`6tqs&UKLIKliyx!TuDwZ@fjXdGy>sTPQ0=H(b4{6R5jS zn(o>lFS^)?Dt|ICDK6sVeCBFaeg(9BclsbHg22(3jmPIEQp zir5GfA-UD3Z=OeD4Rvp*D?Zq)@g3vWWG<(EzP9Cx0L zR20r?x?DQ_7f$nyI5e&PxLbnK6PeEMwnDn>?|Mu%LUc1K73 zoEWhfFE|V7F!f-!7<*sK^;UHl?FMZ~By1T>XZSGy%)qrl9&zzGq5n=Ana;7s@RxF> zwdttMAVuNS)gdU0`Yuxoe4>`+07|7!3TCW5P-?8G1qPQEP!SB_33kULkzV$jLqE8ZJ-w=QuM8p zMd<2ny>WD0%84`41~wZk<#VH>?Isr?^6{WiYqhoskXunSJO5nE$A^qRK_*^qk?k=y zG8s#OR#OoeGvBotkqf!Dn>`|mS>gyKz4uq)b3%~i&`3mw4;3WZr>~ZOk0tHIm>Y3l(jGx zI-3YSK7O74a%A7H%~YQk(}0nJfbFu83QW0ylZ9?SsT#n@GlulAUenasR;LFr8bDOH zod+?|-*s>TT@A1@z6~Q*QESKFY#-p%_ToW-+U~VzO^5W1Vhjl=7%4e-L=ew>5mnHeR1hHL@UQq=2DeuAzvgem z+xXoM*L$r!v*ouY|OkhfF~VP~{9-t}4>p zzA*ygZ7`T6*lo}F@LgJaDvhp&)Q%yPm!YC2J&-FA~RB&MJZ458mLctUz0*!4-F;Evi`FJ5?p zMafz>U2cjx3rhzu9|9;FBc!6q2)CCOsB!9^z(E_J&oX4#=Jt zbiDujRw&%V30jRNahY!xeOF2fe7*7^@y!O3#TVgdDe+M*;e#=Y#%>M~R%?23#Z-Ix zDBp)VHz_ZDS8zywe~_M*8=ZzJ*2Lh+9f~!#OW*&MPq)kZ@Y9f`uR#Guy+PaonLV4! zjtm{w@|t)3wyrYTwv8`ro{2MRBHiP5J$&9;L2#?34-Yj>;=8BBPn%;Nf8y@8n)OJ^ zKOO3lH;TOlqvx>qVlTsH0+&r@SaD0*HH-ED*+lGjM=pDboLi_+y$aWCMd2@Xi}#o8 z#$juY!wNj@@wwVCY?7WzNC^yoZQUv&Z#4BIV{O50AY@Q3gV~U!lqWy&{RpluVX1$< zaFoG#60z&Sk`O6gSLEJ#=Ya=Qlx1{YU~*&3>CPC9HBN3mCn5^ohVo&y7Myab`M4u-=cENlZoTyTF!gpG(M zYz*6s9U`|9&dstF-U!?kap13cB?F+lo(CBl@`7HOhM9HGMp*N=b&~`- z$L3s@+`*a$Gyp)J+_Rmd+o>jDyOOmW1;3e#eN8q$19pycI*^aJLP|N9jWfEA<&wtH zg*|+tiZNsTB>RVN7p~fe9|bfAr*(F!fr#BKfi&blhlyt32%!#7qrsp=D3?n50{Z%>=1-Vy3U1g$m*SLj8 ztuA-uq$JFC%h^l_%52kEIMB=`w=ALO`gRDby7 z`V3cOV_JA#hTs>mQJd=Si5%~DebZjV6W6}jvGz*+ot5a@lKyvdl1gAz?!4WHY-Zus zE%i0Km-_DtQw3+GO?d7$g6^YSYNO^=WontdbXRA=Z=HgPZc!s@PewHE9)D`x$;*0$ z_-Y{{v#qnYt47iw1KFY8)=Gop(z&kRYV!0K5cF|}Dn`Er#2E*1^n@pl_FI_i2K4h) z$8*6VoJjEP-A(;48&o#QxQJcc(bm7ta^cge+-QM-A7bbC)8ER%=|k5#D=!bT=JX-Z z%m5U=p5nCB*R3ciw~QCeBu^E*ZB`q5&6CY_PVjfXMR|IXWu#%{pl-I~wbQ%57lbf= zRc1X>bNsJ)0Bs?+FMPFIcM;crhbQM!)QRjRKgX;_7ZU4N4KktaC+o_7YuYhxdfOd~TxSV4MTxAvr`w@Q>aITK5-J_P_ zui0(FGyO|`Z*x3aN&DSznM^M(yBr0(fhjhO8yq(7sJ@_^WW)9AZmHTgamWc`H)yUo z@_xHwJ0Qc`#hRqc}t7Vo+ivDRX$DOG?9xL8R`&@ zI4sLx_;}4gmE|?-Z))q;#OH+BfGRDxa=Fud0@F~IAz|xwejb|78`4d*|0#dhsDDS0 z$2P7llfX&pD!R%f2D>8oLkY^6^aEN=LUIpxHl-`(NCqL;vAGKuI1i9I6;^t}ekNa2 zAO5f6IeIb?e$vuhEU08HV9@(DJ>eq+IMDw%C=&m-s#_B>&b@-|@9Hl2!_|ssdOQ%d zqAl@GzgS3H;J?xmX^)q>k(SX8%6JB2t?w{jg!dp&-L$aifnusn|5xm>vrEu)aq)OLxWmNB8gTcO+z7%5*R2}ZT|` zc0|q;pS*M$*_6wj!Hibh;e#weVH#fNnBt^`0pgsh?1RX5R>h^)odak-VCDHq^gcnq zfvtk40!C$@jl#mpdcB)6fDsNkS|~!&I$3i^1T4c3JcJbbi*yp@kf!_{$1oTtQW(R3 zUK@Mt7Gtix1Ho0->=$t)jW&94R3SIUNtI~`h+MP~Ii3$h1&}le+j@-UQaPiIM)B%d z!Vf!G%cbj#9luW>7w1lI2m)|T0owKss(C6UIlJRw+F8u!*rD&v? zXeIc{GHFXRcasNy#h&}$!6$Q}+ceAI*RxmxDB+$a2m^9>Xf`I3Sat7Sl476Pv-*JT|9qku=9Bv^+ zOf&EQe3-WL8|Je0oJv7L*BTVnzTE`5o{0N$L7a&ykibJ)3*{#Z-9F!O%lfhsbGwLA zsZEBSTBio+7OZ2=oY3@y5c!cEYFU#Aha%W0K#^V{B}zNvW?H6O3Ky{1lu|g9BJ6EfW^A-GIvC&S>{Qe8%b8o9;|=#<+W-`Bl#U2R_z5zx(d{mk_$ZO~634E=B4H;A;RQtYxzSda@m4nEByvxAT%0+F$w@hU_zw zl`J{`d6MZassTSP zji0~d%?<;b`xkS9ovmAMqfz=D5k<;t2iij367_Is5RW7Th(ko%v*VAa{vsCRS03PWbC>3s0p(BCSK! z0R`M`L%l%8$l=TBtt5G=Ld+g;IM|k!tH^j(2z*1JAy^|OOk%Y!y%^C7-fMcM_@5~6{O3IQhfquQbtQeI;9yOW?*LV+qO>KS4X z+zMxBBNLXi>$SXWyca}1_uIakfcPK}DAuT?_Ix0f$;`$0$y?9C`nIGE3(PTPFLnh zkx)3mSN=8OzMwtgkgJf@6AtUSeKHuM8_mBG^&N-nT<)GZ7VW2KUN zlH+z?{0ktoU}HP81Pf2vcIkHv@28VtTI=_vlbb~Dvc)od4{4xv;bP+gA2wB(c%?vV z8`US2La64}-+1AlS7%6rJpwWwPcFxI!FVVR<9c0}R@i1D{kf_(;zAqKABUne)0Kcl zUK2%bwn%#$FU#tyucOZ$QzB8~%yUkP$(N?1*5=50A8lZ{6Q&Cfi0AX~us)luD~3@# zMFeCy5KcqcGj3_<%d+2zI&2&C)Y*Slk&DYS{MUo|onT2i6ZR|J7}=M{fgxUgSq@7$ z)84Vv?CCsY*OIz0hk5b#=j=ef-Rp00Z++9;lI=4-io6|8TS*)Yw()b{mzS7uYVsc`5`u@--9^7CyIHXbu@e|ICXjPTrx$Ek9D5lcWA% zb)%4dO(M`2ru%cmCXDAK8!r_FBm_5wRHTVT#YVpIk2l?FFAuz`Dl|n|+buh{@$^f3 z2LvSEh24?0vpw0l-yBR_yI>A-?}tD1Ddp7VzsIoYoI zJdQ`%Y~P2HIr--?w|HZ+#}(JQ1UUbGNY-+Dt2}1TSLV=l`F?Wuj8XIJaam^TSj3p| zBK=KL$NN=Pvqm3Ycf9(@2Ccr2P?&q|e`A?!Bu(L)WvKcR*Djk&(Zx$bf*pEO;W_X! zxqe)MhTt#BL6Tt9?bZn6%Z4;khc?{G-O>_&NJ6C^_=}sH^Y}_Sb3r?<*5OI<#e>8CLa>4+x5-H1gRM_&GH1h~ z4Ofozs}FCr?Tk_edn{%t%(f(E^w}N#MYFl?QL_6?Py|b2HQ2e?J~d#;;=<@rd#ep- z89^sKU7N=!{?U}{Nrlh(v$o{p)N~$Sl*xO2iTAq-A`2I_nmpWTlrus7gG%pPIX{!( z*zUsKAL@ho_dhqD)+im0VMDKlnKb6I(oIWM zhEX|7G`mh!hH#&C3%|(O=B6{S4T=>}<@c{#PR@RU7SFz=LKN z1pP=ko1ttDE$`8w^32H`R#Th_Kyepu% z=_B>2aKd!N&1b!KtF;8wF6-y1<$=Cta;~bdXQJ3`BK3#strwBo%0TDN3?jeT!ulXU zbtz$hEVaW?T9F)BBoB#C_1XY9B57Sk;r zAU`Uy4#@c4laZp604<*wNg@sO)RQf-SmP}C_<1{ZvMqLUw|=cJGU(cFNbZ!Qw!VGe z8nu&Fl#I6XEjEX2pV;W8NxGVJ+fO4*9-6jeV97;i$lbBdguYmgh6@s=Yk0&bl`9xb z{Zf#fQ+5adPeE1VXOdbv1pN}Zr-l=}-|_j$8!N8fYQ8hQ zgm1TbuMm;=!<2|(T*OA$RSx*qw0(I2r!MF zm463&m5d|*l0iDwE(f$k^O`5Z{!O;;W7M1`K@KHSzP;vO*EGLsz3It zVVDKW*BB!_1Pnh9&D=hN$f5j|&z6vhz;=YP)Z6X>N{T0^o`_h{r;u1->U{rX8Q1S0 zb5z^^jCDKW1ws7rK3cFQKa4;G8A%BOf_P%t5qF=T6ce{Sc)unVvf(1}{tyLg4tB@h zC5j}|L@J3>r$z$$Bi%(Qkwa0*2^?IZD91w(HV>}Z6|i%Re6+3{B3fLZf=q)ihw#`r z56Az_=_WLo_|)YnsB_B1A5CbmmT_CkCQXoOFgDRx^SGSwnyJuufKy<%YSyiE;pDl1 z@Dq_U{=$d9Pm;?FqFj#n7{=w)<;Xf4`Hky#aTSNGuFOs#svT7evUgGNq)z}SUKCWE zK3cs2UEzvR5kLgN>j>A&)mZ4y>0y|LqwYOAj`#7}+-)!od}{&f?#1N=uzVn=vF=fH zDTHK`H&~MO&vjkphrK<;wacrncPs`)(HoJ9PNVoxtr}FjE{w*v<8BaBwk7IF6`id0 z9X$?-NCKksHG=vLxMci*{jfU!q}vV^`t^$QUjwu-Rp9F!xNVHx&&M@~us++Lv?_6p zPPp*tmmRRrU{+s5(EW(eM2>EKxwW21rHFbIbH3QFq*-zO+j+zb{fCMPM#uuTqu{$T zv|u8$tY(rY&=N?Qnrx*Y4j)6zr#3)h0OpsFzx{aooeKb9mf$s&+VCgNcDpuqhdYos z<)`x`$Fjdx!bEWdxZ%dGl-26=?6ljrP z^D?{hV?hi{n?Pwt+D0fs+gbOWga;JYIM-&hhVdAY1bb+Gz}-C3egf3e+&R_Ja7xG1 z2rawTBn<#_oO)qi zfg1Yep{8M^fU8T@M5w760dxU6{}Ck=UYee_O4vm-sa+{T!r2YaV3Q#Vv%$gO8in(N z-$`G62fQ^iG#2&`2OCB6p_~B!)_(6!wKVd8)Zg^Y5md}eaZ_KaSMI=zB(%u?I2nEY z&|?#aI;X>;@^d747e-0laGeH!QSbyN~pOr`}QgC`ulW%Zb z1D*(I5N7NuXqfs5I=`?7G&9zJqRHcAjpcy^7N2#Y0g!4`LmMK2^y*^ z8}?7%d>-$}56BMTL+e`_ri*6h!PU+W%>t$Wp&>7d`O?Y$2cXQgdhsWSTt-9nFAMbn z*oWtsGBJ-mwOyoXCLvRwiM6*j=!%`DGxpNmLzSSoQ9L6<%h$s4pL~_#ySXH%So*2X z?G`)$M>}@%1b#!Lh=o+0^vseofiJBZO{;6kZk4V>Pg5_fnave6Dt zhXXZrd4FxKtSHqR`eug++(NRF%P4govI(u0kh*-N=7_7^eGN3F>>2;pq$YTtDmR$x zrthssr)`n)=o&N@YY&TLlJG#;>3E9Q-U{ukk&u$9#x}1TZm7hTjzGl5h46*2J(x`O z?JPXFm{rL&kxqt@n#=de#_Y6rbcVFGP5$>tZDQkTErr0Z$osUths--MSM{lS#9t}X z0Sk`UD*Qs_7|qT!y&O5|BX!4*Ouu&Oq69vzD$iHvPR84Cj+4w_4*XW%W)TmE#U?Q@ zTfe}ywy>`e`i%qS7Zp~&l2yq5-?bz(nClm^Wp#xQGVVbEERnCQ?o6&vB3x~v=Ry1g z{eKOdFQxyzLuN4Y;<+GZ{HozKGCA&Xm>sz2T&a!C(|xOYU>;iYB*S5!Z?eK8F zp}knn%L6{T?x(Wa0S`^b>_y6&l|{?yuDuLYFZ;#oPbe8Z_+FQFk*2$!KmMA135w&h zcGe{QWFadCfBtQ65N!COLgTmcoF+~yMvR$D8iVam-i31$|H3bMJQc5 z3}@~u;5aaO`9bqJNC-?VHmURsD?P3D}s(bH+vc;V9&vfZju%c&Iy^v<3g z+_zgrWu9`s^Wl`tahDm; z)G3aZyhTb@xg%*qzFob!aLe>TEyo>G7S{W;AH53Y_~NtvQQX2xNBki9!7BFzP#z*a z6Ehn@dV;UBJj5(iUNz-x3?&pHHX%n{v$K;onhFln#e13xya4{Xjf_g9N2&pYz3-HW z{+N_jk<0JE#p8BQ$itsE$X711QNL_FGw~58c;B8#`ZbaEpH-Plk%ZK0xYuihWVSz> zh{X_0#htC#6_ddr2$rL&a-_N-j$VGSah($ z`F6#`J?}S17c!GBiH=qQN?@!T5DX6WWH6M~oUvDoZVayVqghRD$YRj%(DU~-vC_Rc zQB5zE+I(FNgA!REDjmFybvF5FM9BDnn2I~7yUkwS%;m-=OuSa1Yd7owv5IXq3Qq{S zd}9{yTM2h(j>C*YkXxwHu|tOK8!T-44E9QvKe#U;!2jo%riru<$OknqcO~$nmy+bPuP@W@)D1efC;~0$bc_D)Ed;RBT+)Ir+$ZxBSR)xpog(44e!^SmBeICwS&6tw>?sa(tiRf0iWUC?%EWa5a7^+#y( zFm5Wx`PKb{Vm-0KU5-zq8OR8|1gF(muRTSf(q(Yh`I}XNf?1BLit2GU@{9XUSCc-& zTo^GsHC`(KsEe05D##^gOQqq`DNHE z@GS2aBaGP}r3HQ=^g$0Rm{o{+?TDKT7gT4Hxgc9FSZWhI3)U@&l>&Yp@G#aqk+Ogn zJRdmC(7GeIr&^ps_}?kf@UNH~O?@yd8JJZB{OP}Mp2BK^PHE@tV{JUBK4Y57H;I{! zmnO)P#`)r)EpJhOV0QclcI+{r0?&5=*+9lusi7XJjBj4mGdnBy+Xfb?aD6cL%e0>q zoC46WIw3QuLxa&SK0{oJw_@{XuDYBxkhq6w4e&L@f8Y7vtxNU@Pdj*Cr~+Z{wRx?v z-uUs*ZPaVzv|FT;76-Q!jHQ>Xn+LoxNmgLu&pWM@nhgbFPA&8O~0uXw+QBM*!Fmi@$H3ZJ1B zl@I#Qi|0nw{W?_zMWdd@gG5O{hf8{LJn@z-rf#g!myr3QSR!$&F5pa9;>f2U^ssC@ z{>(Z!3eNRMl6R!jfo%=@u&FINhCWxQ{GH-&d+*xRDs})MW3hIiXZu*s`LBc9_FXcA zK8S9`g4j+C_+%{j?G~*7h6NzMe3K+LVR;OzoUL!o=yyGQ9>@3_<0^L2UA@JS(-WuO zdKfUX6uiX9NdEqwGD$PR!|m5>T(`FkYX%4Us){DXR`WP%=Ib8~c5CmH!k2~#I=fo- zwqpH)Sal>Kl27+;duqX>s9|7;>OGPuTZL2iYE(k4gQkj7QHp4l+zPLs1EVZUlD-y* z_u#UoH!asx@$tSzQyeT&Uu?@}cQzjfh*8#h!J#G(~2&^#8o%=R8E0BJ~2bpI)Pt+_noyuy0}>T<{#iqESr_ z-UfnkGd-)?1WkvtcFmn7*O@43J+O6!0zS_Z33&K%^V0H)NN72b#B@+ z!FPO~V@HJGqxTGHsA^QEYr95Gj3o(Bphv-OJniYWSZ2g8P+ryZOGRpNrNMTeO>`b+ ztMeHJ>F(Kq53L5x+(WOV{aokST4LZ05e#*1lg#<0BmS*vJ)X>hlR~NHaO3G9+e!mf z3Kq>3Qc%U1OQ9y4lJ6pFAhk+8s193nZ8o5cVz2Ay+`H5mS(!u zV#1#L&czkvH?5~0V5iQUo?Q!&|4B6R@>f-L=|yNg`b2(H_$1lh;Pi5`78<~mT-K9*xtQsikfLoa2oA)d$Is|L{%rXw`MmzX}c8D+8kN%{wofG?nSz zC9sBNuFha)?B?1_Y(NdCLtc$*@dA>B_>UgJ(By*Q`%YKWgVh>rPVH_ncOLzW@~yJ` zZ#Y%HUl0_`Pd*CXlWaQX|FAF0^Dz(pb{|%&}itYNd)&*RhFoLP&rlTYlMCo-L9^Q=dk$ z5T@wlmsgD?i!b)L?&yu*e`pMp)y8>RCkOym4KOy~^{Bd=~t^2Pr}&xRDedC0IedZa1t@WxUCwjbxUl z&K1u&R})gM<*k~Klm`c?HXrB-AX+i)WE+Gj?(~DYRth(|6qBzdbEpj8$Pf6#`DMeR z`PaBc184N3Gw^ajFsQKqCe8Z3*gDi_FD*EJ_MS8cN}ztQp|Ug1Knm2}l1=WD(bsp( zeFk3OnjPC^K=?&@V!}?N6&<%kdP%ouJnzBG*|iWx@S=If_V`1RUNn>G5kWF$tyJ*d zCCS@T?Y*f<40UO+Jk-_Y(XG?oGsTFWCX)z4OAX77D=uUm06hC&#nh(@onXz9qe{?< zM%Xt2)PJ-AH-GmvB*i;qR70R{0ZGONLv)1=Y#@sO2n5h5^>owi|6y{W^S|@=dGscx zppN1R0S(f#W*$UB-23+nO5j$}kqN{sOD)m?20Y*;Ex|$vo zT0$+>^}=J_2l7^Jr*5>~os?NTr|DGJwOu~uv1Jio!4BHDR{i}~*yr$e65;8Xz~++{ zitL1mt9$tN!)4EZBZ)MW|U{d)+sp!i6W} zR0CiN@GiDuKaV4a8j%PH+{Jwg6&y{$mXVkG#VG<~cD`NJ2$Z`>)s{Xg!T-U`W^G)- z>~U!!df$V>uQO^+1l2=bonQu(vq6!w01{siI9E6W^~mjm;TIzv+`KD%aBU7~!I-Jd zhDGGGP3_FsxP)DJlvwr=p{v*n4Vxysi8aHcI;I5+DG*KQ9O=Y|!?)|~JEEW&_}O7R zGdPt2uEhj)I9XPYMIYgT3Gny_eG}9F8ZdAp6e7-YLpfEv)*lVzS$F)bOA;Is{LR+e zFb1KT&PbUTP-a8+bI+&kXxi-G5@)vPOC6w&%ob@;Pdc%64CYCOqpA1jHQsJNi#@W0fY0=_O zpFCT4vT$vrv;k-SCYfKd3F9R@dSpV>TClrJ@W(<;+RnM`zl1d^fg}9c%eQ?wz*p89 z?4l+7GUZF%Nhbu_4` zJtfwto(ibtlyTqDpxYB>+CMkONz`-RLQVu!k-UW=k|@yv@mlW9_lS z#A_FBJAh6b2wco^0vc0}7Ou=bd&C~v-&XT^9OYO(9t2XR8BYLYVAHf> z(+M5QJ>vIWYj1u%>DyA1Hmi`P*{w+wY?U+uD#cplEddSeG{3P|SRBVlc5WgWPl=|! z*eE5SER`H}^5lWEMh5Lpm7nydu5-`mS}(xs8B!A9I|o!FLm#{V!*R_K%u!F1$?pAr zoPekT++)i59&8+-s3Ev70KUXhBCfHMZF%t5tU%?_G4rS|l!cXi3~`bfZ(R(nU01Rp z&E$}fTTYr`bwB|=9NUP~b5VI8sko9133%MJA&aQsdu=r2yCi#>uU9cfXD;g=TqI_8 zn^+|lX>YXm*h~!&S{ziwO1a5@a`#~pf`@#z*aVFt{y%Rk06qSQZ#P?gO;2IT_Z@-@u1G-p}8)Bk2Mpfb|; z&kwM>H52WjX%+sOpmT{u^gD1pP(hE>zHdBj?4oxt&};30Qpm5Ted3j*_v*s<4eht7 zq$pA=mu8{=)kS|d)eeWUrlv!YOk%WzLM%z_S=9%%<`h24RFhrLd z2qD--rG)?`rWbS5ng@D7+0*ZXZYGW|X|`=#DJ9B4pfDh(UdlYy+WFLZ>b~5zG!w2ZBL&Qiu<|ey zs}JNWv}RuH=sNi8$m2?p88ulT=j8Q8pV&agrVkg`qGzJNL|CdaTYm#{ zSci-h58+U=W&5G&jzefIeaEfml;ZNN?z7^5*m&pBdcQEzCxbHH<_`e1)ya=}J|wM245I{qUGi)}i0zZt~z) z{pLja`5jSK%CDX^rw16toe@^*^Q%JRpZF`l!DpiPUflU0t%9ik({g_cigqKFk6GAy z=(S_Z+$W>DKh#IFw;hJluAtp^Mqu{KqIFqX`B@)ADm9z?*|R>Hw?jBY*EQ{0KUxKv zkhqw6CSlpzLoa|JeEWeZlYe|rea_JJ<)1aW;i3o%Dnm-uICN|LxzMtmf6k^>`RU8a zGnT341(r^#OC%9vf2DuD{=0M#E$d;rJj*wZ=dE@4%MDnU>b|MIDL$vat}{21{N=0G z7ks-2W#FBRJxGE&j1nUz{;u6wyr?oXjX~D4}KnG}tkEXW1Tdz3o`b9mo7@@7?myLFE z4+9$a7-D3E(^s`=mLKCO4g6zk`3yWJaZ@3JMSaDo) zU>N~a^`6FymvX%u6!~f4QPY3`$5kvgKnLDqqv)r2Zt*ST1VqwO@sIV;q-6X)`mq`- z#L%3E_jEjS+$Xi{Gmsa;XeIZkHpL;&0$$1QKt?AKN^oSIEC0g6oSx`l|M40)ngZ*Sl!sa_G}@wV#Om#LE?mlZ93H z-$&m)b>pn$E?Vr+830lhktC_iOC_UcJedqR3?4t7%Hl~Vk_?tI?x&`*h~9Z3>^_=G z*;eiJd{sIs>EW90WO?Xq5|BB7@Wkh5mka7*)IXh=^D{kJ+n-Q=9N}u5fqt`$#>kDNBfsezKWnH1~EpHmxx*bsXqg%*1QD zt!vQ&n8sT-LMyOR4D$~Py;79F$9?wh+qm&IyS(BX4O{eRR%S)Z2>+UHU(vNw8UB48 zDfSXgbS^o_z1~yZ`#tu8ZU+cruqbcEM(+~@jkT|43MN4DuZCEXnx(tC$bVY~xZBG9 zW)(!D3BdHtC|?l!)g6PdWBa5 z-nY7tXcp2M-$&T_m&NeOP=O!}pIqks?^F%qupWnW`kwaa4{#pU3qNLQ8(O=Sp#9?g z>;#79_3yDPa${T9%+t412zv)7R?#)82iL((;aw^!0FnQ+0r>+uUuM42PvM?)Snby8 z0hd*|e}!G2Z!AFM*%;%;)y>i;t$h=yE%30l!qcVZ%E9qX*l`_qZizGj2CWGoU)dOD z$Xp>t_G$UGv^Iz1U{w!%uC!B36I-m14y+v&hnDc} zK;hYvY;{XOH5Qk)w(}qeSSb@TT;Qmq-s7;*YMT(a0J>@zV8fXTp9*eDq+MT#Mke*A zs|Aiot+Cf>iDJB);rEwuHq{l%8?9Ia4O!^MFnRW04LdqRRH$*pZJ<#UU1gqqsF(wj zIb$#VNuR-%iy0z4iyc762(mbXz?t%nb6<7ohb5hN5O7MjuaDs zK2}{0*k=8W@DzVi#OlK63hA#X0K{nZ=$@92!7b^Fk#;Otah?cCaQ--YLk zI~n|=xaOcD4-ya_c@RnbbXLNOxAsMXKV5s0bwaH2rSa6eYv!xyMu823m*y-<24Oi+g2P0Q)|dNkk6)~L^@uJR%18|- z(8N7b`^$D&5N-3+bo}nDf2+<|fYJp9xLWd;<~R z4)V@K;4^I^27I?(Tmuh5Zrf}CD1B855%5)Hyfwv_RlgtjeWu`)T~ao|RwgwZdE!}r@=gXH+ zj%5ViimATdu#3UNC^cvjB*(_VkDZK6OG>*3hi5se=;QjV?E4-or3lGFg^Y_Dbb9tV z)lz3ueAavocVLnV>J4vI5G$KytRM|9O$WS7AlmK0CM$Man9}oOwi<%bF`1F4D?= zXZ`7#j?y&1?t>5uyRB45T8}Oev~-56Y+kZmw(V3YDE8l~9XtRLa`h8~S_P8K)A@`} zyqUwvGOuhb_aK#l8F?cw&kUY!{SD6SW?bl^8ptI+=;2|$_>lPj2RE$ zlLx=?$9Hyk2(`$wJ@CSXW{0YT?qhYksB<~x$S-qe+-B+A1t8-6iYD&CQYPM10_H^sN zFLt;Q5-z+iUrr&vs$9)ZOVrU>O{wN&!JdY@0TcaqAsvV^&}M-vJIhMKhh=h z8=7QPa{ur=$^RM*Qp`SGlqjkmk&E2;;Wl-EHP+0MN03YxX zNwUYHwHz*rPDSp+mU%o=$34yh-fV2ZXY9;xxX%JT$LQo0)4>a$CVlqrre1SV_P2-g zFS63{E$@xtm@6T)mNyCWqOULCUUblu7E(&h37g9!D-X>MdBK>xiory7cW@y)}NI8^6l@>n{XEoh=4~@*P z4=PfPc#Q#km-L^J%V_ldKcp^OrIWJ{DmqJS8#wlT$cwjQ8^h4MH!tN~1T_n@O;A`4 z4i#m3T>cnTjWX=k1OwvmzTg2Xh(QxA)iTM^IA|--B;pIp#ERnYSa%-Vnc#TYEi7PG z62sjjxEY?_3zQV>^BQ#x6aoXR zeYfZGJhO5h;Ug0qq?L_qh>^TFK-gblj2X8`U^o2w)JCTY9BSZF`VQ&=3> zon#!*TVhNsO<#2GbAp2dbCi#tn^>Y01DsadzG;R^1Rb-8jBc1@#nD4DSSunyFEref zM|z_0q3H3X<3&}Y6&JCApM8J{C|a~#i%vuI?omM{KlclvN9_$Qc4gu2swdxAJ;?zx znZRafyN4}&*fd~ID*8?O_S@oLOD6?6kIN%JuBU#0MXB~EGD07wUn?vWkwl49g7sqMnG3pqN^*Z^w#Nt|I?V3K~&kk3nImCwmm?Vr;j&Hg3^?@}s7!S=|&+7;EzL$3Tr$Kj8EY1vQCZelWOoeQ5ql&cb!9(>?9ti?a<-F4hcL6I{@Q-~VC zD*=C@OyGM+EuZw{B%9rQLoMBk>;?>yD{RofU-pA#zY$CFj!yjF|H)7`=B~p@QU@5q zVggw87c}}F>x%$+cpshOo&;<(%}9^x$ay(fqKwL3Y|g%Kf)f4*PQxrZ-47Qs86Uyq zy*+W50k2d5`8nWN#c3Cc zQ#+I9>Jodsap8nVDyT(=0rJhk(Ew!Aj0P!m3{dm{VvV4zJFmq~%aVMAk3%=HMM)G! zq~KtxzgU>~LfT?L{_vW{|4M}`27M4%!R13VFgFmKox@sGd{9Z)loo(_{}K=?N-0u{ zQ`iB^f{)5HF!)kg26ZQ>h_Q{(Wij;CQNW(5%>Wm@NJaxUiZ?Z^nNiL}#K6Ab(ZTs9j5liUysNc91{wePXuMo|C$eIF5txR6R7~M@(o*yF zZlP>D`g{L(k>2bXf5|AvQ~;SE;HoEEVepG9E(+3MNVejh^dMYPFj=A<T20~ zH2+u!D>%iA?OzVhB2K{c*4mqN&_M>zlTk0mk!di2O2+laSBT>^2@R}}W=D)&nyIE< z`h)!0$)7~Nw~x5B;N9ZbM+YQfEM2$%vnHXpE2IaJJFhz)?+(U!$e6VAOx_{JhP;S` z+2W&6J^y;8maAUfXbzRURw{+UkD^km1S1NS)N`vz<+8_XDfuQG`ck}XLs5(3KTH@j zC9+y6+2(EbS@n9*LE!A+Q&8+^;O+f9quR6 zgC1@XRruNV57~cc9ZhKo)NsQVla}Z06h6i21PN#O&8n_N!C8Ju#if#8ZuLBPW}qha z;MMaw4THMa{DGjiot(xCRsN3CGqk>4{d;^RZFgXmU02{zd1um^c!;`OwN?euJDD2K;0FJ* zSb#N|rw-bLz#|2^FB3i%v4b1xL35z(@Y2Buw-j}xy3o6X*yWESxYUGxgUd=7oQhP` z^8d#R0^ksdYdP1z7X}q{vp9~GjaS#bgl~f?IrXNTiSi1b-o@B$HkODC2z_{qw zpKGsvWgy=y!_T6Abz(TEKL0qjkSj!*0ae$Se;ijR#+*AbAg|P}^ykWEXM64p*K7ns zNTsY`!znv3yte(X#&Tpe2@`tBo?ha+w^Tge=H@SYV>peXkc&x_714hzDn1eEgV#=T zenimT%RDxuogfKE=Qjur&3B&m_?>JW+i2g4QInSyl=ngStiJhviCj_Y9znI}A3i+? z{p2mu?rA>-%>1;@B{`-puGjx_D|(lOPg^q2&fSSmu2&%J9`Kfzol>`3*NU0F)rAzAZ?7X=V2{LZrNFCZRYB~cYm&nK z5w#BUFJfdes!&l+X*ip6c3u*)t`3isUDOrVxxkqr6KwM&oM$E!KbBP1H_Vfwilhk1 z4x#_Z+2?zYQblEJXC4ji!Esd%|M}!$Gv2z;y@^s?0glmsW}$ z`uAYdSF%-D4^S_moF{~1-r#$Ye>c_0h8xQ36h+k+D?&Ne!Y_)F*cmXCeX}*wb1#{3 z9um)}a%GF#H6yw8Y*1?362KJ0vrjAAN9txd-z1}%I(SMy1#i)x6yE{LzEFFDz56Zp zcX&XHqGs)p%k=Z;8KJb#9g!+QyyePfYl>|h?eESm1WxkLCeH|rsp}50AnY`R= z;;nf#f{)^F5r<1O*~z(o+28$QFylX85IJ6S=QU!m^(Naf4l-xZ!)9^+W0rC5xT58n zKi1he!9H<<%eM=VVG!`lPU_q(w$4YCwx7M%>e%9g(!4X;21`UR!i4N}J7|v-wkadz z-e87MZNdP_Mn(e!q9y!Xj~q^=a9}JI*28MR6cNIfacSd)my6@uW2Z&%@#J=we9^Hi zdi-G2Hyw;!&%|Lb4TI6b%k?WcxNEtInl^Fl!(+qxs!PTzl=$-{P^9Xr&L0jQep81| zXg1auzOTBV6A-b;Z2Bowi_Xq_Zqc8X=DRXGvb1G`Vj3oP!D0zW1=oA}MaNp)X^5_q zN)eVTIrU`!tJd?$JVU01<&b_bQdkibUot%Ppzmt3eh5mwg5p!3&1Wk+(3+0+`=ejM(5e8ilElMeKLXJ}P$5 z;IqfYjXtW+y|J`syrh89@TA{k<`V`l@iX{hkYq@kZWc5ct@xF|y(*(1G${E<;y+R# zbVY&a;_+x80-0I?gMEKC;W00C!3r6^Rg^5O7yVa*4{xNo$+;a=xV$5G7YlYIyS<**iM$b7}*FL;eb& z(FD|U%DDV(+@y`Y_soUC^|5lEndTHAN4Tf(C@wL9*RW;2c&#tA3KAV2yw%T~PJL#gf23Qz`e?8@*TDV-Uj(qM z9;jQ5wVeXp#l1Tg1HfxQ;4c&aWER{>czRe1kpl|VlCky;Tq=I`&|Nu>gPRUu+yMH4 zX|lk+Mg%Vy(HUAZz{`=1H|LwIN6Q5Oc<`ul8ydWuxSgmeIEvi13&ly+y{8Jq8pn>l zg=8~mpmm*4M+390nk2;G7l1aK{M3D0eLRWSoaao(f&S9K8?)L zjq#G@8`J zuwGZS*O7*Wym41zO@a02+t&zM-)ozkx7g1T{j0`j52)w#hk9fhF7mC@cK?bat4f?T zBfX-yRAV`jUNsMCM6BY)O7osB^rHG`QZAU-JfQUyLnR-}tyRVh%JG_kxXAXqy}gY` z#oXl7hzd}bmz{;zu&#Ta?>%(|*JoUvS{d@6jAi~YzF3yXzcwHJ@0&Jjd@d9P{k&fs z79v&g*LI5@S}MM`srjlpJnWf&kvwBjYYR_PJN`3p-deFPy!Ib2tXsuki1^hAbOui@ z4%q0BSK?a1eSlg{BU=VU5*u|U+PWen`}))aUd&Hv&Qgd?+V32z%^gHHws(9HYPkZV zB60xM^Rf-6U49v^3#M#s*q&1Vh}3_D7?>N1iVK9je)Z^ElXJOJIX_=kA$90M$h`g4 zOYQqXlG#VjJsnEc@LvHs5{1BLOAked9?Sp9VI;VmRW?I}r_l<*f5Az$r0i13#X11y zjI1;t*wdB~Ks|6!+g(Rk>3|i%KFW-u&Xjs|u5kWMR*?j|&{+4&z4L-{S4MElJh~QE z*Kw{~aoA_e_M1ED`r01V(l>k^tlI?EMP0Y3_q=6u&Nc0JO*{{H9Tks@%}!-%a2{UC zY66tD_UVCE4TZo8Q3iG1*|kV4`CjKiN8mO8y5tvEY9UC=S<1#Dv@8k0D9D~>S)&jZ zxn`GzBr~^B(G;FdaDZmF!HWh+^mQ#PM-UF=nMtETHvtFizUvmo2g6*{D)Gv#a!_fY z2y>zjTvy*wnJ%Yf`y)dtZ%sydXi*~IOwe(qFnCu?Zdf6sI+wzwXT=uD;U610-kEsc z=PPw~-VwXCl@QJ**SG6l;DrR1>xq|FE@hs9=R*7Nzz}@MdhVg=kh&j;Be$GDqtjtimsk$%wx5ssSYv=2W zvkk7Mr-PDUO^i(&pP=^;mRB#;ZlSw+$X|6yZTu4bf5ydTq-19y*;4%PtErdgYrC08 zJQ|z>wF3k=82*K>RRb?L)#@uhragx=R6d9pKi%~$UadEE|HJ*W81YoKmE_w1Mka$_ zO{RgruHI-VF7jBaM4nAIp#AV)QRPa=J0r%j5+{?_CAPBypYwv45l2(h=OG8Y5%JIp zhM_}dT9>5&35-xS&t47>WE+z0cRRS)t<2+3WgC&xJHcee2zMTN_8`JA-l)4xsyRPj zH9s`oSw()Ief)?+5UZn~K&jrNI=?d__cd(akg0>4vO|=xDC!a)R%bBFl&Q(+{JyR< z`Jv6y>?zyO^<7P=d-80g8-<*+E`OJ#SIFDNDUQ$Up5C)h~M(p$uz{voa4J3;9k-Dz67qfDX*^W=o-TuE(O950HyimXdQ z`@v89m&1&i5js_(q)w5tox2#YRr`l%C+A}F zD<8L@P^oR(<3D_(L^~fEMfqola`-P1-$GEg-Rm z|JE+8eSY7~EP>rTiAZsF0}Gh*LXu2|gw^1{3t1tifb+-AYibGmVZ$0#Z#G|l_lw+v z&*IXOqnrUMJ!}nPuFqA5jYb>X`wc&8Usfi0#{k;BPlbODT;EEidem}sR7!w0PWF<- zaf}QBzpt9qb+FY5Q3A(Tz{TafehU%EoRFQr(v<<%4GyyR+KwQtGIynkJ&AXc`c!qL zL(@Ox#o2AI0L#uv*`51OiV&#i9KIFe%=MY9BS|3ih)@x`_gh?7t9d&M0)y=7_FS!w z?G}at7u+XR*5|M;{}gR%hvht)HkuIn?XPK4o$I%pM)eY_D(>?F@?!@Pk3#n=NXc84 za|Raj`h=7G85)-3B*M_l*0no$^$A5zRuB^_a0!}s+E!bzUK`BXayH` z%~iA>R@`*p5{>>WA~rT{M_Q=hYt*3ULgO&BG~!myH$WlERtk5?>$Rq{2|Vb-*N-G? z|F?oKXrRLv_kLat{WA`|YSP1|0q0HeCFQ>i7y8~u9c-LG;kow=1gfb(!F2>`Bp~1~ zinx*Z4N@n9Tp# zfcSvvpqD}%u6?zAE(p^>hj?9(VKwsxrs}W$-2$b?>^^Nz@lOLM5ua#EAB7(8G%>Kg2ZvOSj1a4de?}nb{+hagIGQGDG&> zqeNt<+jb&5*&{c{&M~ta3K^MMna4`mqi~QFG9sSqJbyi}=kq+Es{w>Q zaI=B+n-i@MrUMa|DLYI#ng@hTN}bM4fh4U zEn!%I+pu+$*tNsJiE&fx?EjPa06f>v)WR8lgG#DFVTg$0-yBK$PQtqEqsX)ra)COs?PD5Z=^8muQpYRa6@Cf*F;-qYauyiX>3@y- zebsayS0LeKhE`dY3om)gf=CV-)OPHL+riETH0On<3) z)~Fr1nJmB&g#xGJw_m#lcj0+QnU63%LXd85-=23{1!hH-O*g(E9t1c-}_be3f94xFK8I&XSIPK$K5G zbq-1Hdc=y|$>qvqvK5~Zc;Q5jX(01c+%pCi>SFbMxOalUy)(bg$z&KD*_|br3Nwa3 zsr@O0Fh}H{m&MiNK&asbaIv>wzRU)eiv zL>giP=sfp)U&9+m!}(TXa~9im&5TPLE~#kgPmKlDx%s*4(GNJ|GP4J#M&UY)EB5RY zk2yACNhQE&H;q;Q)gV`^bWznZ%~BSW1$3UBij@gyPjedw#G;k{vZ1sRxbh6lKMMb)%$k}@YM_khO&5&7&PU~ZeEwl|@XId8 z<^J2>Vl3HV83>)0zD*F>q79F{bY9BCa$7N_AaFz&`);qizi3T=`UGEf^ z*tPtVr@ba&6>##%a^3G8QY7P`1u{cYRD{oN^N>9Jdt?o5#}vbAaIAY@QlgY*SaLMW zRvTXyZXGI2q>z_MVm2oWJcIxlfzT=7Ml-s82~NH@2fGiwwTrHE%m6*r%D5eo|FSSt zD?Li5po)zmMM%Zpu1NL&w}^uta<_YUy@>fKIF3fG z<5*95S8YSMLm%CkGGG04St$_h7Ib3>vX@FF+hi1rLpRgfWdoR6kS`Xdd=3SF5i`18 z)q~d1Qtjuh`1cAoUY*vzuy!l07kqo4(6cWo1cfK7B|(%(N0zvN9%l6Yk|kL>Whxh7 zMWpRP(JBh#TnuSwU)>r=uX|{z_(R%-ROtw?60BO1L)xIf%hdt&Yvir-lSQ1&rI$&%8v~(_{~3y9maHLuTTfmoI#GNPKJcvPg7vurZyx&%ep*a`Q8)>tRGf-Lql#V(E}qf0?L;_YWor3bRxY`ZiKIz;m) z@<(~pA-`wrC!x_pzKNaYfIW2(VJz@VZK<4x-6dWKU_|to8*MISJX35 z1xPBJErs34Rnr9ynY0ZuR_g{CR=Na5SjEnemm?N}s;oZ_^?R3ADEU^j&VPi&S-Z6m z^(w4DSTpg6vqyD_4IwlmlyX6~M(3z7^pV1kPX-@;T`rSG$>l{Ig@`QT;3rh-AnUlX zrK{3pM7g5yc&sPsYMxtEcL>(asHnf zD2pEKBU$z2y;wY8O+H}J?Vp+E+GXGgB3tdu22(Zn49=|81bq~r30N!&FavkJk@W4P z{>R^3)O!TZ z&EC-ehmIV>4e1_5fwk4=0P6xzER1G~m$v%-?`L^k+U;U`StR=C&@m=MXRywhYvIi8 zWm)l>b^G87H_}7<476{uB42^TPK`|`D~LA_rW8>~yX87p!G20Ea?AvxI7-jzTEUiM zQ}oj%w7u;ZQ}UIgy}>#U6{xM5ruNsU-!BxG$%IlgD8?Xgi6Ak+e-l?Z@fR=@fMhQF z(_{IL+%`2?t9V4ezyt}NU1&_keSJUEIZ&E*NL#9Upx!551#=I&aJyKvb_8n3Wawrz z+^dNH7pt%O0&Z|fH`|H!Tf=H5a#K5M2Ev~SZ+r*)v%cNk3`F7WOar?bRt|@JAwYA~ zoqxkI^V`{)g!91XF>Oj_rH&L6HWKtC6L>4%*chK%iF~KNSz0Jo7OU|vA-D}9&Ph9r z(YiH0JD&^xm5QRfs_Ren7nK6ajo{)opdV-g%|XByj3JF%M$>J;ilS!+L5iV^h&2j@pSyu-;fr2%edo{0A%z7&zeI`dTCl{^;0#6^fa6hm~0Q!0NJgBbW`k`J2|9Y zbgQ5O;=6WX&8DMp`nD*JWxyZMH$6UWPN;? z=b-KD{TfJfP=tCPGr4_)8~u&E8sT@*b3@k`z!bv`Us{}v$+t2p%0v0T|7?tW!)gAr zK4`DltIp*uMUMih@unC53r$cxzQz>>R(vg^qc zBG{+9cmf&>uX$s7nQ;A?Ai&N9ChZyCwnCxaywc~1FsLjJxEwT(dHMiKhlhZ@A?5?FyZwF9KaeUDhP5^wfun^(X_QEI!J>94Jx! z0##NH7tx9RPuM=?b^r-s3=cm8gZTKi6KbgCZpC6*?y7dZhGoZD(jZx#DO|Kv~ zqHY-$4gZY)XMali&4fUGQiTLaEPhwo24AOTj1Iz_p&nwg3K{F;U(*`TTQq?M9oo zIX0%k=*ga8yRSF@HnnS|M}wPi@xcx=oM#aW-5D3#*3x^@83M;Ce~@C<2(s*OI*i;v zTTcSZ8{4NGL_h8$$Y@3lS?i*%s>ohAVxW<>4ltoujz_QRMyuQ}wl3%28Y6 zB@x*hz*9Y_`?#^^r(fQKcpxl-9|fWM4mFTdf1~0OQXf7Z60i-=ti)i$5XxqK$Cv{c zt!E2q4=#Ufcma&yUx;b<^RGTra1b|*xdZHyB=R9A233&^*E@~Spyj8YDL=#VBo;|6_~rhLwVSiBBe%pF0|sF$aZK3DipUgIk{6@^4GE`uEpTv zcUM;0WN09uz*Xr8gZRc$&_=wQz>`ql?H^@x2}a@|3#9a_?KcODJ4D|#HYn_g}z&XwhF9`U{bVH>+QFhgbNZNc1wZw!eXU zT#mnji??mmE!+kB=E#2dS(5+fie{Ebm!qW@OQ696qTHQF^%$SIG5{Fv?Y%4sN=gOY ztG9Ljty4+6pfjEsZ@BwUd*Y28A7z-$O!AIPjDm~TB9LkM@5&lFdVV36o=9ex4{>3` zJeUqE zW1mj>&@DAh(d@+|`JC2FdUfA7IT_o_Bz4`2CcGkk68;3T4a;DTlNd)$KP0zUoy_uiWwSwm_xo~_$q`}?oPK~fRtySsWVLeOW(nqJ|S z-n;BRoIGu!uE>uO8CW20w(pI?B!K%a!X%OXXpxr~k2=_oRtIIGtZ2i?b67zK7Qi%^ zgpJr&cW9E_{sfO-mT!b^UksmJ|V#} zVFg)j_5sNReV1w1C7Uq1DVy6O} z`x>k(mP3OSrpHD8+Zn5)s%7-n%lCS6lzam!1PHSAL&Mlkwh-nQjiH zLmwoAAKknt+gH3-vuczC4oHgy=PNub#g@via9f5!@Mkr0SaDV#;?% zu<1#vH9jvNEanpp%y)=~lFyuS>QhjAx@Ux=dY&0$BoaJZ=_tl>dDay;3OLBE3*i)r zkM5uercf70X)^s*-doZn9vf>tt@U=SVyeP)`L8?_v)lWAV~T^kk_+w%Pf68Ll?6;7Y-D>8*h>W9KxhkA4vPm{r?n zycK$=bx5ae8bAWaog$`*Koz~Yfu2;o?%|N$=Rx~lq<#=i8PqCsXjZjbK`{m=soPEr zBj$T~i~6@-s3|q!Zk_V2=Dhjt(~}N1_63hxoH4~tHELJyeV;c%`8OM*o3V*FY{S%2 z>WIv4+Z6YKatFIWm#Y@B-?d*gN3#&mroOKzsC+wJP8XBJO^KB>C4v2Qtbh3xXsNyE zUbBi`j+=$!Ewh03aw83zmN6;wV|}+-wl&b=`q>eqn zn>3{QAO$SD%ndxi$vK}I7+Rwn@ z@_fH)(^1U!-DMhxlY2YO7*cTcnWjQS7SSQA%w1JR=JAQ~uVoG8LXR)^bn7u@V-( z;hD>R7@cVvk^A!_)Id0X5exZT0t^#Kk)1DQxS9h-i-WdS=R9ePs6w0nG5c(S`h2of zQRa*%XP!&?P~h#93ew#8r1RV$#k)Te8rfM|IhW8z_cU0eJq0#nDr;&kBR(UqhS%EO zABD_>zsVQj#RD`1Z#V!j0qGR@@=X1jP|*JpG&KHGk6lgVh=s<}8GkANJPXkUZ{u=N zooy0q)a!@q5APgSMRDP^9H=)_Hpiu{1b6o~aUP~9-n_FaUH&*hlv2`|#uPzedJTE}Cp>2MwIF0KlyT0G1l`Tuz1)0KaR_s(&>)fbcd+ z^TLWuqMiZ9n?%T=LQ1Bsx_HI%H)dK&cdX!FQn_UAA;R2@i+STe`_D9Hd5^%K0Avs- zbY1BcC|1X!?D;V)8~9L#yntVHA>oGfC0ncPTxa-F-iF1EN2Ehh{rzJiz| z)i8YR6m-E`Wx*IBhyoWw_F{JFabuT0#R01jH2SneH8<*@la~9N%s)@emW_iE<+Hg) zmxzW5&aN++bacT2ekN3n*nN_d<@m|I6rC_oI)=8GL3G0w%Q%WpDc3xPRKV+Zr{uEc zuL0$Ja4)txpgh26dwX{tb;EJLY>`~!|K9QcBFf@jXXReck-HD9hGBW|fV3a%Yw2hL z=odl419A---h5XsJVAA_K_oUlx3i1>HeYeiupF&Jz6cyDprr<}`qTl)NCGqQ1v54h zJ^>S+r4JD2E|~e_(lzV8H6tC^Uxs3a!N=hMYfomTC5yuggU8(#jbHLAoU-|yQ|1bQ zr-!zK#EweIJ=VBc!PU15V63w^Py?YeDva(#+N3(nDdXa2_cDG}=dBB|Us_8?<+ziq z0b<>)bokF)>LoV8nrz;qjMLX54atqtERgxZ(+%75HsZ6-#m-$aqB+5}sHmOD=zQ_X zMs4!9YVm*wKuT}#exJv|JwWIr;78!|&UyO`Fm9aDoQ81f4I+~RuHF2@)z$vu!UbM zAU7!lDd2T9@^4dR3!&7p7hE805Ll%W^Ji9?cEWNX2gpNl$5=*ucpVFZ@LKnA%wxLd zbgk>-vI3{L91KP5Z7JCs(`TAh)^VfDnwxwLJANg>S52>uiXC~2kJ zwOj=Z)x=gvf#t}@cF~G zVs^;PGqEm1X@;-@BjcOd0N@^^CAZjb4JNGw$-pS>m<)uMHh@Q|4Uqhk!lVYOZdUJA z`A85Xx-fBevvA*I9)V$u-WYsKEXhnW@N|YNZ|5?|V30@_aZ1kJixphe3g8Ez@npW) z1$cUE>d?)OpkdDB#GviAMzf)hjUzMbr^Y{c4U#bQgK_#294Ghvx{Z>$sTy1fTIc?sOw>SHC?ms z0ifo;VWF8|JLNPsBZN+S7*ubP4{F+uT49GmQ9P1jl`{3Q<%rVh*I=AB(+AY`bUt=n zM0Gw`xT4{=BL-H9rQW5FbZ;^XhT7`_o<>w!h^Y5~=I#saj0`wBV!AIYQz(dCq?I$! zKE~6^u#*x=kj01+t|Qx0;F&bFaa$>5!n2NC+AQJ7PsKus87PI4?op^b;$ zH^k-L5~;lcFb3OZVLhgIs8BcPV?yUA}h-&p7gu|Gh+9unLHCPCv-NveV z1}uKg@=xE|-jcXJql*Ah^T!A7Of3!Z(yL<|_iBF(1pkbg_Aujdx8Ghz zouYIe_rQ<2a|7sSj%36XS7?7gpX)K2 zf#u9Zzx%yKEtBKkh$&N&YDo{H?4JG*I*L}I<~bz8&Sc~?h|~q<`u>u@eX(r@SwzH* z<}ro961Jq&-pf$O0{w?8?vj@GYxC5Z2o=j}vR~py;pgZpXCYVJ!u=b$Ehev+Qbq1k zK+f4YlPegs5ul7t;PSahe3mywQ0$|c!{}KulMylQ ziTS_leBTC4^3W-Piz`2U?Z*2VWiO63Jrp~|R2{2C5miX9n~cc_N) zWM93lL-TEAz^EEta{2s=7o^*B^wNI^#CLTpq|&D4H~-lo*MEF_zcOp!i&W&_ofD5m z?vM3KmZNeUS$8}P!{a}6PP18J6_&FB4LGFx8@BqK&Uh^0{5c$;Wt`(0Y&uGU64Op) zh1VM}>+?Arvt_6eNtiXeu4+i|qOuq}g>{>&{Ml#gTZfC;+06`Kx z&-LB~*qd0e@N9^eE3|Mb;DV|Gmi(4|TEq@Z)zIcnch_BG5`7s?d4E11##M zRY(=MY?XqS2U`D&5;b7?opnk3>kas8oSx5zqmfE*Gq#(>BnOIv!t?cLf6!a%$&J2f zC}q=1oyM6V#T71&#PJ2E?}?)}&dsaNjdr4hz_r|h@OsY$e@$87`Myf zaAX`^l`0ZUz2vqC#@~Cef2dZTOERVoGEn%IC-U`lu}W7R8(^-+_4WrlCPp($d->^UeIk>U|Kb5hxH0bnkMkqlqVM?@%CMg`xuHG2%37(*}dS=R&Yx9 z);UwnIILW{t*?VdMCfR$2*4dKzU}=6sg(u3>y17AO{!9N3bZa%lN_QPHB~1->?i9i zIztGseKw(gfU)4@r+p!NFVW+)e|{Q>T+-eGD#?5kB(8p(nHx3Pg58LwulSc?S!A-W z1NJvBBVl{&>sW)1nRzTx5XT!}1v+QC3On4!4@d9eS0PZcuJ$`0D~<;W^OUpjEYzYt zSPr_3N%H8);a!n##D}jlW z?%pQe>t?wZAIQ#R`dc+7R94l3*v?*)8WN&`=VFlZpr_$EC8o78)&766owG1 zZ&Rr684_)j=MvjB8*|j1xty@G_^zoZcLXP>pWbLU-51Qd*O@~&>M8I(HhV`06~>sj zq*>0FrlmS$w1gJByPYWDVh=YzM;bai+dLi*YicLI1UyZoTWM zhGzG^D67+sz0;<}K74ZCi?Xfc=?sFFeEax1sya2=P9pUZ2(chjT^8%VRYt4}hLpeL zpP8FYoB5@h1tvif(38L|d%!RhKO`0VkDUVWHw4Z!KU$HAdu@-a({nR9>XX9?cmp1U zKPb~AZt7D2sR~k}fE9!;hBMb^mpj-ZpkOOLNC6_+1_5mE5RW&8@Ds{v5#)qm6y!XA zW#NavficBr2GXL}6R)qwC3z#^wjAgUKxTH%{0!o^-`D<{&@W|X;s;fds+V!7s`&%& zE<|RXEqyC~>sd6qXDsSIY%g?Z=eU&24msL_>o;VL6yK`PyQDWJxU1fz9Ib>QSbh`g zYRO*=0?gm$)LXOCe2Sk0uf(NfUhNCb!sZoN*z$FP@!81g1`(9aWupkar#{d&&i-ol{v_p$MsO%Kr0-Ej2=O=ttPJsnyZnGnJ z^0Y~gei18)Ac;5v)er4t+dFCQt5%ia$+YtimvBh7{8hn}#oW>;(q|{4abtPBS)WCh&ZmPB@KDah&ef>?=jQwGcic zu|z^s@Y{h2oT(%$dt4{@`vR0GCs#h1M02sef^9jRWMPuD2fLon#!QeV-uAc0Ri2md zsD9ER8PtHIFN@jmiG6sbJ|)zDw01fB#0aPa;NhLkvHL`VxK6(P7l29lU0zs`hMK=V zxEu4))U%tf#Kl{1W7&ia1CHswnDkrNi0}NUmy^KWfkxWsxL5HttnBmAx5V?W)j4+O z|4z3e+fugE5Rd6vn^wY^gk|rQ_XY%~d5df~%$zF*lO0BkW+*~XNtwl3OD203oHxV1f?Nv>)jsjWH@SzTUrY7OfGhp0-ODgD54vJhab9As%IaOK3y2Fl8^53Cud+U9(hioSjUZdr<3 zqp0|d5G*}I?u_-6o9}n{+9`qC4gHKJoGP8qQkH;&NS@p>KofR{$kjCOVF4%J{f`95 z{3Os*kpYJoK>7pPnyRkgSe{5V&1}jjEUH$S8A}YTAYCMa(s+b~qB9vb!5LIY^B0x1 z02$Y8?4-ZI0QnMLLO9GHs3jvb*$VONm1&yJm|9Gi$2^yYGZVnw5SdK}$R%~_+02rS zF9x1&)AV~I6quMvc5N+Ilj2^+O;I(^ILHNfkXMwEImlksibr~OVFSWuoJ^8sU^Bbg z&DO>z6E`W$fc5-f_1-xz64Z4h8V1I6Z_|i2hUM&9d!4-R^i!G6BS(K#w+Mpl?>|Son zqY}7=wM)v{lOHE`Pcl%Ih|s_3*%zKl-^>v_q!4oTUx)H=Cfp$r-3BtVqm zT!2xMh}D|I~Xk+O6utD+tDg`-+fYtx(S#IK3-zlZ*jt(X*Zj}h9U6i zQ`hV#OUDWm4NF-)ie`@DGb)uAp9RW8^B+LEeRev||Q9AmVm{Eau6Z+XM&?*$#+A_M%H=%KW% zN(e_jo1ngfjWttPHO;>!V&8h7_=%SOA};Z^J4i&e#xW%i>Hg9cc-D~z2?6pV8L^}w zbzw?TphEoO<|SrM!s)}5{N zVqfSgmGG2}!`ryZgJ}|1LafNheQ}hk{gsno#zljshB!D}a~9uu(QZY;*2b$z>$Lj3 zaZgiecE7UrB?vU|KgE6Ic?k0nb9^$Bj<4PHM_L)) zaZl`;GeVyH?y8c3qU;=_T>Tdwaex)}cxr1=LjoV14d9e=@oqVh#-Q?xxY<(3r8?kP z8<(5*7oLdTjh3yOP#%r3nbE5WVQ}s#qHntKsVC!(z_L|khO1RC*pp2_JqKyQH|O}k z?!ad5s%z{c#3&>31@me|j}ssb78c@Zz=H_ZSr%XKuF<;4LrA_o+PBNS`IlC)so{Q> zcTIT#@iMUQPqb&x(l%hX;Pu5F#F+aZZgos|FqP^QtN+}}%6xKI@n#WS;w<+J5i!8h z?K4a6`kmj*yM}d;7$qTQ0Yz2gQX-XS29xPy)k39n-kLw3QwR3=+1JN=NoYF|=!HgHvuJX(TJZRbqX6FJP)z4$OMGn-Yp(8gY;+qN( zS1oSK1J9x;a7djIr6}ks!kRFe)56%OD47IWgitfzhmYo&>B0~IPA9712ozv+XC@sH zCW-J0uO|c;8@Y97Vsi}ix^2y_X672xoXvZh2Z3%z}?EU z5o0dPje%%H2eU`1F$G?UCV)>1JZ-X1)=%Ob%Q2+%dQ|k%3`xf}dB zWZc8Pj%vJ9s`pnE8v5#@ehYCxfHXEC2;)J3hZ|us{OoVC5L;V`Tr!XL3+^EzaPj4h zOK5m#_XI>5b48GmG za_kgLOAnwowg%Q{U>xVfK1V-wk`v-!*ZT3s`s{;|ud^D{f1%l(cB1-mXJ2oGXvQT< zCZz=wB4P8-|Fkc#f&dL*iZE{OUL@_o!kzUjfKLTV1GerK)Z`~uIyT#ijXUH5L^P>` zMI_E0OxD1HmswcW-bhP#^0fcmqUVwhv2JryrQw<(vG%i5nweSgHXIr35Q{E$*cB&AFWDy>%)=g&PVt=@#0ZHwO>_oj%gCHL#lfx@rv$PSw%B)D zM2)D(nRiu4ulW)dBrcY>k3?Ms{&~~1_N)o;;VI8_p_Ot_ogUSdkVUY?KL6}kvu2{b zW}-^jIf>9z7#%*ba|(Jl?@qAtW5wym9I84K_O^)BhrZl6_&@Wd?>6B2NjIs=wp4+` zA$K{|cmFNg@!VAvs1%`?l!9jma>Bfx+95qvfaH>=LRDy667&PHvso85%IL8RF zTFAqI1D7q3|6G_yg<3e{#n8A!@&B{PqjfG|TL|rCEDoeX+rcapa?Clu+yqHbfM&c~ z^h#KIp_Kr{U>lqQ$g?Xh2?=ZTCEjSQ3oY*Xqx!BWnH2N;c9#TL5d={{Ao_Rz&OWNB1M03$| z4Ku$Z`B$S4sL*UZZ9u3kJN%3JuTh2*y=M^`aB8P;eg4uvYw2sAH%@eyXW2jfUIGE2&`TVf;wU-+M^Xi}@`>Q$&p>alkwllbmi9ofuA zliGk)TiW`3pe30>X-sBx!6dXVDY5Buo>PV zmUlFsYgxn#7NL5SK?IAZ6M(ZbwS7A`jNX4#0_hLya;jo2H5c!4(}fwhiK(>XC#c?< zV_hXIeQ$}U^oHA0??9p#;$=2-eS<5vSG_z@(oHAgFEpS@y8PgJn0`9S5J!f6I$bqK z6|`pKKLo)uQ`M$JvT;@ejyN#7Q57pSIqqe?xzhGdQP8Fdau9E0y}PdD(4a1^$7G;a zT}Vw4NJpdq(&|0Ee+?$9W@#|ZTNl~4tL(7UV0U2MZmK37D#@1R-6&qjFFk3*fIXeM zROBq0@3NMyslBvc16!@6)Tx)TM>bxEsuUdUlax`v1gFeT*XxzcqyYexXIA@b4JDWR zuh)%lNB%$29j@V6SPlL&=lcp|Y$~P2gx^gn+e>X?qok!9nfZ35O>yfyJx5yKWlB21 zjxzVJR0O>hJ2)&TUEc4c{ELhlt%ve#>>VxAkD3N543s=Ql5la(1`yD7O@#c_+0{uB zE39YTVyU!DZWZ$|H16lniHtLw%LVSM12{rNq4#W78s0u->}}#)P=-nKUj^ndyx$>% zE)YdOWkR}U2!5|lmA5k@N!aKqyRc7^APg-Lz{x7fw9mInlE#!mUofV_p;`PEjj|QB z*~OsigNRgp=)=hxO;ScmIVbcI z2GUU^xB0li864LeLEpGnokMDN0p8DTXOGON^}*{VqUMK~!uOhy;X4XB7gDN_2u?9T zM*oVy7N5R#e$-&KS58PYmLM1IeJvK@b!(U38S~&(*q)y{PqC;BADXJK7bUfL47=5T z=6p^iaP06x+Vm|Fx(^a$s5r<2_)XCpGP_-{?r11^k2@b+j!)4nUsbY%S%vz)C`|B( zpT;dbg;}MDHkkswdWX(h>^{_nV7a_U-Z%B@E6-3=njRLb}3T5f+6hE>*-#LCYd9b-aD_Hcu_au6=37t_STy< z`w&X)2V=13>uH#IXHM?23|aFwJ(y4XqV;a>-nG@H&?_=$S6w~JKlhsC2Jlog*zgnw z?UeTXpZpL=(1RsOPJ)f!sNtpnA5GUK|GiAh>qvzVTh}vsIV+KdqdcF(TjZ36RvGi` zi*da%`Oi524tK989KW>8i|OzqtlcIv$T6RWgzKR$Md#j0w!Wr|98nxhyGc|qc64eG_zEmU#>avvWk@!L%oVFxgAYYd53&s^$UIban9A~ zj`J)&T}{swooL}1raWeX=wi!`V-L-8QccV10vW!jZS_V_?Xq`X|1*@pty@)P8w8i4 zdT`e-`Jduf4)Fw^!LK_lKzWp9HW?W1@oa7^5Sj!r?F23t5Ovr9p{5Ts966wwKO~~R z?Zd$b96JL~TOh55xGWV)Av^e}XkR6)C?l7cV^f&g8y+G!Z_Ey7QBs71wy%bUrr{|5 z^(HTxE>+7}Sx16DMF`pU{v!`hL6q+TlqZG2^q6)E3OW%};sv<42oolZi^<6C8aO0^ z4;+%ZcFhXpX3A!`;y8Ihlj;No4nw$-X?V!e&MkhJSEFINI)i5y*Uvu>@7;MwF$5e~$l@M1F*ERsH3g3Z?u@XRWtnnh%k@V_D@}tbZk~E#nRfYY!I;XjFCKCG^uB|WiwfVw|<<-D{xznnMw%=FJ~AWKkmmk%cG`c3m8FcnS+vqBLdWcKRPlw4Ts77mtSBL37-hg>GYm_){53$&gqV3q`0u zADm&67n(zt!l>w~8~k2Wex2nEz+!L0+oWJ_9q#mks#NjHv`(6{W0O!ig0fve<-KTe z&xuq_hLrw+>>Qj)Bq|-zpj{iRuB#wH(rk%Q4oO~xouBEpJ+#prYfculfCPPZ;CO~I zT+0e6FXXrLkOD9S9N5Ale7$ckWTW2LgZK>^bJs5ZHY$@ty?jUQ=c?D^Bq&2)k(mv| zgek{n!MYCC;%zJ)qH_W@P*V+QdYG5>0YCt%s;5gC7xmLQuJum@3Ym+JY}>zCCbw*& zRIPd32qD@vR=!ERJA+8Zbj`bH(xe%GCEo{2;O|ARe!Q7SFUN@Lrz#5ctUtVuA>--3 zszo(l9a*YFcF<`sbK#=~>wW_rKqe-<(qI!h$Ca4&M&L{xoN|dv#%%mlYih*0px!d( zqfgc>dqQ^BlM3SR!wVr9c-aW7;d;Q&IAToAlq^KBf`Z#rKPIEqY|>;>uy;Lfy1k?= zr|lqXhn;wXPzCGc>_-N;0ol-nF9}kSnD&q(CfJrDvIcy8w$ksl10=z*D|d15oWE^D zS1uqQZ6t+b#X@L?)&ZRb+B~*E0i7@{o=b3X0+Tyz4zzeP9!8<sC^Jt3GhqT3r0 zftLdbtgQ1=h?Cza)~9Gp-~oqSEw@VB4J}wv$JE}bg^5M24`m$>_is|nGD9>Hr(D#0oAtZz z?r>d{*>pH1+%b_$fN(*bo@2OJ7nU1O@vI!u);-}0F(@=Ps!F6V+_QFtU3zHxZjf#M zN}T9gV-J-`0X?x= z&C)A}Zb@Y{^P29f0LcIc;KZ|^@)0jS$@5CeI#qVwk1h;vbI|+_w0420$VOS>;(VBc zxe`eH%kPj|0UD<#-Q%)E>?59T7UT<(tt8F#=z$t22+K<`9SAah1Lc}5d z6=g5RDwfn)RR`=chuPIE5LxS*{9n0v`;?5WgbxnshK#_FGbP-0EI?zQ)uOJb2(*`S zG_wy*#^o>>0(`>A_lgR+Ecg3W4FhG0veHf#y|6Kv9@R}4$q$4rs|_i6%5gXi-QRb3 z*Kmula$R~owHW-4k_UG9LFrc)z6bo0*xd3T%B&7FtxYUmI7;vj4~a; z#&LU%0?+W}xmJw*U1OG6pdziD^ar7X_ zjSk|s-@G7H)ehb*N?HXls+J`=Tnjx_=21jhiw;S$jLIsV|60SWXJ)gJTj3}j zklwO9y_fBVj6n-V>}vJODg3*0`DHatMG7Qe?P@}gU9Xj>PY!$1s?lZ5`^BQjb@0nJ zdbR{cmX;f0eiPto5aJB8>qPrWL!P)e5k=C$rt}G8<^rNIFk>%{DL{)rndjln7w4p& zVXwa(8944#-*2k4pz3Q(H?!O<`6Z>P_T!7?OHL|x?y1f1UcI4vGadI$#HwuB{FpD* z3cys_sGF;e+`}u8s`B+p+Z>VcA}yNLV+^o}hF>rIi-ya^z69fLxv#orC_8l1urAtZ zLB!75pKjMk}>@%N$k@AA#k^yWJ|oiNbGZP0*F*TI;7 zQ*0FAxSu<~U85Nncv>5g2qP+8s@< zFs<-w^O=M-KgHvJTcvUDW4?K)C0KSPr3If^VXFwj+7q$u6F>5Rdg-HtHVBAwALUk>$7_oAI~)wiZA0#+jBh zZS}Zw_J`=I@jx~Y#*Ib)ZPOsNsiZ;j{Sx}V-zntlr4^S7^XHs4yl4qt8s-VY%~;#K zeYiy;2;Q@-7RK`Ui@{PkA>DLNB6*YL2`te9zrZricTJ_fkLRP3%y7zRYkevX>lCFc z@?D=Cts1@YgKxBb9^k0h+SNL2ON@G1gC+{5W5ed!F5R~c&Kk$kDV>$%%0&sKy^9{16pI=O3 zBc+PWEYCr22pM*86&JVtKY!4qC%BduL`EVl`R05d+)CHodef$5)~OTfTRmA1xE&7` z+I)rYchiQpwSitY-DhZAE`Ldz`00lkTluG%!OskeyZ|*9UQ90!$yFeWFv&XIyB#M7 zP^Cfr3{E{zktN)T_Pl9qRCgLLd#94CI*;aQldO{pvj;%Uq5+K?pBI@$keS_D=g$^M ztCRKsg$?P+XkF4O?iuxVIQJhB*|x2a{$y--ULoUm<^~#zQ38w{t=n?YP!YWq7xeK` zgvg_7NRVQ4JaV<*CsfuFf3T2ekl<(%xj07W8#8dI$sgs*dCV z4Ov@J1}v`rr5E+yqwuz1|xw6HEB`n2dHXs%T{5YZ3)@aw0N@O%c3Nb19@qcz;GU3rl=5ZE)ITy`o zG}#Sl3K4ikG&+3Mq(d~5zl?5gF6(>t1#lq}dB7ZFOB0bIWZD&2->yD?9RHYt^QG5QFN9b77g-0damy*5xkH@vrli*=x`^}SK2te{CV$@84YJ{v% z^+02dCQo<4!R4w#zCWg>vD6}ynBDU<#0x<6Ss z>sY-_4N}0~eGk&N>K87~YS3Y@JFqJyf*t_u#1Grv*}X8s?+{yg|^ z#~vWefVz|H1#hb>aKF6=zc?%6xz zHOIc(F82(?-Svll`@^%(;(uwHJ1F@sOZk&KI0butG zS;o9YK=s2_w474c^thwhBgabWqysP!BaZJ6zI)Gn{ZXajfOUw>!5rK&Ggz3HT=_t@ zWYX~Ji%4XQ4OwKV^s16ltI^J1rORp#>SA-EQQKfTllaX~@k0cX3QK*?$+kOxRdHk* z%A^7JiCyA}mxGbiAKW7v?P?+n(mbDG19*L~-`ta=oRy3KJII&JG+jsd|1bt5gJB^* z**$8{1WWS_Wk5{IQ%CBWM@#4W6zDC-Us)-wPA)nkq`&w;XYlvmCUzVx8kDMn##-@M z6t~Vz+Lshy@vJEUZK(Wk$v%9i$i}@Y>tPOY3`+m&Mi-17GVSYlO8r3U>zw!Ab4-pN z=cV8wUM+U*Y*ck%HOSgx7RXTckzgBnf-4l|X10)s8$wCyNL+`kf?bbHJHWM5$R+km zdZ`6jV;v32z&WeAXm>lcQMxTd(9GIP%e%&x1o>Curqz{FX$M)`uiL6vyXE_w74S{F z9_8!MSJTROWDS#Qp(M4rt_PKqcz5}FMXVr8r5!nMjC&9Fpad36svv7wUBEG%zJtvL z4K7oI2>4v!nBdWQ{~1+#BWPJnNSDj-hCP73d2hz;T0e4bOt$mmj5md&lD zT=qGi@YtU-V|kGW+hkX00N)$Ipp9JOAe6tnUI((-P%S4uqb@O4I#Wm<5q{Q{eM@Cc zpY6~8_{iK1Y<(O8N8r)e?K@PMUJPzVRnr5`S{BFLJM%QP8JWgY=b@B6ueD07gBqAZ5w0qT&$|)2NkPXJnZ0pyS%uhIi9zg>W(qMbD)6@@Fgev?@6ySo6f1aytD<%PVCK` zHvHW}7;@?pB-5&uWsWC>BQ>=hB5u5yWp`iIT@j2?;eWGQvK19gaL*?k!ucSesuo(> z?>#$Wpo%ICFcD)TG2j39iEZh72bhzny6RM2Bl(%*eD;`}!?X5e_+r+b7h#KO*?DWg z5VvR`t|b4d%IZq^4#KaW`p%^_67yUq7y;* z6DyO-US$T(_ERfB84JljvGF?9CWoZ;kjzo0^Q*Ks+{~j|m>y481(cb^XpuB;0Gi%I z_3v(rua{1hz@^<9_t<{F63c#C8NLsmiQ!p4f6-!muwEm6nu@aJyx-iJ4Yc{1KGIke zAlv@egH^~`Ip(u z#}Z(%+nyGrwJXjr-kY|^eP z9NuiCm{pS+b%*NwxqEEFs&H^l?0;BBO9EkfV2@&hi-CeasJQ+D`4`H}zHu0)R)V@> zJ@Mk};;@f8o8#^$9EbG7*9z-_`tYmoxL&Sl-0L1KiDU~nJ3BCaOe?+m$Hsq5;rO10 zbsyAc4&h=Ji12AVlkMN|sR8nIXF*B+92Gk;8FUlS4YNxMpTCc&uHKZ$o% z?G8cvqudE-)+o7Xmd#giFZQ7>D|u1c+iQO|vcA zRNln`q0zkeANgG3$2jN2mn<;1{I>-CNjS4?oS)!U9VXwPjO zuZf@K?nqjlf50it9W|ekUM8`}Sg#g1R!YY4GN|z08omM@p`cx@b?toYl>=>C8@Xp* z{P6771RvQPdbjJ>(Zrq`28QfmFpZ(y_QNZ^Dt=VV9u?0=X*M2ccllbueRyXm`4ImL|w zr=GSvX)v2V8I}O^9t;?4BqR{k1D#OJmP7mb*IvtMId8IjZn-+ z!)Ep@wMV=W9`?Cv>1?zqJ-bFqJpVDk%sPW!kGbHNIRQEMwBAYgAavCmflDmwO) z($Tm#a&!k+m3>6K)4r9ltn^MwOuKLjbzc~u)wvb%YTI>ePQ_VKhT72$_#H}RD^_J& zQ=oQ4&x03YWGu&OoMu(lKp{|}ra-lpdH0_w%*19pud`@PR`GtSISqUbVcOm6r;lr? zAd9=ov$!T$vRMzB3l!evv-($Ah|}HImN1~dmeBx0dpIXDz!%TxnNl1_w?8&|ipUBU z<_A0kA@YGUcjZ`AS>Hk_vefz`0V{vs0ebduc!1>{KYzRWSOzsj-#zCu9*eFfoB!he z)0yyYb4&zm%sL@|-?8VbcM4K%{F;O`YjjOAm{4`}>~h~ft>_8-lZXA2 zTfoUh2QDnw4t-_%I3X`O?klRKO-t15|Mv50EgQ9mDD5;chUc&70$16$WPhfq(#Mu% zCOLaNq$p=|sr)zyg1jFa5}%BuO$?2rw}jBe+H5=cJ_gm;rkywewSCcxUW^k&-U)W# z^J)&+G16_Wz24X0z{B=%{SNH!H@=7&E!{n#PlSe9yOz(OH}rHKscQ8q#j>d7=^bFM z5)6^!uK=X5d;(Mhc}E!bbn<^A_ssE>{C0{LCX+<0b!h%RcUmXAGM$Ec3Y7wjE9i-L zo+m&51o1>OV$br4)Z)iT*t7duTNU4 z`;w}Ns76-mYi;y~ z9QrnXGD+I+SKWWLI*nRuPC#ozK2d=&z#%;h2){wjBRLTE;K1vUu5P8v(S459Z|fa- z0XN1t)yj0H%$A~I1Xw>v5NXT<${DOLVWBFm3cQeH%fSgf!f{QV&W&(ODQg!Je8lsQ zEPWE2hcKg;=U1{+mmt5{H!<(}uf4?VyKHMc&JAoiB7nuv3V7NRYm_9t4xd~PUg->) z%{l+MhdJLQlaiq-Ey$WVuN*m|G|a9)-l)@fW3A=m6IXatuF5ple*{U?{!p_-^2(JyMhXcX+arC$K-FJ4%cw`3|2B zn8zXBN&FPt@YKC$^T_>&$tm)U!r%Yd3$)Mpz49SkaED;1=V)E&j8)cVr6s*{Qq%3F zpFEts<+W*cx<0{ML?!-+vBkxhmi%}P_DUvstA03Vr+RgqI3yUS#p2jn=E~+Yu5*j<0iV?E zs>_TEruSvom?I(O2HfCl>M9>)hC3`jMDTgaHGQ`=>Ud^hlD6Knlm$T1LJ38{E2mL_ zf*JgthNNefmGXj~A)OpfTF*s)30pk3;%oYP-!v@CtAZt5Cd7P2GYX&xN8xr}nCCt?=Pri8#?A|e z00u(e2yolnTzq)XgePXP89^LfT6pa%Wlvve)U}WDoZZ*`dA49>kJIt`HFP;YSM@9H zFo?F_=`$Sr|I6&1KhT}9+kHWqY~$nNACvN<{mT$L^NJtg7a6P6TWi`EOd^~q^f3N) zA5XXNWrS&MzAq;H3w#IO2~N=CDQ{=yhtv=Kv)~&O%(hMRO-S?L>*Hjs!Rshl`EiAf z1<+Mrqq1_B{5hoivX%AaEOxhrlog(tJ?|To@{1Nr!jWQ!B6hX+*S-I1i39wuCPS}3 zv)rXJ$NDTMGKW`hE*j7ggHl%H=`GaLJcr-z;a6w{-jq2V31kABK@m+`=KMwwD8)2Q zl`a|1NesR2o!5R-*^&9ZZyMvkkq8jb_I@QVpxoSRGX%uu#~;M2b9}|;)4Jx#T`|u; zpdf29dGD-8ADK7tf8p<^nLg3+>>tEyJZ?X8tv+IKqQ!4DjVWKKj`YrGq`dB7^xt$v z*Sg``(uK0RP_P}lu&`&3`p&ZcYykpUH`Uohz2#dKcby!CCT2~mCkZUu#Uh}z$XBMP z?TmV`El-w{4U=(k(NkpgHy*z?%OM{2X9?lMa_S!U$=Ch!BCPH#Yh~gd;NB@;Xw{v5 zBF_+MkopIIEzE%VCknM#c#b0{nb02KF@uu=j!eOno5}$y$LQ~i1$iaT**w%4{q)B(58Ee z!JXO4qvRAjv)x-&lG$mUF(rzo*3yLxIZtJV9``wbJZxnaa|()XYoJtwRqm1X4e4M& z0)R+PGohhea%ApSl@m!>4>=KrT1k&fD4r8sO#7eA8o8nZrfY8TP;1@$OMz)^*OgBD zp&Gj;U%++Db{AIGOiuW>wh3Ge#);8c!?W0~^XB!myaYMnUpFJrm@W@PiV~{5ltbE> zOtwIjvI4y6>afw)qt%;DyOLw;Rt-Ec@3l<yOCKM+>ZW$D?Mu4~AU^VK%p1KfN#6w9Ic?@|Bh( zwKc(=-eV5A+Zs+wrqG~S%2W~K{SJQ_eP)0-t&{ zJ_7^{znR-wRVW2U_Ep&~74Fh(ImC2JSQUHo`BE~8Mj85V8)VN7M>^oojmv|WV8K`c z*~Ol#flRB#Keo^w)B&B&9&^ir+jy?SPhle$FhrQ zXR;;0Dz>9e!u+0YmF}gelS$$s)spWS{a23*G=JkQ8NEaAxufp1*Y@;Wg|XIN+(6Di zM5FB71I8=sXP_+wa@2}bA-d{OZcx{Oz*+(-#`4!IXxWuqC;@_RI!rq06W~~VJo7~o zp;m)Ubpy3ltmlqe5$0t7q;+Hz2+O}7NiW!)0r9J3wTYmvs+ACkAi_4c{r*R`Lhk}- zpK@a|sEk%Z33jmfXyj>Jm$a5703WR)W=B%0o~5qC5j9(i*Kz zfW^90!?Q?$aG@`Z9cg~wCshTqz|m*e-O0{MRFUUTZM-wB~ubqn4U~o9=O7$JiUGyhE&0gWeBp!8m<$OfrDWtfLb$x=$8L{rc zN5vzAY4ERA94RITT+2v*2jD&(oXjyn7}B(SKvly33_-z-zP@n!MK73lETt#2IT^oN zTmdv%X;ctCRJkclXy|#AM^WbTKe$3&?ccCiUd&C9MdrH|K&S?t{x{YGnND~*L^DH9 z!5Rhi;;TXEu)jR4Wsm>nC%-_nxWu2T90>(A$xce|F;B0!2B`g@#YXY0LxCQue-NC2 zJOtn$#MOeB2FZD+{{Iv>(2$Hqs;FVECuS4uE$QUu6rp4P-9a51A6jy}-qt@L2ks`r zHV@1EBvo=t47mP4o1*Z)k{t=QI>_6?-VA@ialFr^3zQ16{H;g@-uVvg%p*Y3{dcgp z?_n-Rm%(hpds}40Ld+JryEU=Rkea`6GSAd@D{jz&N@Tv(2wuFgMv_rf5nrl z#Xodp<2J-?=TtoIIQw2*YZ1%ajC+cBuao2ShB+-ShuMT$0_3!OvTHM(v5>|%%AQ?2 z6zb@dh?ZMa%FXz+^wB2OJrhs#UgT=JJxlNP{=BJeQU8^}2kbijOCLsreIKzunNAwz z6qKN%yUdqnuK(mKG^Q-hYBF_ToNzpi^a{q^D)JXhp_+!7H%TRSdk5Fu^Hs@yz5GdF zHn5rbr=+B8#_O45+TdId?(9j=j;FUEG?2&kKYEh?7g3;OufhqFjVw6(*lrWJLrDK~=Dv!TSV7 z*|-MoF6EcX)Fo1nPWHwb7CiafeIQ7LT4**};@2#Lb(a>>Fiv1~4%#t)w2(T3OmO^a z(KT^0uZK$m{nyLPiqdmIz1H;C!f*UAIVV+jKcB~)WPj%oPiZn-eyK&M+XC9l)RaDo zV#|tqDXuT11{Pn;uYX9~=`qArZL8Zmt=F*hkiePU{lB6R+jovB~?}g_XMKk6{X-Xe!ftI z5B1NveVJ$PP^|hlm90JN_gSk3HNHzxt-8&h#|NHr$xIwKN2BCOic<11 z@C1y;1MKVpjx_D6@FdY0?8+08(zsXkndIxCLT1mKGuSCaU8%qL8lK-()-OS7l+i%K z^yg{?lFfZqa(LE(1gT&=03Vt@ynJ8D<+)NmJR2-Bd$-T2EhzEXbAHTlqT+wcGV36j#vu*gK$@sL+q-07TOD8B*STK_jF|Bcrsf%KD<;fCUf=hWiVp~6$ z_VVV<5at{LxX>mdS_dYEwfv51EHr!Nu6;Goe&fk2@Y%ikgMvoGW?hNxBo$4;IJEuN zGCU(MEA&c_c6?d$ul!8)8^MJF@9r1RJaUNwfC~9mHO?w$kL`l}bFCZ$)9lPvr=(&; z+b!~x6%15wGn1JkqR+OPKBn9$Y*_)1B(Q1hgA>t}0R3{!<`piI;>DYS^!2vcn z@x@t^hNp7xwCqELLQWTGc(f)UZD|&&!rSOD3jD|rZS%iyC7$qP1tlB5alzr0k3c5{ z{OD$^`_&X@@#-t7`e2kUd3KzHB><)D-Y?g#Oa&3`km>*ruwQ3@nj{=CIU{7uz3`zn z4PLDSo&{~BW8QhA<#?PdP|ewI-<{@dITwL8%69JiyH z_bh#J%YfU!v={-HIjT8neeM)v-1C@(!!@C>hoQtMel;7oT{(gE^S+)5uuZHmVRX9G z!`+Ges-d@j?JNXI)Nd*X9BQ{cNff$A`~ecJ{~smV4$ zejg|8Tawc}bN-xE%TDjDo?O#Ac$5PR7PhNnjEce_?~=8RgL1zgXX0S_Y=7hk!SX*; zzOj)l19wQ)Me4l{|1Yexl*+2$2QzLUj6+#;$D%n@|-{`Z+{nQkYS zT%iNnF|&ahJoKH=l9Qxs;{B9Rp;^M3b$#2jidDMUPx^?3vrbY^c);LfhSySYo7w7w z0y09-w87|u(a_uF9Lq6S$N6!9uZ{T!$BP7>9K{P|hp?l3{QWSB^Mk5Cr2{{|ylFRC zq2-@$E6(&-!yvzBarHRir=!q$gM7lUTO(#-AqjE+^XqpQ(uG3#-$z|v(?hM>vkwv5Z1#&l-y!iz!IA-Err{PsXrf86T!tb2XIR=#?Y74z|{ zs-#0|0iH{1LinNQJM?yNJFg|S*)9w%u`Gudq_Ee+iNVWu5MVA` za{M&0qiBHmump*9GVe%~SjB5PXnS!8UM7oKPAq)}^)TIX^jCf}Mf%Kyk2(pfuQRDX zCDiLQiB>*-EwBFzq!E^b21}0gkgo6R2?WVEc#Y-SCWM82%-`8mj9QL$jX3f{U;+_8 zWqWpOCbUtuL*CwGIx!6M%z6ilQ9MdYd3t2b%QPsl25HTi9XDWu=z+swnk6&gX;tpi zQ$h#RzFY}&!5WJVxA<8>0wFyg`ae#UV)}VoMHL8_x;^j6&-s`K7#P1_uV~e3FcBA8 zo*o=L3A*U+15MYp1&7lTJ1I$65!wW1?g;GPbV}G914>K&#EZ5nTP4R3mlA0r_@B2W z09vEHM{g}&q)4~D>`u%#!JNwA=fPI$=bu1-JBh(lo049?srRtZpM%58SP*QXffEP* zv6EFTSSBE>qk{aLsm}Ys{Jc#a8=P@=&egWolfH6Fl%xL`4dm6`1q8I6&dzZHZ|zx` zJFg}RkOS|1N>6`9M^K-9^w_U8$1E~|iE{naZE>S4=y{$Ng+LYQp^m*MhsAeSqw4`% z{Pf@5L%Nuri@%h#S4AQ ziNySiV^Xgd+)HseMplNC#R#bXTPoY$S@wW%EOhh|^jJukPd>bi11agfD#cXB^iCy6 zZ)8;1)`K-9dI==6)!q!pzAu2v3lWQ_ES6X*1q^IVq--Q^9Ev>AH10ae0=Ymg{M`yYk$!zI0=r4_BbTq1D?;{hI=bTlP6=3B^Bb6I$Qs0 z)86)KMM<|!S<2`elg?#Ll$rvNzUR^`IZ_K$L!s+#TL0D9BTfRB*TTSAvGx6fUfsE*GTa;viGc}l**8%v!Min+ za_b4vtU-!a0F)YT9zmDmfgd2=PXjfpDUmhN+6dTvF8%vh1AW>675QK~Q5e%;7;5S7 zbP_^u+9!qx1ArmqZ{p^sU-Qtd$ZU0hg*`~ylRqVz>-0c6iG~?0dYvL0@AHmS4BwCNonBvl7&ASwOvd}0mpI5 zL)*%mD*BN8-BthLdai`h^2(^wW&FG6)vwKtW1MBiniP0qjp5`A(I(&#GMP}DE`xL~ zl2iJ91GgvPE&0|rwJHQRd3sBJa+|J-FfI2;e-!*y6pVkg`VC`gOhoqL&;A12aX6;V z8n9#0!ORxij^MsKC$wY-zJ*MH<`!`=-ku6g_X*j8#m8p(Pfo_~v*H^qy2g4O^)RSk zh36&b22k^qcz_eZw6!@ddgBq*4`4*Y$fO7Fydg(!G2FUt@%O9;uPb26h1A2)m%nm> zE7AgoqB6g!tbhyqUIyYeQy#sOf(;N@@Kx5M_WFq1>7FGDBHs7TK#%2#rfXFK^ypV*v9N?vODJ0f$r(%kfQ z%eSM0vps*ko}h7M8(-jK=FsuEV9n5&)~zRhkNjs;>6wD5bcp1TZK~5HQI53o7T`18 zgO6py^5nSBU1uatsHOYrKMGS@-1BauSp>|(TzFz8rR@?GR@RfVqe4M!?$PR7aQ;F= z)V(V4A@lz*AyPvqoWMq}?W6im(N?(rjuSN%q|ShVTBN|k7oDMO!Oacb*VCG*2$han zIhb^bRbt9W*MMr?rTdP?@GW3C>ngLT$O^mN0*%8P6x`Ete5c}SsnAHvktBKp0mV!w zrNaTgUpEfsAC>`ryIbkk)Xx2ZRbny{?9Qp(2j2HgNzC*pxOs-vqo``&a)#gNXFi|b zAB-R)03WTsixGjMjfG)1W=Zvr=c0ukF917xj+>cdD`VVB>}0}i`hWog7(5(0wHeOj zTPvB0n|$Bzr{vcS_&hAv@;99t&M-SzZ7=m_p7>74$(Rz+IcV*H+qPoy%?%XVBHMUeK# z8=PM_aS+~)LXm%3V)fZa>m4gWYWz*l zofM)=#s)@-OBE6Ih<)tf2^gmstmiy?@qG>0ZW_LYUxij0vgdW90>^?*b;PqZJmHwR z73l?-sH)cs!e>5%uYTag!Itx%m&t3;Sv&oMsbAWw{NTnQTunf@B!<5$gFAX!;!iGq z$E|Ti35c(zqD%g8ug#NH*^2`2b7jb}ksc(EygbxtDZ{X7ln_n{^?JkuVq6pP=lMoT z(_kx-%2&Y_NODRGt%p!!)uB|lvLjBgk=JB}VKZRC95`$vq)Oas^ZqL!$^LJYp3PTz zd)Q5IyBe3{GLqrdb9LVe;&{W;+Tj7Y!imMv?^zw+H0S+FqB2a6Wi9N;EBXVTV{vZXI3o7E z(YD!>G}c8Hf}72nbb@{i17wl&L8N@$`#le93BNclJl^=y^SZP%v6Qs&nBopEqh6TJ z0Z|HK<`DMd3K3j1)8k8FTCqV@Mr5C_bABG%=)K{EvyhPaLKJB1_J*agUHG(IQ>uBS zywQehBL~+jCRHX~A0s$_xCR&*Y~ef(XaOpQD!I@%r`2xO$oGX&EA~fCv4DXHj{rxq zcSK&Lq1SzL|0a^&!pUQDhzix@16 zc5{!$FCxNqNA=Y*m>Z{cITPWnYc>30Rkr%@2PF2!MDCf1vYLq*z58C#Xc}y>pKnBo z2z~`guq-z8QW~6WVtVdFvQh3?pPm_n7?M z8dvq2kS!ily;Tij*x}?IfB^PR{Q=O>gC zU`ukn*!4jr0d}DD`h9&Qw+Wp!oJkY| zkOs(peOfJiTG4q1sFR>tc*H*SaXE0GU(+ymwI)UBl%}nj4j6El*T0B*saNft&4|_A z1$Lzf8a8xMS8>@BBt>_|MYu(twVH*emu%K()OAm$wUyWXxl(=_SAB*$k0?K6F0iZS z{s;6_!gjl-Zj8GZ9cCYH`)ixA(t48@T;?-*bG>$zez=OA**(i#DLK(!y`lXR@q=S4 z3$Mfq*I1BOn4y9%^CLt7vtyRDlQcAyX<9ayuiS>!lj1q4YI|GRd#{&DL=B0u<+!VI zQ8EY6sgr5%1Ok7vc`zw)vl*mNV`0K46|$BvRbc1yHGRi2)!>|BnO5feOhlc+RN?Fq zcTT#tLqM8}C&tdL@x)0+-v_c3o|=tbl>fPgltBf#%jl?2N0XOw#qj*Fp7CD4sAK4biS2n2M#Ld!>b^mP*rHmFEr8>Yjk>WAlWPY3&reLSvxtA1oUmf zvkvyPKKCaeg>VIzrZU821qwN%;fFpl0Ts3ECh8U5T|-X7$iKOS?~l^8em@qnm~%E} z$!J>zn=4fk$-f;B%a~E?t#OIW@X-$#0UpUW7a$`HA_#cSW{Ux32X5G~!bGA*My7LG zw?4Fs9!7O0ij6|@=89LV?_RS7>`59@fG_N-)~V+7n

    2. Bmoi9z_U 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 RRj5U`fr+w!Wq;L87#Bq%tgzaaYz@cpu{T*yUGr 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 ^5V1CU#J%`)5=O(V- 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 literal 0 HcmV?d00001 diff --git a/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/panda.ttm b/easi/tasks/ebmanipulation/vendor/amsolver/robot_ttms/panda.ttm new file mode 100644 index 0000000000000000000000000000000000000000..673d01d16ef12d08d9240e1c19b0d970234cf9d9 GIT binary patch literal 474146 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�pP%&oJNvQkwTG?q?GsS_acr8| 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�$CZAA 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ÙWTT>+u&bK{n)R2x@dKVK}lCKFT_CN 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

      vZb$90Wq`?GsD*ST%-Le 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�Gu)?a96=mK{k08M*{FBf;W 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

    LtNXYRLEkr})6 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