From 0757c653d2cbdc3c5f67a61f724e9ae747a862e7 Mon Sep 17 00:00:00 2001 From: sriyash421 Date: Tue, 28 Apr 2026 11:21:06 -0700 Subject: [PATCH 01/22] UWLab updated --- .gitmodules | 3 + diffusion_policy | 1 + run.sh | 24 + run_incontext_exploration.py | 527 ++++++++++++++++++ scripts_v2/tools/collect_demos.py | 270 +++++++-- scripts_v2/tools/eval_distilled_policy.py | 355 +++++++----- .../datasets/zarr_dataset_file_handler.py | 4 + .../ur5e_robotiq_2f85_gripper.py | 2 +- .../uwlab_rl/uwlab_rl/wrappers/diffusion.py | 189 +++++-- .../config/ur5e_robotiq_2f85/__init__.py | 21 + .../ur5e_robotiq_2f85/agents/rsl_rl_cfg.py | 2 +- .../data_collection_tactile_cfg.py | 419 ++++++++++++++ .../omnireset/mdp/observations.py | 31 ++ .../omnireset/mdp/recorders/recorders.py | 19 + .../omnireset/mdp/recorders/recorders_cfg.py | 7 +- 15 files changed, 1641 insertions(+), 233 deletions(-) create mode 100644 .gitmodules create mode 160000 diffusion_policy create mode 100644 run.sh create mode 100644 run_incontext_exploration.py create mode 100644 source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..af380be5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "diffusion_policy"] + path = diffusion_policy + url = git@github.com:sriyash421/diffusion_policy.git diff --git a/diffusion_policy b/diffusion_policy new file mode 160000 index 00000000..2ed8e43a --- /dev/null +++ b/diffusion_policy @@ -0,0 +1 @@ +Subproject commit 2ed8e43ae211ccef90fe8dfd758fb811546358a7 diff --git a/run.sh b/run.sh new file mode 100644 index 00000000..846877ee --- /dev/null +++ b/run.sh @@ -0,0 +1,24 @@ + +exp_name="pomdp_tactile_peg_insertion" +sched="fixed" +mkdir -p logs/$exp_name +for seed in 0; do + python run_incontext_exploration.py \ + --data_task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-Tactile-DataCollection-v0 \ + --eval_task OmniReset-Ur5eRobotiq2f85-RelCartesianOSCScaled-Tactile-Play-v0 \ + --expert_policy_checkpoint logs/exported/policy.pt \ + --num_demos 8192 \ + --num_data_envs 256 \ + --num_eval_envs 1 \ + --num_eval_episodes 64 \ + --config_dir diffusion_policy/diffusion_policy/config \ + --config_name in_context_exploration_tactile_base.yaml \ + --output_dir logs/$exp_name \ + --exp_name $exp_name \ + --insertive_object peg \ + --receptive_object peghole \ + --expert_noise 0.0 \ + --schedule $sched \ + --max_iterations 6 \ + --no_video --seed $seed +done \ No newline at end of file diff --git a/run_incontext_exploration.py b/run_incontext_exploration.py new file mode 100644 index 00000000..904a3b0c --- /dev/null +++ b/run_incontext_exploration.py @@ -0,0 +1,527 @@ +import argparse +import os +import subprocess +import datetime + +def collect_demos( + task: str, + dataset_file: str, + num_envs: int, + num_demos: int, + min_exploration_horizon: float, + max_exploration_horizon: float, + episode_length_s: float, + expert_path: str = "logs/policy_peg_final_v4.pt", + insertive_object: str = "cube", + receptive_object: str = None, + exploration_checkpoint: str = None, + no_video: bool = False, + seed: int = 0, + expert_noise: float = 0.0, +): + command = [ + "python", + "scripts_v2/tools/collect_demos.py", + "--task", + task, + "--dataset_file", + dataset_file, + "--num_envs", + str(num_envs), + "--num_demos", + str(num_demos), + "--headless", + "--seed", + str(seed), + f"--expert_noise", + str(expert_noise), + f"env.scene.insertive_object={insertive_object}", + f"--max_exploration_horizon", + str(max_exploration_horizon), + f"--min_exploration_horizon", + str(min_exploration_horizon), + f"--episode_length_s", + str(episode_length_s), + "agent.algorithm.offline_algorithm_cfg.behavior_cloning_cfg.experts_path=[\"" + + expert_path + + "\"]", + ] + if exploration_checkpoint is not None: + command += [ + "--exploration_checkpoint", + exploration_checkpoint, + ] + if receptive_object is not None: + command += [f"env.scene.receptive_object={receptive_object}"] + if not no_video: + command += ["--save_video", "--enable_cameras"] + + demos = subprocess.run(command) + if demos.returncode != 0: + print("Demo collection process failed with return code:", demos.returncode) + exit(1) + + print("Demo collection process finished with return code:", demos.returncode) + +def visualize_demos( + dataset_file: str, + video_path: str, + num_videos: int, + wandb_project: str, + wandb_group: str, + exp_name: str, + iteration: int +): + subprocess.run( + [ + "python", + "scripts_v2/tools/conversions/convert_zarr_video.py", + dataset_file, + video_path, + str(num_videos), + ] + ) + # push the video to wandb + import wandb + wandb.init(project=wandb_project, group=wandb_group, + config={"iteration": iteration, "exp_name": exp_name}) + wandb.log({"demo_videos": wandb.Video(video_path)}) + wandb.finish() + +def train_policy( + config_name, + config_dir, + output_dir, + dataset_config, + wandb_project: str, + wandb_group: str, + exp_name: str, + lr: float, + pretrained_checkpoint=None, + seed: int = 0, + iteration: int = 0, +): + + dataset_str = "task.dataset.dataset_config=[" + for data in dataset_config: + dataset_str += "{dataset_dir: " + data["dataset_dir"] + ", sampling_ratio: " + str(data["sampling_ratio"]) + "}," + dataset_str = dataset_str[:-1] + "]" + + command = [ + "python", + "diffusion_policy/train.py", + "--config-name", + config_name, + "--config-dir", + config_dir, + "output_dir=" + output_dir, + dataset_str, + "name=" + exp_name, + "exp_name=" + exp_name, + "logging.project=" + wandb_project, + "logging.group=" + wandb_group, + "optimizer.lr=" + str(lr), + "seed=" + str(seed), + "iteration=" + str(iteration), + ] + + if pretrained_checkpoint is not None: + pretrained_checkpoint_str = "checkpoint.pretrained_ckpt_path=" + pretrained_checkpoint + command.append(pretrained_checkpoint_str) + + # wait for the process to complete + train_process_return = subprocess.run(command) + if train_process_return.returncode != 0: + print("Training process failed with return code:", train_process_return.returncode) + exit(1) + print("Training process finished with return code:", train_process_return.returncode) + +def eval_policy( + task: str, + checkpoint: str, + num_trajectories: int, + num_envs: int, + exp_name: str, + wandb_project: str, + wandb_group: str, + episode_length_s: float = 24.0, + insertive_object: str = "cube", + receptive_object: str | None = None, + no_video: bool = False, + seed: int = 0, + iteration: int = 0, +): + command = [ + "python", + "scripts_v2/tools/eval_distilled_policy.py", + "--task", + task, + "--seed", + str(seed), + "--num_trajectories", + str(num_trajectories), + "--num_envs", + str(num_envs), + "--headless", + f"env.scene.insertive_object={insertive_object}", + "--exp_name", + exp_name, + "--wandb_project", + wandb_project, + "--wandb_group", + wandb_group, + "--checkpoint", + checkpoint, + "--episode_length_s", + str(episode_length_s), + "--iteration", + str(iteration), + ] + if receptive_object is not None: + command += [f"env.scene.receptive_object={receptive_object}"] + # if not no_video: + command += ["--save_video", "--enable_cameras"] + + eval_process = subprocess.run(command) + if eval_process.returncode != 0: + print("Evaluation process failed with return code:", eval_process.returncode) + exit(1) + print("Evaluation process finished with return code:", eval_process.returncode) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser("Run in-context exploration and collect demos") + + """ + Script asks for expert policy checkpoint (with default value), num_demos, path to config, config name, output dir for dataset and checkpoints, exp_name, + and path to initial dataset + """ + parser.add_argument( + "--data_task", type=str, default="OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-RGB-DataCollection-v0", help="Data collection task name" + ) + parser.add_argument("--eval_task", type=str, default="OmniReset-Ur5eRobotiq2f85-RelCartesianOSCScaled-RGB-Play-v0", help="Evaluation task name") + parser.add_argument( + "--expert_policy_checkpoint", default="logs/policy_cube_final_v4.pt", help="Path to expert policy checkpoint" + ) + parser.add_argument( + "--num_demos", type=int, default=10, help="Number of demos to collect" + ) + parser.add_argument( + "--num_data_envs", type=int, default=2, help="Number of parallel environments for data collection" + ) + parser.add_argument( + "--num_eval_envs", type=int, default=2, help="Number of parallel environments for evaluation" + ) + parser.add_argument( + "--num_eval_episodes", type=int, default=10, help="Number of evaluation episodes" + ) + parser.add_argument( + "--config_dir", + type=str, + default="diffusion_policy/diffusion_policy/config", + help="Path to config directory", + ) + parser.add_argument( + "--config_name", + type=str, + default="incontext_exploration_debug.yaml", + help="Name of the config file", + ) + parser.add_argument( + "--output_dir", + type=str, + default="logs/incontext_exploration_debug", + help="Directory to save output logs and models", + ) + parser.add_argument( + "--initial_dataset_path", + type=str, + default=None, + help="Path to initial dataset for training the policy", + ) + parser.add_argument( + "--exp_name", + type=str, + default="incontext_exploration_debug", + help="Experiment name for logging", + ) + parser.add_argument( + "--wandb_project", + type=str, + default="incontext_exploration", + help="Wandb project name", + ) + parser.add_argument( + "--not_use_pretrained_checkpoint", + action="store_true", + help="If set, do not use pretrained checkpoint for training", + ) + # parser.add_argument( + # "--episode_length_s", + # type=float, + # default=16.0, + # help="Episode length in seconds", + # ) + # parser.add_argument( + # "--episode_length_s_increment", + # type=float, + # default=4.0, + # help="Episode length increment after each iteration", + # ) + parser.add_argument( + "--no_video", + action="store_true", + help="If set, do not save videos during evaluation", + ) + parser.add_argument( + "--insertive_object", + type=str, + default="cube", + help="Insertive object type", + ) + parser.add_argument( + "--receptive_object", + type=str, + default=None, + help="Receptive object type", + ) + parser.add_argument( + "--seed", + type=int, + default=0, + help="Random seed for environment", + ) + parser.add_argument("--start_iteration", type=int, default=None, help="Starting iteration number") + parser.add_argument("--checkpoint_dir", type=str, default=None, help="Directory of run to resmume from") + parser.add_argument( + "--max_iterations", + type=int, + default=3, + help="Maximum number of iterations to run", + ) + parser.add_argument( + "--expert_noise", + type=float, + default=0.0, + help="Noise level for the expert policy" + ) + parser.add_argument( + "--schedule", + type=str, + default="default", + help="Schedule for curriculum. Options: fixed, linear, exponential", + ) + args = parser.parse_args() + + # CONSTANTS / CURRICULUM SETTINGS + sampling_ratio_curriculum = [ + (1.0, ), + (0.25, 0.75), + (0.2, 0.3, 0.5), + (0.1, 0.2, 0.3, 0.4), + (0.05, 0.1, 0.2, 0.25, 0.4), + ((0.05, 0.1, 0.15, 0.15, 0.2, 0.45),) + # (0.4, 0.3, 0.2, 0.1), + ] + + lrs = [ + 1e-4, + 1e-5, + 1e-5, + 1e-5, + 1e-5 + ] + + horizons = [ + (0.2, 0.5), + (0.3, 0.8), + (0.4, 0.9) + ] + episode_length_s = [ + 5.0, + 7.0, + 8.0 + ] + if args.schedule == "fixed": + episode_length_s = [16.0, 16.0, 16.0, 16.0, 16.0] + horizons = [ + (0.2, 0.5), + (0.3, 0.7), + (0.4, 0.9), + (0.5, 0.95), + (0.6, 0.95) + ] + elif args.schedule == "fixed2": + episode_length_s = [8.0, 8.0, 8.0] + horizons = [ + (0.2, 0.2), + (0.5, 0.5), + (0.8, 0.8) + ] + elif args.schedule == "fixed3": + # episode_length_s = [8.0, 8.0, 8.0] + horizons = [ + (0.5, 0.5), + (0.5, 0.5), + (0.5, 0.5), + ] + + + + exp_name = args.exp_name + wandb_project = args.wandb_project + + if args.start_iteration is not None: + assert args.checkpoint_dir is not None, "If start_iteration is provided, checkpoint_dir must also be provided" + assert args.start_iteration > 0, "start_iteration must be greater than 0" + assert args.start_iteration < args.max_iterations, "start_iteration must be less than max_iterations" + assert len(sampling_ratio_curriculum) >= args.max_iterations, "sampling_ratio_curriculum length must be >= max_iterations" + assert len(lrs) >= args.max_iterations, "lrs length must be >= max_iterations" + assert len(horizons) >= args.max_iterations - 1, "horizons length must be >= max_iterations - 1" + assert len(episode_length_s) >= args.max_iterations - 1, "episode_length_s length must be >= max_iterations - 1" + + base_output_dir = args.checkpoint_dir + args.initial_dataset_path = os.path.join( + base_output_dir, f"dataset-iteration-{args.start_iteration}" + ) + exploration_checkpoint = os.path.join( + base_output_dir, f"iteration_{args.start_iteration - 1}", "checkpoints", "step_0040000.ckpt" + ) + # collect demos using the provided checkpoint for this iteration + dataset_path = os.path.join(base_output_dir, f"dataset-iteration-{args.start_iteration}") + collect_demos( + task=args.data_task, + dataset_file=os.path.join(dataset_path, "data.zarr"), + num_envs=args.num_data_envs, + num_demos=args.num_demos, + min_exploration_horizon=0.4, + max_exploration_horizon=0.9, + episode_length_s=8.0, + expert_path=args.expert_policy_checkpoint, + exploration_checkpoint=exploration_checkpoint, + insertive_object=args.insertive_object, + receptive_object=args.receptive_object, + no_video=args.no_video, + seed=args.seed, + expert_noise=args.expert_noise, + ) + dataset_paths = [f"{base_output_dir}/dataset-iteration-{i}" for i in range(args.start_iteration + 1)] + iteration_checkpoint = exploration_checkpoint + start_iteration = args.start_iteration + else: + base_output_dir = os.path.join(args.output_dir, exp_name, datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")) + os.makedirs(base_output_dir, exist_ok=True) + # if initial dataset path is none, collect demos using expert policy + if args.initial_dataset_path is None: + dataset_path = os.path.join(base_output_dir, "dataset-iteration-0") + collect_demos( + task=args.data_task, + dataset_file=os.path.join(dataset_path, "data.zarr"), + num_envs=args.num_data_envs, + num_demos=args.num_demos, + min_exploration_horizon=0.0, + max_exploration_horizon=0.0, + episode_length_s=5.0, + expert_path=args.expert_policy_checkpoint, + insertive_object=args.insertive_object, + receptive_object=args.receptive_object, + no_video=args.no_video, + seed=args.seed, + expert_noise=args.expert_noise, + ) + args.initial_dataset_path = dataset_path + # visualize the collected demos + if not args.no_video: + visualize_demos( + dataset_file=args.initial_dataset_path, + video_path=os.path.join(base_output_dir, "demo_videos_iteration_0.mp4"), + num_videos=10, + wandb_project=wandb_project, + wandb_group="data", + exp_name=exp_name, + iteration=0, + ) + dataset_paths = [args.initial_dataset_path] + iteration_checkpoint = None + start_iteration = 0 + + for iteration in range(start_iteration, args.max_iterations): + print(f"Starting iteration {iteration}...") + # train policy on the collected demos with previous dataset as well and pretrained checkpoint + train_output_dir = os.path.join(base_output_dir, f"iteration_{iteration}") + os.makedirs(train_output_dir, exist_ok=True) + train_policy( + config_name=args.config_name, + config_dir=args.config_dir, + output_dir=train_output_dir, + dataset_config=[ + {"dataset_dir": dataset_paths[i], "sampling_ratio": sampling_ratio_curriculum[iteration][i]} + for i in range(len(sampling_ratio_curriculum[iteration])) + ], + wandb_project=wandb_project, + wandb_group="train", + exp_name=exp_name, + pretrained_checkpoint=iteration_checkpoint, + lr=lrs[iteration], + seed=args.seed, + iteration=iteration, + ) + + # evaluate the trained policy + iteration_checkpoint = os.path.join( + base_output_dir, f"iteration_{iteration}", "checkpoints", "step_0040000.ckpt" + ) + eval_policy( + task=args.eval_task, + checkpoint=iteration_checkpoint, + num_trajectories=args.num_eval_episodes, + num_envs=args.num_eval_envs, + exp_name=exp_name, + wandb_project=wandb_project, + wandb_group="eval", + episode_length_s=8.0, + insertive_object=args.insertive_object, + receptive_object=args.receptive_object, + no_video=args.no_video, + seed=args.seed, + iteration=iteration, + ) + + # If not the last iteration, collect demos with the trained policy as the explorer + if iteration < args.max_iterations - 1: + dataset_path = os.path.join(base_output_dir, f"dataset-iteration-{iteration+1}") + collect_demos( + task=args.data_task, + dataset_file=os.path.join(dataset_path, "data.zarr"), + num_envs=args.num_data_envs, + num_demos=args.num_demos, + min_exploration_horizon=horizons[iteration][0], + max_exploration_horizon=horizons[iteration][1], + episode_length_s=episode_length_s[iteration], + expert_path=args.expert_policy_checkpoint, + exploration_checkpoint=iteration_checkpoint, + insertive_object=args.insertive_object, + receptive_object=args.receptive_object, + no_video=args.no_video, + seed=args.seed, + expert_noise=args.expert_noise, + ) + if not args.no_video: + visualize_demos( + dataset_file=dataset_path, + video_path=os.path.join(base_output_dir, f"demo_videos_iteration_{iteration+1}.mp4"), + num_videos=10, + wandb_project=wandb_project, + wandb_group="data", + exp_name=exp_name, + iteration=iteration + 1, + ) + dataset_paths.append(dataset_path) + + + + + + + + diff --git a/scripts_v2/tools/collect_demos.py b/scripts_v2/tools/collect_demos.py index d1de6599..af938c19 100644 --- a/scripts_v2/tools/collect_demos.py +++ b/scripts_v2/tools/collect_demos.py @@ -1,38 +1,52 @@ -# Copyright (c) 2024-2026, The UW Lab Project Developers. (https://github.com/uw-lab/UWLab/blob/main/CONTRIBUTORS.md). -# All Rights Reserved. +# Copyright (c) 2024-2025, The Octi Lab Project Developers. +# Proprietary and Confidential - All Rights Reserved. # -# SPDX-License-Identifier: BSD-3-Clause +# Unauthorized copying of this file, via any medium is strictly prohibited -# Copyright (c) 2024-2025, The UW Lab Project Developers. -# All Rights Reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -"""Script to collect demonstrations from a trained RL policy.""" +"""Script to collect demonstrations using exploration policy + expert policy.""" """Launch Isaac Sim Simulator first.""" import argparse import contextlib -import gymnasium as gym import os +import gymnasium as gym import torch from tqdm import tqdm +from functools import partial +from typing import Sequence +import random +import numpy as np from isaaclab.app import AppLauncher + # add argparse arguments -parser = argparse.ArgumentParser(description="Collect demonstrations from trained RL policy.") +parser = argparse.ArgumentParser(description="Collect demonstrations with exploration + expert policy.") parser.add_argument("--num_envs", type=int, default=None, help="Number of environments to simulate.") parser.add_argument("--task", type=str, default=None, help="Name of the task.") -parser.add_argument("--dataset_file", type=str, default="./datasets/dataset.zarr", help="Output dataset path.") -parser.add_argument("--num_demos", type=int, default=10, help="Number of demonstrations to record.") parser.add_argument( - "--deterministic", - action="store_true", - default=False, - help="Use the mean of the policy distribution instead of sampling.", + "--dataset_file", type=str, default="./datasets/dataset.zarr", help="File path to export recorded demos." +) +parser.add_argument( + "--num_demos", type=int, default=10, help="Number of demonstrations to record." +) +parser.add_argument( + "--exploration_checkpoint", type=str, default=None, help="Path to exploration policy checkpoint." +) +parser.add_argument( + "--min_exploration_horizon", type=float, default=0.02, help="Minimum exploration horizon for exploration policy." +) +parser.add_argument( + "--max_exploration_horizon", type=float, default=0.3, help="Maximum exploration horizon for exploration policy." +) +parser.add_argument( + "--episode_length_s", type=float, default=5.0, help="Episode length in seconds." ) +parser.add_argument("--expert_noise", type=float, default=0.0, help="Noise level for the expert policy.") + +parser.add_argument("--render", action="store_true", help="Whether to render the environment.") +parser.add_argument("--seed", type=int, default=0, help="Random seed for environment.") # append AppLauncher cli args AppLauncher.add_app_launcher_args(parser) @@ -44,25 +58,73 @@ """Rest everything follows.""" +import dill +import hydra + +from isaaclab.envs import ( + DirectRLEnvCfg, + ManagerBasedRLEnvCfg +) + +from isaaclab_rl.rsl_rl import RslRlOnPolicyRunnerCfg, RslRlVecEnvWrapper + import isaaclab_tasks # noqa: F401 -from isaaclab.envs import DirectRLEnvCfg, ManagerBasedRLEnvCfg -from isaaclab.managers.recorder_manager import DatasetExportMode +import uwlab_tasks # noqa: F401 # Import dataset handlers from isaaclab.utils.datasets import HDF5DatasetFileHandler -from isaaclab_rl.rsl_rl import RslRlOnPolicyRunnerCfg, RslRlVecEnvWrapper +from isaaclab.managers.recorder_manager import DatasetExportMode from uwlab.utils.datasets import ZarrDatasetFileHandler - -import uwlab_tasks # noqa: F401 -from uwlab_tasks.manager_based.manipulation.omnireset.mdp.recorders.recorders_cfg import ActionStateRecorderManagerCfg from uwlab_tasks.utils.hydra import hydra_task_compose +from uwlab_tasks.manager_based.manipulation.omnireset.mdp.recorders.recorders_cfg import ActionStateRecorderManagerCfg + +# Diffusion policy imports +from diffusion_policy.workspace.base_workspace import BaseWorkspace +from diffusion_policy.policy.base_image_policy import BaseImagePolicy +from uwlab_rl.wrappers.diffusion import DiffusionPolicyWrapper torch.backends.cuda.matmul.allow_tf32 = True torch.backends.cudnn.allow_tf32 = True torch.backends.cudnn.deterministic = False torch.backends.cudnn.benchmark = False +def record_pre_reset(self, env_ids: Sequence[int] | None, force_export_or_skip=None) -> None: + """Trigger recorder terms for pre-reset functions. + + Args: + env_ids: The environment ids in which a reset is triggered. + """ + # Do nothing if no active recorder terms are provided + if len(self.active_terms) == 0: + return + + if env_ids is None: + env_ids = list(range(self._env.num_envs)) + if isinstance(env_ids, torch.Tensor): + env_ids = env_ids.tolist() + + for term in self._terms.values(): + key, value = term.record_pre_reset(env_ids) + self.add_to_episodes(key, value, env_ids) + + # Set task success values for the relevant episodes + success_results = torch.zeros(len(env_ids), dtype=bool, device=self._env.device) + # Check success indicator from termination terms + if hasattr(self._env, "termination_manager"): + if "success" in self._env.termination_manager.active_terms: + success_results |= self._env.termination_manager.get_term("success")[env_ids] + + # Check episode length condition for success + episode_lengths = self._env.episode_length_buf[env_ids] + exploration_lengths = self.exploration_lengths[env_ids] + exploration_ratios = exploration_lengths / episode_lengths + max_exploration_horizon_for_save = 0.9 + success_results = success_results & (exploration_ratios < max_exploration_horizon_for_save) + self.set_success_to_episodes(env_ids, success_results) + + if force_export_or_skip or (force_export_or_skip is None and self.cfg.export_in_record_pre_reset): + self.export_episodes(env_ids) def process_agent_cfg(env_cfg, agent_cfg): if hasattr(agent_cfg.algorithm, "behavior_cloning_cfg"): @@ -104,9 +166,38 @@ def process_agent_cfg(env_cfg, agent_cfg): return agent_cfg +def load_exploration_policy(checkpoint_path: str, device: torch.device, num_envs: int): + """Load exploration diffusion policy from checkpoint.""" + payload = torch.load(open(checkpoint_path, 'rb'), pickle_module=dill) + cfg = payload['cfg'] + cls = hydra.utils.get_class(cfg._target_) + workspace = cls(cfg) + workspace: BaseWorkspace + workspace.load_payload(payload, exclude_keys=None, include_keys=None) + + policy: BaseImagePolicy + policy = workspace.model + if cfg.training.use_ema: + policy = workspace.ema_model + + policy.eval().to(device) + + wrapped_policy = DiffusionPolicyWrapper(policy, device, n_obs_steps=policy.n_obs_steps, num_envs=num_envs) + return wrapped_policy + + +def sample_exploration_horizons(num_envs: int, min_horizon: int, max_horizon: int, device: torch.device) -> torch.Tensor: + """Sample exploration horizons for each environment.""" + return torch.randint(min_horizon, max_horizon + 1, (num_envs,), device=device) + + @hydra_task_compose(args_cli.task, "rsl_rl_cfg_entry_point", hydra_args=remaining_args) def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg: RslRlOnPolicyRunnerCfg): - """Collect demonstrations from the environment using RSL-RL policy.""" + """Collect demonstrations from the environment using exploration + expert policy.""" + # device = torch.device(args_cli.device if args_cli.device else 'cuda' if torch.cuda.is_available() else 'cpu') + device = torch.device('cuda:0') + policy_device = torch.device('cuda:1') if torch.cuda.device_count() > 1 else device + # get directory path and file name (without extension) from cli arguments output_dir = os.path.dirname(args_cli.dataset_file) output_file_name = os.path.basename(args_cli.dataset_file) @@ -116,15 +207,13 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg: RslRlOnPolic os.makedirs(output_dir, exist_ok=True) # add recordermanager to save data - use_zarr_format = args_cli.dataset_file.endswith(".zarr") + use_zarr_format = args_cli.dataset_file.endswith('.zarr') if use_zarr_format: dataset_handler = ZarrDatasetFileHandler else: dataset_handler = HDF5DatasetFileHandler - # Setup recorder for raw actions env_cfg.recorders = ActionStateRecorderManagerCfg() - env_cfg.recorders.dataset_export_dir_path = output_dir env_cfg.recorders.dataset_filename = output_file_name env_cfg.recorders.dataset_export_mode = DatasetExportMode.EXPORT_SUCCEEDED_ONLY @@ -134,6 +223,14 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg: RslRlOnPolic env_cfg.scene.num_envs = args_cli.num_envs if args_cli.num_envs is not None else env_cfg.scene.num_envs env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device env_cfg.seed = None + # we want to have the terms in the observations returned as a dictionary + env_cfg.observations.policy.concatenate_terms = False + + # set episode length based on cli argument + env_cfg.episode_length_s = args_cli.episode_length_s + episode_length = int(env_cfg.episode_length_s / (env_cfg.sim.dt * env_cfg.sim.render_interval)) + max_exploration_horizon = int(args_cli.max_exploration_horizon * episode_length) + min_exploration_horizon = int(args_cli.min_exploration_horizon * episode_length) # add expert obs into env_cfg agent_cfg = process_agent_cfg(env_cfg, agent_cfg) @@ -143,45 +240,114 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg: RslRlOnPolic # wrap around environment for rsl-rl env = RslRlVecEnvWrapper(env) + num_envs = env.num_envs + + # load exploration policy + exploration_policy = None + if args_cli.exploration_checkpoint: + exploration_policy = load_exploration_policy(args_cli.exploration_checkpoint, policy_device, num_envs) - # load expert + # load expert policy bc = agent_cfg.algorithm.offline_algorithm_cfg.behavior_cloning_cfg assert len(bc.experts_path) == 1, "Only one expert is supported for now." expert_obs_fn = bc.experts_observation_func loader = bc.experts_loader if not callable(loader): loader = eval(loader) - expert_policy = loader(bc.experts_path[0]).to(env_cfg.sim.device) + expert_policy = loader(bc.experts_path[0]).to(device) expert_policy.eval() - print(f"[Policy] {'Deterministic (mean)' if args_cli.deterministic else 'Stochastic (sampled)'} actions") + # get expert mask recorder + recorder_manager = env.unwrapped.recorder_manager + expert_mask_recorder = recorder_manager._terms.get("record_pre_step_expert_mask") + + # initialize exploration horizons for each env + exploration_horizons = sample_exploration_horizons( + num_envs, min_exploration_horizon, max_exploration_horizon, device + ) + expert_mask_recorder.set_exploration_horizon(exploration_horizons) + if exploration_policy is not None: + from types import MethodType + recorder_manager.record_pre_reset = MethodType(record_pre_reset, recorder_manager) + + exploration_lengths = torch.zeros((num_envs,), device=device, dtype=torch.int32) + recorder_manager.exploration_lengths = exploration_lengths + + # reset environment and get initial observations + obs_dict, _ = env.reset() + + # reset exploration policy + if exploration_policy is not None: + reset_ids = torch.arange(num_envs, device=device) + exploration_policy.reset(reset_ids) + + rendered_frames = [] # simulate environment -- run everything in inference mode current_recorded_demo_count = 0 - with contextlib.suppress(KeyboardInterrupt), torch.inference_mode(): - # Initialize tqdm progress bar if num_demos > 0 + with contextlib.suppress(KeyboardInterrupt) and torch.inference_mode(): pbar = tqdm(total=args_cli.num_demos, desc="Recording Demonstrations", unit="demo") while True: - # agent stepping - expert_policy_obs = expert_obs_fn(env) - mean, std = expert_policy.compute_distribution(expert_policy_obs) - actions = mean if args_cli.deterministic else torch.normal(mean, std) - - # Mask actions to zero for environments in their first step after reset since first image may not be valid - first_step_mask = env.unwrapped.episode_length_buf == 0 + # get current episode step for each env + episode_steps = env.unwrapped.episode_length_buf + + # determine which policy to use for each env + use_exploration = (episode_steps < exploration_horizons) & (exploration_policy is not None) + exploration_lengths += use_exploration.int() + recorder_manager.exploration_lengths = exploration_lengths + use_expert = ~use_exploration + + # compute actions + actions = torch.zeros((num_envs, env.action_space.shape[-1]), device=device) + expert_mask = torch.zeros((num_envs, 1), dtype=torch.bool, device=device) + # exploration policy actions + if use_exploration.any() and exploration_policy is not None: + exploration_env_ids = use_exploration.nonzero(as_tuple=False).reshape(-1) + exploration_obs = {k: v[use_exploration] for k, v in obs_dict['policy'].items()} + exploration_actions = exploration_policy.predict_action(exploration_obs, exploration_env_ids) + exploration_actions = exploration_actions.to(device) + actions[use_exploration] = exploration_actions + + # expert policy actions + if use_expert.any(): + expert_policy_obs = expert_obs_fn(env) + if isinstance(expert_policy_obs, dict): + expert_policy_obs = torch.cat([v for v in expert_policy_obs.values()], dim=-1) + mean, std = expert_policy.compute_distribution(expert_policy_obs) + expert_actions = torch.normal(mean, std) + if args_cli.expert_noise > 0.0: + noise = torch.randn_like(expert_actions) * args_cli.expert_noise + expert_actions += noise + actions[use_expert] = expert_actions[use_expert] + expert_mask[use_expert] = True + + # mask actions for first step after reset (first image not valid) + first_step_mask = (episode_steps == 0) if torch.any(first_step_mask): actions[first_step_mask, :-1] = 0.0 actions[first_step_mask, -1] = -1.0 # close gripper - # Inject expert distribution into obs_buf so recorder saves them alongside observations - env.unwrapped.obs_buf["data_collection"]["expert_action_mean"] = mean.clone() - env.unwrapped.obs_buf["data_collection"]["expert_action_std"] = std.clone() + # set expert mask for recorder + expert_mask_recorder.set_mask(expert_mask) # env stepping - env.step(actions) - - # print out the current demo count if it has changed + obs_dict, _, dones, _ = env.step(actions) + + # handle resets + if dones.any(): + reset_ids = (dones > 0).nonzero(as_tuple=False).reshape(-1) + # resample exploration horizons for reset envs + exploration_horizons[reset_ids] = sample_exploration_horizons( + len(reset_ids), min_exploration_horizon, max_exploration_horizon, device + ) + if exploration_policy is not None: + exploration_policy.reset(reset_ids) + + exploration_lengths[reset_ids] = 0 + # expert_mask_recorder.set_exploration_horizon(exploration_horizons) + + # update demo count new_count = env.unwrapped.recorder_manager.exported_successful_episode_count if new_count > current_recorded_demo_count: increment = new_count - current_recorded_demo_count @@ -196,8 +362,22 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg: RslRlOnPolic if env.unwrapped.sim.is_stopped(): break + if args_cli.render: + rendered_frames.append(env.render()) + pbar.close() + if args_cli.render: + # save rendered frames as a video + import cv2 + video_path = os.path.join(output_dir, "recorded_demos_video.mp4") + height, width, _ = rendered_frames[0].shape + video_writer = cv2.VideoWriter(video_path, cv2.VideoWriter_fourcc(*'mp4v'), 30, (width, height)) + for frame in rendered_frames: + frame_bgr = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) + video_writer.write(frame_bgr) + video_writer.release() + print(f"Saved recorded demonstrations video at: {video_path}") # close the simulator env.close() diff --git a/scripts_v2/tools/eval_distilled_policy.py b/scripts_v2/tools/eval_distilled_policy.py index 62e2b7a8..19ccf057 100644 --- a/scripts_v2/tools/eval_distilled_policy.py +++ b/scripts_v2/tools/eval_distilled_policy.py @@ -1,8 +1,3 @@ -# Copyright (c) 2024-2026, The UW Lab Project Developers. (https://github.com/uw-lab/UWLab/blob/main/CONTRIBUTORS.md). -# All Rights Reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - # Copyright (c) 2022-2024, The Isaac Lab Project Developers. # All rights reserved. # @@ -24,15 +19,15 @@ parser.add_argument("--task", type=str, default=None, help="Name of the task.") parser.add_argument("--checkpoint", type=str, default=None, help="Path to diffusion policy checkpoint.") parser.add_argument("--num_envs", type=int, default=1, help="Number of environments to run in parallel.") -parser.add_argument( - "--num_trajectories", - type=int, - default=100, - help="Number of trajectories to evaluate. If None, run until simulation is stopped.", -) +parser.add_argument("--num_trajectories", type=int, default=100, help="Number of trajectories to evaluate. If None, run until simulation is stopped.") parser.add_argument("--seed", type=int, default=42, help="Random seed for reproducibility.") parser.add_argument("--use_amp", action="store_true", default=False, help="Use automatic mixed precision.") parser.add_argument("--save_video", action="store_true", default=False, help="Save video of the policy.") +parser.add_argument("--episode_length_s", type=float, default=24.0, help="Episode length in seconds.") +parser.add_argument("--exp_name", type=str, default="diffusion_policy_eval", help="Experiment name for logging.") +parser.add_argument("--wandb_project", type=str, default="diffusion_policy_eval_new", help="WandB project name for logging.") +parser.add_argument("--wandb_group", type=str, default="default_group", help="WandB group name for logging.") +parser.add_argument("--iteration", type=int, default=0, help="Iteration number for logging.") # append AppLauncher cli args AppLauncher.add_app_launcher_args(parser) # parse the arguments @@ -45,210 +40,302 @@ """Rest everything follows.""" import gymnasium as gym -import numpy as np -import random import torch +import dill +import hydra from contextlib import nullcontext from tqdm import tqdm +import random +import numpy as np +import wandb -import dill -import hydra -import imageio import isaaclab_tasks # noqa: F401 -from diffusion_policy.policy.base_image_policy import BaseImagePolicy +import uwlab_tasks # noqa: F401 +from isaaclab.envs import DirectRLEnvCfg, ManagerBasedRLEnvCfg +from uwlab_tasks.utils.hydra import hydra_task_compose # Diffusion policy imports from diffusion_policy.workspace.base_workspace import BaseWorkspace -from isaaclab.envs import DirectRLEnvCfg, ManagerBasedRLEnvCfg +from diffusion_policy.policy.base_image_policy import BaseImagePolicy # Import the Diffusion policy wrapper from uwlab_rl.wrappers.diffusion import DiffusionPolicyWrapper -import uwlab_tasks # noqa: F401 -from uwlab_tasks.utils.hydra import hydra_task_compose - - -def _set_seeds(seed: int): - random.seed(seed) - np.random.seed(seed) - torch.manual_seed(seed) - torch.cuda.manual_seed_all(seed) - torch.backends.cudnn.deterministic = True - torch.backends.cudnn.benchmark = False - - -def _load_policy(ckpt_path: str, device: torch.device, use_ema: bool = False) -> BaseImagePolicy: - with open(ckpt_path, "rb") as f: - payload = torch.load(f, pickle_module=dill) - cfg = payload["cfg"] - cls = hydra.utils.get_class(cfg._target_) - workspace = cls(cfg) - workspace: BaseWorkspace - workspace.load_payload(payload, exclude_keys=None, include_keys=None) - policy = workspace.ema_model if cfg.training.use_ema else workspace.model - return policy.eval().to(device) - - -def _discover_cameras(obs_dict, env): - """Return (cam_keys, scene_cam_names) for video recording.""" - cam_keys = sorted(k for k in obs_dict["policy"] if "rgb" in k) - if cam_keys: - return cam_keys, [] - scene_cam_names = sorted( - name - for name, sensor in env.unwrapped.scene._sensors.items() - if hasattr(sensor, "data") and hasattr(sensor.data, "output") and "rgb" in sensor.data.output - ) - if scene_cam_names: - print(f"Using scene cameras for video: {scene_cam_names}") - return cam_keys, scene_cam_names - - -def _capture_frame(obs_dict, env, env_idx: int, cam_keys: list, scene_cam_names: list) -> np.ndarray | None: - """Capture and concatenate camera images for one environment.""" - imgs = [] - if cam_keys: - for cam in cam_keys: - img = obs_dict["policy"][cam][env_idx].detach().cpu().permute(1, 2, 0).numpy() - imgs.append((img * 255).clip(0, 255).astype("uint8")) - elif scene_cam_names: - for cam_name in scene_cam_names: - img = env.unwrapped.scene._sensors[cam_name].data.output["rgb"][env_idx].detach().cpu().numpy() - if img.shape[0] in [1, 3, 4] and img.shape[0] < img.shape[1]: - img = img.transpose(1, 2, 0) - if img.dtype != np.uint8: - img = (img * 255).clip(0, 255).astype("uint8") - if img.shape[-1] == 4: - img = img[..., :3] - imgs.append(img) - return np.concatenate(imgs, axis=1) if imgs else None - - -def _count_successes(env, reset_ids: torch.Tensor, term_names: list[str]) -> int: - count = 0 - term_dones = env.unwrapped.termination_manager._term_dones[reset_ids] - for term_row in term_dones: - active = term_row.nonzero(as_tuple=False).flatten().cpu().tolist() - if any(term_names[idx] == "success" for idx in active): - count += 1 - return count - - -def _collect_metrics(infos: dict, episode_metrics: dict): - if "log" not in infos: - return - for key, value in infos["log"].items(): - if key.startswith("Metrics/") or key.startswith("Episode_Reward/"): - episode_metrics.setdefault(key, []).append(value) - - -def _print_results(episodes: int, successful_episodes: int, episode_metrics: dict): - print("\nFinal Statistics:") - print(f"Total trajectories evaluated: {episodes}") - if successful_episodes > 0 or "Episode_Termination/success" in episode_metrics: - print(f"Successful trajectories: {successful_episodes}") - print(f"Success rate: {successful_episodes / episodes * 100:.2f}%") - else: - print("Success rate: Not calculable (success metric not found in environment)") - if episode_metrics: - print("\nAverage Metrics:") - for metric_name, values in sorted(episode_metrics.items()): - if values: - floats = [float(v) if isinstance(v, torch.Tensor) else v for v in values] - print(f"{metric_name}: {sum(floats) / len(floats):.4f}") +# import imageio @hydra_task_compose(args_cli.task, "env_cfg_entry_point", hydra_args=remaining_args) def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg, agent_cfg): """Run a trained diffusion policy with Isaac Lab environment.""" - _set_seeds(args_cli.seed) + # Set seeds for reproducibility + random.seed(args_cli.seed) + np.random.seed(args_cli.seed) + torch.manual_seed(args_cli.seed) + torch.cuda.manual_seed_all(args_cli.seed) + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False - device = torch.device(args_cli.device if args_cli.device else "cuda" if torch.cuda.is_available() else "cpu") + # Check device is available + device = torch.device("cuda:0")#torch.device(args_cli.device if args_cli.device else 'cuda' if torch.cuda.is_available() else 'cpu') + policy_device = torch.device("cuda:1") if torch.cuda.device_count() > 1 else device torch.backends.cudnn.benchmark = True torch.backends.cuda.matmul.allow_tf32 = True + # Override configurations with CLI arguments env_cfg.scene.num_envs = args_cli.num_envs env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device env_cfg.sim.use_fabric = not args_cli.disable_fabric + # Set environment seed env_cfg.seed = args_cli.seed + # we want to have the terms in the observations returned as a dictionary + # rather than a concatenated tensor env_cfg.observations.policy.concatenate_terms = False + # create environment env = gym.make(args_cli.task, cfg=env_cfg, render_mode="rgb_array") - policy = _load_policy(args_cli.checkpoint, device) - wrapped_policy = DiffusionPolicyWrapper(policy, device, n_obs_steps=policy.n_obs_steps, num_envs=args_cli.num_envs) + # ckpt_base = args_cli.checkpoint.split("/")[-1].split(".")[0] if args_cli.checkpoint else "none" + wandb.init( + project=args_cli.wandb_project, + group=args_cli.wandb_group, + config={ + "task": args_cli.task, + "checkpoint": args_cli.checkpoint, + "num_envs": args_cli.num_envs, + "num_trajectories": args_cli.num_trajectories, + "seed": args_cli.seed, + "use_amp": args_cli.use_amp, + "save_video": args_cli.save_video, + "episode_length_s": args_cli.episode_length_s, + "exp_name": args_cli.exp_name, + "iteration": args_cli.iteration, + }, + ) + # Load diffusion policy checkpoint + ckpt_path = args_cli.checkpoint + payload = torch.load(open(ckpt_path, 'rb'), pickle_module=dill) + cfg = payload['cfg'] + cls = hydra.utils.get_class(cfg._target_) + workspace = cls(cfg) + workspace: BaseWorkspace + workspace.load_payload(payload, exclude_keys=None, include_keys=None) + + # Load policy based on configuration + policy: BaseImagePolicy + policy = workspace.model + if cfg.training.use_ema: + policy = workspace.ema_model + + # print policy summary + print(policy) + + policy.eval().to(policy_device) + + # Wrap policy to handle Isaac Lab observations + wrapped_policy = DiffusionPolicyWrapper(policy, policy_device, n_obs_steps=policy.n_obs_steps, num_envs=args_cli.num_envs) + + # reset environment obs_dict, _ = env.reset() dones = torch.ones(args_cli.num_envs, dtype=torch.bool, device=device) - wrapped_policy.reset((dones > 0).nonzero(as_tuple=False).reshape(-1)) + reset_ids = (dones > 0).nonzero(as_tuple=False).reshape(-1) + wrapped_policy.reset(reset_ids) + # Get termination term names to identify success term_names = env.unwrapped.termination_manager._term_names # type: ignore assert "success" in term_names, "Success term not found in termination manager" - episodes, steps, successful_episodes = 0, 0, 0 - episode_metrics: dict = {} + episodes = 0 + steps = 0 + successful_episodes = 0 # Track successful episodes + + # Track all episode metrics + episode_metrics = {} + + ep_returns = torch.zeros(args_cli.num_envs, dtype=torch.float32, device=device) + success_video_count = 0 + fail_video_count = 0 + render_frames = [] + successes = [] + # Initialize progress bar if num_trajectories is specified pbar = None if args_cli.num_trajectories is not None: pbar = tqdm(total=args_cli.num_trajectories, desc="Evaluating trajectories (Success: 0.00%)") - # Video recording state - cam_keys, scene_cam_names, env_frames, frames_to_save = [], [], [], [] + # simulate environment if args_cli.save_video: - cam_keys, scene_cam_names = _discover_cameras(obs_dict, env) env_frames = [[] for _ in range(args_cli.num_envs)] + frames_to_save = [] + cam_keys = sorted([key for key in obs_dict['policy'].keys() if 'rgb' in key]) while simulation_app.is_running(): + # Check if we've reached the desired number of trajectories if args_cli.num_trajectories is not None and episodes >= args_cli.num_trajectories: + if pbar is not None: + pbar.close() print(f"\nReached target number of trajectories ({args_cli.num_trajectories}). Stopping evaluation.") break + # run everything in inference mode with torch.inference_mode(), torch.autocast(device_type=device.type) if args_cli.use_amp else nullcontext(): - actions = wrapped_policy.predict_action(obs_dict) + # compute actions using wrapped diffusion policy + episode_steps = env.unwrapped.episode_length_buf + # first_step_mask = (episode_steps == 0).to(device) + # action_ids = ~first_step_mask.nonzero(as_tuple=False).reshape(-1).to(device) + # actions = torch.zeros((args_cli.num_envs, env.action_space.shape[0]), device=device) + # actions[:, -1] = -1.0 # default noop for last action dimension + + # if len(action_ids) > 0: + # actions[action_ids] = wrapped_policy.predict_action(obs_dict, action_ids.tolist()).to(device) + actions = wrapped_policy.predict_action(obs_dict).to(device) + + first_step_mask = (episode_steps == 0) + if torch.any(first_step_mask): + actions[first_step_mask, :-1] = 0.0 + actions[first_step_mask, -1] = -1.0 # close gripper if args_cli.save_video: - for i in range(args_cli.num_envs): - frame = _capture_frame(obs_dict, env, i, cam_keys, scene_cam_names) - if frame is not None: + if len(cam_keys) == 0: + frame = env.render() + env_frames[0].append(frame) + else: + for i in range(args_cli.num_envs): + imgs = [] + + for cam in cam_keys: + img = obs_dict['policy'][cam][i].detach().cpu().permute(1, 2, 0).numpy() + img = (img * 255).clip(0, 255).astype('uint8') + imgs.append(img) + frame = np.concatenate(imgs, axis=1) env_frames[i].append(frame) + # apply actions using environment step_result = env.step(actions) if len(step_result) == 4: obs_dict, rewards, dones, infos = step_result else: + # Handle gymnasium v0.26+ format with 5 return values obs_dict, rewards, terminated, truncated, infos = step_result dones = terminated | truncated steps += 1 + rewards_t = rewards if isinstance(rewards, torch.Tensor) else torch.as_tensor(rewards, device=device) + ep_returns += rewards_t.to(device) + + # Clear data for completed episodes + new_ids = [] if isinstance(dones, torch.Tensor): new_ids = (dones > 0).nonzero(as_tuple=False) episodes += len(new_ids) - elif dones: - new_ids = [0] - episodes += 1 else: - new_ids = [] + # Handle scalar done value + if dones: + episodes += 1 + new_ids = [0] # Single episode done if isinstance(dones, torch.Tensor) and dones.any(): reset_ids = (dones > 0).nonzero(as_tuple=False).reshape(-1) - successful_episodes += _count_successes(env, reset_ids, term_names) + num_new_successes = 0 + + term_dones = env.unwrapped.termination_manager._term_dones[reset_ids] # type: ignore + ep_success_flags = [] + for env_idx, term_row in enumerate(term_dones): + active_term_idx = term_row.nonzero(as_tuple=False) + is_success = False + if active_term_idx.numel() > 0: + # Handle multiple active termination conditions + active_term_indices = active_term_idx.flatten().cpu().tolist() + for term_idx in active_term_indices: + if term_names[term_idx] == "success": + num_new_successes += 1 + is_success = True + break # Count each environment only once + ep_success_flags.append(is_success) + successes.append(is_success) + + successful_episodes += num_new_successes + + for k, env_id in enumerate(reset_ids.detach().cpu().tolist()): + video_log = {} + ep_ret = float(ep_returns[env_id].detach().cpu().item()) + is_success = float(ep_success_flags[k]) + video_log["eval/episode_return"] = ep_ret + video_log["eval/success"] = is_success + # video_log["eval/success_rate_running"] = (successful_episodes / episodes) if episodes > 0 else 0.0 + if args_cli.save_video and len(env_frames[env_id]) > 0: + v = np.asarray(env_frames[env_id]) # T,H,W,C uint8 + v = v.transpose(0, 3, 1, 2) # T,C,H,W + if is_success > 0: + video_log[f"eval/success_video_{success_video_count}"] = wandb.Video(v, fps=10, format="mp4") + success_video_count += 1 + else: + video_log[f"eval/fail_video_{fail_video_count}"] = wandb.Video(v, fps=10, format="mp4") + fail_video_count += 1 + # video_log[f"eval/video_{video_count}"] = wandb.Video(v, fps=10, format="mp4") + # video_count += 1 + wandb.log(video_log) + + ep_returns[reset_ids] = 0.0 + wrapped_policy.reset(reset_ids) - _collect_metrics(infos, episode_metrics) + + # Store metrics for completed episodes + if "log" in infos: + # Store all metrics from this episode + for key, value in infos["log"].items(): + if key.startswith("Metrics/") or key.startswith("Episode_Reward/"): + if key not in episode_metrics: + episode_metrics[key] = [] + episode_metrics[key].append(value) + steps = 0 if args_cli.save_video: for i in reset_ids: frames_to_save.extend(env_frames[i]) env_frames[i] = [] - imageio.mimsave("policy_cameras.mp4", frames_to_save, fps=10, codec="libx264") + # imageio.mimsave("logs/policy_cameras.mp4", frames_to_save, fps=10, codec='libx264') + # Update progress bar with success rate if pbar is not None: pbar.update(len(new_ids)) - rate = (successful_episodes / episodes * 100) if episodes > 0 else 0.0 - pbar.set_description(f"Evaluating trajectories (Success: {rate:.2f}%)") + success_rate = (successful_episodes / episodes * 100) if episodes > 0 else 0.0 + pbar.set_description(f"Evaluating trajectories (Success: {success_rate:.2f}%)") + + # Print final statistics + print("\nFinal Statistics:") + print(f"Total trajectories evaluated: {episodes}") + if successful_episodes > 0 or "Episode_Termination/success" in episode_metrics: + print(f"Successful trajectories: {successful_episodes}") + print(f"Success rate: {successful_episodes/episodes*100:.2f}%") + else: + print("Success rate: Not calculable (success metric not found in environment)") + + # Print metrics statistics + if episode_metrics: + print("\nAverage Metrics:") + for metric_name, values in sorted(episode_metrics.items()): + if values: # Only print if we have values + values = [float(v) if isinstance(v, torch.Tensor) else v for v in values] + mean = sum(values) / len(values) + print(f"{metric_name}: {mean:.4f}") + + final_stats = { + "eval/num_episodes": episodes, + "eval/successful_episodes": successful_episodes, + "eval/success_rate": (successful_episodes / episodes) if episodes > 0 else 0.0, + } + if episode_metrics: + for metric_name, values in sorted(episode_metrics.items()): + if values: + vals = [float(v.detach().cpu()) if isinstance(v, torch.Tensor) else float(v) for v in values] + final_stats[f"eval/{metric_name}_mean"] = float(np.mean(vals)) + wandb.log(final_stats) + wandb.finish() - _print_results(episodes, successful_episodes, episode_metrics) + # Cleanup if pbar is not None: pbar.close() env.close() diff --git a/source/uwlab/uwlab/utils/datasets/zarr_dataset_file_handler.py b/source/uwlab/uwlab/utils/datasets/zarr_dataset_file_handler.py index 219f4fd5..53e25ad0 100644 --- a/source/uwlab/uwlab/utils/datasets/zarr_dataset_file_handler.py +++ b/source/uwlab/uwlab/utils/datasets/zarr_dataset_file_handler.py @@ -234,7 +234,11 @@ def _convert_and_save_episode(self, episode: EpisodeData): "obs": processed_obs, "rewards": episode_dict.get("rewards", torch.zeros(num_frames)).cpu().numpy(), "dones": episode_dict.get("dones", torch.cat([torch.zeros(num_frames - 1), torch.ones(1)])).cpu().numpy(), + "expert_mask": episode_dict.get("expert_mask", torch.ones((num_frames, 1))).cpu().numpy(), } + if "expert_actions" in episode_dict.keys(): + episode_data["expert_actions"] = episode_dict["expert_actions"].cpu().numpy() + episode_data["expert_obs"] = episode_dict["expert_obs"].cpu().numpy() # Save episode data to Zarr self._save_episode_to_zarr(episode_data) diff --git a/source/uwlab_assets/uwlab_assets/robots/ur5e_robotiq_gripper/ur5e_robotiq_2f85_gripper.py b/source/uwlab_assets/uwlab_assets/robots/ur5e_robotiq_gripper/ur5e_robotiq_2f85_gripper.py index 5d52f343..f4557664 100644 --- a/source/uwlab_assets/uwlab_assets/robots/ur5e_robotiq_gripper/ur5e_robotiq_2f85_gripper.py +++ b/source/uwlab_assets/uwlab_assets/robots/ur5e_robotiq_gripper/ur5e_robotiq_2f85_gripper.py @@ -59,7 +59,7 @@ UR5E_ARTICULATION = ArticulationCfg( spawn=sim_utils.UsdFileCfg( usd_path=f"{UWLAB_CLOUD_ASSETS_DIR}/Robots/UniversalRobots/Ur5e2f85RobotiqGripperCalibrated/ur5e_robotiq_gripper_d415_mount_safety_calibrated.usd", - activate_contact_sensors=False, + activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=True, max_depenetration_velocity=5.0, diff --git a/source/uwlab_rl/uwlab_rl/wrappers/diffusion.py b/source/uwlab_rl/uwlab_rl/wrappers/diffusion.py index 0abad3bd..3304ae8e 100644 --- a/source/uwlab_rl/uwlab_rl/wrappers/diffusion.py +++ b/source/uwlab_rl/uwlab_rl/wrappers/diffusion.py @@ -1,16 +1,11 @@ -# Copyright (c) 2024-2026, The UW Lab Project Developers. (https://github.com/uw-lab/UWLab/blob/main/CONTRIBUTORS.md). -# All Rights Reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - import torch +from torch.nn.utils.rnn import pad_sequence +from typing import Dict, Any, List from abc import ABC, abstractmethod -from typing import Any class ObservationHistoryManager(ABC): """Abstract base class for managing observation history.""" - def __init__(self, num_envs: int, n_obs_steps: int, device: torch.device): self.num_envs = num_envs self.n_obs_steps = n_obs_steps @@ -19,36 +14,35 @@ def __init__(self, num_envs: int, n_obs_steps: int, device: torch.device): self.needs_init = set() # Track environments that need initialization @abstractmethod - def initialize(self, processed_obs: dict[str, torch.Tensor]): + def initialize(self, processed_obs: Dict[str, torch.Tensor]): """Initialize the history with the first observation.""" pass @abstractmethod - def update(self, processed_obs: dict[str, torch.Tensor]): + def update(self, processed_obs: Dict[str, torch.Tensor]): """Update history with new observations.""" pass @abstractmethod - def get_batch(self, env_indices: list[int]) -> dict[str, torch.Tensor]: + def get_batch(self, env_indices: List[int]) -> Dict[str, torch.Tensor]: """Get observation batch for specific environments.""" pass @abstractmethod - def reset_envs(self, env_indices: list[int]): + def reset_envs(self, env_indices: List[int]): """Reset history for specific environments.""" pass class LowDimObservationHistory(ObservationHistoryManager): """Manages observation history for low-dimensional policies.""" - - def initialize(self, processed_obs: dict[str, torch.Tensor]): + def initialize(self, processed_obs: Dict[str, torch.Tensor]): """Initialize history as a single tensor.""" obs_shape = processed_obs["obs"].shape history_shape = (self.num_envs, self.n_obs_steps, obs_shape[-1]) self.history = torch.zeros(history_shape, device=self.device, dtype=processed_obs["obs"].dtype) - def update(self, processed_obs: dict[str, torch.Tensor]): + def update(self, processed_obs: Dict[str, torch.Tensor]): """Update history by shifting and adding new observations.""" if self.history is None: self.initialize(processed_obs) @@ -56,16 +50,16 @@ def update(self, processed_obs: dict[str, torch.Tensor]): if self.needs_init: for env_idx in list(self.needs_init): # Fill entire history with the first observation - first_obs = processed_obs["obs"][env_idx : env_idx + 1] # Keep batch dimension + first_obs = processed_obs["obs"][env_idx:env_idx + 1] # Keep batch dimension for step in range(self.n_obs_steps): self.history[env_idx, step] = first_obs[0] self.needs_init.remove(env_idx) # Update history by shifting and adding new observations - self.history[:, :-1] = self.history[:, 1:].clone() + self.history[:, :-1] = self.history[:, 1:] # Add new observation at the end self.history[:, -1] = processed_obs["obs"] - def get_batch(self, env_indices: list[int]) -> dict[str, torch.Tensor]: + def get_batch(self, env_indices: List[int]) -> Dict[str, torch.Tensor]: """Get observation batch for specific environments.""" if self.history is None: return {"obs": torch.zeros((len(env_indices), self.n_obs_steps, 0), device=self.device)} @@ -74,7 +68,7 @@ def get_batch(self, env_indices: list[int]) -> dict[str, torch.Tensor]: env_obs = self.history[env_indices] # Shape: (batch, n_obs_steps, obs_dim) return {"obs": env_obs} - def reset_envs(self, env_indices: list[int]): + def reset_envs(self, env_indices: List[int]): """Reset history for specific environments.""" for i in env_indices: self.needs_init.add(i) @@ -83,13 +77,13 @@ def reset_envs(self, env_indices: list[int]): class ImageObservationHistory(ObservationHistoryManager): """Manages observation history for image-based policies.""" - def __init__(self, num_envs: int, n_obs_steps: int, device: torch.device): + def __init__(self, num_envs: int, obs_keys: List[str], n_obs_steps: int, device: torch.device): super().__init__(num_envs, n_obs_steps, device) - self.obs_keys = None + self.obs_keys = obs_keys - def initialize(self, processed_obs: dict[str, torch.Tensor]): + def initialize(self, processed_obs: Dict[str, torch.Tensor]): """Initialize history as a dictionary of tensors.""" - self.obs_keys = list(processed_obs.keys()) + # self.obs_keys = list(processed_obs.keys()) self.history = {} for key in self.obs_keys: # Shape: (num_envs, n_obs_steps, ...) @@ -97,7 +91,7 @@ def initialize(self, processed_obs: dict[str, torch.Tensor]): history_shape = (self.num_envs, self.n_obs_steps) + obs_shape[1:] self.history[key] = torch.zeros(history_shape, device=self.device, dtype=processed_obs[key].dtype) - def update(self, processed_obs: dict[str, torch.Tensor]): + def update(self, processed_obs: Dict[str, torch.Tensor]): """Update history by shifting and adding new observations.""" if self.history is None: self.initialize(processed_obs) @@ -107,7 +101,7 @@ def update(self, processed_obs: dict[str, torch.Tensor]): if env_idx < self.num_envs: # Fill entire history with the first observation for each key for key in self.obs_keys: - first_obs = processed_obs[key][env_idx : env_idx + 1] # Keep batch dimension + first_obs = processed_obs[key][env_idx:env_idx + 1] # Keep batch dimension for step in range(self.n_obs_steps): self.history[key][env_idx, step] = first_obs[0] self.needs_init.remove(env_idx) @@ -119,7 +113,7 @@ def update(self, processed_obs: dict[str, torch.Tensor]): # Add new observation at the end self.history[key][:, -1] = processed_obs[key] - def get_batch(self, env_indices: list[int]) -> dict[str, torch.Tensor]: + def get_batch(self, env_indices: List[int]) -> Dict[str, torch.Tensor]: """Get observation batch for specific environments.""" if self.history is None or self.obs_keys is None: return {} @@ -130,12 +124,83 @@ def get_batch(self, env_indices: list[int]) -> dict[str, torch.Tensor]: obs_batch[key] = env_obs return obs_batch - def reset_envs(self, env_indices: list[int]): + def reset_envs(self, env_indices: List[int]): """Reset history for specific environments.""" for i in env_indices: self.needs_init.add(i) +class ImageObservationSequence(ImageObservationHistory): + """Stores full trajectory per-environment as lists and returns padded batches with attention masks. + """ + + def initialize(self, processed_obs: Dict[str, torch.Tensor]): + """Initialize internal per-key, per-env lists for histories.""" + # Keep the same obs_keys behaviour + # self.obs_keys = list(processed_obs.keys()) + # history will be a dict: key -> list(len=num_envs) of python lists containing tensors + self.history = {} + for key in self.obs_keys: + self.history[key] = [[] for _ in range(self.num_envs)] + + def update(self, processed_obs: Dict[str, torch.Tensor], env_indices: List[int]): + """Append new observations to each environment's trajectory list. + + If an environment is marked in `needs_init` it will have its lists cleared + before appending the new (first) observation so that trajectories start after reset. + """ + if self.history is None: + self.initialize(processed_obs) + + # Clear histories for envs that were reset + if self.needs_init and self.obs_keys is not None: + for env_idx in list(self.needs_init): + if env_idx < self.num_envs: + for key in self.obs_keys: + self.history[key][env_idx].clear() + self.needs_init.remove(env_idx) + + # Append current observation for each env and key + if self.obs_keys is not None: + for key in self.obs_keys: + tensor = processed_obs[key] + # Expect tensor shape (num_envs, ...) + for idx, env_idx in enumerate(env_indices): + obs = tensor[idx] + + # store a detached clone to avoid accidental graph retention + self.history[key][env_idx].append(obs.detach().clone().to(self.device)) + + def get_batch(self, env_indices: List[int]) -> Dict[str, torch.Tensor]: + """Return a padded batch of observations for the requested envs plus an attention mask. + + Returns a dict mapping each observation key to a tensor of shape + (batch, seq_len, ...). Also includes 'attention_mask' with shape (batch, seq_len), + where 1 indicates a real observation and 0 indicates padding. + """ + if self.history is None or self.obs_keys is None: + return {} + + # Determine per-env sequence lengths (use the first obs_key as canonical) + lengths = [len(self.history[self.obs_keys[0]][env]) for env in env_indices] + max_len = max(lengths) if lengths else 0 + + obs_batch: Dict[str, torch.Tensor] = {} + + lengths_tensor = torch.tensor(lengths, device=self.device) + attention_mask = (torch.arange(max_len, device=self.device).unsqueeze(0) < lengths_tensor.unsqueeze(1)).long() + + for key in self.obs_keys: + obs_batch[key] = torch.nn.utils.rnn.pad_sequence( + [torch.stack(self.history[key][env], dim=0) for env in env_indices], + batch_first=True, + padding_value=0.0 + ) + + obs_batch['attention_mask'] = attention_mask + return obs_batch + + class DiffusionPolicyWrapper: """Wraps diffusion policy to handle Isaac Lab environment observations and action execution.""" @@ -147,19 +212,24 @@ def __init__(self, policy, device: torch.device, n_obs_steps: int = 2, num_envs: device: Device to run the policy on. n_obs_steps: Number of observation steps to maintain in history. num_envs: Number of environments to handle. - execute_horizon: Number of actions to execute from each chunk before - replanning. None = execute full chunk (open-loop). 1 = replan - every step (receding horizon). """ self.policy = policy self.device = device self.n_obs_steps = n_obs_steps self.num_envs = num_envs + # Initialize observation history manager based on policy type self.is_image_policy = self._is_image_policy() - if self.is_image_policy: - self.obs_history_manager = ImageObservationHistory(num_envs, n_obs_steps, device) + self.is_transformer = self._is_transformer() + if hasattr(policy.obs_encoder, 'keys'): + obs_keys = policy.obs_encoder.keys + else: + obs_keys = policy.obs_encoder.rgb_keys + policy.obs_encoder.low_dim_keys + if self.is_transformer: + self.obs_history_manager = ImageObservationSequence(num_envs, obs_keys, n_obs_steps, device) + elif self.is_image_policy: + self.obs_history_manager = ImageObservationHistory(num_envs, obs_keys, n_obs_steps, device) else: self.obs_history_manager = LowDimObservationHistory(num_envs, n_obs_steps, device) @@ -169,15 +239,21 @@ def __init__(self, policy, device: torch.device, n_obs_steps: int = 2, num_envs: # Reset the policy to initialize its internal queues self.policy.reset() + def _is_transformer(self) -> bool: + """Detect if the policy is a transformer-based model.""" + policy_class_name = self.policy.__class__.__name__.lower() + transformer_indicators = ['transformer', 'gpt', 'bert', 'dpt'] + return any(indicator in policy_class_name for indicator in transformer_indicators) + def _is_image_policy(self) -> bool: """Detect if this is an image policy based on class name.""" policy_class_name = self.policy.__class__.__name__.lower() - image_policy_indicators = ["image", "hybrid", "video"] + image_policy_indicators = ['image', 'hybrid', 'video'] return any(indicator in policy_class_name for indicator in image_policy_indicators) def reset(self, reset_ids: torch.Tensor): """Reset the policy wrapper and clear observation history and action queue.""" - reset_indices = reset_ids.tolist() if hasattr(reset_ids, "tolist") else reset_ids + reset_indices = reset_ids.tolist() if hasattr(reset_ids, 'tolist') else reset_ids for i in reset_indices: self.action_queue[i].clear() @@ -187,7 +263,7 @@ def reset(self, reset_ids: torch.Tensor): self.obs_history_manager.reset_envs(reset_indices) self.policy.reset() - def predict_action(self, obs_dict: dict[str, Any]) -> torch.Tensor: + def predict_action(self, obs_dict: Dict[str, Any], env_indices: List[int] = None) -> torch.Tensor: """Predict action given Isaac Lab environment observations. Args: @@ -200,10 +276,15 @@ def predict_action(self, obs_dict: dict[str, Any]) -> torch.Tensor: processed_obs = self._process_obs(obs_dict) # Update observation history with batched operations - self.obs_history_manager.update(processed_obs) - - # Find environments that need new action chunks - need_new_actions = [i for i in range(self.num_envs) if len(self.action_queue[i]) == 0] + if self.is_transformer: + if env_indices is None: + env_indices = list(range(self.num_envs)) + self.obs_history_manager.update(processed_obs, env_indices) + need_new_actions = [i for i in range(self.num_envs) if len(self.action_queue[i]) == 0 and i in env_indices] + else: + self.obs_history_manager.update(processed_obs) + # Find environments that need new action chunks + need_new_actions = [i for i in range(self.num_envs) if len(self.action_queue[i]) == 0] if need_new_actions: # Get new action chunks for environments that need them @@ -213,14 +294,20 @@ def predict_action(self, obs_dict: dict[str, Any]) -> torch.Tensor: for idx, env_idx in enumerate(need_new_actions): self.action_queue[env_idx].extend(new_actions[idx]) - # Extract next action for each environment - actions = torch.zeros(self.num_envs, self.action_queue[0][0].shape[-1], device=self.device, dtype=torch.float32) - for i in range(self.num_envs): - actions[i] = self.action_queue[i].pop(0) + if self.is_transformer: + actions = torch.zeros(len(env_indices), self.action_queue[env_indices[0]][0].shape[-1], device=self.device, dtype=torch.float32) + for idx, env_idx in enumerate(env_indices): + actions[idx] = self.action_queue[env_idx].pop(0) + return actions + else: + # Extract next action for each environment + actions = torch.zeros(self.num_envs, self.action_queue[0][0].shape[-1], device=self.device, dtype=torch.float32) + for i in range(self.num_envs): + actions[i] = self.action_queue[i].pop(0) return actions - def _process_obs(self, obs_dict: dict[str, Any]) -> dict[str, torch.Tensor]: + def _process_obs(self, obs_dict: Dict[str, Any]) -> Dict[str, torch.Tensor]: """Convert Isaac Lab observations to format expected by diffusion policy. Args: @@ -240,7 +327,7 @@ def _process_obs(self, obs_dict: dict[str, Any]) -> dict[str, torch.Tensor]: else: return self._process_lowdim_obs(obs) - def _process_image_obs(self, obs: dict[str, Any]) -> dict[str, torch.Tensor]: + def _process_image_obs(self, obs: Dict[str, Any]) -> Dict[str, torch.Tensor]: """Process observations for image-based policies with batched operations. Args: @@ -258,7 +345,7 @@ def _process_image_obs(self, obs: dict[str, Any]) -> dict[str, torch.Tensor]: processed_obs[key] = tensor return processed_obs - def _process_lowdim_obs(self, obs: dict[str, Any]) -> dict[str, torch.Tensor]: + def _process_lowdim_obs(self, obs: Dict[str, Any]) -> Dict[str, torch.Tensor]: """Process observations for low-dimensional policies with batched operations. Args: @@ -288,7 +375,7 @@ def _process_lowdim_obs(self, obs: dict[str, Any]) -> dict[str, torch.Tensor]: return processed_obs - def _get_action_chunks(self, env_indices: list[int]) -> list[torch.Tensor]: + def _get_action_chunks(self, env_indices: List[int]) -> List[torch.Tensor]: """Get action chunks for specific environments. Args: @@ -301,9 +388,10 @@ def _get_action_chunks(self, env_indices: list[int]) -> list[torch.Tensor]: obs_batch = self.obs_history_manager.get_batch(env_indices) # Get action chunk from policy - result = self.policy.predict_action(obs_batch) + with torch.no_grad(): + result = self.policy.predict_action(obs_batch) if isinstance(result, dict): - action_chunk = result["action"] + action_chunk = result['action'] else: action_chunk = result @@ -315,8 +403,7 @@ def _get_action_chunks(self, env_indices: list[int]) -> list[torch.Tensor]: env_action_chunk = action_chunk[i] # Shape: (action_chunk_len, action_dim) action_chunks.append(env_action_chunk) else: - # Single action case: (batch_size, action_dim) -> list of (1, action_dim) per env - for i in range(action_chunk.shape[0]): - action_chunks.append(action_chunk[i].unsqueeze(0)) + # Single action case: (batch_size, action_dim) -> (batch_size, 1, action_dim) + action_chunks = action_chunk.unsqueeze(1) return action_chunks diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/__init__.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/__init__.py index 1e240e13..ebc83d48 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/__init__.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/__init__.py @@ -162,3 +162,24 @@ "rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_cfg:Base_DAggerRunnerCfg", }, ) + +# Tactile environments for data collection and evaluation +gym.register( + id="OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-Tactile-DataCollection-v0", + entry_point="isaaclab.envs:ManagerBasedRLEnv", + disable_env_checker=True, + kwargs={ + "env_cfg_entry_point": f"{__name__}.data_collection_tactile_cfg:Ur5eRobotiq2f85DataCollectionTactileRelCartesianOSCCfg", + "rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_cfg:Base_DAggerRunnerCfg", + }, +) + +gym.register( + id="OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-Tactile-Play-v0", + entry_point="isaaclab.envs:ManagerBasedRLEnv", + disable_env_checker=True, + kwargs={ + "env_cfg_entry_point": f"{__name__}.data_collection_tactile_cfg:Ur5eRobotiq2f85EvalTactileRelCartesianOSCCfg", + "rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_cfg:Base_DAggerRunnerCfg", + }, +) \ No newline at end of file diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/agents/rsl_rl_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/agents/rsl_rl_cfg.py index 8f6db98e..89db31b1 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/agents/rsl_rl_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/agents/rsl_rl_cfg.py @@ -71,7 +71,7 @@ class Base_DAggerRunnerCfg(Base_PPORunnerCfg): max_grad_norm=1.0, offline_algorithm_cfg=OffPolicyAlgorithmCfg( behavior_cloning_cfg=BehaviorCloningCfg( - experts_path=[""], + experts_path=["logs/exported/policy.pt"], experts_loader="torch.jit.load", experts_observation_group_cfg="uwlab_tasks.manager_based.manipulation.omnireset.config.ur5e_robotiq_2f85.rl_state_cfg:ObservationsCfg.PolicyCfg", experts_observation_func=my_experts_observation_func, diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py new file mode 100644 index 00000000..abd9c6e3 --- /dev/null +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py @@ -0,0 +1,419 @@ +# Copyright (c) 2024-2026, The UW Lab Project Developers. (https://github.com/uw-lab/UWLab/blob/main/CONTRIBUTORS.md). +# All Rights Reserved. +# +# SPDX-License-Identifier: BSD-3-Clause + + +from __future__ import annotations + +from pathlib import Path + +import isaaclab.sim as sim_utils +from isaaclab.assets import RigidObjectCfg +from isaaclab.managers import EventTermCfg as EventTerm +from isaaclab.managers import ObservationGroupCfg as ObsGroup +from isaaclab.managers import ObservationTermCfg as ObsTerm +from isaaclab.managers import SceneEntityCfg +from isaaclab.managers import TerminationTermCfg as DoneTerm +from isaaclab.sensors import ContactSensorCfg, TiledCameraCfg +from isaaclab.utils import configclass + +from uwlab_assets import UWLAB_CLOUD_ASSETS_DIR + +from ... import mdp as task_mdp +from .actions import Ur5eRobotiq2f85RelativeOSCEvalAction +from .rl_state_cfg import FinetuneEvalEventCfg, RlStateSceneCfg, Ur5eRobotiq2f85RlStateCfg + + +@configclass +class DataCollectionTactileObjectSceneCfg(RlStateSceneCfg): + # background + # curtain_left = RigidObjectCfg( + # prim_path="{ENV_REGEX_NS}/CurtainLeft", + # init_state=RigidObjectCfg.InitialStateCfg(pos=(0.4, -0.68, 0.519), rot=(0.707, 0.0, 0.0, -0.707)), + # spawn=sim_utils.CuboidCfg( + # size=(0.01, 1.0, 1.125), + # rigid_props=sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True), + # visual_material=sim_utils.PreviewSurfaceCfg(diffuse_color=(0.0, 0.0, 0.0)), + # collision_props=sim_utils.CollisionPropertiesCfg( + # collision_enabled=False, + # ), + # ), + # ) + + # curtain_back = RigidObjectCfg( + # prim_path="{ENV_REGEX_NS}/CurtainBack", + # init_state=RigidObjectCfg.InitialStateCfg(pos=(-0.15, 0.0, 0.519), rot=(1.0, 0.0, 0.0, 0.0)), + # spawn=sim_utils.CuboidCfg( + # size=(0.01, 1.3, 1.125), + # rigid_props=sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True), + # visual_material=sim_utils.PreviewSurfaceCfg(diffuse_color=(0.0, 0.0, 0.0)), + # collision_props=sim_utils.CollisionPropertiesCfg( + # collision_enabled=False, + # ), + # ), + # ) + + # curtain_right = RigidObjectCfg( + # prim_path="{ENV_REGEX_NS}/CurtainRight", + # init_state=RigidObjectCfg.InitialStateCfg(pos=(0.4, 0.68, 0.519), rot=(0.707, 0.0, 0.0, -0.707)), + # spawn=sim_utils.CuboidCfg( + # size=(0.01, 1.0, 1.125), + # rigid_props=sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True), + # visual_material=sim_utils.PreviewSurfaceCfg(diffuse_color=(0.0, 0.0, 0.0)), + # collision_props=sim_utils.CollisionPropertiesCfg( + # collision_enabled=False, + # ), + # ), + # ) + + # front_camera = TiledCameraCfg( + # prim_path="{ENV_REGEX_NS}/Robot/rgb_front_camera", + # update_period=0, + # height=240, + # width=320, + # offset=TiledCameraCfg.OffsetCfg( + # pos=(1.0770121, -0.1679045, 0.4486344), + # rot=(0.70564552, 0.46613815, 0.25072644, 0.47107948), + # convention="opengl", + # ), + # data_types=["rgb"], + # spawn=sim_utils.PinholeCameraCfg(focal_length=13.20), + # ) + + # side_camera = TiledCameraCfg( + # prim_path="{ENV_REGEX_NS}/Robot/rgb_side_camera", + # update_period=0, + # height=240, + # width=320, + # offset=TiledCameraCfg.OffsetCfg( + # pos=(0.8323904, 0.5877843, 0.2805111), + # rot=(0.29008842, 0.22122445, 0.51336143, 0.77676798), + # convention="opengl", + # ), + # data_types=["rgb"], + # spawn=sim_utils.PinholeCameraCfg(focal_length=20.10), + # ) + + # wrist_camera = TiledCameraCfg( + # prim_path="{ENV_REGEX_NS}/Robot/robotiq_base_link/rgb_wrist_camera", + # update_period=0, + # height=240, + # width=320, + # offset=TiledCameraCfg.OffsetCfg( + # pos=(0.0182505, -0.00408447, -0.0689107), + # rot=(0.34254336, -0.61819255, -0.6160212, 0.347879), + # convention="opengl", + # ), + # data_types=["rgb"], + # spawn=sim_utils.PinholeCameraCfg(focal_length=24.55), + # ) + + right_inner_finger_contact_sensor = ContactSensorCfg( + prim_path="{ENV_REGEX_NS}/Robot/right_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] + ) + + left_inner_finger_contact_sensor = ContactSensorCfg( + prim_path="{ENV_REGEX_NS}/Robot/left_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] + ) + #TODO: replace with force torque sensors + + +class EvalTactileObjectSceneCfg(DataCollectionTactileObjectSceneCfg): + front_camera = TiledCameraCfg( + prim_path="{ENV_REGEX_NS}/Robot/rgb_front_camera", + update_period=0, + height=1080, + width=1920, + offset=TiledCameraCfg.OffsetCfg( + pos=(1.0770121, -0.21290445, 0.4486344), + rot=(0.70564552, 0.46613815, 0.25072644, 0.47107948), + convention="opengl", + ), + data_types=["rgb"], + spawn=sim_utils.PinholeCameraCfg( + focal_length=13.20 + ) + ) + +@configclass +class TactileEventCfg(FinetuneEvalEventCfg): + """Tactile events: inherits fixed sysid + OSC gains from FinetuneEvalEventCfg, adds sensor randomization.""" + #TODO: Add randomize contact sensors + + reset_from_reset_states = EventTerm( + func=task_mdp.MultiResetManager, + mode="reset", + params={ + "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "reset_types": ["ObjectAnywhereEEGrasped"], + "probs": [1.0], + "success": "env.reward_manager.get_term_cfg('progress_context').func.success", + }, + ) + + +@configclass +class DataCollectionTactileEventCfg(TactileEventCfg): + """Data collection events: override reset to sample from all 4 distributions.""" + + reset_from_reset_states = EventTerm( + func=task_mdp.MultiResetManager, + mode="reset", + params={ + "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "reset_types": [ + "ObjectAnywhereEEAnywhere", + "ObjectRestingEEGrasped", + "ObjectAnywhereEEGrasped", + "ObjectPartiallyAssembledEEGrasped", + ], + "probs": [0.25, 0.25, 0.25, 0.25], + "success": "env.reward_manager.get_term_cfg('progress_context').func.success", + }, + ) + + +@configclass +class TactileCommandCfg: + """Command specifications for the MDP.""" + + task_command = task_mdp.TaskCommandCfg( + asset_cfg=SceneEntityCfg("robot", body_names="body"), + resampling_time_range=(1e6, 1e6), + insertive_asset_cfg=SceneEntityCfg("insertive_object"), + receptive_asset_cfg=SceneEntityCfg("receptive_object"), + ) + + +@configclass +class TactileObservationsCfg: + @configclass + class TactilePolicyCfg(ObsGroup): + """Observations for policy group (with processed images for evaluation).""" + + last_gripper_action = ObsTerm( + func=task_mdp.last_action, + params={ + "action_name": "gripper", + }, + ) + + last_arm_action = ObsTerm( + func=task_mdp.last_action, + params={ + "action_name": "arm", + }, + ) + + arm_joint_pos = ObsTerm( + func=task_mdp.joint_pos, + params={ + "asset_cfg": SceneEntityCfg("robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"]), + }, + ) + + end_effector_pose = ObsTerm( + func=task_mdp.target_asset_pose_in_root_asset_frame, + params={ + "target_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + "root_asset_cfg": SceneEntityCfg("robot"), + "rotation_repr": "axis_angle", + }, + ) + + right_inner_finger_contact_force = ObsTerm( + func=task_mdp.fingertip_contact_force_b, + params={ + "contact_sensor_name": "right_inner_finger_contact_sensor", + "root_asset_cfg": SceneEntityCfg("robot"), + "root_body_name": "robotiq_base_link", + }, + ) + + left_inner_finger_contact_force = ObsTerm( + func=task_mdp.fingertip_contact_force_b, + params={ + "contact_sensor_name": "left_inner_finger_contact_sensor", + "root_asset_cfg": SceneEntityCfg("robot"), + "root_body_name": "robotiq_base_link", + }, + ) + + def __post_init__(self): + self.enable_corruption = True + self.concatenate_terms = False + + @configclass + class TactileDataCollectionCfg(ObsGroup): + """Observations for data collection group (with unprocessed images for saving).""" + + last_gripper_action = ObsTerm( + func=task_mdp.last_action, + params={ + "action_name": "gripper", + }, + ) + + last_arm_action = ObsTerm( + func=task_mdp.last_action, + params={ + "action_name": "arm", + }, + ) + + arm_joint_pos = ObsTerm( + func=task_mdp.joint_pos, + params={ + "asset_cfg": SceneEntityCfg("robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"]), + }, + ) + + end_effector_pose = ObsTerm( + func=task_mdp.target_asset_pose_in_root_asset_frame, + params={ + "target_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + "root_asset_cfg": SceneEntityCfg("robot"), + "rotation_repr": "axis_angle", + }, + ) + + # Additional observations + binary_contact = ObsTerm( + func=task_mdp.binary_force_contact, + params={ + "asset_cfg": SceneEntityCfg("robot"), + "body_name": "wrist_3_link", + "force_threshold": 25.0, + }, + ) + + insertive_asset_pose = ObsTerm( + func=task_mdp.target_asset_pose_in_root_asset_frame, + params={ + "target_asset_cfg": SceneEntityCfg("insertive_object"), + "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + "rotation_repr": "axis_angle", + }, + ) + + receptive_asset_pose = ObsTerm( + func=task_mdp.target_asset_pose_in_root_asset_frame, + params={ + "target_asset_cfg": SceneEntityCfg("receptive_object"), + "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + "rotation_repr": "axis_angle", + }, + ) + + insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( + func=task_mdp.target_asset_pose_in_root_asset_frame, + params={ + "target_asset_cfg": SceneEntityCfg("insertive_object"), + "root_asset_cfg": SceneEntityCfg("receptive_object"), + "rotation_repr": "axis_angle", + }, + ) + + right_inner_finger_contact_force = ObsTerm( + func=task_mdp.fingertip_contact_force_b, + params={ + "contact_sensor_name": "right_inner_finger_contact_sensor", + "root_asset_cfg": SceneEntityCfg("robot"), + "root_body_name": "robotiq_base_link", + }, + ) + + left_inner_finger_contact_force = ObsTerm( + func=task_mdp.fingertip_contact_force_b, + params={ + "contact_sensor_name": "left_inner_finger_contact_sensor", + "root_asset_cfg": SceneEntityCfg("robot"), + "root_body_name": "robotiq_base_link", + }, + ) + + def __post_init__(self): + self.enable_corruption = True + self.concatenate_terms = False + + # observation groups + policy: TactilePolicyCfg = TactilePolicyCfg() + data_collection: TactileDataCollectionCfg = TactileDataCollectionCfg() + + +@configclass +class DataCollectionTactileTerminationsCfg: + + time_out = DoneTerm(func=task_mdp.time_out, time_out=True) + + abnormal_robot = DoneTerm(func=task_mdp.abnormal_robot_state) + + # corrupted_camera = DoneTerm( + # func=task_mdp.corrupted_camera_detected, + # params={"camera_names": ["front_camera", "side_camera", "wrist_camera"], "std_threshold": 10.0}, + # ) + + early_success = DoneTerm( + func=task_mdp.early_success_termination, params={"num_consecutive_successes": 5, "min_episode_length": 10} + ) + + success = DoneTerm( + func=task_mdp.consecutive_success_state_with_min_length, + params={"num_consecutive_successes": 5, "min_episode_length": 10}, + ) + + +@configclass +class Ur5eRobotiq2f85TactileRelCartesianOSCEvalCfg(Ur5eRobotiq2f85RlStateCfg): + """Tactile base config: fixed sysid + Tactile scene/obs/terminations/render.""" + + actions: Ur5eRobotiq2f85RelativeOSCEvalAction = Ur5eRobotiq2f85RelativeOSCEvalAction() + scene: DataCollectionTactileObjectSceneCfg = DataCollectionTactileObjectSceneCfg( + num_envs=32, env_spacing=1.5, replicate_physics=False + ) + observations: TactileObservationsCfg = TactileObservationsCfg() + terminations: DataCollectionTactileTerminationsCfg = DataCollectionTactileTerminationsCfg() + commands: TactileCommandCfg = TactileCommandCfg() + + def __post_init__(self): + super().__post_init__() + + self.episode_length_s = 16.0 + + # Render settings + # self.sim.render.enable_dlssg = False + # self.sim.render.enable_ambient_occlusion = True + # self.sim.render.enable_reflections = True + # self.sim.render.enable_dl_denoiser = True + # self.sim.render.antialiasing_mode = "DLAA" + + # speeds up rendering + self.sim.render_interval = self.decimation + + # rerender on reset + self.num_rerenders_on_reset = 1 + + +@configclass +class Ur5eRobotiq2f85DataCollectionTactileRelCartesianOSCCfg(Ur5eRobotiq2f85TactileRelCartesianOSCEvalCfg): + events: TactileEventCfg = TactileEventCfg() + + +@configclass +class Ur5eRobotiq2f85EvalTactileRelCartesianOSCCfg(Ur5eRobotiq2f85TactileRelCartesianOSCEvalCfg): + """Evaluation config for Cartesian OSC delta actions.""" + scene: EvalTactileObjectSceneCfg = EvalTactileObjectSceneCfg(num_envs=32, env_spacing=1.5, replicate_physics=False) + events: TactileEventCfg = TactileEventCfg() + + def __post_init__(self): + super().__post_init__() + self.observations.policy.front_rgb = ObsTerm( + func=task_mdp.process_image, + params={ + "sensor_cfg": SceneEntityCfg("front_camera"), + "data_type": "rgb", + "process_image": True, + "output_size": (1080, 1920) + }, + ) \ No newline at end of file diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/observations.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/observations.py index 43a64881..2b62497a 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/observations.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/observations.py @@ -299,3 +299,34 @@ def binary_force_contact( force_norm = torch.norm(wrench_b[:, :3], dim=-1) # (N,) contact = (force_norm > force_threshold).float() return contact.unsqueeze(-1) # (N, 1) + +def fingertip_contact_force_b( + env: ManagerBasedRLEnv, + contact_sensor_name: str, + root_asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), + root_body_name: str = "robotiq_base_link", +) -> torch.Tensor: + """Get contact force from a single fingertip sensor in body frame. + + Args: + env: The environment to extract contact forces from. + contact_sensor_name: Name of the contact sensor to read from. + root_asset_cfg: Configuration for the root asset to transform forces into its frame. + root_body_name: Name of the body in the root asset to use as reference frame. + + Returns: + Contact force in body frame. Shape: (num_envs, 3). + """ + root_asset: Articulation = env.scene[root_asset_cfg.name] + root_body_idx = root_asset.body_names.index(root_body_name) + root_quat_w = root_asset.data.body_link_quat_w[:, root_body_idx].view(-1, 4) + + contact_sensor = env.scene.sensors[contact_sensor_name] + # Get contact forces in world frame using force_matrix_w + # force_matrix_w is flattened, so we reshape to (num_envs, 3) + force_w = contact_sensor.data.force_matrix_w.view(env.num_envs, 3) + + # Transform force from world to body frame (rotation only, forces are free vectors) + force_b = math_utils.quat_apply_inverse(root_quat_w, force_w) + + return force_b \ No newline at end of file diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders.py index 0da795bb..34e45b58 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders.py @@ -84,3 +84,22 @@ class PreStepDataCollectionObservationsRecorder(RecorderTerm): def record_pre_step(self): """Record data collection observations from the data_collection observation group.""" return "obs", self._env.obs_buf["data_collection"] + +class PreStepExpertMaskRecorder(RecorderTerm): + """Recorder term that records an expert mask + """ + def __init__(self, cfg, env): + super().__init__(cfg, env) + self._expert_mask = torch.ones((env.num_envs, 1), device=env.device) + + def set_mask(self, expert_mask: torch.Tensor): + """Set the expert mask data externally.""" + self._expert_mask = expert_mask + + def set_exploration_horizon(self, exploration_horizon: torch.Tensor): + """Set the exploration horizon data externally.""" + self._exploration_horizon = exploration_horizon + + def record_pre_step(self) -> tuple[str, torch.Tensor]: + """Record the expert mask before each step.""" + return "expert_mask", self._expert_mask.clone() \ No newline at end of file diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders_cfg.py index 423201b5..38167520 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/recorders/recorders_cfg.py @@ -77,7 +77,11 @@ class PreStepDataCollectionObservationsRecorderCfg(RecorderTermCfg): class_type: type[RecorderTerm] = recorders.PreStepDataCollectionObservationsRecorder - +@configclass +class PreStepExpertMaskRecorderCfg(RecorderTermCfg): + """Configuration for the expert action mask recorder term (for DAgger).""" + class_type: type[RecorderTerm] = recorders.PreStepExpertMaskRecorder + @configclass class ActionStateRecorderManagerCfg(RecorderManagerBaseCfg): """Recorder manager that records raw actions and observations for data collection.""" @@ -86,3 +90,4 @@ class ActionStateRecorderManagerCfg(RecorderManagerBaseCfg): record_post_step_states = PostStepStatesRecorderCfg() record_pre_step_actions = PreStepActionsRecorderCfg() record_pre_step_data_collection_observations = PreStepDataCollectionObservationsRecorderCfg() + record_pre_step_expert_mask = PreStepExpertMaskRecorderCfg() From 5b5d790a22a5c5e206b8167df326e3320531166c Mon Sep 17 00:00:00 2001 From: sriyash421 Date: Thu, 30 Apr 2026 14:48:00 -0700 Subject: [PATCH 02/22] UWLab updated --- --force | 1 + .gitmodules | 3 - README.md | 7 + run.sh | 8 +- run_incontext_exploration.py | 4 +- scripts_v2/tools/record_reset_states.py | 7 +- scripts_v2/tools/visualize_reset_states.py | 2 +- .../data_collection_tactile_cfg.py | 194 +++++---- .../ur5e_robotiq_2f85/reset_states_cfg.py | 398 +++++++++--------- .../config/ur5e_robotiq_2f85/rl_state_cfg.py | 232 +++++----- .../manipulation/omnireset/mdp/commands.py | 50 +-- .../omnireset/mdp/commands_cfg.py | 2 +- .../manipulation/omnireset/mdp/events.py | 26 +- .../manipulation/omnireset/mdp/rewards.py | 68 +++ 14 files changed, 551 insertions(+), 451 deletions(-) create mode 160000 --force diff --git a/--force b/--force new file mode 160000 index 00000000..5ba07ac6 --- /dev/null +++ b/--force @@ -0,0 +1 @@ +Subproject commit 5ba07ac6661db573af695b419a7947ecb704690f diff --git a/.gitmodules b/.gitmodules index af380be5..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "diffusion_policy"] - path = diffusion_policy - url = git@github.com:sriyash421/diffusion_policy.git diff --git a/README.md b/README.md index a97c857f..2e21e131 100644 --- a/README.md +++ b/README.md @@ -50,3 +50,10 @@ See [all available environments](https://uw-lab.github.io/UWLab/main/source/over UW Lab is released under [BSD-3 License](LICENSE) The Isaac Lab framework is released under [BSD-3 License](LICENSE). + + +### Pick up task + +expert ckpt: logs/rsl_rl/ur5e_robotiq_2f85_omnireset_agent/2026-04-29_18-42-38/model_5300.pt + +stage2_ckpt: logs/rsl_rl/ur5e_robotiq_2f85_omnireset_agent/2026-04-30_10-00-04/model_5500.pt \ No newline at end of file diff --git a/run.sh b/run.sh index 846877ee..cb91c8ab 100644 --- a/run.sh +++ b/run.sh @@ -1,11 +1,12 @@ -exp_name="pomdp_tactile_peg_insertion" +# exp_name="pomdp_tactile_peg_insertion" +exp_name="pomdp_tactile_peg_pick" sched="fixed" mkdir -p logs/$exp_name for seed in 0; do python run_incontext_exploration.py \ --data_task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-Tactile-DataCollection-v0 \ - --eval_task OmniReset-Ur5eRobotiq2f85-RelCartesianOSCScaled-Tactile-Play-v0 \ + --eval_task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-Tactile-Play-v0 \ --expert_policy_checkpoint logs/exported/policy.pt \ --num_demos 8192 \ --num_data_envs 256 \ @@ -16,8 +17,7 @@ for seed in 0; do --output_dir logs/$exp_name \ --exp_name $exp_name \ --insertive_object peg \ - --receptive_object peghole \ - --expert_noise 0.0 \ + --expert_noise 0.05 \ --schedule $sched \ --max_iterations 6 \ --no_video --seed $seed diff --git a/run_incontext_exploration.py b/run_incontext_exploration.py index 904a3b0c..e401ddfc 100644 --- a/run_incontext_exploration.py +++ b/run_incontext_exploration.py @@ -343,7 +343,7 @@ def eval_policy( 8.0 ] if args.schedule == "fixed": - episode_length_s = [16.0, 16.0, 16.0, 16.0, 16.0] + episode_length_s = [8.0, 8.0, 8.0, 8.0, 8.0] horizons = [ (0.2, 0.5), (0.3, 0.7), @@ -479,7 +479,7 @@ def eval_policy( exp_name=exp_name, wandb_project=wandb_project, wandb_group="eval", - episode_length_s=8.0, + episode_length_s=10.0, insertive_object=args.insertive_object, receptive_object=args.receptive_object, no_video=args.no_video, diff --git a/scripts_v2/tools/record_reset_states.py b/scripts_v2/tools/record_reset_states.py index c656bba1..6b268fcd 100644 --- a/scripts_v2/tools/record_reset_states.py +++ b/scripts_v2/tools/record_reset_states.py @@ -80,8 +80,9 @@ def main(env_cfg, agent_cfg) -> None: # Derive pair directory and reset type for output path insertive_usd_path = env_cfg.scene.insertive_object.spawn.usd_path - receptive_usd_path = env_cfg.scene.receptive_object.spawn.usd_path - pair = task_mdp.utils.compute_pair_dir(insertive_usd_path, receptive_usd_path) + pair = task_mdp.utils.compute_pair_dir(insertive_usd_path) + # receptive_usd_path = env_cfg.scene.receptive_object.spawn.usd_path + # pair = task_mdp.utils.compute_pair_dir(insertive_usd_path, receptive_usd_path) # Auto-infer reset_type from task name if not provided reset_type = args_cli.reset_type @@ -100,7 +101,7 @@ def main(env_cfg, agent_cfg) -> None: print(f"Recording reset states for: {pair} / {reset_type}") print(f"Insertive: {insertive_usd_path}") - print(f"Receptive: {receptive_usd_path}") + # print(f"Receptive: {receptive_usd_path}") # Setup recording configuration output_dir = os.path.join(args_cli.dataset_dir, "Resets", pair) diff --git a/scripts_v2/tools/visualize_reset_states.py b/scripts_v2/tools/visualize_reset_states.py index db2eb403..b601cd7c 100644 --- a/scripts_v2/tools/visualize_reset_states.py +++ b/scripts_v2/tools/visualize_reset_states.py @@ -70,7 +70,7 @@ def main(env_cfg, agent_cfg) -> None: "ObjectAnywhereEEAnywhere", "ObjectRestingEEGrasped", "ObjectAnywhereEEGrasped", - "ObjectPartiallyAssembledEEGrasped", + # "ObjectPartiallyAssembledEEGrasped", ] reset_types = [args_cli.reset_type] if args_cli.reset_type else ALL_RESET_TYPES env_cfg.events.reset_from_reset_states.params["dataset_dir"] = args_cli.dataset_dir diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py index abd9c6e3..67e98cbd 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/data_collection_tactile_cfg.py @@ -27,6 +27,7 @@ @configclass class DataCollectionTactileObjectSceneCfg(RlStateSceneCfg): + pass # background # curtain_left = RigidObjectCfg( # prim_path="{ENV_REGEX_NS}/CurtainLeft", @@ -109,13 +110,13 @@ class DataCollectionTactileObjectSceneCfg(RlStateSceneCfg): # spawn=sim_utils.PinholeCameraCfg(focal_length=24.55), # ) - right_inner_finger_contact_sensor = ContactSensorCfg( - prim_path="{ENV_REGEX_NS}/Robot/right_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] - ) + # right_inner_finger_contact_sensor = ContactSensorCfg( + # prim_path="{ENV_REGEX_NS}/Robot/right_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] + # ) - left_inner_finger_contact_sensor = ContactSensorCfg( - prim_path="{ENV_REGEX_NS}/Robot/left_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] - ) + # left_inner_finger_contact_sensor = ContactSensorCfg( + # prim_path="{ENV_REGEX_NS}/Robot/left_inner_finger", update_period=0.0, history_length=6, debug_vis=False, filter_prim_paths_expr=["{ENV_REGEX_NS}/InsertiveObject"] + # ) #TODO: replace with force torque sensors @@ -145,33 +146,34 @@ class TactileEventCfg(FinetuneEvalEventCfg): func=task_mdp.MultiResetManager, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", - "reset_types": ["ObjectAnywhereEEGrasped"], + "dataset_dir": f"logs/reset_state_datasets", + "reset_types": ["ObjectAnywhereEEAnywhere"], "probs": [1.0], "success": "env.reward_manager.get_term_cfg('progress_context').func.success", }, ) -@configclass -class DataCollectionTactileEventCfg(TactileEventCfg): - """Data collection events: override reset to sample from all 4 distributions.""" - - reset_from_reset_states = EventTerm( - func=task_mdp.MultiResetManager, - mode="reset", - params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", - "reset_types": [ - "ObjectAnywhereEEAnywhere", - "ObjectRestingEEGrasped", - "ObjectAnywhereEEGrasped", - "ObjectPartiallyAssembledEEGrasped", - ], - "probs": [0.25, 0.25, 0.25, 0.25], - "success": "env.reward_manager.get_term_cfg('progress_context').func.success", - }, - ) +# @configclass +# class DataCollectionTactileEventCfg(TactileEventCfg): +# """Data collection events: override reset to sample from all 4 distributions.""" + +# reset_from_reset_states = EventTerm( +# func=task_mdp.MultiResetManager, +# mode="reset", +# params={ +# "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", +# "reset_types": [ +# "ObjectAnywhereEEAnywhere", +# "ObjectRestingEEGrasped", +# "ObjectAnywhereEEGrasped", +# # "ObjectPartiallyAssembledEEGrasped", +# ], +# "probs": [0.25, 0.25, 0.25, 0.25], +# "probs" +# "success": "env.reward_manager.get_term_cfg('progress_context').func.success", +# }, +# ) @configclass @@ -182,7 +184,7 @@ class TactileCommandCfg: asset_cfg=SceneEntityCfg("robot", body_names="body"), resampling_time_range=(1e6, 1e6), insertive_asset_cfg=SceneEntityCfg("insertive_object"), - receptive_asset_cfg=SceneEntityCfg("receptive_object"), + # receptive_asset_cfg=SceneEntityCfg("receptive_object"), ) @@ -222,23 +224,33 @@ class TactilePolicyCfg(ObsGroup): }, ) - right_inner_finger_contact_force = ObsTerm( - func=task_mdp.fingertip_contact_force_b, + gripper_joint_pos = ObsTerm( + func=task_mdp.joint_pos, params={ - "contact_sensor_name": "right_inner_finger_contact_sensor", - "root_asset_cfg": SceneEntityCfg("robot"), - "root_body_name": "robotiq_base_link", - }, + "asset_cfg": SceneEntityCfg( + "robot", + joint_names=[".*_inner_finger_knuckle_joint"], + ), + } ) - left_inner_finger_contact_force = ObsTerm( - func=task_mdp.fingertip_contact_force_b, - params={ - "contact_sensor_name": "left_inner_finger_contact_sensor", - "root_asset_cfg": SceneEntityCfg("robot"), - "root_body_name": "robotiq_base_link", - }, - ) + # right_inner_finger_contact_force = ObsTerm( + # func=task_mdp.fingertip_contact_force_b, + # params={ + # "contact_sensor_name": "right_inner_finger_contact_sensor", + # "root_asset_cfg": SceneEntityCfg("robot"), + # "root_body_name": "robotiq_base_link", + # }, + # ) + + # left_inner_finger_contact_force = ObsTerm( + # func=task_mdp.fingertip_contact_force_b, + # params={ + # "contact_sensor_name": "left_inner_finger_contact_sensor", + # "root_asset_cfg": SceneEntityCfg("robot"), + # "root_body_name": "robotiq_base_link", + # }, + # ) def __post_init__(self): self.enable_corruption = True @@ -278,6 +290,16 @@ class TactileDataCollectionCfg(ObsGroup): }, ) + gripper_joint_pos = ObsTerm( + func=task_mdp.joint_pos, + params={ + "asset_cfg": SceneEntityCfg( + "robot", + joint_names=[".*_inner_finger_knuckle_joint"], + ), + } + ) + # Additional observations binary_contact = ObsTerm( func=task_mdp.binary_force_contact, @@ -288,50 +310,50 @@ class TactileDataCollectionCfg(ObsGroup): }, ) - insertive_asset_pose = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("insertive_object"), - "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), - "rotation_repr": "axis_angle", - }, - ) - - receptive_asset_pose = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("receptive_object"), - "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), - "rotation_repr": "axis_angle", - }, - ) - - insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("insertive_object"), - "root_asset_cfg": SceneEntityCfg("receptive_object"), - "rotation_repr": "axis_angle", - }, - ) - - right_inner_finger_contact_force = ObsTerm( - func=task_mdp.fingertip_contact_force_b, - params={ - "contact_sensor_name": "right_inner_finger_contact_sensor", - "root_asset_cfg": SceneEntityCfg("robot"), - "root_body_name": "robotiq_base_link", - }, - ) - - left_inner_finger_contact_force = ObsTerm( - func=task_mdp.fingertip_contact_force_b, - params={ - "contact_sensor_name": "left_inner_finger_contact_sensor", - "root_asset_cfg": SceneEntityCfg("robot"), - "root_body_name": "robotiq_base_link", - }, - ) + # insertive_asset_pose = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("insertive_object"), + # "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + # "rotation_repr": "axis_angle", + # }, + # ) + + # receptive_asset_pose = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("receptive_object"), + # "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + # "rotation_repr": "axis_angle", + # }, + # ) + + # insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("insertive_object"), + # "root_asset_cfg": SceneEntityCfg("receptive_object"), + # "rotation_repr": "axis_angle", + # }, + # ) + + # right_inner_finger_contact_force = ObsTerm( + # func=task_mdp.fingertip_contact_force_b, + # params={ + # "contact_sensor_name": "right_inner_finger_contact_sensor", + # "root_asset_cfg": SceneEntityCfg("robot"), + # "root_body_name": "robotiq_base_link", + # }, + # ) + + # left_inner_finger_contact_force = ObsTerm( + # func=task_mdp.fingertip_contact_force_b, + # params={ + # "contact_sensor_name": "left_inner_finger_contact_sensor", + # "root_asset_cfg": SceneEntityCfg("robot"), + # "root_body_name": "robotiq_base_link", + # }, + # ) def __post_init__(self): self.enable_corruption = True diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/reset_states_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/reset_states_cfg.py index 85a042d2..01653348 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/reset_states_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/reset_states_cfg.py @@ -51,23 +51,23 @@ class ResetStatesSceneCfg(InteractiveSceneCfg): init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), ) - receptive_object: RigidObjectCfg = RigidObjectCfg( - prim_path="{ENV_REGEX_NS}/ReceptiveObject", - spawn=sim_utils.UsdFileCfg( - usd_path=f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd", - scale=(1, 1, 1), - rigid_props=sim_utils.RigidBodyPropertiesCfg( - solver_position_iteration_count=4, - solver_velocity_iteration_count=0, - disable_gravity=False, - # receptive object does not move - kinematic_enabled=True, - ), - # since kinematic_enabled=True, mass does not matter - mass_props=sim_utils.MassPropertiesCfg(mass=0.5), - ), - init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), - ) + # receptive_object: RigidObjectCfg = RigidObjectCfg( + # prim_path="{ENV_REGEX_NS}/ReceptiveObject", + # spawn=sim_utils.UsdFileCfg( + # usd_path=f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd", + # scale=(1, 1, 1), + # rigid_props=sim_utils.RigidBodyPropertiesCfg( + # solver_position_iteration_count=4, + # solver_velocity_iteration_count=0, + # disable_gravity=False, + # # receptive object does not move + # kinematic_enabled=True, + # ), + # # since kinematic_enabled=True, mass does not matter + # mass_props=sim_utils.MassPropertiesCfg(mass=0.5), + # ), + # init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), + # ) # Environment table = RigidObjectCfg( @@ -134,18 +134,18 @@ class ResetStatesBaseEventCfg: }, ) - receptive_object_material = EventTerm( - func=task_mdp.randomize_rigid_body_material, # type: ignore - mode="startup", - params={ - "static_friction_range": (0.3, 0.3), - "dynamic_friction_range": (0.2, 0.2), - "restitution_range": (0.0, 0.0), - "num_buckets": 1, - "asset_cfg": SceneEntityCfg("receptive_object"), - "make_consistent": True, - }, - ) + # receptive_object_material = EventTerm( + # func=task_mdp.randomize_rigid_body_material, # type: ignore + # mode="startup", + # params={ + # "static_friction_range": (0.3, 0.3), + # "dynamic_friction_range": (0.2, 0.2), + # "restitution_range": (0.0, 0.0), + # "num_buckets": 1, + # "asset_cfg": SceneEntityCfg("receptive_object"), + # "make_consistent": True, + # }, + # ) # reset @@ -168,24 +168,24 @@ class ResetStatesBaseEventCfg: }, ) - reset_receptive_object_pose = EventTerm( - func=task_mdp.reset_root_states_uniform, - mode="reset", - params={ - "pose_range": { - "x": (0.3, 0.55), - "y": (-0.1, 0.3), - "z": (0.0, 0.0), - "roll": (0.0, 0.0), - "pitch": (0.0, 0.0), - "yaw": (-np.pi / 12, np.pi / 12), - }, - "velocity_range": {}, - "asset_cfgs": {"receptive_object": SceneEntityCfg("receptive_object")}, - "offset_asset_cfg": SceneEntityCfg("ur5_metal_support"), - "use_bottom_offset": True, - }, - ) + # reset_receptive_object_pose = EventTerm( + # func=task_mdp.reset_root_states_uniform, + # mode="reset", + # params={ + # "pose_range": { + # "x": (0.3, 0.55), + # "y": (-0.1, 0.3), + # "z": (0.0, 0.0), + # "roll": (0.0, 0.0), + # "pitch": (0.0, 0.0), + # "yaw": (-np.pi / 12, np.pi / 12), + # }, + # "velocity_range": {}, + # "asset_cfgs": {"receptive_object": SceneEntityCfg("receptive_object")}, + # "offset_asset_cfg": SceneEntityCfg("ur5_metal_support"), + # "use_bottom_offset": True, + # }, + # ) @configclass @@ -196,7 +196,7 @@ class ObjectAnywhereEEAnywhereEventCfg(ResetStatesBaseEventCfg): params={ "pose_range": { "x": (0.3, 0.55), - "y": (-0.1, 0.5), + "y": (0.0, 0.2), "z": (0.0, 0.3), "roll": (-np.pi, np.pi), "pitch": (-np.pi, np.pi), @@ -216,12 +216,12 @@ class ObjectAnywhereEEAnywhereEventCfg(ResetStatesBaseEventCfg): "fixed_asset_cfg": SceneEntityCfg("robot"), "fixed_asset_offset": None, "pose_range_b": { - "x": (0.3, 0.7), - "y": (-0.4, 0.4), - "z": (0.0, 0.5), + "x": (0.38, 0.52), + "y": (0.1, 0.15), + "z": (0.0, 0.2), "roll": (0.0, 0.0), - "pitch": (np.pi / 4, 3 * np.pi / 4), - "yaw": (np.pi / 2, 3 * np.pi / 2), + "pitch": (np.pi / 2, np.pi / 2), + "yaw": (np.pi, np.pi), }, "robot_ik_cfg": SceneEntityCfg( "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" @@ -236,7 +236,7 @@ class ObjectRestingEEGraspedEventCfg(ResetStatesBaseEventCfg): func=task_mdp.MultiResetManager, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"reset_state_datasets/ObjectAnywhereEEAnywhereEval", "reset_types": ["ObjectAnywhereEEAnywhere"], "probs": [1.0], }, @@ -246,7 +246,7 @@ class ObjectRestingEEGraspedEventCfg(ResetStatesBaseEventCfg): func=task_mdp.reset_end_effector_from_grasp_dataset, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"grasp_datasets", "fixed_asset_cfg": SceneEntityCfg("insertive_object"), "robot_ik_cfg": SceneEntityCfg( "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" @@ -289,7 +289,7 @@ class ObjectAnywhereEEGraspedEventCfg(ResetStatesBaseEventCfg): func=task_mdp.reset_end_effector_from_grasp_dataset, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"grasp_datasets", "fixed_asset_cfg": SceneEntityCfg("insertive_object"), "robot_ik_cfg": SceneEntityCfg( "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" @@ -307,87 +307,87 @@ class ObjectAnywhereEEGraspedEventCfg(ResetStatesBaseEventCfg): ) -@configclass -class ObjectPartiallyAssembledEEAnywhereEventCfg(ResetStatesBaseEventCfg): - reset_insertive_object_pose_from_partial_assembly_dataset = EventTerm( - func=task_mdp.reset_insertive_object_from_partial_assembly_dataset, - mode="reset", - params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", - "insertive_object_cfg": SceneEntityCfg("insertive_object"), - "receptive_object_cfg": SceneEntityCfg("receptive_object"), - "pose_range_b": { - "x": (0.0, 0.0), - "y": (0.0, 0.0), - "z": (0.0, 0.0), - "roll": (0.0, 0.0), - "pitch": (0.0, 0.0), - "yaw": (0.0, 0.0), - }, - }, - ) - - reset_end_effector_pose = EventTerm( - func=task_mdp.reset_end_effector_round_fixed_asset, - mode="reset", - params={ - "fixed_asset_cfg": SceneEntityCfg("robot"), - "fixed_asset_offset": None, - "pose_range_b": { - "x": (0.3, 0.7), - "y": (-0.4, 0.4), - "z": (0.5, 0.5), - "roll": (0.0, 0.0), - "pitch": (np.pi / 4, 3 * np.pi / 4), - "yaw": (np.pi / 2, 3 * np.pi / 2), - }, - "robot_ik_cfg": SceneEntityCfg( - "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" - ), - }, - ) - - -@configclass -class ObjectPartiallyAssembledEEGraspedEventCfg(ResetStatesBaseEventCfg): - reset_insertive_object_pose_from_partial_assembly_dataset = EventTerm( - func=task_mdp.reset_insertive_object_from_partial_assembly_dataset, - mode="reset", - params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", - "insertive_object_cfg": SceneEntityCfg("insertive_object"), - "receptive_object_cfg": SceneEntityCfg("receptive_object"), - "pose_range_b": { - "x": (0.0, 0.0), - "y": (0.0, 0.0), - "z": (0.0, 0.0), - "roll": (0.0, 0.0), - "pitch": (0.0, 0.0), - "yaw": (0.0, 0.0), - }, - }, - ) - - reset_end_effector_pose_from_grasp_dataset = EventTerm( - func=task_mdp.reset_end_effector_from_grasp_dataset, - mode="reset", - params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", - "fixed_asset_cfg": SceneEntityCfg("insertive_object"), - "robot_ik_cfg": SceneEntityCfg( - "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" - ), - "gripper_cfg": SceneEntityCfg("robot", joint_names=["finger_joint", ".*right.*", ".*left.*"]), - "pose_range_b": { - "x": (-0.01, 0.01), - "y": (-0.01, 0.01), - "z": (-0.01, 0.01), - "roll": (-np.pi / 32, np.pi / 32), - "pitch": (-np.pi / 32, np.pi / 32), - "yaw": (-np.pi / 32, np.pi / 32), - }, - }, - ) +# @configclass +# class ObjectPartiallyAssembledEEAnywhereEventCfg(ResetStatesBaseEventCfg): +# reset_insertive_object_pose_from_partial_assembly_dataset = EventTerm( +# func=task_mdp.reset_insertive_object_from_partial_assembly_dataset, +# mode="reset", +# params={ +# "dataset_dir": f"reset_state_datasets", +# "insertive_object_cfg": SceneEntityCfg("insertive_object"), +# "receptive_object_cfg": SceneEntityCfg("receptive_object"), +# "pose_range_b": { +# "x": (0.0, 0.0), +# "y": (0.0, 0.0), +# "z": (0.0, 0.0), +# "roll": (0.0, 0.0), +# "pitch": (0.0, 0.0), +# "yaw": (0.0, 0.0), +# }, +# }, +# ) + +# reset_end_effector_pose = EventTerm( +# func=task_mdp.reset_end_effector_round_fixed_asset, +# mode="reset", +# params={ +# "fixed_asset_cfg": SceneEntityCfg("robot"), +# "fixed_asset_offset": None, +# "pose_range_b": { +# "x": (0.3, 0.7), +# "y": (-0.4, 0.4), +# "z": (0.5, 0.5), +# "roll": (0.0, 0.0), +# "pitch": (np.pi / 4, 3 * np.pi / 4), +# "yaw": (np.pi / 2, 3 * np.pi / 2), +# }, +# "robot_ik_cfg": SceneEntityCfg( +# "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" +# ), +# }, +# ) + + +# @configclass +# class ObjectPartiallyAssembledEEGraspedEventCfg(ResetStatesBaseEventCfg): +# reset_insertive_object_pose_from_partial_assembly_dataset = EventTerm( +# func=task_mdp.reset_insertive_object_from_partial_assembly_dataset, +# mode="reset", +# params={ +# "dataset_dir": f"reset_state_datasets", +# "insertive_object_cfg": SceneEntityCfg("insertive_object"), +# "receptive_object_cfg": SceneEntityCfg("receptive_object"), +# "pose_range_b": { +# "x": (0.0, 0.0), +# "y": (0.0, 0.0), +# "z": (0.0, 0.0), +# "roll": (0.0, 0.0), +# "pitch": (0.0, 0.0), +# "yaw": (0.0, 0.0), +# }, +# }, +# ) + +# reset_end_effector_pose_from_grasp_dataset = EventTerm( +# func=task_mdp.reset_end_effector_from_grasp_dataset, +# mode="reset", +# params={ +# "dataset_dir": f"reset_state_datasets", +# "fixed_asset_cfg": SceneEntityCfg("insertive_object"), +# "robot_ik_cfg": SceneEntityCfg( +# "robot", joint_names=["shoulder.*", "elbow.*", "wrist.*"], body_names="robotiq_base_link" +# ), +# "gripper_cfg": SceneEntityCfg("robot", joint_names=["finger_joint", ".*right.*", ".*left.*"]), +# "pose_range_b": { +# "x": (-0.01, 0.01), +# "y": (-0.01, 0.01), +# "z": (-0.01, 0.01), +# "roll": (-np.pi / 32, np.pi / 32), +# "pitch": (-np.pi / 32, np.pi / 32), +# "yaw": (-np.pi / 32, np.pi / 32), +# }, +# }, +# ) @configclass @@ -401,7 +401,7 @@ class ResetStatesTerminationCfg: success = DoneTerm( func=task_mdp.check_reset_state_success, params={ - "object_cfgs": [SceneEntityCfg("insertive_object"), SceneEntityCfg("receptive_object")], + "object_cfgs": [SceneEntityCfg("insertive_object")], #, SceneEntityCfg("receptive_object")], "robot_cfg": SceneEntityCfg("robot"), "ee_body_name": "robotiq_base_link", "collision_analyzer_cfgs": [ @@ -412,20 +412,20 @@ class ResetStatesTerminationCfg: asset_cfg=SceneEntityCfg("robot"), obstacle_cfgs=[SceneEntityCfg("insertive_object")], ), - task_mdp.CollisionAnalyzerCfg( - num_points=1024, - max_dist=0.5, - min_dist=0.0, - asset_cfg=SceneEntityCfg("robot"), - obstacle_cfgs=[SceneEntityCfg("receptive_object")], - ), - task_mdp.CollisionAnalyzerCfg( - num_points=1024, - max_dist=0.5, - min_dist=-0.001, - asset_cfg=SceneEntityCfg("insertive_object"), - obstacle_cfgs=[SceneEntityCfg("receptive_object")], - ), + # task_mdp.CollisionAnalyzerCfg( + # num_points=1024, + # max_dist=0.5, + # min_dist=0.0, + # asset_cfg=SceneEntityCfg("robot"), + # obstacle_cfgs=[SceneEntityCfg("receptive_object")], + # ), + # task_mdp.CollisionAnalyzerCfg( + # num_points=1024, + # max_dist=0.5, + # min_dist=-0.001, + # asset_cfg=SceneEntityCfg("insertive_object"), + # obstacle_cfgs=[SceneEntityCfg("receptive_object")], + # ), ], "max_robot_pos_deviation": 0.1, "max_object_pos_deviation": MISSING, @@ -468,22 +468,22 @@ def make_insertive_object(usd_path: str): ) -def make_receptive_object(usd_path: str): - return RigidObjectCfg( - prim_path="{ENV_REGEX_NS}/ReceptiveObject", - spawn=sim_utils.UsdFileCfg( - usd_path=usd_path, - scale=(1, 1, 1), - rigid_props=sim_utils.RigidBodyPropertiesCfg( - solver_position_iteration_count=4, - solver_velocity_iteration_count=0, - disable_gravity=False, - kinematic_enabled=True, - ), - mass_props=sim_utils.MassPropertiesCfg(mass=0.5), - ), - init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), - ) +# def make_receptive_object(usd_path: str): +# return RigidObjectCfg( +# prim_path="{ENV_REGEX_NS}/ReceptiveObject", +# spawn=sim_utils.UsdFileCfg( +# usd_path=usd_path, +# scale=(1, 1, 1), +# rigid_props=sim_utils.RigidBodyPropertiesCfg( +# solver_position_iteration_count=4, +# solver_velocity_iteration_count=0, +# disable_gravity=False, +# kinematic_enabled=True, +# ), +# mass_props=sim_utils.MassPropertiesCfg(mass=0.5), +# ), +# init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), +# ) variants = { @@ -497,16 +497,18 @@ def make_receptive_object(usd_path: str): "cube": make_insertive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/InsertiveCube/insertive_cube.usd"), "rectangle": make_insertive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Rectangle/rectangle.usd"), }, - "scene.receptive_object": { - "fbtabletop": make_receptive_object( - f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/SquareTableTop/square_table_top.usd" - ), - "fbdrawerbox": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/DrawerBox/drawer_box.usd"), - "peghole": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd"), - "plate": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Plate/plate.usd"), - "cube": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/ReceptiveCube/receptive_cube.usd"), - "wall": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Wall/wall.usd"), - }, + # "scene.receptive_object": { + # "fbtabletop": make_receptive_object( + # f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/SquareTableTop/square_table_top.usd" + # ), + # "fbdrawerbox": make_receptive_object( + # f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/DrawerBox/drawer_box.usd" + # ), + # "peghole": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd"), + # "plate": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Plate/plate.usd"), + # "cube": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/ReceptiveCube/receptive_cube.usd"), + # "wall": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Wall/wall.usd"), + # }, } @@ -577,27 +579,27 @@ def __post_init__(self): self.terminations.success.params["max_object_pos_deviation"] = 0.05 -@configclass -class ObjectPartiallyAssembledEEAnywhereResetStatesCfg(UR5eRobotiq2f85ResetStatesCfg): - events: ObjectPartiallyAssembledEEAnywhereEventCfg = ObjectPartiallyAssembledEEAnywhereEventCfg() +# @configclass +# class ObjectPartiallyAssembledEEAnywhereResetStatesCfg(UR5eRobotiq2f85ResetStatesCfg): +# events: ObjectPartiallyAssembledEEAnywhereEventCfg = ObjectPartiallyAssembledEEAnywhereEventCfg() - def __post_init__(self): - super().__post_init__() - self.terminations.success.params["max_object_pos_deviation"] = 0.025 - self.terminations.success.params["insertive_asset_cfg"] = SceneEntityCfg("insertive_object") - self.terminations.success.params["receptive_asset_cfg"] = SceneEntityCfg("receptive_object") - self.terminations.success.params["assembly_success_prob"] = 0.5 - self.terminations.success.params["assembly_threshold_scale"] = 1.5 +# def __post_init__(self): +# super().__post_init__() +# self.terminations.success.params["max_object_pos_deviation"] = 0.025 +# self.terminations.success.params["insertive_asset_cfg"] = SceneEntityCfg("insertive_object") +# # self.terminations.success.params["receptive_asset_cfg"] = SceneEntityCfg("receptive_object") +# self.terminations.success.params["assembly_success_prob"] = 0.5 +# self.terminations.success.params["assembly_threshold_scale"] = 1.5 -@configclass -class ObjectPartiallyAssembledEEGraspedResetStatesCfg(UR5eRobotiq2f85ResetStatesCfg): - events: ObjectPartiallyAssembledEEGraspedEventCfg = ObjectPartiallyAssembledEEGraspedEventCfg() +# @configclass +# class ObjectPartiallyAssembledEEGraspedResetStatesCfg(UR5eRobotiq2f85ResetStatesCfg): +# events: ObjectPartiallyAssembledEEGraspedEventCfg = ObjectPartiallyAssembledEEGraspedEventCfg() - def __post_init__(self): - super().__post_init__() - self.terminations.success.params["max_object_pos_deviation"] = 0.025 - self.terminations.success.params["insertive_asset_cfg"] = SceneEntityCfg("insertive_object") - self.terminations.success.params["receptive_asset_cfg"] = SceneEntityCfg("receptive_object") - self.terminations.success.params["assembly_success_prob"] = 0.5 - self.terminations.success.params["assembly_threshold_scale"] = 1.5 +# def __post_init__(self): +# super().__post_init__() +# self.terminations.success.params["max_object_pos_deviation"] = 0.025 +# self.terminations.success.params["insertive_asset_cfg"] = SceneEntityCfg("insertive_object") +# # self.terminations.success.params["receptive_asset_cfg"] = SceneEntityCfg("receptive_object") +# self.terminations.success.params["assembly_success_prob"] = 0.5 +# self.terminations.success.params["assembly_threshold_scale"] = 1.5 diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/rl_state_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/rl_state_cfg.py index e35809cb..22034413 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/rl_state_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/config/ur5e_robotiq_2f85/rl_state_cfg.py @@ -54,21 +54,21 @@ class RlStateSceneCfg(InteractiveSceneCfg): init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), ) - receptive_object: RigidObjectCfg = RigidObjectCfg( - prim_path="{ENV_REGEX_NS}/ReceptiveObject", - spawn=sim_utils.UsdFileCfg( - usd_path=f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd", - scale=(1, 1, 1), - rigid_props=sim_utils.RigidBodyPropertiesCfg( - solver_position_iteration_count=4, - solver_velocity_iteration_count=0, - disable_gravity=False, - kinematic_enabled=True, - ), - mass_props=sim_utils.MassPropertiesCfg(mass=0.5), - ), - init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), - ) + # receptive_object: RigidObjectCfg = RigidObjectCfg( + # prim_path="{ENV_REGEX_NS}/ReceptiveObject", + # spawn=sim_utils.UsdFileCfg( + # usd_path=f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd", + # scale=(1, 1, 1), + # rigid_props=sim_utils.RigidBodyPropertiesCfg( + # solver_position_iteration_count=4, + # solver_velocity_iteration_count=0, + # disable_gravity=False, + # kinematic_enabled=True, + # ), + # mass_props=sim_utils.MassPropertiesCfg(mass=0.5), + # ), + # init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), + # ) # Environment table = RigidObjectCfg( @@ -140,18 +140,18 @@ class BaseEventCfg: }, ) - receptive_object_material = EventTerm( - func=task_mdp.randomize_rigid_body_material, # type: ignore - mode="startup", - params={ - "static_friction_range": (0.2, 0.6), - "dynamic_friction_range": (0.15, 0.5), - "restitution_range": (0.0, 0.0), - "num_buckets": 256, - "asset_cfg": SceneEntityCfg("receptive_object"), - "make_consistent": True, - }, - ) + # receptive_object_material = EventTerm( + # func=task_mdp.randomize_rigid_body_material, # type: ignore + # mode="startup", + # params={ + # "static_friction_range": (0.2, 0.6), + # "dynamic_friction_range": (0.15, 0.5), + # "restitution_range": (0.0, 0.0), + # "num_buckets": 256, + # "asset_cfg": SceneEntityCfg("receptive_object"), + # "make_consistent": True, + # }, + # ) table_material = EventTerm( func=task_mdp.randomize_rigid_body_material, # type: ignore @@ -191,17 +191,17 @@ class BaseEventCfg: }, ) - randomize_receptive_object_mass = EventTerm( - func=task_mdp.randomize_rigid_body_mass, - mode="startup", - params={ - "asset_cfg": SceneEntityCfg("receptive_object"), - "mass_distribution_params": (0.5, 1.5), - "operation": "scale", - "distribution": "uniform", - "recompute_inertia": True, - }, - ) + # randomize_receptive_object_mass = EventTerm( + # func=task_mdp.randomize_rigid_body_mass, + # mode="startup", + # params={ + # "asset_cfg": SceneEntityCfg("receptive_object"), + # "mass_distribution_params": (0.5, 1.5), + # "operation": "scale", + # "distribution": "uniform", + # "recompute_inertia": True, + # }, + # ) randomize_table_mass = EventTerm( func=task_mdp.randomize_rigid_body_mass, @@ -239,14 +239,14 @@ class TrainEventCfg(BaseEventCfg): func=task_mdp.MultiResetManager, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"reset_state_datasets", "reset_types": [ "ObjectAnywhereEEAnywhere", "ObjectRestingEEGrasped", - "ObjectAnywhereEEGrasped", - "ObjectPartiallyAssembledEEGrasped", + "ObjectAnywhereEEGrasped" ], - "probs": [0.25, 0.25, 0.25, 0.25], + # "probs": [0.25, 0.25, 0.25, 0.25], + "probs": [0.34, 0.33, 0.33], "success": "env.reward_manager.get_term_cfg('progress_context').func.success", }, ) @@ -260,7 +260,7 @@ class TrainEvalEventCfg(BaseEventCfg): func=task_mdp.MultiResetManager, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"reset_state_datasets", "reset_types": ["ObjectAnywhereEEAnywhere"], "probs": [1.0], "success": "env.reward_manager.get_term_cfg('progress_context').func.success", @@ -304,7 +304,7 @@ class FinetuneEvalEventCfg(BaseEventCfg): func=task_mdp.MultiResetManager, mode="reset", params={ - "dataset_dir": f"{UWLAB_CLOUD_ASSETS_DIR}/Datasets/OmniReset", + "dataset_dir": f"reset_state_datasets", "reset_types": ["ObjectAnywhereEEAnywhere"], "probs": [1.0], "success": "env.reward_manager.get_term_cfg('progress_context').func.success", @@ -357,7 +357,7 @@ class CommandsCfg: asset_cfg=SceneEntityCfg("robot", body_names="body"), resampling_time_range=(1e6, 1e6), insertive_asset_cfg=SceneEntityCfg("insertive_object"), - receptive_asset_cfg=SceneEntityCfg("receptive_object"), + # receptive_asset_cfg=SceneEntityCfg("receptive_object"), ) @@ -391,23 +391,23 @@ class PolicyCfg(ObsGroup): }, ) - receptive_asset_pose = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("receptive_object"), - "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), - "rotation_repr": "axis_angle", - }, - ) - - insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("insertive_object"), - "root_asset_cfg": SceneEntityCfg("receptive_object"), - "rotation_repr": "axis_angle", - }, - ) + # receptive_asset_pose = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("receptive_object"), + # "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + # "rotation_repr": "axis_angle", + # }, + # ) + + # insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("insertive_object"), + # "root_asset_cfg": SceneEntityCfg("receptive_object"), + # "rotation_repr": "axis_angle", + # }, + # ) def __post_init__(self): self.enable_corruption = True @@ -440,23 +440,23 @@ class CriticCfg(ObsGroup): }, ) - receptive_asset_pose = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("receptive_object"), - "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), - "rotation_repr": "axis_angle", - }, - ) - - insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( - func=task_mdp.target_asset_pose_in_root_asset_frame, - params={ - "target_asset_cfg": SceneEntityCfg("insertive_object"), - "root_asset_cfg": SceneEntityCfg("receptive_object"), - "rotation_repr": "axis_angle", - }, - ) + # receptive_asset_pose = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("receptive_object"), + # "root_asset_cfg": SceneEntityCfg("robot", body_names="wrist_3_link"), + # "rotation_repr": "axis_angle", + # }, + # ) + + # insertive_asset_in_receptive_asset_frame: ObsTerm = ObsTerm( + # func=task_mdp.target_asset_pose_in_root_asset_frame, + # params={ + # "target_asset_cfg": SceneEntityCfg("insertive_object"), + # "root_asset_cfg": SceneEntityCfg("receptive_object"), + # "rotation_repr": "axis_angle", + # }, + # ) # privileged observations time_left = ObsTerm(func=task_mdp.time_left) @@ -479,9 +479,9 @@ class CriticCfg(ObsGroup): func=task_mdp.get_material_properties, params={"asset_cfg": SceneEntityCfg("insertive_object")} ) - receptive_object_material_properties = ObsTerm( - func=task_mdp.get_material_properties, params={"asset_cfg": SceneEntityCfg("receptive_object")} - ) + # receptive_object_material_properties = ObsTerm( + # func=task_mdp.get_material_properties, params={"asset_cfg": SceneEntityCfg("receptive_object")} + # ) table_material_properties = ObsTerm( func=task_mdp.get_material_properties, params={"asset_cfg": SceneEntityCfg("table")} @@ -493,9 +493,9 @@ class CriticCfg(ObsGroup): func=task_mdp.get_mass, params={"asset_cfg": SceneEntityCfg("insertive_object")} ) - receptive_object_mass = ObsTerm( - func=task_mdp.get_mass, params={"asset_cfg": SceneEntityCfg("receptive_object")} - ) + # receptive_object_mass = ObsTerm( + # func=task_mdp.get_mass, params={"asset_cfg": SceneEntityCfg("receptive_object")} + # ) table_mass = ObsTerm(func=task_mdp.get_mass, params={"asset_cfg": SceneEntityCfg("table")}) @@ -539,11 +539,11 @@ class RewardsCfg: # task rewards progress_context = RewTerm( - func=task_mdp.ProgressContext, # type: ignore + func=task_mdp.ProgressContextPickOnly, # type: ignore weight=0.1, params={ "insertive_asset_cfg": SceneEntityCfg("insertive_object"), - "receptive_asset_cfg": SceneEntityCfg("receptive_object"), + # "receptive_asset_cfg": SceneEntityCfg("receptive_object"), }, ) @@ -558,9 +558,9 @@ class RewardsCfg: }, ) - dense_success_reward = RewTerm(func=task_mdp.dense_success_reward, weight=0.1, params={"std": 1.0}) + dense_success_reward = RewTerm(func=task_mdp.dense_success_reward_pick_only, weight=0.1, params={"std": 1.0}) - success_reward = RewTerm(func=task_mdp.success_reward, weight=1.0) + success_reward = RewTerm(func=task_mdp.success_reward_pick_only, weight=1.0) @configclass @@ -631,22 +631,22 @@ def make_insertive_object(usd_path: str): ) -def make_receptive_object(usd_path: str): - return RigidObjectCfg( - prim_path="{ENV_REGEX_NS}/ReceptiveObject", - spawn=sim_utils.UsdFileCfg( - usd_path=usd_path, - scale=(1, 1, 1), - rigid_props=sim_utils.RigidBodyPropertiesCfg( - solver_position_iteration_count=4, - solver_velocity_iteration_count=0, - disable_gravity=False, - kinematic_enabled=True, - ), - mass_props=sim_utils.MassPropertiesCfg(mass=0.5), - ), - init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), - ) +# def make_receptive_object(usd_path: str): +# return RigidObjectCfg( +# prim_path="{ENV_REGEX_NS}/ReceptiveObject", +# spawn=sim_utils.UsdFileCfg( +# usd_path=usd_path, +# scale=(1, 1, 1), +# rigid_props=sim_utils.RigidBodyPropertiesCfg( +# solver_position_iteration_count=4, +# solver_velocity_iteration_count=0, +# disable_gravity=False, +# kinematic_enabled=True, +# ), +# mass_props=sim_utils.MassPropertiesCfg(mass=0.5), +# ), +# init_state=RigidObjectCfg.InitialStateCfg(pos=(0.0, 0.0, 0.0), rot=(1.0, 0.0, 0.0, 0.0)), +# ) variants = { @@ -660,16 +660,18 @@ def make_receptive_object(usd_path: str): "cube": make_insertive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/InsertiveCube/insertive_cube.usd"), "rectangle": make_insertive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Rectangle/rectangle.usd"), }, - "scene.receptive_object": { - "fbtabletop": make_receptive_object( - f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/SquareTableTop/square_table_top.usd" - ), - "fbdrawerbox": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/DrawerBox/drawer_box.usd"), - "peghole": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd"), - "plate": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Plate/plate.usd"), - "cube": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/ReceptiveCube/receptive_cube.usd"), - "wall": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Wall/wall.usd"), - }, + # "scene.receptive_object": { + # "fbtabletop": make_receptive_object( + # f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/SquareTableTop/square_table_top.usd" + # ), + # "fbdrawerbox": make_receptive_object( + # f"{UWLAB_CLOUD_ASSETS_DIR}/Props/FurnitureBench/DrawerBox/drawer_box.usd" + # ), + # "peghole": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/PegHole/peg_hole.usd"), + # "plate": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Plate/plate.usd"), + # "cube": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/ReceptiveCube/receptive_cube.usd"), + # "wall": make_receptive_object(f"{UWLAB_CLOUD_ASSETS_DIR}/Props/Custom/Wall/wall.usd"), + # }, } diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands.py index 27e66492..67ea6473 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands.py @@ -86,19 +86,19 @@ def __init__(self, cfg: TaskCommandCfg, env: ManagerBasedEnv): # obtain the terrain asset self.insertive_asset: Articulation | RigidObject = env.scene[cfg.insertive_asset_cfg.name] - self.receptive_asset: Articulation | RigidObject = env.scene[cfg.receptive_asset_cfg.name] + # self.receptive_asset: Articulation | RigidObject = env.scene[cfg.receptive_asset_cfg.name] insertive_meta = utils.read_metadata_from_usd_directory(self.insertive_asset.cfg.spawn.usd_path) - receptive_meta = utils.read_metadata_from_usd_directory(self.receptive_asset.cfg.spawn.usd_path) + # receptive_meta = utils.read_metadata_from_usd_directory(self.receptive_asset.cfg.spawn.usd_path) self.insertive_asset_offset = Offset( pos=tuple(insertive_meta.get("assembled_offset").get("pos")), quat=tuple(insertive_meta.get("assembled_offset").get("quat")), ) - self.receptive_asset_offset = Offset( - pos=tuple(receptive_meta.get("assembled_offset").get("pos")), - quat=tuple(receptive_meta.get("assembled_offset").get("quat")), - ) - self.success_position_threshold: float = receptive_meta.get("success_thresholds").get("position") - self.success_orientation_threshold: float = receptive_meta.get("success_thresholds").get("orientation") + # self.receptive_asset_offset = Offset( + # pos=tuple(receptive_meta.get("assembled_offset").get("pos")), + # quat=tuple(receptive_meta.get("assembled_offset").get("quat")), + # ) + # self.success_position_threshold: float = receptive_meta.get("success_thresholds").get("position") + # self.success_orientation_threshold: float = receptive_meta.get("success_thresholds").get("orientation") self.metrics["average_rot_align_error"] = torch.zeros(self.num_envs, device=self.device) self.metrics["average_pos_align_error"] = torch.zeros(self.num_envs, device=self.device) @@ -135,23 +135,23 @@ def _update_metrics(self): insertive_asset_alignment_pos_w, insertive_asset_alignment_quat_w = self.insertive_asset_offset.apply( self.insertive_asset ) - receptive_asset_alignment_pos_w, receptive_asset_alignment_quat_w = self.receptive_asset_offset.apply( - self.receptive_asset - ) - insertive_asset_in_receptive_asset_frame_pos, insertive_asset_in_receptive_asset_frame_quat = ( - math_utils.subtract_frame_transforms( - receptive_asset_alignment_pos_w, - receptive_asset_alignment_quat_w, - insertive_asset_alignment_pos_w, - insertive_asset_alignment_quat_w, - ) - ) - e_x, e_y, _ = math_utils.euler_xyz_from_quat(insertive_asset_in_receptive_asset_frame_quat) - self.euler_xy_distance[:] = math_utils.wrap_to_pi(e_x).abs() + math_utils.wrap_to_pi(e_y).abs() - self.xyz_distance[:] = torch.norm(insertive_asset_in_receptive_asset_frame_pos, dim=1) - self.position_aligned[:] = self.xyz_distance < self.success_position_threshold - self.orientation_aligned[:] = self.euler_xy_distance < self.success_orientation_threshold - self.metrics["average_rot_align_error"][:] = self.euler_xy_distance + # receptive_asset_alignment_pos_w, receptive_asset_alignment_quat_w = self.receptive_asset_offset.apply( + # self.receptive_asset + # ) + # insertive_asset_in_receptive_asset_frame_pos, insertive_asset_in_receptive_asset_frame_quat = ( + # math_utils.subtract_frame_transforms( + # receptive_asset_alignment_pos_w, + # receptive_asset_alignment_quat_w, + # insertive_asset_alignment_pos_w, + # insertive_asset_alignment_quat_w, + # ) + # ) + # e_x, e_y, _ = math_utils.euler_xyz_from_quat(insertive_asset_in_receptive_asset_frame_quat) + # self.euler_xy_distance[:] = math_utils.wrap_to_pi(e_x).abs() + math_utils.wrap_to_pi(e_y).abs() + # self.xyz_distance[:] = torch.norm(insertive_asset_in_receptive_asset_frame_pos, dim=1) + # self.position_aligned[:] = self.xyz_distance < self.success_position_threshold + # self.orientation_aligned[:] = self.euler_xy_distance < self.success_orientation_threshold + # self.metrics["average_rot_align_error"][:] = self.euler_xy_distance self.metrics["average_pos_align_error"][:] = self.xyz_distance def _resample_command(self, env_ids: Sequence[int]): diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands_cfg.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands_cfg.py index 086049e8..d272da41 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands_cfg.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/commands_cfg.py @@ -28,4 +28,4 @@ class TaskCommandCfg(TaskDependentCommandCfg): insertive_asset_cfg: SceneEntityCfg = MISSING - receptive_asset_cfg: SceneEntityCfg = MISSING + # receptive_asset_cfg: SceneEntityCfg = MISSING diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/events.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/events.py index 0769039c..c949f0e2 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/events.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/events.py @@ -891,8 +891,8 @@ class pose_logging_event(ManagerTermBase): def __init__(self, cfg: EventTermCfg, env: ManagerBasedEnv): super().__init__(cfg, env) - self.receptive_object_cfg = cfg.params.get("receptive_object_cfg") - self.receptive_object = env.scene[self.receptive_object_cfg.name] + # self.receptive_object_cfg = cfg.params.get("receptive_object_cfg") + # self.receptive_object = env.scene[self.receptive_object_cfg.name] self.insertive_object_cfg = cfg.params.get("insertive_object_cfg") self.insertive_object = env.scene[self.insertive_object_cfg.name] @@ -906,24 +906,24 @@ def __call__( """Collect pose data from all environments.""" # Get object poses for all environments - receptive_pos = self.receptive_object.data.root_pos_w[env_ids] - receptive_quat = self.receptive_object.data.root_quat_w[env_ids] + # receptive_pos = self.receptive_object.data.root_pos_w[env_ids] + # receptive_quat = self.receptive_object.data.root_quat_w[env_ids] insertive_pos = self.insertive_object.data.root_pos_w[env_ids] insertive_quat = self.insertive_object.data.root_quat_w[env_ids] # Calculate relative transform - relative_pos, relative_quat = math_utils.subtract_frame_transforms( - receptive_pos, receptive_quat, insertive_pos, insertive_quat - ) + # relative_pos, relative_quat = math_utils.subtract_frame_transforms( + # receptive_pos, receptive_quat, insertive_pos, insertive_quat + # ) # Store pose data for external access if "log" not in env.extras: env.extras["log"] = {} env.extras["log"]["current_pose_data"] = { - "relative_position": relative_pos, - "relative_orientation": relative_quat, - "relative_pose": torch.cat([relative_pos, relative_quat], dim=-1), - "receptive_object_pose": torch.cat([receptive_pos, receptive_quat], dim=-1), + # "relative_position": relative_pos, + # "relative_orientation": relative_quat, + # "relative_pose": torch.cat([relative_pos, relative_quat], dim=-1), + # "receptive_object_pose": torch.cat([receptive_pos, receptive_quat], dim=-1), "insertive_object_pose": torch.cat([insertive_pos, insertive_quat], dim=-1), } @@ -1007,8 +1007,8 @@ def __init__(self, cfg: EventTermCfg, env: ManagerBasedEnv): # Derive pair directory from scene objects insertive_usd_path = env.scene["insertive_object"].cfg.spawn.usd_path - receptive_usd_path = env.scene["receptive_object"].cfg.spawn.usd_path - pair = utils.compute_pair_dir(insertive_usd_path, receptive_usd_path) + # receptive_usd_path = env.scene["receptive_object"].cfg.spawn.usd_path + pair = utils.compute_pair_dir(insertive_usd_path) # Generate dataset paths from pair directory and reset types dataset_files = [] diff --git a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/rewards.py b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/rewards.py index 18cfbc2d..eeae237a 100644 --- a/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/rewards.py +++ b/source/uwlab_tasks/uwlab_tasks/manager_based/manipulation/omnireset/mdp/rewards.py @@ -82,6 +82,74 @@ def __call__( return 1 - torch.tanh(pos_distance / std) +class ProgressContextPickOnly(ManagerTermBase): + def __init__(self, cfg: RewardTermCfg, env: ManagerBasedRLEnv): + super().__init__(cfg, env) + self.insertive_asset: Articulation | RigidObject = env.scene[cfg.params.get("insertive_asset_cfg").name] # type: ignore + # self.receptive_asset: Articulation | RigidObject = env.scene[cfg.params.get("receptive_asset_cfg").name] # type: ignore + + insertive_meta = utils.read_metadata_from_usd_directory(self.insertive_asset.cfg.spawn.usd_path) + # receptive_meta = utils.read_metadata_from_usd_directory(self.receptive_asset.cfg.spawn.usd_path) + self.insertive_asset_offset = Offset( + pos=tuple(insertive_meta.get("assembled_offset").get("pos")), + quat=tuple(insertive_meta.get("assembled_offset").get("quat")), + ) + # self.receptive_asset_offset = Offset( + # pos=tuple(receptive_meta.get("assembled_offset").get("pos")), + # quat=tuple(receptive_meta.get("assembled_offset").get("quat")), + # ) + + # self.orientation_aligned = torch.zeros((env.num_envs), dtype=torch.bool, device=env.device) + # self.position_aligned = torch.zeros((env.num_envs), dtype=torch.bool, device=env.device) + # self.euler_xy_distance = torch.zeros((env.num_envs), device=env.device) + # self.xyz_distance = torch.zeros((env.num_envs), device=env.device) + self.insertive_asset_z = torch.zeros((env.num_envs), device=env.device) + self.success = torch.zeros((self._env.num_envs), dtype=torch.bool, device=self._env.device) + self.continuous_success_counter = torch.zeros((self._env.num_envs), dtype=torch.int32, device=self._env.device) + + success_monitor_cfg = SuccessMonitorCfg(monitored_history_len=100, num_monitored_data=1, device=env.device) + self.success_monitor = success_monitor_cfg.class_type(success_monitor_cfg) + + def reset(self, env_ids: torch.Tensor | None = None) -> None: + super().reset(env_ids) + self.continuous_success_counter[:] = 0 + + def __call__( + self, + env: ManagerBasedRLEnv, + insertive_asset_cfg: SceneEntityCfg, + # receptive_asset_cfg: SceneEntityCfg, + command_context: str = "task_command", + pick_height_threshold: float = 0.025, + ) -> torch.Tensor: + # Check if insertive object z-position is above threshold (picked up) + insertive_z_pos = self.insertive_asset.data.root_pos_w[:, 2] + self.insertive_asset_z[:] = insertive_z_pos + self.success[:] = insertive_z_pos > pick_height_threshold + + # Update continuous success counter + self.continuous_success_counter[:] = torch.where( + self.success, self.continuous_success_counter + 1, torch.zeros_like(self.continuous_success_counter) + ) + + # Update success monitor + self.success_monitor.success_update( + torch.zeros(env.num_envs, dtype=torch.int32, device=env.device), self.success + ) + + return torch.zeros(env.num_envs, device=env.device) + +def dense_success_reward_pick_only(env: ManagerBasedRLEnv, std: float, context: str = "progress_context") -> torch.Tensor: + context_term: ManagerTermBase = env.reward_manager.get_term_cfg(context).func # type: ignore + insertive_asset_z: torch.Tensor = getattr(context_term, "insertive_asset_z") + z_reward = torch.exp(-torch.clamp(0.1 - insertive_asset_z, min=0) / std) + return z_reward + +def success_reward_pick_only(env: ManagerBasedRLEnv, context: str = "progress_context") -> torch.Tensor: + context_term: ManagerTermBase = env.reward_manager.get_term_cfg(context).func # type: ignore + success: torch.Tensor = getattr(context_term, "success") + return torch.where(success, 1.0, 0.0) + class ProgressContext(ManagerTermBase): def __init__(self, cfg: RewardTermCfg, env: ManagerBasedRLEnv): From 99f1cf6fc322c0c599963fcc9e9e8b1770cd725c Mon Sep 17 00:00:00 2001 From: Yanda Bao Date: Sat, 2 May 2026 07:03:41 +0000 Subject: [PATCH 03/22] add peg-on-side ObjectAnywhereEEAnywhere reset state video 20s clip from record_reset_states.py with --video, peg pinned horizontal (pitch=pi/2, roll=0). Used to verify orientation before regenerating Peg reset state datasets. --- .../rl-video-step-0.mp4 | Bin 0 -> 5370607 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Datasets/OmniReset/videos/ObjectAnywhereEEAnywhere/rl-video-step-0.mp4 diff --git a/Datasets/OmniReset/videos/ObjectAnywhereEEAnywhere/rl-video-step-0.mp4 b/Datasets/OmniReset/videos/ObjectAnywhereEEAnywhere/rl-video-step-0.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c53cc50ac8f65f14212beb3340559bf8b895738e GIT binary patch literal 5370607 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

*r@!DNvW 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 A7i4J_x!Dvs$;O=-p*0+c-45&?`s~>?39-Rze zj!0tz{IYbjI>g9*glV%K-T>?HO-O30QJ$1hiP0S=;!l**-*3rJ+;#ktO;uMLjlljM zfq5=AH11^p>7QJDcfBt%*1CSerh-8r0BPcU7Q4rtM{gf{tOY`zqWYm8fhB~%h|da; z?A>w>lHLlCGk>H%W7ukXoavew!tclEHfJvRbUbVC(>BNIY7v{7$qC##^Mfd`SQ+A# z-PzLTcZ(3+?xZ(sn*xCp zsi?1p&Rkdal z$M3r_C2Rd+b|X;#+9zbJ`=KtruHo9h2SlPEtBg4JY;8m~H5z;Tw5DLbtbczP~IE&=nY`YPMC&&s~9a9 z_)cPJKwzd1JJJFbX8h7V%@+?=?}VuZ`8jbv$57TG5*X)zXzs5EY-G$X$bQbVB$5C{ zwNd_3WGTpFPE_|E-Hiyakqd}vt*4eKKFgn2Sf)fa+Pa`^lvyyu#FQ7YLUfY()K;v=3PxTKLXC@j!b*}``NW)-S$ctI zU@8_BspZ~jaQW~r8tM{nwl{H+uFace`vyUgrB3!q!@evJRBs;L)d9&7rAba=_3)Zv z3A1U2s0;@~LxMLK55L$epVZdgqY55Cy{+&7g7ynH*+1iA(N1)h6WLU&_b>1hZLF|d z>AGA@?QDmkG}^IX2-y{We~y*OH7cro$aBchD<`l&dgwnebg3g=HFGHKB5Jv(q#Brb zi0dheH04ra!SD5+`&$%l&}%RWt?~Z?>R%e6B18zgvf!4*uX2hx^G&f#C9LDiC*WL= zlIL9gca2qz$U@Nm&7Am#-jy>i^nc5+OM`tV&F=vleV$jQVDUnidb<^)Y>zyODIbU6 zd33ygg=i>=GCOM|ze}Iepp=D6cONrGRv}X|+PdDU>!E%!a+e(fmIm#Kz0+K}18qrf z*?=Wr#lzd0PE$4o;*De++Db&erS;PC8XgUT;}4{Q@#WP7EYxY^yc6PDK&_GoS9dT* zt;~LYk6E=pTLk(ZKLrGx8|e9L06DxL4^xh+swK_O?iAo-Ytm$%(J1u`F+_htp1)o% z3h+axRaD~STk4yi_qk1T_?+RsVDILtJI^k3@? zj2G8EgRhZ|Wgc(h#gEyNRLNGcM2pA(WefsCS4s{#$TyO-m?-kQ{b9@H6K-oBa$p$$J%)Z-0LV{}gV-0~zE4x~>#>1wFeI z1yzl0Y`}D5&Z^bfg!rV^=5C*}?m-^ib$O%K+vMj0O#)YJkNj3fYdx%VSGgm0L+;A2 z&A+akNXKDVV8}XNsq1PT!cLq0ke*eycO{mCToRMd>J?-rR-}@rz37|`NSUuL zVvMRhEmzerBXouBT2-|IzhV*E#`lTB(n1iDuJ-`5*}_c1JEDpfq=YGaJxG zqNzaKc9BiGQ3i$+VFPrQ7V3&WmJ%{j!m`60I`O~+V=V3mh>Je`IhpKkTPJ3^r+4AM zlqxVt8pP?8Pi46Hb1$Y~SAjekcUU`rNG&~+ZBu}y!3ys{UC1ZJnv$6)u$DxBhoZiw)J|NCJlFJtLVRa9cDGE}dP&N^N8o!?vqvJ6AI(bvKfcai-gh|EZutaO}=H{JRb;irG3q&~> z_}h0EyAM#}Nn~cut2TETsZo3Ec7CAW^aaqY1tf(DW84dB=5Fa7@3;^NzI)naQ29H% zaUomj@K?(C_!&rI29#=Jyuy138CT02=9`#$%XYis9Aaz?Ni^19gUumtyc}>l2YrBHB6A() zAJhnxnt}pmeJ04VBeAtm*PDYS5`I7`N!CnNq``M63W&rXxl}h1L7iB_3{JlLy&MOi zF64C$lC0JQzzYJRJ@*@x(@I2+DB;>tss|+~4+C70kJ2`xi{@e%2k@<57ez~;BoR*g z@jt60Md*#2G|%WqnI_Ks9}_1ODgi)8D1Y)DDKy=!z&-P(4ngkuLu`$K@2Wr*7oRyvzFp)cK0BJ6^dzoy`)&FqE)(q=N|ijB*0*6}|4Y zS{%$N$&u7<2{>nO)!w#kH<&wd6S2zh?)GYsfBm;=_r18Cps6+R^oJ(fF_=L%-J^s8 z&o85&_N{@&mdRIVP6w(I2pcXr*)-sE(00H>(SU9J$j>w&mtf=EDM5W*wL){&?Xu|G zn|gMb4#mK+W6M4vprG$M;tY~)X%Fkf;^`^jxbV4uDzG6E@((kO7Hj8wA z1BK>Nt$CI#n9H-M@$RxjywR z90>qUn@z`$HH;y*X z7o#btKob;_vD7?P?C<%u@CLQ1pq##YG;|Bz3Pc-mWn(VUQNxEp&CvwpMVO)U6?mt} z!j+p_iQ%30Mg1c>$#?6U+c@Zif-q%qRZmCfyGr?vKA!qd4mL_I6gy4W-$mE}daZH{ zb`mJWnDKFiba87DhvYIQYl86E7=;Vdx!Dl_asmg^t>Hp7aPn;MX5qJoZMvyh5|+l~hP-gP2XQVW5kWweBICX3;!{vDzx z^sm#x1mhEQ_)XYO=eY*n#|UFlv^E(mXF$sGG5b2VXj1?d6chouo3daM&7{Me>>@rA z*L9Y3Ct-RCQjf}1L^D3Wd&U?Wb-ZfCd0&Y!KWiNK}C##P|j*emZC!d@?>olb?B7iZ{SOYqa^<$as-8U6t; zMu0dD2d>V9Gz)UHDuk8BCp(uvmTAJYP_nAd>PzPUNhPvd8U*W)6O4|CgEa^ALwwcPeY8^Pl+7bN$ ze6TIm2z7QnQ|6p>;_`6YCEQQj1vA53Y`zquTU=kZ6joC8hdN(O!aYefZ4@o({5=6o z%22t$KjI*wMp#RmGS=9gWb1n6K6`EB?SKR)B^yBMBz+kdxok@|^_|)m4|b}YzFU$T z5CFfj-WGs68t_W{S+15g!;p}zC6;_7Wkpl>Dy2{@D+VH3giLDa(0gcLTowb+46C}V z9WadfGP6UHb%*(*Oa?qKr;~99TH_7MY5rDTkTu$NJTP_(Ov0R zm~D*|Om(X5?FKEaSn`@gH6K`5fZ@uWL5oas)W*8~wHY&ISWu7OPxJe@-f*Z0_y`oq z7x|a|9UIVp2$cVDaHeJcY=U0+`Fi~;T&JOc%4f_=0~NhvjWO5zw8lI+HlYIB}=*V6YHGH_&AM zXSV~i`m_M1KIO}CP{hkZ(0TiFZ)I~bf*6OtKoe#oa z!4^Jy_Km%=_+Ko$+_E;~J!;mEvZ#W-(WpNLA!734elJ+Il$JKa&}~?NGd9{1{+qjD zsOgp7x|f;^yPTWLDwpx>fTj9@9um?Eejx#?Ld3x{D*Q&>Iq9heP;lMEE}md>Vol)- z!vY*_wc+uQo9zrS?Bc9LzQ}OaXJv7p9+JN0m#gn4`RGzAvdFzeJOF@P&rvmq-v(Ze z$c$`Km1I1jU`#&Nwc13D5oGA2EuO6BYi8!>--uliPIXDH;R6cqNh%7|&f=4Vm#5oK zibd74L2o5c7P0Ua?6TU^vT=ybf<1@VVbBtgW)CLh4VIaDwvpU7j5_x9g3S$>f8(em5jbkYA<__QAd0ld@y5!JW zHQP_#Af(24U}cT3q2UeC>2z|1 z^&a;$$1W;WBz>)5{-A-8?+^`DR3~&zm_`PtuGg}13-%*4Vhp9wTyVJK*jS;>S1Pcl zxG1~$d6eWu!`MZovd-*K%nk{lG#J|>!}@0 z*mToWUNPW28#-G0$tzOwF=~#HaV3FZ{X3VFDJjzg88g$>C@u|dw*{08=>4f?Pfbca6U_qS*Y` z+GuAU8Md>v?5rkRL9)4YC+j$}ibJO$Vzx*Tt7yFD#*L*tx6s{}Rn{v8*z75}?+d{2 zzZ-&hHasmB-SfY}DjOj6_2*ERvppe`YL zpu0}&0<_)zYsoeN1t=W2V7ad~L^XDDrp{NAi9uo%Vb~4x3=%w3S*oTmp63DD>Z#ae zV|SYEbm3+dK?xB>f6k%$qDQU6uSMqx4`pLJ&-*__x4m_5;el9yT%Fo#wIM^S^_YvN zh9K-3>!M?akQV1|bw&5$TzTFq9klGw^ZNY#fy#sTYQJ4&^m`ic@~Jhus?n4NvR_fo z-w}GnT0i1vcpPUWzn95m zeqY1d|I$iFDrfL!FQA8n)(34L#bwL~mN{9|%CkN3TtPrv1IQ@FlBno9}-T=F4G9 z_R(GWyIsrlsm6Yb3lBwbvCPJ_b|~$=l5Lou zGx}o4Ztdw={D4S>WhHFXkM-PMwI;%a4W8~lla-H3hW-}In3ehu)cddu*Hci?F?=3h z%!60x+yHfQT`&;tH)(`xC1!$r$P&3boKLAPOYkn1^A!YP{eCZ1X@AT!C81QGfYb_Z zT;ej)lq#D7RZNZxlSqSaF8@dnxHf9ZGy+ullh>FJkNa==ySeD;MBe4(|d5mUnNi9*t5y zJ3hQKY3_7cynomorff{7+JdqmpXFX{q#01xO7#$Lcjle_a&S>UhzLFjIN)@}e`Qq< zKl0dd=&c(GI?I;Y_1echpzGLju;`=zj|(Dg@->2X;kqr*9ip&cDD9hkt>o61%|TEY zfu0E>AW&~bGkkh9Ms$eU7!KaBgcH8G>3j^0h%E+bv-1Y-S|3r2e3zs36tNxs44|ZJ zqmh;E3ydKQN-Y3-Xh;OLAEY2-_hnij9?Z6<#>EP+`atdS2)JX=Y>1MX_Dw3aiBEst zPCmq!$TvqU`I%0i_gMIp0}Q|m-k2@;6mmWd1fY4|b4jCPI*T}u@PYO+ht&*X{Eoy@ z0rPg0%pD@Jm#x#@+b!DP5Y7F_UuD}&`84oTa{$Ed9}wfTFwv3_Lv>I46Y3GV2${L_ z^U_G4FwE%`EyL2`50^OQigw849x@E196Bz%T<|X~l*+^aq^mtFJVjeF zY;DtwFq~4K3DPv%S-&NU>T)%;`NmTbnF5w*GmVpKY^I^`*0;IATnav4RC+%v?eBDIzluUYylfSl0^ zaHRj1C}U9n^bcfbL;)P)nj*u^F=Sb3gG02a1%tNJ--P7hGg;~^1L93+?{UB5&t$xN z<_GDTdCOy-akaixHhPZmLxM7-tx?JeekuQ(8M2CsFv%zExLn&8Kq&T>9s-)d}>X;Qy#pk-Y+I7D&Nr4!a92R>)juMVaIgj zN!|j+kxrX7G8aDVGTw$D=&9bfzr*+IFxK4AS0GO_h*9O>gM+mIGnZaFDff|*RziU7rJjg^zgTfl!l-Kg53ghU&mQ8j*)Doa&udlKo#Gvs!~zhhQY!th`0f^(ux=y$CtF}upc>B>n&8SPFn3wgQog3tlVkdXJuWz zzs&e!9Dib^(vYWRMlJ8zgJPwoM_bou+c?kn6jS#SF_`mfE_xEp}<(rJlPqOVK=%mlERm8aZj4+1H2`=t-a> zQEEqsCe&pbQ7kqx>J>z%l3Z4%8PtUuMf<;SDc%|Blr`?!W+=qTlLHLBF|s|@3l>@!j#*2rXt!$m7nZ;O za6%S#Ec{C#!as7Vwy4~t=_lhi+Xrlg;>v0z9zMm4X$s0!I-MGJ6A)GGHFKBD1;rTw zcDBWD0m{+TuRnN@psOJlsp#Qsi>gx=3LZac} zAPVlkdVdqjH=6aGpVRU%S60)tdA5M$ed0C`Y?f~qlWo5%unE^~`b74OeELny->yG~ z#?c3tsI1RIOQJ>hSmTy?4+W9zNF{p0kpcKtrqB)!btO?mQLMs)8fU)3C_j+*LVsW! z(AJ`!;u@}xS&nM+>^ZT$aQlYcEpN}rX;(RggK%=9Fha7f-ZW%b108ZFm+%;3P?U(= ziAtA9Qvf2}^=FYh0yNC5{!!O$G_gSApKH3HuZPZ^gn9_F8EFSYK$8h~lCNDZBW9(` zrN&l77G@8077??|9jhS(DW)Z`v?Nll164K(K?1PC!-YCMBC8-r-HRr{Lw0BxouiO} zonx`VcAA|Ho+0N`r^PHU{IDL`)k}AYpUfL_#7HQYvn;l$0poJyeBmSzO@REwXhmAc7AWV5oebc_8gyCv!?1lf9w#0&pH3z1PYX zhx(z})8sNDcolm^2Ro;+C7@!yj`HJcfPiJR0(UUx@xT8nKiLY6OQ7Y2leN;+EGy;) zild5jJO*K37%MXd^)Y7`P_E`L}w2mJ_$+=bj4f5 z?u8A9w6# z|1@ZzcNjXX!z(=M!#q;tS;p)(Z4{XKg6D&2VUW-szE?EnY^bE~sVu4~kie}lXDo$_ z9-z(?pQVBaC}y}Im+{fVZZt4_U-tjN09%8WYN=?>-EG>qB^&-`#$6MkX>`m3Nfdsx z!C``Z-A}tGq+#W52OIyDV#^7pU0FZ1?|)$DcDj5coIz@QXK9JI!JTMXWs=S)IKh<< z`j8uYpyPlt9?fbD@POkcjL~92TcCNk<&8XF>Lr8&Pg!E(jPbk5rzXZxw`iOe*rXmdQmOt`Sm>BpO}B$JlLAS7>T~n z#y`WSxan@+Qz2U_dtK4^z8zjW1?$_>Fm9#&BMIFc2-b}bz{Jpc9>_nMryZSbAPd}s zoyH`K>j41M^Otsc0T4yVA*5=kW#hH({KX8n;wV&-Hce5~BuUf?!ewW4Sqyz0v}!IG zG%9tn5wY6&_=^7l2&egytasB2=3nRh*xs|I4AEiYO9Ev6BP0|36zEe?)N_T1vd8

8L9Ktt`3ah1EvzFl`_>==^ALJ2KE0OiZ3DpqrfleVJBokne~Mei;rK%Q!;vW zG+W^arG+mC{uAPZhIB%vn^VJ)saK43oc>(SCZ6LvMu7ukK_Y4@CVvn~YnCPRHUgwL z25*4(i#X>kST`lHy@e3x>-MP$7u|S~=uq{w4CrG%W;fu=^dT>om(0GxI_c%io!DXe zlLxaN*RO;J44`L%4klD0X;|Ysg^xMDoF1Uht;m#Ej#UfIVO!iNB}ntwAdcr_O9zWO zdCdaCDedPMz|!-xT`;~j*KJ*SK)aYfat-hVN$w!k0U`17t|M;YwIU~;tKYl}F%ua{ zfgilJraO=hJL_7{RGFfocF0#HAg~F;o1!*erZ}@9-go1o6()y4fYrK1(L`QH&!UgK0PsN=0zSx{_9!Ca!^i)I+ z`!W?Glh|E@*H0&?D@NYTWw<#Qn8mA?}=$-$%KV)xMI~m%GB0@`#E+dmfQ6 z!l8FA$P4nAGKFjplPgs`8v);hKfKKJqtTo6A!9}aCmIl@AtL@i6ZS`|&d1IO#mDbV zVXF4GJ=o$v4VTZmYTee+UEO?5pM3GGU6ImpaWy4#-k(C-gbA1Ok|ZTv^0aL zMjN-I6f+Bsb~O-X!zl{41w;^xjn0?hFw*sKFg&E9u1bqfn0U&af4m@~jS!qK-F%`@ z$$+%Sh2aU4LizYGXFY0l#nKooQpcbYrslnm*Yh_hb=a3b$1kgwu)*J25N4BQ$9(UdvA|b{|rR0C3166gijR#DIUZKX$O)4x+Q)opJjNSrKkt;(d zBI@22>{L~&zj7{bSTru?& z(4}3HcOgX(0R9oNSnE@;X0`lqEvso;=aCNEh0h!v&%&&&@&?IQclV=fH2-L){CL?b z&~(X!MJ$Yu=`WqE*jRBHj0$Zw1T)MU?GblH&nrlxRs31b%QA!kh5KTiU*Evkq~S2# zClc_|Yj)?c@CFl0>zToe?4AO-^m+w5Pya&%X5X)+dV*;~rSMUEIBp`w~a`Q>QqP{J` zAk{9lnYot!5hf|FfnP6A3^!&##Cs73r<=+kOK;bgHH&a^Ij`nq;`C36Ec)UsP7Tyu z6y#_FD!NIIny(+S?IkYIH+z~chL%)4@^GYebQqI(g0SEo+CgI_AgUw)x;N}vsc=b( z9wsmy1l?sFWNHHky;F}$PLKYJu1E)$O8e(m({z5SUu;h`+8LGH8eTZSDEP2Z&OElq*mRXQak4D)Fxl!Y7 zP|Q?C;m>^Jt>oj}rBOp*^!v;#VUlbl0f`ADn~bDQunZu06E=cEdmEe)VSwMYRejyfx#UP;o1H}W;^@rkjqX35RBMaZWh}U? z>>RqUJ?){Tu$0YA6Q?SgjN`g=2Vja&t-ICThO||#xjg@nND680Bzl0e2hNJJ?EM9> zewmo%Lo(Ha%cxv<%1KL#s~2jO6qhu;nQ{@w(XEBN{xXdRJKRUmWE^DB zJ`ULe8?on#!*4lay&2iV6>Gi2Bqvx!_KUG8EwU2$s4ck{9#A~~qF(EQP?_o&$R3L} z+cr-2kO(ddM#?K&M|aaaEa1r)`!z1>Xwd|yF9au;gH-0OFB)o5p#JXby)`a3NzuNN zGRw42m#FbwpveQrGyLS*05<)>H~xoNcO`_biTCXudhRk%pl5SYEC5OkX-=+w%)epn zB$nS)-+9o=z|=bts?m-c_S@1RXQ65+(f_;uhJvFF>}Q};|Dw_bVeOGeP&{*l`k%8N zY?d#)p4dJJT*%EcXw!p=9C3kA2n+g| z?hq5W-M_+sIl7ZYp%JeHr4OLCnxfK>oovn7 zyaMBwua6_rU(nBwJpsnfUD98=5#MwLI<@pU$p$1?Vsa!t+M=`N>`H>aB5^3dC++fz zdVyjv#q=cn0%SR!bmQ&g2XdGq!ZyYbdE&+q4@+WT1Ya?}`ZU-Pe{CPgey5=p|}V z_P{>*CD+hn@E$R%X8{ReTH_S~!>V*_47|g|o|d{6p4uc3&~TmgM{sT?V*0o|N1`4PLK>E6Qj1cIM zNnC)aF7Z3$@Nnv$22gK06Qg1y4hdGIr^)&tpXq03JJM4xQdl{up5ny^XzH;{9?D2>@{{jTp@6J8yX7Qt)@1)6L&Ir7_V)r z3Fe@=)dFFW?VD`7+Aq8;1Bw;*%58md8C=kxD1!u-Z4m_iSYLS2I1H7-NSV1)(?m==H=m)g7vI^WEc~p zxbzZ2=Q@qW?c@GP;uQ5Y*z@;b_4+!D8i~ zzS7z)xLp87&`xLNv3Xvtr*KmiGHLC_Z;!@g-6N5n)dIUoU7p>{z%$%#O;)%Q)vHG_ z{{E#okC8#+-ahfm5U-~E6TxZr&EVLW@x0XZkl=6J536sYJ5UGLTj`TC(D^xbBITKU4A&&fPiv<#-Sm{-Dal`_ucV zxqU=t(hb+@cF~T6`)F#h;Wtq#%jAAFnjP32t5CCw=>*DGy<@V+OFH1;v$kesy7{oQ zDxb)()^`9k>Ej8;04-Y3z;LwC{JZiKdxYCU^)MHP6=^)`Acsz1P<=^Ca>>lC{{}`P z1LNwSZ*cTN=K)&%b8%xxupK)O+d_|{XRU@L>DovMtZkW=N__H-1z5Z4i7j5o@A==Ejb46B18fvm(OpgYLY%{(}qp&;Rl~DYLIU1vcq(oE|E(E4(@K zn#xFAMT}yfm`qd`+wL=K0(rJE8aWb;dJpk zI3pszR*KG~)y9nSv(9C4SibJw!pL2=_A8^NNp~-@EmP6c}tiFa3NLwPXrUHwcM= zlGOP!J`n%7oVNyMDu2rY6glF2_*bvR<<3lbaf&rFgYqz`9UXM%<8=$bKqIg&0rLcc z6zFfL|3?%KOZ+c)k+*&C~9nl3flf_NK z@;-ag6T7dCUtpql8;3EjL(ukyY7kglDO=+#WHcYxg4iO3jVNEP$;SV<9rI2!Q4egrRl#PP2&E&)aI97O%7;t3#!3-<;&5qo z8*}Qthl1SAd?SK|e4J8*HaW4ZActw36a1488$PlqeO# zyR7%2*h4VzqUo+wf?1s9-%HK(1e1IM@@*{6DZK?F_90X{o;lvfnD^1aoY{?@2Q z`a6SXc;fK@sh{>Sup<7g|81L1VtfyEK$u2?^(uchPxa{nOk=Cd$d~n&zmBhk(>0Zr zttL;%#JcDPEy}rziy=AO)D_?hMR=NX1R`0YXAkpU{nZ^>+Sw?47`-c3{xvGr#V8K` zQ2?7887tWbGJ|TpGetXO0rkJLg4OVn&;OM>qt%#k;O_eqKKC%>dO}l(9xI+}M84FD z`L7%e1_0E%E^(dIw!=^FW=waD6-g4v3MKZY<>_^E)Z*F^Y2BMsUp>WkViV%tugNUx zO?f;;!(Cq&uhrx5OXj2KI1E{$0D@>yix7$S&xofnZEA4*nXL6YWFmg@KWSWZ`X~%G zT=3|F*<=t;4??mIs9*qbpdDo7Ch$Ql@i-9JR;w0XJAjo-bNogC)RdPfAh42j zGIJu+Zpmy-*PP-aH@oDp6`W950DZNEt#GwV zj`D+VmHOPYvf4UCXPX0L`I&0z3z|~EG4e=K) z9-KV!-7#L5ac14dqXq6w$}b_5`V*Ct(Iuszrw1Ta+QcX);L}|Y|GOFn@w440ZZH1(@L6aDs|&@|B6$O2R?N6DW6$f*_uz#ZKr==_C7ca)r^MYJsM$u@XWiy zo?eqsCx@WneE?!WHrQbbbu3^f>j_^j1eMv1kk~d4t8#r765k{p$?lPWZZ-SN)v4L2ympSV<{{9C6g$3}ktV^9fPv4uSi!os_9-W7*o%=t8bjMp9I z=`ZDq_u5s9JDGO~O)^#nsGAm+I$4IypGNI_8r=bYuPQ8nip06HsN!mO2muJie1Zkb z5t`8GmaG@M5&jk&HS1f}1Sbw2s8#~Cr^9|uk^y+6AMW0sxW=(y-ZWi7A~!aufF^ho6)mm^Rh`gpmz6{ z7O5(fHWIc3&Tg;(U!(bCU$1x<84G_}>H$6+D%S2dR5)a-1=sW>(^ z)++o5$Zix+VmYMVo2rNRUs{^!J*pIF(ULfrQ|LKYb^#EE#3td|mo9R-* z=jzUxz-?afhW-^mVU*C}scU&Y`J;dTB9R~A!p6T2TXAaSzCaKPDaq5K8_HdVfpv^& z+A+|&qCyD4!>R-$FSFB8%(+jkNXM<-YBkU4pk!qbqyX9}Btw5(_OMn{3b-jjVVIE@22HFsut;Am0UmcC} zQWg^0l`KT`EBL%TXk(xuK*9*3p9V9`9}c7JwuIn1ug%KDQG2)yGk4Rj{5h(V7Q_@_ z{+FPH<&yh86OlvZ(*I=Mq~a!T)fa-u*$-~!>>=+>r8{8bYOBldPA1=A&1AUPZ$W5` zMn+mN#(R~pw@dA^bE3|&gbi(<8o;e^cI&3zHrIL#qAv9~JCL5ElNS@s&!qqWTNNN6 zR`b4$)3T}Efji(on|hnAIdH>Lsv?0wZrFo$%oMTw??(V6J** zE@RGp6S2M_{YB6R*Ups|1U0N0w= z@*ST`|LcR_KnvTR#m{A*XGD>H4Wr@A;E=oe3smP%P&i81t@26yc-VD<4=X4D&8D#d zJC%k7aS6g3HrRg#o*g~19ic&GU-umU-rImGwE>RpkP>s>hvAL(Jpb>CCfG(9U2f$x zf1*CzVjbB4R|u5uC&)Or75nfT?aiCrSRSrDg9+k~T)Ws88GGs1uxbprOjGE)4jp1q zHP_YIbSi+dp@&26vn9%kxKsjI6eT)w`-5-lW}IH}^SKPT^vcHUGQz@uJlzrD{M8Ch ziLM+GMBZ$Zf|3A9K(@c+1SeAn`#8Du%spaYFC8ohFVyl)Md~~re?d?F36ew1hGom05f1!qcma$9t6|ON3~X})Ghc1FZ5K6ioS2R$Rp>GX zN}W<6(a{Z+dQT48OWpGqLAvksoF^9pu6-BwI?D@geONWKwX+y^H$!pJ%u7L}ESMJa zCrXQLHnLTWgEeKr+Gkyxs&EXM=GjZPbE|F$cI$RiuHF9E1-eFkXnisSZ-k33i8NBq zKzoQ|WKDRvSvQmbE}@#sL_lf!x|&M&0@?szax+*jb@Vmc^I&g;IN21vq(1I>t$Q|Vlk2xi03;h#cne=#l(>%Tc~Fy0x*q7Do4<~WGmZ1h1?USaS0FE%p*fQH5yrmSERhb5SZv5JcDH?Y?C1RG+hO zyZJ-v6$U}5z&@!(_aq0}rfSV7sg@mTbP;Ll9xdQl<6>VmN@w^37s(&Iq-RwyLxt(- z1GCO~@=rg80RBVMb1q`z|41?v=?AH;2oHDpP1cKr47~NjSYz_S$EE&1an8G6tW=?1 zU4EE4r?Zdne!S>tza*e>GaH)Do>eBr zWq1NXiDSyGvF#Zf&Q3#BScrUUCT&E3@g zJ^82KzfUTlhC}m0`_ZWVUK28NOL`Ga^xL(8_$rPDjL!4hDC%x&G#aVI{kA z86CCe-;H^~J(0PVZ_;q^Rb7VM!cPcE&s*Q7>w|)s#4G;2leSj0d@09c0)A;9*P+Z0 zzsN}6!Y1ZcAY+87b%*j}jNP1WFK{vb@AE&Vdv2!>a;X`fs+d>+B#RFv=M*U1Iw$Eq8U2kp3ZxWzhc&l!6k$Ixu%zP7r_V}UpTJFZQ6}L$p02fUSFEu% z`;br)3XsX2{P`j|-|XkG&RJlcq;Kfg zDeVbfPw|WOqmP$2a{@_CfT{fzZB&_|DAJn9k&*$CnS}Le_=7*-vbx=wiMG%L zqutAyOr?Y0-&bi4Gf=jT9?+o{g0qwjz)cfEpY`z%JzO$Bpm$wvzQu~jB|eJ$p*r<# z^h=L&nR(3${4Ll$eOg5!$+Dr(F=v;h&n4H<>!|XJHV{FK|1|S7o|stl&u8Ixn5@P% zBo|MO&tJ7RshRtarA4`m4C#C0NR(t-Pg->S8@0U~TLX`n=T2S~`|34}*=FB(;6i3C zawgA|rp&%Yifm?0pY*E#3=7GTxbM4IW&DbCn)2=!G*(td5If!2UUTQPd%B1%ZQb2h z$h&dOL%>0v6UGJCzuMN7a`K$nVPcFC_0E;-W*I@%;?LckH51CQCY$^}2JBI*gA>?f z`)!UZ-?|TZquxcQBI|PxSEXWqdXHG2@Hgy;J4$xx=4>nZ>N)h)1 z#1Vc$ECCfy+jV|D0y}{Nr;H2H!oppvsD#j&MT6TJZ-VJFvH-vsYD;KBs3$7YW9`G& zeP#BbgD=%GV5!2ICfrw7LCL)l<1;sgy7Ee;CWdh<4ahbDAVtz3IvkBVLD?so?s%y{ z>mQ+-X>E2>KjmI6Nh@*JCUhvn$h`OWU!;T5qg_QaEr%t2j^XYuVt*t`IkCJE_rFTsg{C3q)`&OFyeXA!oA zkZ0J`KdLkIX+f z7hH^6#2P5#876DO!zo;vxi3)6&EwMpcE~hat;z`4Ac4K50$gS1fo=yHnAMhz73WfS zXTxz4W=N#$`@?vnn;?^!Q7EY?q52G_l{C%kcc1IvaKkN1R+=Hz9|WfVOHS{|s%@oRVa-yMKr9=Xgqyc3o*sLePv6 zkR)TQ@TZ87Aa)q;PNWk#YDsyo36YhJv_C>}0xHo-%{l1`#=k4ALKlb?jny^HG3;Zm z`bRR=4TZv@3EUcmO-LKDGT@wXh!NuC9~(N&K11#VGH!-sN|b5}XsVzg>@9ORWFNeh z(*LYMYuLE5{XwUdm}450={QdFE>rFm+t+JnAWd(Jtk>|JqNol{|MoC|Iigu5>zU2q zx8{=HSZ?h!-1h$Yfdqp9Kd}X!H6v|sF9JCJ&?bo;Bo@<%DV~$FTD2_k{cE;z?u<;(j&_Op7McutCF3K?>!+IlR?vNhF2E!xUHk za45w=Sj?vY<(Js{?EJA4oLQMBJSd+zE~BHM*N!nOCqMo|f`(;?*ubqX-CIr6qv*U_ z4jDJBomQzyi~DrB1hR?SM3->)!{(^~?slyaeIeVf@si36MD)rs28+IgP&7mG$GThY zSyAzV>1BcWi&*S9m?`e1?ZvMkfq?346{k5@hyc6*Ff(4uE5)K_3YV>W{XxU)NYHz8 zx*d|4__6LCT2|xLQYnlG4-csisB^VQ$w>z%p26>pedXQ?CJa@a2J~KQi0KQP!(uR}Zr<_nm_+zhfEBtTPA3B8yOXQR$oL0)qP#d(Z zkvO@*S#RH;VVM4^rMRHUU@q>-5I`3+d+8kOqk?K8A(SO30)#>_(;sIAqP_jCS(WsQ zeigcx1l(o}Q`>8|WdCI9vg$rUnn5}>xa8y@65{mbkW31`6PV9#(*kG3QHG4C2q)uW zo3T8%bf$%^*5?bZZgmUiFe%40U@Gp>$rT!PQ4}`foxL-)Au3;m{Qi>^;3;g@LY!yi zuzNSK&Tb4~N*pF%l(*$IygH_qZsR=LRSA}=aBj1Jb*pUe$yxiUh03ziHTq2gyxGm! z?nt;%u~G^+W_CH)27yZW=%_LZ(`im$ps{3Dm|`5E!mH%TFG;O`5 z!OqFWo``gBpUBzSe`aC%LiG4YrN}@Bjifhe4V}N#O`XBt;ejuqXrQ)NmyK%8h@k;$8T%GrAm@oV!Ri84ic}=AnpG z?G-`4TvH+|IS=bb8KVbp7N77cf2lxM{8Y|bWfK>p%<-!T4GKoqM!$3Y^-8{`BYU!5 zj#+~Rc>BMm;7zZLU!)EDdB_j>FZikx0)j;3u^S`ek5FyS7Q?38k%Glpw z2195m={74OH)U7!M>-!dswcAi-v!Mrk8}|8e^b5u2nxL?IQLt!>Rbv6QU?1YDFMpP zh7IFDfrLAx#t#ki4`G6EVO><%Wtb?-ihL7h1dr+#v@93yMjYp};?}&dRU=T`{%gWU zM88w41O&|;RD``3FexzscG5B+a>7lSkPDUfTH6c~BKnbm3|>H_J}??0Ae4Gch)#co zEaqE=Z=OjHJP$@HQ=<3ennPB;5U-hp(v55STFC!HKn2WK^3=7oSBJTD#BQb+6IbZB zd|ewrE$5o_;J_@HcM!!ZY5G2=nLbm}fgfjn&ia0wr^U~2lG0Arp^TQsTpUz9;v&0d__EuYuzU;pM7eczM(F6E*6+xa%A0=NS+06gZK@rEzQ1|a1u5Tk~boEqjjBd zV;OJm)Hqt2A!0pb%QY-H@aAx$fg8Q(8u7cCp{Z$fF-0B0ZC)YbHRe|YumH!m4w$17 zf*KJj+cF>0N64EwvSyJ{uGGx)ny5HCIh!%$J{5eR_sX`Ez^zRdB#*Vd%XKsmQd^_= zzxx^Cr(Yj2F>znexzDwj;3>h*3-P>Q0~}&EQ`0f@TXMMg0158&tXjF856)%2HBi%E z-{?rt62pv<9O&eOuEz3D9V}K-i728lnY4Ti{V&Rfjnhz%u>1O1Yl|L5tFV)#c9p71Vu3Av-Hi5(&?-u_C@Umg9 znFB?wQ>5bA{%giGEQ=6a+e&|U82&`h5))#ULLrpP%{rAFYF-xEk}^LoPQLP02B+C5 zl2;Y}k^FFa%f0*U&m~|zhzG}2B3-Hi8`sTMA0YtmH$ZnBmo>!v&~EUepL?as z)CWgNtiZ|Sa0f=zw`xxpsd7Q4V#(H%`a}Mb2n~@?x3OoK2xE9qHYm?)!MOy zhu8vFbqIbg!|2g60>9VjX2if;z(M-!HQi;>C6v8dRykT9y=Z8UAV{G=l4a6^8AAbc zNL_Zdy0QCbL5+oe{%@6mia_Pcz%Fsf24jM?;<@$nd1CefInK5&aSh<(v@Mh(Q^V_9 z1)qty-Yvj;PqqqmwTXP8nT-#d4!KHM(kjjp#*x!?Y<=0yhnt z+)aXFBO3DxnoFsdy7Yz*hwN5eCnD^>7_6&RMqw;ATNkS#jOERq%-_ z@C8IcV?e)d-m@Yriyt@WpJr{6+2bqJIQBxHYD1WdvL%c@LM@|5}T%I&LGKj{yQes_8oOJT3aa2df7Rp z+WlPg)7{&gbt)^UBf71|TqqBd3jxqb;UEY=`e^9YgCV{trEpCEzAQXB-~fnk0>fmc z^)B+DHZ+fEH>+SrEHU52x^$poA9&f}c%{@(>R!*_TI@{lOE}sNj>W-0>iGBeDmB(0 z&@QiwTEksJ7WJ91E%+X{Pj$#(o|mOLWoull{yu)Dey$I1Vh4%_FngE{sWk#@@voRV zU0pKN+`L@Y0r-meG%Xi0KB5F`bR!2zMBE2Vgxd%XC9a~fu;7R%(r{i0gv3 zz2^R`Y?EH1_kApqcZ)ZcMOKP(%WyO)l^(`nuV0(7SJtA7V^(GBM06(`GRNiwBDl}f zurXjgP0PW^fVfpF^Z!)iR0-s|LL(4Zxo`emDyJUwh;iKfG^@yI4+Y}(jw2_~jc>}L zJXnR*JH)k6jG#@)2Ge7bgi(71k?1Vv*NXRnE$qTABRcH z?er_n5(E{$2)NehV&A-BO_xg^8EKydV=E+zdzM+WYDCI>>0rg*=`<+##DgSq%?AKN zopArRiSPrv&@4jIcduRoTqT?D@OU<7Icl&Xl^ub=p+=Ek1I|(wVc#Cy@xLnE1z`Jl$PJ6)1+@|=6tNoY~C_6 zmE1JvibJkL z5AVZ?B;>xR^@8cQz}d7*zTDnr_}aAqMtg`gP3nK^>!Nin_h*QZ7+Y5h146iVsZ@c+ zEs;U6iyqCwzFa;*3)Lx!xEOwnv*sJB-gD8wOQTG@Hus}jS*mKKcv7PyOG&HpR96^`d0Km-Tr z?uveFfp%$suad8eo9U@YjR8U`D5F^<50{N25eYTI9`-+Oht4XXPgfTLx@) zj7MoeJ?*iuSb*b|EL=!38UrlP6`|B$HrO~ktcxX$1d3!^ZqhIwp{=P6!%(yZs9IoS z@}2czluTNDw)ZIC_UEJs%zjF5H{^SSyot~gBgA*R&ZRJc3!6m!BKx+<TuclR5wwr>8Wtov zE9UH!;b>g36b%V{$-IM3L7oIeivodnGVb-G8ETHb-0u(LUjE!9qi5y`-X|&K7Zu#I z_On@qDE^)s(Y1B_AOl?;gS|v5P?=_2>wVVv;D;O5le+MC;|A`V2Mo>OsUZoVW{+b! zB9+3>rpV0n8*Ol-aO0j@3Z9sa!SL5~y`6sb#j>H&_4(9JUo@zn-uFKrw-DGmwAek0 z{O!Q)W+nBb5Wa}+nY2$4LjZ>bg2T^jbL)n@E;1{Mr;{v!ySK2RBgM!De zuM5EB$iL132e2Qk%GVpNasIIf?z^xk-QVZ zAQQT+uiGGJdf4x4^_<8Wrnu)MOHTw^mnH2oCmMBs0Ro*4!?q7Vn_LXYQylzUn`@;O z_yge3cc+5&?3518EY=7I<%-+-HKQvXamp67t>*-6jos^IfW2%)dh>1m8e8f zem?kDKlu7wsrq`Yq0?wS3drO~+Y#!za{UNdd6Wmf%G9kyfrzT@jc2aC%Gmu}dHi^) zuqz{_Z8FAX*v<*qIUmUjhgXp{~*KaPVgSev9q%Pd6Y>urV(c%^X7&OO`hbT6L!&u*nY zJmn4z0ICX-&vRaiVTVp)THuA)O7GNrUq|#(s?8Vdc{svl@sB+ioPAyo4&^8h4Hnz_ z1G(giEx*PNeCMn47s4FmFh91epkFelTza0bgSVJ`rW_8r#?mfeXjM>Ngax|xzI+uA z$N0DxbsSa2SK;5|X@`#aCqrb*?p#y--QE^xT?!7o=Q}_PU2PXskM!|o{8D-hs9?u= z#z`cIlQyZFPon9ebye|uic#LvOeFTHU&es;OV=0<_{908iDMLdKuHnSDttr{spxbbX(nRFl z&Tnq>odK0oTN#!W)p#8yL2n`N=>(koLL0HR@a}dRwB1(0h97@t2-;6`O$z64d;is= z+?&}r2OQM9RLCVbc(w5c>SZwDW~P)s)W1tH&Hpw=82f6QAcqq#3WyQ zIER7^J;(ATx4g({Vaq`yWM1^;5^n&8Y6XjvWDo@2gzy&$(Cd+%kB>d9xb@#b4xh}0 zZin!_v8)LH65`@Z)*CtFDg+o(9uH}p03rr$(*FNgVA?|MIts&CIn3q8mpH~_W@!jo z@rf_^{DJQV=>z>{pX_ZO;eI}<^`{4)7f&ZmE}vx$o{&F27>5dVtS|$x zp4A7vqzbVEl8kzFL&S3?7kK?(HN2vpm_wytI~(j>7FzLD+Ro`?W~2IVeKQ?9Xoh99 z#;nLyLNeIbM1_(E0M0rGndvlvhvSjJ*a2kpijS&I1;#b7OBc~L7P2+evC zw;nA$Y_{$>UG%j>o=K?Qs{cI=lz7MT3!c!YkCM2_q$HAZk=xN~=EiTrw+0yYAsCi$%6?g1W6eHOG=KU?cfGkgeq_WE z*VbPq)_6(5mA1mU00LR>txM|!xx&czbtLr~=ngr4G8GU^RJ&Z`f0lo@%cIi;?8Dv! zXccv0F^y~D>UI_efB(aDL`a_bvOF_?mhGg6&nyYpEVg_ zBWNl=)G^=S@aSiETrgAI<**f+-bY=bLG^byB2v0q1Z^;s*5XdcZ2|G_t9M!N4WsVC zmjz=!mx*-=B~3=sGRuUNt@NL&{Va_A?cO4W5%y?~8fm4u*Wm|)B(}@nX-v-<1hh)Y zfiZb~o;mxKq}Q?T8P_O3;`>SW3Y< z1~S6J4If-3B&){@#pQ=t^BrEBDvq^0gI2O?)Gs?=iIgcFy|zafaQJQu?>p>l27}cA z{;4Ob70+G*MzZ93x#xA~we$Hy$|KN_Fg|@XG@jyj9#`3WWjLzzoo>D1TGO!M z8B0S~EkHrKE?ZL?{Sz(xGmQE@If<>g)nYlR0VJ8M81Vd)mqL1TcVKpv2B zV%^$YV0c5|mHz5OE7SWvpot1YA4J1oJiFOrLdNvv_ejw^%xFO)o-mdts<@m^tt-m2IdWYXOr7O)=@?y5LmGT#Wg!mQ?=-w6(`>JnlZIJ! z%^QO`gDH=31N5dZWp5A(dNl(H!823`Fj;^Lu}S2+hiVg;K4bPaiq`wC^8R;gJ?eBZ zUs0}^-*d?!?u$9n0Zg#dwLT$~OkH{$1oD9>gh1$%^IlGF2W#cq$Y9CS469H z!~uC-JydY?dV40rK6cY6aw!4~);+O-7!ywsZCNr3-SAB2D7nX;!Be zgNMdoG#PXNIDjfI7oS@F+FI-gR6-0(IEiobT&K5WM2By4BVWC<&GqB`4E(D!6NBJs z;sZDsI>up4tj+8xlgocdgt)9V-#TW8cu62HP@XyY#QV?6Jg?+-4)D_Qc=A=MzkIjm z${`-jK`5|ONJa627tBXt0h&s$4l* zk7yR&(DTo8ggJ2mOvEy0jYldON(jrB<*I@mlBO{SEOkXQkKi&^b_2U?F*mrD2-f_f zFdFkTH>CMFgBxm^Vm#OIsaM&WD?4+6oIED)Zk9^U-Y_|Vi+=F{W-D2(B+L)RO6nFz z$m>Nr5sYYJd9u{70~eRg@fgPWNS5l>sVSXlz^?83)ws!9N_IC0u;!zhjt^<)Cps#a&5W97~tf&LRnc@ z@n1Vbl_d4R+y2NJZq`U2Y3mH4HCfQg09x(%)`{PElZm{Ay5}~5+oJu{TmrTjT(FR# z?w+y#G)(rTl86pEI8sPfBiJG~!TC4hDYNhoXhK0THt&HYyf4a_1TP=DCWgFJ0$$Tr z2PH%lR-K#cuD)5U$;jWHG~df%qCrihs*SmrIXyk3hf<*pa}TKm;(RD*F)iThTw|r3 zPP6_p_x;7Lej_f6mrW_I7DE6fHVQxw;%2Fd_@A+h9n*!CwQs z#1!PAA7PG#l~x>lRq#M^%a$!Gk&>){kZqZI28K2XCB!!aKiQ>ZvpVb<;V_ywx5xF+rz zA3j)Alq`<~_HToG)qn^zojUEu{MOMq=0B#r;;IQxRGNmRqLQ|eCwq69u`d&wBBg{= z>YYDq8I|okbXs?;QDuF74==E!76DHcgK3yPN5OCe<5CpU7`_!;fQ%S$ErI&~Loq4e z?|Y70c@Im+)T_U3`@i?U#oOfl0{+KGxD){51)b}-dVXr!L&H`?9w?-(U>QmK z|Ng)K`G5ca(r$D7rn(T0)kzW|Oc?k7e4D0D;;O24xJn(A;5rNP{6%zaO}sJJmTi!( z^$Ts2LAq!qu;2jNi6TJAt;Eqq2^!uaV+sIPugwUG+h(h!*fPVl054!)r6oL1Z_=z` zdu0(7#($~t3+%Acj!{$@{JQAn*OHtG^TfRaHVVOnw{(o0nUdhEXxu>5sA~Lq>rr@l zTfd`?BqNgv$b5QULR7EU! zPn~&Jf2)=^9gKd~X)Px#4qA&e-=diz) zEkhMX4fN@sWaKvklqWp0$CA?e`D<)t%{2QjQivJrrw+LhbgIc^ScsE6rcoyhd2kg) zW_Rf>eFt+_Nc0DpkrPt}0*Bt-aVAP6;E_7(LDX2AbcL(P=sa}w*#w&R=G8)B69?bp zL!;?S5N_I;_Cf35D;&9qEfGpe%eQ_0b)z>;%;Q@Q^7Q-+Y#ST^0ZvZ|YOaWsbcc~6 z5sZC@RW_O#&=(y-r~wouPTylDw3!{^A#9g%Qr7GT!Z=*Fmu-6f;7s@AUS)}63`?b^ zW@xm{>+$Mwq720jq|vNAeLd{Qw>LAHH3jTCy$p?WKEZuWuf6r3y|TS+x0-#%a2!EYtT}@zR@H*9 zFy2}{`27}85Mg54=49})QWPl-05OR{Y``05Gi{$~s}|{~hL!`9G7C(;lNYa$mNH0c zr5g{gaK)Qjt;4b85_4n|XE-b{*DD6!mm@GJ?yMBqjd%5Z>`k88|5efP{(xG2cDlNN zy1&7K_wcm{h8g@%%y_POT^fvro9jdjxV09d8; ztKbAD@=)_o*ASKG9^l>mq#`D8pMt!ib2Q1r_;VLhi|95i27ih1$|wzq7wBRMl#(<# zcnCpt0OLSXX!gueJE(>S{Y9(_GbmH3N}SEG~u>+dg(G$Six2zqF4*#9zuhcX)EluDUck1N!lhv;R;W?y{=!;5g*?9%dLbRcYv zNK_xijW~Yk1ll+%U1Nj10f_?+%NIcs%WX5e4_f=3JGJcfzc~Kolj+>ZUc#7Kms+|c z&*$p^&2aJLxr%3bqyMK-}v&KgpOTlc#YoBCg#{yPeXnQ#XP8m zVRI#eN5qL+bT)Ly(;bfpt%#~`6)a#AT|sz~uv^Z$n#IiP{j>;$M=NRGDK<-4UyF{cNptX--;Z1yXh_V#Y(v*mCLp$rVL=h8cxRto+>G_ajsF3Y7w~G!}U{_?)moH{}yf z&2cR=US!aWHbNpJ+Sc~qSEoWfn12oY-APZRs60kWrv}IE(;F&7q@2tnr**a#b|sZ4 zeGh^<4Rb~KJ}`Fl8PZ~?2y+714{+%da!+qhw!ALIo& z35F$FDv&)-0Zn6?C*^OW#is`2%vBE^7>L-9Ac@pjCN`qf2=)e+&}K@t7X}k3PNQiI zQZ}f?xlNegK|oN=9H#%~4cbM06r7>u4EzQ zYH^0Cq<+1CtH}~R$hb>t-p1%k1U!a{bSXKZ(d%j@ z@1vx28+RBQ>X#n4(W71i;khF>N0V-s4@6=`JFr=y3MPLAOG*Wbg7mqxg<~Gz&0+H8 zwgEoWJI(+km^M?sGcaZ81rV)rWaT{j2b>PCNdQ-Iq7#bh`+4~`_QaF9)Ik#8c+t@< zPXG;pLv^8qm-^9%v9T$X6qofM-zWp$??9?Va0q49pyI7#);!#5ZB(LKQsC9-L&$-D zfL!~_K0Y67s9a1Z!{IaNZt0vMp&AfUL(~|@a2}{1Gyjr7S)o^ zf&jenG&%;lj&3(*tX^55chJQ^n@b%hhYn;r;7d(%BUzlPYKM!d3DO{@{FJu}oR0pnDrY;)`I9o01ndH{zVaX-<`kLJ@BZ}os1IVjt; zXFur%6yf{P^vsUTEx0n?jeF-Z{GJ_AeLN_tqpF;Rn^%_AzdQ6UbKa`wSaws~c%S_y z+f+`uvRKFtk8(5DDMiaM<*}2Fda=a2%S_Z1t+l@rjg6P~JPP%PZe;2D*B2|r0vEZ^ zyW3wm!Nk-p2(E{JOy|pWsE0wx+(`K0(8qDoi!6y735g6rR^^_nQ4OVUY6J+}{2jtg zo!&N6FnO^GbUdo{%W_F&=clda!_Z!ifmD`C{s5!`vATA&iAB+H&p9a9RtWG6$`t7{ z?_GR}A46Hh?V|z6qC47B>PP~#F8f?;d}N+FbXB(l!*cboS%Ok*W33Sluc&J z2E0?m`y|u~DY`UV>_nDj>Z7_p4Q!GR6!o7#-TvJ6-DS4PW>F^_qe!i<$grd(Jrn?1!TaOk;5xM-S!kXccbG50W^*LVe;0>*yeOd-KY$@2J#dhy~OD}C>kZy zXE+{X^53c$Aj}K)aFxohXac*m3TNk!M8?=6=H#}@%!ed7l(Td+G5FPfQ^_UGt&;Yl ze!h{W$_s1V1gOxB`W$JScN~yg4puRy|87X#UxtfkiH)zjAE~igl?MJfE@86^hgr@m zWjXIGTQs^_UCymHf^-W(9j~CJEB8r+kxf{r_X|JZMON3Nr-6hw(yA>Ua8A}5h+Tyl za0@E$f#(-Wy9;=rnW` zA%%!^=rRm#XrsC`23Ptri%isggyomVLC5p!2a(o;f3@CvtNB9{#3gt~M^6t4Q5>(^u}1fLkrG!YT5uHPvC;f@v2SLrnd6yrUr! z;NN7fF3tIcsrMLkWdbI06NYvsuW$$iqn^N6gcrO%V#kIFr*f$MF-aoqYmE{|??_qm zH{9AaTs#aHQd6^k*(X6BnG&6a2e*X=P4Go3!z1}9JdVdPe(;=|6)H`HK!r?4k6c0s zHj0^22OAq83^vl@uf8^Gu?`q$0tRO4F*aLyU^zD>()}e8Bbwa6U}f2@a60Fz7Rb%Y zV}ivc(%wVi>xc;ztsT@5eo(&Aib}G;9TFt%{Mp8_l-e{o&@^{90Q^y1TXL8#CBl~@ zdo(`yAE1J1;mZb(`hnQ{3Lo0CyI2cRf{zo{klka*5& zI2kuGyEsCn_&)-#f*+wYA^INNIasFX=RCGTc!Csx;kp2T1W!HGJ%Vm9o~EOl@-DnX zJ|n&LyvI2}9Gt)!FKl>E?{fGt0Fs)Vu!*y+Q1PLvWt|9R334gjN#0|A)W9;!bk4D?J?yHzWb>6!W$^mG!y+mmimMp|a^g>OCEuJ%GwAGvfHFoGMw2IRm5iJ8M4@+s!gkM$1KTyYJwMZiZb zXj+eLElKm#HPwsCvC@a_mvNf;uN{lJNL2Ikj(jw_Y5fNp<;C|}E8?EL9fgSbGM*b8 z(|@4R<{E|x+tbpq9H^;9F<(lJseS@yDLB(#JM3Mmw#OxWHl*`lb!cv0&U*&|!Iox5 zaxY!qn3IF>=pjIvPg=3ql-E055_6dLWr8gmBtJx=3j<$8>h+4|JZ^xWmiJpH2aPDx#o*T2dmIAe*O;{ElYAI|n-ZxNbT%dBdD0 zV`_o0&xQJ+nWu|S_67Aieo!nDw}Wmr=DM>J2rn987Y#f_Ach9U4rY1Z6r92c?iZ=4 zf+A-m!L)dtdaSyEs4vl^q;U(m#~6vnalHE6K?wce5vm(UgJ~f@Nwb)Sn=>H;L@vA_ z{ISh#pHv@x??Y>sn2N{$vR6jECdK=o&b7}s2S(dM$V>s1xnRsFd^@ni;+Br$#K3M5 zz-1qE6IZG4{33Jr%bNCOm$H=_`h4?pB+wDvqR40gZpGTN8;#>Q&A&k491oo~+n_g= zJ@I;at`txF&p4Ei`ahA)J|{{?b9DNH(Q7Dyh3~f$BFN*iMG$^>RjJIo7X#xuBhjj) z3ubI|$l_t;9StZh)9QoNem9(d@-V>U2_L1G+HIM4V)RO+D8|}n#^m7R4Y{q^%jk(y zW-SsgMYRNj>U>guRT6c1_zZ#lJTN_D#@sm7hqUd?hHAk5<>+JoP9p%U2*7qjM?Csp zK$Sy{na$Zi$d`>H0a!Sl_>kH{A4!GYg1+Q{`-g;z=iSs44x|>;VJlkjy5S;BSD+<$ zXh?CVIT$4(z#)KrG|sC@U?MYgHJw4;&PEeJu9`_Fb&_;O7vaMI90km6Nqk6<(S>hf z5@gD4)@LXhB7dfEi7Kl=(N=IvtTKS4weRh94M=8r<{l<6YM9*t{Nv+YNjLbBn)5(0 zz5hS#fU|+2Gcfso9XHve{UKBEAW8OMmJIRMP#r##2h<`omX1lsmtWfTE^~W9(+ppB2C@3+MKL_| zT_Nr>hpzdf6R?fYFUbA3SY5I0DOTm}V{YihCD$s&(+3sa5vn(7TSINT#-vKF;VV5v z`1y1(;=M;R0L!AcFjGbUQh3WDcO(a(k0&RTTapCs0&_NT2Ehs|VhPS&bjOL_H@O~a zhlI4Ihs_9O;amBwFeLhdZP>*uIIE;nMJfb2v%x>>_8JJXcv zoUt}ftBoXOm7XOAw0SNSU)t74<61cP6hib>(y4UwxBN#an*Vv?b5sXBuHN24$8~|8 zG~*zHRrT3Y?~-5D{rRF^piiv*i4t_VvM38J7hb-Xv)>&N#YmbR-6hlH9uTTiGBdKt zs7Aj=vdM3L85XkABy?m^0&X#%RrEZe5jH>mLkX7VSE-Z z{FY{jtxY7M$6xVH<`3y;t?*nyd4-0ryr%*D*wCna)G^HIo7fu=X&%XD(uqoV$a*bf zgs<^FZJMo#7}V&hO1K})tOM_-{zNyqsi{=ruT_gyvgC-+*%W2MJV`-ggYw0Nr06jp$zl_PMUV^_s zWmSnUR6l2_GV$x>J;l??#74vW1nWATu~|tX4vR!a1=qleO2hj$au7a)R5rSi5Rh(- zvXY}&>~T$)T}n$a4uQpzuQOUaK%fw3dP?)S5SSGg(dz`h;C6s^0G8fL}VUGo>Kp*|jBV<{~1lW*sv<8E;rIrNHurlZ% z!GQr;(TL_XLl0j3L+lVwROwVmHXsM_ejH20cRPJ_MnnT|JSu!=g&q0Kk5<&fLcXvg zgtE516uq=BB`PwpPzx9-*Bz9HtSe+|${nQ= z3emX<@q16`(Ucm)>J;>Js+rWdZfSq&*FFa0W-s5fIEwf@|S~)(sddf zQI0TGwGJ_)7hFjjrUQ@T_IVh7kGvx~l#0841fc6?_WyGBEB$YUNWyk`(UDSF7s_I% zv*=k3SCzLKaxYk_Tph3(^a`G%cB!1&4AsYHYOGo!=e$VF@11WxWodlmOV8D zQwGVW`>}M{@&+}Tlj^kOpWSAbUkz@IMyV#8q^N+|cA5#oKuHkN(p!!v-++_2lZ`Mh zSwxWIY-M1l-MQpQL4v2jtd&fqFaVO-0)@F@5^f%#{I6^_`J4yvX9cXNd1_#BK#%zl zVYvb6$I~Ob6)i&iT zAU*tHm*nvsn4wA7>HyJC0ykLz`Fpsr zk$~hMG-NAnk!`IgqC*GURA?VN-9P|BW{oyRIN~N!5KpM;u;%7W?J(g-(*DVj-)xQU zW1sLiLPL6dItiy#m`r~aDhBQSZ;w1lpIwljK!nmQRJxsEX2DhKdr_o`W4CY0zroUn zQD<(GOqF47I(vpa0x%|XFq{0A;L^VKi!xC%&=QvFJRK+ZUD2sM5MHnvaQaSI6ZjL6 z=crm(0W|Yl*%)wKU0cFcuHZsRSQMGfOgg@sNeaYkn9^?klVD>0pc6~zUz)rKG-0fr zGIP8|QSlv(?8s0h28bdTgIo?d73dns5CI?BaTjm7_w7t%~kw zPRl3_#x@`Gr#E%f{Lf+zsGXd?2_d+#IF*s?B#*%);B8HAaF=4Qmi{W!S$hQkC?>Jb z%pRzeE@lb6_y&U8hPm2|0bZRIp_n*5Nv;TJg}br!VZ*}VB`yE{{sN_YEOvOrhv@id z=qCLNO&_V}Z&8yhHV?3a0IYvB^=Y(Eek4Q)J|58j)mY%-qc7rZ-^W2-U@Z**01z{- z1O=8eY@daMZH9FoT$t(J%B1mYG>=eZ8R$)bYF|*$F~=(=b%#x>3H%6dHmE>g=e~be z8Bf zU7eifB32Do&oQ_WHEZde2)-CW=$Mr)gV*e#(3{mnbt;Z;)zZ04HlFG1x<=#Ar6UKV zQZtp4dkqbI&RvtF-@v{L9bdnpEFgykX3*LHdo;-gnDDrS`{(-xP{&6ygr~*E+OK!V z#0ZQs0^Bu~3HTN!y`m@7rPsVJqUSZ~7LVpsbC4HSGGGs!ztdc5AN=sH{)3oNhpU!MCn zh3$Drn4c)!RP3A`YDxk5zQ(&sNgsm$X-@ZM@enQl`*UY%6AQ2VHn9_czerxmjHLeV zKdI1Uj^J%oruL|5FSc7o8m|L#X7;ZTn#&%jSyU(_T6a!XOX#>nNc;vvIX<_sJvAS* zj8n+oC`by)BX#(cU)2Ki!nt0W=|3N8{OC=ZR&*b73u_7JtdVHZJ7_0YfPncI=Phaq z<-BnPcS5NCqlY{2Or~!NwLC^?9-WU&t7p9Ns6HrmTng*ng0ud>ANX<4zWk(^~c|2_Y;KR!XI$z zGk~NQ6fmY>UMc_nI<&1@D20gj82~Cs#dg$M@Y!;V*sL#;4UAcyV``@?HWtf;w$rGF z1RAb*c&qhT{>~Y}rtg6Tn$SQHHTZPu5dHMrmNYw2f>oHQGyNY;WirqlLY=~m6_ETB z*3YU}_5L6Bg2&-9eQt5kO1%TZF*we72afRa?l>39M5F(tqW^wB$lNw4`((z9{qA={ zItbqS>=<_tq`r-@9o?=8F_~`)8hEqcOeZTg^gI$y7K?f!w=KMjX*N7SQyyO@t-)EA zlL({HL=mC;iFfVWRt%{(tKf|ZsLUtwx!>b8tR3RU$1p`4H@qWeG3|(~iJWW7-xU2( zFPFN;fU*-p7^ft}y?Q>1+tGRPP`68ipu?aF=f0tQY9d!|=xhoTZm(i41!2{=GB77G zV$U-U)uIE)IZH8hKp!-z-O-og_FSE2Dcmnx+%}aLEM}mv-CU?=?YC_2sPS>UM>q=s z{lN!@u0lp}f>ULr{jzK#y3ylPn24W-Wyl@$gKK(|=Lj{e$_|MAp{m$&LItvQOREQWXIT1}d)47F(x#uTDz78|pp7T3SrQ5c^YXwK{LuB&lO=I+ z%y{?mYU6RCJ93eTNkXq0xC|()kSX$>Pc5n_zCs{K~5 z^&0?!q(WKz+SBOAaWF4bFNz`+5m_{AtGrw`b2JQ(5|2;0RsdE7X2Rvd!l@2v>+kAD zCUqjtP(p>wOiIqnvwQ#CJTbr)S?p+ZrDJ=KC!izP9-oIp_kX?c|9pH>nEMkBYj9$x zVLc(uV6vORgP0dSc;Is!m=Q4WUXS5t+7UEVL8$pzmCT5qdK=n|kpVuYXWrsFicUfx zlQ50N8#UfnaL@u2;@hy=MB^#8ojJ(d=4UuPCM-4V_IJ&dK(`XWtm1I#jG0+Tp!W$lI zz`C)Y52mNh-@+`fP#mCsh6Jb{zps|d=*DZy_Jp!RwF;Mxp0=b^kDiEWN)f960v7|n zW6|Zv#-u*$W0KGcT@->WmGAYweHLy@agRYKn&}fc2>xHa`pPq1vB3S73(y&`zV~pM zx8s?F^+G88m#rVVSCMh2v4+`R-hK;0`z{1e_RV&ar$liuxkT3*Qa(1_^3O;ljk^%9 z;MYgjx7B-};eoiA(M~`yn7cV6ZsGo`G@A0Ki$hIpy(D>gb|5R9n_LY4G^K)ox(cXw zudUdmDCA392DB{~3`~CNsN1XYlBRz7!%I~M3z}ks^4FB(z z9W)k9xL>$m_zNV^bvY^g!qkSTB!>V|3!m-8bXH)x z^Yng+)kU`Jo#4M;|7J$u^K)D$6v23j6AR)Vmh!P=Hb)-5qARuoWdpv93wcrGTF)H` zyMooJ!jOR9jIh1eylcs^42(iUfj^Z-z)|@)a_eqJi{;P> z9th3%+;tO~jZZtWR|~#I-w;T3MBTd5G;odUE4CW6G;-Rc{RWkd%RXJ(DrR}2@52gv z?6M(&y)4xCG1creL=c`Bggw8}6Vyo^6=M_miCF$!$XsV@h0km+lKLZF(=1fCN+ASW zo$E9)*I?~3ihj`m5$_ss#1#IoQBZ7oPkXMnyWQngy>DeI;%8vT|vQzKmEV-i1HqX znl6kL9O8uzZHt^Uaju6OA)|YMy*(ri6!R=~rJN=W`&RX&_a>_I$Yn$Q1}~bLi;kM# z_a0NO1uG4*z|1K!7~!nrSTL+bOOL)Un>85`IKn5gCULc2C>3#@UyR~6QiCr+)-r&a z#wPdNX~8C5WiRfIGG;^!w1py>SK^LIPk>jE{&g3~gSZbIFb}+rzC_Itt(_v(PePzz z8Xom$4wGP>?zqG~4H5z!lPH&q;E&~T*?10BID1JEt7%R;vZ+|%J zhNX2k@uv&enzh`DoPpL;9Zl}>c4bXvS=Ec3-pkQPDfyj7Ln#q2>7!ymu9%goYZHV< zEeegMWfWlV(w6^nX)4?8ktxJ-vjJaq-y87(7`B})xM`YhJ%6p@4Nis z6^|-+0c*L@;YLw|jpqeB3`}J1V$)PgpWYm|u)tKh5DXi>fY?v8 z%%at*hOxIc8(Ihp6>fwbQ(rv-h-3h!anDtG4G9T>^%HMsI33SMcKxojo>>(MPhBUf zM=k<8=;T-0 z&jw9G%5r{QpBu{ng)~l>nZRzk=?MhUq{-#(r?l7c3lvV^Ugi2M1cOnHfL?A`FO<)6xl@<_@YJF?c;9 zsOOrNNeO$zmK+nHMTVYu)wJOZ3VSihQ{UC6JPC=@$@$7bZSFj%y+a>RbU zEfvrkNJ^5Wd@|b_InU9L*&;vX+ALo^jj=>n3BDly^?L^eYKN@e^g zV&hgaqZow$z6(Hz1H$+@5n){+0;!NKu5nUMBNQkDKF7p!u< z;U-jaXU$)!DKwN@&S?m=ogMyQ z+J;G?VJ<)xvj;?ig+}7>kSwVbD|%8L&*;GW?06^y#c80!1=8hh|+Z z0h}Kv;CQs){CC%00QAMz=C$#P-j;<(|NqYTSbS9+7`cl(4z|lMGMx&`!+vt%Ij_G z3RqZP=e*JBT-6SUaVK;+$YtQlmhFS`V*cFjtYE^i9oHsRsfQE=G2O!?e)oO_S0>r` z=1R4^6s0W@g9*#%kgR>mzxbJb*AfRbHOn1MTE=zareEa2-KFcl2+vG}lc5L6>l9L6hMb42514o<};Jlq8p=7<~EAiGEGSLIVeu&nt@SI`>P8>AslUsU7 zAY92@g6B@C_HG@Ae(*_jV6cquV}zL!K3N%KX}FO?!bf(ZXSm$c>);P;4nn<3hA1Z( z2?d`)GlVh%h`b~KBC-N5LQA}xH*YRT{vE)t;r98G>uthYsL?>8i=Ldd|H z8ePf5D#AzWsOlC2{S+DGL@z&D;LDU3d0zmOVwl12x+rub9jz3px(Qax6<3o`^?@P^ z5Ah2dXRjkHuoj>LbVD9Ufw6o3me^IgZs@B18o~A}VBb`{+$X`eo)&`Sj9ZAMX#sI08|8Woz?Ik(y#?PCOAY zCP0QA2#vMj{I=IQ9A{@G6acH@_*G@fpvz92X%O1!yew#+<^iVhH3@38?)mKH_$y`@5LXfV{%0!Rx|cbRr^V9uQ7cPGd|hK7RfbW%I|>#t9tTo+)BR^;*C zH<>I=HR}!0T&A!hBrrgO^gK!*nJ$JbL26S&qHKiYw|bP47ib6K_XOcE8CN(cjcJ z>QO5llHt^B#gCrjVgl0hvwdh{T*17b%-1DFgO+N_0d>j$(D@=CwlDx_SBK2LTu?@$ z{k`aOWe(sCilU8qN9)w{D$*Q>dr0iUsAjD%W><`d|CI>(Es{{!+m0UZB$8<(dyV7j zl61?oTzq6Vy7+%%#W^i9lrn}rkRp}sdGGP3c?>)5Xd>u|cVAvE6$y(fI08Cm{bE4} zO@E7S_sFgFIW!>ylbX*f$00CA6H3ZdRY;M(3RrYTGxrmW?voj9vhoVY|%V-!c06#rC!i!i3^?2_@cT zYk*54zhwvmBq&WxxXNiPy%oH`z<*Fk z`$KrmV#Uxcj()P`Onhl~5Xrirv6g1?O$XGPUR z(H>2j#__ zrCbNDD}=9fZ+CFUp2Mp~@pxj`2ZYW_C{J; z98GFJCQ}2G5Un;$ib5D0ZW6YLUfqeaY4+k@Ym4(<^g<+$EqZB9p{$Is+8oJfon??G zB(YT2IR<3|aU$6ksDcM+Oge;K$MVn0?{8_DE3BAk2tYa5FX`{45A?&Bl^3V(zW}%Q zW~o!SeJvHpT9QTA?R%@thCB8Xw$g-qA zTKUF5_0g123A^S3-mD$sRpz5z zI_dnpES zcNGfgj~Wb`c8f_OHQVM+ZkJfPPxP#Dtym~*rdThygkdP1>3)b(?uou9j`}7k0wm=^nZcb{`rFe9KeY+h7KiRGG9CUV@OCOm` ze+qu;<=>&8$aB&Ww(NB~{DVl4?YL0jn%(F>?{-r_Ko&HW^ZTi6+0; z=BVjAb?UL8P@uo~Qy5(3;DVuYmC*v1*6|-&$pf2}jMu3m*8Ya?gG8=?Kz&fDXi|xZ zLi%5<1Iaq*A=2{9+D)@%wIo1H4eEJGhgACvdg;NB07EKj!wBYhYg ze*S)pJLf=nCK7=Z)Z|VcPqRUiT)xL{p54^)9M6u>9S-hex#^T;ZKQXZaw;k#(u{d{cQhYFZK|qg)?Ow7OEG41AZqrt__fkLxnA|? zAS-%Md$XkU=qE;hNLs%e`mVBQ~DWqfi`l`@~I)gV=yTZ-%6&1NW)vue9gt`o{TUtz6^|^M$xX`iQ zX9r?glU3@2<~NELf*}$%ok4dEOdP0XHj1&H)$kn>4fr0=nC}lKvmqa)p>euzeY^8{ zXztZ2f9|xH3)+USTg&w#NQDdHWUsId#xPtAlhMOY-HjyWZ&BZV?^VCv6%hS)$kAsAVQ*p?jfuFLzpsfT9c$&KU`mpSxsDNvy2?G^ix!pE&5A1XaqPnM z)r7jE&$FrdPS!nOgVnItA#NB5-4nuH5mr!~5@vs&=q~MMl~GIkEsU0Pjpo8=T0|9!xSbckUXe);yUR zEJT3k0)#$JA>a??)7gH}=Kb!=R5PRXsJ_!dAV?{lh z3;sw;m$+;YZ$;(9Qt!J(lbEldNX-T=x#T%C7H0SyyrvHXRIxz{_$ag4%5{+bGQomp z)IkG`>?26k>D#obR$gYXS@vI_g*3Gft7R_0c%r@Z-F~q$YgGNX&)_0XNSZuJ99a~( zIZm6ztSlHQJ=2kP8*9>=OOJqZSVpz(M{{^i6bxa1HJsGOizuCW&A*dn?bftMIc0n0nq7_#z zwrT#tQOa*$MZdX_AAWCTawTa%x|~KM1hRltV=1g%Xmy&Fl>Rd1r6r2|9F4V7y#X!s zdeI2C3}#?!MtB}FeK@yoVNwFT+rhB#`tfGQcsd2SoS4fqOHxIghEUWbR%)kHQJDWg zGg>rh)yBrDyPN>@Uk;hNw84lG0W@pq2GEurG%T-=t z(4A4v8K(JiZz{mJ*2yJ*lAqboPQ25Bb1>d)TM;rAQ3Ks%5gO@#N64g1r%*To7cVP&OYg0AmIaMYpw!7k28Rwanvctp(5 znS!(G0F)j|vS-$4u%1wID?{iQKuR=;so-lt7xJ=<5ad{BY^vPbO_- z&>iU0b{Jl!$bNf%O@@cG4iqPgmTp`@HCc(vDKxw;jNKBs!4RXv9@oBZSlz$lgrSbU zW&|8TyoAb&3%!R9=v2U%K#s{JET5BTK6t5pjahXB+`v@Z;edrMV`bQk-mO6Ry(>=f zRX;jpW6CDy)xzFi79&{~y_j^hh zXzp1rOIcv`yt+WlX2Eozt`aBMMK1p8;1WVJZ9W#64@-93d-RH~Jyvd&AhM-2HQv{XOs ztQQ)T>+PbVx#SQ<{sBTZM-Mk!GjZE@8*Vu&^266XTdHKPTPMdvZmfJ8APVL}K2;3$d0<+a=RlSOJgYLmOKt2NP-H4zgB=-zZj~ z%>(TsTCBZ+o`^%!`h2FUbqLi(bMk(y>u93cpj$K5OjitZy1+;Xml&AKn{jUcDXacX zxm>yn8Ic~f(w(Q|ctI1*u?bpIyd>iTQC9GDIq;?)7NJhsN9Yn>uyg~EAA1KwS^If1 zk;YhY8VpdsrtU;YnHJvy$ug_$Z)fb0 zD2-oAMn;x}P!e_6Y!jpqf$%bFpS!4coxJstmCHnr@kn_PXIew59V;xu}rvJ+LO(hVAVkn3T;WKyMjH{f| zLw$}9AcX_=fB)@NJ#Pu=x}3uL{B7EmSDL6YyQaPds(EkSpSZ!WY@a#9OUic9s`!6$ zgg?G6pC5@4?dDNFQI*hf+j_<6H9ji>n=d+}s<{|sfN^)#CSnSjf<52i?*W=#AnqJ{ zMc4``I16C&$}-3Q(oA*PvdRCoro*Ox$EgjiCK=DV`9>+L?>N5P(|$8wdK3ii`7(P# zj$o*Y{i$h_z4PU>F6NiqqChdSXIsObYkd{q)Wa|)t-DLb^YwWFZ0kwn?CwanE;`Rg z+g1%7A{c3e&E9ZNK6pX-d4^Y3R3Z5_<~)*d2}_b$m=Awr;KLhW=yykg*eXCb`LvC0 zVEhmOL`wiW%?%JfI&tyot&~v4cqVXq~CPf2U2s&R0hF*Vq<$i`7wcU z(RF8m<{nP9pP~Z3T@~v^KHUVneks5JefSr4&Vt{iQ8jr0{ZW? z4nP3iHDLCdpLF3F#RSyQGZSKQ7qRpaG8$WZ15VRk!r~)u;!$K*f|f))im1l z3RFr`8EvzST1)3e{yaQs8UwEGWTvNjh%?2B(2&zth#bixW=lFY4(}&e=A4s#iOk3hhjo9=4 z<>j9fen~vof>4OySQ&Ui%5Ib|9;o5Nu`&cz$~~cc&%2V1=Rw{CH?_PDUEtk)y`~ps z5OOwJw85Xw4s22@lGGHRu}OW}!B0?bjFvo0EL-@0h6I&VBK`>SN{Ww!PzRGn{7MS* zv;#1}DYgP=1nXUF0d_a&m*omD!gDu6&-alz*=^YpZ-*x2f*IA8`^X`IM}yW^zqFze zLS>H3x_w5OeV%1i@Zu^?+q>|4HDPq5+(w728Opns$Oj}=(3$0qK7uiTm;xzL_h^tF zZxok8Ka76;U#{KZU4OYL0jd{9}Th zuo9|hi?xEE^I1QhDSZpx|Fs!m={p=H!m#LaS?D;XI@@VG;2EH9A*HhTi_ID)aa;|f zDxl=2Yo`s2*82S_DAytl^Jy%&c40_Jd;fC+?4wsWi~!4%hk5pBXnBTe0e2XRsmqL% zvTo{;=}O&2Y@M!8JZ)q?zrMJ6EOiFmdxnG-62Eksr5b+Xm>m?o%P1wC zS~kyCTWFwXW(Dy|%X9zLoZ{HGH?|#sE^^B3Fx(pPB{!d3>_^Pvmu8S}l`%m#vjjC4lM}sE$vc&7yjaUHqxvJY=AXe2Asd z^6Um;l)O4i#2AXZRV&T=&Y|HY34$ZSs#3)BmJaG$IAvfGIt2|rBSZi^1MIY=+Vu*I zLlZgW_YABAy$5mDW0-frm&hNM-Z|+DW378lfl%3*A-!FI*y{K}KtaQW8Wnd_q~hg_ zyTPf6$x<}p((1ZFiU4DICrZq)OXLu`XIUVCQxl6wyA&9PA^78Uc53@ql3dDE8Kwkv z@Agdp1Ch+!bD|wgeWmw_N}0#Kc4YlGOcQ%KWqa^Bc#|}09`B&dw!T2{k5#<8CCwr!veu&dWI`hTRSLFKLLG4k}8w`nu>8I2yuDOCh_mFS>I zAGspJn>8yar3#Q7!0DQMGE0-_r^2BSUC`s<+IBymSR0G*Z~EXK#HphXeQe}6N9*F( zm$j`B&K(n;H%I!JWEb?^k4u?*qEz=H-G;u+7F}={(O;M@&%;) z3^N)zNF5N0)3GwFpEb`+qBm}Zg&yddr{}H3dYb9r1CJ;A6h{2ArHG^z_cNTd;!dbLo>xyzd|PU0UW}M+Z6| z2rv~>CmR18MC2$o!1?QYNx8mBNQkImS5}yTssAK8z8QpD8%(Xx7t3_ph!^WqSXK_5 zw?mLn`ztNDpyen#yHY;sL3!>PNZ)zhZY-5As>=~mkT{n)@b*B~i_9V2h|PpMA#BC6 z8V`5qTMy~1LtN|&f-GHbk+Vb4aa*WVl*-eaJGMNqfLcY)9Sx%Z+j0)Yu=mQ>g!4-> z4wn3B(*7$@Iu!Gq=mllb!2IZ5j2VJkRa&eFV2Ky4#ih6!UQg>_1Piv4$1oduA}2Lk zJLsxp?qDN@FjG1|kdJ;*6yq&n##!~h;U;5Bny-fQ z&{HMLehv$=;5jzIO{R-g4-avs9>JT9`#8s2-sWYXWR3c7hBM6nJxE_&Z&BZ^Q({G) zVt>NMQOxaJG(5UssZBKRHMla91>EsD@^Fe@6iwmDqNg^KadouJFG}50&+g0uMd_P% z>y3s>+k6edC3!q?G3w-APR9_^U5p6ze3i``TtG(!M%>J-aNyD60pC>je*3p7HFOoC zB)!fRd(S?B45`*yU6}yUnmEA3?lSq+zj?cH#{dzk5Zkxx1f1cYczalAII#<|17;Aa zV95`$v(Ar>`v`T{1Ybfa(J`Q3C!;r@52uSNL~=EU49`I!J*T4g;n~04cmcqG3@6R~ zq^s{y5S_2oAu(rPunFBi^yE0GV7n1-191s>MX`ramZR(!@~hx2mh;p?3Y460+XzY6 zVou>(T<@E1_Lk4OiA))~21m}AdhWIh_qNmQ6sgRaZT|oikDvk+SN(*?d_2~ucd|l| z^s_=XQjIOE&9iy@XKQEgeCmus`T=hFGHj=d;ACOmG2To45BfkXq`(_} zxA4h8C^=ygAHt5_VQrPvOr!~gJ8$0)Bw`9D5{fLJF}l%5&TqHpco`AxBwfC#6~&V1;|#<00(6u`?4+n7H&pZLuYEFc$9EWehUr?vy~T$1 zwMZg`B%BagUh7Yx*MiHjvKa}|dEAkjyM2{eTJ2wFKii^cM&GjvRs&gIh}`{lTBe-> zZ2HUJ(EPj zHB6vx9?h1#4;b z2izKMW{HtAnBtTe97MGrU+9!DbMf6+_+rOInmJw&mn*GfXzaO6Ufa?~@dIh)EI|s5Xh#n(;eY=&@^Pj}Sdrgk8HAh7LU%1Kapj9Va8M zlNKe3M8{kD>l1~ff86WSe{GVC?S@|SDG29DzXDh0o0h8t*&b}D=uqX8 zEzvOpS2X0jyd7kFsyFn%@3ZHnY_fT8NZ|$Z zzSzTwP{dG+-YX0s+YkgiW_;Nt79>MSEpqc;X@MLpaEKK673~iyiA6iPe1&q-CQ@D3M6|TF5vy)$@AC0GQg5J71>j-~6?`za zVM8Y~6iLMU5FNLzTy!bz)QOVd>8zL*?_zAa>p5x4wJ3eVOE7qFXC$#5G!lxQuR?A{ z+uZHi>%&T-FR*NvbXF0pe>oG#U#W?cor@4oyg-#aP3yVA#2Fe<%87S5)Y@LiLD!y+gZgHae57r_;??irj)_dhDQ#l~U|ZO|=&|DOi67j2$V zx`FG`R3f2n{o$J5r~Kk_zDSmsLW2JMkQ#3~lAMIRU$9I7}Hf=siTKo$O z*n%jnVCE6I_79OV&><20gLKSh(%ocVZgcRR487!N_&*C?dk!2bP^%E;al_k?-roTA~8UM33b0ov8`HL^6nS9qAsJT+iS zs-AGg?}j_^uL0C1als_cD}BA!TM>%jsvr*UTAy_5XQV)&gG`wpI=B+|!GKwBzu`cP znt4yDNx8v6Ag8Pf`F2snPdL9f@Pl?xu2h`|gGS_rU(b!cx0Sp^mXlePFN_HoTQ}iT z9!}tN59Iu&>A$({9jx;>ydw*7PR_4}cW|}C*O-IxX%XTbrEH~fStFtDH~G7r`l#)? zIQGp;?Q+vWc`v?uXM(KBggt`FF;0MoP2AJHCPjc_h;aLG8k})>6wdEld99Gz@GH3F zxJq@J>(_>5>v`!7^<6!QB?Jfj?Br|5hPWc-;N~#w$r%zKe7ixvHq}N_cbgU&e{Olz zjB#WfmW+I;jtUXyaToH!AyOVggd)%E-*2nT%Rff??>G6|(<1lxiN1mO@RbTbA>pg< za!g-L_1ZRDW+p9M0AL)@;jFByXYOA?=`R=dz}-2cSGYOj*nQ)zbq(&@s+lV%N|70l2oFo>?@FG8~5(kSX zLJDte}eDseSS#2d#y7eld|TDPhli&=S)d!792G- z@5NGvRP2~xJ|wrxP zK=Pc8O4bk8TaJvMwHcEJI<`!C>GQo(G#aen*C;jH{c;TWaWUvV05}eIV!gA$+Is2m z0k+h&`cep9QG(YJf^q)-I9_xsxd^Qkoix1h?>d3ycyL<;hhG+D-Ub~tLOQ?ed{9M{ zl7#&%n;3Vaz>T%49b8)a;BP(`dZN%RkNB@^m>BxfV?Cl9@KgosMH6 z0&}q$v}@*h_08?YOP@qGR{N+2(hU3*Tk9?2u?E3I#L=xc(jkHk=lP1NExv>JY`mq8!TxC>t|m$NL-vy1cwINPe#nII2k{}$4*tVkXl z3BpKoTraLy#{tj7J35y#Z{;9MKa|9X-L|9U{9 z#5uMBm?V3@bFyrXIs}we3GdsDl_x6bA4|cPW@^#Os-PT2t}UnCkpt)bQv6rGawaS1 zfH2`|or_9EtyH(uC2%ZTMZNtg>6<_PFh&%q|5@k-J1*8R>ClN+J62-*l%v{O+g<%h zcw&?M=)aTuq;{hha||XeygQ{&lgwqS3V+X;oLSMw{p4)KEPLj9_nFmxqm@uo@5D#T za69Vr?cT7=1;))%(}qUzXjW%KEhcZeo!T=93doAK8jBW4Gc-`dd5#=z7yMz~b_U@@ z1Hfr|dW9+t08#he*x=&?#Fe^)bQbjq5=sG6g2D2ZX_l0~OLV|&^sV@ulEfTYxJTwy zlQ7a!m%0ibe-9g4ENE7yxS{vDqz3jR&`XWlV86K$qE;yey9{hNc&^1&@Eli!Enx;y zYu#kZOv=DY##Tse4~$_?8`@L;uih8S+aRsKZ{t5o%6NGNT5W5!^L6r8JvtGJ!f%$@ z$efdDS3U<@k`!}8)@wYram!zm%ln^gq&&<`uhdGrp^(rVPQXoYp!KcP7S&BsepWaE z18Hn+I+lw2tX-Jyx2JuneUnpzJJ$#)fMLO1%TRIcs!vf+<_6nxs_Su&-g;hRB zlCHA0$InqifumY6AHcE~a^4WB%cCHf%NPKNVG-Cucq>%&A;gqs|K{Msa$aGBUrE*>4?#ls0_`J2&wqWX8}9M(E%1t? z83`gxOMLDF!uOOb{&MbBNQWSX_#ow$e_uX3r_bGJxgl}LCqRS51wLU$^dPsd{mF@W zJXT5@BpgfpgyiSgOyHe+>6r5R3$Nb=!kb?61%P&EssMEG0uoJIMo%gYFcR~)R7_-g zc%;f6qAWVx1x^`UpAB>&fpNs}h|>SJgK|Lm{1q}(nSvT?>;HW0_(%y>y`uE11AL2k z#0B76y4`Pt45i^)fs>O~yMIaDVd9K*-e8`N?k_KZz$>ihKVet#5p9!MAuzxlq|Qus zJ$A`wHO9*nS(YM?WG>-awKL3j#$Q&w={RP(ndYs~w>U{sLdw_^<@Jc2!0&vcqH3H9 z&jID$8xcT1^T(XiaNNEfiSy=(lMlhcVvG`S6e}iK-HzdfoF8z9x1y&?AR<|Lrk9f0L9~)E)pRe zMkdQ`GtS4FeIte_f)aAs$ae{OSzQ1<4TtDFC;4>XY#_JeI6l|-V)uZ-{};=gX-h2Q zZ$N-gOPZR~(()1;3m}pS1??8_aMYc?KZt}ZI?enmMWwQ!Z2KBltf5pPnqYDT|BVCb zc7THo+;v&wh6Au6dh-j@sT%+`88-Rc zEiuqa~ENRmPV*eeG zLS0^d`&;1Pp5!VzBBLw0D%Hqas3H(=u%+f|DUk|DRi>4C(Kb3J+5BVS}*hD zjKs<8#s@=P9s*p%r?kIMdHUZ&leZ4W^^cu*vn;BcSb^mdlF(C6#YzXe*MyVz*6wxHhncaREg9YsqN2*Seeh zPQ9HbHihCbS{hb(eVw)d#{&jQJSOnx5-BW091{FIgV`gOSK*@{^~CoEzcz_QmSy(7p0=^yiNa;J&cgi zWSIl`^+M@)cS^i${RUVbQK8R02CxS&X>Oybx0DFG9b}E~yeeENU!fH~hV3hUp z49u0~$*JhRf*!FIs1;IbZ)&j_+Z?m>J6+ zj#G%9Gvna{yy;bReBmBvs{ynV`sNXWK?xl;!${=k+O7oEpNHFwbq{I5`s(F=x-OmZHJ1q`)92z<#^9El2=O; zPg(hhuO0u<5y%PB3O{Cb`=duk2R4GEfVB1a|Dtd~h_u6j{j5LlWK*~!1gQo zlgL9(26j$k2D&eIf^qCe_0Rmk`NOT?Gk=zS_asxd%gH+X=gb6L2S8+$wD!rW{gsjE zyIuOrv1}XvdRCPx*nxaQJhc2`L9Bbs4K0MZ^wiz!ld>_FH2nLAzY&+GIx$yDWO#iML z4#A!Pma(%_#y6d5u?(5m+r}}R69WdVowLJRZE7*PwH>WYy0aHot$`f2F7nyHfr9L- z{~Fw0$5*{G#W>K;wpJXvamZvMuCL(NKtJdCCV}<3G?4;MkVvxZBq(eSfx->gAF%wm z+is6>8&e4Di2laixVek_BzI2fBm3LY<*M3(Eam~txu4-Vrber>C9wBy2>^b*Ap-w? zBxDc+NrUjx$3{~It_s1=do%(TkVc8dgpM^5ZDWFsW3C+#PS_$K@@Ru`Urr_75ZEkY)s1^P&eVj@fy`-U?rCDc-j$04gXZ2c#6&16GpKv)|0O@ZH-4C*N%YOkgX_0b}ox zPloSDLB(|TNnM3$+J2lP=l1Yi(7XS0vs(9#?^j1BjRWU)+x$7Gm`6Sao7&oTeeE?% z99FnwdH1ZG$&S3OByyxHN*;`$))}3Zo&NI63)bx%H;Af_g8fdT9T{T9Huxkp4^0)^ zHU2lt;jJd+#prUoO6sQ%iif|2&ZTvT#Fvg9uKqG}Ak+F4^%A2Xf=+c%IPtdIRYD((rej`QB4s5_PMcGYjIlVx&-Q$SS&zXbZ3bZt05MK8`*CGQH}R_`58t0MY6T`>XZpDYRKItAl+# z6Y2{sJbZeT4^kBtXIS$A7K()!=tFF6wlH2x?xd>@#8>v&DNlq#{scoa!Sk)L24>wthf7OzuDXxfHPK2ajN8jNiR-j)Aw z-h30kJ2ZMu=*_)qB`Yx=qI)kvwAXlE49)g)_m$xxPDdOP(TSs9f(2d_iNJE|GtN4{5!YW)KSClJLuv+k z>&QW&KRL!?fbojct}SN&0N^&LGEUiY@kpLog|P3Q6w1@RShICc^eD}dR4qhnFAgE% zJuJjb4jf7_dKyc~Ob-eFB_mng(Wb;v_q}^E5&;}V{;8TgXIfY?7IJJli5db|Iky4|Y#EEag#a)I6}`Hee=Bv(N>m zrIWrC9)a_(08FTA;oNI46>l^^5;gLTQ;b7rI&{Z%EK$?^Ds~-IxNck_CU=eS#o^$m zvnwK9-%Sjzy+!}iEsX_oFp`2;JVV$37|v|vYyPcAM2fkGK=f(*&=`72$=}m*UX52| zq^eK^)n+?v0ivFhSaZxPR3+hF_x^xen2o;(`1`g9Bmn(cfC6C1TN8x9Mvm4M_7%Q! z{K9&9EoPglfys3?h)i+>ZW+M0=_)2Cm(er=j(~?upg;tbg03+_Y$5_oeTHfVDj9kP z{@N(^>o%-v;0~^$nea-ac`yWBREX(i4eOh>adYhl)R($jS7iNe=_E10L}u3=N`#ecMX=Olc~qHIKb8oe|XkIUQl|B2AbrzbV~K8tmHy8E%~J- z8}K+f-)H2R0)HJbQ^d?)q85UtU0p&Nr(;i5u4x!b-olh7{kw2*n-bA_D1oRMiTSam z)23B^;vgK=NazYLUP)Rm%cXnWz$mnK1_&>)cK`rk$zKdZVXrsmQPFNooJppJ}sL_Wh+;wDL2Fp|DVH**@6yFQ<)4#~GSJMCZo))bsS|S160|Z$VA1Kw>vp z@1}7>S(Vkj4~^;FScQisc|=9CRdO`G2R0ew!F|0Lo=h3X_USpddk^}l><%H!p% z!i40Cgl&6{NHAdfpImgoJfQJFxW4bJUUY>(YMMoT5`=-@O~^#^?#oxBghSp{RuJRw7&<3J0PF23s^V(sC z8MH<4>M_#rDVW$DiY2pBumN1TaGVT1WO#w4+x(gDvNu)(5bvC5yNXVQ>(M##@OZmZ9lsYtG(`Tt}9yhfiC}qeu@!&;CfdF zAJ>b##gowjqB!cDPMWX?Je@2-++cO0Un+dfNgFFJ{l5?m;KH)|$avQEkUxBLcx0)Q zx#m&pA|5rc21FdnHKs|HkR0pU+fcNaug#2EK>HFLUsKGB8@Lxwe)}4FNnQ&ih=K=e@Xd~GJwst zbH&Y%%~q>kbaVzFWBJNkgwv43rDsL7#W6^xTb%I@`_lnESs*Ot0mP7FnsTtTal z#nGLf^h7bDG$7nXNUD(jZoa~Nc|##;aPa=nrh5#+`ZtBNAbkVqD5t(TAv{ZnzG#Aj z*QQt#-+I0*1T%bZ45lZ;12P`V1l_jzu;G4-J<#W3Jg&nw9s|qd6v3n!K8s`71>8(o zQw{+rL{M6@#R_}PHNby%V@AQfzU!c3qivsIm+x0OSc^o`-K)CbI)_}|@hQg_Cs z0|dqm(18^Ug7&)8~*q=tSo{1;bqoMe4R5JW~+f7#! z_HozR)|?2;;$=0SlbeiZnDpsyeY1PoN+}_X)KQ+ChuRC}_@eq0HagD{q}JSeZo&}l z=I`uW*E)1O&k2#>jlgx0MP3$qN`gG8F2&(6lHqaS^KYr%&W_PT&pOAm3~Nq1yN$60 zaSD6!o97_&ek#ST)%TeQ%dett*$Y0N|Ktl^1=>(p z9F#7zrSDN@M9f|Gh{B?U{VE@M(*=`1ZUo=7GupLwKP9~Pm`1ocg~QXWM@7A;X_1H5 zI##N)hR*f3@)fnZ0V{Dg#|-C5@$4rjA5#$?uo&c}S{;UoEZ7>M<2nlQ&+ec7eN8gv1Pva#T{douJ6DFTYI7qp0H6SuK3Rq&BR}yq# z2e7=#A{ieNlf*8%811QHU!(VKO=5#KH?lfDj!dl8HIfeUjy=?bj^!21g-&|_Mk=y0rSJn$ zs`|d;_|Uh(AIaN?L8_%iN>}D_M%oaG#50UOO@QBN>S%5i>WXle`$~@z(o8R=^Z`{9|2b?zKnF1d{VL@)qX)E! z$C(RFXA!Iyu~T12PACKgF*PbA%0=!QEdzuNTTVd3`}qCI6bJ{%A_2&~t?r$WFq-5=TPZEu1uHLA_dB7VMd)CM#gghFjUG5F~hOtR!7hQA3~RfB*t+ ztZ;m82{|JO``yGyux6a1+2$}(tb}Ci>{i48!jTfQpm~%Oh)RcUgOJ(?Ge@b|L6wo~{(RHhnUK538c&(3ywDEp3R`##qRxE{ zU0v9#q}x=ExH+nN7yKEleIKR-Ibexd!WV`xIjWR2f9P=*zpBVf$5eAoQF-LH6%D!9 zyAG)6-rO%?VyhhJ-Iz4b+2qJFj-{ke-CH2|GgPsx%L-2jZq1#Ba3C*uId36Sd72`^ z=Tp(w=`yBMEqi}FhP%@RS04W;8cyTivKIJ_q-|IM3(aSzXy?%xXa;lMQ_3hpBig?# zdnKBB+emoSb--`6z4|k-62)IRfxe4K?zI5HWVBj*ingplb%hc$3|4}VD5@pgAjbJ` zB~hJu(cAHq?uaI#zd!mYJ%Y0By{^WV}uuFJp=)HAIOI?BsJ4$oM~b-kzBl8}SI zdRaW6B#XcEbY`b@w4c8ZWhgn=ar91yi^#)^&?X)(we1V!+L8o42d5b`2L!zCu@H%y zq-^Tv7ux%+r&EMBF~YVaQ5qEGlXUnOMD#+NpC#@*ZX8zM4txtaoS@npih~GaYk)30 z_nG9Y*Vzypd&o-!vWY}*?Q*I5xGS`9HFeq(Gh~l7JZe<7{HLAfSrzlKH4xtuws&lM zVx+)^_x?5!n6$9gM?~d3j+p$UvDdYd`h@SYNc^nYK9Ht178h_uBy~Lcm1f6gcMx9; zK9jHB9e$2Cuz%^7?LJAP@oo#R-BLbXcvWMhEzx!HNMgW^u!Fmt9Ci!sdL@6){NI#6 z#M3n3_ONR9YbHVFsK2rP*wa5l2%+)+zUNsA5%hg6zNYp<0Oif%OZ$bfA!uTDrB1ZD(yWPWm?miyyhdZ9cKNyBF&d!nu<$Yy=a=C(k3_-O)@lCdo zgsG6^MW^TxMO(uVhXajMnelx4liS6MJJ)*es8p{xs%*;i6A{Y1CXMFgNXNzv=Y*1{lHf8YwtH!?fE1!vd+ZRr{;xpjZLZn9<+!RKOzoqQ7NPEqJlNJIX@kBe^HUMHg~OhKpHaL(EPyQ&+C#|2JcfoyA5l4n zVIu)Vi)r`+3<>A2?6%kTz_!%aHN$5dvwdxRnQiEs4PgH$rYWdsc_6CpC6W0+sBLd zGsFo`i*r*RZrP4_*lF=~xg!PR2@{bsT6r>VHfGS_1}Eu9{rto`v?>LnQlAy5shN^*+=c4XLOJm0^DS?sb=>eB1u!5p#d&abMV5$4}K z*fbj(FZAExNGsCg>7tESmPx~+O5mcjn;S5`{XTZnZP(j3X4&l7S3wU@NVAA=n+TAm z#0bUnbEg~%Zf^Iqp^X&;bPk(9Y&G%$K{ha4jngA09^nH+K{w6~vBX`{XK7QG*z=or zl7!YEnYvW(*ii5QXib=()^L;(TUuYCI*E%A4JC4fJ-9u%Ll$>rhG@9-J zzz9g^dUb&>75{@Onf5tW0xEO4_GqDPC*qZZxtlu!QWL6J&_7vm#SSg3;pyW;gWD)< zlHb32ccp>F4!gC*_~gsL!a2i2v*4MUTn>lbo~uz#t1&pF`h$es@%me$#$Y(nP>xUY z$yALZAwN5m*+i*y*%=u}R$_=>-QV7pPm#Xy{NuGj|O;oIKa`IerR+ zgrzwOS3lXl!+rDgsX_`4k<4V zoW_yCYwsgPB zp4!H5rTg2T{U=3dAE$4@#gYI=IQ2=$Ek=-YCZq zWDLw2zp%Xhhy@5aseHn#v9&YQr>L#+6!JH;*wg@QStqIAC@CnT{Xtg8n%7Q4(CvzH zk){!du$$)I_4BPd(k1ZxtR&GXRmtJ%?{>PBwuh7AR%X45bL%Hlw%;#K(J zfi&3n|1ZFP=>;*U04SqjR-e~2`T2O;vBh-GOP60*;$aZ6FNHx9tq@Ae!wWIL?Bqxw z=S7pnQJiAS^ThC?%ezi4LXoliB*BL1Li*zApLQf@GhqSfgpKEY_vImJd-9a=y#~HlYbp5A&Ji#>mfIbO4q2`Z90yzzxI*W@{uX%|7dKO!|u6=iergM5z?XG-P2mIq48t zvoi(=BNH?Mn3S{tksYXw8cS(!1hP##q|2vf=Ffpirnr0)xKIvdVCDH};yJ4AlnfgV zy{zObvZ=LpUg>Ih zY|~xd+?0iYP2JdxXRRpZ(ffz?;Dku8TXNaJ-(5m4YCP=i=#S)-b)ZE8om?$rvHl@7 z*+J)r)8b<;6%HtZx1;$-Cs}>c`9X347O^w*+7(!!KQvRWvJ%r4b)$e-bN!7`%pPmiK-05SRu~Y4IibA%BYl^W|G=N~ z>=*>LsKedz0}hd@QkSq6FDr%V{!#;N>Dt2v?#|JU1h!y6t&GYg_Dev@L(9zF%MblE z)_=O~T270c_*3Yd#ECGara|UpmE~fvT%A*^E@8{Ffsh}TZ@AyO z3HwY@+y#glrF;6KvC*DF)Ycd)MsW5bIhIX%Jm#!d>hyKC{;$sq>HO}$=jGE_!;OR5 zlcX;$B0_B8$P@C)cVYfr;_^RW+gf+S;sbGWWJaDisHo;#Lg+&?&Fz>!f(^mz~7z=nvr(w)%z zVejAe@aZwUjCQ!)Y?8-YEur$*Nxy@D0I^{rzpl@&Z&L5MIlw=;ngBbOP59^d_8Rc5 zoVGDPJdWkMp!eoJs%seq%P|TQ+hnfo0RV-gH1aJ)YRYS7*nI7<6v7z5`zn! z2a^01qR6QRx zog3{0YUbAL4(XUR)G)g8fvr0+$GG36VbR@dev36oQ2;~9;VmCP!{M_MGDb)h;ib6hK?cI0;%W^`1P!To9K zaH`7*Qd2-_sN07lI2?F!(eAk=?}>tpke4cwiC#Aszhiduw@O`cwmGRi5>XqVc~g%I z50fN}yxIarjrK2~X-Q9WfD0o%mGJbfF&W1RS;tL#*YY2rx6Xy*XrkjGH6c06(=sLd zJ<{g}MV#ql*>a!(oITx~;P%uLMq>>TH$bm4Iu8?6-8I~WEc3xtXBWOD>i{z@Y*hVb zj^)=QTB*;mOXm7q6AEqEd6R#36y+v0?Qvpl;hPkx^e5_uM?0sq#t?82V(z^Kpia59O zc(gM9TXwAU26&~N7Y}3%mvouW+WM|D1#qo#3w$s|ow#?nwtW&dW)Lp1rhPdg;z(vy zXKJUWfm(#O3@CxlGXjh@7{ql1rS5$U58pkzmg#ES;1Ew z{DPc^FV)S?pizCE1uoVg3VHM4H<0kL%+U55AYFk!y^XX)Aw4R8zkeOLn% zhy9+=ekn^9aoGiiAp`l{O4^Kky~DkB6sLQ4VkpCa!nzOqXTi&BA#)cni&x|oL)z`E zZX!d1QYPhqQB549$R`r}6gOH=0B=XmOIj3#GgO<#<;LDwl#qLW2L?tAO{A8Q5aP!h zG(OhfOwoEEO~O?2E{4ofq6f&?5X+R*Y2wfo8+&J=cOxNR zQ3eeaC1a*vWQ!{OHSNUW$zvW({jn47Kp9np|Ietw-i}ifZ&8c;10n)(I8{5I#^Pmu zlJ`M$+KDfDtL6X+$#hRKk;oBLcyye5MEh;oE#c{{!q~G563AJo3o>g+($r1T8~s3* z0K*1?YlZLPjmI*Cjghso_s9P{05I%M3Fj zZ9pc+(2=h%x|*p^Xbj*GdbX*4DCQBhspBa~@+o4pF5Ju<7{}U`K0s(`g%u=>Vyydp zbp|4z;d1x#K^TGfmWGx7fyvn_jK%gRxQ-Y;Q&intwD^`#y7F0c<@2Gr&a?Q0Q95U? zqwbWAcX~No!c>?a75>-oR)~}iv#{VgE4VCA@HWa%=)Tj0)`*+|WFP|h5lDq+1cY^D zGwQL`Og18^o1EQic4LI$AFBU(Bi=kna!vOI)}@amHhRdoNZilFM{$qi;vAB5b#H7i_3I&_6jw1&hmg@Zn>=hG5! zk-;hPi|$qCw~({sQz4tH+Adf{k%OEFGQXc_f1t9k&8Q7WGwa4Dnlj8=Y!G^uY9|%0 zdNm`DaAl@KgMGk^#D$?pP)>PxLvrX4h6H8wJs>Sq2M7ipERWPETNy zkpuA>^1r)5`a7vHt=l;lgHsaMxDR*;*ugL3q;)LCv}0;FJ^ikw|s6wvecJcadlfCTb2A9+`Y4&PG4E&(>*vbPMTSx%Be9wHQw-1d$AfkzZbM*MMrgQ?7p}U(x zI-|QZV#aIxA8m9$1y~2S81B-51@TIOf)aaCy;*%Oiksj@laI)$T_vow&RGq_p}w@f zB&!FXYa$Q@$+Z<*+%L?fQE!50R4t}!Db(_;4+~aIt(u+n-JL;0h;mU%u-D$}!}|mc zvr0F(J4}Lj(r^rl=8;`U;U_G(ibI$@c@E0#UXjh?-bCOklck}roJ@Z$CG~`3o*&Th zr7DXkB1b)MBFvg=62L_00k1EhjzfNTk2_LO)mcS5Xx}odaUp5J_Uq;XJp_sUws|hp z3nRS(L8m6BTmz>q?TQZ4Q9>-xrmfVenO&_b+$)@_oYuX68WWQ;`_CuE^QIim>W%8- z+(7uM?j4;?svl4uiM~qpZqTtV!bFzZni;H$K3_4^=4}vj1`{1M@>|pe>sU|^woEow zCk6+GB71h_cz~fWC%=&wNlJ?eGIK?_3nQGxUjryI<%9#y6 zOM0SO0q9kd7yxXA^<4|quXr#LHc9JGME?Gp{cCbCa1~|(@Ai`nXGI)95Gb?R>}VTO zOpEZt)lHLQ*!0ta7UL0@5`m!{5KA#y2^LQq$_#q{vXlz*bK|xechwgAO!bul+zi{J zOx2kN&C?dE>k)FPu?uE`WcD{FQ0i4&)H;*Ot?h0E^61DovY2|qqIGQ{FXSOsPTpZP zHu&0Bu1`i2LdDioltJ@+eJ*rUT80t#XaQ(;yI9xQ;VVI79s^bt?a)$ug~sJcv?;|l zDPWIPLQzYos~YX-*nEEQ3)bqw>@p`S{0_#(tL2^}b15hAX08BVV!fY1=3`wJRqeL> z=*U+?l6}AiR!)H_CoiV9FtM7RwkYSl`mQaKU?-Cucg?IrC{0Oxq2hzx7;pX^QXAsch z%w;WsgsKq5fVVTladh*iO>c$^WIHwgb+UW!s=As~=-ENNL`?R76a<)eydH+wO@~z#hyYS*9GK}N@T*d7t| zv0X!8M+ZVqPmE3;43)*2rY;ZUCVXb#tOt|SpEL)0XC|bf*;}Vz&S(MFLmAutWe7tc zS6l3ZjJqoi#hv_ra=Q1@0VZk0cYpqqzrB1C%p~8&ha`lOZ-oOE;a=)o;5WieZsrx~ zytmrc^Qy`kZwo)rY$k*|v)fN+r%v@mSEb@A-i8A<;&_@D{ubz71V-pb63h?o(lKAC zgd`+r3wV!o;oS6*X2=;w)kzL`D;H7v<;6YHG+FGSgrRQMepfOXn^`2nh(og8^&wnF zv{-=aRrf{}@=6x8p}ZdjOV9U96%4aShbfP(&Y_J&CP^-Lidvw^YMpsx~Qr?bYILxJN_5PtHj5c zCl2@k2mk=FyYL?Ao7i+>L6?2S(V-c(tunKxo+T zTni8_l;%?r)Y(^zLDD31GS1-`PtxNPaiy;7{Vs$7_c?-=R3uc@9dFQ;NfnhGPIA=f zD+kN5DU9mpm*PpqUlH)lNCSQK(?q#X*ACs_`waJeES^kvABip&8Y?395zn03%M2e3 zdC^aM15H$T;~6#|>%`CPAD6?!V=GC1J_osT?Pt4#iN1Xj1Ndu#6w1Yy{T0?sSC$oh zD~1K7Sir$Of73F}BVM)t*nDS11qm?IS&op7yp$fo*{4%~>k6apTsmAC*Sk4OQnWE7 zZ3Vb)sD6MXX0%KHn9SuVI%=JVOg5*Jv}kv=_4ois`)#7@tw{$DOQ=#J6ghEZ8e zh6QGD-~h`Z>gYewr#E%bo6!Ek_X}{kK(MW3Ab#Leo%a7YNI%9ttmenNZEJFskaQ&q z*XBpj*nDe^0vNfK7LdFiu&dNUT{RsQB44lbBTDTS)`_KH?@>*|esmXDRT#z-M4DMt zGmXV+%3f>-mrO)G8iIJOU>cN^@FpS^K7$X4tSsOTC37&obrROKnz?#Xy;V76)}E&9 zjDy&>Y_utQJ(C@I_~4hKtMoC&>sRDs(lIwzvn~Qfj2z#K?6XbL({mNGi!HzOpUV;C zYTG=xr#8Y#GY_U@alyz%cY`s6*GQZc^G~HEpAS7=W^VLVnF8MA-{MLn2hUf~6uCn+ z1rMWF76|er5T(igHo(eZcg#TzI6kjqo{_MNcuT1)h}UNxFTCC7DPqvq$0U!azTQyo z@m`MK(%%!r%SfP}BsaB5o=3#yBP>Xr^g&+2bm9J8p({tzVHQ&Ur{_MNa7pU24D(bO zuTjVNtTc;HK6#@-BH%#QJ_9WM`!Nh5mYG(<#v6?ulIgktP6knL+ZlV;TJ1U`8w|le zneJsWy(nb$+ls!vCn1{Sy0XiqZ<>liBW93EU+Wv^;9l? z>wF#Xn#C{o=@6fq2;S+1cOZ!f3y98JZ8iTLHq?s5$i>}K&8nhO9Z0bduGICVf-@xv zYOKQBD$P^j3&`8Q!AAk<3k7Mj1w$iRvQ~hmUYR34)g#WeZ_l;MzWrq+%P!{rbC^G4 zoiq}s@!690QiK(Q+7OUzOVN%25s%B;7GhtN@M;+5_{)i_)P;>yMMS(M9Ys2pjOr4i z$m|mc45r8|L8+TmtjnHsF34uO4!Dd|@4SkA#B+6{{8J z;oFL-YD#VVsKY?_JQrq7!oJD%O|!q~Dq_Jh;BR?xL*8IR4q=A!gi^!PBfyn;HPYPo zqFez(9WZz9_?#P>Gq7pGy*r^HZUYrRo;E(}pzs1i(jA6F=_UD2W+t!9n*YzYmw(=j z<()?>$cHoatni0HHw956ZO*V-yRuVIBT-kv=*hk5B3i0Lp#O+f4POwiG?4&`=&$-Zi2f6t)x$I%+ED5ZO+`sjn#}R<&SgQnKAMxmR zRHyFfqQ!o)hFCIzN^UUsA*O(X1Wf?OW_RUNf7fR->y?-o5WMcv&o&%562K>ud91$-Mof@YcMmU=+=+ku&Qb zeAZJKjxTz31yX1f%hkkboX-6xB47pQ6&=E zT#xNmAET}OQQ4&SnRiG*T#e3Ppo_j8-V2`!*e=yb5UZX`wG}r44xx;V!g?K^(*d4TU4!hYc6R4RAIYhrR~Iw1F}z zIiIlu%j;|tJUW2%EX^oNxg|Gzb8KL4%#jazw5&Axpt!LE3^1{`?VP0pAoK zt44&JxGnR&wm3KaNVTI0`&{uHRRS`oXzd7zgI-Y=nRK!4gh%rSl|l9-pLbupORleE zV9#OiNJDQGMr{@EQV@G>$Z?s@7ZD6UqR$ zGm7Z=?}VxacR_Ekmj;Y73U~?*XD<`hSW)NmnT3ssGx8Qo?&%K)^A+gWI{d)XG?~k ztFfEL!RdzI`5g4N*d~ui<;`gm3Koz;&TqIYWHiVqR*)ghyfpfUJ4eP(Vy>EoM&==q zY0)T&aM3z!zKNnMcqvtwoE;y*e~2gv*-|TOt;X2DBnQAU+uuwCTCA%O7pE}8pz3pc zh5Gty&i|`?q=O%q8)_Nh?3nJFkn@gKh#$h^$h%3`W^30&D)LUjA(5@pX1uaCS?bJT zY>o2s=Lk%t%-%)YtYTX82yFT|6+ym@XWycuH_PQs;^e%LwI{)k|J_9k2tm5*-cbVs zlf}2(gY;S0Z|*-_#{M5mH?P!^@^_)!NH09k=8pI2h?(i{UtUCZ#~N``JdLrgP*BW^ zUL2F!zH%*KFOMo~h#?FD*ktc{Bf~N#Ayb>h{jB7u54J+s_VUoutG8D}b%8~GzK%o< z^tuF%BJSKMuZg6nGS%P=t^#nu3TA?yZs_*o4q814IiEdGV`gEw4_ra+`?2j;b!SXt z!FO-*N)xAKrw`qTv8xqgomE}ZMMI1B%w(NHtj-BBf{Wqwz0_Z*zHyqRw9Iky(-)?* z8j6y6V^U>UrzPx-HVu^#F}aayv+P~y6NWC?$17pa&D|<(T6^p!ENC=rpN9KA*A3?X z{us>{Q$Yv}R4)OCp68a~P7f72q}LoP`W(b-@a}#JyVG#A*$2Q4E2%+67g=+-@>zXM zz1meXp-x{a##AhCj3A@EfuZRGoQ0My%)!PnqgTL(;M}>wRZz`b#rc)QeGq*2f!`xN zqK>3YrNo#sDkKD+%dUc18wg8d#ccVVHB+TN)IAq$Lp0!B86w{&nR@1-;?l=Z$eVG~ z*~qdM*hGQm9htX)H75oz=L&1cmm-}1_vW57gMqaKv*^|-D6Ip_2s>h08~YKlVkmv`0D)Ws-}LqG#;ni3F$UAdAsDZ-1c5p-@13d>G)9 zqbK181&*=1gQ&!Kxwsf)j>w>eCNV zF31A&NbOrgCNo4*A^w4xL8lqE^4$z=Y{nBwwK#pfqGtJk{KmoaG$RpMu9$=)nC;G( zdZcJtf@l^!dl$V>K7$@M`f_P%;70`n+EMbc&qmoGiZdLX3~moG`NMD=GnJ100Z%q=}+9ZD`gu-5I|&;Q$-}05gbjzm(iR_%Lf{^WF(ZYOqk%b zo8xIyYqnjXOaD}E3?NNTFHwO530uotPCQE)JCRi`Nz(A)i+3?+9rJhFCk!_3m?+vJ z!fN+z#cJK#9dMw@?~)<=fP%nbsr&y~qQ|x7nR?bv1|PRtU4ACL8gSL;;-~FaIEf6X z>A+cNYL6!5e5XGe#%=!Y!8(L*n-TLeopMFA+oB*h#F*4Ee^LYRcQBq9zjkT=q@z;j zB$Kv@nBn|mt9Y(tDNfB=7aYKyvYyRwGbn;{m1v67_XOYRS{V=Fg#Cgj5;O)cr|45r zjDogrUQhf#@vqbiwQ4(qNmyTf3`Timf3GeZr3P;A$~rYS6`Jp57F8qkrnDKP&0)VA zH_TDhu-R`olzs$&_10bqWe4E8O z5%4c$%^+FlmY)VcH4zls;#X!sgsb*h3$0_dZ`M_z?}VsOCZTx51K#WZMr0JG+G2ww z+`gAOX_R{8Hh^m?IpF3@8dWp_FjN+X=kwGrG;{V9IC$cQF+=>$?JwR zt*6Ys+gRS5?EXR^;!%8%rz!Fat8<;g>cvyj-X+-z||L02fvvexL>ryG_n3?1$b zTixX2PYQpBf1(oZC1{sgkrO*|iT;qUGt)dj8mnYfcCZQ_7vgH;x1RX;Uml|RW^v)& zgOh&#^f6cEv(wHZ&Inb^+}&Mn;9%i%y`uOsbB2tbmsf%k!iL#9^js(VsK)i+XI!6L zP)w3Lo!v4yY~=}?Q3P-8&IMkBX4Uz~xJ36%P+Ern^P~^Aq`}mYu-?MJnC*RHouODh zcqGe~?kHqVOuL->CUjA$5w=&XEWi>q`cIuy7}{VIkQBcvTQA&@Mh> ztbL~qeXwY*pILan2j7s(*~{jW%oH)*0Gp0n@~OlaBm2faVP&JbFB4~U94HMD!+ZiT zUA^Pv2-Or8)-hrhdU!#DG#+%@b@SEebTr=)Uq@tG07F2$zwLzz?M)Mkb($+4%~q2% z#wC*fQgtMGdTVGXpZ_IY!%s5_1#iOi)$vbyYtn$?6vob zm(M6#Af^Zs*$MG2syA3+c1z9Bur#jkPL@l00OwaZ-%cQeEWAHbrWHvG)yfANT~xvu zn7-cU;}LCYBPC9|Emh_oPqnrq9yA!4ayj%ueU9*`FzpdSQ~G>cf=P8H|fRZJDvV_hO ziQxo}f8;!EJ?E~8zWpWIg2qjUzK}}TIb|cI^=Vme$|E!D8}R{>f1~`xp}K_iZJtv$ zULKTy!r@DBKb>s*k<1rkq zXT%EWDt80;TS!~<9u>e21i)d{&ziNUn&~VaAskR^Hvbml|Dd7OH%B^!HITh!p7wwd z2qg#wfkt%U$3eSEn9u2s^N6qACLf3DCI$k?yzf>r6Vpc0m`mI;xcF@5R4zM4Y#+iO zRspQhy7QpvWJfUjtJlk!PSf7ItYjYrD<9BVY$jgoC;1kcCXVA)ZFHM0!JzY13kjWW zZOZceq+IaZi-sess7W%*(vg%333hVcLb)rvWM@frcernji~}#uk>@rWWCeAMP1eJZ zemU0Y8x(vbD&_3VQt7)Au?NR(^-0VZW^DsBI$R*3Qk1jAz{iSV9z6y)M;gN``pn~4 zG}dv_+&$6e6tzBXKj&J6iqEmSKhKFD6B(i72m-|c<;;K3VHS9*u>ae`u6?hn7}~Z{ zuZazoDbMCKA9lD>2Kc^3#H#x`UN*{C6O#_-%b95ox1Jdjb=*C+fY zT!fhlJ2~pm3g(8xMC016;U1P&hADG-Kr~8NFd(k)^_UC@^c|*;%VXSg`!`}UN{|-zbbaW+Sqrp`APZaMq0mm3 zQF@aLJHP*{sU#A7NY&OL_09Qgm|wgdZ&+6FX6J#2|9Zf;m{Pn%=dp4O|67&*9Z=D0 zE#|MQ{t9#1xJ|<*2Q2@bH|bcQZ}v6*9-Ff8-dsmg%y~lo zhYT5X;os?>m2YG97xN3%gu#USS?#ymVBMM>?>PsKV>_gm*d#Xw_K&aLWQE~zkAr2p zR!?^oUbSZ26Y)=-rPoQC0G%02RV9j938w-cDowBVN9*}3-S{7B7Fi@_W%wTEMd6CU z&7xs%Yq_7dxuoAxO*T${eb=rr0D2Q&JXL7QKMC7zy8{R9g$RUHeWP>pq5H#0y$07MQ;Cj@TvZ04^Xze9yv%JT8)k~HfB<$Gu$+#1fw4BSC72QewH1 zJL;L{M+``AyLS7Jf$ceDKm)oEu7JdVJe8e@Lnpa;gmZ;)-XnF-S_AKKUE`D;=1VXI z@9x3ceUJt0$!H;1PjQG*HkG5-dZaTN5JbfSp5~aDp&K&JDLSHM6^!D)8-K^Hoz?jO zy1FPk>CrmRR1uqRKrS*wA0RDJT*!MZ}^vGMkjx@@1@9; zBWVzBi--3@HG)#jnP`ryDjoME>^KKYb|RM?J8#yMhJ+c1;PkvPFjOsJ57JUe0(G`w8urdNS$hp_VY^u4k@n?n~26u|TPQtiE0=&FG@&e|Hvs zA>NOnOz*Gg&BS(;$Ov@x9*V}J7m~6*P?4Y}$>{@1P6wR<_{;f>)}Wz0{y%LFMg1-c zc>*?WL@L;l+H2~Luzj&NMqWZmr66Fr(^+G;NrUOWUhy)^DdNKx&NR!-(2h6A2dn__ zHbvZ_+Ni1EgQ&fP8u6bJ}Uzg(jKD^`Sqj(?CZJBEl;>x^G&}F7Vc27VIQUd0hm3d!qO!3 zwLxpMIVbnaAPD90F1~0QXmo6~h42$43gr%+Q6p&pAUkd!bx)lnUzKlf4t-8fn0GSJ z3af5wacOT^@Qm@~qJO@525JnEa5e)qX^s$5kkt)n4^R0@uJ!oSEgx;t#m_EDM*o5! zr`V#Ob!sK*xs3}j7S(_p(nljmm?9=Pkflp4DWQXxd3x(!UOUP{?j75keH?ZyRL@Qc zx2Y&lnF2_kwy)nNeY0ec^IZcTTTqL2bkrwMcvX24anJG42@@y+2zAnnw)b6$h2i>^ zn7#1crIImVY{~Ueq>;lhNY;?yFFv~G%?m8PguAvktj5p+g|KS-Y>XsDb?d zFaW^HVaqA)*gP@h@r3uGe?B)MrsTgVjC*gZrR z#heaxC2vTw+yHA9A>ao|Er(S?Xs*hLt3I6U-4f>LS2Q4GO_77|d3gIEa?^Y>^ddib z2%4XXG^5O8kG#mGL&0d^DAr4fS2>{vDwOtOu;K%P z8c^RT`8t-!dk4Qjqk(J4smf^~%6hBE=?YWA+i6_Zx`HYhBRCAfUPWoYGKJ}Sy{d_> z=v={7^w6+hlxZrLiOU059-T8f@`yyPL+L;bJ*jwkzi1&b~leaUrUwP(3v?~qF<~f5cYiVKT7Ze{y zpL^_DPZuHHD+f;i-#XUOi6Poc(hF?5w0wWy)-OF+bM;crbx+jz2np2dtXK#u7EC}4 zDIIcaMYwI=z*7^QZZb{YMCgIwd-I{lTZ^vZYhlP@D1AN!Z?!tsGoMqJWR6E#52;41 zgpySsvr@q%i!nPQ2dqH1)Gv)&>U2kmdNp)UlOR(*FFoJXf6KKBzjdu_#$4d3?a zE+y0ZDh{sMUQ@j4?&uQ703m?zMs&}v>X9Zhgn$3gvN&DEmBNgc5Vc0{!ekGfl4~+Oo#R?Ma40|KIiTD6!aHg$tTOii%DhwQVn>p4MnT%Oc=bP? z4hV&|cG$I>$7~YMk99Mj8Q^e^7EZtR7D+L)n@r&YFvyxe?|;4#q4z?eoPUh(R3S}8 zaWSn&d{O4lb739ikG&^)U|!kw#HMwG`NNwZ!mqEdT&#-Gr`_~X>#S9SKEFoyvfUP3 zg2lK2VQ>77b@lrASNr*)>8v>~r^M%f7^rYTo zGEhn(eQWm1AInpru-ls;p(Wus^7HPP6ZjA>(U2@Z`?Kcs#@9B|YOvn;B*BwMUzExW zT?IyFgPPVyDO^+YAb&YEUjkT9hmlo#iyU`6fZ#ss5CNJq5z9O#rBT(bGdUgbY5(Dk zjjp(-Glfh^A;T=iJgL=t2$)q7tpr-Dl@_MIjB};yKj#$x%_BsHWzAlk8PEVA{RIp- z^<>6e?g1+Ayd@_^#8j$Ma+Z^)R+Aq-W>$z5NQEGym$ifK(Y&~GuDDt0#8bl@rDw;E z^uP;3{&&o-(*u+sklNZMOq}|c(z#IC0xhok`9KI`a4<9x>3S{}IB}h_bdWIY*e_W; zR6JPTT3f^O<$I6)pC+w;nQ9kD-3AAT-d#!vM+Fk>EX@ULG@=@?%~z{>0|mwGHWZc* z@Gr9blb6HlK&Rny;Awgt{1}@ES=eZ1<8S-*+g)!#-aG4t`3;th zK>+k5;Gz#mXw#3qrzH#Pr%3!h)u9gH?DV&nDqL$a-bfl4-Epz^9vs$2+ zo?{(a4UYfEPvFQLB{s3>+HL#kV-Fg)({>cw7D*Jh1%%VD(j+1B0EXmrCC;xpK;>bE zW@L9wsvsG|u@6KI1Fi3JgEyriknHaxS>VV}rwu>iS%o;NDv)2F= ziT7qFNi|n7XT!%D*}q>Es>$$x6~Mu#Op19yN{cU^6=Ff^=7;mZ_Hdx@>}7X&G7(G_ z^9#SL76L@|l~^ny_r$!EJJjiWsH9jSY36gzv3q$zEsX0iHb0Mv=>m7~|ef$x}!+TzMM=uoa5*2kp2Wt6)3@ zTz`S{Wf8&OBI|qgKrXIJa=W^syJQkSX_0G@mNKSln05S!epzC{Ra@bEECt@ERBM-M zFnY@!(oH8yZ3$JMK1S`HF3hO3z8#hLqh2TzVpjCi%$BIPm%UzftBS##m#TWF!4QoiSTXp_D=_LP7!KNUZk68smF3Y#6_ zh4js4$G5071d_8Im3RCY4ekj+LRPR!emDsmf2k0NOYV2|85@`#Ob`eJ21X-{PWuUB z4y8o|gzd0J!Hump$wJ%T3*WY7L}OW~f@5dgVqpzHH#$SL+i-(9K1wIegD^k}4nve{ z?a2b>aNN4u1wnlzU^bdD@APaHkPi*m3-p0}nVXNSMiC{bHffPL{oY%5h`)dHhvBtH zam;b5t-2x23?}Q`JJEAu6tGS%vxY(;kO)5z=ork$e7tXzdC~L`u_1}I@wu3avK191 z50P)R_rH{bP*!G8Wd|z2D^Q2|N#e3FM9|NYCtiHS;rV#rLH2Rd|6|*O5xd~mH)}dF zuZI*4dHs-yjR4XnTytr4IP!!-%fbTxesIiGDIH&qSLOz@6@7sblod+GG>Is1GUYe) zzT>n$OowWwH%kQkmdf3of(d0(8!8@H$3&mY2pS{QhDIjDWth8|AD8f(@kvv=G6;P@ zTeEJY!~3-xQ|_Ohl$fH|VEUj2*|0Vss6yvb9rk|hE8!;P`ECre8ok)97pg6)65Of4 z?4{>@18TSYwoIA;AV=P+nFdBE|6Ngv!^<8Ekk=k|df9W~@i-+&5qrE0F9IvlsbdMc zMimwMJ)h;G+lTkK1&br^3MY>SkXX~^roE&syMksXx~prCuzYnk%H@;^9FbOn+#1Qa zXsw1?yKzm)<9Whc7AJongaV75rI4uC*;ia#AGwg&6U)*Y6-8HcAMczewZMcyd5ZN{ z$=y{V8(ONt(MSYEy{EO=KzYjm00tk8GZSzv6Wag zTJp%9nMALYQB!h%f=YG}n$O|ro2)gtEzM-(Q1>?v+m(MY3RZgHo)X=--g-#@f4L1J zOhHbqRwMVbLpp=)w3jDx^Y=Q7s>+h8@0df(EO5h3++>~j4{fRi41|a)U!*bJ=*TMn zgQ-@D(Le6%;P(&40GcxJ(5=B1Bxl#Iyg&B!x$0dpppKBY-NYHC#p~BpO=1vYpty z44I&U@Bzz#^C2{xi>nM+1Bbhr$)%&vYxt$se%nxut6nMuJxl77o}hmi0~bH#T?YF2 z*vU;WWuKMqSux0WVyey>eWA$TvoH(SUf#VJ`^EVX+)of+j2Q$TFDKL@6+7QXLQr>> z1Bya|_G7Q{S-~})?{p)PWvQjKd_`dQZ;grIO~Rc<_!uNg#7h)>X$!5E&(jYgg5zt2 zGv^{c-A`}HoH>Z3{_D88)igfF{$12Qvf}0Oj_$qP@!*{+N;)qCp*yx%9(}!^2i<1q`4|75347zoYzr&ZUS3p zNiAY6V9^i}X8?H!YJPO8>~`!eZwBqy_Sk*q_GYhSgSz6}zAu~HZIGf087=wsAQ+zxL9%kL=&`p*J!DiQCtOx@=h%&_Y>CB|ADHucOlKW8kZ)+*QIZPcZTuU3%=8DiAuhC|Kxz5RR?(^HP>B zXuV)~b6hiCiaNqQS9iM3N;RXwfR_iF2}ArgcCRC42JQaQp;G}bYrw9&#u+T&JY!^_ zKE;JBQ+vbyOhA*BJ8@H_(z=}QwNs_i2j{JDXz6nrUx7#<<&TjcW3a2q-KdAtKaP$` zLSwJ~B(5c#B>yKGO=Lh`Sq#OPewt<>px(Y*{vhzi-A>g;B;U4uu8e|ByCkvKt^d@d z-j6$`Xpsw!mSj+w%Z1ceUxRK-H3`x`;B5^8G#VPJe1<(hmTvUpRO+HokY^_ z0q_q9X*WZDY^#2WWHhov$P%jL1z1#YA3JAa8jnhj|D~Af{H(RfT*Y7T9i5W8xuAZeI}o zcQx{R^=I!{&*#EBJSRkXmT#5_il?8DfPx;sYazJ{i*Z?eCFNgH8QbNTgMm%*ue@%dL(hsK0}fiDyM9Gove zHF~reA@|}PRG%AL?w0KS%xByV4^E)jSmTvQ6%+NtQuK~wyn3pRX$fo{EKnS5@K*0N z-B!KFK>D|_FRd@0e|4^f4eVaD$$o>dpy*UDaqGC@1y;isU`#=|!7A%&2VXrnn8={0 z%Lv@+hXyRs0A51hv~ORity(+{_M6|$B*F>a@^;E1-#$|Ehg-dWw6)f);x>IN4|cVo zh{)2S$)MR3!1!oAoyfg)YiUo~o;-!qQt>vny zbzj0AYm&?0E~QxQ&NXn)jp?1eb+Z9_@%y2gGyLya!DDK)u5dT4fS||kHvIff=~bi2T1e? zBce~L3_hA$rXI0OK2A(#RvpO{_f(sxtxV%0u$Wm577R)E7Ns&HI1TKV&Be-f6r}(y?*Ob@T)iz_ zCed4{lY4i25?(nky0T?fTd9l|CcD?vR|*}XRm*%GMuj9@PX=sYmeInBlISB-zw~xL z|7Q#J1KuXQuSiM*)36}ve;%b>%|nhXH&b+N(tewO5cr}5Zu&)7kN^rLm($Q$lZeEV zr1C>0VtcUCf}k_{!bF@$yIbZEBln}+RiQoINVTQg3G$mz1t7G=>6YtIyYhK-j-xs7 zDJT2tY=Kn^P~WO-23Yi0(j$gb?<`v8!0fI6_3idFibV8KB-EKQT2og-<)*^T!B+05 za@NH`kP=Jr(sAiz84!xjqjfn12uP}-D2HqxmAE+BLS-61010q2Orrk_{O4oKv* zG77SyY70oc8y1tyr%vs2_4!^q07p9j|!m-!!QYM|y0nVZ@&pUqIvPH;)NwcA#F{oq+_pS?yUJN77+ zZRt%H6rn4b?%R?_4SwMEg^<1sWB9WWL$A z6dk>v>sc3XVLF{oDohrEJ+ntNFSL>Gv3s&Vm))tx*)j63blKga1+dE{vUaB6i2s64 zVrbmhgQUeX;%ysHJSF{`Zqao{>%~N3SnCwy!Ch4|<|Uuo zhzW<3%1jLmyC{zF-G<78-^m4>k&g(3xn zQ5j#opDRg}X8jnxbl);M6$!b~$^+T752CrEB85zCV-fS{F5%`K!7>1qk$ErO@2YeH z3g!H(#X815%thZ4` zNp{DUB=!BYcS(rx|H3cpZuT%~@kM&aB-p2rgo8|?rzC6cH6?E%Ph3ldqB%tZei&?1 z7&Oo3TABSsrSAL{65~L~Nbjg(SDH&nf{)V2GaMC?`}}{=(^dA-Yh1H$=86UmO;7Xh z{o=PjsjUeftZMt^2TIxq1A$yW7kavz3wvVKR%N(qOTN)rzW<_p_~uUXMN`;=6DqIj zE)lG^HK<*NIHc>mh@G&x9r^ zAf+kj>(ZV-2|!}?kCYR&t|S1-H(j8N&plEBNa9n)+(}7KGVV0JB6<{0cRUd0BHiUo zt-}ROkA=_55c1K}{a08*(;O+|=leRc!q=@-rC;^9V~kQD0Eaf;Ss1=>=EwAe;qrTII%+qnZDyR z*@mrhA71uWVWij=)qZ+fO(m_2fj?#chLSrhg)WA)lYLyX`^oU@I0+2)h?&6LU$ae7 z!*;Emq6!_Qm&h?%{R^V72JN--O}7|^~1GyDukJ|?!T^Pv2f&xv9=ZQ9TwO#2Bw2&jI*p;iXs#UA-=UD>pTZi=U3+tm(@GZzY{GnnNL z>k?ee-{$E)PdtIBj+rs)qy3b&jsRIU@~T%eC}aaGDL^B9dSsFFcYP*o5=xq20gTag zmERb$2}uW9r2+*-7ihRMJTFp3qmd9zEL}fG!L3MYKZ^5^_e@tFbPTg>m%cb#d+o`9T-4;Ht2t&5k*Y!@we&%Z1z2wT^d;wpo$>Z zK{ATuoL5>jq*}0!X%Dy|{Q8W}&NSEy&Uz3`5V1v91stx&&R? zL*63z4%Qn9y?74f9v{&h=Y)8+j|6|Fy-mkoTCZOtyY(64<`3K^)yO3;BQEmF*nT=o zgJ2}{ot2h&%|m|^%_^RmIz2#Mo|9F-6pa3h1@-p-^7DM(ShV&e!5b2{j%2$wpIx#EmflQf4+Ck%o zive(t!(o$911qY9t@>&0TYUmdgE|;!0q3geRL{15!+=_z?d&5EZFrpL z`1a=mt3$@@SjwN?M8bAwFHh68wE3iEvcGUTwl83^Ea5(b-uvRWpg>|2W=dAKfDxw> zXbImlt)R=Q28TeiLryB||91}a>M!WV&z$1WycprGT$lK*;rFG-K4ZdCeLsIyYG~CwXFH^&2_k*;SY7n%Z^8rz%@;?*UzqL3H zI6>cg)*|q1Y!rxBlBY7K5>@XBuF1JUfd{GOH9+4#r@k?8j*DqtmWId22XC>KgN%{? zR zEEAXoBCI?^FEs`Ccp&uCC^IxZ;KnhAy!kV86PJCFI@Bu`5lKJHA4y z_HV3y2q_vxV#?QyYDmIYCw?Lviqj>o?2{C%vvg`$4S-PPm3|4KGEjneB84(bo83i< zI@35fwPr3AAy{{Vb(kmOAB<%GStu|Li~TlCF>Vxe0hQf)zQpAe_JyH{r~y#~hh_fas}Q6tvcI0{JoTPsE<+vXshULi zhOd0Bwlz6HZ)t4 zm~A1_xj90)AMIgY`~gKGx|jq5Db3Wo+OExZfMdc#GTeM}qP72?*6v#Ea+EHE!c6>_ zpICgDQ5%VE9kW*b<2iT_5EnmQGJ(YK0ExvIqwx9e3jd();hCiA(+be5quWxvIdF2mX{8Mkb7xD~a@mlhd(de0k zxp@9t&qh!SR5-*1Zeh6e$aK_BT!{iSSw3@Xkn^w_xVxDT)4AT=c46oIr%s=7_u=?E zyr17>6b*@+(}}y4d8Ar%c&td&6qgkHZ47i%<`KZb6QbnEh#N4)pj5+Oc*YD*LYWer zYz}1yIWIyjTkAW7_*FW;)}CltaE|#J0xOv3h(#Kl?n-{!Cj-IPti^L%OTbmh=|o(z z$)9a*7E#RLB8e;a`k-1+sad8j@zZP_4I_n->(r z{JjR?##NL)emqC@wZXAYDiU%wpTN0Boo+}!;P3)P*8c>d^AsAGuGw}{$XqW@v!lS zEz`(PcN>-Y^vFL7#~u8Lih;dF^(z8Ru6qjqxiPYprSNu*qDG_ktno<1{Z*YxTZqa) zj5?-Psx$@{7(i&!OMQK(@hzkCJ%c)9O|OnYYb$N!6j=(VQSom3l?T7ozkNtK5o(1&%tzLYF| z1)1H;4s{)A$AA=n-?nZ`@rh$)=vN>bBd{9zCSGwQG~>d@3}t_p;yXTXu9;Syd3;XF zvU5Na_=d;Sq=nE+j%30tI5eZ*M{oPQB#?6ac;p!AM#;qaTSkkjy2!~LpdbR45$o~s znQU2nR45-|RtxUv{4Gar>KP_HbL9^~yGL4?)%%eBdzM#1r*%bRvztd{ZnR_qd6o0U zFJ{xbh5MQzbJW#hSnO8=T8rPELcwW2Xes>w=q(`U_ov6tKaQFM;7 zFhNO?DpWQ~tXobZe7~cy?$U)iu5N#`T=J8!KL2%PHu6$WZ|Wt-*M+I9&`8^QC$;Pb zQ)vN?DIUe?`#PXZno`i_EulsAlhoTcSWRE3K9^?3Kj(rndk6}*!q&J7>ZaBc=LddX zH)CYZRZ7kNZJi@h|DFaYC?aY#>5iOuHntEWn$&?9WN*U}`}Vro`!}+|k`Rr}72f$F zE-=LkxFu#t>wD}XYm}v*zDNO;!J$!#7G~#7qq4x(F!So!39vzrk6U2En$l`9yiNR@ z5Hl>6BGh39eDwBQU);wk>=0ekI5TZ}5OBUy4>bsoZaKsP)+Av+$mDYtEnX%z4P=Dp zkx2%GS*s?ir=aCMU{mJeyUa#Qg0Olje&wI?`r?~bi#?q$Q{MdE(^steeA{ammx zpQs;R^>yvpPM0RXi(&xKj)8gdpXgC1hVX-;MPL43|0(dSaf!4lM>H$;QOUpOrZUR4 zHT<=MO@oC;)>E0QsON@9UZ0>Y<0h&Mf2NT1eMSU>R2rsa3Jme!_dFl|9>vVJ;Df$-!YL|xySLKof-Lnvf5 zDdTl*hlt41*0(djzAjd6Dn6H>10z_=oldeZxVEH{spwgJ0li%fV#h{cxmZrngI2cL{0N6#pklR7WT|aR2iLI9_885( z2I+ZHyu#fBp36xEfOoScgtK6rQJ=-^TwWfNo}2qLmRjA|&}An#OUASyu`jt%<}Gpd zz*wqjEk| z20s(WJpT7IB@$y$GL>?@tvPMxN4Y?u2LB#0aYCwY4}>bH{GYbiMl%^nq9W$cR^YQN(7j>$Jn&GW{Z46$JR{mAvZO^R z8>c5aF|(CRS4~O12~?@XZv4vdR&Nnw^i-PrwR-HNOB+~xM$#L3Ya$)=8puLJ&m##U z*6xLqrBLQvIlX^nCVQ{l05O; z^K+!sM*r)&rqx?+5{Ql&ck`yF@~JV?2hlQH&(3L-I)5%6;u(aoDOIvsgOEl#38{C9 zOP|Y^NzG_!T%SxeaQ(3_1BdBtLtffM$WyLOCPuQY($w`3e>xpR5p#yQGKxX+VaV<0 zzyq@I5`&c4hvT$hC9?!Pw|qxP01P9%bzIlAlmwx2t>Cs~2J`X0>>Ui?tJSVnAmT|B zkWYGW@838Y^|Zi1b=t5%yy=9LGctc_oTJuvt`BUWWWpukbyV|4n~|0<%&Vn}?;oX( zkj~`!XLUe5W$t|)7IK-Jp%GL;CA}XvltB1G)#5|J(_#XaSup0mmnAu)i9I_V!u=Xu z|Mk+n1-Oq>g-lE0oO@%<|6*d0rzV?H<%pklTJg*nLae?6`utq+(~x~0sq;J~H*xkP zrN_j=oK>Em#oLT%437$nZ4_K7;k=TZ$Hye-PF@5vxln61=(U^k=63pz8O#v? z;p)QNy)2-TeG%$C33LB~q+3RYR z>7MMV@&z)p!(pCq0xtpoY`vGXlu*(dp4sp*(e%1ZTszs@0?s%KT^gh2Q%bfFOBGfN zz$|^P=blu`xlpz^6%*x_$tVcf!Vm3#@28G_q({n(Y6!1P6WdJO5oWC&1G<={vt1AP zt*>fZ&QW5j?%Yt_Y|W@lzLOb()73c0xK_pnAZ+BWBr~*5m#{}C6Xzbn^Di{*jFb}hfu_sHbAn!cv2#0Eggf|ZNBEkW@aI5@^mn9>tFP6^w%;zp5>;ik*bM#ifHZqO^Iz9%^r zvwKFp?Uz?jrlmD;xv`<#qn5KhT?qpQsR{v3Abm132lD^-U9zbKgv4KtI(Xb#W zd24*!KxfEme)_2NRM(bCqe0t#{V4xX(KbxPY*kIySvhTTA!{g>)7!XFiGw3{x z?2K5DC8lu1lwLr9Hsv5p5G*lxqY_m(vNY4reHjv#+;wrZ^W7J z46=a9s_qYIOFw%i?fbn%P;nX5o}*MOYi~fmU)**oOuxIdiA(>%3w~Nq&7Iw3 zdp?PYp^aMqr1#6Bg!Y@M9j&)avof;F??_4xF&ffAj0K*bdeI*;^7O$E*CxI#rMg1g zE=4@{C{kLV-8^ghVOVboN73D=v3!^ci~v&FkP4WeWau-suJNgUcqF{JsV9mlvHo0R z*gc!9C{Lumn-7_1E7c)I*WnTLf27Tq?CjK)w7x)}ahY4?-Y`e=pKZRiw3b-?l%j7NNGHtT!_sgs@_a}B z-|%cR8MPn>D1rnXnZTqwsbt+y*dbg=`Zp~!GV+Z=$K1c=Y)QiS$a6t^J>0%^Rp$_A zRd{t_i%dm30&E*hmH1AGUK!00D3yvc_{9$y!p-?$pv-rfVRH?(V&B~`lRBovLqDI* z`iI9y&PO)3x8!)KhNj(LDWrxrz&qJnOTHZ33n;0g(sD$=Ef+)|Xm~7zQ?X!~w(H|! z%L@fV?4B_%{($mPdq+4xMhfLw(=LtdmNdpZa@+fCo32TtSYpiugTm5w`3wJvTYP1f zOu_(ptLZc?ZEmU~@hRocZctM_AUv-71?;LUs3O8WXEA`>8azN-nhCspg5r)VMF9Zc z0d>}h6Lp#DPFao2A(BsDb=)vuUU+%bypAIIp1hw!lG-n@etqPxd_%R~F7iGZDoX3; zZ@jEwlq-Y~gR^-2eeziZR_!4}CoZ|4>*PHgg$j=AHGhocx{GpV{N_v%eH|m7nn-^N zxWkxDhDhI1)WNo;0h8%TWi;pN+{FKrsBQAT!#nU}J-C}XIbFBj`4SdA2m&S? zm?Zk8uU;A*zHep>MRylG=`$Ri5>DG?OphmY$UNQ%_2}6w(lDb#L4Zj@bl-p%hJ`|w zVU)I8W*;ZM7a-1jCI&7MkUV4Dau?E>MMw^FDVcaQ^>^%?xGLcV3+_&uw9gze)p z7y`gC?9H{urQ?~3$$-Xc5Y-_BTIvm*JUbGJgeKanl_2Bu(F_?Y@ii~xUlQL0+~JWQ z>KSSdIf@ggia1xX-LB?f=}fg?G#S44{)0jnbJVABBPb=qAM)a)%(Mh_V!&$AD-H|B=m1|O=%WYW+Hxs_WLNbG`f@}RBCedh8dIANL z;{swy&${l_u9o~sSX_WJdk=w;*pDQgeiMX(hrMojz*GTYQZc-PQ$$cnnboz{$kc0& z^H)T?ct3)0EVG6A=zn>-zc>X|haVd}`57DDx|D>UIRPK(O&<#U1Q!E@p#r(Tlg^~T zF$wlxf%S|Lv}&!C8Pj?gIP3|K z5z@GQEa=tJwdS@-@?1(S{;lDoJG8lUP`|~U)Ym4VZ%VSVfr?hA+h8QeTYkvky@BIH zb9;vYD{q;NM{5k4iAu<9YnPI#BOG*!Xj>5`OB93o^+dOD|I4x7b)b*`R@2R4p;zPe z>x4uuhm9F$(^-twGcNXJW4je2L?he2>5H|Xkiw(k!IVy0zjExF@5J{)Xwf84F6EW| z&s-&i7ceWvejs`n^Va9a3*D^qlLn2ZL*~spT^goR<&`p^UwIWqKN%{}s4vl}EwXxA zJC@pQ5}<+}P{IC&D2>st6|5N3&jHZZtKIz7^rG1DRnnL)#MsL1(d22Pn}Kp`Zw+>k zdD9wOIB=T?!RU`_*2iM=`zD`C*PCndRF>6sr`$oCKj5wQu44E#Kw% zXGr+aBF`h~CFbAra(@^p*t9z>6XaXmTw?j$rvfd<4C}u=0U%F4C@Fo4nbus)6TlZ# z7pEKM)^Rt#djgjJa*-SjNdGPMpAoiDDAtLuWR{=HBkt;r)@LWwh8EWP%Kv618yRE- z{a99q5jEek$z_{`*>d~p3(}YUB7;vQ{F})il5hey*!EN#RObI&2kviK-!ijNr>)%| zX}mlNW9;q6Fk8Q}I=fD+0SCFNso>>qd5;2OVRc#bbkVrwLA<|QR8 z*M;%8%f~T6MAU8G;d>sOG{P$m1eQSLZ$c{iP7-lYzGsChi0FuSn4OVjhr;n!E zZ{FD$R1TEQAfS)4$)Ky6=Ivqg$pfH!q1%ECLl<+-HhB?*w**0+FOs8J@Q{x&qx?QCcqdERSsG-BTpO8?LeBh;0s%IZ; zgXm@A<;TdX+Tdz`ec-qLd`nSmAT$WPwZ!OvU91iSlWo1Mpe?PwrUTbU?d6iUCJ9RF zZ8(40>MC>GhNJ!e|NS3(cYD4&2z3hBw;>>?hpp3Q(^FtXj8j^!>l~NMD%!l8O6voD zY|m{6e{{#<;)IxY!GKHs9>u*y*eeA5+`ORa6aoWVvTa@d7ry!CvKJ`J7G{^4lkrGz zDjI*|O2jr%_`akAieDT&MW_RynIN_LX}0QJ^YF@E=(H0wOA@jp6JA@PeQ32DF|sML zT)t^E`$Ht6I5k;2EWq+a(ND3xC_M>HDzN}mhB$ij%Y#jOf4vA~O+HjKri6(eFq|iG zt84^%glYS&G{_2vYT~z-V_B^$Ds(1STs|n*b0mrwARtKU5Vg-y*;##JEp~+4c)qET zV%GTii%5|)8QKJ$SEm^((yLN zSPyqz;V}fb`uzYY{MQ!;W43E~QF&KLnECs0Wzj+!WgH*H`eSpJ@1I-F1xi91Y1avI zA{%bnLljcAj&7bSWi7MGsTZlh_5hVgi=rFx;s{q};p z%k#oabG*}QPH|6d!&|(*wA;Ac0Rv%ezRunf<4;@EtL8(0>V<4aTqFNR;%ITWGH@@3 zeo%l)l`Q>C&kyN63?g1_NE$a|0T-Ig?uM1xIP{xShudfjvtR|Nlz;9%9Most^(Moq zB8@@Z^4dqwjHr;V9h#+^Ybhq%7f=rq=Xfo*-`u5AwcSw}u{Tu*!6px_2}(dVVzzJz z{T0Z(1Zufb08FSVTb%D%vzhhP$3k<`wAmB%di_(!7m{egZ_G{E3d6d@W?P0n`=ci- zt;O++PRczD85kc&(V8;(+)RY6B=0K9W8Ne%RMw$kIE?{biD(kX`OYPrZog0XpE%63A3tJd#<}R^C?H24y7B zOiAf(!TjOzQ~5l~k+hQ;BGS;}g>3K_D#Em5j4y=~`oydAU z@SbY$S4@_)h+rd$2R55FNfYq1#P86pNb784w)iSh<|^U!EE8m4EL*i*9rNJSf^R9j z!%M{2ri@iumZlpun`U7d*8OS_G|t`tHP?k~0Prk)H4{&TcH+g& zju!lCQf&fRB&G1(zf*MAMw?iDYlUkLN`zl3!Oe`BqrgF4-&?jxyzUT>HldFop6z(e z!Lv)RW8WT=Id9tg-^4sCL^g{E*>cxtEFeK<0wy}jwV1ohFeQt!6OIKKlHb_S+FIiG ze1jHbQ|2zZ2&jpnh;j1>w6No)HUtIeX9bN~pPUU`^U!(t|JM+kjK}%kKW7+6mI}R( zX`yj@{jKByIv$qbixW+$`Oj%R@p&$hsE$Q_*(PzKs=SqC9Pp5+?YYgP6-10px3`BXra}A6REI!h)D$FLvd17b+0E`xMk$WN){pNTfxP_Dge2LgqWjt~qLAWX z25D`6!A5Pf6O*vSCR{UK+b^LUS*n#bPOB>$Mu> z8C3J4*zRR}xrgeJM+ur2iF}0nSK4Uzu^C* z;m`Nd8T_oO7=lTK`M7Vbtk)2oXhAD)G8G));_I3j5`4X>5;s~{VG!X{IO0u#RySm- zV1MZ+4Z)(%7A#Zgb+Ud4lboY37ug9I3vep43JWjgAA3wg$z)&~VTA^M%=Jl0?+?7< zIML{Q^oAhuTQ6t>)t1Hw9Nvp_2S3}HQ#ym_F)h-zJ0(sBA%sKjWPHEx&oXVzOs(M| z$#>wLp>t7C&%n?U5vk5H-<X)BI2DA!bb$wy5IHNo-^eRj({y@n)a3~~U9t{mA zBJ9w`0XN8eRFB>J;f^*JxdJBi(ecg1Xyq3A9nT!`WV&U#$V>(k&^LR#jeq)()3^1+S5d)B4W9&i9U!PdT)$kJ~y&|=!!VKz|Lf}c(aMbT{ zL8`4QWh%GFHf)QnmCJUl=mj6>9uLy!OM?5I#3qMWjDFUEGPVTYzp)6NVyL$)!i~); z`O{mPOYdT%L9DYtlS7j$E?5julTf{Qql#NCtXXa`me^nqsyh}9kzF2N=+9<}zNo;E zP0quNcCVn{=qNEuCKX~N*ar~gOe(+&O!b&%t&$k zM$^%TS^$-{?R28XES}|E_nZ6Drr$yptg7n-<$hAW=1DhcE28#fZ zb8=wt{ou&j6+h`IAhkOcs}o-xsE?0hJ<|fmQ*_Zh1FHWMinDegQl3#Q@GgANwZjk~ z-?b?qa;XELMujpO@C+GhEOE`w=cG^NbH8ncA|B01jp%SEO#|Osuo5q*nuoe-v3Tg+ zEssWIJjqD#FwGyttq#sTYfnkSN>=aT5^V@W*7243eeD=UFcXW6%o%|HGc$}A4v{xt zR~jbY*d=Mdz|E78fpETGedEjTvX-l3ZidGSU%{K1mG&kmbRpZK>mS(#h{gj^3Y5Oh zP13SI4EJW-^VLwmZ9Xzo=rFk^zQnOj2Wr^VX4h_)LXM0O^%&*y+Be(lZ-x}w#tXQ? z;Z?u^gJ@{YbyX3Gvt{l3*t@zH{9y4LiK|HEpviK#VLn~3QHvcQpQlF~zh=&BUiqO! zUDCd}XPi(;*-~QLd5~~=0KoU=eY3m<+n*b|R^mS#8WhLQr^=)}}{U~n6 z_A{)HKb@tyf3_hsmDM?tVXV+@RgJiR8|cE|hrytEgr`-Of`9oq{tPi9fw{0t#r=(n zM!TfSz0A=764OA1+v_}5ynN!Ci_MkD%bP=w^xp7`?=&p7 z%>B-T;U9u8GMvqjZaGW;E=-F24px-=(%hj{_>(Yn;0&C2w4C;Z!Q3U;-PLTadoh1V02 z5Z9c`#w)&5`)%B*;>exglMA3aq2L;X@6V`;XHy+4gg*tOV36@Xc`bbFu0LMl`LZ>9 zxVIlB_}WU$Z@669I*2FL*-*N7fQ~e%#ZyQnbc+I0o3TkrkqqKf5gjU>N!VK2FEQ`y z_%{Fb@+UU&HKHu%s0WTqp4Yt~jT5jzWG4EScSL+8kcJwv5Q}Smp^nGdp4R`L$(vj4 z?zx~2YP{$_4L%*?S!yyKiUEaMND8{>PpLsu;G2=hWzZVX?ilu*Qf7c{AUrbtAgA zMJR$wn0qV9QrSO@zQd1#C6Ebd3>@Y>M>qw8=@j++FAgI)wS~6DgzJIWiH_-EY*Au2 zIO%99X+8+pOEPsz2sE4M>xq2oDl^7yfDozM5y8SW$u#X@?IV3N_f#o5SE36|xLKH; zR#1_T_DKAm{nj4=G<%b1BW09mzrm-~B%MPR2fHp2@6SKcEgkjxWrROeqkKbTy*MhJNANc{CPGMq$ePNwjxBt~piiH3y$JAOlq4*n>K(asY zM&3F_nCtB+Fj@>;%1I*}F*ci_t0z49rvGP~@t%|;q?OEikeGk&P$!*K%6Xhvg|UyP zwT3UZO{VNk;*~RR8TTPz!q8XCh5TB=_F*#>SiWs?Fg0Yh1sAe|HO?rZut&bdLn75{ zQwVm*R-8Y?^72_WnC=LQA&x6kVLvn@m^^FcW}cohj63XyEEeXKBF+uJyHK zGk)2>q6=!Y<*7r2ZPQnM(nhp=7fQQAAP;=y{!8bwf(vda-V;siiR^tT zEouJ}#Vh?kMaqs0NS#0Z*1y(jN;WXD{Fau6L@4^EEBIt|;4KdMcdM%{nS-|`t%s@7 zu1zQ@KyyG95L<=diEF!geb__@9wbtb-_qck;H-C{+UDQfx8IGT^)%>i0v~Qj| zhi6K_Lt<|9P9>lg;YGutqH1|s1F4BE?qU3gD>_S5%`n3MjjhXWi zc&z{QHhuIlf~Z|yB|`GLkOv|leu0M1_~Y;8p`}=(E-Z3{`sb6uy8x#q)259 z!*(d^miEqVqDScrfhQDO-?EN+pUvzmOq)8^jT{4YNlJiUlKhpCnD<5%U8)b(S&+9g zJw)&F$Nf!Zrr$T){gK@qq_QeZs)7sdTXtJ_%2@Ch00wNr)};9kXs3whs2Sj$vw4SB zj|xo&H<$(tM_G&KtwtDabJ|^D>2v-*Pow9xSApW_@DN0%0Z~;8e)Qr7RW|-FFg2*uS(P=?S>#tYl%ZQ^hq)fcG;^uDD^_#QyJx{i8R#JL z<7~&Lu4z(AScUFl4FUWA5IN;*+T2=Ni9tEhj{|^I-vbT@V|6F9ukPllLn{Y`mIh)r z80agC-`7$`HnJ#U&pqh3&ra!SY(Pv-5>Cha`4f*WU#$2wt&4&5&JI*B5rdh73Q-nZn|#EksxG6@7_EljE@EPQS#McpRJl|h6~(hy_`1`l z3k_ZpN2=tBrvIdPY?bWool%}9JBS}I0)d$HkVC1!Iw@z9KpclO1D*}~2GMsdT%EpKF|8W9LSS=M}dIQZe2-;;>W;1SI32)}0#%&O@ge zHxwl*Z>%uj)&e5`;~^Wgyx8j~Nm{DZ9?m5WqvpY!O|z(@s6LR<&L7 zwI{T+umG*<`0y&sgdRGKMLFAL>_L%p(m3t*^TV|7ok+k~>Im8#Z-YN;@eqPjZ^Zlk zvz*cPwBowCGDAPb0@^r8Mxe6*YTtLH1G%eN8ZeHa66syDjvqRTiSk!;EssuF&SGkK z$y}v>aT6z;YFp()not%!J-mK$)>s`LYZ8!h(st1Xf$_P9?DE+!F5^9`-HyEoTM2Nt5xq7f*PkddY$nFfsC1^}7||SZR4WDw zjaRYZXSz@}%m7%9E1Yv%;xb|4#9279F%U0-?jxpG1yCU*=*yB#NXBbK3 zB4@<4sJ|kF>ga#t@>qc7a+wq(j`w zn|B%p5wMy9=_bUN>f5k_4x1-0>3+hNemnlkji=)`PO)I^#mteOx(tf1=$M|XxP$}& zCiXu-jJK!wkTH-68zsBOpXVIhRy8Ikp}Y7IoxeZSX}Kp$dq<%)hyGL!zWqVIg5;1t z6AX5^x~gu@6EQhiEk z)pkuj&aR^O+|^1dXXrW@9)BJN=Hl zK29AorL1Kfa};ERPg>Ao$2{F6Srh+LV1*Fn{u7h4u$6m+nZzLJA>~}r8TbEvL$fDI z0#&q*;xbbJ9HY^{Do2Vef07djd!mRwC+@fnt)?8c= zrR_?9w8-Wq2Igj?1?p=at&ixd$T;!2dp?C8*=W3w-7evmGY5uZ;Fu@0ASCR1!H@-J z);m;S@lL;P7flb{4ZLif2aiRk;t3>3zT6Ro^FKp>%@$AH+Kt%Lhan&rE_ zp`RnxhL1K68l`$z5(03|f3l#aCGIP^*=v)u(&F==ES)(g#SX%`_iBgF5I|)~J6o-S zLc0)@5xE=Xut430fDii1142cm0J?oTI)jnMT#rhuB1&4~xEqW;I-1)J>i!+M6LZU9 zBW zBrbh=pQXs(f^t8z`_`_2sr%9rboep5Oxg5AwIe(h4B$&77h}dBK@&_6D?%!6G+*zd z-Gu1;@EC$xt`VN7dh)&2nh5s897-;qz_|Gm)PSni2ApVCqL*~mR+J^U!xFG$YA`LX zrI%Pf>}hapRL8STwalMpS5$}#{KxpOs5gH)p>ZfZq!^(g6eM@X8HM3m)bL*A@EudY zRF-!PMFVguz9<>cyik_Sy3RV~K6o&SHXyS~z!4BOo3XIwvs5Rr^*Tn9l&O&Y?nD8B zK{n~wt#=(RFM8{FJ1;I_s?gl93yis5%&czGvQ5>CZm8EKczw>Td?S8W_~aEc<=FF+ z`VDzq>J+!FfnHAJwp|oq=11q;ekV7kxSQaQG*a(}7R&AVEab_JX#^SGkv(Gr?a@!p zcde{8=?+YYhksr`Es1dJ99S#xozLbqrcujfQE7f5;27s;%c~Pukhr;#x(YM$J}N+( zU69X9b)^Z(IdkVqi369kz^~*BRkJ~2FfwdoeVUuo5bS>N@XMqHA6&C{3OgaK%cX@V zczUy#uv=+L(ln?}fj_a{nI=#)a-jzpZ>0)9Bv}6+!o@4+iWy8u60@lo(8yQ-LIoa#=t!4rQya zTVARpK)NMg*1!m26Xwq0CzGHg6|ULO^b$k zuD%bI{af=pVrIBk;ybN0e_CCp?K6UfC2HW`e6MI|J++*a?Jz9DiH@dnr<&ep&G3U^ zjIyoDFkN8Ki?&_zNoVuP%pJ`~@J{u|c0>X}4mV)1W)s}`M0a|mpVhjne#9*$Utpav zKppVo7P_8Ts6qYTI}y6p^hV4KF_3~uQT&ajvq3)jbvsZ~sbWSoXosMQB?ZUS3D5#S3%pfexdi5EZ%2YxJfgRqX z6O~b8Tw6K{YuQO>f4@Hjx#uKRLIrm8qS4_j@tl#nia?|zrtp(#Jx?8qU^8LLcIV5a(wbBTt`2K_Tx&J?ZJ@`TML^E1$>DHw?eo7J7fz*D#wsNqI>yT zk_W#CD3AiEWlU|x-gjh>077tiwMLT--tS!?iuUo7Vu*876t@yD_Jg5Et*0RAlFE`p z$jD4ayO~aaBE5WkPVlMtY^{w3&QQ`jEbyI2VGh%P`aX>bY^e#(Ib#u}H|o zj<1FUw5N^~pL@@b4A3uM@HhlU5Wu_e$Lp!|l^+r}GLr$LzUDA`IwW!dH6#T4G%3!P z>zf;Wz;$33G&Dt zta$Iit_tzI^F^qa)sbIJPitjp9I^UmksVXe<_v z_IK*neD_TL1K#IO^J$f{Xs=VAayJfK`2tnB(k@?T2mL{(2#x0HFg*JcOJ^9$e`DYU{|Ln4YL zGj{wT&nSNp;7BMo8|uL()^lV*27RvlUBAW=x)(ykMD|`4Hg^qR?4uU$y$NRJ`^LY9 zwDYeoz~{;!GpZklXJXwDD;I`)+{Jvj_5L4#-^1znUhe*1dE*}K$@#=Eq9ljiyBat% zXhsmaRd9Q;)I4%yHB33n(~C#>>%c3n98p$Wf^lt@{7;QXc*>)C$Cc~Y#7Ypb4@UA)iHf=X!qr016EoPc;0lgWxY4p=-2;@E5yK; z3RXTe{|($$KC;YbAi*>-yS|LBI<*Xx59%)l@#iNG`DkJ8)?gH?Lp1=Pyo_hl&>ikW zw^m1jb!JnDo&|)haZFxtJHnPmBSCRvl{v_f(;ytLiBGHa!TvdWT5{dl#n*1huek&t zhm9sTr)1qxuW_8c-1K6|*4sH=*8OLs_k38Oae2)6*m8O>A+sHnG%^dyPz|M z5(ZSGA(O^T+>h|AqltHrQScgw8ueAz#ANVY%w4)b(PN6dJ|9T2wRy1~sl9&0ZLp`d zxvREQe4?T2hb@&>79-os+_m03_p?0c&%z3YqX_5~x+DjGjPy??bG;GV!j14@MCCE51K*?JBlkvR&9r#v+(C`)Vf*QKe41XsNG@gG+KO%I z^-%0b;D_i<)j*%j#w)4!m|VQL^RaY}KU#gsIOCQ&e1~XcC(1?SO4Wl};_-PSsiaSq zlleK7%o#->$i%b1oJlmdHz&Pcj$9$e$8K+FqgcwrY?8!UPk$&6@-%Ho3DFDlYgCn<}}lAS>;%U`zJvlz!I@bu|kS zOPMx38WQ4pk&*wKRS|c)W|%;qy`q3V-zK017D`bBR21l&KO+^8j&e-#E0H>|rc1>F zic+TtEb?7LZ4)o?o;YLlf=tQ(s%u&f5^`NJ3Sh^IN?7Am#I3YrY$0FW=$UTb65vnR zSe%mKrjcrZiLx)Oh02ZbV)ULeTGffYyFc7Cd?~2I2pFcs8I2{c^g#+0w}F6YkdnK* zb^iGpY^a5rk7FB-NpeArZ2IorS4JOPs6+=v`{LtJ96}Q&xXUM4J!38bD162nTbtUwUTDdKt zecgKJb{BJ@u+GhrVmT!PbFVg`%h2`CX}^&diYewfCi|R-K*imTby*YsU?g0YF)3dU zn2i^~u1Z?htM2fgn4*UzfV6zUK*z7jRLi2Rvl3nA;deJHx`dL3qDt~;Bkv)~1uSi{ zs6_uRWte1xwzoYV_IbQP>4CF+)bp4l-e3EqTnj`r{|e>Z_18U4vjj;1TMU8_;&srGm{ z_6a=2-<7;AL$MBgu1Bu2VZ!2i%L%IN|Fg^Xs5boiC(aQ;0Q_V2M+EwB4{=?(Z-xRx zV+;`6gkunvtv16D39`c0895;i?eY#I#eh!%m)MrqJ-0d78`v8lq>w5cl_lUHIu<~S zOcTk!Xhg(Y44mN?ml>?$(3rKJiE4`rEvFLLt{US9T|0C5E|$bD&)#eg6&p2ND%ShO@uD24n~M(%I3W)Gdk)z;6Y6$z z0}FAP011_nT?3 z>GO(VrxCZb#OMk=3iSoEYZsrDHp-m3{iPTcMt-VF4cuZO6X^c{03IUoaQf`<~B~*Si)5b^9s1BWP zcx3wPs&(J&=g6TA5uZ{{<8y%oki*amU|N?JJCMkK^`IGj93>pYQjfGC1vCxt_2Yo7 zv_GQFtGvk=vwxL5#ba*K1Q`BQ)&WjNx1ceOLPqsiAj-n+lhU<|Ju>0G9hvfhM?x-x zjDGt+-?GQ#%&K5V?*I8~3SQrbY#1U=h5m;S-fXp!Wh*zNJ{UTp)a^-0`k)I5dzAB` zatpCSKw5mB7`9M1nKIol1Jx$ofEwF<=C{@~wY9dIPc4DM&B*^r2b~vSDyxfsu{R;6 zOJG~w%lB(8ZaXfi_usCbw-O5GvI)*iOM3K15di_vva-fd#KrfOy+dV>T}H}Q;NZCq zE|9zQWCn#BN^6tB?O`ELU@)kfW@!TCZhK#DGCbq}+Tw=P^xXwEnf#<-hB42ON zHcg?Nnb81fJm=6?xju8zZtS*FXV37?sw4-NwZJc?RlT*ku`x!$k>pzH87u5WlegIT z@$JB&K?Y%V-Th~#Kxoo}(h9X36B7^letm}^(mF{BDhN!!fmaZ*vw#9egEud1H+YWL z6afv#hBrsu66XR$VX~i$mv9uWNXFFb81%n7?Uq7@fq%)XgA=R8D23Fo!j%3ZA<&Rz zJ(#g3kLDqNqDj9=Z^f9eg_)vcKKXdPPP1hFwkJRf>Ev&? zxgL2iyL6k`w?0(tm2o9^t5iqv=t;m?vP*-gW1F-iZ!3~4m*u#SO7+J?t(frS((BoV zyi3}iDB`z?F(6U5n_3_8o~qyJ+TVr(Zg28ys_Gb7o!Y5n=AA=Zb@nh|$(+dxltf31 z4;jA1$USmqrGF1l`S(jfgEIb6Wzsm9gy2~GO67kLQbNl2 z8#+!A6rpdu2bvmi%DO{+;oC=Yv9UfEY;$XXbt&9yAbPJhHS|wm!s7F_`OHkd`+@Pb z$pQ00C@EfzPDuLo|Epx=PSHkmY#3*b_o*|d;dJB>7 z%VP_)9XdnQBcTWbh91;um`uJgHqB<9ZiyjE?Wq$%G~LnqG_`@JkHS4pcRK0A8$NDD zi+r?qD+vGX`34v2&EEy6sw9Liu>St)R$9|^D%QmT`7cke`>t&Slk`F>?IyFA+SS?Q zsk)iY%J7y4-{P~VJf^2CKCMZSP679|LE~hwlM#41m@p3Zg>#%wMnKL6@iL;lSE!xVLk+x!U4U5?`1O>zL*X#?Cfrlrcqj2i^ zPaZ!{)(vnx0a7wNXX*;x^Til5>LLx=ZZZUzDuM%kBCpeXk+U~bbN~VZ|1B)ct^+>K z2}J>YyKH}N1>o1cPfqG-rq~P}1O0+zEESQ%RJWgk;{2NuS%FCTYZ71pH!Ys=Q-15f z@N?ij%_uL#xP^&YSr+PZ(aoC{9qkYkDmZ-2vMo7QeW(#v9o%El4qJB)Ah*Tw13$xl z8KdDK1(W0-LCdmG3{y3aD}yXud6p$*K7Eu<$la;M@F_DS8+L6D}` z{p?1#7X%6?5jhyBY|%C?K|wEbtB)?<`=r>Tu3Gf!y~CSr#C5=^d*QL=Pn_>HTCFg8 z|8PfcTEEadGYx_B21zR%WN>ZNzd>BVoE}@)MKsj!`2~@o5z9epJjtj>mVOt5uEajI z!|MpZY}AXW%F4|1C%#F2K&wTS9RJ7Uxt#+RivRkM-+gi8)L4*rsCXD6>XMQb07~O_ z5G5gXrq>IVN%=KV@)YfNiPH3=&Wxx=e#5ic+D48g;@3c+FSRu$ji1B0u3L6`nkoy| zk;_RP#(SiC^gv>zpq(_nK}u5ijB>w0FxH|6c`>mKD=sXsoCXZ1$O}`e53V2T{R>1j zfw^1G;+mJrc@$LdbjS7%S{nkX071vD~DulA5?A>znxc(6{?R!Oe^lvnP+fk5C984*s? z_gp*bwbHEfd66S<$HGm7DS-|@9WF6bZJiN2%_=WkNM}ya0GruJZ3Z`}#bV=&E)Ej9 zfv=N}SDG(jY`1A$(QQaROXjTvDKY6iB-18XXP}~wIpBuhzXXd$aiS*{HX^#>U(5z9 z*5}T-(2H@+I0O$rkM>6I3X>kZ3BI^6M_jtjmFwQKGD+Nd3M1s7_`>!5y#%s<(5kM|H2m717`5=81B4gHm{QC@*mitD^GA7P_=nJTqN|HcTj|m*g9NWlDUbkEfhhkalFD*)8 z?CZ9}M75tfRN@4?=1lxD8ZJIh7el4tY%wNaS6}PY$ZcS&{n86H8Au4UMtIxW8i0$ zK^l^Alvj4QzAB}0CSH;)9bUsk98AA#e_y0t|6bL~L3l55ZYz^HfQT$4BIAvKK<;WbL0b@EZWJ^vop}i9Ej|*+kw``SL$PMn zoz=u{+30Z^D*uDmdu%IrMPy8w{%~KQI>K6D>$m308UqB|$uO{KY!XC(dVuVa$ zAZF#Ub;QZJd-VCdBbCVE8?DkU2bD_S(0@%sa@(LnPI1c4TO8Hni}=ax@YD=h=|h_90~S z1kA|5yg}RAh`F=mpLBm4?*G(KZKNeXwch$Yf`Meh(d9(f*uw_O(USqfO!E1Qvj{ks z={QQd?NPnL_m*IHyS~5@qoNno0YR#m)!CfdPMP5)=m}QDC9OFfTk0G@#E(n|^ z8(!TC&ZG&d1~|Fq8!!XKI>z}=Kdps`1aH9h?a%u$8}gKKSu;_q{s1u0XYyc!0h=c< z<={B`1=Bz-X2Rfm0lua#eEeAgKOyw%YFGa2ps;TF@ivh6*~|BG>Qw=bB?7yB{G(Od#`fxpHeHxiqtsaG|(42X?ln6sYIgk;I!F5$I>@UUta7?vHv zc_>k7EhtqR|0HAgff2T3bTbS`W(fi$8)Xz#qa-|07tG}J|9FXIpC>zA;*g|)9((v~ zq9qCKXp_FWhh7Pe?5fW59pED%+*p8r-!V)&5186Fuoo#%4tP3uH|SgmBHzmXUN@cq zpJB8OSoqabpJ7jU?;A?^Eme8+Of2tKD9t5Zg$9R!rZ-VMa%6(cpgWgVEBjM(fe93s z+~4-T*|zNipmZ^bBKoBjR5Ogx!1f7-{r7WbRUMfK+3JG-2+TMZ7jM-I`zAzb)P_WB!Y?0!hu6r zI6~^7>(YOtQuz&)s`rq(7~#^Dlj_e9QqtKwB!j|mM*>FmxgmREv3F9xtTpgBid?eH zy|MhSRy@&U>=T9e^)29M7Ablk7aWBl^O)>rfG?BWrXse8VpH=8F#up*^c(wc@iJuY zlfIR12P%4xU%yyL(|H;dTVvGfG*PqGF#|+e;Mj2Lb7ap4KC$j&W3fOe zcA}mG{v!g0Wr4T-&97?^T7c?#kYs`9A5}i-Iqrga4At?ajEJbfI<7=*t(3yw$s!mJ z$OiuCR3$~Z4bU-4;4RDkHFIKST|^x}LCVLk=8j>f1@x9ZH@BL_hxF5O9YJ=&YgwEw z71F>ZlM2OjS-r~uM*A+&QkTF5ky{IlV0#~|7re_0zQyjY&Xz%Q?N|q2Hsqt8Y6qmK zM&fB>{YSbv?8AkL#_4XU{3LTzQ>BCDXpG`M9w}BZN|EO94s>d~|Nr(YS+2$N^wOWD zn9VXHv-UwF+JyYyEVbhD+gR486@3vz!MQ`WK+!I>f%U^WGSjwlHy5HATC^;rLE64i zV&fVk;f{j7C}?!e<;g}zWQ(uuCJCxJcVJ&=A|5;(qPXY$2lTpD!2{W3k#{`YvD}-D zP0df|NlppkrhK?#+cAD8q?=F5@+UW&90>g@>(5@&HkM5v#|)V>XMOLzV06mlm$O?c z@{&eNXi^M$&&Cv3=1&H^6}60XKT1WMW{6O*G>(}y`>k`0Ti_2Z=60f`CChrqQ6kQq5=tr|zd*LZ<;%!VFXdls*ZQ4^Pc2N^?RShM zF)SBjse&31lQm3)an7%;_f4=&zCBwRI619Rxox~}FKSwt0$lR*DtbdDND@3}xDw<- zGtD{k_8d96I;`(Kc2Am5d2KSX|~QtbQ)qS3?Qsx8sydyIG4Fr2v&w@v(M z5-i!Qot>RW-8nI%3B9*#ou1P0$3Jj%$zoUlJ=_Gxxeuw({V&9PCO z+AksULjA%!`2xhad@|z^*A5NJ8**aE$nH6BRd>$B*-&lYULUn_B6Y8kS-y~N z0p!GY5WhogkurtMxVnj|i74?=hEp?uZv=o!%l?q7W`jU({w(tqev_SMA>pL&F)3{pt>t+3l@#!JWCL|p4wshTGH_WE82baOc02?E8z zh)Dw!--9Eox}wmx(O`Ihg6mTb@tgeOE(z11xPuP%zClJ-z<>I`z;x-EAFYoP}`Q{j%G06jp$zupRjm$*1g*nM2-5&>DXg91sHO{YD7OfV-86~d&a&_ndxzw-d^a`x&F_W?nr3#t~1C5$~0s`&vmmF5Q4l0KrR3@b>2s4563@dV9ForBrf z$ET7ftn$7|g8CXQu_yUq$tnudB>0Nse31Kf8AQ$2gZejk}R$14?O!w$p`{q6`13;XBE<&KDwVhzDsMcucq4>MSyq@JOG! zh$jOzf=g;^8V<(aq_$Hhq-nIU1%NLRUyPXohQ#_cktp?edv+U!=2Lt$si`%II=+t%0j^lv5T#s zBxr86SCxV)NeYE*ygWY`T_o((sRxL>fwW}QDKTGZ0Oe%BwLa?6mC6YjabjyP}Vj)J>F*EPsh86pMYV0E4-u5#eq)aoKse0aE4IqB@U8myS;R10V?uJ&SGAT#1EDB|8#BTd&{{Uo#A`y|jJbyST*bqZAzn4M(a z5Y57jGkAAplqac}qI1Wj-;ov~6=*U|#nu=4^5qeRcyV{P75sOr47M^v`p}K{KO(Us zO)R*zz-j_HuTUy3KZy3hNTF;8LihC$=Ir3^IZo`uAO#?>H{tryWkv%1!~9CSAphJH~RY|;TdlkjmQ8p*0Ct~)bgwhl^E-m7x|yt zQQldG+UVG3E6$bbrW>R+QaHlQkNE!d6$MOLMOqeWOE4*p_=%i9nz(*)4aw;Rxg56X&atLrv>s>RyJ z?l7Jr+X?nqC;Ulslb@otdd{U6gV0jI^1m*T(|HLsL0|Em3EXEMQsk_lBAclsN=MUv zgO+#3*tfDeX$xoQGf5c+cK2bHsDv}Gw!eBAL`^G&OBa=IJks#!bu0GN0fVwHRF zacmF7OmZMOgNtPIDfomWZjU%Z#P#ye&3RgKY7%w=Zvq<|L~xbqD3HoOON1i#)otuq za{}a$##tK0Pmc(n{l6YtZ_P1d${M$1)PJai?1jv5XkO=f=rS2){DT2e#sN*mS@xXO z;gq`kD}&5ZooF7JdkLZbJ10xDde{)7v7$mzV82Po9-l3s7t54%)2nWw2B6gFWh_KI z4vNFOw3x!hj$0Ef>rcCSw?9a4=NPlcc$E8>15CJ9bdUbg+Hm8rraH6KrnqZinV

{`d(%Gticd7r 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 z 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

?yM5L>1QiWFUXFK!K6ETP_E5Xn;;zsSqNoc3 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