From aca464ca72aba644b918d403f7e76e39bfed3317 Mon Sep 17 00:00:00 2001 From: Pepijn <138571049+pkooij@users.noreply.github.com> Date: Tue, 25 Feb 2025 09:06:50 +0100 Subject: [PATCH 01/70] Add mobile so100 (#724) --- examples/10_use_so100.md | 4 +- examples/11_use_lekiwi.md | 467 ++++++++++++ .../common/robot_devices/control_configs.py | 6 + .../common/robot_devices/robots/configs.py | 83 +++ .../robot_devices/robots/lekiwi_remote.py | 210 ++++++ .../robot_devices/robots/manipulator.py | 6 +- .../robots/mobile_manipulator.py | 691 ++++++++++++++++++ lerobot/common/robot_devices/robots/utils.py | 7 + lerobot/scripts/control_robot.py | 22 + media/lekiwi/mobile_calib_rest.webp | Bin 0 -> 225678 bytes media/lekiwi/mobile_calib_rotated.webp | Bin 0 -> 278740 bytes media/lekiwi/mobile_calib_zero.webp | Bin 0 -> 190444 bytes media/lekiwi/motor_ids.webp | Bin 0 -> 189342 bytes pyproject.toml | 6 +- 14 files changed, 1495 insertions(+), 7 deletions(-) create mode 100644 examples/11_use_lekiwi.md create mode 100644 lerobot/common/robot_devices/robots/lekiwi_remote.py create mode 100644 lerobot/common/robot_devices/robots/mobile_manipulator.py create mode 100644 media/lekiwi/mobile_calib_rest.webp create mode 100644 media/lekiwi/mobile_calib_rotated.webp create mode 100644 media/lekiwi/mobile_calib_zero.webp create mode 100644 media/lekiwi/motor_ids.webp diff --git a/examples/10_use_so100.md b/examples/10_use_so100.md index 7912884c..f7efcb45 100644 --- a/examples/10_use_so100.md +++ b/examples/10_use_so100.md @@ -344,7 +344,7 @@ If you uploaded your dataset to the hub with `--control.push_to_hub=true`, you c echo ${HF_USER}/so100_test ``` -If you didn't upload with `--control.push_to_hub=false`, you can also visualize it locally with: +If you didn't upload with `--control.push_to_hub=false`, you can also visualize it locally with (a window can be opened in the browser `http://127.0.0.1:9090` with the visualization tool): ```bash python lerobot/scripts/visualize_dataset_html.py \ --repo-id ${HF_USER}/so100_test \ @@ -416,4 +416,4 @@ As you can see, it's almost the same command as previously used to record your t Follow this [previous tutorial](https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md#4-train-a-policy-on-your-data) for a more in-depth tutorial on controlling real robots with LeRobot. > [!TIP] -> If you have any questions or need help, please reach out on Discord in the channel [`#so100-arm`](https://discord.com/channels/1216765309076115607/1237741463832363039). +> If you have any questions or need help, please reach out on [Discord](https://discord.com/invite/s3KuuzsPFb) in the channel [`#so100-arm`](https://discord.com/channels/1216765309076115607/1237741463832363039). diff --git a/examples/11_use_lekiwi.md b/examples/11_use_lekiwi.md new file mode 100644 index 00000000..f10a9396 --- /dev/null +++ b/examples/11_use_lekiwi.md @@ -0,0 +1,467 @@ +# Using the [LeKiwi](https://github.com/SIGRobotics-UIUC/LeKiwi) Robot with LeRobot + +## Table of Contents + + - [A. Source the parts](#a-source-the-parts) + - [B. Install software Pi](#b-install-software-on-pi) + - [C. Setup LeRobot laptop/pc](#c-install-lerobot-on-laptop) + - [D. Assemble the arms](#d-assembly) + - [E. Calibrate](#e-calibration) + - [F. Teleoperate](#f-teleoperate) + - [G. Record a dataset](#g-record-a-dataset) + - [H. Visualize a dataset](#h-visualize-a-dataset) + - [I. Replay an episode](#i-replay-an-episode) + - [J. Train a policy](#j-train-a-policy) + - [K. Evaluate your policy](#k-evaluate-your-policy) + +> [!TIP] +> If you have any questions or need help, please reach out on [Discord](https://discord.com/invite/s3KuuzsPFb) in the channel [`#mobile-so-100-arm`](https://discord.com/channels/1216765309076115607/1318390825528332371). + +## A. Source the parts + +Follow this [README](https://github.com/SIGRobotics-UIUC/LeKiwi). It contains the bill of materials, with a link to source the parts, as well as the instructions to 3D print the parts, and advice if it's your first time printing or if you don't own a 3D printer. + +Before assembling, you will first need to configure your motors. To this end, we provide a nice script, so let's first install LeRobot. After configuration, we will also guide you through assembly. + +## B. Install software on Pi +Now we have to setup the remote PC that will run on the LeKiwi Robot. This is normally a Raspberry Pi, but can be any PC that can run on 5V and has enough usb ports (2 or more) for the cameras and motor control board. + +### Install OS +For setting up the Raspberry Pi and its SD-card see: [Setup PI](https://www.raspberrypi.com/documentation/computers/getting-started.html). Here is explained how to download the [Imager](https://www.raspberrypi.com/software/) to install Raspberry Pi OS or Ubuntu. + +### Setup SSH +After setting up your Pi, you should enable and setup [SSH](https://www.raspberrypi.com/news/coding-on-raspberry-pi-remotely-with-visual-studio-code/) (Secure Shell Protocol) so you can login into the Pi from your laptop without requiring a screen, keyboard and mouse in the Pi. A great tutorial on how to do this can be found [here](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh). Logging into your Pi can be done in your Command Prompt (cmd) or if you use VSCode you can use [this](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) extension. + +### Install LeRobot + +On your Raspberry Pi: + +#### 1. [Install Miniconda](https://docs.anaconda.com/miniconda/install/#quick-command-line-install): + +#### 2. Restart shell +Copy paste in your shell: `source ~/.bashrc` or for Mac: `source ~/.bash_profile` or `source ~/.zshrc` if you're using zshell + +#### 3. Create and activate a fresh conda environment for lerobot + +
+Video install instructions + + + +
+ +```bash +conda create -y -n lerobot python=3.10 +``` + +Then activate your conda environment (do this each time you open a shell to use lerobot!): +```bash +conda activate lerobot +``` + +#### 4. Clone LeRobot: +```bash +git clone https://github.com/huggingface/lerobot.git ~/lerobot +``` + +#### 5. Install LeRobot with dependencies for the feetech motors: +```bash +cd ~/lerobot && pip install -e ".[feetech]" +``` + +## C. Install LeRobot on laptop +If you already have install LeRobot on your laptop you can skip this step, otherwise please follow along as we do the same steps we did on the Pi. + +> [!TIP] +> We use the Command Prompt (cmd) quite a lot. If you are not comfortable using the cmd or want to brush up using the command line you can have a look here: [Command line crash course](https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Environment_setup/Command_line) + +On your computer: + +#### 1. [Install Miniconda](https://docs.anaconda.com/miniconda/install/#quick-command-line-install): + +#### 2. Restart shell +Copy paste in your shell: `source ~/.bashrc` or for Mac: `source ~/.bash_profile` or `source ~/.zshrc` if you're using zshell + +#### 3. Create and activate a fresh conda environment for lerobot + +
+Video install instructions + + + +
+ +```bash +conda create -y -n lerobot python=3.10 +``` + +Then activate your conda environment (do this each time you open a shell to use lerobot!): +```bash +conda activate lerobot +``` + +#### 4. Clone LeRobot: +```bash +git clone https://github.com/huggingface/lerobot.git ~/lerobot +``` + +#### 5. Install LeRobot with dependencies for the feetech motors: +```bash +cd ~/lerobot && pip install -e ".[feetech]" +``` + +*EXTRA: For Linux only (not Mac)*: install extra dependencies for recording datasets: +```bash +conda install -y -c conda-forge ffmpeg +pip uninstall -y opencv-python +conda install -y -c conda-forge "opencv>=4.10.0" +``` +Great :hugs:! You are now done installing LeRobot and we can begin assembling the SO100 arms and Mobile base :robot:. +Every time you now want to use LeRobot you can go to the `~/lerobot` folder where we installed LeRobot and run one of the commands. + +# D. Assembly + +First we will assemble the two SO100 arms. One to attach to the mobile base and one for teleoperation. Then we will assemble the mobile base. + +## SO100 Arms +### Configure motors +The instructions for configuring the motors can be found [Here](https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md#c-configure-the-motors) in step C of the SO100 tutorial. Besides the ID's for the arm motors we also need to set the motor ID's for the mobile base. These needs to be in a specific order to work. Below an image of the motor ID's and motor mounting positions for the mobile base. Note that we only use one Motor Control board on LeKiwi. This means the motor ID's for the wheels are 7, 8 and 9. + +Motor ID's for mobile robot + +### Assemble arms +[Assemble arms instruction](https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md#d-assemble-the-arms) + +## Mobile base (LeKiwi) +[Assemble LeKiwi](https://github.com/SIGRobotics-UIUC/LeKiwi) + +### Update config +Both config files on the LeKiwi LeRobot and on the laptop should be the same. First we should find the Ip address of the Raspberry Pi of the mobile manipulator. This is the same Ip address used in SSH. We also need the usb port of the control board of the leader arm on the laptop and the port of the control board on LeKiwi. We can find these ports with the following script. + +#### a. Run the script to find port + +
+Video finding port + + +
+ +To find the port for each bus servo adapter, run the utility script: +```bash +python lerobot/scripts/find_motors_bus_port.py +``` + +#### b. Example outputs + +Example output when identifying the leader arm's port (e.g., `/dev/tty.usbmodem575E0031751` on Mac, or possibly `/dev/ttyACM0` on Linux): +``` +Finding all available ports for the MotorBus. +['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751'] +Remove the usb cable from your DynamixelMotorsBus and press Enter when done. + +[...Disconnect leader arm and press Enter...] + +The port of this DynamixelMotorsBus is /dev/tty.usbmodem575E0031751 +Reconnect the usb cable. +``` +Example output when identifying the follower arm's port (e.g., `/dev/tty.usbmodem575E0032081`, or possibly `/dev/ttyACM1` on Linux): +``` +Finding all available ports for the MotorBus. +['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751'] +Remove the usb cable from your DynamixelMotorsBus and press Enter when done. + +[...Disconnect follower arm and press Enter...] + +The port of this DynamixelMotorsBus is /dev/tty.usbmodem575E0032081 +Reconnect the usb cable. +``` + +#### c. Troubleshooting +On Linux, you might need to give access to the USB ports by running: +```bash +sudo chmod 666 /dev/ttyACM0 +sudo chmod 666 /dev/ttyACM1 +``` + +#### d. Update config file + +IMPORTANTLY: Now that you have your ports of leader and follower arm and ip adress of the mobile-so100, update the **ip** in Network configuration, **port** in leader_arms and **port** in lekiwi. In the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py) file. Where you will find something like: +```python +@RobotConfig.register_subclass("lekiwi") +@dataclass +class LeKiwiRobotConfig(RobotConfig): + # `max_relative_target` limits the magnitude of the relative positional target vector for safety purposes. + # Set this to a positive scalar to have the same value for all motors, or a list that is the same length as + # the number of motors in your follower arms. + max_relative_target: int | None = None + + # Network Configuration + ip: str = "172.17.133.91" + port: int = 5555 + video_port: int = 5556 + + cameras: dict[str, CameraConfig] = field( + default_factory=lambda: { + "mobile": OpenCVCameraConfig(camera_index="/dev/video0", fps=30, width=640, height=480), + "mobile2": OpenCVCameraConfig(camera_index="/dev/video2", fps=30, width=640, height=480), + } + ) + + calibration_dir: str = ".cache/calibration/lekiwi" + + leader_arms: dict[str, MotorsBusConfig] = field( + default_factory=lambda: { + "main": FeetechMotorsBusConfig( + port="/dev/tty.usbmodem585A0077581", + motors={ + # name: (index, model) + "shoulder_pan": [1, "sts3215"], + "shoulder_lift": [2, "sts3215"], + "elbow_flex": [3, "sts3215"], + "wrist_flex": [4, "sts3215"], + "wrist_roll": [5, "sts3215"], + "gripper": [6, "sts3215"], + }, + ), + } + ) + + follower_arms: dict[str, MotorsBusConfig] = field( + default_factory=lambda: { + "main": FeetechMotorsBusConfig( + port="/dev/ttyACM0", + motors={ + # name: (index, model) + "shoulder_pan": [1, "sts3215"], + "shoulder_lift": [2, "sts3215"], + "elbow_flex": [3, "sts3215"], + "wrist_flex": [4, "sts3215"], + "wrist_roll": [5, "sts3215"], + "gripper": [6, "sts3215"], + "left_wheel": (7, "sts3215"), + "back_wheel": (8, "sts3215"), + "right_wheel": (9, "sts3215"), + }, + ), + } + ) + + mock: bool = False +``` + +# E. Calibration +Now we have to calibrate the leader arm and the follower arm. The wheel motors don't have to be calibrated. + + +### Calibrate follower arm (on mobile base) +> [!IMPORTANT] +> Contrarily to step 6 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=724) which illustrates the auto calibration, we will actually do manual calibration of follower for now. + +You will need to move the follower arm to these positions sequentially: + +| 1. Zero position | 2. Rotated position | 3. Rest position | +|---|---|---| +| SO-100 follower arm zero position | SO-100 follower arm rotated position | SO-100 follower arm rest position | + +Make sure the arm is connected to the Raspberry Pi and run this script (on the Raspberry Pi) to launch manual calibration: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --robot.cameras='{}' \ + --control.type=calibrate \ + --control.arms='["main_follower"]' +``` + +### Calibrate leader arm +Then to calibrate the leader arm (which is attached to the laptop/pc). You will need to move the leader arm to these positions sequentially: + +| 1. Zero position | 2. Rotated position | 3. Rest position | +|---|---|---| +| SO-100 leader arm zero position | SO-100 leader arm rotated position | SO-100 leader arm rest position | + +Run this script (on your laptop/pc) to launch manual calibration: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --robot.cameras='{}' \ + --control.type=calibrate \ + --control.arms='["main_leader"]' +``` + +# F. Teleoperate +To teleoperate SSH into your Raspberry Pi, and run `conda activate lerobot` and this script: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=remote_robot +``` + +Then on your laptop, also run `conda activate lerobot` and this script: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=teleoperate \ + --control.fps=30 +``` + +You should see on your laptop something like this: ```[INFO] Connected to remote robot at tcp://172.17.133.91:5555 and video stream at tcp://172.17.133.91:5556.``` Now you can move the leader arm and use the keyboard (w,a,s,d) to drive forward, left, backwards, right. And use (z,x) to turn left or turn right. You can use (r,f) to increase and decrease the speed of the mobile robot. There are three speed modes, see the table below: +| Speed Mode | Linear Speed (m/s) | Rotation Speed (deg/s) | +|------------|-------------------|-----------------------| +| Fast | 0.4 | 90 | +| Medium | 0.25 | 60 | +| Slow | 0.1 | 30 | + + +| Key | Action | +|------|--------------------------------| +| W | Move forward | +| A | Move left | +| S | Move backward | +| D | Move right | +| Z | Turn left | +| X | Turn right | +| R | Increase speed | +| F | Decrease speed | + +> [!TIP] +> If you use a different keyboard you can change the keys for each commmand in the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py). + +## Troubleshoot communication + +If you are having trouble connecting to the Mobile SO100, follow these steps to diagnose and resolve the issue. + +### 1. Verify IP Address Configuration +Make sure that the correct ip for the Pi is set in the configuration file. To check the Raspberry Pi's IP address, run (on the Pi command line): +```bash +hostname -I +``` + +### 2. Check if Pi is reachable from laptop/pc +Try pinging the Raspberry Pi from your laptop: +```bach +ping +``` + +If the ping fails: +- Ensure the Pi is powered on and connected to the same network. +- Check if SSH is enabled on the Pi. + +### 3. Try SSH connection +If you can't SSH into the Pi, it might not be properly connected. Use: +```bash +ssh @ +``` +If you get a connection error: +- Ensure SSH is enabled on the Pi by running: + ```bash + sudo raspi-config + ``` + Then navigate to: **Interfacing Options -> SSH** and enable it. + +### 4. Same config file +Make sure the configuration file on both your laptop/pc and the Raspberry Pi is the same. + +# G. Record a dataset +Once you're familiar with teleoperation, you can record your first dataset with LeKiwi. + +If you want to use the Hugging Face hub features for uploading your dataset and you haven't previously done it, make sure you've logged in using a write-access token, which can be generated from the [Hugging Face settings](https://huggingface.co/settings/tokens): +```bash +huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential +``` + +Store your Hugging Face repository name in a variable to run these commands: +```bash +HF_USER=$(huggingface-cli whoami | head -n 1) +echo $HF_USER +``` + +Record 2 episodes and upload your dataset to the hub: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=record \ + --control.fps=30 \ + --control.single_task="Grasp a lego block and put it in the bin." \ + --control.repo_id=${HF_USER}/lekiwi_test \ + --control.tags='["tutorial"]' \ + --control.warmup_time_s=5 \ + --control.episode_time_s=30 \ + --control.reset_time_s=30 \ + --control.num_episodes=2 \ + --control.push_to_hub=true +``` + +Note: You can resume recording by adding `--control.resume=true`. Also if you didn't push your dataset yet, add `--control.local_files_only=true`. + +# H. Visualize a dataset + +If you uploaded your dataset to the hub with `--control.push_to_hub=true`, you can [visualize your dataset online](https://huggingface.co/spaces/lerobot/visualize_dataset) by copy pasting your repo id given by: +```bash +echo ${HF_USER}/lekiwi_test +``` + +If you didn't upload with `--control.push_to_hub=false`, you can also visualize it locally with (a window can be opened in the browser `http://127.0.0.1:9090` with the visualization tool): +```bash +python lerobot/scripts/visualize_dataset_html.py \ + --repo-id ${HF_USER}/lekiwi_test \ + --local-files-only 1 +``` + +# I. Replay an episode +Now try to replay the first episode on your robot: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=replay \ + --control.fps=30 \ + --control.repo_id=${HF_USER}/lekiwi_test \ + --control.episode=0 +``` + +Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. + +## J. Train a policy + +To train a policy to control your robot, use the [`python lerobot/scripts/train.py`](../lerobot/scripts/train.py) script. A few arguments are required. Here is an example command: +```bash +python lerobot/scripts/train.py \ + --dataset.repo_id=${HF_USER}/lekiwi_test \ + --policy.type=act \ + --output_dir=outputs/train/act_lekiwi_test \ + --job_name=act_lekiwi_test \ + --device=cuda \ + --wandb.enable=true +``` + +Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. + +Let's explain it: +1. We provided the dataset as argument with `--dataset.repo_id=${HF_USER}/lekiwi_test`. +2. We provided the policy with `policy.type=act`. This loads configurations from [`configuration_act.py`](../lerobot/common/policies/act/configuration_act.py). Importantly, this policy will automatically adapt to the number of motor sates, motor actions and cameras of your robot (e.g. `laptop` and `phone`) which have been saved in your dataset. +4. We provided `device=cuda` since we are training on a Nvidia GPU, but you could use `device=mps` to train on Apple silicon. +5. We provided `wandb.enable=true` to use [Weights and Biases](https://docs.wandb.ai/quickstart) for visualizing training plots. This is optional but if you use it, make sure you are logged in by running `wandb login`. + +Training should take several hours. You will find checkpoints in `outputs/train/act_lekiwi_test/checkpoints`. + +## K. Evaluate your policy + +You can use the `record` function from [`lerobot/scripts/control_robot.py`](../lerobot/scripts/control_robot.py) but with a policy checkpoint as input. For instance, run this command to record 10 evaluation episodes: +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=record \ + --control.fps=30 \ + --control.single_task="Drive to the red block and pick it up" \ + --control.repo_id=${HF_USER}/eval_act_lekiwi_test \ + --control.tags='["tutorial"]' \ + --control.warmup_time_s=5 \ + --control.episode_time_s=30 \ + --control.reset_time_s=30 \ + --control.num_episodes=10 \ + --control.push_to_hub=true \ + --control.policy.path=outputs/train/act_lekiwi_test/checkpoints/last/pretrained_model +``` + +As you can see, it's almost the same command as previously used to record your training dataset. Two things changed: +1. There is an additional `--control.policy.path` argument which indicates the path to your policy checkpoint with (e.g. `outputs/train/eval_act_lekiwi_test/checkpoints/last/pretrained_model`). You can also use the model repository if you uploaded a model checkpoint to the hub (e.g. `${HF_USER}/act_lekiwi_test`). +2. The name of dataset begins by `eval` to reflect that you are running inference (e.g. `${HF_USER}/eval_act_lekiwi_test`). diff --git a/lerobot/common/robot_devices/control_configs.py b/lerobot/common/robot_devices/control_configs.py index a2f3889c..6dae8cb6 100644 --- a/lerobot/common/robot_devices/control_configs.py +++ b/lerobot/common/robot_devices/control_configs.py @@ -135,6 +135,12 @@ class ReplayControlConfig(ControlConfig): local_files_only: bool = False +@ControlConfig.register_subclass("remote_robot") +@dataclass +class RemoteRobotConfig(ControlConfig): + log_interval: int = 100 + + @dataclass class ControlPipelineConfig: robot: RobotConfig diff --git a/lerobot/common/robot_devices/robots/configs.py b/lerobot/common/robot_devices/robots/configs.py index a976f601..88cb4e6f 100644 --- a/lerobot/common/robot_devices/robots/configs.py +++ b/lerobot/common/robot_devices/robots/configs.py @@ -514,3 +514,86 @@ class StretchRobotConfig(RobotConfig): ) mock: bool = False + + +@RobotConfig.register_subclass("lekiwi") +@dataclass +class LeKiwiRobotConfig(RobotConfig): + # `max_relative_target` limits the magnitude of the relative positional target vector for safety purposes. + # Set this to a positive scalar to have the same value for all motors, or a list that is the same length as + # the number of motors in your follower arms. + max_relative_target: int | None = None + + # Network Configuration + ip: str = "192.168.0.193" + port: int = 5555 + video_port: int = 5556 + + cameras: dict[str, CameraConfig] = field( + default_factory=lambda: { + "front": OpenCVCameraConfig( + camera_index="/dev/video0", fps=30, width=640, height=480, rotation=90 + ), + "wrist": OpenCVCameraConfig( + camera_index="/dev/video2", fps=30, width=640, height=480, rotation=180 + ), + } + ) + + calibration_dir: str = ".cache/calibration/lekiwi" + + leader_arms: dict[str, MotorsBusConfig] = field( + default_factory=lambda: { + "main": FeetechMotorsBusConfig( + port="/dev/tty.usbmodem585A0077581", + motors={ + # name: (index, model) + "shoulder_pan": [1, "sts3215"], + "shoulder_lift": [2, "sts3215"], + "elbow_flex": [3, "sts3215"], + "wrist_flex": [4, "sts3215"], + "wrist_roll": [5, "sts3215"], + "gripper": [6, "sts3215"], + }, + ), + } + ) + + follower_arms: dict[str, MotorsBusConfig] = field( + default_factory=lambda: { + "main": FeetechMotorsBusConfig( + port="/dev/ttyACM0", + motors={ + # name: (index, model) + "shoulder_pan": [1, "sts3215"], + "shoulder_lift": [2, "sts3215"], + "elbow_flex": [3, "sts3215"], + "wrist_flex": [4, "sts3215"], + "wrist_roll": [5, "sts3215"], + "gripper": [6, "sts3215"], + "left_wheel": (7, "sts3215"), + "back_wheel": (8, "sts3215"), + "right_wheel": (9, "sts3215"), + }, + ), + } + ) + + teleop_keys: dict[str, str] = field( + default_factory=lambda: { + # Movement + "forward": "w", + "backward": "s", + "left": "a", + "right": "d", + "rotate_left": "z", + "rotate_right": "x", + # Speed control + "speed_up": "r", + "speed_down": "f", + # quit teleop + "quit": "q", + } + ) + + mock: bool = False diff --git a/lerobot/common/robot_devices/robots/lekiwi_remote.py b/lerobot/common/robot_devices/robots/lekiwi_remote.py new file mode 100644 index 00000000..fd9491fa --- /dev/null +++ b/lerobot/common/robot_devices/robots/lekiwi_remote.py @@ -0,0 +1,210 @@ +import base64 +import json +import threading +import time +from pathlib import Path + +import cv2 +import zmq + +from lerobot.common.robot_devices.robots.mobile_manipulator import LeKiwi + + +def setup_zmq_sockets(config): + context = zmq.Context() + cmd_socket = context.socket(zmq.PULL) + cmd_socket.setsockopt(zmq.CONFLATE, 1) + cmd_socket.bind(f"tcp://*:{config.port}") + + video_socket = context.socket(zmq.PUSH) + video_socket.setsockopt(zmq.CONFLATE, 1) + video_socket.bind(f"tcp://*:{config.video_port}") + + return context, cmd_socket, video_socket + + +def run_camera_capture(cameras, images_lock, latest_images_dict, stop_event): + while not stop_event.is_set(): + local_dict = {} + for name, cam in cameras.items(): + frame = cam.async_read() + ret, buffer = cv2.imencode(".jpg", frame, [int(cv2.IMWRITE_JPEG_QUALITY), 90]) + if ret: + local_dict[name] = base64.b64encode(buffer).decode("utf-8") + else: + local_dict[name] = "" + with images_lock: + latest_images_dict.update(local_dict) + time.sleep(0.01) + + +def calibrate_follower_arm(motors_bus, calib_dir_str): + """ + Calibrates the follower arm. Attempts to load an existing calibration file; + if not found, runs manual calibration and saves the result. + """ + calib_dir = Path(calib_dir_str) + calib_dir.mkdir(parents=True, exist_ok=True) + calib_file = calib_dir / "main_follower.json" + try: + from lerobot.common.robot_devices.robots.feetech_calibration import run_arm_manual_calibration + except ImportError: + print("[WARNING] Calibration function not available. Skipping calibration.") + return + + if calib_file.exists(): + with open(calib_file) as f: + calibration = json.load(f) + print(f"[INFO] Loaded calibration from {calib_file}") + else: + print("[INFO] Calibration file not found. Running manual calibration...") + calibration = run_arm_manual_calibration(motors_bus, "lekiwi", "follower_arm", "follower") + print(f"[INFO] Calibration complete. Saving to {calib_file}") + with open(calib_file, "w") as f: + json.dump(calibration, f) + try: + motors_bus.set_calibration(calibration) + print("[INFO] Applied calibration for follower arm.") + except Exception as e: + print(f"[WARNING] Could not apply calibration: {e}") + + +def run_lekiwi(robot_config): + """ + Runs the LeKiwi robot: + - Sets up cameras and connects them. + - Initializes the follower arm motors. + - Calibrates the follower arm if necessary. + - Creates ZeroMQ sockets for receiving commands and streaming observations. + - Processes incoming commands (arm and wheel commands) and sends back sensor and camera data. + """ + # Import helper functions and classes + from lerobot.common.robot_devices.cameras.utils import make_cameras_from_configs + from lerobot.common.robot_devices.motors.feetech import FeetechMotorsBus, TorqueMode + + # Initialize cameras from the robot configuration. + cameras = make_cameras_from_configs(robot_config.cameras) + for cam in cameras.values(): + cam.connect() + + # Initialize the motors bus using the follower arm configuration. + motor_config = robot_config.follower_arms.get("main") + if motor_config is None: + print("[ERROR] Follower arm 'main' configuration not found.") + return + motors_bus = FeetechMotorsBus(motor_config) + motors_bus.connect() + + # Calibrate the follower arm. + calibrate_follower_arm(motors_bus, robot_config.calibration_dir) + + # Create the LeKiwi robot instance. + robot = LeKiwi(motors_bus) + + # Define the expected arm motor IDs. + arm_motor_ids = ["shoulder_pan", "shoulder_lift", "elbow_flex", "wrist_flex", "wrist_roll", "gripper"] + + # Disable torque for each arm motor. + for motor in arm_motor_ids: + motors_bus.write("Torque_Enable", TorqueMode.DISABLED.value, motor) + + # Set up ZeroMQ sockets. + context, cmd_socket, video_socket = setup_zmq_sockets(robot_config) + + # Start the camera capture thread. + latest_images_dict = {} + images_lock = threading.Lock() + stop_event = threading.Event() + cam_thread = threading.Thread( + target=run_camera_capture, args=(cameras, images_lock, latest_images_dict, stop_event), daemon=True + ) + cam_thread.start() + + last_cmd_time = time.time() + print("LeKiwi robot server started. Waiting for commands...") + + try: + while True: + loop_start_time = time.time() + + # Process incoming commands (non-blocking). + while True: + try: + msg = cmd_socket.recv_string(zmq.NOBLOCK) + except zmq.Again: + break + try: + data = json.loads(msg) + # Process arm position commands. + if "arm_positions" in data: + arm_positions = data["arm_positions"] + if not isinstance(arm_positions, list): + print(f"[ERROR] Invalid arm_positions: {arm_positions}") + elif len(arm_positions) < len(arm_motor_ids): + print( + f"[WARNING] Received {len(arm_positions)} arm positions, expected {len(arm_motor_ids)}" + ) + else: + for motor, pos in zip(arm_motor_ids, arm_positions, strict=False): + motors_bus.write("Goal_Position", pos, motor) + # Process wheel (base) commands. + if "raw_velocity" in data: + raw_command = data["raw_velocity"] + # Expect keys: "left_wheel", "back_wheel", "right_wheel". + command_speeds = [ + int(raw_command.get("left_wheel", 0)), + int(raw_command.get("back_wheel", 0)), + int(raw_command.get("right_wheel", 0)), + ] + robot.set_velocity(command_speeds) + last_cmd_time = time.time() + except Exception as e: + print(f"[ERROR] Parsing message failed: {e}") + + # Watchdog: stop the robot if no command is received for over 0.5 seconds. + now = time.time() + if now - last_cmd_time > 0.5: + robot.stop() + last_cmd_time = now + + # Read current wheel speeds from the robot. + current_velocity = robot.read_velocity() + + # Read the follower arm state from the motors bus. + follower_arm_state = [] + for motor in arm_motor_ids: + try: + pos = motors_bus.read("Present_Position", motor) + # Convert the position to a float (or use as is if already numeric). + follower_arm_state.append(float(pos) if not isinstance(pos, (int, float)) else pos) + except Exception as e: + print(f"[ERROR] Reading motor {motor} failed: {e}") + + # Get the latest camera images. + with images_lock: + images_dict_copy = dict(latest_images_dict) + + # Build the observation dictionary. + observation = { + "images": images_dict_copy, + "present_speed": current_velocity, + "follower_arm_state": follower_arm_state, + } + # Send the observation over the video socket. + video_socket.send_string(json.dumps(observation)) + + # Ensure a short sleep to avoid overloading the CPU. + elapsed = time.time() - loop_start_time + time.sleep( + max(0.033 - elapsed, 0) + ) # If robot jitters increase the sleep and monitor cpu load with `top` in cmd + except KeyboardInterrupt: + print("Shutting down LeKiwi server.") + finally: + stop_event.set() + cam_thread.join() + robot.stop() + motors_bus.disconnect() + cmd_socket.close() + video_socket.close() + context.term() diff --git a/lerobot/common/robot_devices/robots/manipulator.py b/lerobot/common/robot_devices/robots/manipulator.py index e7f7cbb1..9c82d069 100644 --- a/lerobot/common/robot_devices/robots/manipulator.py +++ b/lerobot/common/robot_devices/robots/manipulator.py @@ -229,7 +229,7 @@ class ManipulatorRobot: if self.robot_type in ["koch", "koch_bimanual", "aloha"]: from lerobot.common.robot_devices.motors.dynamixel import TorqueMode - elif self.robot_type in ["so100", "moss"]: + elif self.robot_type in ["so100", "moss", "lekiwi"]: from lerobot.common.robot_devices.motors.feetech import TorqueMode # We assume that at connection time, arms are in a rest position, and torque can @@ -246,7 +246,7 @@ class ManipulatorRobot: self.set_koch_robot_preset() elif self.robot_type == "aloha": self.set_aloha_robot_preset() - elif self.robot_type in ["so100", "moss"]: + elif self.robot_type in ["so100", "moss", "lekiwi"]: self.set_so100_robot_preset() # Enable torque on all motors of the follower arms @@ -299,7 +299,7 @@ class ManipulatorRobot: calibration = run_arm_calibration(arm, self.robot_type, name, arm_type) - elif self.robot_type in ["so100", "moss"]: + elif self.robot_type in ["so100", "moss", "lekiwi"]: from lerobot.common.robot_devices.robots.feetech_calibration import ( run_arm_manual_calibration, ) diff --git a/lerobot/common/robot_devices/robots/mobile_manipulator.py b/lerobot/common/robot_devices/robots/mobile_manipulator.py new file mode 100644 index 00000000..b20c61f7 --- /dev/null +++ b/lerobot/common/robot_devices/robots/mobile_manipulator.py @@ -0,0 +1,691 @@ +import base64 +import json +import os +import sys +from pathlib import Path + +import cv2 +import numpy as np +import torch +import zmq + +from lerobot.common.robot_devices.cameras.utils import make_cameras_from_configs +from lerobot.common.robot_devices.motors.feetech import TorqueMode +from lerobot.common.robot_devices.motors.utils import MotorsBus, make_motors_buses_from_configs +from lerobot.common.robot_devices.robots.configs import LeKiwiRobotConfig +from lerobot.common.robot_devices.robots.feetech_calibration import run_arm_manual_calibration +from lerobot.common.robot_devices.robots.utils import get_arm_id +from lerobot.common.robot_devices.utils import RobotDeviceNotConnectedError + +PYNPUT_AVAILABLE = True +try: + # Only import if there's a valid X server or if we're not on a Pi + if ("DISPLAY" not in os.environ) and ("linux" in sys.platform): + print("No DISPLAY set. Skipping pynput import.") + raise ImportError("pynput blocked intentionally due to no display.") + + from pynput import keyboard +except ImportError: + keyboard = None + PYNPUT_AVAILABLE = False +except Exception as e: + keyboard = None + PYNPUT_AVAILABLE = False + print(f"Could not import pynput: {e}") + + +class MobileManipulator: + """ + MobileManipulator is a class for connecting to and controlling a remote mobile manipulator robot. + The robot includes a three omniwheel mobile base and a remote follower arm. + The leader arm is connected locally (on the laptop) and its joint positions are recorded and then + forwarded to the remote follower arm (after applying a safety clamp). + In parallel, keyboard teleoperation is used to generate raw velocity commands for the wheels. + """ + + def __init__(self, config: LeKiwiRobotConfig): + """ + Expected keys in config: + - ip, port, video_port for the remote connection. + - calibration_dir, leader_arms, follower_arms, max_relative_target, etc. + """ + self.robot_type = config.type + self.config = config + self.remote_ip = config.ip + self.remote_port = config.port + self.remote_port_video = config.video_port + self.calibration_dir = Path(self.config.calibration_dir) + self.logs = {} + + self.teleop_keys = self.config.teleop_keys + + # For teleoperation, the leader arm (local) is used to record the desired arm pose. + self.leader_arms = make_motors_buses_from_configs(self.config.leader_arms) + + self.follower_arms = make_motors_buses_from_configs(self.config.follower_arms) + + self.cameras = make_cameras_from_configs(self.config.cameras) + + self.is_connected = False + + self.last_frames = {} + self.last_present_speed = {} + self.last_remote_arm_state = torch.zeros(6, dtype=torch.float32) + + # Define three speed levels and a current index + self.speed_levels = [ + {"xy": 0.1, "theta": 30}, # slow + {"xy": 0.2, "theta": 60}, # medium + {"xy": 0.3, "theta": 90}, # fast + ] + self.speed_index = 0 # Start at slow + + # ZeroMQ context and sockets. + self.context = None + self.cmd_socket = None + self.video_socket = None + + # Keyboard state for base teleoperation. + self.running = True + self.pressed_keys = { + "forward": False, + "backward": False, + "left": False, + "right": False, + "rotate_left": False, + "rotate_right": False, + } + + if PYNPUT_AVAILABLE: + print("pynput is available - enabling local keyboard listener.") + self.listener = keyboard.Listener( + on_press=self.on_press, + on_release=self.on_release, + ) + self.listener.start() + else: + print("pynput not available - skipping local keyboard listener.") + self.listener = None + + def get_motor_names(self, arms: dict[str, MotorsBus]) -> list: + return [f"{arm}_{motor}" for arm, bus in arms.items() for motor in bus.motors] + + @property + def camera_features(self) -> dict: + cam_ft = {} + for cam_key, cam in self.cameras.items(): + key = f"observation.images.{cam_key}" + cam_ft[key] = { + "shape": (cam.height, cam.width, cam.channels), + "names": ["height", "width", "channels"], + "info": None, + } + return cam_ft + + @property + def motor_features(self) -> dict: + follower_arm_names = [ + "shoulder_pan", + "shoulder_lift", + "elbow_flex", + "wrist_flex", + "wrist_roll", + "gripper", + ] + observations = ["x_mm", "y_mm", "theta"] + combined_names = follower_arm_names + observations + return { + "action": { + "dtype": "float32", + "shape": (len(combined_names),), + "names": combined_names, + }, + "observation.state": { + "dtype": "float32", + "shape": (len(combined_names),), + "names": combined_names, + }, + } + + @property + def features(self): + return {**self.motor_features, **self.camera_features} + + @property + def has_camera(self): + return len(self.cameras) > 0 + + @property + def num_cameras(self): + return len(self.cameras) + + @property + def available_arms(self): + available = [] + for name in self.leader_arms: + available.append(get_arm_id(name, "leader")) + for name in self.follower_arms: + available.append(get_arm_id(name, "follower")) + return available + + def on_press(self, key): + try: + # Movement + if key.char == self.teleop_keys["forward"]: + self.pressed_keys["forward"] = True + elif key.char == self.teleop_keys["backward"]: + self.pressed_keys["backward"] = True + elif key.char == self.teleop_keys["left"]: + self.pressed_keys["left"] = True + elif key.char == self.teleop_keys["right"]: + self.pressed_keys["right"] = True + elif key.char == self.teleop_keys["rotate_left"]: + self.pressed_keys["rotate_left"] = True + elif key.char == self.teleop_keys["rotate_right"]: + self.pressed_keys["rotate_right"] = True + + # Quit teleoperation + elif key.char == self.teleop_keys["quit"]: + self.running = False + return False + + # Speed control + elif key.char == self.teleop_keys["speed_up"]: + self.speed_index = min(self.speed_index + 1, 2) + print(f"Speed index increased to {self.speed_index}") + elif key.char == self.teleop_keys["speed_down"]: + self.speed_index = max(self.speed_index - 1, 0) + print(f"Speed index decreased to {self.speed_index}") + + except AttributeError: + # e.g., if key is special like Key.esc + if key == keyboard.Key.esc: + self.running = False + return False + + def on_release(self, key): + try: + if hasattr(key, "char"): + if key.char == self.teleop_keys["forward"]: + self.pressed_keys["forward"] = False + elif key.char == self.teleop_keys["backward"]: + self.pressed_keys["backward"] = False + elif key.char == self.teleop_keys["left"]: + self.pressed_keys["left"] = False + elif key.char == self.teleop_keys["right"]: + self.pressed_keys["right"] = False + elif key.char == self.teleop_keys["rotate_left"]: + self.pressed_keys["rotate_left"] = False + elif key.char == self.teleop_keys["rotate_right"]: + self.pressed_keys["rotate_right"] = False + except AttributeError: + pass + + def connect(self): + if not self.leader_arms: + raise ValueError("MobileManipulator has no leader arm to connect.") + for name in self.leader_arms: + print(f"Connecting {name} leader arm.") + self.calibrate_leader() + + # Set up ZeroMQ sockets to communicate with the remote mobile robot. + self.context = zmq.Context() + self.cmd_socket = self.context.socket(zmq.PUSH) + connection_string = f"tcp://{self.remote_ip}:{self.remote_port}" + self.cmd_socket.connect(connection_string) + self.cmd_socket.setsockopt(zmq.CONFLATE, 1) + self.video_socket = self.context.socket(zmq.PULL) + video_connection = f"tcp://{self.remote_ip}:{self.remote_port_video}" + self.video_socket.connect(video_connection) + self.video_socket.setsockopt(zmq.CONFLATE, 1) + print( + f"[INFO] Connected to remote robot at {connection_string} and video stream at {video_connection}." + ) + self.is_connected = True + + def load_or_run_calibration_(self, name, arm, arm_type): + arm_id = get_arm_id(name, arm_type) + arm_calib_path = self.calibration_dir / f"{arm_id}.json" + + if arm_calib_path.exists(): + with open(arm_calib_path) as f: + calibration = json.load(f) + else: + print(f"Missing calibration file '{arm_calib_path}'") + calibration = run_arm_manual_calibration(arm, self.robot_type, name, arm_type) + print(f"Calibration is done! Saving calibration file '{arm_calib_path}'") + arm_calib_path.parent.mkdir(parents=True, exist_ok=True) + with open(arm_calib_path, "w") as f: + json.dump(calibration, f) + + return calibration + + def calibrate_leader(self): + for name, arm in self.leader_arms.items(): + # Connect the bus + arm.connect() + + # Disable torque on all motors + for motor_id in arm.motors: + arm.write("Torque_Enable", TorqueMode.DISABLED.value, motor_id) + + # Now run calibration + calibration = self.load_or_run_calibration_(name, arm, "leader") + arm.set_calibration(calibration) + + def calibrate_follower(self): + for name, bus in self.follower_arms.items(): + bus.connect() + + # Disable torque on all motors + for motor_id in bus.motors: + bus.write("Torque_Enable", 0, motor_id) + + # Then filter out wheels + arm_only_dict = {k: v for k, v in bus.motors.items() if not k.startswith("wheel_")} + if not arm_only_dict: + continue + + original_motors = bus.motors + bus.motors = arm_only_dict + + calibration = self.load_or_run_calibration_(name, bus, "follower") + bus.set_calibration(calibration) + + bus.motors = original_motors + + def _get_data(self): + """ + Polls the video socket for up to 15 ms. If data arrives, decode only + the *latest* message, returning frames, speed, and arm state. If + nothing arrives for any field, use the last known values. + """ + frames = {} + present_speed = {} + remote_arm_state_tensor = torch.zeros(6, dtype=torch.float32) + + # Poll up to 15 ms + poller = zmq.Poller() + poller.register(self.video_socket, zmq.POLLIN) + socks = dict(poller.poll(15)) + if self.video_socket not in socks or socks[self.video_socket] != zmq.POLLIN: + # No new data arrived → reuse ALL old data + return (self.last_frames, self.last_present_speed, self.last_remote_arm_state) + + # Drain all messages, keep only the last + last_msg = None + while True: + try: + obs_string = self.video_socket.recv_string(zmq.NOBLOCK) + last_msg = obs_string + except zmq.Again: + break + + if not last_msg: + # No new message → also reuse old + return (self.last_frames, self.last_present_speed, self.last_remote_arm_state) + + # Decode only the final message + try: + observation = json.loads(last_msg) + + images_dict = observation.get("images", {}) + new_speed = observation.get("present_speed", {}) + new_arm_state = observation.get("follower_arm_state", None) + + # Convert images + for cam_name, image_b64 in images_dict.items(): + if image_b64: + jpg_data = base64.b64decode(image_b64) + np_arr = np.frombuffer(jpg_data, dtype=np.uint8) + frame_candidate = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) + if frame_candidate is not None: + frames[cam_name] = frame_candidate + + # If remote_arm_state is None and frames is None there is no message then use the previous message + if new_arm_state is not None and frames is not None: + self.last_frames = frames + + remote_arm_state_tensor = torch.tensor(new_arm_state, dtype=torch.float32) + self.last_remote_arm_state = remote_arm_state_tensor + + present_speed = new_speed + self.last_present_speed = new_speed + else: + frames = self.last_frames + + remote_arm_state_tensor = self.last_remote_arm_state + + present_speed = self.last_present_speed + + except Exception as e: + print(f"[DEBUG] Error decoding video message: {e}") + # If decode fails, fall back to old data + return (self.last_frames, self.last_present_speed, self.last_remote_arm_state) + + return frames, present_speed, remote_arm_state_tensor + + def _process_present_speed(self, present_speed: dict) -> torch.Tensor: + state_tensor = torch.zeros(3, dtype=torch.int32) + if present_speed: + decoded = {key: MobileManipulator.raw_to_degps(value) for key, value in present_speed.items()} + if "1" in decoded: + state_tensor[0] = decoded["1"] + if "2" in decoded: + state_tensor[1] = decoded["2"] + if "3" in decoded: + state_tensor[2] = decoded["3"] + return state_tensor + + def teleop_step( + self, record_data: bool = False + ) -> None | tuple[dict[str, torch.Tensor], dict[str, torch.Tensor]]: + if not self.is_connected: + raise RobotDeviceNotConnectedError("MobileManipulator is not connected. Run `connect()` first.") + + speed_setting = self.speed_levels[self.speed_index] + xy_speed = speed_setting["xy"] # e.g. 0.1, 0.25, or 0.4 + theta_speed = speed_setting["theta"] # e.g. 30, 60, or 90 + + # Prepare to assign the position of the leader to the follower + arm_positions = [] + for name in self.leader_arms: + pos = self.leader_arms[name].read("Present_Position") + pos_tensor = torch.from_numpy(pos).float() + # Instead of pos_tensor.item(), use tolist() to convert the entire tensor to a list + arm_positions.extend(pos_tensor.tolist()) + + # (The rest of your code for generating wheel commands remains unchanged) + x_cmd = 0.0 # m/s forward/backward + y_cmd = 0.0 # m/s lateral + theta_cmd = 0.0 # deg/s rotation + if self.pressed_keys["forward"]: + x_cmd += xy_speed + if self.pressed_keys["backward"]: + x_cmd -= xy_speed + if self.pressed_keys["left"]: + y_cmd += xy_speed + if self.pressed_keys["right"]: + y_cmd -= xy_speed + if self.pressed_keys["rotate_left"]: + theta_cmd += theta_speed + if self.pressed_keys["rotate_right"]: + theta_cmd -= theta_speed + + wheel_commands = self.body_to_wheel_raw(x_cmd, y_cmd, theta_cmd) + + message = {"raw_velocity": wheel_commands, "arm_positions": arm_positions} + self.cmd_socket.send_string(json.dumps(message)) + + if not record_data: + return + + obs_dict = self.capture_observation() + + arm_state_tensor = torch.tensor(arm_positions, dtype=torch.float32) + + wheel_velocity_tuple = self.wheel_raw_to_body(wheel_commands) + wheel_velocity_mm = ( + wheel_velocity_tuple[0] * 1000.0, + wheel_velocity_tuple[1] * 1000.0, + wheel_velocity_tuple[2], + ) + wheel_tensor = torch.tensor(wheel_velocity_mm, dtype=torch.float32) + action_tensor = torch.cat([arm_state_tensor, wheel_tensor]) + action_dict = {"action": action_tensor} + + return obs_dict, action_dict + + def capture_observation(self) -> dict: + """ + Capture observations from the remote robot: current follower arm positions, + present wheel speeds (converted to body-frame velocities: x, y, theta), + and a camera frame. + """ + if not self.is_connected: + raise RobotDeviceNotConnectedError("Not connected. Run `connect()` first.") + + frames, present_speed, remote_arm_state_tensor = self._get_data() + + body_state = self.wheel_raw_to_body(present_speed) + + body_state_mm = (body_state[0] * 1000.0, body_state[1] * 1000.0, body_state[2]) # Convert x,y to mm/s + wheel_state_tensor = torch.tensor(body_state_mm, dtype=torch.float32) + combined_state_tensor = torch.cat((remote_arm_state_tensor, wheel_state_tensor), dim=0) + + obs_dict = {"observation.state": combined_state_tensor} + + # Loop over each configured camera + for cam_name, cam in self.cameras.items(): + frame = frames.get(cam_name, None) + if frame is None: + # Create a black image using the camera's configured width, height, and channels + frame = np.zeros((cam.height, cam.width, cam.channels), dtype=np.uint8) + obs_dict[f"observation.images.{cam_name}"] = torch.from_numpy(frame) + + return obs_dict + + def send_action(self, action: torch.Tensor) -> torch.Tensor: + if not self.is_connected: + raise RobotDeviceNotConnectedError("Not connected. Run `connect()` first.") + + # Ensure the action tensor has at least 9 elements: + # - First 6: arm positions. + # - Last 3: base commands. + if action.numel() < 9: + # Pad with zeros if there are not enough elements. + padded = torch.zeros(9, dtype=action.dtype) + padded[: action.numel()] = action + action = padded + + # Extract arm and base actions. + arm_actions = action[:6].flatten() + base_actions = action[6:].flatten() + + x_cmd_mm = base_actions[0].item() # mm/s + y_cmd_mm = base_actions[1].item() # mm/s + theta_cmd = base_actions[2].item() # deg/s + + # Convert mm/s to m/s for the kinematics calculations. + x_cmd = x_cmd_mm / 1000.0 # m/s + y_cmd = y_cmd_mm / 1000.0 # m/s + + # Compute wheel commands from body commands. + wheel_commands = self.body_to_wheel_raw(x_cmd, y_cmd, theta_cmd) + + arm_positions_list = arm_actions.tolist() + + message = {"raw_velocity": wheel_commands, "arm_positions": arm_positions_list} + self.cmd_socket.send_string(json.dumps(message)) + + return action + + def print_logs(self): + pass + + def disconnect(self): + if not self.is_connected: + raise RobotDeviceNotConnectedError("Not connected.") + if self.cmd_socket: + stop_cmd = { + "raw_velocity": {"left_wheel": 0, "back_wheel": 0, "right_wheel": 0}, + "arm_positions": {}, + } + self.cmd_socket.send_string(json.dumps(stop_cmd)) + self.cmd_socket.close() + if self.video_socket: + self.video_socket.close() + if self.context: + self.context.term() + if PYNPUT_AVAILABLE: + self.listener.stop() + self.is_connected = False + print("[INFO] Disconnected from remote robot.") + + def __del__(self): + if getattr(self, "is_connected", False): + self.disconnect() + if PYNPUT_AVAILABLE: + self.listener.stop() + + @staticmethod + def degps_to_raw(degps: float) -> int: + steps_per_deg = 4096.0 / 360.0 + speed_in_steps = abs(degps) * steps_per_deg + speed_int = int(round(speed_in_steps)) + if speed_int > 0x7FFF: + speed_int = 0x7FFF + if degps < 0: + return speed_int | 0x8000 + else: + return speed_int & 0x7FFF + + @staticmethod + def raw_to_degps(raw_speed: int) -> float: + steps_per_deg = 4096.0 / 360.0 + magnitude = raw_speed & 0x7FFF + degps = magnitude / steps_per_deg + if raw_speed & 0x8000: + degps = -degps + return degps + + def body_to_wheel_raw( + self, + x_cmd: float, + y_cmd: float, + theta_cmd: float, + wheel_radius: float = 0.05, + base_radius: float = 0.125, + max_raw: int = 3000, + ) -> dict: + """ + Convert desired body-frame velocities into wheel raw commands. + + Parameters: + x_cmd : Linear velocity in x (m/s). + y_cmd : Linear velocity in y (m/s). + theta_cmd : Rotational velocity (deg/s). + wheel_radius: Radius of each wheel (meters). + base_radius : Distance from the center of rotation to each wheel (meters). + max_raw : Maximum allowed raw command (ticks) per wheel. + + Returns: + A dictionary with wheel raw commands: + {"left_wheel": value, "back_wheel": value, "right_wheel": value}. + + Notes: + - Internally, the method converts theta_cmd to rad/s for the kinematics. + - The raw command is computed from the wheels angular speed in deg/s + using degps_to_raw(). If any command exceeds max_raw, all commands + are scaled down proportionally. + """ + # Convert rotational velocity from deg/s to rad/s. + theta_rad = theta_cmd * (np.pi / 180.0) + # Create the body velocity vector [x, y, theta_rad]. + velocity_vector = np.array([x_cmd, y_cmd, theta_rad]) + + # Define the wheel mounting angles with a -90° offset. + angles = np.radians(np.array([240, 120, 0]) - 90) + # Build the kinematic matrix: each row maps body velocities to a wheel’s linear speed. + # The third column (base_radius) accounts for the effect of rotation. + m = np.array([[np.cos(a), np.sin(a), base_radius] for a in angles]) + + # Compute each wheel’s linear speed (m/s) and then its angular speed (rad/s). + wheel_linear_speeds = m.dot(velocity_vector) + wheel_angular_speeds = wheel_linear_speeds / wheel_radius + + # Convert wheel angular speeds from rad/s to deg/s. + wheel_degps = wheel_angular_speeds * (180.0 / np.pi) + + # Scaling + steps_per_deg = 4096.0 / 360.0 + raw_floats = [abs(degps) * steps_per_deg for degps in wheel_degps] + max_raw_computed = max(raw_floats) + if max_raw_computed > max_raw: + scale = max_raw / max_raw_computed + wheel_degps = wheel_degps * scale + + # Convert each wheel’s angular speed (deg/s) to a raw integer. + wheel_raw = [MobileManipulator.degps_to_raw(deg) for deg in wheel_degps] + + return {"left_wheel": wheel_raw[0], "back_wheel": wheel_raw[1], "right_wheel": wheel_raw[2]} + + def wheel_raw_to_body( + self, wheel_raw: dict, wheel_radius: float = 0.05, base_radius: float = 0.125 + ) -> tuple: + """ + Convert wheel raw command feedback back into body-frame velocities. + + Parameters: + wheel_raw : Dictionary with raw wheel commands (keys: "left_wheel", "back_wheel", "right_wheel"). + wheel_radius: Radius of each wheel (meters). + base_radius : Distance from the robot center to each wheel (meters). + + Returns: + A tuple (x_cmd, y_cmd, theta_cmd) where: + x_cmd : Linear velocity in x (m/s). + y_cmd : Linear velocity in y (m/s). + theta_cmd : Rotational velocity in deg/s. + """ + # Extract the raw values in order. + raw_list = [ + int(wheel_raw.get("left_wheel", 0)), + int(wheel_raw.get("back_wheel", 0)), + int(wheel_raw.get("right_wheel", 0)), + ] + + # Convert each raw command back to an angular speed in deg/s. + wheel_degps = np.array([MobileManipulator.raw_to_degps(r) for r in raw_list]) + # Convert from deg/s to rad/s. + wheel_radps = wheel_degps * (np.pi / 180.0) + # Compute each wheel’s linear speed (m/s) from its angular speed. + wheel_linear_speeds = wheel_radps * wheel_radius + + # Define the wheel mounting angles with a -90° offset. + angles = np.radians(np.array([240, 120, 0]) - 90) + m = np.array([[np.cos(a), np.sin(a), base_radius] for a in angles]) + + # Solve the inverse kinematics: body_velocity = M⁻¹ · wheel_linear_speeds. + m_inv = np.linalg.inv(m) + velocity_vector = m_inv.dot(wheel_linear_speeds) + x_cmd, y_cmd, theta_rad = velocity_vector + theta_cmd = theta_rad * (180.0 / np.pi) + return (x_cmd, y_cmd, theta_cmd) + + +class LeKiwi: + def __init__(self, motor_bus): + """ + Initializes the LeKiwi with Feetech motors bus. + """ + self.motor_bus = motor_bus + self.motor_ids = ["left_wheel", "back_wheel", "right_wheel"] + + # Initialize motors in velocity mode. + self.motor_bus.write("Lock", 0) + self.motor_bus.write("Mode", [1, 1, 1], self.motor_ids) + self.motor_bus.write("Lock", 1) + print("Motors set to velocity mode.") + + def read_velocity(self): + """ + Reads the raw speeds for all wheels. Returns a dictionary with motor names: + """ + raw_speeds = self.motor_bus.read("Present_Speed", self.motor_ids) + return { + "left_wheel": int(raw_speeds[0]), + "back_wheel": int(raw_speeds[1]), + "right_wheel": int(raw_speeds[2]), + } + + def set_velocity(self, command_speeds): + """ + Sends raw velocity commands (16-bit encoded values) directly to the motor bus. + The order of speeds must correspond to self.motor_ids. + """ + self.motor_bus.write("Goal_Speed", command_speeds, self.motor_ids) + + def stop(self): + """Stops the robot by setting all motor speeds to zero.""" + self.motor_bus.write("Goal_Speed", [0, 0, 0], self.motor_ids) + print("Motors stopped.") diff --git a/lerobot/common/robot_devices/robots/utils.py b/lerobot/common/robot_devices/robots/utils.py index 86ff6473..47e2519b 100644 --- a/lerobot/common/robot_devices/robots/utils.py +++ b/lerobot/common/robot_devices/robots/utils.py @@ -4,6 +4,7 @@ from lerobot.common.robot_devices.robots.configs import ( AlohaRobotConfig, KochBimanualRobotConfig, KochRobotConfig, + LeKiwiRobotConfig, ManipulatorRobotConfig, MossRobotConfig, RobotConfig, @@ -45,6 +46,8 @@ def make_robot_config(robot_type: str, **kwargs) -> RobotConfig: return So100RobotConfig(**kwargs) elif robot_type == "stretch": return StretchRobotConfig(**kwargs) + elif robot_type == "lekiwi": + return LeKiwiRobotConfig(**kwargs) else: raise ValueError(f"Robot type '{robot_type}' is not available.") @@ -54,6 +57,10 @@ def make_robot_from_config(config: RobotConfig): from lerobot.common.robot_devices.robots.manipulator import ManipulatorRobot return ManipulatorRobot(config) + elif isinstance(config, LeKiwiRobotConfig): + from lerobot.common.robot_devices.robots.mobile_manipulator import MobileManipulator + + return MobileManipulator(config) else: from lerobot.common.robot_devices.robots.stretch import StretchRobot diff --git a/lerobot/scripts/control_robot.py b/lerobot/scripts/control_robot.py index 3fdb0acc..9129c9e3 100644 --- a/lerobot/scripts/control_robot.py +++ b/lerobot/scripts/control_robot.py @@ -77,6 +77,13 @@ python lerobot/scripts/control_robot.py record \ --control.reset_time_s=10 ``` +- For remote controlled robots like LeKiwi, run this script on the robot edge device (e.g. RaspBerryPi): +```bash +python lerobot/scripts/control_robot.py \ + --robot.type=lekiwi \ + --control.type=remote_robot +``` + **NOTE**: You can use your keyboard to control data recording flow. - Tap right arrow key '->' to early exit while recording an episode and go to resseting the environment. - Tap right arrow key '->' to early exit while resetting the environment and got to recording the next episode. @@ -127,6 +134,7 @@ from lerobot.common.robot_devices.control_configs import ( CalibrateControlConfig, ControlPipelineConfig, RecordControlConfig, + RemoteRobotConfig, ReplayControlConfig, TeleoperateControlConfig, ) @@ -188,6 +196,16 @@ def calibrate(robot: Robot, cfg: CalibrateControlConfig): if robot.is_connected: robot.disconnect() + if robot.robot_type.startswith("lekiwi") and "main_follower" in arms: + print("Calibrating only the lekiwi follower arm 'main_follower'...") + robot.calibrate_follower() + return + + if robot.robot_type.startswith("lekiwi") and "main_leader" in arms: + print("Calibrating only the lekiwi leader arm 'main_leader'...") + robot.calibrate_leader() + return + # Calling `connect` automatically runs calibration # when the calibration file is missing robot.connect() @@ -357,6 +375,10 @@ def control_robot(cfg: ControlPipelineConfig): record(robot, cfg.control) elif isinstance(cfg.control, ReplayControlConfig): replay(robot, cfg.control) + elif isinstance(cfg.control, RemoteRobotConfig): + from lerobot.common.robot_devices.robots.lekiwi_remote import run_lekiwi + + run_lekiwi(cfg.robot) if robot.is_connected: # Disconnect manually to avoid a "Core dump" during process diff --git a/media/lekiwi/mobile_calib_rest.webp b/media/lekiwi/mobile_calib_rest.webp new file mode 100644 index 0000000000000000000000000000000000000000..a8f383da0548a893ed9bddfce07c254ea3b5d278 GIT binary patch literal 225678 zcmV(#K;*wtNk&G7aRUHXMM6+kP&goZaRUJGc@CWcDgXum2tI8zmPsTcq9~&jInfXe ziDzq+j9Z@=|Jz1Cd;ias7s2m-R)77)^OF9hsQ2pe{G8tZ|Md;yKtH)1?=b!2&K_J_ zZ;P5?Ce_0L@u%7Q zn)pBCzYsoQ_|Nn|^?%0v*Z-%^KZXCn=J(X!`@hb6CI7wqW$&x`7y6(5-|0Vp{)WGh ze`x=o{v-TX?T6D3{C~LL5&w4mZT{N+r3h1>Hgh$Bl~`PJm-=6?J?Z9S3unEc=J z-@Kpa{&|1J|C8?1*+1Doy8p-ir}E3>FY^!TKkI+Me(rya`A7br{U5hJa~zNFNBh5F z-+aE;{~!Es`cK-AkzV)zvG#-bulV2lztwyK|62a_|8M-CpJ$b)s(#~q1OHzCH~VAl zGylK*Px$}5-wc0W|8f7*{hz?E^e^t;_y5TMs`uyr|L;Hdd;kCbFNy!$kN^Mn$BI(p z|Axe)8F{ww9fv}~!XA<=@vsbuqo}#(y>j?JM-yYgbV9goB0OCAwnvg7fr(-Zrz!{| zu*||xZ4)S_P5WPcjp4kNgSR1AT4!;m8%iN{AA$S-}<;*YAh)yFOf$rI37 z5c#0j^O7Rx@oS&JV12YV4{U8uHxgcvd7}q!-r3x*R3I%JE_^wDB=^6TF$yV2jpq4i zFsCozb!XiKuEnzAs|7zRRJ0bCk+~+RMl4XsnIFS5z`+&Y9pSd~N~-ya|LepY@SDHu z=%5vTsjbAY=H|#N2>+=w0%c!k4q5(A0J}*=MBwxn^S=B`uJ)2G3q8z^nXI1GRP0^= zUcJ&Mz_lt9D-fA5S*xQwvZ zLkjzX4D8yO!A)0Nkw;M-@My`zICajU8g&kOjt1|qD0PKc0_ufH$MwagU5#P|=lc!X z%vA&Ehlkh_1;ef&WNuDt&*r8#w;-W=)T2BcKnl!UmLXe9R$+NT@Dpxe*V<&d5Cd{3 zO7dR*)f0Lbk?1vNRKxQ%?z4M+J*-p=>`O1y6u>^%OcV&@11Y1tY8>x2y{rGrGb-UC zQz3cB%8q7vQiq5e@kpvPd3D>tKk=p{2NYtjeiM#}pq;dt7`N)67M#ShD^p#pLhqD( z2)n9dX+iB7?s_df&GH-w+ce2hSpFoHDbn8>Sq(O+9gzm^92UBoLOit(<$gJ-&I3gp zD;s9l)Q$~fc(0qJZY^l}K0HHPS>_*+mkiLonC>$n z?cAL4B=O_to@Cdc0IhqsB=&^ie=bD}%VW;>k{pnp^`K}R|BaY=^2nyK+tOhG$sH=! zFkCLwGX(j>baojVnWA=5x@&qHZbCbLt1HJgYV^Cez^Yigg(Eskr*oc05`03Y1wB0P zDk5g%hOpf6t}xfJS9aIqk}p1&DEGC2Wp3;`I>S|Fi8soby*`xu#20!WUv0<{3{~jF z2C~%0$QDL=KsZ4Dong48w((kZ{;TO;O(fF15Q13uf=TSo?iRwbDs{LRMEPh6;?CLg z0Pw{H{EFT#MlLAj;CR?3Jb&ZHeC}{0yKql4c-rAL>uskx25j^`2B{RDKS!M(f zm8j;Im;;nqRd^(caA3`!XAZiZ@FaV_iIzXzGZWkN&@hRQxh-uNxC&|fH_+n^P0*k4 zlR+aKnf-j(?Y=C2<2w-kBl53W%3tfhA{|rw%iLunf7G#93L_a1>OHGek9&m$+*|`D zBate)==oi<_-tBL%>OR(HSc-T17l?~cK1J2fDECkkpsK-$2C-0?-Nv8(^|uVRXr5( zY{;S>pR)5wqA*_%gV4S>k%zW%E)t_~L0<8SH|hFm4}^d|fWCg21J8xF8uo->$!$Li zYr^E_$(a*E@}d>^Lx46_yy+g`g{lgyi`DT6^ZF(wcGSC8;Uyp{?Jn=49DH1m<2E-& zKf*k$nwnC{%{1_=)EFqCke*J>&;l(d(BEzQL<%OsB#~FGGN+$YE996aNEkWhtL%wq zm6Sf#5NgE5q(LK)2b?x3SRSrff|aW2jn8=~n}S`hro0DbP&BNXA5Q)qC1Q1E%~i%Q zf%A1Jws!beT@_5cNO9e^+x#oVcygJDUuQh+5ewQOxpfc^MedqQCg*PCZrtQ{5U}n21HosfSJ-22$1dLX93S5WeY%X88 z2K@~Q3wIu}kBRhDO0Iko$iZ_5McJ{bi1e87wGoLWI>E9M3(q_&AmB><83(0LEeU8N zEnQwhi(6#EG7LA!Qe%1s!+YgdNVpzT7q{u`l?8J3s`!ej{s&-J{YnZbkmjz!>QR5E zwP}4q=a}hpYrs3+5v&%x^-TOp_hdwh!ScCbhFFG^3ffUO0}m_uYUQ`;5ybrdz2(Ay z%6_$g)8wKr*rxbxWN?eqc`-5d(yPKl?d}5%22JX#NJYQZAHn2nh(TLv{+B=WledwW z^8|=Pj?~3*LcMY1=BuUpQ4sjJiB8<_v4@`L)hM5YHgbUYRX=CX>W;hgVvM1>%MB6IOk z(e?2SeE>Kv@=%`!cD_0CZYskfJfPYARJ}qGpq6`H*JOW2nO+8K3@5 z!th}tm78yQD_B&EHa@2rU0NuK?bTM}+*3b(F=blOH>PM?v=GY-%A>m6TYIsF^Mq@R znt>Z5df`;IvYzm8vQCH?yymh`5LV7p54pctA!WBxZi9sZ8jf*=cvYJV$WpKEr0kYiUue(1+rnle5ej#SQD&?!q7(J|Lqt1jsRr`;ga zhH5Ag%WP3<2oWd2A_Q&!%voCWNI;jHFm%@I84FAA+oVzkre|G{H+$-QDo-Mfje@sj zDniJ~UP?+SV)J;G*K1F9Lm_ZsZ3JX zv6RV?0Opa$<7p(;kt>eIi5Fv6cg$9V42Zm5CJ_#CT59{-!JK$FEDcIw9 zGov%|eN0?D6=fRXifiEpwqJ6z0}n*z=}0Sfp^6}C@QL8kU7A-TT%9`ytwjUz{#_iy zwE$9J6lT7q>9zP?ceNlv_Y-fO#DT4jVV1D4S8Fotr3T`EX%6S+6Dyh-3aiHd|j3AfsHRCm)oH$ z8*dzm?YDfCk0s#ZsO)KpSe9q#2{%3^OiV3g2=ztr8TEPWh7@R)TnRAO07d!h543ZA zrW~#rjhL61*kvrhy=(7ZjW~cGMtL)Kt9)u}`TqR7K0+GAWk2kG%Kcz1KVgjCqwvRd zK7zBMjO3@pkf;Y}b4$1uq@b*|Z}Pog-I%bFK(S$4kIlBz3>Zi2(Bb0xQ?aN5@Xf4( z_GUkpwSYEttw8l+R{eQH?;C7rP6O+{6fgFZ@&3B=a0|#b4v10Wj1~1W9lbOZ3Cn=g zupmZ3|5_*ZT1iQ*0#IMvZX~auG~IpaTV6R;779AYS`WxS`qvvJK@<6x+C^A81=kq* zA83xn%JA198&1r%ug~`}frV*Y735-iD~|Grd5S>Xvt3DP?piXwSznqOk(2zZa0z8V z1|;gQb`oXaV0iUehrZDbEo{ik3P=xj=yH?Pq^sxTgIX`S^Msqe8zUic+I@L~%5@my|HJenN+@2J zgRNRx+woh^@+Hph#hU=(b|>~-4TY>?TJsUSIYun06OWObPt16Q4I;AmrR)!u{v8;|4S5a zKyj=;B<`IRy^68`mk1w6hsQ+^ARdSg^johoztZ0zKgW_72@!dvNWxDP2rg`~%i)AU zIZ^W^wm?h*%$(@b6ab#&?nI=ltdu=U@Rr0sFNoyOwpNUQC>a8Q*#_V-Y?Otb z6?d^c@CpV&!@Niibucv&r)|S|MNuK_0;ADil~a$cN#V>_&I6ar@|&0q)ZrY+-J$_z+**~ z=J{XMqY&FWVeL#bw8edhU}PuZ5s#^fwYaE=t;BN8{#MGz?0|re%3dqCtJjmqylVN^ zXk1!`@!nXpA_kup=RXH8p7YN9@oudu$hg0b3Sp^Stje6l78QrAO^c2=*{MPLIKAmC z$WQf0iec6Xh#1)llaAjVNy>HXx--zbWYCpf{jF2(K+ERaf&Xlu6OJQO?{~WonR6iH z6c4JV))gefOca-b4aE9_1oKX$<4;B!g}_Zp66b}ohd4TDtfV+Kq;R~CL2asdPszX6 zaiY2eD7zlRCI9FL*&zX1>!edlU3g@YE4LM;QZk}awmDMoAwfHp6qNky3EM!QPg4i& z(vpmv7fmzJx6=Z{AevkaNXSpSC#VbIeO>Q^hK_@KI`G_M#+eytUO7uIgNkyh3B21r z);&=*Sj3zzx`2^$sayg7;3f!pQL4NylB9a)be03FDe@@9yL=W!zjX^n88gN#h3axy z9fbjT!uJ=%%bkKMoVT;MCdnjNFIKv%?)8N(9x{=m#G=A`}&U=iXMGMpTKMAnuom3Wo z=*56RQS{=j<0imD1~*2Q&6_3lKtrTqsfT4sYb@FiTjErE>*vLua>ZTzWNvp;Q3HEr zw($IhuUENHpjL6GHI^%3$w^(=5(DRuT?Cu`JKO7bsJ;q-m`3hU$7&m(igjxNU5pEy zld|KGnp$CUcc)t&<}@z8t`NN#o618#qoL$@be*(8IQC%`F$!NTbB_L#0SK&O;bc3^Pp z_Z<`nNW*$__U^?KrkL}A#=fNQmkha^_S!@N!bvfII)QqtOiv9Mp5n0>F2%Ta!d>sm zl;*b0$oe4_qcVC8a%@igeA)aBpIW=f#`Vqp zrQOP>&bK{;`iFSmVUbTmE3+8-yVoH-3R;b|oIf&nnOG5DO_jgt!jRkyeDqRC+*dZH z_?enwIg%FJ z^)K5%TGV?-lrTo>?-oEa+wN0iWNKUaEw|Byq%{!}<2o%rMujquaXpX}Ag;(n5apdG zxBWK+ER6iTv8?jnb(gnwe?3cCB9<%b6iW6J+fH_R+HjcJd?Irp2sh8dqC4h8{PcQ9 zR>CO6K!z_%l>8`6DkA@(pm$v)Mk@LxwL1U808<}VyPNU2g2^gb!@)hz$(_*&h%x|W<9Cq`(yj!m9;{Q(zq#?9li+w zJrOLAOCc_bYg&&L$Qc$6(VY$Vp*evE|A$k?N$ioA^e&X&{40x_K|>R{FPz-E`Tq1E@g{29nzLnh62`H?>`-WRW z`)~M9R)TBT#_=-yA(LKgzi_gYkotUKt}G$wGf7b;_N|Bze6JmA>)z;s=Sk7)Qd*yU2N2_dYn(iv-L{d0keHY~l?ee43Z*Wq}U22Qwk3c@B zjG=V{=aX$%+4=s(HOY${WGLVP5ziE%Q$hoK?AP3Y4)E%W5?MUcmQ#Bb|8mLx^++4-oj<7l~tF{s8&{Wk3(MU zRQe}?_HT?m`_!vJTCbq(XMBW8nTn+3LH@)cBbz zu(zqPT~)#aVhU(BgdKKhLAmWnS8-u%$1qRarD96I?C9qTw2`MO{2d5dCMJ#l8`Q0I zC8T((&b&SxL}gWoj5ly??FZUJ;Dc%7#Las%7Hspc$KRxxKPb$fEhV!r?3MH%n?NUk zTp;B)An=z9OIi*>2Kcp;jaE#u?}%a|kb0}yevz3+{>@aDIIaH_?WGSl)t7R=QIVN9K_+(OH%7JIN&v3 z((_bb;(?WMuOODdEU)Hd8)Dh5bp&{u1i8u5j7z*1+lQ~33ERfQaYAhTs=MxwZTYap49@_c)b0W>2 z#JdNpT8AuZAPm-|jU`dbQ|T=CJTxER4Z%LTw(EU-)MvhehW*Dsxm{!vgOGtSSZqtF zUY;nptNm~S=YqbPndu*$oUEm7ZPd_VfF3es9ba;X%pOADB-zRZxzjB*cQT5y z_W2spuqlU)RWOmJB2>sGvnV@Z_|B3&VKJcm#Up@hMhf03_g*j~@30X2hPi{=VYeC_ zJ>8*Id9S!sKkwfIhY&qYm^R@V;GRz>eR$IVDTm9Fpzi->IJ5xw)1*Tpr%=CK#rEO6 zLONFj(_02!C9*rAB_GSyddHv_))o~l@#9DZZ;ZD{LHX7m%MZD{$^#nDxEp) zr%qObQ6N$+xREOzFq8(;a>Qc(gPOS3=_fI}bI5g$S7*^%J0EAPnOQ1yLnRj0AvB+jT?0s(mB+SrMV>zoHd;Eg$!GpG<%L`raM zKW6R~)6;V|D<^od1?-*_nnse6Qvspt2&`ZI@}YAyJ;8|qD6a`Aao;zflhD*R%RCE} z%iLoa0jACFdf{;5?R}+%Ji_}xNw7u~$6m4g z%JRc*KYbKW;XG5SCQr3)F=EYgYcJeWZmRKFic*zqi?cK3$@Slu+LglYvt7ic%2Mg0 zUwH5O{dD7hl}R2)vKw_M=lI|1wnRR??gc|Oj`1A{tT2G-RbTrVrD!^s3V4^33TD-* zw=hYDRfq9VX>NjC@)(oyZ5iey{Iw@f)f;!ZP9(~l+Y~>e0s~H}w29d|&ec>vPRz(C zN$vIU6YuPPxzhTv5FK46_oI=7uJspUYC>V=)JphBZ7LJM8F0f}=>) zl;&R`i<};LUhk8O)tTvz)Eh{A`L)#b>C*{ZM!ib+vVElwb1uM9b-9*F>22#QzZUR{ z0Qa}0hjH<`4_N=ZD-9BgP&+VK*Vc=csFAY|>w2CJs`T!ki}vc86hV9q8{~1MTEd@(ZR96grL$62;*bHd}JFDE zV#&>POHpuZKengkj2%wOjMjRNJS_t-AG1qy z?rHknCw>d?+~ewB?A^boX6S@$r-`iq>V(h@L;2T$&;tXs&=I{MFG9E*p`uaaOHwsg~4jyLn6abeJ_W0?m5_28KKnaL?8@d}W|U!3gFqms++ zq-5mx9J>gmW(e+V5Mh;%lr-Mm4)J*Ues{?)8^nD0m4ud?p!`y~2OM+yu3jYbx`V1A(C9RE<1V#e9DsBFM_>vn(u7R&tL zh_R?#_$^{X#v8M}IDWdz9<5x5kC3T@$1+@w>=`vO>1GpHGjUHv=|mxh{hEjhB3TIr zd_TR*K>#$;FtA;n?nOZl?K;&|1VDlpi-B}BTR_YU4o$EuPHGG#(#`3POK)*Jza*U_ z##({N+j4-DxSI2_X7e7s(;4x7YF%)itN+BdWwsD?Wp3%JgNo63dFpn|nTMFLz;8yxIe$6$N{Id&)iCYoQouV0Cvj zZY-(`nfX!OTL&eRuEr6ARAaH!>rLEiP1~;TK}v_+PH94z&|kfZz1>EpE3I0`uA*y= z&Oy@4FTzkhSw6}Y-SuWFgQI18pYZsx4th(yPX3mJT_8AuvP@N}h%$x%N9_~{Xw8Mua>670yvZ}+)njq1?0{y>g5{ zxd3o?bIc%>$WA^H5b4hVF*+HgaF2#`Y&4$H3S%;OY<2@K-|%i z`L4|n%kF|cC^D#0V7fIaJ;~f*5gC>hh1Ev9IYufN7*&&__u2+ zssLi+iI`bt;XiOfnDjyDcUO}=#g6m6+$MM0e$h@EALjG0M&`BqNMAn=68Qd4(VMyx zuP2KwVvrfqmD#ruEAbUdg*2D=-)?KOlq|7@DB|_fs4EOd2M>(T8Epca1}RK#N%Z$3 z#E32H+nhhV>voR76df|iS3M_=k(9UC;-D6wt#{qLb0zszmpK)WCw782{V;|!Y7mX- zp4Kc3fDYO8l!Q@^x`Y}c{zs-G4=Y2XR5oR64^um%U$F~+2cU!h9vtoGtK{@_JkwH_ zA38oWp0Pf7OCSN&DSeq+>|NDWqt$BAEV?w{{qg9+DI%*We%ls0OC%KVW1E$T5J3r2 zh!^I^EIU%eNK0h|zn!0`KoTrTKuohbE*xhUWT@1cjYNiRK)04b2^~n9ZfM~4ATHhw zgPb4XTDRP#Bv>`{>Ii0bm=S|7Vdxk)uo6*LgJIBsh)()$MsOAvsd>a~d=-enzMzJI zrg>v4YL7k3sh2q-29NYakmJY1BJV*Hdbp`NVkl(fH!Manl%=Sfjme88!yKLasnNa< zbKkTfNKWJhoaEb1-G9qiwKn8g&IW(FN&daD@{GXg$dUp@#H zLR86ad%5N2(tP4zmVJfEpahc4bZ(i5T*97uRiNt6q>@-Ml0ZEvt4^9St$h|B@z>Th z{L0Z*`cD{4Srcx6hGIwJ2$$?elEi`vYZ1p-!hBGG&jQ-wMNlke3Old1{sX)=a)o?4 zs7jE~Ri9B6KUS@9uX0OZ+8V&4|G6dtnueq$G^;Ub*_%8y{`#dd+opMrUmAbQSDQt_ z+1RsH$*Cy@j1@C68M9c*JA*w8OE$|dkGqxBH;rflv+CY_G9P#=V4vU{2Ie~706@&1 z^z|arU=b1rj7N_q*Vb8vyf5B_6DlyaTa4ArfdMAz7~GtiBo=XdqC%SM8xy@oQFu8< zUM5@)R2enV{q%IDmerqJlL;=6qmcILU2~vznSjz;v7enLJ`3t4*#)wfdYFhn|J z3wlfB8dkVxuc``gR#W~)NulhN3LsYC43RsuM*~R@44}QE5c0IqqQOz+c_+d|Jr@5? z_oE6fzsbT1zE^3u8~P!pRonH}uh=6zrFC*z87z<;neyd|E5;?MaGpBYA^bR40Hym! z!R;(9>9d=#4hLV%2BQr9@EDqByOxEr!Ex0?#+G&kBUrIqNUDTzxWr>&(Gj`r0-02E1eretm@2uRt@ekV_Xpx z{3rC7WY=SQJA~!T)dR{+KIc6Yk64g7wwVrR&1F@l6J;<=pJ@&*>`|B*;t7?98bH(df>3rqMNj$XF!t$ULLy0s04N%kDl%Th z015*XlqWwiwv3N)e!73e8?RCKX)RME-^NRngWUHlDTTYDY+}Mk09~pgsb+1}O}~2= zYi4Tunj7qI6quFZ*)z(>FN@bnKW7Vsvrof4UdKq?R^9W_#Nfw@|4rvf7sDpLz>>Y7Ot4}!t^13&<#UatSU zPe!J1-FjGy&OuqRL(Z8)i8)RXw&#pd}S%XUwiK>3Zf46<6Ho-|}ngJ4#PM$g70{E0c6NV7#6Dns#maYAVqs>SjM}g=$sYERv+Kx%m4KJK}OtH6Wx|5S1j+mNq6k8DBeXDSB3> zwP2fCPxBtt%pElYmKK4h$@L14?GN8!FJNSz3ItHc$|K&**N&IeCr2LlL*9AH`(IRVi%%! zskv(44#odv^yo;H2cmLz)r=*Iu`ABdcBrwWGCVdXsYmz%9nTNpz^lP+;;LL}$?OiK z^VoqH>DlUArlEzSsPz(%ZL=e@@QiamNg1@wn4Go5i@xRnH9XkTqr$d7d-EZtE{0Wv zPrN>eEi#nE!AF$T9*0N%Zt{6Icq`#bE0g4XZ3pY8AKp%P2GQicGGMHic6TeHfKWvC zS$cAMu~~M46A_K`JrNt+?cwhARtXKsFoQDl6!x(dQ!1nh&x}jqShw2Hx*pZ9XN!xk z;m=L!1|?Mb!Si>3GmUY);aN68I%#!KCOdpJ-c3t(yT%Z?Wdgsf&!U=vM*_QXO{&8$ z?F)7nej3)kN3jzslx7(FYDxe)K(-X+d!aB>VJ8%;m$|zPOPPezCQvRri7XbL+1OR) zi#coVkr+$#<-C8NSAt{$VFk6PFk1vOG}hb^)GNbQL`x<`g5`3#{ivfevZPO|W&2qW z1;F{cb-SVT&V0MxhT#Ipp>OCIw6!6`apMuw{J9qwbh0tmO3Od`PwLHwz!bQY;_j|N z>r3mb;N!O(_h$;J%w@p?C*JFTp=KUly_^BbH6e(|4O78a- z?i1iw_m58xe7&}~Y|JC-<24)~gGowTT=bW-X(isp?!T3osls@#Lwm@~}Ah2KukJ4SeK)C}A z;H$Rabpn~hM)u-<@kAao-Ey7Hd*!*5lP+cCLn$tfiZ+sl2b!K1AQKoO<%$=v&H z4k~1*G7@mJ+qa5hLbX1vYzKwn-jTJXUCUZ-;^Qdh|LJ`X*Vi*Hajpkua&n(coybA$ z$UyQtsZEAMAtI^>oyT&<@gen3^*%gH0n*&|6N{_8OJrGbiZNpiX=g<$#hEUZ&$^O2L`i%^-Ty5C{x=8(Qj8u)dqv%Bu%RlxdIK zkgMaXZVzOEL3H6zP`ELIY=a2m?83`Eze)OaIP#7(7NtQcUQ_8YyML8mXnC& zU_+i8=mfUdoHljS*rL)%p6zVh>Na!2ysBCPt{R6#CB3v~II_^Gn$<|?I(UJrpZfPkh{LTE2N7}` zuj^HC=WZGC)1`_NJlnq@GTV#g8hT{bgO<`oK9A5!;WV$&l~VQZE`=(Gws~~1E9PTh zi#SwAQ8zLYskU^cnK1JX;*zBjr^XGoZl&$qf{!O2jEmtwTg$+US_(T;EUqDOx7@Pq zU823FQjV!}a;A!h^$wa_uX}Sn$`-UVKOx646W58gQ>S)KC2;{?6vQ=(Y1MyCj@aJs zZ8j+yS>^WpoWiNZ_I2vk?T?J1kab5st_BHaU@K$xO+ zn|Vb|i$ho@x5CLi1c(mje+u@9vn6baqSh=_yYZ0r2yXm!g+zZcV@LV~n52$6RA@Cc zO;3OvUX;2f-wV8uJ{LXnP>V9=R+zyAt7R31uoRDcTD8(+7bw667;z@udI=*>UL_bd zFbd8_w6;lnsB7Dqk@J)Ps;IM@=)II*5Nv-1#cOSY5pJ(uH~^__%@|hdosX-$?ebnN z5!O=^X?#(R6Gc7PbZ*nUjGJX?nzhVZA7UqH_n(k-T9KQ?HjZJ;Nf!s54F!jnyigi~N3R~q( zrKp_I;<^BQgWwEolwDedxh%vQpvaxuM##{T1Gjq&U(_KA+}mhH?Jo2os<;*HO>UE% z$Jl^4UNHBKFd7OQF>ql6SQO8SIq)pWwcO_nNJ)Bw}RC!x>Xx4E|EeHANs95%Rl1#O+)}B50NdPE4WyfG?r1SpON}mQpDAG5)vUGQOQHE zoZDVcr?vG*KkZBQ{>fI^IkXdN%`%H0PzM@tb3d-;nhj~|bl8I$?d+-EIhZN#^a z;`xivGWX5RhDPHvrWVaAtEVamsGC7ee+4-=N)b2Mh}2VxAucAR6QI#c8hq9vaDx^1 z93FU>t*tzQJ)$GK&*i z-%2+Au>E^--lB@ZosS!Pw<>oB#CS_TA;ON1pxT}?*%K~s%(OKX>o0L1W+EO7eJOl@ zTG;5Av+L7c6N~LFx>!i0OZojzv}ngPC*v?VAhcj?g++};eiEsMa2WrnAeG0#xH%V> zyQEz!N7dmDI`%kPke>7DVC=*b~wn!&FwnjMvDqpkyZ$7N`c57_#)%KVb;{7zdzD_AlNl#lYy=YznE--o6B+ z63hiY80k`v3qf*`E1#t|KxoE0#suFxrIdJ`OobZO0VdFko8-6GA;E|&_?i7Zp6|zH zNJ{ZCfsl2so+mEh^5&}pu-3$xPEeK+f@7n_&#)1vVQiljMEwV>`Llp7syDTwX)4T1)p3oE*O1K#Sfr@ti0R5jj0V zN`jo@>Km1sM$S^x+IpE=TG4H3oI7&#JLp^X#6`c9e4IiV*w;}zy$Xn+e0N5k9{Qn&p*w<^;CqCm?*aexUo9 zO<}3E6$Bt-`0C3$kk>5gfz67pAB!}vgUC6pb+H2=vv!DBPm7rm_J+#UwD&QgUf;l< zFa7tFmmQJgl(SQB?;NnQ{e1z(XsFa>(kEAybq0hRU~Gveu7}NL(zu>skIQo}_A@ey z0{&{Yx5vBR*%2#q<$93jxSg}7LB?o{GhK`bckbMAwR9RLMooKds%4-5u2@qT~O{CTvS9~9XHvgMCp9Lar`b1G3YshRNt zH(=#T^pMF?V#|o1vi4#g;l_QbAi zX2k2T_@p8N9c#lO-sy5!vBKjD#PcGVNF%*)_I7+xy)R?_izM~}!*SJHvlm|_L(Qq` zMv?g6jM6`)nKSufW)y=5?5!0Q@9abZ%(Q^$6SsgD8f}p=tXu~WJngC|6oo+8;~!~7 zhNctfnV@^M_t#JyDq%VCbFkRv0SP8YnPD`*T9*vRNTp#X8Nuc+nqr936I*BU61pZHr40zEa zQRGw`;)9`@LSShrn*&bFTV!LgR-@)m-OjMD+a1^lZ^^JpMzFBKi{=^NikRY>H3;1!Fcm9?Zivl9)m>ofND$fa-Khylz(cHo^-^1pK zRQ>o&H>~v;5P~eOsOV7d)%gT>>mI-)Ky+xIf99O4+>g_Wl1UAQs$uy5-DZe#vc|~= z0gGVUtkW^2(Y={}91og>#IQx8Oh^0A`cLeMC$%x6{2yUTN z;op(PrX*H>n$S!Gq$A`1fVI}K$bo6O350TJYwUbFmNj5-A6km- zqg`&rzI<5kHP_B8cT2OYT&J{ddcxK>!sPHs@f()>@tr+<=&%@t8s6;}`c z)+^Bbo&=5CoOiLR>)LfFqW`0|`|?uFO8a~;N=tF_b|me2^^+1O!_3ih7pUR(8FQjWC5`!wO%QF)nS#k8_7m7jFq}?mGbF}YVGeK(TcX-jbiAP3muim z)okMq9_}BhnO==mIFz?w6 z3K}~tntj4vgPlcV=Y}+&6m{tmw(45Aa7JE@nx52hdYwLS8j6oQkDiNFKZld|@-hyo z&-(V+r+>eUIHW=qvW0)9SQ&!zfcUO3RC*U0Kc$_}T6Ja1CMP#z#_cV60Th;u1u*KYNKPFvEb2l65E`u5*PUd%xR{cjv{3u4 zMvq@wL>5j>54_s$aR6y8B-YrD@<_e=f>Ja|pml~69Q9{===VNzI+|dVvqpK#J-uN% zb(s+<^8WU|Y?+%^v+pwjAE1L8O)gQ#;(P6lZCTpDEN}Dpj)nj+K+eB_@7sO*o5uY9*qw+%q<9HJ=g?MkKjhYJG7{jKrV7taOxFUnKSEU zWmyfce$9uNgrfK@X@|tBDKefLUdN69OKP8@&i8{ZKSUQ>$?$}{|Gi>46!G!kmZKOq z!Yo^#lp@_=PZDi@Kqg+e$nw!~Zb10OpYPjn7FbC^*aE}+g95K^EeB1@0m=2%P-IM| z=)&&?QZh@PjmY|2cD7C!xJ39;XB55ER5}V1mg^rSR^o7KQ|8Z_a3*tYN6_~TQnC$q z`bOe@0v@%2LE+UhcNZKq&#;rS57K`xSiX01r z#mj;rvU+9^C87BT6vA3Q!|@{O;`HzfWWYo|`Q0Ik8{WgDdO4PWEw3qSm z3VJF>wBv;zlJ$RrBD`JTXTjNFJ97k~cIzkbV2BE-u@4Kh^G5YI$G~iu)u8m{{ctwh zl=RK<=CEo5$KOt&IDnTRAHZ2_D7x!7^4R4V!NAe5WQWcgppwagLMC>rs!A7UR42Zk z{?zn_Zil8Y`!)eXe+N}x-RCLyE4lb;3xW(13Ct@{i3Zv9q6HgwQE$WWpa1bjYBcVF z4@cNJaNnS%UAv`yY%lb9L8~v1QmR)n@7hAuLoHU->!f5X$|K?mdy{?Mjo$>@tvq)d z6%_v#T>ZHvv&ebTKJE*Ru9^o{uU7TMBhi2(!!1CbD2YYuFK!{f>8IQ?DT zaS(AQI$_PNm+RW_Nnf5U?E+4qH)JrfR2Xuj8K|a*ltBMByx(dPwd>41q*zDJfg98# z%n^QGEJ(<;MD*23rZ(PjJ#@SYBsnAP1_s0hW7)15EN8c^Ne_^Fd&{b6c-zyiO8y$A z-%$4{Tgx@l%E||Ll};#i%LNbBa5sp%oN z2Y?+W+ATITG-R0-vyGK7m!zS)jM*2Es!%p7(@wjVFVt0`gY0~WlBrR5O{OO?*W$wb zYT*)=3Z@mw{XeBRi+sr|`l-46sYY)@-Ogb35|TQ~NN2WKBo$aVcz)y;AiJMetPEV@ zUUDZ*gKd`LZxM{s+A?7Yx!m#T3>K%2SY@WgvRv;>rvn7QP#XP&j_p6wIf;*^R&~mg+H%y+W8zh8V1=z@yVOl&P4?uV|oAZ}>@^zbmjj%?o>b^)%gU5fNTmi*=`(KVYD!xf;C7@ZHa4wa`uR$-D` ztti}RYm-Cnlh&z{lD`G%1}lyyZeY0$eOLsD9tw)|=no6Hp&bi&(!v9;h9c zSivf;43&*Hm%AIaXgr2NYpO6=Y(lUB)T6NJe&BU05ZsNzc}@T4_*waeYiy2vt|BM> zpC)~9x$$>PnO+pp!$xw(#n>I_^5N3Uf+ESHy&h|GL|&FeGJLR}6By;eC#O zO+o&l<^36iOiV#PcC5ApQyCFwvoVh5)dSno+MxPiO=}of?w5N)^ImpJS2-r^mQrp6 zoT9RQ@Cu=t=;Wl4Hv=#hj(XWj>~(Qs***ESaXDy-YE zX&W*N2pj{u_e-b_z1$+>k&+AK7MXXKu(y5H`+2?oZb#pA72-im1mr&z9}$390YMcq z4`jQsJ(Cdn{|WG5{-5JNkO)u=WgLf}iSlkb&VHSFW96^gB3H$1;-?_Td+IBrj4cBDuJRbz@JiR2DJ)G_>-WNDSzJdDPLct_GOKe` z)96uok6-T_j(K>M?=?Bg28mfliF2E~KMI#`cD$H^>Nx;uSGGKz8duBcbZ>hiSzKgD zLlGHJ5d+~Y+5Ay&MChj{W?d9C`hPP*ltbl_#vogQ=ZI}A5zdX5w=bP^qoliju%339 zqaI#kZvVS-AhedDvSfW;FaF`$P8c<+j-d46v|l}`$7x%E+qRf=Q^bZva=uR{Oi%Mm>zXe%fd zmsl`Cgt@n)8myaNL{tfC2WQHKEJ8*9HMIL$gZk^Dceyyb$Q|)KTJK=trkK>L|9vJ#lTd>uA zc@o9%n!w={LOluMhd(|Wn-`w70V0U=%aBp$q3t?wf8j;7wDPA1%=G3J-Fube$2K6L z2ni$EVB4RYyjMe{dkP4X#5c?bjYcv8NcV!HW$DH8rM*muRl=E$@F&hHlAnP6y``9F z3iO}VENy2@7I<@8o)h9dFMfUVy6vQSF6E^9>GSG+%cMz%ApOFqcq7KhBBGT_vl4x8 zgHY;iXyx;*v+8^bW)cK-MU6H3oBt%ZUksxR76$rDI}c$A;oP)c3xDBE&q)B1+k&Vrp>=o!cW zQ%J)iw%B{N(Z&)``Yv|f+Jn(+NmiQxH175)>5@t8A}Xe=*z{+2xzRjGT_!tW$(x@i zs~|NRh9q)F_h7>Rwvc=>ilkyJ>PGO!jgh$VX7gu_(hPCGE8LL;vK>%Ym;}r$Xl)pB zlWuuMi-~t*;DH=1z&-BaS)Z;h&ZsrcG&b#ssrItN;0y?K|1`2aG!ZGzztoMs<7Lb0 zkAPmbyL)F6nsu);t;~J*Kp+mJlmuGQcy(6?g+Vf5sjDHgq>st3Yju$og_uN2+9?3v zmMuSElN#E5@uRIq(REqUWYO9d__*O2(W|pcNxgNL!@NmB^vO6AI`Fi^in`=M|8LNd z;MW!yiT6EjU#E%*5$L4a1X*+V=E>>jkn-v91QbhczVg9p~X)ilUCe z#Hf}Z#-#?AH)KrcYMNMAqW0}7aYNV0%BNka_pTs>3X^04e>D=@4`mqC#>cZyoeXmUqqL+a<2HW1%kO zdE(B+R|7-q9J1gH75E%LDGHsZYpA1Nd@|UcTqYXWId?5Z{FODSJO_Q^l8QJuyAZsE z%I0C+J@G5_{{Yz#%FR0GESVGd?8s;NB8#!Se!heOh>!E0fkFX(1#8DgOJGPH*~2ej zN+pVOk7rl7Blj5ufTgQZ()A{QKY-#)?R3zdvO|Jq#b$eb*OZ2(U7ul@`Yo-6I*p6M z-jDCjQh#CNr|%(JESxUlHrkp?bmZ{2EVz1`{;s_GD?hqfj5N$f`BQ`ciV%(B_J_tb z{yj2zXtmwD$QI-6q%n7>5*^GH?h+7BD2Fc(w{TV!=7?5KK&^ZgoIA273EG00B3v7O z)$#a~U;`JZ%HJ!cN&5I3{Jfq{Jfx!!#AluU7F46Bf0~`8%9(6OO0=xa1?&RriR)D& z9S040w$&zgL^6}1Lt~MR4*a)N`fLOBF_A!vpN zy~3b-G!cdphTY36g;V~r?m3xJJ3rbZrAvo%L)dUMr$?C`<-r$KG@TUg{)GwL!imx8 zD}5F*BNc3zwvHh;C1@l{WX+LJPu-^t#ZDW=TI}~V-Ht6Kws$k$1dM78Z1%*_bz0@W z3qa?vjI1ND=D{O5y7>DziVPJaG}70N`*8Vvn8*b2{}(%HbU_mDH~JQ3GPDun8Gj0s z49oPjP7~wgmA3f6lHUcSv4i|<9`bj(h@v0LyMunOclx?D{i47>UqOo_(>zR;mi2h`3%b9LaC4M_}jRi zTpZOVKAAr%=p_?`R)-1NaZX56Kw?@R?+vD$|^xSXKGAP#+KwmkQ zBb;&`<0*Bglo(g0P)Jl8KBzt^2INM!w|6&clY9@;)Tr(D3`=lpCHfTpSDnVoq%mp2ccNgZv8H}Tx&Ub-T8m{v z!WHarCZv?j{rN|Q3fFG$P_W-eQp7y&KMU8&kyXjoB_ zfTN-;nZtQUkyW4R7h9WpUu7{t7AORqHI#h#{3BWIxEoU-n|m_;JcCnpHltusc`yxN zLx)-wDFJhE!=GE7VUNV>Ml;vAelTj*;DQzT2gQ?F-Y5m61}(-yb9 zes$=41P#9MKx^{*YF+}?cKKT4W`>guc2t4WBUrG@Wl0jO3D^4RV$BSZG8R4&U7Tj$ zchljPxtvp~sT%{_>YwiqtPw;^0VT|FZLJ4{q0o!oAI{DjQVYM4 zs^2AO$Q;AA0?`GIHqU>vGPk4_txhMbAIkT`iEmj>2(~918A^K+lrSd=itLeo$b^L>YxU(dei7!457kB*F=R6*H` zFzZ?r0j`4wLmz?68byXq{mS~2cj zVK?juk=knjGtm;8!+Pj9Uex+qYkms>mN^%v1>RmRx9=Q1Y9i3VX2S6$8U^GUlFziA)TR5o1d-+7uQiZpWZ=u0 zcNAg6HVTU_m>>&0(=Jg>*)`ene1ZUMup*`wmMOMDkr0Vg+YSaSY!3RJbH&Wm&P*XF zAhOe$baDo7iDgx? zMuDLWTl8ES=8~ufpy?0Pg3tw0F}1T9p=+zvN{8aPFeJ|aP3pZAg|_hTv#a`O|+o3btxSx%5i9(#g#2%`4s|*IhJxk zo@wtylzGb}cQx;#>PhCI5xjE>Hi1G~*uFPS`s%f!-4oCpA3K$m{!qTZCG`(Ae|(I^ zQdX~>6`NF|P;Q)r%O!%OOTVRiN5(bs$wInmzJi$CBADO^i;-S@eBci*Pp+kt=LT}& z<{AT!BIJvP%W&1`9+rAKGdaKSMx{CpXtzGjN7NC0E&7JoYWXOqN*-O>{de7}DIOB&*fT^voW}S@?`jiV%ufZ!~HIva* zguo~nDsUUvlnMmp-{*+0hUK00>lWCzilP|E0ydcXT#M~gC;TH-y0Pho7k8OS=|S7) znMo*EG579a8lxBsCM(&}gRzZaTqSlK;o||X;W8mr5t$vK(PHCXFH$&Q!y;S~D1*d} zkXFRpANcXFO<7;h8g>j$>{?&45%NZ!IF9wx9YIimK>6vf`U~VZ4woCI_zsL=uA!$0 z3D}K+13_~72kR?ZscIw`_i*UAJ8CG$F~Zd`jZLmn49PSun(Kdg?-J(+RJFu9R=vGG zx#*8Kfyfw%Qwf4fm?!pujC@%ipm0Wya0}?QKlqa;d!dJq=kiqfzaupgW%oda?}P~` z+{XfXM6p<*)ibbmR!8_^VZG5ZVZX1N^t%%8M=Y=`&KJYb5?qw~(-NHxl!1Shf@E1> zl0ya{a=sEwRmTQjpqs7i{jV=P1VWiZ;Ag*YB787)l=Yv^m!*=BUx>V!^9j9>BTTtvUwsWf&p92Lggg?GIIuJ>>SrPl5!^sG zr#n~GV1h|~3Mo%wV zcqszl?NjV<0rsSPK>O&Tb>s6NU5GO)y=t#9Hb}`mrbDUn3zfK4FLEKhO4sxw-8?@}_y&ZVO$Wx?~3?KXY>u_6(ox`4?AAqp?BG#Ky-L7U%GPwf{W_z~{mB7{fT($SXFH3i0l9lRf4NM3c_y&d zd1{Q*1D&Ef(%&(7rGYMmnVkLDR@ch*wJA}*ZXgDftrv>~ndd<#Q2bq8XB*8?=znjZ zcqC)&;W|Pz|C^G{7OlnH0!SyEaZ(%y61<$fSivYy2a~rk96WOE;d2StsF-31qWfo- zMiKVyi1MIKjAS5g2r7k-Z-}h_3vIUJgRnEqnV>{AZjGAifjGXp_eZ&pRT@Reia8!) zyF;Dj%DX>o*SND>7KUDbo0SpUt5^P|cBCT$rA#O=6G~TmEdOPCu+=rls~JRV2e1BL z+`?Get#-%yuJr%6eA-85E(I8Hnah_z`q*+&|Mfj`4GO|NVu6sGza?OsZg0+=#!1&p zh2ShT88gfPISvz%2TBgs{>LF?m!Y@TVosxtiTai$-HrU!J?;+xN`26FTtB)tmyxAm z3PNY{0nf|r3*;HedQVP87}f?m(Jxu{wxwthE)ZRXhdWBd(>TV(-KkDe6HtOK z3=%!v=h|Zea1ZA9YgL$aW|br|M5CYOF$k~5-|VI}(Idah)aCrbJ=LOX4E0vDwbuVw zXMCe9n~;ZoqE)*wgt=K4k`pk?LgJt`ZJs&<*J$J^oQVagpHQ)uQJQ;v}COm zyMMQB`_cNO66ABECCp0N|DoVdm~fLxVq1VXX0pf&+C1&pjAxdlo)Q@k?pkD0xyg(F zp!QSXwnSOhUpe5?;=JPuCh!_()Co2)?sa5{i}l)|Uy3TIjZ4Cb$BFapIvn$1tT}(8 ztd{oc02a=CQ#I#J!>%U7sx;zAwd~&o2?DBhXl$hjWeQ?el7dgL9f3#8QnPE0dPvE+ zeX~qG%}&srGKmI5_;3Lu^KP2cfZytm@s9uP1o&*Y=b^K!+V_E;h**OYV&_ubTp9L_q8iT1N2;;V1^<> z6Vp84jT*e5p(Ba4Jr4|#z(`TuB)79ahjH?eF-#A<$ss*&ipmh!CT?jcq8{ZfppP@&SId(=9$Xl_ z=M04Mc7Kh6BdkgRu`+J9aucy6jvYH_Jf>wX{E=xL;+RpEWJ^i5zpQ@^=ScuXCWI`Lf2(eF^^7I~qOU%fh_Z38;z>sCyW2@eZgu z_cSE@jQVX~6uOp}S6{ORb8PK_Ndsa5nsD?;B01Pj$wht*=8Q^T^ZE3P??j@L{}Be$ zx2khg>5j0kk$_H_>4DB<@@03=iCG}C^oL&Ef#Qe!uHPdF8x56IMT zJ}8I)OS6Eph2-a>DhqIWQ%wxNAJR*jri4btXOl3w<-?*0)|$25g5)UTt)n0^=@{Eb#Lvw-NWvU!1w>^NhT!9U3faRU zlHF3hMFA$&;bXfJXir?=CP!q^<$J3#;R!!q8}FCA+WtK>hX)x?&B$$k*WZXGq{78d z1U8BqoMN^g+@&fCWrEz|6*co_Gf@NjUWv7ZvMB={j^F`kLAgx4&eqUXGySrXs+teL!`Lxqex9vc+K*`QyQ)u zTw~|%!iTUk&fUa@2Or=vGnJ+`=9JGo^l$#UDAohk?enXET4=@2Ob5R8ByE(Ivhy6L zFg`4>KqWm5QTlw4YVj@x@zdMc)5G2hOF%?nm|0)nQ7po$vH>wrmn*3Gi^MP7wf2}o zH&zF|_uc?vxEKEpbsD0Tyfk50G=Gsir3p^hHq76qTovayPSBcnK z6SkYhSr^O$e6Fn0D+?&I@+mbUIALctmjwrlv9&L7){G0fV;bsx-*?N*K#j=!1ua8{ zMcY!?HW2~ac62-F_*d}OF#b|UyVjMXE_I$nWk2%7)*6}P)+y*~*D47|#PLs(KthbMeXnDYj?U;zYcr>bsri97c3bzI zET`@_tgb>TlNKgT|7&J|_5ogoDq~{frT0YcDkPe=4e^qRN%sPTiQew%W9BLPzGkvV zLRy);^hPq+nf9sBQD5KmdX7B(1dyHE=iB~>eC%g2&HhY4| zrN&~(UuqHBUXT;1p2i(}|9Fmf-J%km@vasS@WK%yv&l~9ys6cQg0uoHFAql-BcjiJ zIyfM?DbDrm!+2B#s*>GH{C2eI{ zaN9C~7UHczhOkn7p34cKr=oche(MzN%Gei%^pBgFJB#?^bdD`{sbP97k+%{gtpjx( zy}h0utiFu@EDy1V$O2_p?MZfIHjPv)^bLoTSW6V5sD&S<%0G&^P?2K*s_ZMr3sGpGx5!mcq4jtyl-!vB|1X=s*sab#x(rEX=Rq=`pceYPf_{Yy zaq#-N6zQ-7$k2|M)|#*gQk&LCZ=ow(p&kE}hZOKp=$!uk1(AyIh2Yk8eCE2pYhNsW z#>Vo48cuV|%#&w1kzUTNp_J2r1>0A_V}&vqqC&;Q!y(VeE02mZ;O|RWECK^*^`Q&ry&^?@dnN2j|os z?l-wuCD6>6G~?%=y>$p6)TMz;i{^-RHhD=fdKn7t*$_OA=Qx){kFI)5h9QaC*_sEP z!yHBSB-ip$N&6|1BQt~IuO{fd71nu$V0Hs)+%vVwA~N5ljWEFAxV>{HgO*@ zU4?X0JPG}EtiJ!%h@QNllPYo`R)^INeiywXUvc!eM(vFmo+bT-3TJ~l_D|~#O_VB{ z86%DQ{j`VJ4OG60b|}}-^zIKuo30h5X<};fY=wd+TSaIlMi@H@3Am#np54Zruf)f_ z7Qj(E{P-5VDf&fP_OJ~QjZAl{<7QBRqdaMk>1K3s9IQ2TosrAelrGyzRm6{1GWj3D zI^K%#X>F5E09;$Az0+>;Z};KAukQZ$M%xr`E-|(YgF$; zUM|(SIOg^VHtqil>HARaxpuF+A-7t{!&(`5H;LGDk@=`KGxmKGwY67Ol9i|fj$rt2 zf%_`o4;873L%88t;cw={vVSH+h++G|m5~StUrfo#M7vT-@o5-0rx#zsL^n5U7_UMN zsM;DtY;K`IHMBD>$;f{kuwtdrtxLh|yc?P3p{|1Cf}$)Iuh;bv_T{ZF6rQH9X}ye4 zg~#jfK){t3vH!Q^+d~_D3_eF-@wEm#!n*NB$b$MMT+NTslR6DnH^ZH&9NG(xb^~RE z%#v@HJcviT*QJJx^3VI9Bl@F0kXAu$Q(l+;Oe(B(pk({i(?1$w0pHDedbFI5=aVvMx%7HY)NhvyP}~yr4GF{v zem)U}$HKr=s4b=3Uy=FUGMwC+=hi`BM!I|U<`D8WqNFvfnp@10`@*`mBAp}c*GCZq z*O0+w6pBS^58Yd2yJAiB6#MbZa{$?oRT}K64Q=A=oX)yoX5diVsJa}ahk=? z@h87PXFCIvGDKOQ$cS-F>Vw2}>Eukbl}pHpeLKe1Moxo4{_fPfoTh;t*j_7F&CPSp z#$GMpnpBN)s33!|9l2oN`$%hcfLQ2iffjY|ouRi77k+axDykaHD3z7Tn0y)vN07>R$^elrF-q#j z)%}IBT0jRD8=jm|c%qH=oPj#waY)B@cwrZ9jgN&KP3X1YMqJ37MBU@6q`S7QDShM$ zi8g4?SQoYTZ|HAVQi)s&6edZ9u>YDkeT{08o0G zy7&mUbeGmFpYlXkSa>NWGsSz)w=fCWi_=EcK23szR+0HWkRI&P`KwD|?ZRLLj}+&;dq}*JrW65Hxa%=MWn%n{hLk;;l9R*<R$1q~kBKuyG+G@s;!VPJSam^+C?#O^!0pBNhdXe5X7hrhwH70-*N=K6 zc1E&|LR)LCjHwE9lApV=)LNk^Pz8y{iL&-;;XO}2hPiq01Vzt~n)xjs5h<$!bZG^1US5cAU=!v6^yz6VMBXi|_sDx|b9}mrJ$Z~~uPbw~!$+;ML!A@?@y)Lp_F8nCa$JL%W zaiCm$Pn$OFFpjAbOVz(uahvhG*D0L%>A>E?LStsQG@GZw(jre_72$(2S!OaaC4OUz z@4G#lg5M!P$U(`o3V7}(kl%<|!?L54SSr~k$A@elO>fDO9?(&jmQCmG!Jb|UV%k!= z3|&^ow>Ch57_psF)Gv*AJJZ_=1GUm$#AJy{_jVtvRb3s*mhu~voWcrJ+5g}B$y&63 zcOkb?XT9?Uux3GiU1$(RxXys{k}pk;S1gm2W9`KVvPpEJNp{%Z#>#P{t`k{2R8@;= zSIFUYIvog*fmdECU84=Zr4`J!5y*g&J>#;Yk`*FnNiH&cG7&SWwsdcZ$`yt9;()>J zB*53rtH&j1p9v9qsjk^nv`X#kR!x(4YPWeeXkFA_HU8Ld#kzeazv;3%mN!abxrXb( zsgPcwyx-aDeWVtllh8fGYo8DUFLU)usQ&3BY>~#+5VuCfRs0bXA`hP99Sky86K@XE z|Lz0GV8o*;fB#mUb^0TNcIhZ$$`C!dsL=Rm4!<^lopQRB_ zl+JOiw&%GJa6aqn4NKen0ce1LZ7HV+Dl~th)gSzVreL=5*cMV<0ur3C@yNTC?%Ufg zt}GYFHB^k0@ORY9NsDGNWC-ijIb4*6igjYX9HbT1=~0AsUpSA4yW^&}{HK1qsO4Cd zhU&QtsXxA@jA#&2JCvt{#CpCuG)ma2Zi5j{q~Qm^nb4|qTtv_@p$Fqd}2hx%i8&BUw3h>fB_c*M?u!CC4ji@SWo>trbHegRN6b#??JM4izR zz|Ng;i4x0p5oA}0&r&M}T@?ySgvHEQIrE4`m<503$o)o0W_cwg3>jBnoRG)S%4*Of znI`*Mh8VX+g_Sse-Hr_@DF`|n5ZIbi6+NViO8 zA2B)qDeqTM#-N}*Br9_jLgSFht~ad*@j>IMPQ+u=beOdT%1zLjgPJ`vFXWN?ThvTv zLnOB>fulZ}sMb4H%mg_=Uj)HBko}3&gbZ+|niw52CM8&)w6QgY+)``v_f*<12zS1J zYV;Z6nTQ^L?$$4HYvu2pC0;l`+Lw^mVaT6(Z!2gGc+i>#8klKn0ePLlC*0P~!#J2U zYsiK8CGR&-HvRi*?--ZZ(K|GnAInt0ef6JtBV*eF*?wK6P(Y_yS?N6!@M9aUV!6~y z^zitQh~!K(CWo2nT~-3QDQvyZ3?0PLsx$N9#hngaiW*`nQ@)Y6x@H0|N3#^v~P`bLzuxaTA`c0!gd(bQDxTPKJm zYyU<3NZ6e8UML+!W#E&`)K929;M<VYACP95D(QQ8M5AT^@jp6``x)%ee^o&FHIWZ*lJ0u}OC0aa)*V(N-uS ztmPWtoj5=!)LGx$;+3Ts(F%d}Ye+WyS64h$vwZ}{Y0W=C?C4<^A7qmRu6|=qjte6& z(hwd_>YT@OJ#A)9G|Wi|2`o)vpNq9YC5VY|i~J7ww= zBC+X*ZXlULqx##_s1Bq-q!oxQy8R2W%7hZmPxuc(u^f_TSWALSKp+zM-AT41WN%B; zEmjq%;GH^(PNq=n_Uw5tB|a$(Q4(8Ayj6ofnwImi3*4|wuEvqpj+m}0AWunQV?$BL zo)f?fiWIK|q_Z_}B^dIlGx*<|{-;}t7j?(8iE~syQ&0(iyC?oKmqtYBq9SyhXA@{{ z;r9F-5+|(-q7t}xr@OHJkVJvJdZI zd>A`Kr@m1k&gmrgkmP0z?NVAI#|EdUwP)wcFP*!sXC!vss`?W~jqV_xh~mfliVP0v zRdM+{AwL~qQ&?(btwajeQrx{rEWye^%%Ar@*0gI^ z>(hIof}I@W0AX@D^d+HL;M?UWRnTy@Db{pW20tTj*e!;% zl74q%^i9B*OG9 z5F9$K30;Nxs$P9w-c2*$Xwuh-<}ax2ju-Ob|6X31{mMQ3ckBJU1~fpFcuyH!l@@D5 z21B~x$q&irkvgSw4jCRtE}*;xs|+jZA-dKL9h8clTlEcRBhcUWI+$@D)@V*7=olZ7)IQ8iR4J1ZHEScf z$}}SD9Nt9Nq=NEayE8)e1Nm>2SmB8L3MY0!UBQeFsj+))a^mcNnaRUaCeDul0RF@2 zBLR*HJIHAJ7*cADuJ;673i^GuC>!<{V`&bhXy3~Y(Yg1UE&J&dXqw^so50iGpA{Lb zIN$@8Uu8|t5b;DP|630J!{letj72_o-Hjn&amI3Q!lcBEU3MlF{;gQ>>O?G~1P!T1 zT@j5K8nA6Xpr-Z7RlksI4Ub{pnsm#F&2vR5Y!~vtO^LEx`nOVJfxw{qZeR_&LBNa@D}9dRs&` zxyB;RsA6(zt&r6O&f_9T32AN|W z)@oSbI{5huR9mr{xaG(FX(D5+R8#(HQX;(s&})cN3(aJ3#V>t?O|dro z)*Qozva1TmBd!Vtwca0Yd$W4j$9627hdoo~V%ZC)S4G27j^bj1$GQbNrkF&Y(hcZb)NVBI#fTLs0B%*F^1(DCK0RD-=Hrw(V zwB}4-e)SIkCU&=8E#Qre`{qhx%;^U%`KwY=-yh!WKcpHZ>giZ*l@!3dLJC^mT@Z8b zEw`^M zclt-1AfguG)n35Dhmy_ixuR~_o$tuCQd!&NjmbvJnb`^c?Jl~hckr~QXq%T?lKXS2L zLSE-o1?o+uuFzlOjPsRr4;oTU7pc#{EJ`zJRnyd1sfo{Ag3Y@Z;5%->$e36#;G#6C z<_-DjqpvZJoRC_feSf_t`0NVG0~XsDJwGO+0AY{Hq*=*w3ZKAwH3Y|((+6Qua+lW) z!hHUx0a8kk`(qOA! zTJlM0Ob13S9H=`IF-UIbFlYbV31O}bg4pJtE-*5f|-dAA!fcFGy@ftDMSxFxjZS$W8DX4$*b?$C@ z{xw2L&iwJ=Y<_t3LOau-$G;bV0?vthhp2ClfgF**pLCG}c(O>4Q9^Ktw0SfhhS&_y z7?_(qHCXEh(q($($^2Csa(A>^Wr4+ir1&B1csz#;c|kkQ6p~_z?0>HM=|AJ zh=f$OZD9+DO=b}9dn`@DJkha(Yl(0P$gz{Xq0jbvR9YH8Zlb;R|COxY({kvyhl$Qq zhWPQ=rr-qtzYe0od`ia*O*N~UtW_yS)Je6y9h$A)qmXczzggii zi5Qj#&IwqT#N zh^uwU&!Mfm65HNQyQXV{FfQvQesil#IKF|4$-p3O#=c0pTock3;A_Nh-EGtO&MR+a zYDfd;)>g}C=aV=Rtne%gEnJn^XElKBWcT{OSVlS=5%i0&L>Fi46Z$z!s{gtc44w0G z+BYQeo%d;17EfVAzh zohb2L!Qnji6D9d8A55s2W_{+`I>fvNv#38LvH2rW2!4AB`Ssu150_~yxlQyh04JqVCZ6fKUku(CvL+W%x#p z=9xG);YYtKH+wQR?ZBwYJbzN&CeaJc;ACOhA{Q3)^!4#eMSxcC(}g;{!Txc5JC zv7)16-Fe^IhR7|t%H)?VQFW`M=y2MoF-P)(e-!b9N$7^e;PQ3-kM)=F^+4s=!Vu*1 zM&Isbjv8e`VBAOVA2Xm;bo_-inie00oM{{tJ|cq7NlS;>l5?}4$!4~hM{>YG_OSd~ zX0+nOg>nVba5R1TY7DYWVn0Ipf)Lo5X28Y-;lQJJgzdm_)MZzp3*g1^uX9a3G2hQ&PgO92m`9!lLU&VfveE zpR4GBDJLh?SaOvh%IJ2@8wjt&70CtTc}Go|SY*S1yL>q^)vHoJ#R4B9tGIAK3LF&^ z$WCsOH3%#UR`Q$I+Q(7KG>|%xzYZ?TL1SPOkLYBf_PXW^CB~c~Q*B_vC{+OhH!Ni3 z)_;uh4u8cDaVg_Jf>-&R<0(ZsPc`;&t_ARy?dXtq(Z;xoIJ4te(U9BlwMNxhlds_f z=b`>_44!rZ_Ts2@O+8rGIloBpbiXrd#Dxer+x8p+XW#jT=_HyIm4a1kd=i&>yz9TD z4U=anV|F9wh=BuYm}e?`ed4FjL-L$v4Q#;zAn8e8Fgm6}2ghs+f-kBftQV0WDB&eA zrcg=g{4n-NYeD0Q=QrK@_tq+hD)}p>A>lCj-Zy_apMTz3;dD0W*W=Phl5~%t5~S1x zz*(d>_m?XgWGL?f5Te#b8qLHg#HKN6gxLkl93_?&lw)qjx5<8;-csX$c?iEc3TE2Z zx+L>RVF?|92#KF;bKB6AF<~^iQHA>lc}9BddhT(?Uxk%RD?;-zfsS4j5HJXwUH+J- zjC!$*xtW3C8&V3O?$o-nGj<1CBRz zmH$>TgeD;+0mIh(O~b#^;y?(XV_T?8Yi@B%_24N4Ywm2lY&x#H?dXscP6HMnb=C5> zzU%H2Vi=^Mn{I0xsqjg;!ueCeSvuq*HGuG?wR+uvC`s6>0fE+wop1dP7~?LAvGY4J zXTCno^{YFQqvaa*omm{)kdQKQAQk)uq$q>HR!6069R$zr4|# zoFfZLs<$lI2CB_bYc^NsAMQ+@X-&Ge=RIYaAfPm(Xv+_;m52002KiYosA#B@Y2_P3 z@_O<~9IKebH0o*7@ji`3udlu!nA{hg+Bgr!yFu^%$w58_-C){Pi;LZt%*@RkA0Qgz zazZxNx9nd2#!%b8ZCS>tCeqw(PHzN+$@P)4 zezeVC3Z!yX6Uw29=t~AD3pCMnY~P!d-`Y1h`LJAHU3h^X{DFB2UPC13FQ(RY9t+X(Ek-Eg3r&XB*3*LJ(|0m)VnyeY{R&06uEO1hc3y8B%nj<^t4rRz~2U} zn5R$;ja(H?{~|dnR{|0(j>#2TBpbMKEUW5s6>rtk$H8@y9_o zFFv}DE-XxwU!i5eDcno~`qJ-DJx@7aNF%I*imlHxae;D^J{lQxx#bwr+%8Q}>{GYb>f`Z6+V8!}*KHDl>d5)_> zQXwDf1PFDgl$%(EQ7Yi2g)EHLjoVPM9g9)q7g;6y`{pPYb7H$*?dQzqmY7Vqd38(0 zZ@*WJmBXE`J#y-ea@!=gMdOu*ly>e60tO9u-5i}sX;umDjSaL< z7ZdvbS0cf~>21C3w(s`;m-kVK&{+VgA(kJ6mZ!2n7jz~jDNpHnf#(-yYPW|sVHEG~ zD{KG`2u^90dQ?#3Kc*6A{$8&{)UH(cAyHx){NzhhN`^uf>xpmKCZn_{Bbi1ORw?T} z(}x2qvFl~ukR!m3eadEhZ`9m0XIYJCXh`tfUo)2!ioF#y<3p#^Bq@fRXzzqgx*S3} z>Pex1J-I$sstKie@SYY+n0IzJj)OiUrQ1Nt#;-owrFFhEQ@Rf~LW}|AB#f-R+1TWk z9W3A%NyC>`AW78%36VjMhD@~)*$E0N8+U?)P4p9vQ3mmVz@)P@=~A4%T=75DU^ce$ zH7=C(70;!aL{op4xyu<(%N0^M!4yrannoEy{o!Z*50sDlJQW4_)$8^Bc~T_*oc`|6 z!ejNJhIqzWV}A%AE9&m?pD!F%;ZiDlaS@b2Z$8oty2T>*s2amB;eN= zBDj}!$gEF67wciyP(r)R_E!gIax&_#n6J*H&;$o%!iQ~|K5HV(E;=~}qacvo{*pv4 z;e=!fN}4O(F90T!l2L?0@iB)-v=rP4$J=dgV(WDfdnaHN6TX2S zK98Cy9%<`t?Yqf@UR~_3JCL7xDG8BY?mg}+POAA@3UR5nEW%_vfQl_b;B*=LhQfA)YX+d5lTX%>P zZXiAKucQLd+C5am3{Zw<5}2U&XP8418gTkY-^`O5GoOI`$l!N#PijTF1F_Vf?yl+f zyFqD5A!ITwy7uBagtkDeiYD(MCl)Yx9hlpB{lq4;Qj2~!N^O>~b7Csw852pEm)QTec2m$&LaKd1)F?Hfk89~!wntu0$Ht_> z4`sOA+01fz!u2HOLVVV0k466cfs#^m=~P()WkMRtR6- zJ2#n{c#L`|7~7;iPJ0|>s;p<7UDG(Y6xVOQLm9{8s5N${B=4!A6u3)TO}~4k^5@RVazJEy6u$1d5ex zNs|w9`IMLWC5*mrTF&B=9Y&Pn^qps}&+*mEmC6a|bh~D9O=ejCoGl3;6b=5%gV-JnuM+L zk`qV!r$D_oL#g`N2{6Cz4@U9vCMn3fC31ltGVX_hfDwmq=GK~d|1RW1h?Uxq7bH8Op z=^qcdmmn+|g1`k?{=<3ud?5zu>^mT6bsfM1cbTxVaJP>?l*>RRzpR1;aILj3SkW)}DO!T0(Dk&&b?z9t*FyZ$>Ix^ff@;y3qghd_63Kj4%<;Zj-e4?@U#sB;E7rx`H0?8pB4-Du*%KHB?t!dtLN3*MbNT}0B#-wLosHE~A0-B`NoI+HK`=dhg#fg~0CM4iFEyapqSkEq!-Eu9vTZG(5p!T$6-asjjRI zx{8@@3yU0hqEj~SFb*~STa>Pjjay$E?4Cbda+FaiAgGH1Zdh}KQTw|}Mi+`nKM3fE znB)hTTzn$E3tBq~sh13_kh3>BjBAD>h{fBz9ayG4V zD?g7>K0K$(hKds?TQv)lX8DJ`OXu+F4+v7oIT{;_8{jJEfWm%pP8ITf6J$UjSK#r) z$!|l&z|2_m?K3m#Vdo&;q^Xyld=4404H=wk3tqNX)|Iw@^wXneg z(f+mU0)lNn#{j=AA$qo?JKTHrKB_Yx_I+_JMCmDqjmXMSPQOykW@IYe|N7nwwCQ6N zFH{>H)IHozPdViS37{AQTL!_0*lH_L>ai zPZ0nl0|S#iUSvpV5F!jHCWYvCu*L3WMizI75P|ZyJTRScBjeQgVd^!|jdB&ySvnMo-*TI6R?uvg3=Xek0~)N3eSvK$#NAsA?+721NQnS(tpF0eZidwEbV@L292 z^eQKs<*BO_tC%*r0JP6ukYH?XlF{uL1^A?Av~ArZjcklx#}_uJ6lU86lI$6p6hRR^ z3ornYs6>0oC@-AiLvBn-nePYro-DH+p`_l*7f9|M+zM>E%{wdk*w;cvo_NR7Zftcu zG0GiO?|4Chy0-AJv=1^%J}AmXs@{V0u2}yIqB5lqU#F?LohN8z-P+^CHaBAPQL?i! zo{)j2d`@+fSe(|1)J?wfoC=(m5nCMH_i1nmN(rk(V^FIB-u1&?M@snS{|jt zCeeLK$dYOoP!uq}{_0zlZaR2Gq&cUTV^=GIk?mg$Ke9!dg>cMU3C%2Y-ILaES^*V*wAI;lCh}2SzmgWCWiX*ZM2QD|R-)I9EGi;*HAZP&KfsDCoZ1lN%Dyd6| z2e&RDjo7eR1wFjE^d6SbX^A(&0k#u*xS|?~Ea$3YlUW}xKv*LVDVefQRv*a!7U(ec zpTDX|*!rUSonACgE=r=qPoW_QM9_jMuiisn7)qw}r5yAJL}EIZ&{zmiaM6L$UTcu~ zU-E-dK_){vumM_gU9W%9{PS*{t2e7Z392qlQG#FaS6Fzp?#Nt5XYp4>(lizYbyMc= zsyEXgWM*)5xqszk!#Y_L$nkQ7J1mY;0`Ta2=rU!xo?y$@=qC%;65>R}W#rQZFA5?d zU4qz-X~-whBfkunx%^LHFi2=m+KpOvUs(H3L88sw7peXnv6A^jO)ue?P$-FZCKvNw z(@9#JjxW96Zs)2un(?2Uj2-a)%dv=;w`Eq2v!9N+Jzt%@ZRDHs#fGhl`i_ayVB~Mf zGZ%Fe%HG`%H#=?gd!@`}*I;scvVj^OP)GzZ5D8Gw6gvaR_VYTom!sbHdsA3-@DAhfF4g*9Ek>oD7XU)ph#l*8@p(pR>hO%9 zbYs3Vpv&wMH66AiM8iJGsKMx-y(Ehh-LSl@!Mtd6!xF7&iIw06(7l-Rkze+{XBv&z z8#(&k#a(n!5agmk`e){9~| zP1?xgiTIRZIBAtByE6lRQdAbW-uj|SRx8%%AutE<5IiBcy5II_4d1Pcbil-z&fbBc zB{v~xOFSttstWU-N-s>@@0TqCbFA1j1-l|=I(V_j_8BcSL-s*iCrNv3#@=BH)Y|2R zb@pYIR6b4kM=>r6>!WSmvNMKr+Ea=C9#bkRgu$SMMWMtzU9BQv9Q#bsI2G1p-fr%oYRbaz>5?j~=r^k78VML89%eC$3nxG)8M~p(V`0 zrZb|A8Xl$q{XUqN7YuGL_)0C^LaIK$c?SfpCB3iW95))C7uJq4i_aRYt>cRxkRUCW zfz9uHgw9b#v(b4E9{Pc6()lU2u2r;w07;LP;8-y&jRQq^&R9_vI(ghcDd@;2%!z|b zWIwoBEc@NC)BVM=u^=0F9%DtUm1hp$8ByJBvUJ4En^Ttbh#1#5A(^O1VPIzw_ zc??Wd$r*SmM3PH>QakPlST-KS3ru;tuplEuN=+#o_S-?oDR$)Cf@iV^?Ocj3usz0c zu^%K=sGQ$;;yFuuqN@IuGBn? z`*+Ff_lA#U4%^Q4sPFwO7<=(2kJQ0$KSs!%PhNk>Qr$~_WQma{m*KDrXUO}0?ofKk zJ3rcphB%=#90?3ZF#zG&SP*7ZJ-D%(scOyf0n;+vu};VYJ7Z#k9|RW^JuT2FF*%u2 z-(3V4hw8}g6D5l%@xfKqBFDE!cA*7^e`oRIj$S`-9fZZC*wh}*A^%0SsF#77gmVPfvb!OfEk7n&YFZh9FSWLv!&w*?wI%~?FjZru zn$j4M(t!HK@Y@g4jL9U<1s!2nM!+vGwj?Ht=x2I|BVcBa*YsceLLsUq>OKMMJ!wwm z2eG2Fg478bAf3p#+_rS&O%W4idT^NUK!Qtr$Y2 zV6RZjdA;}X8Azaeq_PUEr||1PHcs;fB<|G^<#PL)EN>h|a=HvznW!uB7yb;x28BUF zFm5e#XX94s;_M5tByPi#locBLWbRh~#$Jd~NH4uGKdM+3GgF<*eO%CAIM(FKa=cR9 zuQr@^?cnn%cA|}GN{Qh@zLWEGmO4(F)2NoGJg<_94kLQ zjXw;&WUj_e-WwYntK%)GGw7O*url6147sAfnIn_U^hzP~W;p<4m6 z$O3@wLWSc_>Wm;z-61>+mHO+%)>p(=_(LK((gN)wA@vxIkT4{4SD z#%p+R^k8mFmiXN4)-c{yWvcfeufgYu;asOri2P7@j#oUR6{|8&iMD%@5rbK6<|^ht zl?$l{MR^-=y)V{m`;qqWq7h;p%k6%(S4-5948|`Q4nZh?!&@j`fw21g)2_(UbSw@> zC++2_O)`g^YW<+0Z8-BIsD?`*9>}2{Ic#nkxh|vV{i@8yiDvj-Y)RMH?5ZW}h1?M~ zx?TGkVZQ)ifz~RJS(KwMvudAaggIZqS$k5Kv)>S})nhz1dJ|d!*EiRji;E)rwd_m9 zULUE9HKrgFHDO47w}#7v11b(ivyjs1*qxHhn=rH(cm!Qka37Umaml)<8^0x zjg-?@oPJ>Vx9!hoTR8W2&ib}Rh;v0cG7|Vcvv}H}NI0l1J0Q*LKS;D?XyT^n5k36i zQN`fx@e{lLLNxAI!Z$R!0`*sq&NKz#vD``V&~@?dlv|R#2S&0H9aikvWa=Y_!Pr-I zv}fC_WQgnb;n@7Z;F7uGMV2po02(#m^w|BbSak6p-lySMVKu~Cpg=)SLMrY#@5kze z>8wd`xNYG$$w5LEK4v!w^-{Wh>+SD-d5_nvH}e`=SuB6B#(Ydi-$^-7A|!UR9B|eX z;%s$bi}0cl2b|r7YeRxUV)OOzBb(iPGfE4Fo-2F&bQp--Rmhw@-Ue6zf#-vOw7Dfa zW?sH=A@*>*a-nk`ZPIE*BzUIdMw?=IiT#n1^f>GpKZWd|SE?k=PbbcW10ph7slsUE zCQVP*i_;_|hIyu|OO6Zh4(JA= z^Gbmw%g^u#ZqyB4M)SM+*^xO=z9}5MV8+SjsIs}yfbS2I5b|anvfKj(wOCn6E;2>B zhd=4F%!37tX=EmFT$45yBApAfrVd)Na+R+N8@?{!Z@)6DRJd}2lW?QMD#*4MkeSwp zN^JN`#-H&V(K;A1{VI>%gQBy8$(u7HNDO}k>X?K--+QMAasOLy@E+)mg-T=qr+|F^ zwCK(}c(WB=&qb0tOphS3q><--BMEQ_*T_FfUa~9(7iBX*LK~x5DR$oai8rmwkI! zaf7IDO@Vuq;jsj(C2F^{M6SgGV?@bED_c>}y{-(#o5fGgpk2i!%^M*?kJ^+%nf57u zs;yhJvrIPipRgE|L5b2lfSef-lmOyzyP@0N4X}10{x{-QC5OV*x%j6AM?~^55+DY% zA#aaE+v)GVBGnsbO^v3y5@Qx0&IHydKwwWm(_G(l7ra*OOo^Z zlZ0Kiox zq!iv(TvB_W8vQD0T>37xjP2fj*(IQtBaXu5Vp9qBaOCT67zcsCg;YUtF&QBh`xc~} z%o_7>kQyU%xbk6B^Z=slxJ*s2?aZ4Cba%vJX*FHs_ZW91jRW{|pr zxGM1!{nbuGr?{HntmZALG;PEH#ktlg}6h3d|7RpA%tY5TtT*LYH~vzM1WUowH7 z#|q#I2J(dfqwj^7bZjG9`I|8+s3;0X>T|ZjbB$J|<`yBEY(!W{%51EztLdQ!G3B7| zP^t%|e+>ExAe2Sd2;1O3Xbkj8A6ITiWgpChwX!?G-zd>^X(1GY*tc_dT=c~a`}2*# z8F!sW#S_q4Y(eDtBu@*y(rNe1(Of}v)2}X~bymSvPRt;@WPl86-`j*!_N+eH7-UGp zArOSTHT~@opLzK@0Y58KXA_1SLYtW7MY+CnUwhWPK9jxD1en;8F({l64w!yxy9_8& zoF|+7wYy!d!2;=Xt>#Jqh}AzlqyE{X=y`PnxvJ#|e4s1D#b8tLIL!lfGQXaY5?Yxe ziJk7mKT#hyc)5fjr2@b|40FZS(E#>29?WUGEYX-({c?Fjf&U21i-|$W=3Rc1%^sTeEj6*yZ>)lq;?UW$86e| z^w9?P2Bg&v=8WqHva)yChSBmoxnv-~^?82iLscW{F6bp+@+)-~px)qZQJ5#R94w@J zkSpm*c;Pmy`OwhFdBt7{ad_6~HpXN$W?&ys5=g&N z^r#A@Bb+%f7BB+*=!Ehhe)S(!E5pHPE1CUu8fykv6Cd4S`6#J$(=gIOfD34_laH!R zp9}R#!I2Vi8Kj;WWKA?(bOm8KaFh>1?4(DICTcJ6(rop9@P4##rpY?Qy{RkvpLDnyPBV=YPONQvw;b;@aFg>SDs#npYJlxq@MesG2#tbLw_2#oDB@o zOSX87uO#sa2LdYR@z~J5(Hny^5u#H*NzEf%W0U#Ozdh0W%5!{KI&!c1q0dEkRrD@q z@6NfAwtmlY-j8q>uUHb`O?cWkC(MhBbO8JgQqKPd;YLUuF!DUWClc7}^OuAwQubMa zn+)F2Y7=k@(g2W6M6?4Y>6yUt6_}rVSuL3xfvESAwnIrxpsr%KMSV6ZLTJkW^Z7?V3wjn+36q7>gosqwJjgt$1T1l`1ke>H< z8Qv%}$@gG`AS}?K#^;gELz|Z8kOpj|vvie+`n|Q35($Il{wY2wJaexMkk6h7tkIwt zP%a6ePY|7oqa-H<*-iQLk~fZpG70U(yHs7xUt<_Wc~enhwlN6r)TB(*gM?4(uZOFL zj*Wg30JT0`DhmV%yru~*qaoQsU}yr$we)>H;*xDGvRYUz&6{RF zK&cyldLoX2S75WCp>YTNTp>3z!phM^`4&k9lB1Oe@RZbRR|_q?Ecf3CUF?_HuFU9! zYMcnc5pWc${kZS&Jzrwt(=mj))#OI#`poLq5<{FsQ6`ZaNI4^P1wW>!CURzi^$FhdOeJ}u1;cHBo!0@KzV%M0S<9WHqD3t@c&Lk3_Q&vjAYNZ z?g)$CUm6Sw5j)7zNgO&>a5k0d z5>zB+=u3~~Jo>SVM)NyBY7Hidw_K2rAW>q#8WL+boi|*3ua8_L*hZR@QvQ<+;^>jO z+`H||`~s3X&v=C4eHdMUgu$j;?q z@V>Yk9Ak-0<^*iy6oGM<_KuW<@@0am_UQ?GhEO8hW(<+G5aUQzmh?<*?%C7nc%*5# zWw~YoUp&>5ihnQ1j5c1&4dKQu9JZfLqQ6LZ>$+ekrp~|2iAZDbl;Zn=jbc@T!HM1g zDxNrSk2pw|vqdgx$b@zAX^F_6O-}u4)pq?y8oYe=Gg-gxPJY?NKb-?p%f-LSX8k8x zAE^D7?rSTJx#Zc|v`CAh&KJ*nVc&Gl0qY$IY?ppmZfM4u8^@5CulL8v>hlIxl99ZC zH+97FYWfR(X#Z7QjFJf^*yWb;9OTo>ltu!)B7h$`zb2xVc(UBTDFEhBa*&AlGuD^( z!4n@uAia|7Th*khGU)U?RD& zFgLHz=tWVd;2g8$Oj4F3JNQC!4+f#n4dhe-&VdLX_u1JXBi&BL0nYl}Z&aH-%}u(` zII&f0Z`n~W3oq+1mAEHvJI6spk1y9TIvc1$O|r4EO{an9Rsha#OWWpv%#R>*N{wd> z$bcG)hE}W-(EDp4FKU?;mR_QtT7(Ay1&e+l?aJO z3^mHQ=QJ-M_(Qk!EIF(+qwgQRKnv{KusxDB=sR}jt&c1ss)gcSSN(9<#V6bP%js3K zqaI{JX8s${yXf!GAx`pe?jL_%S1krghC z3N}hnmMGjKiivTkFA&)2JSjkkE=XI6iT_Q&aGVh;9IPPmBcnW&*~yL}gXD$SM`DG# zIn_UE40o10Ih(phuSydk0hu>mi6p{K``dDgHpNYWkqnDnM>?#v5nTyO>dN`#LvQue@s;L{zk5{ACDB7A{D^9kA zeqwN316x}&svKbh`F6(#F=v|gH&_!FRcHCm?Mpu<-x4%Q<qVP;e?aN&Gb!qHmmkfRYWx;z<#+{`XQs>d8OH5K`gB+5 zplELEr-&dA4ZuE~aMIEv&&%iMn&Av}D!WnnCWk#9v_}Kpas|u@y|6T+#NZUYc!tyr zPvg4Ugw~lUaTcPtp_-F@Vxa%j6i#7EYR9mLHN+H+Ph9UJ;gMQ}saOIBWI-VG@FfZ_ z5JVI7Ao2TGAZ$@;_NUbTy4N}UZsDg80gqqFXIa3Y7Wxb z&b?5-^+}_LgVW~|yu*qTn?&q~6lf`Vx-Z}IPw|WF6feA~tEET#5S6Mf`oY;z(gHvN zc`I%`-B02ejbaOR*2^?c`OuDo0O=mOQP`zg)r-^vAC+Bktm^=}Co3u;{AC`Bo5B<bj$wFWu4HT~yp-#jsm*{RRb;vbd`4lM*+=ECbxV`}xA$`|a6tr^n z%vW-n?fPjf@w)KIq-41D&>1NV`a@iwNpe5U!r;0BP2;nHCo;z6tu``#_^rqcLmiPh zm%891q}Qf=QdmS`{}o_rZYs09X{e~%QYdcfikNMgBFb2rqmL{zcqkI_bn{QChD$F9 za}%=y1aqIXLjRll#0hF688^>JUrPZoN2)t02Bjle^KP2-l_B51M8i}``fi<-mX`sK zqcf#xEb3^EN_Fmq$B2wscf+Q2W-o^YXIyuwYFJPSU>d4}#`02E1Hj?|rCY3eRKOW# zDDa2N+SO@>uuMvOL#^#oMotGBnVKfQd8;5dSg2fFH}JI+^GcLAbP?rc>a}$|S)@kl=pB$TzXb!4aLK+EY^x0!t98s5$u*-^vxK;66&$C1`1z?6J(dspJZra%R~}a_eGfXG#~SBL%k0ixy28`}i4; z?N;9xb1+vdd9+kl78m!__2pC#|NJoW-1^JF)cp)lpro~>$?>7}+00H?i1+YnMR+2) z`k*s|R3vB1E@2YRlzBOrhXCbrOu4nx7x8mFjWHE6VErF}w~ZFz6Ge$=vgcPlN*|m- z4jXvZBTW(v@Ujq{@LgR9Ki{6XY+}*62vc2oRx7g&l#9vA*a3@*x6iN(4%_j6xrE;M zPl7w=univ+XvAfzb^2+2T)kM;z~AtNnqG!w2`LZwJM*Cmn)?m-d96XTr~uJMEnSeo zcO`8nO4i$6QL${q(DH~mMaH&}*bP(f7!WEqnrDG30Gas#odd`}m&qCYNMmAVdmeAF z<8d|Xj7NOsoE7~%3PRR8t}3{;7o!)Huv2P@S1zRqc^RV(JduA!?;fOcokE$0+!IOe zw+V*Z5i?_k`NyjX9euU=gzm$mB)zUn0C#!9m0qbCw6&Ci{B!$f;#~?rki#QM=GNAM zy_V|@p;_$H`IOIwjwPVo47$O{h2pW6TJ>bVFt0!!-eY~FrU~!Fx=Ri zUuvHqIJ&-evfWO!@fJroK@u)pD&fHY^XC^wi$_4Eo8Ol>^cS4k0yLK#VX-3J<)T??E}eO*t45xmhWv156>0`eqTFss6}&yz;2yL!WK^kZ@zIRrRsU&c7!h7;0z7 z11F={m;E`|e;h6}AE`g{$&*fAeA1FEDgTJ{*@UqNeE=3+abiMHv@R@}ULm-Pl|Wr` zdSKgl?*L{q)r?Z{_tMrvDwjbN#hyDY%or}siKVQ}W`^2J%@hjc{heV}3hO1Svz zyWy0GlYhjeSyg$tiP-+*wXGSPw9`cL`k%=B7diw8-O9eVe;O@;a6DKFQ0?i+j0EJA zB7vtDx*2ny-G{ClG)21^v!zLZ;C+7nNF)WEe;9TByj1Ny5sZWR$as$Y`a4ZMKy6h` z@DtXAmy5ZM9S(zB5Q6nEuk%F0a4v;B_QCD+h%N>PaaJtTB% zDzNme#Ct5%#hNI+9$tFKYZXJibPwC2d^Y%)my3W*&gWTy7Y{2C+L@s~S*@=JIO|f{JHy$B&GZr#c+kZlfCi-Zio$X+waX zR(D1h^mU(+OB%Qv_N*^GQgJ&I54vfZ4RKJCff%T7V^3ErCu%DUw=)?gEkdgy-kFKy z2Twbo8o0Yp-`HytS$%qBO6=|vzJ06il#v4L5N4a=V7kxMu5TP?UT#;>^(JNmi9b-i zZWYjhtr@66gOT}*7#Cv8P-%*%af3y;U+Xcd!Ty@sWJUa`!~j1xkm{q3r0l>=+fNHz z8%X#DSd5oFDyTV>@4$c9+E<^#w{AO(Cv8kb$DTh7Z5uMW>MxB$pWMFnsd?u@$w!4v z?uDHinWyn=$D58Cw%-4lHj1)p+5p>@kk(&sNxL7b%^GaT!Drl8JCnM=M#0GQPA z1rVO*xL$~rW@MmA*|fgH+vb|>;<@V*kphRBd{Gtwd~n; ztBvK$DvoJDGOqzC2m;|~utsp0`i$)IuyCDg`+ry$Z!JKoTTziT5tF5t>m9Msci-GK ziz;hG=N=ueEhIeZw-gDWectwOv;ic6Lu=qmUmpB4ygl~4v>;rMe$6C7;wv}Ip1Im1 z)QK#fTkzn!hUVw*5%MQBEw=-+z8%#&00#z8s6S5RLL%H@p+xeGg%s44o6j4syM!o|Z;PD9L=*cbw$VMQ6 zQJ5sda`2o4SxW_-T`g|BJ;DEi>snM;g%Zw-h+X$I#sjC3xB-I-Luse~-iEP_+7?)U zp&Sdww(Sc;{MtCkzy-7R7ZFx&wSrvIvigUXTA9IwC<3y$kckn0>s1uH8JP}{KPE}X zBN5A>vPu3rm>5oQhW)Qd+U6e3t1prizt$5yIq=?f40fEOwyA04RTufin=Vd?9^>1J zQM2{*MW#~oX>C0~`KL2SRs9!p42EcK#f(xYDzSIq9)zk{NpK3HT8kv>Q~JBS^U0adnMj~& zH3bx`)wpYTpyC@f)FX(ivV)n?^fN``E2||b`9Z#3*_ott6Ll}GaUSAh%$!zhqk7hvj=s5^OS^DwJF@wXe(Ya#4V-9e&f`Y|; zZxM=U@7w*$adyh!?;*tO&>OQW{T7EpEQi~_Rw9;m=rc<47c+-XuIa|0XLdY#P)$H- z#BHwAdvQp4jP6r9fEV%(UQ4OA#_HOIVzLln{&sjc!>|h`acI$syIYKSdeW62l}ub} zcA3vwbs)`P1eXC)DE6U^-wThL$7>&}3G^RKpP>!AxaGG~H? zdG6j+y;^3P$?%&4MsiVlcmJXm%l12epA$I(%2tb~!}`-0v%+s;msdhBWuPBjs5Se`I{cIf5a!=bj3g4Vo9ZJaVR0R|h7^fRCLr<+0f5 za847Hv^SpImGmD@CYw#Olt36JpsHlycF$$1J%3HTP&PvYYqV>Y)MRAw>0NG=8T#O% zsS8G3n85aSGm-(H>zny+hVb!cP~T^x(gzxB)dFCwGlk zO-r}V7aOS#^Rk(k{v*u?tK!{idt3##?8{ESBAS6%q@)mr6a9_(4DOqoE;Iaqm}|`5 z1Io8tjd0U?{%va!!WSUG;vy#8}?&p5+U z#K)V#=Q}Xeu}O6^DZl{pd|aIY$LvzN-}`%PzHh06Y~yGDd=@voDq$D% zjzw#ouXoMSbdlHTc z0obD#L^EB@KV_@&J{wxaPbon`fk1&3G8ilOS{O0k_LlMRzStoON%>5D!bb=$NQ zYPVK`7u~{wyDaWKfA#*LESpaH4GL*YqT8&D5;YIeYh9sgWJ-1ECBKY?+?6k z*^hcQ1d!l;9K8H5r5cS2vpwlFV3_5cP4>{(1vxY2ie)Pv6gWn1zfDlTQzw1ci`s&kCg*_CKR#B=E&N zA+$~Ag!>QFR)-|_BQ)lY>9am%>_;@9Z;rH2Op1pFM1dTE;EgbY`m6^^DyB0hOtXvk zLk}zo_^o)!wvNrmX;8lz`GZ2HNW;pd#LQ~2PYIbz`j>9t-h=(YwbnUudVn?6Y{O!W zP7T1`+Yr;=64;MJ;%nowO24!0U&_!DWSwA-%;JShiVr2wioS?D7|mDo4G=C-ztc?f ze?_8HvLGF20D(xP;kxe;F*@~v@=2h+;Y-H@Zb|xxyji$~Csi2_8CT`wT@o;snSH`5 zdQaWDr1*Fyr>7hrfqTO{A8#*|HCufrc0Z<>l>CH06E?U&Tx#qpOPMShNCK{wcJIop z7eGpiM~4IJ-0kEm?i{Wx8hxkE_Xm%~6wx>|#}$$5z1*7)Dv|iom$9mVPdH7|Du(qT z&ZV~uv?HA>ysJO~|8rwFm~z)96qwV>#gF0{siif!XScd+FAkw<#l{&?_*q!Op^=j^ zgU6zOgZxA~T5+T>{m#$-Q@{i+Vy-CIu?B8UbXZB2>NMa!g`Ug)Wuso=rw45`0v}ht zQEw!mI44^V=eg(Mx+OUrExXTDj+8|Ldbx7*UUpEc#QHlrdS&9-qwT?v}=bN zkt2xaTDc#F^A?x_Big#z$zzveP^qn+?20UJ9aBz;fIX{dEOIIQM|-eI1EZs^cT6iq z4Ji;l%Hv`nS!dn^D#=@6($mhWeU83w!~!WE)0KI zCx(#GVgJ#a7_>k4B=k@6mENB)^ZvIS*2ISQ+%T12>3q#8$I^j6I7D*Kqya35b;Qhd z1ImQa(*LkUp!}cJCQJTki6OePq=ZWM`z@5N9OL|tMXzWiV%3?*1bp1sfVn945?Dy7 zJbi^esEX(W_Z@O3Z1%#a^B#g}yu+UFy5=ZdY1g6`Njp%jS%<>7N|NV%h`au)8_$n4 z+FfSbxBLgc)dhY*a3oDuzTDh~M)k{S`Pf*c8zNm9sm@X39U!BiVRoQg>kId6n^Dq6 z`llF5D%1 z$IA375y$%+Ut4%7Du6nXFYm}^KxSIA;VLEb9TVbO=rj6()a82ygrY?>q%~dFU+UfH z3BZhhwCW>PdDV}!*)WOASsio*B_niAhHiXEuE=(k<7H1q$s0!HP9}axb1D zAmhpNsyVW9W#Esa)6eV{nX#g_S1Jq-AA!ooaCW*fU+m+VIbn3Hr7H>NK#X9k>eeUx zQ3utH3oMomyXdK&(Q+5?wna`zB8_}{gf%q22jllIZ&MJLer^d-JV~Y6Lrf5|9D<}2 zpG^O(BV^kGURIO<+J0y^-Di?K&RZO+4mDHa zz@Qs%=CZ993NtA7j?c-4tt71DW}b0!n7AF43fr6YB@!0VYZ=NgMR@&fk(9M;`AKV~ zy2t=h#b}^)6YA(-Y{E)sKw$~`+>e0``HjrBR<^q^O~CRu=y zbnu%$sot!gj>ddY@z!7};b8et0TtaS-7XP$MZ@s{dB(D`EMI@XzThG0Tn+z`kR%Mo zmJZ?pwWu-E6T1*J>3eQ5=UGE?a$!a@M=-D@62*Q+*^;jMJM1k0-KRy<{-gA>it~3N zUgtl^s^rr@7k^^#maBn>F?XkV2Ie63)|!r)ijx!O z)zv25SP}Q~w0jXmR`jXBOqkjY-6c-4sw<^^z^0&NfSV>g|vsABS>OU;H{{ z7CLs#A>zZ57acVQ>F!rN;UlB#NYKT5TZgZ= zi4Nbegj)eAWwgw4Kz=h*<;1)giX7drJ1;A0ntk{>;=?ctDAwvNG1%~+|qi&F6* z79ug_7jPON{DjU>OsUHJ8#khAUIR}jo4y~dzQSKk=fZsdSaRNU;y zqh$dYV3jFOyXisT3${BT#prU)!9f%c4}SSa)s>|nTTwbK?clB`Qwr~NHK(S{*BcRs zPlMWROL;ShtS8h1WJ`$gWR#{EMhIAYv&IQfG^F}qm>N+KSCI(ah6wJOyNY?DfYDXu z34T=Vl$kvV>-5{{0p1m*LSw)G%w9sJD~y7i=FjZ86vB|aosmH<{j(UTFc4*mvSM2; zxvod=N`|$lWr8N#=HGPrd`dqp1*(0y%|29T(as6LIpZ@d+zUDX#5A}ybHB!9|+Jk07XpHJd_M^7fVVRFEGnoqw7OE4I<(b(Ux&TPFwrp5`_?y zL>ZeH%ah}!o~zT75(0@w zJYpah7lHsgK*Yao23&pkeJWZ;9y$}@*HLT;uUMO#K(ng1vsRSnB~tQ_VET;VZmtXx zmRogRjjr7fV7-|#O=*XQejCRFW^hYOO#Al}>Jqf1T_uOVL8n_p50s0_U8g#A7-Rt+ z!8D)K%bP?6?Q+icB7^l#QhdQJICz@HhWX1;)d+AIrT964y|`@$`W|90v7e1n39i$PZ@@CI6r_hu}3dKmy z5;yxn@nV$`zi_rOp+9!ht2s-*=L(u;VgBQ|{7sIeUe8{WYCS;ZS=76?^Hw;H`y|mb zel}ACU!SS>h$GU#$+z8t_sKz&a#9+$kvkLW5yf}70D$Qi7zz}@0t_z-$VWz3d2nH{ z#MkA;PSj&=(io*^6l)zFqC76Fls>>~}xfbg5TpMe|~ z5dCBY|3A>n2-D0gSqTG|C7TVU)t@|kTiW+rfb&{+DB;TX{tYddUJo#s-{i=b7~hfH!9IIJ z_}{)sdZA=M7{%z;SLY8SLNo zh_6j~%Lnw_{fDmv4vR_peWfu6Mr|m9VxPr!-^LZm|3C#h23;T7?vf1now$WzDWX#H z^vnJ_Q>pCDWh0zUKd<4*1p%5POBAtlzU;V2P=@(R(hYxP(nJbaZqY^%k@2Vea!1`c z!;5uaAzC42^x3bLsp@PW$+Z*hTQi~kFN9GQ#=Hyx#s0kDS%}f5A`YI${VKdgy8=wUPV}8) z1}~%>NSodljG zD`H{!}D!OLOA%hR+%O5>=8MXSRgKtpcIEVDw#ZkKD_*|FIwUAFDD4IXD@YKl+ z*0SvpWYEET;Z>8xS>hNhq6Y9`D#9kHus(p(x>NEgAbYlS-a0ox=pt*yg#8Gz+A_gJ zRJ&Nop-LhYkQ0kH?;gB0&x>Cde@p3dLSk?7mwvZQ#jcvj5@04)oT7t`rQdV5+PK>HY$VMRnk{AtWYP)~u9MJa0sn)vj ziayq#V83e8(Gn{Y?Dm+v1Et@o5=y=%p3!}1keV|z(<$}S1JVLYo@}V}UqB$>r2|wQ z_JaA@3vG|FjnDI&`ys+WFPDQetH%T?cC@KwrpWTc9#K2E<&>#I`2=`jLzDfuw}Y<> zNHgp(4L@@N(AcY4EyJtQ%rV7K6#`zLz6@5{8%vgQ$R21|&+Sy_06#Ioi^_a!vhEM9 zSZ0RyI_6^lAt}t1Jr#vThaX>Lopka;;bo4wMB+L%ai7DSYpWkuAj1Z{YEGyV-Xrib6lKB3>0ePG|qk0_JPkb^v=3w2q^(h0TJxgaO?J zAO~zkX*n$xuz@+s2~^qyUyUdl{s=sS>?|@Y4IB6b0wwK8a@4L*)vPIOp?zDs#oHC9 zxnVA4;vi-5PTtt5k>sYpWkd^In-YR^(gsS_bG5YHPpHAub0^3YkIt@4FiOL;k9Lr7 z3`sYU&jN_kO;~#}z10}>*+^j4F8gwt@Sm$$m@#L+GZE@osyJJ=G!C_j>+vi>9odJ^ zOxrb3UqLWS;V^25p|GR-Mot~7=(wTf^5H`nJmzdvD#_H<`bu`N4~~>t0dIT#g#4zj zUTN$VFxHkC2a}=Z?;QY$i?Dey+7K&UugXuis-99+G?^7gB#IKf^2~PoHC5v?{rJ#z z4q|P@M4*la+~87vd|SAh`8bswAC>UEbKw_6GL+Bu*9u!~NXbwrVp|C1JD!Q#aZ>3x z_vm3$d+Pkci5q={h-6N^(j+dW2iRBZU7e`IVU5-TLzt$29Qi8R`l+*C?{`Bk%2uyf z3;p%06k3va4`BZyNOjsrt^-mEhrRDF&%@^<9@!xidW}1doy{{4yqnV_v=jma@$O-8 zUFa|JZXCu;ROc7=*gnXcHAI`fm-%K<4z80KcW5s63L(Qk%E>z-{EI$f-qZ#1eMn+< z0Lfe>6q)-wjB$1%COBphosX#pnVe=Rq4gZ8Z@@q(%~O*x{Z&UWDoY~bcesOyWRBl3 zJtaHsTbER>0{@*G{6VUIjke4|pJ%3tak@V{YS@Gr2j9o_08Ak7AUap#cSc=Q8yw-x zG2YIr3?l8RTp3d@>{13Xb5C$`QpJqt!VsqCpZBrL{>RVe=27-1xx}OUkED*^rnNKP zF|`C=*|=C>#S*REr#`8f1BO~!R@GnzF*7Mw={}Omgq3=?-?;D_mu8H+GOSSh2=*1e ztkoLSuE$PE^vJ`cfMzcDyYzWsDRo!yLEg^IXf+CfiQ7u8x_y$_Ijl(|5L!|M02tGG zAlkV^u;8$W*KWJwp?WZG&C7Jo2~85s!`$#3qEx}dG339J*4g=EfO0)0rFn#J*u(q{ zCM)U*$s+N3;VYk>+u%FwNZZ`!au(d@x>Fv5qUskIsqY`y2FI|_eAWPCr7xC*`pKu} zd*aAXz$Yjqx>8r42UboM3p4z27Z*p|QyO&|xg#%f13BK)zV`Pj95# zXJp1XT&qOq25C3h3x>D?K$qX(ZzL7chMD8qTsr`d9 z9n`nqxgYjbR9kUss-0GtnKs@X16xAK?T9aUKlXfq;=|^-Rj4Z10kA`@QaYKxfq&59 z##$bV*?x1*r^6e#QW!%C{CrpesxWXAQ>_=%-*sYi{L9kxmw0CkHP_3%k~$V)=RTG` zY!})&#mq4a!Q1R}NvRgc55zp`bv1&}Rags1yf1-Bpzj7)*NY%d?D<31;;tFxU0~%T z0$*0mOvl6WEo0}IXmzQ1f|NHmF8+I*i`InQkeCyr7~Ydx|2OPp_6jT1OsI>iDBXHjOC2ZwH$GM`ClktwYkK(mO&@Ki z5^}!U&=GUw_Gb5@>jF6Gq0J_1MtjzgwTx^B;$rxSu%UqU%xz1LK6yS?WiuSN5FoJV zZW1J(kI&gO)Cyuu*?er0K~r^g^zQvk#~*&AbonF-rEW?N!;7e**WJ(1Dq(?1K-gn& zd(%5!R=<-#fCN?N9||#LSwde5kACOtgC5&(=XnTwPH&X!J03epoLd zw4_v7d)q1#yg*I~5{61diAG&+su@tp$qeYi>=cX)k*%1k^jCtjKr%!%<%i)_W_~D> zQ>+C;bL$uwUnhE*0K~D+wvz2==VF{m9^UrijYW2roK%4Hyw<+=-PDSD{e;lMDp-rE z?Uo7*p5ghEXumC}?D zbF5HO1+&qk+=GE!kFD;O2OuhfH;%Yy6Fvnl)@lt=DED-fq6O+Z6?$3+2cYy@j`dT& zOfHe8kD-Ry=HJ*QkJ&l1B|fYzcR}S7*ms$0Av}_l)S+wo;FPCS^m=R`+&>`He7rv- zu?Hofa|KDka_r%aw!Y@KTEOuVR-}JARYqNLNzDFQGe*T9pFho8eV_{#hvd-F{FD>MK63fAQXm2yZ;&L`Np4oEqzTxrWKoX((d4U~AJXw$WkH2(@ z#DQyj`jXywDpB8x788iC7iuoo_RFd9QMDuXo~;CoU}&U7oU;8KGcIse&ly(%Id&UW zVtzDVM`MDOBmR|_i;zM;47_*{=E@poMDXqW4gMK)d3g^I)H0-3APw!*rt{2?$s2E9Y>8D>}N|m zS4sg^&BV8*punygw3!^1YVJ zp+Wb=YXE=MKU^_f*-mV^Ta1*K>poW~{B$p-!z`{%;OY@|noJF&(bE^F#ENXNybuQ2mq$u+9jm6kQ0$G7`Bt zkBLTgN|_P@Pwx}LuaiXNblYag_sWLkB5c@u1kn(hR3kXr@FsM@F0oH4PH0MI{M-);h6ZUG###Oh~M4$ zU!>EE9jgQf(G&r8Z50S0&wTwCM~v9~QjF zzna5^>vC_(>Z}a8#kb!wERPi9Q+*3C{Ho4c@m)jFN`aN9VG%{xNppEGJiTdZ`kvWP zVx(GbpFAwwqfO}?eTKZ>s5cE(EMG|%`Qvuk;)f8~i-htuCrB47%14ayHN+P+37K!x zKEbaqhJ0Mld;w*P+p^4}VG0pXKXDO(#xea3h|v>#JL6j2xL_w=Eclf~VtY1-&Y+9W{ZeaG1I*v_n=yfi1->T(nr;U8;64;WM zKWE;&POg(|BbEgPyOSXcn%tRQbGU&DGM1Kg!otCE0~H+%e;v$iHGP91ek#0_0|L&m zYLgzw_OB%cFzk*P#(6x`v(K~OBsxCxtbT<7px(gjCQn6%1klBKsHgPy4vedt+U)*l!2XPrZ6*EMzqhIKvyVq-?A@P<7JFTYBP+^Dd)7rTdlE z0B={dcYS0a;(7|&6=`YgUp}iVy#HMg&A)`E~DWj$6{GU+Syh5kQPY#l>^_+&#TA!L^(2$$x( z>OY^Ipw~F|E%t;n?x;jwOJ6RMw*{jdu=A_K>5-qw2(Eo(UfmH@Gsr!3M2X(PTzRg+ zVhqlCcVPG()iF!8gPaGSa;O~#MY}; zuZ=O6>LAc#31tu^=myY&-<4@pgO|-Tn-_P66KY$*Sc-U{SM08kIPt%hLkd@Hbfu|A z6oo$~S176mZMnfHH%VRJQsM$J564;cyH${v?Er;R29#M&IQ%Nk5|N`bWR0khX=fZf z2v(!s8rqcx$4=z|s(vo5d-Sfx- z)p8S##T&V=zKZv*HroNkqzlHvyB~Ij~Qo3%yBXN z_m-MRj_q>^e)Pgxv{tBBCpd01)v9*M?jwa6I4~*< zJMehCSyiZGBEEQQl)auZPR2>!@7}ZGFXWRkN$272R@)u1ZTvrXW!4XvA}HsKSy*z* zqbDg6o=m3V49@w+j=#U@JZm8igr4w}UA#%a1~n^qcj1uSR@>(twdBqL3zot!>PXO(@oTilp#h9J?%b)Ezduj@t!p{m%q29UycJ0GwZ3$gKiQj91_ z;#+%_E=K;wkcfW5m3ZMYKPsJ+l20zkb;_!3fmxnst&^wN&6hw)zE?!K|3%?6BJ`*) z#2*;n+LRjdLHB*%4JA+hj~yO1PB1MeN>db+P43<+W+t`gMm5hNtjeY^f4a1@ht221~K#tOa;lHEz`2C5FH z)erHqCvzw_ZD5k-PTEsRx*ssC0{~DTtOAGG2y;_cc{Axiff+-!YRBqy+w^_N8CX*R z8-%jj9^I~9#mqJ*Xfl-Pn$h1h+XG;|``u3Z;^eJBDqpeQQemun-*9i1DpS#@ZJLuc zgs65WopHFfU?f_=u-aCkYB2d8*Wlz`ITTsRuHut-T}FYE=pj~ex=>@*d{nWmQfeyJ z5+OaBhz5eHO>aHzEKWw$o@45A+u|RU+?B(vW2^=NtF-_Ag=LCniRiAdIG4KS@zlx7 z)UXT#4L2NXsNg51GNA|C0&ysH;gzhwPx0zwLZ`mnZrx_sRFt!TCGExZx- zE_@8^`PAmGmU*j=FiPvMe$*L(QqAA0WWx`PIPNi~8~XiNuq9*2l&A_2C2R_xb?;4h zm=F{;bFZA>u#th{s0r|*!c-0T!VJ~vYdI{>5kDKQ8G_}!u4C6G)h?{(>%VF}|FSR& z&|O~d;%p)OQCS&93`xo#Fy`7j=qBy%Q>)@9YV|tr|M=bxWVGuF8lgFA)d9G3Pu$f% zWljOk2&@v9sD)w}^%vW^wZvaW^#Dm>P5yq5v?8#JV5ZdMK@31a7oqoPjAG~%ywpWS z{^cn3L;!^n#M_l&xUI0;rv#6BJ9xF?yBfWPcx&BplE5sURO2yMB6t+m&R+hib2^=S zYWygA{LgAd4H4kpo#pMLFxl@cuJS|u>Ht+Er}@!iERS~KzC?9`!g}_UXd4I$q7`w5 z34ZhIla4DgasByylBFkwSzyo^9jPme`BHzpI*uwUW86YvF#0AqptrNEwj0}B~JM)z=R)%KU#c%`4JbfvQ` zw?k$UYuH}_dW8!pc>5KhKatJK8eHj?;84|X!1yt45=QGzRvLnip$j1f7^8ESqy#{4tQ;ou7XPq0)QP+OpVO%>QVu4Msl*zdLW4+NKhm#`TiEYg zg-&dD2WqaF&;hAkU%Se#m71FuJV3afi$=If_XSCw?+HHkhokPx%0B0EVogu8xD7y1 zs@u=AU5BWB6PWOXv~~N59U#bSVkP_idkJMrX!Ja4po}#X2nKK}gGP2L2NVWSsyhe1 zj+W3kYo1|no80q+HJrKw!ku}35N+C{T1_?8?5x_P*q&ns zYco7Z1~WcL!TTk_jicQyFHrZtPXgAgx&KXtY5$n8=-Y1}G5P|g_bowx?9>*Uvd^W) zY{3RXc_6fw(-*0`V@jHpsVQ;zSM;B;VPOthG6gf+vUAeD+Ml^v!Z<_w&X_O`{<$RW zd9$gVpXYN}Ni)A;>6eQI&(5A9d5#QwUrkjnHX|1e4uVsS^|hwHz0G05iUJ|Ph%Tki zEONBIT!Pzo%<|j5Brn-uJd3& z02e@|Q)FFrgkcJO221@(eX#dFo+?N`el=Z8V4y-*F3D+|B~3U*Mr)Q>&Z<0(sGyJm zBQ{l<&z?i|a|lLY3?))s;!4%G+%C$lILCJINRex4q_}BW)IIb~G_x zF5^OXOaf{J^#_IwQ>K7SpXGJ~mWj`9Jutd7`0&B5SS{ErY#@>fZ7xHPdC8toBzLsp zWJxiY=ctEf6QCsHDuQF#r!tKnkW6`Ycv%fG?iOta95giD;czJWpni#^y+wzwx7g{M zIAFnj_V>iahNd8ZSSc-Q7^$`J-(sNL(omcLeg#f6cgzuqg&?#We=?T$GKDXzA}OsI zXyOLcztb8UwF8`Z!(g-tCRBF5KZr|8r>fp5$!KQ%$`@1o)Ls@hBX*bzu+$iN)nh77 z;aicnYUIq_k6zdl1n!|&)pyg}I!5({#FB{bOCX%J*;1G&vFf zMj$|HgLeFb#Xi!?Bo~cU1#!xPa#v-;A#T8g8hD5O9(!6>3EUJcZQ;ua8`2X7%-%>3 zy!A-0bx&Z5%!NwTpvdov1>i6g`Ef4WfaY70N&QVz5V;}()8o|e|0`9b<$+VjGK2;Z zh{!VZ@xp{NVsdVxXnaY+cDH;>8$t6SZ-?#2ctGwLP3twtPO5vU$Vc(BtPv9=b?-e} zxk<1cGxx73@DE+1eswx;5HH=}d1^qqhI&f*uDs1yNGyEI?Ldh&ZXS&jnqwShvy`oa zY*HqU@}bn2$hpXIXh6+iK>%h&%nO0?>)uyW6JmtU3Sx(*<&?}btB;@TY(5j9oJ`k( z_mpCAr1lFsP~zaJras(2HpaqzRG65{QZhF~GxB(A210DAJLi5mh?laM@|seN3A23) z-^FrX3a}M#7z?#Df|_wjt&*r;9ubH}x;Y|25{Ubu=K6REDhLV5*>O)9Q@OgUsw5TK z;HMCR?tg#?ftd?n|ysyU^XF=HYnn6%<6 z*l|Lr#fw~#>Vm)TiM-~~Bzp?5EH{N)LVD(FNi~fiUfU0-+@)4ObOZ24D3FaNZBFcC zDkwH$=Y%t}>rJs4>t&>uFdc`ynzHkK*p{zw!UjUdeZ6;hyTM<$Veic`pzOnw8hl<1QRY;P!AXJ+>|u3REb6NX8) zuA(;4mCwOPgZb)VLzM|2$_*U=c>W2=t8*~mi&rD30K8F3Tj?4@XHSi^cA^<;J3SM? zf6tsTg{cPmi&8;b;SEOi}rCE3Gq8P8Gur}7jy4)=?~yxpV0afNfm7x z?G&b_Q|9rz3T_&sM}d8+?A$Xg_(c&{5rmb5Rr=GL$=+?Rq1 z%GcNNal#3)D-vIwTmp_Q@~j*$LfS6k*3iABgQAvqz{6q%_!bw;&m_3dR$w3Cov(aI zBPvAZq%PfV*FfS0?l;&FWTy#7AFQ?in7rf0l>oY6aqhLl6V3hXS@$PJ<5Pu*^?lsJ zFn#!PxrWR%Rto)+EF4fIuZ*b2-{zA)xC}8j zv?^|)Cm7+N_W^?tW0o-4?~~-S@%UsObJ5Nhy(1*1)mf!eT@fvW6trcHk zvQt%B`^oZU>%ciB%Y9#KE^slTm4n(+5V*1w4cA! zu0(EWaUFQzUeMqA#pi!-3cW@M{Rtb;@sG{(H2f)SmjKR<3;`m4PwV@7AF&aO{v#>( zocDgR$fGCIbz7G^pX>LGsZ<}+F^+~H5Q(YjJHsxwr1I*T9IWd@XbcGfL!_Pc_`)?l z*!CC+4*K^k&;Z>8qb=+v#JWJM3#@6%y?H$K$u!H z`600BOBL>n9!T-QU&Mmv*pD5h#XQU-?md`Y6R5@at@3mlii@Gt(6A38&J+z>x-ZI; zoiy~7w_01XlM}L!A4tX*Y&AtHiej)Gu0~a46GR%nAVfGLsU=(ctTdo!--sR`1P65M z=REoaYc(cIGmEQuLfJeh=##l?RmQl1g-4S(y&F=CPDaa7@SkBFkeTL209J@BKPkFx zV_REM9W=X)ou=JP-GNBkMiQ=<6@048#<1}Y)wQ$f{h3_Eu5nXG`TF!yb}+etunQEe zopA%Hkv@F>QOfGWkBj|@y>8-pRIJ$Cl+i_unjy5j6&nrLI`{IvPbE%CB^hm9O=rUq z`!O12z4HHm&_zm5S&MuClKa6eoV#i%=N02evmqCmzkQIoItl4za=l4hm{!=JC*Rz$ z%N~YBNbgv0JANBwCULUej4`k3sKU~v&;vPF=>Gyh5UkcLnXGBzr~)q$S004;PzW#5f-K`l2Dl4~McE%iNa>qb`fR{&&cdhuBwN>__5{Q=9;;1You*9_N$(7S zS-$(V>8E@1Bc_tc%4hye{>t>leUaFY)o;*q7WJmaf^xH!_4r#mQewtGDh z0~cxsu}p?(;^rS9n*Hs;^s!>n<|a~cA&&cM(%%o8Ee0!IAP-8_xO1zqtOH={bIr4uj5md=#b^I{|z^$}&aKwemkWj*lC+}Eqnk;Rbq zWv>__4i#`{!pvIZikrq0H0%rF_Gp+P4ZArc}z0<|A8NmZ3#2F6D-%maiu z5Nqn60(%9uQoJor_yytWXh_pminMPEP|P#_L=UlC|EkTYhO3a5YNkZ-9{`u>@65TV zCE6dsY58&4Qw_6E@tAEXvUx;Ir+G$H?7TSJjV6)IftedDcxy0tSHwJJ8h~+sXPZY zD;EGRjS<`K5238bX|$BupW3ISPlBAcKR^R1hpwwyx2hfuCU$3-r{|nMqMywk?-DoN z_U_{l8Ve2On{U`;rbtfL+lct|EM$d;PdFJvHSM-RpyR>QfYX(rvL_FX{N!w0feI4u zB#usfX~LF|5pUZG;HN*U%qR@dNDk9xo2zGtUP)Q+UL7L@WsuE?Aa`wu7>=_6C~LPi zXq|gZu1p}-RR!n$Tz%Mjp zc<%p}*6KX*qh^&?Y)z0veIA~m#G6XJ>c2rrH6)U-J^KLAig)Ss@ZEHGpornf`2ji& z{;Z*j7%7Z%O9svsxf7Du94y-vl^Qto)i{a6cRV{ zXIXQko5hp*N|OokL3+}&asK_+{_!Eu*PzpnB%CY?*=gUU%D?@f6Z+&hdpWn7{)p=Z z%lhPOpMK0qx(0$jbbxX>5)ja_ zijLH%Iw!+Ip$ANxG~iUxZVGiV^(UzvAL?1IVZ+x7RUg6xIa_-r%-T=~r~Q|0`)sc! zH9+hxgwmQ54G!zRZE?vNP=dv^=|JyVM(bZ!zAp%Yl?Pi;M2>2uv5J8H1O3kV_%;&9 zmxYi*i{6&sm(dJUJ9W0_ZxhrdWf|RI_m~AC5eVjaBwtPK-K|fXhI;NbC2ya0wCJe} z_*{Q>PI`yS%dk&9J+P~2mSDrWW>{D_h_@DgovMnR4%yxtPHMKnq{%XdMPM^_v2)|< z^^pK&!hV!bdcSBxo^y>EcndLK&w^lE^*95%2FLV`!aRcKmV^YWg6V1`G(0eErWTnR zlujKSL;HWZvvQc?j~TsDam-JyY77=ll(+u7{nqwjy6hGJ?e(($Aj2% zmZF^%nMA9`Dx|`GnzT9A51{>n9RXJ&JzV(~J$UW2*!_W|48a^6%xoX98ARG;T<0P7 zbKpV5D3UBg`9M}OzMQkAX&W6~hQProP$S`Z&zJgw#8(=qUN}hi!P^lOl*g)+8w`o- z)l+;-rIY?BGG_bMWdqKUWu>Hne<%z=*zU~hNSW9{ey5=XYp~lr_rKi&$*PVo*R=9Xq?s(&7ynU;I=Bt2)&8; zB-4fDiW%^g_%6SGUns!c+Pot3CvVBRaSKpLZ^O3IX@AwJ;?}^m8akJ{wx?57A) zHTv+a&Z-QF>rn%GkzoAaaxaVqtms0rv3lJM*@3fMhlmD4{@hhXO$mgbf>XR|KB}i> z27;b^2_*x8tt1-eHjdCWN9_PHSCuY9tqlm)_Kla>PAy~VT6XlX1TZ2co7VLhHw^cG z7P=*xhe3g5`hI^8E=4}6y^3&n7xk(Dwr@oadn&FZ0#l;wl9`%kUV?4HwiL#vaxB?2 zxK5l8e(%|iY@vPRP9oU0gXu8S@4CmNd^SA-YVgdM$_AWsbW;LLl}5%x66e>&-P zWQ%laK_upNhaHXQPtTJ}xN>8# zdcT?f2xnJ6l(rMjv9;@#K-|T$S2=@r^66WX6=J5A?r4QQk5LM zh7A~=%_Eh50uh=OXSs%8_IFyS0S{>TO#61o?>TgQ3NHet7z~YCw-0#Pw@gqfaGEIP z{4}(C<3J=z_%%^?dDg)^tM^AE*{S~^A}MpXt;>ji3FGk3aRfzS~rp|`aWGV~nx*1dkWq@8RrW9cs3sDNj4 zHXp8Hvv3jx?Y^LkDhbhDr$z~#BzxkL%~bC5oA`sr{ajz}9|I4VM7pQw^53TYVRJGa zk>7TG&u4O?|AhqpiI59gq$%9QPqU=YX zHG9K!bP`*VgjFytw*WT^o$$(H=e|!Dfcm~ewAJek`J@+w3AxaSFa)rm=|(pWuT-v0 zbFvNPvV10GvGD_(UBRV2X@;@;%)jr*RI4rPso}-p#L_tbHehRSWhiSI_p3tVL?nPf z?$Kv+kOz%lsd?9B2RW1R0791s0MN6WG@S`9tRz+#X*9cL8UO-7p@YYt(#u%i7iU(9jvI@;+mj^h~iO zEx;*EAPC4rxX%k5Qy?gqQc4&B{im5>lG1;`%HUoMwHGp7P(E%1z6zA~p9Lc@fBl+k z+p30G?D*b1M0&g_`tbUn{($Xb+Lw|ReK*QD6A&=0je^~4u|QZGp|8K*1s%Zg10`rV zvKgjgxlF0=kBO$)fqi}ZR;(#Ly7KLzQ_0HtIWN7_zQ*i!y=ea;JZ!Gv=v0RL6AmPq z)Wb{sdl$k>K8cg3;weGPa{M=0$=Olf@A~+MUJh;+cH0P$w3q9p9Z^AMqoc?-zv}_X zyD+Bnl1tNUV%I)m7}HEu!(d;ZDc;Rfz{#K2cO0yjVyCtfqr5|j!Efio(^B}uw} z4=`^_i?(^!CjATJ8HSy-z$@Rupi_l@GPX<<;TC21;*7t`5i$n&H0%+qL-nl+Lssk)+L57;$p`>lr%PdeoYq8|pSF5RFy-W1!M$ZS+pjI-bShln z7&nWQgfc1-LFliF>cIuPQFKZV`%RH80e@&@A|W22KZR-%oONPJ_K_*8$N>r2-r1}W zh+eL4;^pr36xcZrwgmjqq<#~&%N9ecmDvBE#^X?;`e!NZy)P@1e7Kbw&G#4rddMLn zVGhfm|63daa1q7fns6bu&dIV%Z-1^2qS^ON8Z#?gU~ zk?>=HQxr3^tEI^S5*}aJe$8TIa@9@_xucz*d-5K0-up1m*ps7AD46gr^uXJohN&&2 zZ8F8pvFT4-Cw~V#YFK=41Ll(zmiWLk#`KqEIof9HVJr9LtCT_x0qq(0Al>?XwWrKF za}y&xdcB9_!xo_xvC~mepIO$O@~BkecU#@g?twKUjFP2E^<=;zryvbZhzKYzdz685 z5IG}vqiD8@G;$6m)YEZ0ooL7@3>qgztzO`d&b> zFqT@`9UVusq~cJZaJw;`c28YOEz9zPuymcck(%r(bmW;oA8@9*1kiGu@|x?T&35Mb z=x_8|UYa-tGAi#agcKCB`OC$1X~+I@M-K|tyP-h`dIc40G$8tMw`r*bBS8B{D-WCy zaV|dS_~$6`Hb}2&M`QJ~7UO+&q@?fDknRk$99B@MMSGDa+TVl(nA=;KYUKmZ`O=1Z zKM_dkiez(7dGvBWbuiiReQe;}=1l0PK~F1KfP*}CrsN%-F`aGXKe>HgxYy9aH+qt> z<4%-jemNB)1tPJy`rU|)IrzS*@99Hjt{ROQ{ilV3)p}4u-uzZOWI`x@qVS*aT5kus zCFSsH(ifn*Nm9rme!FT&^GcN*h@ZQDoazNi?ukCtg||B20)^{Fwg2kft~qeT?91Ns zJprv=Wr7;6YV~!Sdx8lU<*RyXbVOxUw@dEgL#llE{R@kbKRh6Hq&_>R2B9;L%XKzS zeH{xnw_e%YBD~@biOL6}TDJTR#H3yDrc1S8U}j7$y~-A5RhU4cjU-t&ed!z9g^!}= z8Q zbn&#;y!r4%?!k#7?zKsXy^{&GRO+L$GdCrmXwQb?zhR$?J$%{G?sxMoq*J=1kP_`> zI28&O^WlM0Oy}TI{|OVE@iRW<3;#$3&OE?{@*=seB~W^m(9rSG1u-n8BbExkKhR)i z^bnL_U*pcdjw<+EX!vt-NhFS*`|k!qBFEb6f~A&5ysMw#{2?)olZcY!QWehxSoH4| z@6&GibU(TUmhTnHon3$>8fPQf`b2T^I;Sgwz{>AGB+N{H#>kpZ{F_`56#w8Mi7v++mn*1eoNDvy01~0SO#bePY;_U48>AAyP;2Cu7V)sCvPRMN2 z#97&4@A46jXoY60T?^M2;Z%=W!fPR(^p?Q)_UUP#nV+ zn89>`+g*xJ%?}^2MPBZp$dGs@8XYC8b`}{6m-w!;PP_ojfpfpcOOB93uFpK?2c`d< zuj9I?#>X&R0lxJ&C*bSQcN{P~T9NsO*C#WvFo&90k`qEpymwzM6>L;ow7ueeCI;h< zK--Mt101G4>Z#226tNgg3XsNl3MA#0O&hb2c}g`uA9#|+EjK?uZ){u;we~7L0iLuL z(~$KmbQuYMojyMZp8cO+K7g{Y0~$T%ro)|xASDGsJhRM8bD;)WNiFpHW(QglO3_+J zvuC07dw(_5Pt}L;lG&0VkElAjPi#P6tRwQREydVnAourxvvv|>dOn9J+>B-{*vzlu<Wbko-$Mn1YVO|Hv;Kfo7d-}-toLNr1!PAW zR`cN(yy!wPwykvFc_3aCS-6RnXEo#^QB6{(l_}6)odq9j{^)(dcbrGvb!%7!X*g+B zVxAC=2dnn^O|G)g5$T%LtT;v0+ykHGAcNPY@ZP)w@&_E!PtRu@cM*Qc4Hua7aPAF( zYl2JBBiSGg@Nl>ngHk0FfWla>ztuNP@LxO4E)#eqBX(hvZxy)G5RlCjNRp5L)sDkX z`-}pKLsA#54YeuySN=|WbMhXW!`coPI(gh3!Z#GeugB;A+$4`E%FQ{EaB*?%I}i&n z!F6(WQCUt4T?sn^PcW8T+W}el;u>3FsOlh`)L6)V^Sp;z!s*l0r7JDe>Y78Ok+<*a z{735E%`#Yh;~}OFBiD0%S_2iKd-fpLHOk~2u1lViJurOAanItSvc;{Jhl$h6#_A?+ z@*QUJemEr`d|2T)8rnvphn(XKbUNGducdqU*o>!xmw)M;gG>X93oZG%BAW_@I|#HCW4$5^kQuqoKl_9&ori0QpdnVbdqb)OI zD+&s>uJZ?kKuClq*yFivE5CGpk}pIQokcW<;v1Cr{J~lNJofw9qZc}>pq|w@7!E=C z@4U`@P32l%sbcJUJromjww}AQ%40{)u|C;T8uVik4D$M}spjVz`ic^Ih zkxsi@%L!@(8}nu3{WB8@&IeN0{lfhh)!#Z-juvPc`Ue<)(bXfL6P{tQAlWEUQVWNS9<5{?cpAbvJ9v^ZE;M^!DT1j zSzgOhU*4Ky z$Xdsq^b`6f@J(8eKr4t}8jo-YfMgS@^&c!wBNY!qp9u3qsg2cxG&VJoBW#zb6AaLBjq9btV`sb}0Cvdp30^Rzdc7b`_ANCJSIFRv{Qq6`z zzZ`2iT8uvw@%|T8i`g;CI)gLgB&4$4-u24Pxq9aRT_iK7it310{vz{cH$3ga+Y8l) zbypK`ap7C=kd8Q3VB?~Ea;Hd5-(N4dP+eyCw)iCcI{cg?mFrsWB7+J;qc$k_FL&dB@Qh)6o)5ZgJTTTmeEdqw3rk5sM$_ilC%tx^>V^2m z)Oz+^+kn+r2Hfi$atMLPT#WEnc-jsi;@T5Cf&gX+xow;h^aGQDy`B9X_E_lM^zBZi z5h({!Y7dd52wC$SRd9c{TpF=*%Kzm@!fzIlV9R(WsrF2vWm|N z%9%$|TF? z5H4Oi`LK-1;^%Rgm6anGe|_3Er8FrGa@JuOboh(-_CYlmW;_h?u8bA<3X%ae$3NX7 zR%Xa_U^K3Z<0BYqD>h&f+mj=}!KeQH|1%qugH*<^*{==s)2!C;yQKQnTMnxPhLo{F zqi$g;h%Tqm@r92JZe5<_lcZfrkV5*^HNUx3UAEOSPn3R74K)s!c7S@mqG!Qig$zQi z--0t>uAOZ)7)vKo-} zt(o<~3mF`3JZa5n9sGJ@eMr%1*rAKNg%7_wdD;Xp*bPc&nb$rbv=j*?BN}75*jh{N zskt#cA^9D8eeovdFi>gyUqJT4Cd-96$=_wiT)~3OF1D*p5-t*)gb$8(EnW-%C#16{ zqn57<(?LIXRK_eI0^sOWAOLOppSUI&F^V>*UH-C!R(8 z(`}Av>`vAc_FN{;rN-v*QKippl=4ilg`N@lrqB9bc(-WXR<8V%M8)*$b7}Y%hTW}7 z&&wVdsv_ZniS@`}8|#%M&yBSa&{-XjX=6@$XZG_mt;;Ck*<#(=Tv1{iV%y3sC>yi? zY%$_q`Dge6Z&J8?>W&uLn+6r1l#0M7@hG!kS^qG)oU`2Wh?q0|#Z8&{_5vkTJ3w9M#!3xBNh+; zxyUX_iG~bTsJS*yS2X!GLq0Fz^}I4L*yhsxW(%pLYb7c_NBxb7Bls^)T~QbMx==s= zdht}7UZ9t(A8xpED>OP&FoLueYd6Dorg6}R!&2D4ATv_anT1)CciidVP6a`mLq;YK zkd-mRb1J4iwv))9wB z&qk91O3#l&i|h!~jU-C14saKik=d_)%!&lvExO%e_-@=O88kpbVb71~6e6uibp}al zGW5q2w_`38WjB2jo&|-0?X3Vk>gJFr?QRyVw4YcQ0$Kuxc)|ca9LP?v+q5cCd&*w3xtrY-CEuDCY<9pa* z;pMFRqH2s&R6O;147*+YbqJ&WvB_JTvCpqct&r+521Cb>uL4HozMoPfQqT@SOq z{~dOy^Fl$rA*qRw#m;Z#F%=ndPL`RQ(r=W_x{fuCzsqIiH@Xp$hE zFe&la*haEHntkvgQzhXe7=Nm@w)OEDSD?YBwPE~S%OIb@TKjdY=oB^Hpc|@-qB`!| zA>sl~x|h#3SC6iF7}&3f%LX>TaE|57)VB}4IiQ8F!dEV>S zYArAF$^BU``aNNhkHhw)$&e<(xR%;_A9?J#<=YhXi#FQ=Xn9@k6NYaE%n{D*zzV3Z?)$?*CoKk1qY zjHUIkM4`ww9ojm*0(Y4N%L`Yx!+q><<9%fTuayWZVY^N9>M{!fPe8Hr1vB~{>lyKb zu2EPR0(mP=*C*7%`+6}u)IIx$K?fR?Ua*xVVCj@b`FqGzPf^7)<*Toh&J4PQmRTTG zsaWf|HVyv0kvmPE=47^jgLh9=CAmyBuiL4^AA+#>2dxfMfT1YDW~)Ik?Zz_d&nV2U z(Ee9nWv)gt74r!0$raV zd-cWhqVfj*?f#1#x?6~oIiCbhOu z+WmAlsrcX^$QR(1zv-aWPKP z8yu$r-arKePf{S}tZZ6IEv->1SfJ%}G$Kav^slBSlojZHq+Kev5e$oI71LLtk!I+V z7vyQLzMe}T^inVPXb5hMuH8MZLb`Y5jiIZ|5P%cyHz37Wc#BHSEcWE0+b>F^KiM9P z{7@zHk_k+u^;_TTf=JH|USB_D&V{f)wJvpKD|s}@O`jae?&fim)VO~vPv3P#K492` z7u%A9^HD4P@4GPlMlJ=$S)6k9Q~eZuD>cmJL)glX&1&IS?r&KJ|9bjDC7D_%dRK_g z3N5G>9iE|rE*`I*ZkPNk8Z4A42F73#yZRfzU3Fb+-i(?)M5q>H71WT9VO;3Su8JuA^VjRT3il5@TbQ_0N6pu3JKIg-*k$DT2TCVlidR}G6P`BF|g?s0S zMB8E7HQsJRFO~sjTd=s5LeT~1rftldT%L94vbS8{(GQfAu}jUh_=)NyvJb<_6r{{Pp7h+Ht)EC-52!e0k-5oFQ+`x&C3{{(~XHNpd{AU7{a zvr2EXE6NcNvnN11q2pwD5w$-UwmxmfI>(PB%J<4F*@0&)F(k#cN%__=(C)8jdFAc z81>u);4sjNiP_AR*^EnU9AAb_;Sh;~1aEzN)L-4Y8)!2lpJ)~`FeophW@Dz?da<$Y zAz{Q;W26lrWgPLak?aWavcYjrTznJ zvzs}&)OBy#m$VC8vj5lPH^oixMgPgui}1h#4X1}gaNsEvF{yepLTGa9cxv0HRAzx% z!@Km3$_cqJrmUY572Kf_vlT`rjP25I&DaE*bmXgMv!xFInhz)DAxz>lqYgL^H~yP* zF)^3Re)XBn;U5ToAzI=C;#`GI8#h;YwiQ$6s@RkpkDhKC2L`A3lywYa3;2YXR3G#x zAHg3EVC?r-?{&x6AUDX`!g6)Uce`lR3ym{pH?dB`4FkB(M??xd-2Uo8gh`z)rpLiF zrYC$1Uot5Qm_|01zjWvr1SrRVk(N)Uhm^c82%F+pB?d?q)B zLXVl<=Ss*RAb{m4hw=2Zao{9@z+B~fGBj*J zA>IhlD%*Q8oovPPMOWt(SH`lVdd7<*_D=&Pohxh(;KqO5&om5YCc;`4Wg;$Ttg{-t z-t3*t2c{A&H&ClJDj`dWWIaRx=E_g_hPLjxX@QQQtuy7YHh{!(v$g7g8y_7L*q{#1 zf`yTtV4Do{NXwN*--UNq6QbnAHtw6)NDD7MdK|>a>>3E;_x}kN{z3m^{d;#tiG$oH zR5g#lQ%u0@N-0VAAB{j4X&kUYzMQNF;2)I?c7^GGD(WIIu+*c{dc{Msw5HIuIGh{^ z7z7(s$(6ONMe_2)LFT0}`-C_zKzV$~Wm7+NH_N&P2YH^F%AdfrT47Zv|NQ#i}QJ2~{HWKJG)>Rx(LRZ03moA_~8EKUiH|AcuSO&W70vh>$21~qcc0AZ+WXF(Hm+tFXG#p}ZMM_cuLvjm&m*|1o47$*k%TVX?k?4a;hKa7}a#>)SbzXcw!d@}8x3UO|Q zS3pNdxLI2fr~;hws+a8-US(P7gr|s*Ew`4b@W>cFkXOks2j)~udZ^Y~-Dgi>E@AU5 z;wqF>bl7r*kO?VBj5U zTfcxM!}5;LZ^=#limTPl>B+_yIy{8t{~7>#A(v=-dMp2UAT!QLfrjOHHh`ZO)1EZFuX1oyF&@ZPTC z0LDZyBY4*wBhu|AqW|d{^+5U~B~Ly@drfmA6>o>nyGIKEr^bbq!{g}L{Er-I2wU;C zdA6F{jk<`X-QmnFqCFrjO8O-eaU-4}>CQTE1BU65)yn-AcF9YoveD!tCFBvjMg9Q5 zTGdy-f?7>GQL*}NuhdVNB$(Na_$Lky@u9e}uN*iD!uR;!pe8&htdmT>Dl)C9Gx2VyE}!L)YX;bN-;$psJ(lI>m#yEzIZzhpzrx$=KgAW-*`ivbX~~_InVrt zk;Y|JMoBomLv(XztOB+(Ddl3ov$SQEW_8nKH-yGxd66gW^ahuT+0D-C8>3i#xXW z%~5#U2=NkD@6VQxj~E6mWq3_6$!wr6yv5@DYP+i{u4@drSH`n zSX@>%IhPC(=*}s~>agV9rjDEXVBkQlyuMvcVRlc`})zZ!|Q!EzwtB9yqdG z!CSb{QA|-R{eo6JDA@Xy)-k(vg@jS}8D75t#XX-sJB@KXke zHduNEJ~|ePaiBZFKkuFRkomq3#jQvQB;0si_Q|xlQVhZ%be$CQC+tjGEnHb=%!JXO zg^;gD#pxeuMl$8#lujrZ>>`=6nYHZy@~Qm+O{ycAUs(p&+*t|kp z7R%o&Ox3OEQ}iG?$_OAQbezyyndYXz@u9an5)&P{DbhuLF#yC9VgBr-Bf~R$?boK% z_p|86&EswMf(wSmGkQ0H-BuZy=>+B$g?%`9w|k5-qa7x3T>l!`_Q4%>50SS}-hZas zbLfnJVA27$3zD_Ft8+)EG*1iLq#jDY3B^=Yi{o~+>lCP!SBJ9N#v}ysQ+Xgd7pY_X z1G*^l!8LEuXo1UG-@-LU+&&y>ayF4!(Yy}afLNBdU)bc^N3ZV~> zH#+m|nX98SIf-X8nbyWVQ9}+{)+YL4se>-?&caHK>Ro<5x zt>D>UxK10b-z!{j753tyVD~mOYsYOGKqqB$c#vKTkzu)#1j>bQPq>k56^+)@=Pb;@qNba7$I!y-?f9;QE%|2k~L?KW(yyk1en)9P+sqq`SSa~Gz}p~N-) zvi(GRwK>>D)wfULb!Asw?{17MIyyq}WSTu{UpEBpE*P=aRP(eA!3RD@W4PB2|5I@e z5~mvsWdt?vDaB;S4O4N#-8ri6v08mv4(Ol>SQ3OBnMEmYJE4SDCvEI)+&iKIIp?38 zdF1oC>}{CMK|leM7#94_Vgg=J0%V%M1<<1ZD*<)@1G zxBCBaqXx<-#;C{Cf+!syD1O z5rARcLKy_Y1a}nY-qL?NK`G4AyPr|FVu8g2v!Xazy5Cfcpf1lMs3BWLKC_U+XTq`K zo$Hptsx6Y;KB5Y$cnV9JehlB~qjaqe?BS_1;#pY(64*2K!HNZK456wk z15OmMVE#Q;&Q}2l#_U1>H}pa>p_0e@0@Vi_QrP}SLDq|~Dfr0Xa>UG)`&JND&ysg1 z_XMjOZFI9c)lMsfu%J26R)Gdv>B_u#TEFxIgpt#^z~B_cjv+Tdidm#(-ewgy3%^S5 zcWF$1n_dBWqoB;@uHkV&=(FYx5>*KAZ980nE4C3YE?VBisRe%>twq4&)iQp#dA73| zuE(S@FWfOUt-O}(dnqaRJc2x8&YqOule0#Nh5j`z_KR+zRH6a0Q}qe!pEv0@2V~Dn z$RIh6*udj_J3KDvopUDxnq^2vN4*ioj3)N3g?R0$$p`I7339!dfKdLQm<`{)M=OMp zW27=>$_mr+j3XC%l&Pc)n=~QWQ!i{$5cYh8tCo(}wZ9=$4qB>F{;qiy?{U7s~5 zwMdGRTMVAYd5~UR_D3r?(TP?eM6Dx$i_DOEvs#^=4AR)p5O<2De;}A7O+hRLH@&G2 zm8~Z;_cw(6@XdbN4cvjwz$m2MAwz7>5Jd0*#5T0e`#@pT-xJ3SDkK4WNLz(O^jjPao)Cg>{k89)q8^rM+&WX;wE(`2UpLFjiwzny(>1DB8V;4w zqbv{S`b?01i4=9HX{+6wM|f!$J-qefck)fIqvu0)#HNW$wqa}uJGNRltCsXW4ekL* z+Rym9iL|f={k3{VCf)%U%HW(y5YtK?LAScqyBd&FA*W(g=(21GsqmK zhqi!u-kretO}Z%jFn)gO5{wce-5ZgR2JZ)j*hxH>qF4VAhw4fK+p1Qo z2%2DSnKlMJ6VRbR2!mz>KV;^V)L9Jx%j4>TU5`xp14j-^WTm^V{Vs}vEl7KuJ$~5a03p!P;xG_9i2z2%*u5M z!y%S0nhJ-DRAlYQW|Qa{wqdxJELQi_o$;zt$mOFxeOb6WaR2g=-?L42Hp{<4*a>_a zBrR7Ha`{dbjCQP-;X9DCyQyP>q@I_|V%CaL=KJ7cXm~=Bi8D=zG9%!OOi$L<SDd;-$hJRYzi3FlZ%%`QZ7Wq>US@7Qk#lCM|%ix@QS+%z(j1B@1N@A3cpA&;X;T8h72VAs5B5^*6+~5`Af-65;pVKPsqVSbqI`qAQZZ&uT=swKp!6mUhSR{wH6IVUR)&FIg)`$* zYDTbLw1ky_s^nsj`YJ$p1gkGh#PlkFU>{?bV;NSl!HN&U*Kf_t+A{n~ZWw5Vg#u4KA*7f_gqhOT8~16lZa@@AP^)hWIJrQ1`^bE>FxB0 zF$JS0ikT!;>H)y>`CGfAI*=+OhUv7`DOZgJ(u!%>$pJl&UgEsa!zFWz&KMd3Cb*D} zBF#T1faZ%s$(BRn|(@Mlo~VY2goTSE$K zvyX{n@O8h#>uxZG_tP#Dw&hi$aaSsy>FCQuZNxQsG-NF<;nviWVQ)D<2F37xx7q^(NwP=%k zoMCd@rB?EPcnotA;j14=JibWvT#i5eDV3W)3S(Mj8}eFc=e|G%p#X8mC++INh;^&b zz7Cb%{BPc>oaRbr(CM0ARBMK@)8tURxS)(Ft1Uw-1yYUOry-PC5@K zz1v)G5M3_{8I5K8^OS2|n>H|h-CB>+6z;jL(S0pmKh$d37C}Gyl{iW5$8G@Trz5OS z>X04FWCVGRCOq?n`@{l~Ub-kL^kwwcTZ;FZF8J0A;9X_KH7MFgf-mznzIVZp7L0yv zIe0Rf!;Rk5x38L^5yha1V4~H3mo+DI)cM2Z!zh#*y>a*<6{B>D$!LKcO#g{#u@7?w zi~aZ)`ig`tj_b0ZAg_rH*fa_2;B=k-cn~r?Z7eoKfoD7w|`@ zkq?VqK7`<<{7y<0zXbvG{NWmC0<7DcSY~54E_cL6g<_%+nN}xg%_sXeeeVp??`I5j z+dLZycTP^9cpyue^Q`({g7Q62M9Vic#P9gm9ZBckWY?qF9~JKZfqBMPZ=c_#C|asX zPNV$tuHcg$eo+`rJZ6{@)e9xcBqLpu8sQq~_PBzJ66gK5eSgn|;_#JEd@;;TFAEFO zYd}jGI{~oO)XS=WrS4x2(TQp+hxhNonInM-0^kO4bS15KlG;pH?lm=;4?`L?HdV)c zM)@B8hzX?f1PMm*FJ$@@eV$h-cu%R)tomqrCo05;2i_L&b-3T#H;W{T`P)6|ppIio zMyiAe5CvgAV^4}~bz++JY1`M?bgK6E?J>y`qCC<{fJRizVC2To8KKda_QG_s;3+!Q6f*;A49@W>&aQaqbQt|kP|k66)fZ!s!Gm$jy(W|;cJRg-Tb0Lv7&GJ(IXmQD;r%B_;} zE?E^pX$OUv?l=e3lSd53aYfsPDz`+;-##RUzl*qW`Iz4Nq6O}40q9X!kZw6tpgi1g zIMWts&)xT}VL194`Ew8hwS?R4X+d+9b*}r-K#&3(yz#`zo&8wUJ!CzU}t$(^C5%KR9 zuaL(dxV9$xHMA z^?W!0EKA~Gu?tYivgUvfz`LU-`|@Q!3wu5`J-89{V7i#4hiYFu!g(mqM72XiTT^XF zTgXjZ6YDgU>CI@%QaThUArWRewoc9!zqv52}@pkJ?}mca4XB6uK8R z@&XxhEU(3&0yfY>CFiqb!&W+o4H;5 zyS5CR#&-hPnRI>>wkgp}4USrWXy1W>h`jQi0Fc7f?;sCrDS!+N>v+^|Ag_GIb%%CKl zuXM*GE15v7^HfVVl}a?Wib4w(06ND+%4}yxWrxM~j;f|ri&aQ6)##3$FLyT~bw6Bj zs1J!DV8sCSvjt<#X?;!=gCkOBr`*WidC5eq6NVx>d=T$CJ(1f6xzdy##hWTJ?UaM(P?G|ek}8GvYScIHuY`TW=d^gdDO8*+u)nV(-}!dnKeVGx#QzbSC|4>fDP z>FtFE85fkfc@GO~+^Z*$*eS6R$7bAP`Tlt#sdP&5F?QDeGX3>ox8>Of@Nlib=?UtH=_ad#M}o ze}rewlcdM1wv}7J?+Xh!o1T#?AFNonVb#A z`~rq1ZfnyLEu_o#A|?MC7G^#C;SZkcutf$<^Dg)XJv36%#$+4p;wE0nWU`QV1?ZTc+ z#ywTXu>EZ9#MbgC+KSMD)Jr=R8$ozU$<-co%Hjh|9G^IE~QGH zV)!@08GOm zD*mSCAJgwUgrvXXghwhVS#Ea3N|6?{H02pw5}XG_;$LSj8q{=)W!fQ;Z{yluz@jV= z)LuxNjckM89+0tiE?TJzlP&9O{Ztq#1h2gr5qZSH?d9Wx;vdK+)*&$&r-X{@Qo!JZ zHa}b-4baHzjs3Ueh;T*z;sfr)JBuSK2FlgWaV&SjOvOV00)ws@xBR67`yr`Cj zibg;Q;uEE!OmND|fKUqmA#}vG&=g0WxXRs+kbhB32u(folF%ep>sB->fimwUrBvWn zVJYqI6grlnxU&sr`fmktNbhSZi_Volw^O91eMT~B!l2}2Y8P;d^5)T0z2o977|uOI zI-tro+KAgjMl}quD}bXlrXUf!@JLFQ=zG`^J;Zw>^Ilu+HOa`26}!Z2E|7U#y}Qdu z-xL_~_t%}0<8^tg_xDwEd#YJTCfkv5qP`(=VfES|dfvAnT^7*iZyhIOAMNSo_J#N? zGEp8I`OoeEP!i@Vn&#iF3-@~=+@QO{a|fc&g{4kAD#h!E-1Y&sFCNKP5b>aeBt>=H zfP6w?3)@;(ninYv*(Bclxgvy^bx|>Z9*sh#{Q_}-Ax$v@VHLAM#)2E}j zfYPNO4~G3Kq6Par#TSoEvV~?^3em*SPVR>zBsRy&N$_IE_Q@5iQOJms$wdY1EV-!5 zyG?Y|3!q?@^?b|({FX^U>zQXiK+J`K1tPBinnFEI~yFB*y=e?lDYnfOdWn9qTfi_vilo+RU+gGGnu zkucVMPY3qO4M32%zvtMB)m^x0frISbD8r$)5*!C|S)Ih5>Q?**xnA?P0dzO7+*9a_ z95$LJsE8LR&Xin=!kaE&%dD>>ZVQsKfgy)-wiwzH$%Ed^Do3e)RRZF6|gq&HV$<9c&ZH!EBm*e_by`uuel167)iT-p=)It|Gv}nG7c-4#2re!m5D^4d8^b1|;1otQ)|Z~+REa~MXMC+Q(9BX`?4d{#vp_sOZmq7#e(qxR!mBdXmsNHV$Eb2?R*sd+ zCKzWs`+A-6C%qJ*gYUqVkjLqNZBh@IvWA7B`*3q>7_=1v|G^y4hqZZfqmBs9)8%Z) zjB}^_+T;Lol#uLp4ztIhJ{sLgO{V;jTqd@y9!4nJ zbx$1^88CwcVCW_N;+vSIY_x4JF+Wifad+LDUMWna2&xHB5e&JifuwHuW{O!q&oU2= zxknYWiQF+r(>?wZ*DC?v^7n<#D(F}iW;N}6m)y~hoogM-_w(55X@>63u-1(n)ygArWMtOx5T!L05qFHIc4A~y~)e8 zC#pqDd#0y?uwXz*8v@!A_U-Bojb5jK`PN->Y01txe$T*8YPYY#0>J2!bbDsw`yp7^I~OKTPpaMDc2^i`otBi2q~80F;*4e{ zdmJ0vnp8B$%yAXF)Zba_0T@W}VGJe^9$V4t7r*ibpV+yVwPa6*l1uqUbx4?<`WVh~ zdcX$G*W2>aSghA;aSA~GAgY9A>&0b7QXMnRP-ox~g~`0nlda2OG{c93fZ{n0fF5~f zajQ==<&{*uA%ZN2ot%&>A@IAqQ3Dy*H}ZY>IMcDbz1>w)l?>6GG{>`VL#BvyMErV* zLGY;tG)pqEO>VD_!ySIko%*gW0$*(yYkqq1Z6q>$)&xhk?>HJ7tQ(%$LJlcS6)7OPNELnKb5HOH%d z4l+{!%#T2>7I&b_Nlz#3WtH;6V))t{AnNc7Wi)$(JT3P*l2D_{+H0x@#;LNqhOlc4yyC7l15$@FpoEL6x1o)3jHfxRdkeo)JgBqeuqo&Zm=`F)O6~#vJ$PT1 z#GD|bGUVeQ%A@ozLXx3U$xgJB0HI~szD+SaX;y=hYY;^@rB^u1QDhO!&E$#fU|sNcYEfC z-mnA$@Z4d_9gL9CJEB{C+g``{W=3DAv z`GPzFMT9i+5@q}uls8k5X0LG71`QHFDFVB}{Y4n3U%MUWZx{QyJ89hoDjh*oeZG~O zXh1`V(OaOjdF*J-l5qgA*v&b+#?*kBicG0iLLOCMa7>}xnS|pkjJ%SE^O-yP-Vt(8 z=C4}>^4zJ-qjWta1Y=g1l(Zck6&Hx?lhHezRlIjRuvDA4O?404nn%-8W#`Fa2++g+ z)!x{kdbU2n$hNQq1XKx>L7|syyHMWxmXhy|{`}@-~fr3V%q*Kf=RYKK_5)8V&c9x+7 zR&MxMf66@2j10W-l&|BnvfN3dMBkcPdL+dVElt~U5m?`^nXU3#=P9M>hNm!b9JxfH zN8xXa0FrTH5?<90kWw(v&2!N%T>(10l{-s;O?AGv;$v>8@sQJt8!NBOsR3T zZif|Blxvebg38@WUn*>O(BJLN0^@O=OXf@qn!xNOR?mEsYLKn59X6mpdni(eX1yo4 zfckc8d)IjK$&LoZcFq9zN{F2sBC=}G3P_}>O;JwbSEJm)yj+duFMyJEwd{qlK&xo} zlyQoS=Tw!2RbU|eg;p`^y=snIt0|w4>hh&Yq__JXOrkB2658nm1RWk6v%Q1_fZBKFy+lU zmm^&Jsd3lNxwFC1-!s8EH@6Y}v(4Gy2L5%7iO9zpQ=7{KP&xFQi#L z{cehQ95SITb=|kM^Xm-=+8TRWv`M;vEV;bU94XL}yio z)qM6Qw1nG$I64Xb;tI1aOU$VPydIom4)Y<@gzrOs|G}2mL$8g6;PfT zP`f$f%}g(b#J=oamQw00ulzNHKsI zfB*y_xuV=6QDnrwo9#dB5!w&RGNG2_^nUD-cSK%VU_^Fcv9&Q!i6kxslp^n&@XKPz zMxLogVe)|jY#t_1U)1IIAP@_KhaSdnJ8z%br#fMs<)w`5S8R^BvXbLV`oMvaM(;ef z_2BLbQIV~W>1{mRF_|Ql|HnJIW8H40kQ)rq=Uz~xo}h49snuEel2xUh$OZZB(l;35 z-WWcUQ*`ePUKoZ+w`^?gPWp~A(ZO&hlE1b`t=KBkjKdO7+UfAU{~C?BZi;$S$Qfpi zLn^X8uariHf-r5ll*XxsD?^3IfbQ+zVTwAftyTe&A&YdF2N2WdmKsPhtG~Z{r&oEo zFuj<$7E6lYaXyYi6}LtC&Uh*J_Jj1`m)8ZyN0Mh7)^h3>m`;d9>*$>$(PucB zj^3Ip-x^kTST#0xz%?)HT_Z$^lfnYlPVLHkvIq+sBwQD1rY_9%^@Ly}Ch5#i?#DvW zTjbBqY%golN$V20pM-q*)$=re-+%A`M}OiyYZ6{SuKg?8FQZ-mz5B8^1oY0UC_oz% z5iw(u?n!e`Z{3~ZTCKr^)*gW~`zn1=U<*VV{yXOlRR2t1ZcuNMe}XlXqd-ZLUrQu= zJYEatXAyDcFT@)*PMPgY;Om0MX%Oh^)^|T}H0=q|@itf8B3lD+nv3c>Luot=wtUh; zr~|*xrN$KY8t{nl@m*#UpDOm2fQOcv3WAY6|Cc!++E334juTJM`Kw9n_LOZlg87&v zfsVwKZ!N}zdINFhv4_#xx!2?1YzyH{aFnbU$wVSCtT*1!=V|v$18)a05Qo<(EX%5?YR< zwpc`Gj>H4NSLq40S3HPHWd*GufB?q#^C2+I53p-{xwo&`CyvtQ51u@2^)*Dc6xyJUJ+oB7;j%Kia~mUa7h(aqN(O>d2uHyuVInS?YX%gYO6w7l1M>` zs*J`vPs3_S5l1;vPYFQMQ-K1$`vkEQa{ub9r4wDukR~RiSqfLXpM1CYrPnk`a>6ep)<#2f@ew}6ebyQ_u;x7L$82dP=COHC1 zt@}Zty=+U-o!t?UC$9ILa4|8drpr}aO|Bz`RD`_oIEENPSuc;Y{VH_fWf_~albL+! zjFMIS?3uY7vmQNT%>B(l&ts_rG zh{Q4!d%xV&@pN*hqn z^@D_ZsG<&ddx0Bp1p3Hq1D#v$tTt66Ri61x4v7sX%YRP> zZ04-c8At|yc0eDN6VePJjgUJEH{!ZgEz2b=1S|-(iu-%b{$3{jpVw4*xdb++8;JNK zX(G#8Ae?zl2dz~364)ixLVJ9iJrVh|h(#pZgARVcKuK5`lmJB*Ujcaw!%ug6*19Pt z5IyQGYyyY#6W)O@j{ZC}n)y>4CuOcj z5oPxgVUrGJJcmAgw&GNbL0*ic3;~gF-JBJfwPmR5dfg!MyU0Npvjzospy&4tD?)df zAu*TY^qb19DxMJn13pA8yBdxAzy+Irc$j1#^9r|GJVd7-{;k}@4Ez8kK-$0I6~?*Q zv5T~@3&VroVWzxQQ$uO+^EZ|x%U{@w{HD8!b;#1uxTpL#^u;01V(My?&_yf>3YsAI zNQjOhB#)HS#pvT(iKbda3hX93leAss@40CKa&-+ z&Pf#g?c)3EF1;A*I_<2b+QS#k=1SUfF;`xFlunWkjYdFY1$Y#FBv-f-Rj6NLo))6& zq^zmb;o35BuPykbKiqMmPtHSENO3OjCB)_n@k}AjSsI7{1cU>+xi%BJLtD+Y1ZfwV zj!h6LYDhRl7(qR}Ty(G!D)~(W$wjTa+JTG8+3e4dbC#<$K$QLyCla+-dTFn&joW`( zmt+^h&rBl;ySc(l&=l`0k0lbynn%O%O-C`R>6*axk+JeY>hz681*V2Myy1OL_Jw3~ zo&T~4eJxh{8SqByX0s%*?s_ zd?lb?wW|QFr7`29gcv5AtlwEti& zc;HC+`!v__w3BiUN=6m+>JVO8&K3Qj^AU-RR=b+$>hDqwBDSD=Ufu(ZbQ(Tw?+k$i zX@SCGa8d!rK6Ire&B(+IB&6zJhABXuM8pSea|BKXGeij$!t12$%EI0{)g-%qJC`}s zak%v8Nj{8ai!S;f)8($J0dPbnH+W}Z0dBJ2H=$V2cbcy9pSLIhq^a^%UZDe3*23wd znG=+Dy=s!gi}VrIlR~Xy87Yr{yJ4fS0MG0DO+=^u2E-PGigaj1&G;-TEye#edsM9f1=#SkxOb|E5yG-PM9u~cvq{X;;g9kACbPaKA;0i6942+f zx3FTGKR`7l_EXHjegX3G)8)n@&`?}yR~B3Jbd8ZfO_(xu*?h_OgrR#H^*nWMrSW|j35$%nKSV`$27r%Mr~krmlkKB+VY zn?3(>`7kdkMRaihn`9GoXAt;>g+UmWW}9mZ#S{*1m>DI%h=G(Mt)b#pj6ONFc0TcEipy!yTH#+*`xXi%7L#QEB)p!xW?kJ@mUcMDG zW_zvgG0)uc=!sHrhIC?r3Eok=l%#|s^2!q8SFZ{UAKd_{h|MKb5!qh(OV+ky0@K-RYiy45a- zZuvTc*!^9+8(TCneo%~Yq+tszeCwkBH{-e9Qz^4Af}ms=zn2zI*}63{tdGDbe_Dq9 zdC<2}x%bT!(un5zSK(xzou7CN6-I~!w#7@rMP23UaVsgehuo?`^shmIoG~L9Wp6W* z$Ba$JF#A$g3t3JAPj*P^LeiExq$Jk;3!BBe@Efo5Ky0BHj~K_2WueeN1I7^SrF|MB zTm9w#Lc>3%h?^U_v4_{SWG~Jd%okcDJ=qBgtcX8&4;_$E!+`I1Q^Z1r$M)&x^X_f( zdE;j8x?E zZ>{kbO22}Alhjh(F4E#9vU(CH zB6UT~l=~kSTr5bwf_ICZC^1Vi;lgFIHq|c}Hl-#_tWV4rErr-}&zeb(8|!kiD4?zx z3}!xDmAhHoov8d=lxG(f=P?gs&1!k6`C+b}R$bpw?vfV%BxGuG1Z#>_F8ynVy4Yx> zdS{=NERD$$A=d_U!$AorJ+v4!|J2MHk{I!O?>n9LB**Y!d$kKzw>o-6ADQhbTmcm; zfA04Yk3lag>bRi*O=9*~6>J5KCb{uqmnFaf6uM|Lcng1TpX+fPM#-Q`Z}Nd9lFL$_ zM|09me&B}^Q3qD$HWjSQ`NFMIaae?fQuIi{#MT##MY0CF60Dr@JOQ)s%YKD~sGNk| z!<;XjX}t{#d7_;AI3JGY^JUhM;qnrFHcYGn-E0^21&+&@MP?8V?{YJxGC_N^fPMek z5ityi;X7#n{HjaJ27>Z>e%61WriVOMXB5EDib^6>w3s|Py}2~am>D|-4*`PqwMXtT z7^r3IqhWX1xB#qQ8lj5AYBs4#HS4JZk7U0Fd1rJ^+E8z>9S|G~wdto*xg<_&lmiSV zx>l&EXja~=(NvmcfPYN^g}Cd-LB#-JA%JBivaV3tblvgAQe-8*Vv9^8X4ezqtC7A~ z?=iZIjNXVroBHcSCWYV?>Q0T3A;No9qwuUV9G*^ylHjduq9I^{Xy3m!oVSsyJ;*@-@!=mrTLD*lIY@K z9~HFQ4o`&UiNiiua3=p=5kz8Hes5rBEF0T+SeBm6Vdb~+54h5qXg3^B7j zkFM!@!zA&B`Hyx3@^Fv(jTF$uYeP(U9NkumCPXvC`>qHY#>?k&<#Oz8l7ekJ*@f+x z&4NW$s-5}u$p&xMaZn167Q%|80q|$Bzx`)Xpih<59Bnli+8)^6r2N`&kFp^Gi`z0j z_f`Hei}fF?c!0&9ysC{-A_mtM@`LRK0NNpwwHRcK;qZ`26wd+fp=8Xk>WUtk{Xfe` zlPno5-1?SB6a=D<*aJ02oVOYN3Mx;p%+5GofV?%J-C1pBm*|f)}y!t8J*8S8$$d0Xi;jlM5>IU^WnFX zffjK$EmW~$jMrQCH8>}VikZF|;<0V0MitzCRYsPXTt zuVw?EP^k_gzF0HflU%`ao7ck%oFVG|dP|>t9PhjWu|Mw@KYtp+GR^MT@RT(L9*v6r3K|2% zGADsL1^A=dRWuN5u6f`!3R}Tu{3)jqC%E>0$wLB!$CuYw^EMGmlS^E4_mQi1JWb)> z7u)*&iF={=WUaCPbgBe=9)7MP$Q>XHIQ9BcnmGRL+GdgsvJ;qbUZ&x2Ws>Hh;p4*l zH$J>fK}&t+Y87&iP@rcILp%(T>>SJ$($Gqeu-AQjYp$u50$L#w6 zu5e;jrTZCy9d6>EUzUFVOtqy9YsbujlAauotJvdUTK)Z_w@X-yLQ7P zJQZ&d^9@yB+I8S!e<_C-;n*QY?IH=s17FBIQ!g^pZ@^ZM6?Xg0Q$C8r8U22*a1cq* zmMT#Fi$mTefreJuHOj#EvJGXIOI~6Y(7IZF(vwY(%`{^$5}%$AYR;#m{g%Cc%@_&Y6Ko})a3W3?w&dA8!opER z`DiwJ=Z)HLTX;bO>mIFkV{&Zei^lC0*>7M+QYPhng7vSBz^&DiTy+LeT!# ze4j8xh3^+zkK9ep`i7v)-rAK(cPT|oWpd`M7^z)8&H%4&dKncz!oLzn6@+3yD^~^C z;O}%yhC6vCY)wKz`w4Nj)OBofJC8=MrV%W#97F4>z#Ayt%3q9sA-F+=4#XZuZX%g~ z4|_eObyDXQ8r=lI8(%rrrvazms(|AraAO^kM-q@20slI5q{R@gI0xlS1$WqYe5<@@ z{vztiGSl@-;{0fzJ`FF*W`&^g*q+tP5B{`r|Fo;dV@1qYz_nDpJ%4!w ztX6k&NBJQeQzG#5a@m_5{qV3iAai0|WRAqFM)f#``6}P#W&m|yIXDqQ(2N!T53tb` z?0R)z;kcPO3L8yoaE#zZz1%HgpShk|ixn)89&)g`aXYsHEQmDIsYm5j0)F+8xdvUo zWrt{uzC3ko5@iVF;{nTLlmj+60mqJW%3Q@|V_pz-F3BnG2p`+Mu0cZR9~C>$pZ=`A zlyP(QY^|h}(#-Ty8Zd+8@rK@XY#TVg-J<6>B1`_QZMYOi^kt$FSUAk0Q?~5ff_Xnf z2JD05?3mmvS@Z$m;lJh^hofBQtZgc@vgRUR&()waxxK3%GqBdTV++_V!Qr*rh92O3~r#Y+}iU-fMSJ7VoM)f233ha2AEO?LsPKQ2(*T4k z@o-XMXXkIDI&KC*E+F~4eiW)j_8wZhu)E1QpX0PW(>maUj}PooTrjt27B?m+q3ypQ z`l#S0gethD>*0^4nMeM-vOp1kscV*7?6H#1hI4BxaiJ*pmXhu8|7iDl+>aly0bhgw zd8Be{I6~Wp$GA2=qMggmZR7~NxOVIDuF7nT$iOu&P?UWPqitSP1#4-{#*jpLgY3;Z zoHYcSo>j|?LsAyF|A@{dWMqi%2JAr@!fJ?sL>Dg>{!x1yoB|6K&l zrk1spB{t=ZOUBXff_77|Qs%!xuH>qL5dH#xcanB8-)ro~+C3?T{1$S2KCG!$1F)kB zapunkxHSGS`KHRl(nosDLO;8mS<3notj)lPhCZ;mw*l+I_qfk3uDL5jfH&JkE0kQ> zY9cxVtKkT5{j#@b!6OrEvCjxa^l0DLdxM}+n+s=1Mh#kKtW7Ebp<6vOYS7|HBZ{_C zUNt6)E!PSiw8~Y2dU7a-kUWE11mL`^swLfC0I1FYUAX%AAvRlg6Yt4ET$?_P1IGuL zHyHC0;BXgtG}VPceskKx^pLai4nC^)C%Kid0U6UmU(asZ)ej=Xb%*YO`gRkty2f2G zQOb}jJqc|AfESkA`_)~ZFk4b)G1t=$QgqA^BbmM*+Q7+s$)Fc1V<6tqoVfKmldm*B zIfSBb#pX2_R(V)T0@RD91U9g!fT9A>b?&VhdlFeL6b>FJT!M@nNmXWuXPb_RwEN9` zFe_tEbGYl0W)=2svm``{l|43PqeCDY>KPTb?4CT>5Jyn*dc(jld6XZ&tem3*4Ga~b zrONtorUNM@GxTLncydQ}H>&6k;9a?JZZi#RLIZV!Ay^kc$9D_4R=R3v+Dd@opp8qr zg8hW$r#)eN;R{7z(}aKE;)C#n{YmC(T(x5TT!cHf(`A1gu7At zSe4w^Y#!PO#f)cJVa_kMVivw5-?S5Vrb7c+;gQdYn-595#K7lMk{;%1yjU9m${IG1 z#%*LFAVLEE^nR66_KHLlX4I{0x>sMCx@G-7u|HQZ4kj{B(!|T9rmp02J(|t3anJn&GS2IM@dbvY48}=g=I3ZaVRV} z;bdv5HkKqkOk2_V2i%4ScHY4pRPw}lvdFW3iEy6ixS1ePe5Y$ zC*}D9*OnLpq_U-6P~T>;7MtfPAbHq^iXMtE-pm1PcXX3Vh41J=ZLSD((7{<;Fu|c_ z;!)Qi5>~gzuwc-;V2oE=$1~$7r?cw>Xu@U#u;6HfL&aE_rLzQ zEf{P)yvcs$Qb{n(Z9F0qHnY_x!#3jvo8HJ}i1)0CIl1wq09tgM+qt_oDY*;vv;~aB z=qs9jgZ{G!T|CIib0@Ega6kbP7&UBqC0LvevjxfgWMG@Wgc<3cV&o*u`As(5{XZHE z7!bM{hOao9LKcpf*HNP7jt6m9j+}E!hEps0bty-h{HX!VCfK zv4}`!ze}1IHK$pB5f4=7`nSWd?M=XNKXWsH_=5;_dmmqgzmd}8A+kjjGu`xurQ)W1 zM@9n3UL*TPZ2{BBt?>p;8%!i<3L2}Vu6Q1})hUm*2}Bvt2eTxIi{Y zTO)P@3T@T%q*y4M7IfBpWI8+WE2HUpREwPnXjz zj>r8UKTP8Vq$~78|8gmtJv0Uu%un}w@d9{%N#P%6LPLDo*L)ddZg>Bc@%$5~&WT5s z&PVeNH89M%!{f&1a1Jq;5%Uk5 zH&=qonGvT&X+&Ze@;78Lg8lFI*tR?DXaDHDj#JUuiPmfrs@gdcmTum~IrrSEzN?WW ze}TP6-L?FpQ$Bl8+7r9X_{{`CqCZqo?q!chVyjMWnJl}I6=?z2QZmikS+Q^o=wpd# zFR)jD-3r?|Q>%=9^1<~Os zrjD^s^`6rU{J_9s)k&~jBiGd#JS1?YrmSdUQR1pT9L!yzvG7dT#LEn@&M8iHa;yt2Y!zG#LZqpmr@Ch=T|YK z%iy-|526QsKR}k>$>17^QLkSN13exY6umO}auO=H#t)YtP)^rd>5d@-zcwkdQsw}|I0BmGKWvk&Jd?b+=Oh!h)E+jejht(~t3;tx)NaIHsFXgB z3ZWzQ8EvOYyppoGyMlnvV+Kg)lA%O<)tyZaFR(!}$q_jNQi=dfy#ZSPCQZo|@s0EJ zAFMf%jxqdY{lznl1@YE08}(5@G~*DW*s{}0aY zWOF|11USrqibD$$_qu`#YSyf!C=H&x?9g$~+m2F;yPZ=F2mfkSU|YGL!c%U|il2K> zDO}`;x3qDA7aOm;O5p|(G&GqVNLFKTXBTrrOg8&u(N*S9)HgeZ)%7Zutx zwdy(=i&8_o`uV*$eGHdkbb7@1S`-n>V7w_fITB7(!0jFq$Q*WqqYMoX1@4(~Irb;X&^ zAJoAk;uvmurP2UEKf=rVa~m;;lO&Cpud!s}|I{KBEwvoVD4XT?E1(9G-Nnd?$0uXc z3?fFIvmC=plQL^dFT=p;KSfK+p$2$9MA;JV0a3&+hk$!zSQFryi?+|t4fGL-Wv-2Y z+O)QI*~_tYD?*f#eG!^9N27qee5xEyj29dkZd_>cQp4|*%bV%KsfWz^nGS5aBh3>d zyWyj(HCastADU7!HX_YjJC_93oITr$HeQ&|<=pyy0-OEmR0;;96LT=d$=-|lC%hM) zqa5IpBTHVn&2^pDmKSP?#%|HD#Xuy})P&ARBv1{Z9-pHX7&x{=7sYDq5_^;EHCfiK z?E@pxrxJDkBVQZ4bM6iYq@Gf?#994l&_1o-K6?KthWU~ehWqTQN)w1zXeGaaZ!B z36(P-pznhX&5y4C0eog~*}3lPcxDAOTijxK{)5qAIe9%HooT?{P)Yh)>2(etka0c= z!xW1O#7xZD3|Lya{-I>1Gew^pht6$jaov*SVc+9oos;2UiLD~iA6}~t$eY3(&0k8f zf8iK-UZxjs9{N$9T9b!r#Vzm%Ce$}HgJ7k{736oG@-^Lb2eT;cS^VM};z+~2#7g>> zi6~ggwrlIPP8^8H?c`hvxsjMAz+v?mx@~blp|4MUfx)3zD)(s?jR?KvuBQPr z`+mx$E=a353KVI>z<$Cir=#Ii727ued6;P1jZe$${amiF_mCeNp2wGGIqz(r85o?KZpa9@epI?kD%W zI9c~z1#G9f2he2Rhu<1VNB2?OtrZwjjlD|#ZdFld0i*vF;{$HnY`cSw`?IUOfS#F8 z*u%|ATd{6kqi8bU7fP-~qZZHd-9Uy=?E*RKzp_C~2(99S5Q^;ix}d>Kj1Q4 zS_s;I;=Tnh{sx+OrKDA*DDQS{$MxPV)Ru~$@)_VL{w6sxLLQI(v&a`Jk+0tj5n zxyh*g9H1ZTNbv^UijX+-sl_r)-wYR7&>;)1No=tZF;cg`{BJE?XZ{E)O1f!-;uN^X zCY;jDE}mkUDG{UM!}_P6B)-!I_yr}VHP=LQ8`_Z0$~rGp{kk{XU;lWrl?5Hb5*r0o zhiK*QelRhHfI%0CmOIKReQlDZPDm;gakd6jScMUO@GiCz9Ugmi(1&OH7XRz(l|!&iLO2E$yl@et-M$w-IV22CJOJT}sT@j)0GWB@<2jMooz zI`Y7~^w2dUrGNkm&d30Vyc?!~1l0q23R*s^L{=Jri?cQ3^R^13e*Y#uH=Q^6sP<82 z1W^y3#DT%{*mxvOl6IRoxUEnuXij{-A{|TIc+p$8!??||AVECl4N52{ao70 zmYPn&HaD5eC)#_RlV#bnF#D#__H#S3CV{w|W}X4}gM`lUB>ST_BQO07ZPS&5a# z$82NjS`B1Ek;1zhrID}F;%#;pwZ5SVd3@DJj&9E zA3%z;qb1w~$npefNXo0rWr_yg-Yqqh35|ioLnK&=L8-yq`wAM|udn7;(13VOz=n#P z&{*zz%0;*bM(Xl0DZ6U`W67Kdrn9Izm+BcqgIA$YHSU%OQPWcq*ZcJ%YqM;dkzsgw zXAKbC0{=!kpRL@Qp;2wZVyb zrU}b`uQ8^qTD_x3%rd}cZ=j=UsP=6sxRi=?SUU%0X&jbZ8>q-Mw$B3e0%X;Nc@b@} zJowM&a$E4^(d?8b4)-gdMI@u0y+{S;A}OoxUQA+_8=|3)eVE6K`L%UH=hX`7LidgY z02DOAV;RD%`O*>aCmMpOZLnm z)8!1P5J2f8&IFa2CO8w4ZK;O=sm`=3o-4Os#MP@`-M#6wzifkPPkOWUE)o;s;A??z z4mUXCcyPHGrhxw2hbEc48B}<1NMUBjN*1;&O74o#%L73l;lev+7QUlOySFtN*9~as z8mk)qQ5Ha(kNWIa4vMJla*B8{#;tqFg*e7CaC;+5R9HCn3?Gd#W{ZQ^&vl8K40?3jsMI%GPAJXetZpg=+33)SoirTgLRJq;(Pf zV9mpbW<1#Q=lH0V#mGD)C&ZzhF){6BPn`gBF-Wo#VR{F z(~rc-&Z?DQzs?ah_e$6*Caz0~b~=w?Mg}4r4o_ZP%UI^?cBFmdXuoMu`X}ZavgZG) z3tE&#-a83okbSs z$Bnyrf<^y0Z<;W?_>GVyoaCh&gYlpdm8Kmzq(r!)lVH%um^uH~fAid5JRnk}VmPlS zFw8Of0pc=vBtmlbG$60pus$_zmz(hMnBKbHVf_a{=-by!jjf0^z%mr!ZOUDkd(8zl zui-qfFO#_a6$|Hd^mCQ@rL$VXH24HB?Zfh~X$QfLZpjbK`?8B&j*FjTWZ;rTu;QW^ zB#-VoH<;{9ZDkeSH#ps<$jYeEznyi@*6-T3$)%rY;^~CK9(lrd3%wD!0g9g-k5e0Z zxJVeWjo!kdDqGv#?`D?vOg}5mOoty_70hai>-GsiLg=OZU6`^pEc)^BzU1mM9)W<_+g8S6?{nd9nX9tC0M_0y zn;{LfgV9tPw-2YoBLt98jjy&W^kq0ep!QyyrmyuotN?b?3M-KN2_epXeAJ?QNY@s9 z42rpr|Bfa??%t(^#8M#66w$RCF49t-;L24qaX9s^)g|vh+lQJ#jP~Rx5d@gOBa$YF z6L6>c1G940UhXy^K2Z0~0q7wswz(;fC3>+6L8Bk&;U`4w0}Y6*CN;ST;X<+YFmv~J z^in)l#5zd)MX6fj$unp6O1K3&<%7HB;Ey8g1Nu!hc0t)E7*r(K7o#^UK@*>B10))J zV=#9@86v9!8Yb`7EH{@{LVg#DJgLB2kg~E}K0eYoC&j8DX=1(b{7!dJw2T4v>s8Gv zI~OS^BYEgy#pp#nYXbbDAw{7p#PGP$Fs=B@otRVIQV(!b^&o-(6g*1$6}HWs$mG_I?qKccIBI;5|4YM|=a^ulCd z?u_r$Z21@u^9g22e|ZGW;MmUfdsrx3P>d^$YRsPPmvRo`*mqCxiXfRnA-R_E zQ?A+svj{iMg1`qMu*kCPB7j-V-$MD#LPN3jr(kUB0a*7i62fJhGKXHj>2fJ4pmsQTb%`{WQtP@?B*|+LdrQwTk zL~7r#R4A_YmOF;gkJR6dRaLs%92q09$fuIn-3~i8z~r04$yTivG?U(dYjy^hZU`ZG zSBedhyVr^$B+65orcA*NF#d*`pFab9enoY%1bN#Lihvms(Hw;Yz*TC5f57;Mrd~(t zcb8RWRt~eTs|}L@hUbuT4lF9;Y=$_vzKHsB^$T(*WSaUDi86LXRCms@`9h;zY~ZOb zllMHn82uXwwCrF+XnDHr^&NNM>vAP+$ql5E z2BL>Wt(aq;4?CQtrNJKWjxs2l;LD>zuJETadF=un7#w`yoRwJ&F}MNs z4dW+8F!~wXiopoCJTt=Q8ZuR&OYP6jl#4T|n z=q0g^>-6WG7s&NFAirQ%@RX)sgDW(66u6F-gUgtE`lHTZ$(iQ&nOio*{sNVjm!4KWU(A4GE_sRyUwWhm85Z0dpn%2PY60E69F?oQ1whou$7=zLn6??3eYv zz4=DwBj7WW$6Sj9rr&!B9l}YBjbGArfSDDtR|`Npx6-LHY>O6spS*;%_@_iUw_;ck#fCD z5;m&%0@HSwd|R=-2~oI@RXEn(&q%ciPPBql-BScZBi72u2FH%pv^nj+;>AL2bI@9` zBo~+2O0Jxu^np0z}LJFuXLi@UO5p4VsUbGp4%-134W87=d;OY|aclM`l*=J7yr7m9q zOUGjMWdINu85*C`U86<@EdZ<-WI;kW(*71)4_Wm=S%JXu`;+P+U2XwMP&xWmdg;0N zNtOFr!)?MZXuFg0#h3tY^zRs;D+ndiECW!jT$S&XDH0NSp*;Mz(EH7#U!U^nFXi^h z7?8~?G$M;?&NwH}46Qq7jCXV4RwU)B^T~a_C6G+mA?Eg4tNw)m2TJyo<}x73>;66b z>h?BHxlNHOjC{|k)=D~5HEy^hwfO9W`}|Cym&1Ug0~>CYma`M=+)YdjauyW}|C7}= z=|;4U$iJ#I1F!bHH$J*kaP^Lhwt%lU>yd^#Z`J%%;t0Jop zHK=X?K3&9z$Rj#?aTvP-Er(T*Zunf!wN*%;liu}a4%3ZZrylNrTZM0y-2p*EM;*{S z8Fq5F?r7em7<)b5L_J4yfudZO)i~dOE$~D6NlIL+*^mAUh&kuXtWf}^5&v9bx?D%y zJ6Vhqi8K@ipn15a!7>-?Iv}5c^UbKFk=x?mM+pe}A2s_gSb-Xg+L|4d5 zfVKxlY;(q7(bp^kb-cqSzQ|JfU}9bl3{y8+76heqw#_$>?YCx^fD?;$QU5YLbwSUJ zIJ>L*CWtm=4}EP`XSfdm9#uJ9&(z&1hfq6809&+K+!=%BQZbfY@m`QcySv()+*xymXEp-LH$c?EeOqQ zZd5_G1Wm7-0`@F)UpNgNE}GW6v+P&QB`|}9ZrBF5IX?hOYdHnAiC8GN?1q35TmazgWvi7?pA(v9ksZf@a zRE}EcDZ6p~{T;}IED!(p(|A;%B5)a0vH%ksVy)YA_}>a}ogfQ=)@V}4z!byLHZE7W z(>7_*Iu1eRH(1Qp@0ScN%c^5OEIniVsJ<_qxNApoIi4_d`eTub-&EP5u8W48@LXkRnkw3n=b{_Ovm4?6*&m3M> zOb!BiT&@{Q*zmXTE%3ri5E{0nwnLb9ph(m^Jd+fs5rKYhB+Pi;iK#e$@^w6yeUCrw1Ew1*Iv$il z7i3G+VptSCK_Rw1{mEbWFGO6d*bE(s_Niq$SKQ?W4OrDz{lLMEXlYjQ_RjBu?IcA9 zT5|$r`$(3F@bW;ad%=mV!x^tD)2>==40gBzndvaJYKhj4`XqPC=AXc}B_lm#?2l-?d3NxfAZR#g} z^lqmVoxfmqv1}3GAtC?XLl%CElRyphCkd50`Hne?F(2Ui#3p-JU-|;&n0AA^n?z>Xtwsp5CEo6=MPpz{e>JP%quA1- zAPuQ2OR9G9-sdu_SIH^?cP8bPdH+So!0p zipJ?FO?`Eah`hZnrrw>xUEen!bIV_v;RZT7i7~SSJ^+2J+;oaxuM@GXis^YaC2j5O z#T+FB!gUal)+AYounA&X08MDE9ib z!u(&(ajuBxKRspOeizBC9a)dvlvv-h%bThBA%eTpYhq+o&iwgjHk`ZfSP%ao5lU7- zX0NBggueXdqA6L2#ln~gG#})G^mFCl-_9SCZC@GD%`gZKF+giRk9`bg%!D>?w}DZL zT>T5TQ%s6p?&pvZS^gGoa(7CI7#l*CgDjT7f`M=C=^O@2X_J}5`$Blz0^C%$(b-J5sKwQHg?88{iwwt5qt~3F^zQzJ)3kFw zEaxOiHQtlS2?+A677FmlV{R3gH-soVc$sRq`(_2GZ(>k*u&Nc;^ZiC(SR)%?(F-%R z=f@)_W?#B7se@>E$`#O{^P6?+Ymx^t;OKN0?y}C7J>0l}O}mAhs%ep&vRRi{u3>WdV1yR3z-!R~uIQQ)PAUJewbkO7K7{b@!moAy3i`ZU}*9N~ze6 zQfK!5gFT~e_UZW=BnLW-XL>zU+9kY3vb?I%2#G34f3MxgDqWOwZXvHB4~zYXLWYFi zfXVF__PraLotyQJBAUIHw`oNm+$bID%&z3bL zCGK~Ag!eK7N-o?C;2%!#r{!U^VdZz(w6Es+LHpvNE=JZ4)5TK47`7e8X}kwBvJ(Di ziI1mx=>4tKMQGJW6V-S6cAGdMe$SpwwQ**6L-G|tLwdZ{ol2J(5#kE&Z3j{QZr0N> z!n&%TnK<-5o1&T~P(1o$YSA5=%|&WT8GAJGyl1A{aBn_VL6r$wcgnb1^tByju)_|t z0$hXc-#g5Ne9=bDi?n5$h+9M#i~g9?S@Dqhewt2!-b(ePEJn;I9>tglndiUl_^v&V zEExt(-$cz~q8V0n6#GsSz+57cP3n2$D=_3UjU+A?MdXzinj2HJCx`J(II^iJFA2g% zshn642Oln}FnIA<6Ia|1&}Zi5Teho@Lj+*xdJwzaQRmElRgvb``-A5FIdB5AX$98}^VI(GilB(^8>aD)w1tx)N z`S(gRRHNE18hy->4%sE7Ds)dux&Lw}AN|`jp}8yzy0z?yPwK)<`#4ed?9OgaK%d54 zx~Ma4drsG4TJ=b!&3wBtt$`=nU`0LQ*IFB>Oy_dhHub0bTf2|x&c?pno%35xHl95e zX2o_Kfv;mgMORw{6B;Kas?Sd8cHnteOET+rZaE^fA5n(*0P}i`qR1$Zw3M1o_TGhu z%r%2gLF(R+Nj`o@mBBmyZR-htjs=*#rPo&&e#m$RJQErml*`%|vW{|UPuI%)Ew%=n z#o|Lr!gQe&@Ij%+sN+GjNV#sBBym47hP{rj9IxtDX+3>;@J}!$WxR(ZG9qfz@$Ihs z)O1KvVPD+50z+7IJw|fdVAig$p#k~HSDtk?3Kd=iLwmw?(1 zDic%TK@N<_d6m~aGMu$20DmRCarwvDl+%L zJOx_jESY!;3-5vI-Dq4F2qOaxA8*#0<3pC zFhxR<7ow5=e<&<>Peo0{4hx z=#7{PQ(;=_KPv5^YUP~kR}y@rYs*uBC5T$9Er2jl7W@%C4KK8X97Dv_OqxR_*MAV9o2s!G> zoFmx`??}0%$SuF-B70%>plHq)bXUjv7h!*+`U3Fi5rS4~08K!$zfh>l$H3u6J}e40lyN$XrP5{Xr@z< z#gAqLE@!NvUvpANPS56ly?1Us!ZxQ!FN31{pu`%l=yljGJv5y+SnD9Q>>6u0y6Nb_ z^R7PtyJ!pYEcfe^Onn9DhQiPoLWCg&8M{~u(0S}J4X&hoFr2$^&8*vwZx;u#k~j4+ zTM3444hOSH`g$I=D7wD={C^KJhO4&Ce4tcN&lyldy|Vi7_+6KOrZ^n9qMB3BYD9qH z*m*pUYOG18;c-8*7$Ai)IEU|t3tiox1TRD%?^Wr!w00$w9@C*|%{+B>F6V_N$+W;m>IiG?%(oE^?Tw6)@W z-;yZ?!VI7WSVgu+AFZ=u0SH{Hg(8RhDa@g^<(%m;lN6Ab^1W* z!22reRiX0-DKKmGG#&>RxJb+Ftk)Q7487+$1G%X-SUirg>s>=9h6{gTqN-T|DWtU5 zz7teJvhIdeqSG)cZ<#tOL8N)&dF<$GOwUsnL!M(F%y zp>|TQaf^sN{VXF_FTok`p?j6%IRmz%Hdqwovx!vyiOjlH+f{_Fv5&QSX(JKbx18 z%8$_z|ptDc-woNex$_XgZ^O-3_XaaE2< zHv*|mBNPJCnUbzU-UX^UrUsiH?tDY<7e%2rhg7y-9N%)5>b+gKmoep#5Ywh4a>vbpkNB4>46Q=LJWfDhIWBPrzxE{ROnT6i|MPgMo2+ zIcmAE*@Gr-C~yLh$CFyhvZ|BE#Uxn0RN&R9^v|W*XV+D@9NVkhxfdh8|-O z^_G}TrBL)~#ewS_%GIx`d82{APx`@jui4=Q|N)0Y- zsa-fh@o!&h=aWjaV>xy^u7rBGb?6B00%tB6Qa!N+^a>m(p>_-xsCxj}ozDpi&*R}@ zw-!}aoxR_HpY=)h>7qD&>&;~B6pykq8{o;{3eOja&X&>@!fgo&K=)f*SehQ#d13^b zRom*<({r0EAnBK6dzIg(t7|Ukv&0^C)yQ2$e2;%C&>&?!ePS}lqlZ2OkGuy4fwwSk zJEsd=FK`&J%$lgxC#w|9Yiax~i;)R=^##m0lbqzK4cet^{!~&Eju!rqs2bZy z1K35qAv1jqa;IrG*C0-hKje@ZtJa)kPuF0zp=GvYP(U|o51+2gU8=>r)w-+dl6Cs1 zeRvqrcY7R2lxu4DDKyA=$7{iMsT#BX;JJV1^Q9SAoyx2e&W8?1m>6+9l1LLS=pnmB zQ1?+eIgyt#o6YM?S(4h%Vq;7JqKBG=zc~fv?}@ts*o|5)Q4<)5u?C-|5l(!xS?0Yp za5HfeHAk{NCjR$WSgI@psd0G}r2B!o@Kb?+@knf3h?V(!9m8=*!tpVZHFn~ry5{zDe(prq|a{x?whg-TA|8@8~FlvUkyPa z4URh4m!5t@ns~NLk-vtJ_xLN@^CjdLH4&EF$h z12;v^c~FEG7@CYoWs2`jbYk}YAsBcwl`^<)MtYUg zwbx6%zF7A3_@w(>`H6{OWpHaJk81Q6EtbTw102oNz0f_oc zZ(<3Q2WMALw&J8gl;&?hq#7VOHONIvQLs-@e~T5wdcxt#31==^%>q7wWyidTVPu9r z%~Jb~p_F4}IDnC99IGK_&Ju!P4lc>=%=3aN-bM(c#rWMD^0#PE%$|ulvL`*4vNyHb zquNB+DE}b#Wvu>2(ez8ZtrhzdxyKUU+^m{9snzD+5axs7f$TsCX9mF?`VR|quNgNV zENLRM$46Ua zRTT0YwWx=So|~IRKwIpj&pH}}>?R-wxZHIu5GYRYdB*R#co9bAy`jK?ido>{nt9+* zYmdbea+z0MvZltD-{)Z;1Zc=^@igI)f_0Y;A$y5ljue3kVNvizZg#K6LB!iLpB~xe zjvP%lfEEULq}eM)M`CDp+SJY~$2QUD!9CYIrp$U3%eWwM-kBOpB>gSqqn!L!A`mQC zw$6L#hL{CC(Q8t+(lI$~vbJUoT`Gi5^LX$muTM1#Pn}!BN;qN5R#`jKvPg5gMqzUc z1%RAjQaZ_LJQ4a+n6hB|q!48ewre7Z!fMP@N-Bpwt5nwSl|_SN54C{zK!3KE+0B_r zOOb||3A|`pR_vk%-_p-o=Mi_3yX4@njlA%HLfh`$aH-oc*PiYc3QYXo`bgj2l=xj? zK|7;E7f7x51^8#1NKlwj7hrkL>9tLfo#_V=vA;h<6%t2+z{I!CG28g?|74gz$4E^% z&3^x8!a8BOKFSquQIP1%m&@xG*uuh2slB+1)CoR_-Nt&9YpQ0=_3f%>lj61!+9uR7^aq|@#q zLU~H)wajimN-JKw2~Na9!DRpLPzF;enxNL5{xVx|4$8wh@IgDgD=s&A7vO~z^=F;u z>}d)Sy>A|gX5mxKC=KBsQ=k;;mPj7h`4kDB9NB9!hk@cd78eNLbevOk!>?2ZDTu6$ z27c{#B!H1Hm!iPiES%OlAQ~vTn+7FnK1}HfO@q8W!3ElzpHK@G7wpNXjIqkP*6*Aa};1TjPdU z9s~Z3rgHQf3PG9#ErQyQdAfJQL6@!HNPVG1v4@EF zYK~%56MuzUculr?thy&l3|Wmb7zYGgPTamLv9lGZuYu*A;DrtE7bJ^|h?_D|r7{Bn z{?F*Z1TRlGj=e03msSdmk7vK`4%Ae&3w?>jhF%i-TkX_4FuwgJY!Kzz6>KLW`4ZQ9 z*nyL&9V2hLp}XIZ%(@)__ik7h$3vwE4A!u&XE|1yj1Dc zpoEKHo-f~s%#mgK|d28BOa{5QLVfhb71eY1fJ zA))eCh2w0a{*mhn(|ffo^8LyrR6ioi*|v(PVc?iRR5rknPOYbe(WNW`MD~RqS14K% z)V^$1>ji_jz&$qX>|Y*HFA3fg{hZKS23h!E2%E{P{}KXuC=$vfPAFw?Jx^y>s`5x8 z2!24jf_}#|GW(Y0j_Ea01$X2o(`(UKwFfT>|qcuJ1-76qJ~uPyE#Q zxmGTOV-YzYLX4kEAGEaVwQ5olGtkFG)EFTkGPJGA%)9=NQnonk|0pihv1KPj3-OnETg-q*3?>QXp9e z2m^%5+TnttG9pSEi^-yJwP$u1qRnl=n<831aX^XwdKems)kjOy*DWIMMVw$h3f%}{ zc)tXFlfEvfZau>J9qiB-=H+D5m}(S5+MSKq!cp@}Sc(-pYqDzz)gU+MJWWghpzyh& zb6|3xExBY;1G~}P#7T_!i?@1P(+Qkx_fyFMAl6*rC?GoENTATCnJ=q~d^VcePyPQ*Y0z;(2rx%BKo-=w0z8Ot~ z+kciNl;Uii(yyG@ZTsf@7=|2nqYWQy#41cjw6E3wN3CeFq8D}zj+Q=%0v34OU>U_- z0s);{n)RL{$@XP#%d9|dUcyZOPr2FZM9ZabL@}WVlRwM@^@m8nZC0PKTMIY`y-U_a z-gf(y8ASYy6=Qm_u_VnYDAaJI$f7aKOY5-pV_y#Td9U=%8j9MrdzIQW3{VIIeN?&1 zbXbeHkoX^Q>uM8q;5MEJePiE3Z9E5rQ(73{+_$9~<0opslYDf{X)AjdVo?JPc*?Db zZC5Z!v`_X*?KJ-@w0{n0(A(_)mnN1~(zL`_tr@BeT{$vit8Do;eOBu-M93d!qPLee zpgd_`+8Pa8xv-|rF6|`{2sPlkbcq(TfXH5^0#R35wH{Sb{(Jy#PsS3DXD{Am4Lqnr z-#`RRqz86@bYvKo(iH3J31y)9=yiSRHpXmxr1h0AKu}-qryuLpXgEa z^}%uu4sCn_8$i? ztMAp!S4zz7(R+srGu@rLyr)RTy#N3sCr|(+GypQ^g$5kM*;AyJSP5FI_+aD-g67_S z&4Dhk6Xw$t%d*!PTMp$G46DNxFZt7jCjz}J;#kv41Kg%xH{ZS%M3Joz&jwJoKCP9G zG~MZAZ^FTA(-NLf&Vs_LCD|+>L{6GSWIt*hp5bo?_5{n{G!x!62A@IE(juZxnA2Lgw5Fmva_t|>fnCiHXJvI7xb}5d^7{w9`A@Ms8EAa&4G@<%Dp+e!_^3VMs8ChG z(L7X(Ote;$qHnys*5vFp3?c(gscEih#4h{8xA{YzHKDtl(KBmbi%9oSEu{jO zd=;y{o=({9tb5ba4yPk}F>;_XPR7)^vRuunn-6XlphgE9uHD{cJG1+?(OoEd>T-^i zBCZ8E)cXoC242n1o7!M+(WK};m1}NluY@jm9Gdp3r4i`1nZVg@RlM=OCe_~s=qgT{ zw2fVv`oaSPPq?VRUF)>}MKEotKeT)=14bllN4IQt@-f}7BBFcP=wa-#Y&pq4oLvdq zOG!gfxgxm(^vY{K(-_~p9^W7?-gNrDL=UF7q4{a@lHz2+^IJ7neEi$ms8=-a&&H%nHA3c7W!M5&VxeeehHxG;kci zAYiMOrg^nZbBg60`AkFI(@R)iNTdJ?%daG~chUOIgg)L?=$1L;t|05s@(^$fYmOmm zWmF$3X#*+II#z5_0xlDN`?d>gVB8@L_4+4NH8|h9SXn_cyLXLs^*m66;^;(sE)w9c zC%>J*%Q)Q82}Ti`Pufh~=)ahwr$Z2sD}i&gBo$9l*_L8R#4E zVoYZeDbrLZ2Npti(JRr&xCGm)XDC$S5iAx&k*m+p*wO%eO1n-PS(^e2(CJlTRfZQ0w)oOxde=(?)-tV@Ehi=Lsm+MdfoX>>KVspCMyWLltRA*EYHb$Ed)U-yrqJViX|l_DtQK?F zv`c(%fr@4h3N4WqHaZ`mZ;*uu*mD%vFF53w0F#9G-qStBKbQQ^Y<2<=a7dPFU7Q!GVEs%jeQE&tAY_;g>TdgCPWV3I4)n%nH7~(XeW*2h3AgWb zF4QMenBDAXiNA{bZ#kABqFb7EzH_F?Rj<0o-Mj*GrugQ5JaO2lpR3&hr2%LtYMJ?w zf@E56bb4{gQC2Ttz=B;yGrVkbj)|$g;2jW|c_{wujbG_Kq3sP$aIWs^rb6y;o2RG_ zr}N1S#(=}*IKW;s#_|jD*4OF*f;`ZfajmpS17^Uzx=GkYzLK>gaE5ik@;5%qV@PYXVH3oLUNu=TlbhBGlT3tn6HKXuT9iT zvV=@P8=WiI0dXt?L#4Mg01KEjkm~9OC`8&0+Kw z1;;16%;k@`KI5a=3JiDt@=t^4nns~jY7w5aZBE7E^PTVvj-7pL{+&{hgypqy)(>*7 z`)#!c*3)hpB=qgYNg&lf?n#7iksE>saoVkSmwdzrP+!`l{_tH0kbpwau(Y6~rANTW zG~McWFofAk{d~R%rnC8_U`sW|4_%&|XAf~~{LqG;#sSu#0c4aMQ@#rh9uefEb^@YO z-wl1omK?BF6?JVa{c3rUm1$nh2!A+9Q7R#7NW2!!9SoLZQB=}$^i4s0Q4i}N)#{LEQ^YYOB?%Z zUeJ%qDZyQ<1fS0D8E7p_2`UP0_QSInEgc@oBSJ9b0swf~dL}x2 zeL6>_HlJW4>SX3}p8xDKHQ)az@=TdP2_TLi48GgnQeR?!~ zHULcEYWHUPRs6#G4V$?dAMETbNfbQBOhA_$lHbYLTrAh?$@+1Zv8OZTl1hB1|GZ;3 z3`yn`t%}`x2sQXYd04^pVT$M1OgVCO(+KDIoYPKWl?)|MWM96{F{+;_hQ<{WUp?#> zO-H;x=NF##g{DQ!Kq__|_hXZ_*uKIcKC1`z2{xjF={0rgjcPxU8l(vGu98cOwhY&7D9fHcQz8~lauohyWH@`S1KS*NR)7gd-_;^>b5KkO zp2S0a%MnHXfgrAL`kwM82{RhHF&?M)$#csLaksoQ7 zjBn6?Dcv2O47CV)jHaV{;`%R&pmE70{EwgDDOUmO=Vdl}KpyAm5eXaO?95B@r~PHF zSND&_+FUI>3>YZEiGIt;^BHi{kQccXqET@NCKjB7kBSxKO)WR^&-e2nyN8rZsMz&9 zXuYPSgU-&iAf5KtJ#E-;sy5@?uf1W@pP<}iQ@q-?;zM_wc%w{@v)=_NfDzP>{7U>V z9JBg*v6;748G)p3%+pD0L$fB5EONVsD~W$a)One@5LK+efH8B%hte7^ZRm)L$hxap zVQ4J|lN4Ug>e8|HudMRfIpLA-Ulm$2yL_50{rE$F0>+KhOLkInFe zsScGE2@S3YVG1U#s2za#vo;QyF?34y+3|vJ6KC(fIKwL}FT8Y?_SZs|>BNyuZ?pBG zt!<0Dw!)(8w5nI6hpIzOuEx?WOq}6#V(pCF7Tb+nP6B?NtU<6$f<{As&7ph1#R0_H z^G9i`3gb|R7Du1b^_=b`ua5*WhLwOedqu)|f&7GM=@i!qTYzIVhDCQMlH)G7DYn?Z z=XB7?aa&k?>WIl44_q=K)$;)9?=?vbrE*Lf3|@S%>I|r6H_CtdAV8q@9S|CT+NtyC z`_F6N)jT5M2ha)7*F&=uHuk;;$Y4+%R_;(Sjyx*`fe4S>{*1s|sdVWgiO@|`3K$uW ztr{3>{|P?O2O&Vm%}M^Cl>vL?U)g0oupT1R2}JS@Vd;%(ydYY5pA6{4Tj|tJW&zf< z0KHc`ys@98;yN42B<$XWLv;@UMN!#Thc3}bK9lh}xQX;Es!lT72_i14pNb2a=e996 z5YMj58o?ljjBaxq2v3BC<%OH4C9}X}Ri zgkD95rhmQIP$VW;v?blH?k;QzX$Ht`!Ju`dn_i2W1KLG(Yr~=4@EtwYJ0R7t8wqzc z2zXs1;8g@e0ADxB**pr1fYxmga$^%5rq7r0K+QvYR6*z0Oi^a)oHCMd?xS$U5(w>a zBb2&4YDKuu4bt*^9~&1xzRH|UPj(a|-=!PTX(?EOc+(mNfVTR6&vLu;{Jt6=k& ze}^)%ZmWW5Tc`C-#bJ2&-&w#c{VS!L4Sh%mEG?7q*f6cF)h`~V+u~mrAT3)g>LLK* zdlJY^%LDGvawX9O(P;Pm@)wJtuWOaT#o|ZEJ)VneuJem4gKnua70K@eU>=lq^0xAk zt(|to=!%`Ite`9p_^~%?+t*qyGpNyj*ZB6R&{PnRuXgEeuFufuXt-*f{No1BC1u+Z z^>V68BKJ{Ryz$b9wwQcwmT+(Z{zJf< zsV_onpRKI~QM%LB+dKSN@p9np=7*Z@LOG@y*>Yv%;A#Z(UhqEayB?vV28sR(XasIb zcy=|2&jLThE8Lox6wA7oqoeHX`jj3mSD!45V3ZYJbcmTW_}1v63Zp3I=# zHV}!SknDm5r)g`8tzn|vP}pPoaOWZC~FnmtNs&4=Hih|dh#gJ&=*nK@+$X*H!1@x zKv*2X79djhzPJsyq5!@3Cdj(Wpb;iBDT8*t-8R{>Yq$Paq*m0Xiz)a8 zKI$}1hDBq|Hq=S+^y?A+ENAJ%wD+uds(!&fH42+D8i@Q?-U+63KdUYZ#*53mGZ&@A zR(7w*+?7|}x!xr?5y&tmS0q{)$mvjs#?(7*`@}zE^vI9)b^}l9 zT6ufZZ*xFe#abn^P6OS^AK#En!*};xBdH>8C&Zbk)|P%bj=m*H8A8cpipY!LI%vP1 z+KTt+zv6#j2h+A?jxqQ;$#4Z$l!CM-#5rPFMu7zfXe+_CkDkzHks*Y>CsQS@2c7Ni z?W5lb2(U+ewon%s9@fcVRB99NhW|}VO`Npc9rGIhy)t)i2j#T!EFo)HO131%s8yR{ zxj_~Vv=uiUX2)$lz8}_%FtdejJi9DG?bu*9$9~zYv+%mO80l693@Vm*?KoBx5l1c7ve1^@TyMi|~ z7kEfZ+WWe&7vLtV3k2}j?B`3Cc#44)sB^+TKpfO-U(PO(+~Gi^jJd3DsEAralttg= ztHO?_>Cccfr`albcDtmlM&&8XS@2^Z+lPGe%+<|ld4ZgsN6+=}Q8T9bAka#$!$2}d zS8&{^mSRn2g)=!1j?15T$;l!%s|&er(|H7KOALQe6;j?7WH419RDXm5NQ;=(^K+n5 ztxE-!iRi5mqjTw=dmC9L=Rcd*3T_-}!#Ne!%OkL=4+R2%ZP*=fL00B#4t9yi+*o4d7hMWFfbogpYyJR$^W|7b?1`d zsX9GEFE)|g=cDEa*`|v(`41>$fNnsFv3HV{j=oGCE3S5VY*+xccr?f8|608|>kFzs zBNb`Gk>%cG+iYVVVs|3sE4;ty>LAKHhjGgSVW+Mka~m$l-Zb5#@ubvZ$0a)eRYpPtnpP_}?XSITxBkiA`s?#& zKRv^;D(wQa*WjOA;~px((|Z7W0TK^}BGLE}r2KzMN4Y-ig&jLc`%2!KpaDXLOW^+# zfi-`Bw8iqI?bktKK8^3eRtJj9ob+pnP9SZcHx(s+-a27U0fial$huSgOfb#Cl3Thz z)fUULsxqt=D9G!%-Hnr@q`^l?sOh~>f3jFYx`;S_9SahBRh7o61+F_MqN<}W3H>7Q zm3+)Hq(2ZcVvmS0*iT=lWOqssCd`nMo8%JB^NTmWSG+|)cK<8;+X#RuRf z&0yvK?Yn7}h`4y8e?DZs4P#(TODPCi^GzRqqr(0zGJvJ^-R8PiR4Z^E@KJ!(8O>eo z!t~opVEu=Xnlx)gzI5e9D=C>fHE zmEYJ?hheD&!=&!=$9>IXHx8k@4EvL&#fq2ESjJ$zh4V)-R#7d2_c_E9;qwAVQ5% zSEal9fGvnB44HLh-iUQdi-|~eC-ls%o8-v+lc0NwOzBhYa6LV#w}1N6_~5Q&xz9Cg z@6s$}RxB!w#y{iV4yfpL8A1VCY|s9ZuA5UcAfkdRuT%&0aBS<~dHw?j@v#_jB5RU8 zzq|BxRbRF_WJD%qkJu@2@5n!%1_gBzTzmyS4buYx(9RG(gAeNHZ$mily<2FZ2gZ{g zHhp{l$5t0hZ68w}@$HTXzMEJd{-!!lwJ|PZS5HHUoGMb9-Nh}}jOI@?Opmoc(4VD^ z9W}HWmWPh@Yj`=V5~zf!o^mjvHZFBV*^gf$cn;zfMHUxm*)z3evmU%nabm8JnSMXLW=#r{a<4NUZJLc*&b&)%Zke!*gZkQ%R*`Vgu zA2CEOCTpc30-2J}@FiSgm+pScBV3^_61qkkkMm2H5dEa6vPlYCzU81LV?7H4B-NjF z23#3>S?%r7@^y+H6gs>Qs+oO9-Zx&6kGbRP3*Ri6=|L~V0Li5zUOucWU|Ga^^3Od# zL}E(~nRp$Wpmd!$vw)CYR_p&ARSig+@pCYD>=CyUE24VG8Uc(Z(zHjV!-Zole&6dp znJfF#ss}?4rI_C|@`Wy3KDIw+*%qnp_zgRqkdkB;{eza{eOZIwL#s0#^Dfw{LPu7K zpu!mm^iC_o#F-bPy3$d@e(V^f9>&nUCb!r}p&_U=QKq3*QX_Fx1D|P`(+T$f3DXuC z1cwE81}n5_toi$`f_iwHD5`pK02UQ0$KrF?hx0}PH|H)@2DbY7o)&(DNZ?aIC4xXZ z01#mwv1f`y>D{owGYEe+W_9%{9%b~C%FP)iMz?0qjCj%o1UYvCU}o9kusS7FMf}7p zu&RQxnYZ(xtS6D4At@Ky2zFL%A#kA>5mnCE9^A(J=*xKmjGicbnrn=B@-}?1bVOO5 z@yMr#$g2Sn0G(RC+$^K=^kXH$Z za9bnL!Dn5L0Or{Wq-%xU*D2lfV&Q}Qi^6{v2h86%{y_2wZ0gQp)--nzurU9%?y4!h z*e?7|jM4Y64(rGIyUNy~Q_2(Gbg}n!09>mi zG-r=_js~Pfpx@!Hs2z2N)|J;kdo(dF7w^SO&`bxKlznRZpb6mkEVUS(v0&uIY|=4= zz)&*iK`S|{q0qGci*c-7$V2#^*Qxl7J%lB4mY2KPMY%IPlsfLzkTmv12mfZ?wG3Yz zAY_n5(hY}ozon0WVXx;v%tN=g#vCrX&bjjr#JPFEIEl9-wzkp6Q;1YSqnShorE5lJ z64!MUhNX<#TM^dYv8{ORfoVSZA5{NKsL>|2;-6M}0CpDGLJ|k6_OiA#lKEHjmqZ6j zgOJNH(7J0&k%d4>KmWts=WQFExozR?|DT~nx2^vi8W1_;twdh(k80!35*K)cfs$#? z;y$oK&%+%uNoqXCgVYF@JK7qsbJhS7n2K3g<{||Al~~<3aRgZVO{?y-4elJfl^J;{ ze8%UwL0HCDJN4+DY~iI<&wfSo(OTB=@;vk%M3K42;I(sfEc6F-j=>OfS1pER+QID-VX% zP{6GrE+9#iANvj64bpmJL;9I_+s*jyC@xAV59hH#`oCpmW*W1=C&)!PHV@h$ES+8r zsX+mWD{qoTBH2dExm=y3 z*@P`uDxo2@o$Kznr|4vt9#Z3ivRK z>Kg@RL|4ylF@&HJD0|h2@jOfJawzZt4eF5ak2K2Nv({ua%;(MO{Xyz5Auy1l_k$wF z<6+J~0D^(`Ljz*ZW4(1qM!Sxfy^ah4vAEQzIbW^Y_vd@wntf%R$K*iv=oR#+3s{h= zVEpqi*7p?fl|u}awa^d7}f%)?!4hKHH(#y5T&+KLtWsP(EQkwy^ zxFzu>ChK`M(!8P=>eg@_P0BoI1`)#4yS`3|cn6-smZW$}dk~pI>!Y#1L)FegvivPj z)Rs^_`-JPBY9JwriVFjSG!W^59;)EnfcY+@Y3ji>-h}NhMe%**8e;31{oW!bl3Zx{ zGS(Ff&SPeiR^=Ar&H z_l2V+V7BU>OLAVX!B)Yrs*_6OPyk0aK%%MBW9H1#26)!dRQnBppoV6FO|Y@Fi}ekK zCECdUJ^b)MwH4*&O65&X*_H@H2#^9j&VO?Jzi7p*@CVHr#%8@Xl?X7GYRGk+3j&Og z(3FsUzsFYfZs&;u5r`HnQnSv%DTAIwS$qat<%VZ~OEU7UDp>X%KV|YvntCH#>{3=( zFk-Ir&kift38MOR>=YocPM;nAnM(tQM{Aj?&nkoHDQmqocY3Pa*cd2xVsm$s&!XCJ zbwf1&0=U|;^&U)+dqK!yJ9}Fcj2hEf-d`vUw3ZOahF-**rDw5GPkcUUlU0T~fJH6} z1Isp_&wIMZN8AHeBC-d^#LuaB5XYTD68oR})Nw*~`GQ5XX^5C1$By-ku1aOZ9`Mdh zl_);pd>Z|*5AGORv??8!xbG79@_>wN{f$M9lr=MMa_*qJW;?86e5$CcYSTpJ8^e~< zH?*UrGOAe@yX8KHWU>$NlD+#P44BF*O$Vh_9e=uO+6cFRQC7ToVs^+EJ$3ZNZIob@ zg0c57-$&-3Tq!&XMlQB#dDW)D*X+a@XJw^mO?@HuQ#7R)4XEk^)dbMcj#h!^paDE0 z6NiaMz)lD|OCXgXw^8W&lcNi2oM>UD#M7O3R~AYk0hv*?GV7KraMXJef2x9$K8xRv zNi;J{l5)5@7IXHezR&`iwZI3;fB*mh+2E6(fQCRMg+u@a=!4Wr+D+K_EYKFF^xGBx zwG|IHV-9qFR|0g+DbyR7#K)xrG1$r>=N~j4eZLzylD3iqw6Yxh2WLTR^WZ;9z=aJm z{n6D%0_BiPC;{0a_7KWcp{MR55_dxb9#5IZ|qga z#03RTfszIr+EY}>D>8m{y5W+-j#|o*Lz!hGl3d1hU?)2yZ@!q z^Eya{ddC2zq$kg0@=Lc|_ORqMUtByCSqY!XIH5ibN?_M3U!4XwE*COpjzyK{cDoO& zG1GvzsPkf@SOy2U!8b-68XWiu_rF98_j9a=nC-KW#^B}hBii}vb3pT4e4RaS1kZc+ zKY1AUyWBOl8DKQ2@5^mHl!u5glx){lolC-o?aGmjOs;wr74|u?Wn;XFa=x$OC$#xg z+^}Wolwkq>GCB@KwI5+`*8z1RecD?FG~Vj7OL?8@Aq~WxyiHz;L)^(D1*HwL_VI9s z@?^%Dk%WH3p1)B-J9i)WfL9FBRV40|n}>~#UKicIKs%3FeJ6uji6R{D@wt|F;b1S@ zeTxk}fazeDoZ7z}N@<)2^UHpo(-E;xz^=%LiF`Nb0Ztj>lal74b(K=zk%KQLO>&iM z#dKc9982*LN;GC_Hdea`_Pi*0@L51ZPr!GA#tSG2lPC4n%03#ia-ryeeg4lW5lmA*HBMa{x>LDjHIz3KuKk?xJP*eYE*~81 zYVkOx^@_o6xnUX$EJ!u8ZT4nf0$7jS-uaPOs(gNvSvc$q7nd+q`iQ(m==5h-MM-r%fK;4X^*oCv2($enO6awYX8B7Ll)Ag&&9D%5)aoH=Mrz_C zx4z2rWd$M82<`MzkO1-KoWLKM&;aA^?9MMV#CjW{lhdf-BW*WJV$F|uuQlwdRU)Eub`2&-e^X_dYg5scM|!)K z`Dj2hmN!Y%HGjabM#QmTLQz-4!2074WHMV zBM5fk&o*shE#gxKln1e1D+_1EjveJQcYQO5J8)Jx3q80V2vZSxipOYNv)?ynbN}P9 zV0pPQ@dRXehshp77$6p7aXH8c#wmwBRCO#Az_LPHVF>YZ-p(nUl2}F_%N`%?VQ~*C z#K}q;XIWJ8DxK4yF|7K9Qoyf^dlDZQHK{H*q#pw;ry)tY3qYpFr zzNuxJ97-%>#%Uc@3KijQdkX*Dv+U!;t3_@m39*PG*V0@NXkx;pXRT-5`aCaoq(wx?Gb#o?>^0Qc?3Z)G-ttjGK3fL>nq&m z1=($XKaL!RMXce$TZsApZvqCEDT13qCWliK`4&V$%gP_Rx2zA!p%_?GSn_N5^-)-J zR{FL*U5=4=tzR$+LF}_-QXB&8T=Y$`A}Z5uhS+03x_%5CgeBQq(_h7wXoJXK^)#Dh z>803q0#TL{y(GfLVgtY_qSltfDiHY2c2`D%;Rf6YoWxOG;Mg<;W__boo63LAc)q>W zyCoDYUsp!HUn#~Ji{UT@>gAi#*B&P!#0sCQYuvGxrrOWES-o@S0Z!Y`P^3vno5p$j z7wdB+E;V`T=1SLwYbM|5Q&vto?_px?gSS|K*NAX#Qjf(3yqcfIi%ip<5`7td$%T!_ zV4?c-h)ZsvC+64(Gp#_GK|mV+k+)HIMu6svF5)ijHQ4uB7n!%m_+76qVWq=L_zqF? z5UV%!+}oZ{p(pP3$6u2wHrsK3uN(w^5K=Hp74{ctNap_3(2|H9b{5kEYfb zuvf@NNvh?wGJcZ;=aGATX7f(}1yA3rJ^fxuxz3z~oa95LU#T3MvUqyN0EOuO8Dnra zZArxX4az2a-UkD<6j{8dJroLR)&iJqna)a~8wrJ!8SfpZRA~M?9S65kM_st%gH^{_ zJ}M2^ehtmSn4a-r@mg59Zc|Mf3f0fPOvR(*FwnK63LIhZKLDSMM9R-YrhWe68ne1A zA4FxPZhnIS3RX&}ho@C-53JKPnoF}{e{$@tk>s36VDt(snK1?Gd+IGP${7AtVk)Q;a5lPn6* zADBYxUw#gt=0=#xHy?YnZKuOOp{v;*;`349JQNKVOJZoSk!;nY7}KofydgRP#xL}` zH7IOw>ha*VEXV*di^vf@-~}P1cQqFcOjb93BCgZLxLXHp@DZQ)RUP1L9?zN5Xgy#7 zc))^cy8Cb0jj#X!DZm1GeKBn0KrgC6+Ofiw{Cp1Z2Q5vPH7Ioj=&2kk^qJUXo`0`u z6dv2vYKPfGd9bu8$uKLbB&a%NC=bx`(`#)z*C$=G`;kM8l`h7r z!2x`dbd4K%x~qmF09iuVvnkQWQ_=m}yf3wY1Hsl9_nZg_6Qx)Ud5JU^#rrfKkSTk# zHa4*uv$M#$-4y>Pd8Y!R{He0amKD)84y5{Y^QmeNq1+CXPJ zlaSzLFj_E(dH<9&{Ck|=LvI0ew~ibU|NPt5&gT-YNaC3A-3W_R(@B2@QXTMHLWQ41j#bDx1POHB;u3n_QoiSLl5|M@g0FeUm5=(EA# z1EraM_dChm_%o+?Z2Z3Pl06{@E>5g_z~%WjSsEq-(!&dvwswryIN>rx+4W$>QlL%I zQ$ET3&W^dfx%ctbAI_B+yliE5IY53OQR}7jLONUd(c^5Jr%3Mu^|TuMPCB_b&<=g` z5-Upz*+eLptOqPFavopo(bE_?qpsC!k=p8PbE>~w6%ft%rZ9G=qc_vLzykBU9D5*k zq1Z1{&VF^PAUrJSsCg|C7?K&XvaMA1iw;V{0-8k=vHs6 zq5mbAj5_QXAf?!ENKHjJ{~g3zCu%bmMWQ`L9XO7B8 zn*QYFgcAEjRAegMLA1m0B~xz))!?+LX}sR#OzxBfL*r#1*E-?KsGcz8jpjk0zc1@7 z8@7ONOY5iYq+^kf9#@GY66k|NtFd>3O4TtT;)h%BD37iRY>5pQ3@R6P6Y{|(%@R4| zZ^113mOFMX4Dr!%nH8AuOm?*RpJlu!m*umaES6Iy&({Wr<_Cy=Wv(6B3`itDq_gGE zaUgob`5=GEvfm_e>RVXxhp@Ld4^TdvGEk9=rj?{&kV93@Nh8nojG0!_{E}U1l-! zY-7q^h}$vmBW)yz_`nPMFiki}=IU0h&6zxM@DC8phTy2SH=pxo4ymMfx;Y+3`AW5! z^24RL74q^-fUf^{{Fz(=Skj&ngMmvBrWZIcDSXypuQOb@W$>*-s^3Fc$W(UM$@Ft_ zkza8cN%If!FQ*~W73E`{?e%y+g=6Eh1MB^dvh#HJ(##iiDqoCMn6fL6$j`iEzRUKx zl1DsZdf}G2Y=N)BC!%pTLjD@nISaKPetJCbT=6jH2@6ptK^E1tfzK#K`>mp-ZV@e? z3SbT`Su^6|Ld+Pj-dpnz!jy#UA=}Z!ML55?!W>dz%zg}mJA;pNJ`^lPMwYGb8OUbz}6qG zLh3`TbX)>93Bj{w>&gR?Ie?S`B+$Y$Bd6~LB0TEmS%&)v43(cwG$F?fQd4}t zm#3VxMmE3p(*E>#`&p&wa%n%WoizXLePw*t8`2EtR9*l1JlNgZqlzDJBP40OG>lCq zX!~~Kao~@*Y)Z5O6E)a0zF~hS-~AQN>LO${PMUR647n6uhNwqU!0y~$dRO=Zq9voO zYhHBYC%>TCQ0oHramIsM&=o$u99hJj2g58I8Nt+D~!KfoKTz!&PwljgovLLuD)-EW09V=(~qhK2{36PL#iS zLfY^^9CG`eFrd@SRlk_dnW4c!I&tg2Dj@ z2cS2%Z#rUe_N9sjOwVLUN;HUz^=GTfL|R~qUAQBo`F77f&?lR*Io*nO^r&9LQY|In zdLgP;&D}N(ryVwrG^`q`{Q(0nnDUuwaum?~I~~KXHF`sn&R-P$|JaC)mb=g9>0v8n zfECqtY%ov9{%jn4`l-pRAKV>wZTu%eo13X4Yr_XZAE+(QL`kMq;C6{H(8ei zK|GwzmiPB8HiwI*y)4UxMy_BSBAZd<-ZdilW>}@XMf!fg%6<2#GhMgg2!02w_~mssLet+FZ8t8@dy2%pC@J|1PcOK%|f( z{W9=h7g43>dy8QCd4my7!MU@Yc}cKNQ6~}j62|_ zOv?2a8jESBn@GrOz_}vZx`44+OpN=ojK=diBzh$iJy0k|D)XznO-nn+K3m!s(angf z$mY#kcJ>*Pm6a%b-m70g?CzcQP0=?d30_m_o0Kvp?aYawcH4N(r~+$oBy8^Eg#6R}R@?EDwzbD^SY!}Z$C)$hf%a;{hB>Et<&a1~~ctJ9Ip@`su4*J$Kwcn4}b z+tAi~=~w7YD(o$gO!_E9{-DA_yJT2ft03IYRRFY&Yb5EG&$6CCr^p#~*M?c4&lFwG!>Ze)?kB>^*|6itpv;8Jnso!{RC2RA zwtu$7^dXvK=k;&5Uxq5sW=ZG}pTvnj3TadFf(>izlQ{$95MJNxw3NSSAuc7K6C2u7I zQ?2l>G@(kx0odWbKGtEN;3g3Tu>FoURVQ*Xc>|8G8Y*PHa$YAAuG}K`lR9S+&YS}Q zjU$O>%*Lqb=VrgOm5eQOHxJpGp=Awg=D%j;rZA)MIp8$9pC2^A?~+n6zA5^A>l1QT zze0jJlRO7lR$h`v+!#Vc!FDtVKS+Ho+V2nYNKz>X$szQcn3C#fz8*zxwMNk4E5Ep* zq`yCpQQ`6Q#KmI%)W0fm@6eQ0vGy@vz*Cv{L-+j&ciL=6&HQmXs13zRosQset+l7^ zhKOTOcH8)HRepgq2_K6NL~&9gut@RRT-7moiIdf*Gn>8LxU_72qGb~jP&=KoXs>H* z3?r-{Xy)SA)%8aVr~YEXi>%8bV;OXF&Ayjgvgm}`qG)#D)Y;_Wl^>VXyl+_MrRw=b zqQA+aZuR@hQ8&j$?Yr}4_-28~s}{$@T{LY(IRFP1F|KQ9{c5SdMR@zU2O2uc?%Lm) z3N`WU$$6@*?f}6e4R2?Qj>_%elfE=5zWs}I`);u4gSoZST_jd`78`k{uAvift*OTX zlR_l?p2a@$6cG@GN%b6VaIWxaH>*oPQT6D7MD}Tc7C$}AiS8wh&f;Bn(;cHwo6&eM z)YGrisbcus+cvq*Qobs?+&KFciArh~#uFR3+963; z^kFaSF=A4Q!HOB^8#y6qrlppCIwU();C9U|3Rkt@#z~SjnZRu;&<|>qxPw+i&J*NK z)R!j|@l*VRdgPx|m+qMu3BU`0L!RDm)6VCPC}ZiX3*I z*r3a7ddD#5`{DfRsF>#%klU=FQ~-OLyHXZ`aaiMbTapgyv!~vG7Z~CS(!FBqP7Kg#`fx%XA0H_z${ANHO6BE&KI*YIz-Q%h z1%7)bK&P!xFRSMi&C!|B)O#{)(Pahx=*2OLy2Km)poyB-)g`%#8a6-+Zop&vA(1i` zXz7vFk*Zb?>Lb3j|I!vIgR7b!=C2@#h^SnbW>h0o9B|KDE8IYw>_+7^7cI<9)c&x$ z(Co$)*Iosa3q7Qk?>ytp%2SxvsCrDAf9_S22pU4F!*)5haI5$v0Un_rrJF3;n82f9 z>bl`1A0oH|T>sYJ$UUefrRbma^f?((FuJ3$$dx5WNg;xwQTHI5(l>lV=iY8c!Cd$- z5#o{cARTvYSr@q(|4p*8gkqd0=)P6vD==(ln&cXhuw+KZC%X}t@lm_Ty6(K@B5gMx zPOGzdszG^f>PcvX5gn%M4Nn1D5+A`B`lrk>7%Gk(M5FRE5?iTMG!c3Sr`g6V$f5%K3t=C zi+3WGR(~ms!EqDj2!P42(!^Ou?+{^j#$pwJ>?^twC5z=ty0DdH06scc0JME?9^(!k z<@9z->QC*~8@!O3H1H@wCHS}bv1qMtUIWxMQuaMDkU<@hnUX;}@$!1*ExANdZpm|x z`~R~~NEJnQ8w+&tp=N~2jGhr+H8hKHhN{o%vbYPWqktdGi=MfooDglWPVy)_`OJzD zmQ&(ZdV*K+6te`jC_`9Uked?yGMlx-9XBJ zIwA*X`nM~*16`a9Ruy<%UQ*C}WO>AV>;eFsM1GPW@oZ$_AjikVCql2QO0mYi zsaHYc1~3U_Pcq{|5XgYmM8ce^km=Y+4KnI(^d3Dx(iGLNpq`!BZx$x<7dYg@*5H_( zJQZ{?<0Rz^LQBX3%;E-i4F|y#lO$taRd4i+R1gDRL$>op`&Jk;Z`2#CLkR0ZoP99& z6e68DzOAkGr=WYew4gWnKABR*9g?8jf2lJ8$_g z^cqpwPU@|q7VM85n-lGN#4sn{sOzCAcl@h79<;OxL{Qk*(vOzWoaq?7uj7KT+*7}; z_A{<|<&T#+(j$Pf6o*Br-KF4{Pl|3d=|7s3rm|7;adM%1KGH#UHs;Zc>>-u9MUcoJ zy|qx`Ny4?(lrLw_{8*{I!7a!u(}r$udCx4I;@>Bn-xAYV+)=2?1ka)NAUtk?L>^z= zJ$xM$yacKzeav#sPzXO-*(#+~%@8C)`G9xbmH^1Z{ZC}Pm`s)oLn2Wo%~tuJ{mI>` z@K?$>wY1kUi-OQW@{E*ey|}JP30v0<$HPqBeOQ*|Kl+Yk6e+fbC_ZnTfQiAyF2@Ce0_c6NvifHxwKBzFmp4eZe|8mKA9P2zBOa`t-{la~O^lg5z;ny9WXn)RM zW#sn1v5ir_1aY+!|yr9zmwvjy8Gt6U5HaMiWdG! zxvPE|b8)fKogT#5(;8|7&Y2Tke+XiM>-(#QZM+ZvMrj*lG}=d4I)Kj|rK!EKbtGuB^sc41PoU0cbVLB&9DkNRyv1V_Bm>NSOs^aq5& zjr-nN1S9OV$2RF)+x?8SbAS%58D|v9=>Ddl4}};o;(H*Lr1NQGI{+PA`Cl5et3vw| z*j;f$z?_?|u=3M5qtAXWM!%0?EE~{p-}oF{nZ~uo}w5KaM}+B=U}nRc-@lkCPjbT3g9n}gKFPXI-r`G;N$s& zA`rP62J|~?l~U=rkL{cPKgfO0 zl){yOPDKI}WcvQCZ2|eU5W#2Ngso>Vx)qxI2_b zd1Zo5Our7;8x(_~P~17gHgWFb35Ag73-~0i6@b9TEWRfZIkrTRmNjsRTNwgOrIs$< z)s99Sz@?Bb>B=k$$lieIY%KW6AWZL3ZEcDByei-Pz5u_Ah|aDW)PAUa*RC}aknAi| z0vb7_{Fv;a5}$2dKl6PvfU3ctKR<(S{Q$5EchQ}=Hr|VW_2sN1fIl6 zh;IRQlSfGaL-GfDAU;RQ2xgb|?vMEG(W|b?;uV9P7sGE%Tjco3eyf#!#ZRRl042~l zqSxiSOK^>Bf;G^EHmFqa9;cdqoYB$0%zzxp_tS6>QoDJB18p9BL~3#a@|qrt{eN8N zl%N5$`(LGfy%ZM^OL)Jux_)OG_w9ShuKdD`%v&$V zb|?O}yheT5brH3215>E+)yY7Yv5yb+ndTd}A54@toVoel_Hm5atr5^4zK;UNe<7)S z^{In%D|qv3wCP{Epc4q5HH7V}NwPgUrjW81$^zcZp?o$#A;b_G4qm6(K_WAb^vgIj zSMPDY+5?ju-0{K<85;R5=GrTU(x>77dC!(U&XL1>&Yr5-q37|(%Q|4%b6NeiX>juj zj#~O>{k%i^1?<*9t2RoMn=xn0$8dt%QY1-V1Hyn4)EXUvOf#gEjPTdYtdg4OpM2rc z5@r?u%`#jf=`;YIZ7_X?r?~)9{=b&R16v7ti^Kpi#&ABzIAMIS!n((;A}Bl;pk$KQ z2KMoh)EYKvg4cn@=)TEC+S`vveI%5!NXkpW&I^^iH`|%yh6qnav%7fkm6cq&tZgJ% zGRXeN%N-(|)jMQ?{5@C`Xk9w8D3xV#u^RPaZK*0$HTwoh2~2UvaJ6Ydvtt6tYKp*2 zE7<86UJ#(N%f08#w52hK#2U$^h99?~HyoYifS$Kr= ztR7!Y6=HFyG({77xwB|UpJvHc$;QX2$YzGA%Cde!H?x>BVf^9qV*}BQS9T%Za?7&M|Pvk;TI;Ux?YKm<}cTXp~hc#T!NSGE+Bq zk@KB*9gS*4?Vi@wHML!hp2ef)wR)_EQyd`geh&HSILfft959HDjeKoV!Lsd6&AuD=Ykak^gn8%u!F!f%N4H+F_!Rez|Hb?gdO zqZ;EN=n53t@y>mqWO?bJb%O&R_xoE`mtIOL3N|gV>xFzyj0a`Z9|Z!BP-!fP+EJcgldonF6JsbF zrE_V1-AB9CE(Fe0KiXB92Wbht#aRe!kTw8$V~CQwIBL_)CJxnal@lB6SX%P2l4)DR zs~to*Kx67e5QCkY8qmG&&aBrRKtD#j{?-_@5QmqlW=)l`gSfO^{VlmAuoEq|J1J$0 zpnmD_w7Je_U5;O$mJICwG17=b5Z{ZFZ8Er0vm8PDZlDgeYd!zO(`{wE(>>FdecewU zhd+NZ&|GekhM?@fn-IQ&iFdnvXLzMf_jEKYsE$ATT1vBHj8rXzBsgP{4@_W|Qtv9k z&vwJ%0;HS8h1=)(uB|_JyNdFuduQ%Ux9o&q9g!O;@9jaK#ULyxWl{Ex!*Tg7U#Xuz zoH-SWBFkkC5-QChy^36b7x(2g>dxiPyj-I#BX8l8L<>Hu6_bBpw3>wHx(42=M5uCI zH)^p#k3y9rY);A20pmVuVE>JA&Byz{fi$e6%o1$ZK=;5HiY0i}y@M1i_a<8AV5Rl5 zcRKr>Z>3Us?1{UlHd>eA=>KRrb_T)(l(RN>CRFS_>DeiTr&%v$419d@{y<| zs1s@;IdGQoS0DfNI7gi10#XbCcckmmP-m8{wHID~VT47d1joy@ylhkI+c+7fE?^fL zC`Uj?2Vtrb$D&7pu7D12S1;d7%8^4jB1BLX!~#Mw^age91NZ;{0004`m>BL`L>K@7 z04h3HkgHG0@PLYXGF=dmRb1qSrAGG}I@(rKr3O7hdMX6>y4*K>K}Lc_TSO>2ww_na zR*0%ubDg!l1p;aW2l3kXJA8e9_5d4_)=r(=CnN0f1fY+A0zSyP#w~cgu4qxvbdN?= zvQkE#Ohe(F67E-F0vXAqbtC>fZ{J@BT>2)FJI}+nxqNlshhTZRU>VPSBk@kX(R~>C zJ_=1>W19kjih^&5Eq^6Sj+a~I6K+e@OX+vZ_fDETvy4i0eAg~K+~;^NJ5Pl`Ny$4u zvkyBRw&wAa3l2GtqQgOiTu2Bo>-2+%T^qQV{UdT~hB?kb+1d-VXp93}2T)@V7!maR z75@8jcb$<0JrI2AEJh2OrfwbW%&pc>8>%J}{z@CV+J#^4U)JZ{Az-k2tfJws^Zg#6 z@`RMrn|Cp241djQxV#YIq1?ig*jl%D!_;Do-%Yb}lZ_#qmQC9f8N z;~8#Tk+dyEMJVM6hHmTwF?DCf_nk!kkox5MgKo2GBf);=O{Vh}q`f2mCu~2TMiKn$ z@g^^F_1?)N-4l}X<_;??WVW1`2k zQlsfK^unfL)@&S5LUAOLNE6s7>CO&eFe$q02uQ<#RxjSqY+1$!qX;S9Sb|2xOY!o< zN)mWLY92TYFDEbIoa$!+03NS}28k8v7-a&zWBt^}!5bT9gR{!X+CW-OQQ?hPHIS2% zQVLn+c5vDuBKOW+D6D$Yezu&aGM5bEIn`zQ%EqhMS+W*n#>}k)zEDnjN>aMt{9NSb z4V;as93$y;zLT4{0y*YEQf-a?jrT%{fV}6GtsEb_3X@5LS#S=I9DUNgKL+n)_2qhy zzhM(`g&r(Z+x4u3q72*!v~bezozr~QiD&K2h9i~>R%k;#rH^!um-D%H;nj(#FIXPH z{NSts>o+B7oc+c(yAS`BZ8DGlm~uNY=p^Ph_Z;j;p?Wg4E>#+OygQmMI5P%1krB^V zx${7f<|c5Q%`{1b_wq{$cdYS@&5oXYO$;}cD0Yj%Os{?(URSL1Raxfb0JWETMYf01 zMy|~6!8(8{o(GQRQV_%eq&uY#YEBI+&KHkA1PpCC`}+V6^$a`597AyeXk}`Xw^C9s zADDchDf=S4NG~j=+n4A<7k5Lm>HqaSpUA~jBhi~b(vL`reyql<)1(rW#&`QF| z`Q5U~(FujfsL=3gBnFU&0D}d0iLgyg?zyZ5dXCJUZbrc{k7rlzY)8>+98?xmiR=qrB3mWzBC&)n*2;%OXfCiRs zEWtu|$A*s1$h#s8D3(G(CT1plqI%&J(SRf1$99R#8povg-l6|!KU+HLa=={50ZnB+ zVplrlS+y}dlCm{bMek(&$;{#&iu04*JF?R4)aGZVxc3eF?S(ia7q5{_^I%j()wawQ zN8~#(oB91<^FrZ@QUXC)moX$ek3v;k2EQk>05<0yeWNrs?FF8geB_WyNj=`%pNypT zw7Cgv3kH5y%=tgsEcqSG;9pB?EvF`zZ=)Q6xCSyjBuQa>L8hOQCk-O zuM0e@AxB5!urs~XZts;*9Cw5C^B?G4iR&M`-)9ik))$&Dbf=-UY

j>9z!VEsYbIAp5-aJ!1hx-L0jB({07%|WCFQBx|*Xqsis^JHjJL9ZsQB7pws$`Lu zv-0vDcX+M&=B_kNs@*N`HcE_FW#xb}=+N=6O$7FV%bFH5=`ZV!&t~chDLu?X*Lq~rjuL$JKxpmPM`~{E!4gdSfmJ)~ds&D4nIiTDg z<8#?sqq~ymC+8T=iZb?DIYl8A+Veb6H`PpXRV996TU7(;rVXQ#_eBUJ4t~UAoX`88 zOnPlVq0*s*iV$eofL~uNJpJNnYsJKwMGwYpLwXt0_5e5!bYKSBeZiXJ+bch`sSw>W z`4U9&G}J-6(3o%E!4i^;jXxg{#XeW|4bXLqESWiB2&zj_k!&fy@nrlB8Zx=Iz3VIt zk1%@F1cy3OwM`USDzV~(|l8!x+0W;pz}=E8AQ720LJa}~!YK~J-@dxyvqd8Tl967rKi}AfDFNqhEaS7{NM~>V>;dklI z$&tg<_k~|}Q)e*NMaQN<+bcS&$dI)(@=83tbWg~zS`j2vHq7Iq!*p@RbL_X4+q^dt z07KJ7dgVtB4HICVF4|ECIHus4YF|4VIs(NQW5Ec-Q8$|_G5pFsO0Nf7z5m-Xb;fuH zB428Z94qNh=rEt`Q}ScX*N~sO10aft=PWw5PSLf!GukvNHYAwmlUN0|OG^T2&Lufp z8(7Evors!YGg-2c4{3gGXGIA^KB3L?ku7!#%YHB2-K}>QSFmVH@peUDam+$yF4UX| zs0!ERjbBs$OjPITlj!<)j}sAEFEE|sH>1O|)x>6altU#_w14{TYwyQ*tnc>E2~d%5 z4b(lBr(dL6WKI*YlFdYlvmQV^aFJvHB9AeDBOUhFFH}u&moAWTEfsg zPx$lYCyJR7WWMcDuQRHsCaTikWTmpFm`+4JQkTA1q3wh5bBM5ru&2N&`VvW`zH68v zOqNv`sP)an7UTc`00jdL2LPUc03gBu017lA<(!BqjX;nf^Ams-y?!B(;7%Z|Do()I zprZS|GBo^V>NYaDMK5qE?=A0?Kr_|y3~LQnXE(`)nGgu|9KC;{)mgmMORIiruXqQZ4<<+33P8g<`LK zRcs_DhgOS`qdPXj0L@OnI$JFSzeqo|B+f~3!7j}wSe)JWD0jfia^Rpm2>Pxs<0cyU znH?>n^j%y(3hC#Nuco$QgCZiBWmKoK@w(C4BX|f@wdXyqEx&PG&7&sIW)m5cU)Uat zLtNlUprRPYDf!Eru2eXhcG!Fp&sIS(`eumy`qpvh(- z<~}-%NZ(Cx&IA_ln|RcAatj{_W(F}7HQ_SilG(wP?Ml>M)B zHGT9q+*J}e*qLPfPN~&+J01p! z#f&y0`5Adx6y6s`-+p~U8hej4nR};)xry<$={e)e$^1V!q$i$-rTP0x+}=OHM+9o? z?A^yuZ&o=4$X0^*_Z7!$CV^g*W)bix&8o z!T}X#i^D4S1H7|JJ%$CJi%;Sv$9{)Sp$N=`qH_{fuCBIx{L7cTsx6&LJ6lNaC$))Y`(A5 zkM633U2r#ui0udbn;_qb$$6uoqm@loTLIO!Q@}vN-o3`YrTM=IsC`NdgETIZJU}8?>(tC-ydk zzHnA0-@%c9xM-S0MEQ0nMAafkG;M&^CZHbvNM_^urS{v#tRlqZJIo_ErhAaLq4zCg zq){MWWuuum0Aeg#x00d~RhVt!H-ZjA7+}I7K#oWe_9hEVlDjWL=;jdjQWz)8uex5~H-9zcobFJ!_T%?FKhH6M zq{z<9LRaOCTo%yoK1g!ydUKEEa6D>(ZGfOG5x^)j&5Wg5|gF_^lV z;#bTKMXPsCnKQD|{7t~hf((r>PTRNLmw43~pvskGMVQzzk!t*eHJ;2M(SUk<|3Zf# zLOr6{S9q;0S{w_V#b}R&yk?=*999(kbMb#w#bT52aH^dGm1!0u3gS(`!vo#%mm4Bf z)MsZx>_-NJ_DL^2r7F>PYI6Ht@PqIWFC6%DDzQuiL!qar7f@bZdRN-)Y0%GB8wJWJ zd!~Ms@+H4pdtH`@aL{t-$@I4cIPh06=@M@}i9-tudH4G>Xii5*E4uKZ@V9{W48F!( zLP^)MTs~z>*RXg`zB9{xZWbUsSiU?C=N5tHzHd zXaX73BazC+hNNdw*?^Aq538AwkR#-1GUHPD7Z_M zkH`Vbq&!NS>&ileV<;j1L>4T)x|%22e*wJi2{4eZIHKQMFL5ZU(fAHc91W#^pB%@YRpCrWRR*$jl5^#xH9 zSfSpAj|wrRic|Hml>BRLI7EK6Y}%y zW>Ii9RFhrWlPwy@50{U7W40sYLcQ{?v*VzkV50ynD2d}dJ)IPDY)zRhvV|noBapho zDR-9xy0jtu0``HBjou93Q&aTphE zIC7Nb`gMDC^tHe9IU3@^@34s2A`2V+^-o?JuEymE0uuSGEpmc023y+X1L~k>cngAZ zUU~vxkm;EZ@gUkkru)5Rjd(yk=}NfX=&wG-FhYy#lt=l~bB1F>?Pe2N6Cu;;=?U^C zQF(xumVK$%nKsvfoj99*~!DJC^X+->DNjC{ZTiIyk2sktLXu0D%BRka@J4$cLjY0(|2&UHQ!7!Lw*)~@w!E)DS17I zKAB9l&9~pvrI~4x**8&KFy937BS0n>R|b!rT-;Wn(I=nDD(W79J}9o?K~}LuJLug1 zeDIp9>gUZbQmB?qx&sD0RZCU3!v8s(HhDe<=UZb944p@RM7{JNldND+coWne5N6q746EeN>dqvq_PbN)dGN~~+Kw1A9lzK*YW zUnxV!T~G10wGEQ3jyb!;mbj8jujp6r7Anx5}P z4zQ~tYj%8oOHA(*+{AXECmqIZ+WJ&U&D1)_@}x{}Of8!0+d+OO-*<2fa~GE)%@>9l zLd@gRW%l6ZLR^!4?lfC zT|OLXYUIG0ac)V1%@H?%00Bs7*`9a+J1S-102B1e;POX>2Sh0r<=mZ!nAY0Xk?cSecuh_-B3`NkBB$DRUpHFE=rjnT00F71dYEbd;kzrQJOo3%>KsIECpE->_q}qhF z71vJ!uYJIEMYw%xCfiK>Gpi7;Y(kc**gS3SIu9@VN7xJbjM@EnD^v3(9+YI*kS7d) zz`Zd_gej(tI69^f)s1vn;SZWutLiWw5ZSK5H$gjc+PgX zuBNleJxmg0&7O~B$o^I2j&S#{xlV4VG1=^ z6H|#Wf3;TlSiuOP#W=v7p0*iFget}u^R3Ogad0E0vJWtyRSz0a2I^5{!vi%&bn2F{ zt~rL+%(b>bV$q_)f~>NXba&J_RqGv`*mdG#LppUFhmoXB78CrAhfeRX#qsnYr^3$k zIxv|V5iNASqN{|h0weX^$A!(w1GG))zL2h-Z%jpb$-o>rZoW_9*>v@JLgL88=`ooS;zonvC_*GNqs$bXgzV8*6*39;udX<4*M<$j z3-Y6a1E|uE%#VxZRLtutpi|;62qjhoyML#Bs4?f6WB9se6@?nuj@{fzK@kzeXld_E zJvxr3)%2KY-xI}F2u0)@kr+Wn-nZCmGdyIr;tjgElON|*-~&wf_Ch=C-s}}%wzZko zbDMRNcqS$qhhd}g;*hCuH;7xqkqqj=kHEHzDMtcVXv|(%ctk?wb_wQ%F{TqW`=PCnURo$?TEP;GGdWo3l_t>gA-L zmSsC#P7Ne!Ka3NB-|J{b2@F1~4|i1(8Vb{y%i)FiK2za-ew{d15p1=3+(oYr*gNz; zC}!4%yF_X+Q{@2fIF5BR4h6e4^v6_F?vW-5;O=~Nhon(&j>(o!Tq{>QMz;ch)wVxN zLU+YMd=lF#X&|GHi~U1e_$kOG(X1<`A+m(uebIQSp7p9}Ds)yTB8!7y1KzrsAIvT$ zJiS9IP0M#k`WXRr)K7w4%6D2K$KQc!I(UdIxX42G?6m zLe3~Lz!4oo`B|5&0gsP!F>mGPY>X^p=g5LykTn|hiIoY z)9h?=O35S2ONBypcgPYLsu=!$E}00g-ko~zkSown)NcxL<8 z2*i~^MY?noru^3LG5}9DJ#2;N$S-=#w!iX`Ld`qP%BkjVW$qNBNvc~XL%RAT6eLm6 z;=SAB7@MBLzAxHWEBJ8EEOPkHuJPlM*{E7B?#)D)QI_myk~a)$nQ#yA_y$7M!KMi- zI+|4mzF4dr8+MV<#EifInKoI;7>a^7f{GsHp&6gBK$j)7(_9mS8na>@iRfJ}meHlXQZL zG%44ar;DW}-5}n!E{L)bscQR%Zjg?($j-w%BH|`a3i9lo^fOEX{khprKRQO>gTe53=@>%RJ4W|7JRNS%AiG6vD?Y zon_IoKAm;EO=k8j<&CT>PbJ$Od28sf94)l~!Ei9f2BWnxxSLsFvF%F!;64f+yKrr9 zsI?>TtH#JR*3+8!BvS`=#b zrVKq)t2Qr|gM1^emuY2c|CQ>RVRB|Sj(`<6vUXm$=MY$ukSKLwZZXM&;_`a$Jor3i z@>1xUJ)iL$T2`5qRblcJ!K+|u7jW{2usIGM1cvsIpRKEEj54?2@mYUR)YrRslfNS0 zD1&M&t##$_R*mospT2YOCF=W^#pY;8GP2EO^M-udm$sD=e5`KZ=H57HTld;*d-hHk z{(d2^a@bh7=Z*dq-O3FRDz4Y0*%G98M`D=&8qJ&n5R$XN000Oa18r|23m0q)WQ2Ls z2xVB_7x;M(I2fCWY#W_Q&{G z^W2_vO}z`8P9c(n5ywe|FdNm~`Rh}#Z8_Wy93d_t-|(bvi`AEbC%!K?Sg}_)1_!;p z_EY2(sO++SJWUuS%t;4Qwhtl{c7I1dHifoEV0dE!f#=GiawxOa7#*=7M>ve;&C6)z zhk#krOCKP3;-@e!JOaKQ@zIi;+r!(0fpgAcLLu%T-ohooy~d}VB*rADrjo1ES6HOx z@k;@j{oqWX!i0iSA7NiEUT{u(x}YL3L23rG_bOUc8X6*Frmnp-9g)M} zYR(8)lJQ58rK4#=C;}UH>x8oXGzt8)(Aa>D5&ZSIAX}di^ltGMi~a2KTvY?mxd|fT zNvm<WY;% zg#>s`$~)XVN@JjB`tf}XGXM~(+61qjYoIaox$yD}VVK=D(m3<-rop9BV(-=e`CH*I zE6y5iiJF>5tG%&2o0<00uRTK;viWV;bG7OXs z))q{sl&^YlL-Yolz`{qHq5;o-o*aS-pvS;RP^kV}^IXlD%*D3Lc0(_}W?i%1RZRf^ zURsuww8fQn9iy5WYO*c*Dp+ynEz-Ik{{@Q3e1cjU@`x^Hq2kKCy)1RSXASwd+u%yw zayl4YH1RiajzHJp8V4}LV;Y%;YEY?!9AHB|{ni#UQu1~jm=29W!eQ8q^Ja{21@y-$ z8Y239JXMkc`j{D5koBGtku%txaxs%xzk?{Tm^3z$F`p+e!J1#CL5h~Tzn*=}u3Hsz zL;woCE=yeEgR-nwbA8t#%^hSMAjpYw_A#x4kA?(V<9|fmZ??p&`lo6{Qn&0h*kC?{zvz)4=p=Wcv!qF zGL-Pqbo*8yUUY9&9iUFa2HtD?VuK|bAMKxi0MlpMX&<_``Pz%7F`*gFnEmcq4HxvH zBH3|l_=}2KuQmPw6ONxc*9S}FjJJdC+S69d3yxXAOIK&|ppKh?PUVQwebHqSSoogE zZc{%UOYl{)S?30AJE3~hu0k**ma$bX|LXXdqFUc$BirvBhdu2L8d+0~R|{)B&*JMF zItThI7JN$C&F{B$;T6r>i+n_O+J~Y=9Z#Y~#Y>f=2}=(>J$zoCB^3DbEpQ~~o5~xo zvhZ$iQmlMtPUw>mcV+VPm(t_r6 z(}Ybtccf%RF{nw>%8gTUDL;`)_Z{9LQ?0KamGz}i+DQ^5^Vmw$7W@^n*FuMu-b%ke z?eZW?=Y`7g_Zc4G9PAjLf++ncX!gt4&B?$MkB=>0UqwNy5i{QumBpxLX`8n`m@$O{ zQ+!b^Y2h=yemh#PJ@O`-O+(2DV;9!9I7Z*L-;}yiYl%Nn_=aEZVs$f_?J1{rCeIgL z+ALq4s=KkWPaS09BvSH6Rm;{OGD_^Nt3p#II#w_^W)#7IF?CXUk;He-+l{$=BbvQc z=vi5xe!`d@Q>)7Djy8iSGH$6CgHUSaQQam4Imt2DfjY&rCvR|qup={ zL@rHjAB-N3sKZrO5emJ*@*w%#^N9k@c7j#K@bfSg)}L`B@HUMlEUrX;Uz@J{%;zHu z$aLES^vn3WOc7Fah0yC;IEAUEHQo54oXP^DeNRRF8%z2d`;e#1hEl13c80Pb(6fcKb*U>c zQSNJf&2i->NGn-urXSRVjX@I+v`T)Cx_B;^H^i@}znk{<;x3GOZ%KehiO^DAQvLe^ zco?}a=@Lj%^YTeHp)Ceeu|I53u@v#UIR`g=w3W&=`@$hmA_935YYFqUc$<*k&oGDd z2TXv(G;DPh1&r{^E-$^x-X&Uz&9+#d1*Kbn&|&F@kgC-R&iUv1Pwr$ z03M`ch|2;F1@KrYz=oK*?EnA(1)AI=j$M7TJ63~Xb#1k^y9uUp%n zeL_Q9JICp?8YxPvzmEaAOjr#)gJHTUi&x=}^QrN#yP$VyONI0Q}T;QrR*4H5| z?$Owr#U7eT==K$Iy?PjQr>O_JJ&cKOUeAWuTrhV#*}nHGr%!LMBC4E;!83hhaUs=+ zjmM)@=1eO7CZEpP&@p|6y1r=5oN~_BILPrj5$ZKTHX;{|B&C4o1ANyNY5og*P!0D0 ze<;;aLMT(s(iRtlzw{aNHxNgKk$VW5AAs4S_Hblv@asNzEcGNHz*Lr}Di57#K44o^ zw9NrF4+e?9PJ@|ku=O#SaG53sa;(V$_~P}I|Dx#KgjNsh`B$?(gY;UGxvhoAGVS(E zWv}cC=C47I;|68EIs`svT=?~yQmjvrqC{8k(=t* z>$K~)iSKo2g)4U9APm@7kI0Q;SFqzwvN_&R0000Tz6sjv7E_FR+0Es>EG0`J2am#R z7{h|yp3DMJ5qu-6-f1k|@v61+Aq-;-?63*=9rvI$z<|HcIE~d& z`8LSdDUxvzZ4kMkcT#|RopoMQulw3MKs-vwJ5_u+Go)bU=l^0xLqIewA>oRu6)Cn7JDrJ*re!$slv*7TFU!tx1L1Z6IjvZ)txwv9%~U5 z-}4fhC0B{?<&mziI+(x<9TyGgDxjvK8Yp&3-XTS4bMyi$2~ZwBnKNEXQ$hMy!{^ly?>5N|13`G4H;);iur+`DO?`NxvACZQ|Q z4&)@i3m80ARL7`9Qm!ji21f152az+w>btMs?pG3hN8DrL)yxyGw5!0=(lz5$s+|0z zfo+HG8aK&$M68$PM>8zcGpMYk@EzNI0;2)V*H=X=+lLD57?$b&AccV(ZuCu+llQDh zR9AxVz1p|vSKvEabzS8AR`VGfSMuh9ETOe-hYpmQ^9_sITs*|4HA>lMfi=yJ@vp*9 z1UNVxk@G`_K*71rG3YmH5GSar#+g)Lm&2c>GWRb_3DHF|sBSnJzMtCYEN?Z7P!OM4 z_Kf9S@YY%TP!sxnfkPtRS*{Xl)rk5m-Y#e5uh^m76ZBDBZFR7Nx9atbyo2kC;JM!+ zD)`)k>yo|-x@xr5M2u2YgBZ{48{K>@wDB13dxbALKf%OWt34%0kf7@>iz=`va1IOS znsU9FvBj1jKW|aE0OMugK!P+Ha;%yNk{wZFCF(q+J^5S8q>S0)EvHILn{(6D`4y_FNzfJ=Yv zoAQqaOxMQ%?AFXLBOTfNCV9KqnV&1b)ZD9}aM*ilS^{jy(tG0=tjS3F3)*g?%BB`S zcDEsrqxe6&ttPcCY>fN6-i(S?ZFHgR(9zkXQ_4K&lVTQR$d`2$S)0IRI%7$j!XVWh z2OHdwK(Sx8GnNOz*GTb85Fq@0z`ob&m=VhFshKwNv+*O;(gfUB>r7vv{r8~!nY{Sg zF`m=#8g<82vPK>o%gFT=+AT#fJga)fNu1&DM6o;1llU6{Xh5At$M7%2uNq(>jsBZE zrYx=hLJP08w|?m0PO!y7ky--G5X2%AeNoAzmPXK?z@#j_T3BWD^&Lo|H` zVCqHfuipyWGwT2J5l5HSW~iB}A?)9kqkZ=_JOLgaW8Q;r?#SZ93s^^uLI`d>8k0-HsS^ zmp~C)k&?>32ddZnTNYvsEHtQsP?x}qf^Fa#MG@eUN}2w*#6Ay(b%bo z234EQUQujPm>2UmiB{-_SZ;mO-v9#i`alluH#CtZG$G?~yg&R=h0#=@1Fs_wizEd= z00jjn{Llfo8X=KN$w;^|U+N<4G=Y=wsDSVFwoVYt0BM|amFLfXQjUdXJMm- z{-SfDJ^PD5Z7g2nYCk`js?|;hr13>Ih)RGI`aMy9y7@`JoMD&XNF923qdBcT8*qpd zKFkB^A0DU2dR)tf+MALwrjOsIFW3sYSLvwO5SL0YKfW2d2DpmdCKLXZoq!@s(%5}Y zjdnE_fhd8vtLnVnG;`_GzT}mrCmWivF`@TRh1mTsb3Nq#uY4+-1!xZ1&D!9b2rgN& z&e>c zpO}A9HXbY$C-Dz|WbpIRus)u{lkK~LbSiBXx6WR@SQ1RwdNe4Q5Dfi|M%(#T;Op=X zgs;SxbF>65!E(%DzrMWm0d4sbgp?fvU2X)-^n11VnQ2bfX|#H4F=77*hlQA0igtwE z;(KdXG=5Qg90XLc^!?}kwTZIV|3XGTC2^7vCKX?dZ>;w;S-UQ^DI^jVR*C~>ZOAi> zAoUu8s%QzmTs=KC5iF*#9fzsXwtxL=N2GYm2Ss}P0!C#XLd(M8@q&@wl9O(<-`W6J z1IuoDQ=cg5?}1)Kl1u;9`&RIT@Y1DeS@PmUWPbVacw`5SPV3mvCSe2ML06*4P&_!6 z@`?c_X`fZqkp0tm%lqwL8pY3z{yPFG3i;bHj{~LT5;`sN^F#z}z2UOy==g$e& zOsbR=`~eEG=319NRJls()N1zYw7CI<@~ntvv7^Lmt?wwltW@+sFs;Ch1Wcs}N3?Z_ zOajKJeGzw1@|3f~;5FQ~J575B#S#r}@4IIX`6pMBZGOpX3@gk=s-N&zw2n;EPM*%# zX1oX!m%ac#brKxo`mysdYkwPWhnTxPOx7@N3c-}C;yJfEfr0yk?_nI#;ksDD#Pw~LV-nL(DU849 z3X-Xa^>2tk-tJ~kt867cf{gf#SF-=W z_U|Qyvz~`D}i5rzTxCEb~R|!!&mu0Z3}_#BGaD^&Gcy{N+w{UGoR|0W+G= zi}6wVj76Eyb=xlIyoc?1+C8onAC-}~h};%rOLbMUkvqO5hyf&rX#$#o?En#3{CwEX zI=@b=Na)wpZ^!4LC(!wh%5Bp=9h6eP=$BPy&Q)(_VJojga2XCQxznf$p2ZWlKx+Dr zjI&?a{~>u_Acr2r@B=IBvzItzue{yh&?`ssf+5I!p)_`}zY_uW9=6R4nXE_vSZc&H zWmlb-%0-p9DNbnRpojOMij^riLqFMUEJRyxF%d7WI| zb&-mp5AwzOym)gxLYA69dUjUV1eow07;v>*unC2G)N+va*=oIigc)Xo%al4aB$X+z zzM6)e_1#5Q2RI37OD9t5kkB=G_x$+|aYF%vK3WI2ZM_z8#lvetY?ND4<+7uw60z>t zd&fx6dV8(-itX9h*#r|6#}?Ieixp-x;N}h|n_ndgp-GNYpM36n`k0LR6Mu@1oN~24 zT=iN60ry7{f&?>5mG(~ql1Y>+gJ9V}qtVUxN4s|OW8~+ph4P;pOB<5gs}L6tSSO~r z&)8N}%>1OQMp)-UhNkQKD4~vWRSq`xmpOES*CCs7Da>$|2QGQ@#E{y}ONH348DPZt z`F<{!>+_cj9FS`g>(i7p=0lg_f*|cv%ZGwqSQ#SOP8!v9*#HDmfen4Kyy*Aecuw0# zXB{4%8~li#>+8=nLoArJUGRT}Z<1tXZ_Jnqp`t}5y3V;(33=10GehuJ7;GG&taC5E zaxMASTuR$>;2;MwVb~gZas0yNW=5a~SN$hz#f@Y~8NF-wc#apPC_qHQPL7dcHtzV5 zQj)A4;qZbW`;uNjJ7Px7!!#a9oS&Jn{4f!oI>;fV?zS30Oj!hn&ixDgzh88mK1`7$ zj1%5d8$)EFe&ui{65m7$6Tf2Luk&KtI>Stv@tr|5+Wr+ky#kd+>s$jP;oQbcY1?b} z6Y8)xz88HrH>@VC^F9<5F`GdP>9mrg2Fbt+ZbsOrhZj3bnhW-~pV4(`b2aa!F$B!JEi8J@Z6&NoUcb}Hx0ThxSpu7fEn^3R`R{%^!70?SnmAXB#! z{ulnZ!z#`F3QtJpFqLaD2?v#=o&T)iPeB0iK zZj+vHuthHbtwu@uwhGO@@j|KqEM{MAxBoaq$zQ(iTf#NfYU-;7(zyuCZIb*FxG%GhMAc&Hwi z#5?VvR4f2kkW13QPtAk-0ahszjAh`ZKmY@ZiwVRap1@TWwsv)(qb_#()|j6T;3}vD zU~y~9s`rE;kMCO^cZd#h2x#~E}Jz0l2YBKVjE?DOjfw2_$rtW6}ga%$uNU95Y?IHD7Bm|TQ=P8#<7z< zr^2dx1Iyk1Ks8^FPJ}H1c?Z7T)BN4S9Tx)&Kx+75M@T?Qd@pVHFwgK$VG41|5gj@7 zc8Z~>r3IBgwnN)?&vu&S#ckC|ZyecQN-%AZ))2Hh8+jgt9B*+;QnF%Um~@Z}f`d69 z$Z2~A7aCGuV>%QdMpb|SA9WW-d>Q(F6$Ufj=qaOvHL@AOGE^rX4>W}B^}nS}iVfQZ z|5V?jlOosl(I#w=Q$i#V1i*T(nIvaU=TPEz@+Ji<&2551);$IzKDnvpm09&m3iEZ& z6qr+;ySoXDLaF}__WpKzpYfTdhl`)2AfSzJ90L4Mn?lBjtdJX=v5*P6ePBIITqg&g zI_C59nnY5Vy-=HRzwf^vzCT|Oh&77dN4=_XAy!?}|9r|^vMd2!b#IcJHUZ3RGvtX7 zDfW2j^rWerb0@7a+}_R;`!56$ZHq`cAFt=&1eWcwD}sa+S_U9Sax~^Tlhe#;ab}n7 z`K6Kpy+@CtLB)heA4^!xf(yR1 z3f8STn8SQ(aJVbBJ!qhV9g+)%-m;PFh~0&K!eA^d;!=u56c%g%>FUF7U%O&Dh5I5; ziLBjlTgD$$iZH`B!InxM+mmLKKsRPf!2C2xlVS$EE}DBLcJIdXM|pujNht(LYt*U* ziSVPlS;d!i%7oD0Ir325^&fY{#wg3Tq0JUTf*$}F%Kvu3(W8Y0manQ& zna-b^PRsJn-8|G}FbFmfdf&xH3pGDbPm`(rzj*bP5YvJ?Eqr2|W(>~z(U;`*n)30{ zzC4I*N`#MjD)#NvYOc;MeygfL5l$L-;FX{MGgjca)yWnK=d_O0tOeMYV+Dr?8 z+v;6iIc8DRlj-1xFcHRkQ3rB7IZ2}2Y4cX8SGcQ9;H&PD5p*Eu&CeGoqapAVC@Pfc3Mm*$#Imo zd) zI^zj>jUO#WwKy#QO|b>^6R|zEnWBK%!zyjRTPkYACpasZWE^~?*I~R#-k-e{3Qi%`h>MQM{3#h*xo#6(*T&p;KaG zZM1t-6oIv!U5aEU-NE~-T(zj{{yiVhaI+w(JppyEja;!742T|q+V7@I+S^CWXIS4& zNwIy72oXm!rMuRt>a#ylG`TM~ng3^FMV!ZeJTo&#GUUF&ekaA3fcG^>wr4)`IA@A^ z9c0;9NVwMj%XTShFcFznt?Bi{mMo?REG4$kVyf=_W@>zoUiLD-HT{|h#`PV&6orB; zBl~^bcJeGQFXfmoDOZDsK?62p5-(AstR_ySKAJL_A#;L%jYh;BP*goU-1K__%RA*J z!?M(#=>#RNO_VsH;W6V@DN_5S&!F{A;wMgPr-d^8*9M#E`Ip>B(a7&a*m&)v1Q?Dh z6djb~^`d8j>a>?h^0MPP_iu~(QZ5xMuo0bBe|sxF_q3w{4o3tGPss)B)_5-Yn97xV zKyya<%$7<4f+TgwiC>DrOE%4cd9x9Ch0uP)c+lq7{qIO%&@aDB?G@4d zo~*64p)?Kooi+?S)nN=_#?J0{3Igu3QQD~Ttdu~NyL|H4u{)ISV?l#SqZ87(E^VT9 zqtey#C+|0%zJY8CU9ha%v1kAP#@}Q&m~Be2bcY1{(SNAEQ1re%q+i}3{}|`o{?5ds zmN-$EjFTC}$V20R?`h;093y*_|xoO91h&aY}J@?;~C6MOp2zptDC& zveoqUd>i79^GSC3Q0<3v%c;o$FLXzl2zPebBk*F(Ud4X!e`8YbpuK~UKRokSSNq|B zsIOnEFty?-?EHcU!qm|(!~MF>YqAPE$} z40i!jo_JT|#Xzu32W};W$5!SwL<3<;BAR#00dM7;tpqoR23gMl&OYnuNG7QeciVMr z*4RnQXL%r2Ely6}CWV4aamRwp6}ca)UlLBd`dtJ<#-_`!#Og%E;(7`mxGF!U!!2*J&cmuCFx}M5T;RgKGeorgpAu`Z7mC$ zzy$tqINdFGX@eh2bu?)7v9Ez7;w7Pua|WMz(t|P2XSsRd&V9bfCDt}Q9r-WF07}wP z018-}26Gi;O#ykI(3Gu(LEfKAkuGD917iF9AD*pcNMCS-kGVw*R^{ ziv7HeW%dRS;dB=LUtS*+&2o}%8EY~4xVxU8Ei`utI1H4Np(4yad`(u|O; zs7|Grn@EyaWKP~MNC*wpZdyh{5wPB zC}Ih2^MyB`-Oa_2G4>t_o4ho>4uiOt7{a1ge;M7pl;@_zD$AB4YPX_s5kCMIN(PAq zZmp>rz)+KV_sOE9t+7wwFRbNF0&vX`*~lgvSV0Jxt`OD|9s4}3bc9!t`>)C&az~!B z_|CHO5})%gktR*((JrPia_DSP%Rd=Kv*OB(%Ih^2rOlgn+b#azdxjn@y=3e!pg~0< z<&IX1m~w;1cEf(;I8N)-Q@?on@^?4s$=@a%a z+1nq%&S2etVUc}Bgn0Rbd9V$FxA#=jQiImrUw@ExlsH=tVvG20$ijUUNL5e(LE3v-5ecLrxf`Fod%oqIYO;9s&hW2M?V{bfj3Fc8*gKH2EcKejgEaRUdrtu^j$ zNM^{3>s$(#rg^p9(OfmQBCKGTxK2X>NW)LfBuhdyhlW+F=iCDGV?XCdN2~yCaKyq6 z$RB&&xzLcU2w!@W%%s{pY6yH%pe=lwF8fm=wNo>umY30q6_ z3&Ps39G~L9;RJTGWr6fJ(rN|9Mhs97eBZLeH|OwflK7f02Uu&h9vTd*rPxAAn4ZKP zS5W_}@%oVLfAHAIpJV)skI%dggE5U1zTIgy=)`8d59d&CU}K}p5z{GCzVrc$!Bu@E`aynPu)z;bjf% z?Xt$-l)bpPPd%GXm7k1ui=@aJjVc0O)R-NNzkdqf{oyUp1iiqV(sYHIl@%u_U3d10 zQbk(mJTRtdAQ!~#P(e1^?Cd;ti;ox652Uw4aYqo))xJa;s`A7;v;EwevO9zDS8652 z*^_Y5q$;Y;L%PbYj|rsKy}4NHm8^dK>}&V(Bqbdob|YcW;H$;Ts>!KRcK@WR?5Y}c zm|d;2nY}dzc$4$1LWpDOZJ>|OXbyt(qr+AEm5Tgh#(2#iGH#gq@FPNyGwj-l!CGAY z%3^1LQpB>Fqd{WYqWIF!UlZ->b}`MHL#3fg?q1nfy`67v2fto0D-Riim`ss3hI21t zXo ztwzC9>4>B9oM?v3_4IVcfBrK1G1wsV$eZ!n z+FT{hd^JJ=*##X?L4J59^K^ooa6jE6Z}B!Pr3}d?IAmhC(9G+~jpN>Kv&5RP4_cb~ zagJ*j0IuI9hrf^V=i!)Akw6s71EE$~tz9#8Jv)HaPT z$>1Sc{G&HMRMt{ZHi&D%45EZ`Q9Oei2dn*dKoKuL1#J*{FcY?%CHvvZD|#|8m$WX? zcV{PnBZgRXOKB7w#@AQ{M*vp`=aFVi^1c<_=jdaCbZ=z1@w5~@+fq)m>W&Nj+#nhJmY2|NoBPfTd%|IqNaLFv}=dv_g?ql|6Y+&Xr%#b^mFS#XQAGj2*>fBtdkwn0vP|0$aWn_ph5fu#qL`JzRA4;X zI~9(!5tZbgcIr$fdUhM=R~D6h3*}T=OZ&qMs1n*3l-43w-j!NVfckEDI!jW!tjS^7 z<-;j1Xuuglf&k1ci#mhZZ<9rv^o`#U9gX6poJ5KPt?&aIC?syQ1w_;}5&fq8U$pE2Hs_^ePG+Fum=YodMJmsJmPCN{kK6GqBMM~5KWr|jQDN1oPl2boN0nF19)%;>S<4rhfs@3daa zju!!M80+p{{f~j3=tAHyrOaQ;;4?-iAPq|xou_b?Vs8XYkk1xHu3&woxwP$ufW!mc+UR*c%oOX(p`cRJJ-&w?+_*u!8YBwb5a0FtI zCx(DceAzNlxQ)E?fuTvK6-*Kr!JTk6-oMa7F{y1FIE_^B7|_pZd#@moM@Zko0fj+Q zB@5*If!O=7TiPJ=s$06GrD(T80#~?t9eMs8&6xKFv;|GitJDM=*k!Gv&K-lE_+%yy z<6NURlC+lJ_7r&raL1S8?Pk&pYw^#z-&Id+fP>bv&BJn3jd?k-7#t`A$Xf{u|0w|4 z)4R#TGw!358JFzMvq9Wj(E9g`#9O(1>Qxb2qW*7K{7MBXtT%eriEo>>uGcbVMDxVn zx-vkxH=nbmQCA0t1j2C_QuOyZ$bks7j&J-NNen95b@We&H%(gKOWpT7g)$d zu_s>B@&|H@TAZ$hieXPg$2#f;j_!F|<6081IOO@~znid}X4SR;*Wc~9jeg$U$x3Kd zr`}79p|`H$6P#!Ud@Bci@?|6D_0pWJ`lA8E;f@&bVgJDXCpD#97uy|F%#Y~i&~ntb z5Hj8Qag+%~HIFykAD&56uZob(B5bvdBUW}P6yKhB{g%vD6@v#@q@9-ksN3AMzf=9N zYrAE_EhOyvum2l zz>CJ?72VUd+c^PE`AeM5cg7!o@v(vErGxqGeWn@g?jv8A6U4}ShUs1}?nex_+xWw= zG3)JO4p9NXZ?_d^c|c(1_$m7k0;>pDa$hXz95?>_d9Rr_sq)4AWQik9;o8L!wy_W@ zt3`;}tkObf(#Kn-I~=RAJ%2OdP4`gn&PGl-#Go`Vj(w;F-+&ObnAHPrp;jW9^D;Q+ zgscs*xRnv+pD9ySNN@l+05Jnb0)PZBzyJ-ru7ZN`6sz zKo$r7`7QtzI-y31Aip)bm$}(a1#rJC8z-BhOglq@CWwyF01ycjS=wx8MjmIidyPd! zTaRN9s;~_S$syEos;Gto7 zWYzTA{fv&V31*LV)LgfzM4%*5S!p&cRE>FG7|%IbLbV>qq5coDl{tbAoX_lsbtPR) zTgBOqaUt%rut@@U&|T4@4Sqw>WTSy!wvPG1ipYHtRGavP1mQ{GTxpdaw;%^{VuDZH zmC+OttiyILTA3bUPdzr#H8W5QT@~!({AE8~wTp<9=y>=lE^wN2k&+q|kHYGFx72A7 zm`IPO8>H$)`tAPulBd=$a{zaUnxq9^zN@FvT#UE|bQy)RWLywa|J}coHO0PSLE)N++3>T9Iwc6)gR-^-mkK%PzE}UF3K#x%UuFFZV5b3jVM11^x}Q-C zA&0;yS$ZCFfOKGJ+PC0{<$X#-wY+C5KtZ4_trh2J7|~D~gKLK-xW=Erh3{(N@dn7% z;_%^#tuDpm(;MND+A4!L;QoOuR0~o2r-ukJurR^{i{%9Q4*q!tJ3l)UdRZn~rjeoL zd`zTMnF{fJ(jPZrkOVj>oY$`Q^E#2`E2*Z!V{z*jpJEnzse6~1m{Ka+jCUITzm8{! zC0scCJ~falxAvN&{7Q$99+-61s3(A1RoKC68(scX8il4;phSDWuG=t?QlAVcL9|+tv^d5f6!{k>A$H6DT6|98ix`Zbc-jq{J=ij}$+Dz%I=YKb zd7Wa+Ywxh4Azj2A{s+1ittAr zXiaCcI>WS|P?>DGmeZvQHm>K<)V~w4oX636a38;N58(hX)p&8iE%z+<;f z-7i~qP9}te$Vv@F4>SPy7B+xu9&EHi=G9L5zko!^1qh@zlmeIIl0I*xUDINcnAoQhm(=HNn`Oogi`!u#_!|eA2xgrIm4n)8sQK?9MuH^obQG`#B zw!|}M8dAS%Z{t|FB;dJLkiJ=2V$J~-FRs{Qio!v<1^UC^$zBOasuI#4Wyphq&*kpk zrMZz&IZ1-m2E-G(F{avAcZ8E#*BAQsVe1XZKXPQ9CaL9ct)Y`)6*dLg-u;Wka zP-B#hS~<6veA>kV8=kbJ8vRGmaP6)Oi=1a=! zT;I;C7~fB*miU;!#c`PstBq<3H{qzf2d8H~gOS^!)v;5(1hP$g)`Z-}am zzyQRA2mk@tjer*2O>uTjml&P_ez)=weK#YMN*wl zPGmY{jM~{c>D#n6?|7`Y=PwrE;#foinai9FgXp|P{MuKG4@;I`2fwYR$a;ERF9$wR z>@mh;5soe$IQvfDS>*1cJ<+qj$xwA0cj*0^TiP z;bwo-^nY#6q>Lw^UPZ?COy9`Psp9!}|ER&Om%!F|G<9?8jssRT|9r>O#Am!nZ66r> z-&1tuL$83$F}uia`NGyTEJ=|E*TtY?BXRkaH-0|{_-zlfPo7NUZivSUCGEpjD%;TC zaSqg?alcq@#wqAY24a_jv<_X@4uGD{nhH0Hk)xxmQr91JRq#bJ$Dh4^5N|cg`1qGl z^&kYjN;Lf#n-MiJb61N0JsJhQhE~j5o~FuuQunOgGcIYsIU!bRyfRw@l`0_=y$X(+ z>I%B*9R~|TBdYKe4PvdDzN;C5BaA>m5!IYCsuTdN-5j*%t;K~-$gn((GkZ19`71lq zWix`KlbgCEJa`?NCLkxXu z)I@Hufg3TOwK599l%)>X6V3Uj#{3%oq3H9&?)6*lf|xwjGxDtn#EvOxaW?jv0n^_P zV)>^sl}GenN*+(OiZB31mo09ckUDT7W1w>w`W_{4FtQeZgXjivsh_au!9F@9(Lvo>Ut-Upih%a3XD`Q^f zuGyKROlX`R2|2(AdjT9+c%O!u)%6KS5bBa~nUC2UC*FR}e%jIadv3%F9Ml0=YRIBY zP!DA1mvZ8OOZRBU4&kp;$X0F^&i!f?5DdK2%AG!PKXef7KmVWMtS>R2R>Vd$;|&24md`TI zw?4BC7zG`-k)oEsW_y&C*l!Q@m{juJzbubkA`W-7s@*-PM!P!!VE@9eSAD4Tv|SpD z3`~r^s?&MLv(Vwo!E4cV=D?MzjM^}PnNkf(q^cip?wKI+B})M~f3B;t9WQFZf?Jog zp^K|y@;6!6+CyM@;A?*j<+{|-RqFMio-FqMspzFHV~KA~HObiroq6?+T1xaInocz{ zjkVs~r6lrfK*-=tT{o|cwL4OIJF>AfnU-pc@XS{mF{nP(fCrSEK#OzO4VZQEB;Wys zkO5pcIN|~T2*oWaGa4btKn-oY04pLs$TvZR?2bEDvtIv5J*kkKvc7p(|n!#Y&OOG#>_MQpe-oCBA_AtT>wH>{1jroR+f+u3e2)#lQ*Rv2R%nWob~rmssDh_}aGB(d^b>h;{w$zR%xKF4!DrJrurEjVKi zX5vlL>E@#u$ha5I^@W0h3Ul5@NlO}@EgW@Z%UAQTc^eRGZcsE#e21@8c=FBmGYo6! z+wyh3K}Js{b%`Q`rK@XWhb5aBseWj~3qC0Nr{N&wnTD?F`h^>|UH7fAriM3#%T!+J z&hN?)?q2L{w=31R{7$r^`-cTtUV_HMU~GudNfQhIY;u-wJg@~*o7(8F7tw*u#M~MU zMEhvWq{H2jqoZs9HFiIlO@z^njD;69efdC^Ap}Y6R1oisj@~im7QC?^_-0MHag?m!E^&0)xVx(Gi{|ya^wa)<>-Zt`d&!pN3T{d)>Kk}c0Lyj zG4sb%s4Fc)^jp3qxVTE;A=ra}+@8pJ4EV2mtVpg$Rw99XDVXAcW)0OiuKABcz~cq0 z0P3bcqnF4n;VESoeq_?nQ`3yn^6$?JVSvi;7ShCo*D5hL>imp1s9akz7tm%vZ5!yQ zZO9*7#rW+De!kSR&Q2b|sK|X zQKI~v6ZUuRJy<4(FtchRgVuI%tGjbX{VIzN>{ z)eAAvL|iS;F`%kH8Xn6MomO$@s4>aM3sU?w!m9cLux-K9v!Y190B~Ay(nBFKm}7)9 zgk*#SA=U(EPs3J|-rTPkhJhMdoL;2O16{&P5;rpk1!9S{I3$(+yZu_5p+}RZhPZJ7 zhRIHrzt2VUW^cY4%piDFY)RuSmAv&RW$0RZ3=b1uaAmV-5pKm|a166meC&HkifYeL zf%)G_nomlk?d$WWZY-0uybBvcr4-{w(_Y8AIeX|{j}^yBdUmBJp7LqS()_)@a{=$A z%IMp*z!qs@kzj27kvdHC!&l{ok4?0%+lr!_c0U!p`B0M`ACjx#;YCd9`5kfVzRXsWQ_P-h`@P;i{ZyCKAu zmHmT$%jxsO<&xAJ9C=dSS88>+jh7L^-XuQ_ga53#J&G&yzkmP$1?H{50j0VR*cn6x z+SZN>0q_6-F}jQic>q_)0B(q7kORBHQXrrKTIc|a5O4L~tsv;M76f$_b*N3Wm5v5c z$A@cZzey_C3%io-CbI04qw*Ug0T3^yPrJxktb8&c08B5lr%z-?9SXQEnJ5ay@NVom zYB~&DMwm8p!5NsOmnSb6)9d;g@a>J;#u+7jYT(CEapo8Z!$Brgu|d6$5UfGIG5~oU zu1~Io4r9ES3Ou&9qUoTNQ`wV$o@-ex$4XEj1y7G)Mo_&fH?Xeqwmq5ifHnzTC)pj- zMJ@GjFj{aYP^q~eDNo8V$L8O9vcD8mKg$ODPY8A`{WM@(fiPJf3KEZ1nsh7KdvZD# zJ+JWw0$vnuwFdeYG&DOX0`MMT2=^$wb$V7K(SnNdKDpX0x+LAIg&6-mmDXc<5zQ`S zcuy7ha-&$bF4yGqAu5RtQ^e!}$6CJ|!WrF@&`@VdYBu*~SA*A1-uWFRw`>SVVzq4eaW8n$jbzjhmaia2+_2J+DxWwpm`?y z*7~Cru%dQ&V|Vp{({kl>D(3mVxnzbuV{ud@VbeF=Kv@0PA4jED21^=7*8a_Ip6<`V zg9T`#){}HT z-U*setLW{V&Cw^{Pd-}AO{i<9Gzt?N4w!qL&W{J?y{I4Za89bonOV{2?rtqq1tNpt z^nFnFsV{W}v-Vo@1)JRLW)F^_dW0*_=-{~>JSI4r815-+UA<8c2hGM6XVwvJr?~+b z?r^bJ9%oUkI+#+L1i$kVC(D)=mNW zY!x(i!nDZ*(ToJn&1s-qQsr7xZ zgVM_FS0ASThtlw1eBJN1Z4({^z{2@>;6DQPNwjxMQaMhxf0S~<^7IeJZ0lIJE9}lT z)0QR?$^;dn6Aq76H*3P`Kcl*Gzd6gD&L$F2W8LPXObDXV?%$W^yDOn00p4iR`nG-V zM|~)`%lD*r#xdG@b#)p;S!%a9VaS(t+dAhR5Rf>;?tU_p4wwldeMCQ7Of3k5oxlJs zZD0fBeR-8W--a*JgcNebShj3kBXL_}LE#r8i%JzS3=CWSJmN=?2}T?FGY!?c|Ks=7se{(;Vn60G-ECq2 z&*33$kZV^;?EZb5z&o(L?d^Y;V6|M1TRPj%#C!DRcbd-NcGM4atV$#`0jC1?nQ6j% z>JDA_V`%_)sXFgXOBtpXp!NTsSno7JQqLaE<3)um-g&aE8aaZATlaShJnyT(myb zwXqYn9m@RkbSmMa%sEn|fs5KIb>_WWKaV4n%+|`ccDP+7pp@n=sTH08zS3Jtv;DRa zH41Z}(sO8KIR(C=w9$iPqlKkq2ZZp@lM5J!Qv}zKS2FyBubX$)4ySbf13=s~oXxX> z9;+Nt{|m(Z3kA)0r@D~SWHiE@o>+X=k&^&NK)AoJ{n1C55J7r{{N{-XF5t=ndH3*Y zs))pY(uQrYh$MzqXsnMAdp4hx1SPX27JhWkDDoLW0~Wx@Er?sebe(4$kdZ@j72m8H z7;DLSCE=oT_W0=Olt;7x1C}rV0000R!T=jXAOOCAgb|O3{!^j=6Nx^EvH%Oa#=waF zl2Sx{6KxH=H9{oY&DIkq(kag%q6U011Qh^2AP*)5h`WEb*|#5c?myjly&w>Uz>^_* zyx25_2<}(Wm|dW1`V;B`a$k`3v07`Y_bhrY=PSm3C}z#-Yg0;lcA)|yC#2nNx%=Nk z8xr|dcic3W&5>mNQXmV; zp-f1e+DDhTsY`S525ykj!Xr!=JVhL<7ki!Uk#er)M4}C=@^^M4i`awd>3!}UW6y4t z(YwZy&*LRF_JZcvCLlzEyY?1m`P&Jeo*Pv}p1S{IV>Trt-q2~BKJbLoXIrd&=PM67 zZK%MRW|*(&-iMXd_K{zJQikzm>_ZjKR7`Iu0|}cU8B(?%hf}vxnUL#>`Xi zWxQ4&hn^=EE~2rFrQ<~WMIpq_da+tdFs@z8k`6fZ8^zh!zYgQRt2ZT4!?{*1jmi6! znwfj%^48s=6YU3}`j)GCBy?tb9gTaSQ&~S#hXNA}i~@w(&84dhQBcrMw|ycgHYd{4 z5nV(GI4b+d;=7H<&9(V`F8m#TgiZrX&faQS@8E=-eO8n&FTx5R5uv#hXKyeNF$UN! z5686iVqL1|kSss&B##SCoPHa7O&L*7KyLO)oEiJhC@=P+I9Gb;IA^cE)^Jz{zY+ix zZAOJbt9aNbJ^x#;1IW~jA-@0P?!FlR4G^O1$Yn>E4Jx5*hwnK0aDEVCqZx>l7vC0C$9`1@A$p zLhcs)p3)^<`RKI)T_nbz9F=u4f)?hOKi2Kkxb0@jBi`=z4oIh1Y+HZYQAGP06?7=d zb1Pm{>kiL_p0Jf$ttc6$lWhkQxbi;3e+3-A0LSFbJ;5EoK2F?=R-tNx&8kZdi2 zv8T~D@6kC3Z^6#1)Cvv{Conzz$OHEKd8KBM7u0FazH~Re-aq;3bsWh0X{i? zvXjWoUMJcjg41mISdCxb3Ff=$feL~ByucxdM43J>!J>*tr3Ebi#}y569GNVMi~-9T zO%aF5lIWj(ZkspMWSt}|GFyMWR6Kd@@lenRvy%NoT+TL42CWNmd)u&jU`Ww7yHspW zNO!dWoJEF*!WlBbJNvmEs7mPBdT(Z@oHbPZW#LJ9YbY8?SZ?uT?0if<@3m#_1&prm zGDi!Kv&I3GJZ^pz@Pr&r8}&XLsZ1gMxFy+wf{h z<_zEK$O;FE+kLqAW?fVrT6IuaCoR)Yoc0kDv)J<|2r(^>ng@)V5lCY!J9ge4k5OR& zNj7P!i*bCc9Ud3Dmc%6!ZC=A$`MLc=JnJsqYRa9+t2@-j+-ofVVvL!9idG~|arX)) zmnMQeE=50{tz1J%Pkhe;%YAp|J1oE*MlU5{GhZ6ZKTy{g-0`CKkfxE?K4Ol38K%r7 zd?_2b#@0ks9x}f{@F>1GE(CN~L>*#o?-UyK*>4qj6z`MYkNn;sF0BHilboy})i_b@ zok^v8bg`NF%)KZ$ACZdEZI9|6X^bn=HVhQSxivP(WPz-9M)j%4e17Vol(V`}%Lr3i zCy`SHsB6|yB{vQxFxIK;e})A;pR))gEdE{8dD9;w-$lE&@i>(3qOa$mMDT2=q9M?E z`6#SQtwU_8!xWgbs2c)fP0`Zx*v{A9(0F-Q3JZVBadv_#)@Du68VUYG?92vR@C2$# zc3CNqpy!uD=$jGt^yVa-2W3c}COoP+JewQe+|6y5(CFN&+1IYa;?2GPtzK4K9TYAT zS0+~vk1gBN9bvaUL|f{-06ykTar5f_&AV|w8v-vOi3;+zXYXZXL)5bs3a+A0{y8U_ zsFmIvpJ}2X_HS*n_zkXJhnD-^U`zOptKRR3<@wkM84Fdh-lHal>@<`nfp});*if#M z|Eo7O10vdSt{`(VCYn}1PLx&eXiqc_mqVPTW?;7GddUDRMP}rtx31vFeMKvl4Z8;a zuzs)3I6OW+jB4BASg;;A$AYVj(uk_%+Mww1>Q-}m|BdWVdLgyXz=?z_ZJ5#9Xa3aR zdvt(AEPCP$?JnXoVAM(052aj&|Rsu3O z5#Pa{WD3kP?rO(e@xg)`Ktva3u9C=c@jc~-r#oNreTf*;lsR1PW!cXZvyeQ)o$KjcWPmsD0M* z>flB=QHtRr;@qsj@kxtO47&2qwa%Dc5`Yae09^0u(sew4B$?`C|C#NeApzgc+(zrm zy$b(xWanqqL3wV*fXj+LgYIu&+f!E@0wKfExvRACy5TZ(?E`yHrfd>y-W4FQ+M=u@ z-=?VtZdW}R*mvQ`n7(v;lMB}XPqQm68#TzOL2?Q3nfC?A3J;I~Sy5xq%5&TPsE>)Q zx~P*Ugs;Kg9(4*PiIDPS7Ow%}b^F}PgE=$C1fp1(onl4v{$oyUvM&~2{&$iIHUQ@s z(DIA!7sJ4bvcf5E0}wrQ=pIF2GR&N%z7=hztYlqCN&YK`I^a z)mnL)m3LZr4egGh01h!bU#4pUrBK0oj`~eaM1`3b#tz;`3p`%f4z5mBA*)z$?hJA~ zi_=bl=0u>~qG`J8^JEP)9;eu2iqj|tPMyo}J01q0NYC7nc}}^QL5m<_jhy6 z@!KpYX=B=yoj!F=UA`?1?OK8z9F+{&YJ2J>?v$|kxD1*1sT8;gtIDu)c)+q$w4_0Wf2ySmS3pbdV^(+BLpA^x zos+2}lc01du_fzE4A!O+<48GufS-|O4#7I>jVf5|r^1~H*MV^WyMfXU99%giAk+zG%U+KPV({OlAST}6*kiBlYN>ksM)SfetvpejHZ?c` zWwk@ZV7!hYIz^+P&0`jew9%p8c1aC7gg1M1)HC?o_{I?Y`aVKz;OjzThj zJz(S5G!XvedT;k5LZbg!_agsYqXe%0Qgqu1W9K#NYs~rcyh+-)g#l3ADiZ(8_~<^{ z7(z-x{3?u~5NJj)CBj%SE$KrwT=(H+!39BMwQStvx0GoL0q2;Kb62E?MocFNJZmXW zQ)5*u%r!wJA)}hDH-CY!SQMCs^=EQjZNE-7M%Gq30~U3;=NaZDe78>cVufTc8eWqB9WW<6 zpX4#71pZD9B1k`R2D$(qv4%vMsapE0U!p*YmZ=0TJDxA0U*T?yK_4gD2xVr2Xt7Jd+qMG){j215QK^qVxrz%0E@8*mh_U5l z3;E*jGmx6KO!$PPU`4rdUbLBjcrnb9j(DducQIPEdKpOTXo5NWKn=aoUW z$pgXjy$tNH$z|0(7jW`gN;O)e%-eSrtqRk28nD@XNjk)BIR2^9y@=$-HjXnv3kPV# z&CiUW#tcOfw*6OC000004`lcOwgGXHYNwF;04vy7KPogLYk(;T8abHhg?ZL+9_;7k zg>Z0D>PZMvC=6s8k>@BgTY_t#iht9?qoMxJa;N|&{Mz{g@qzD6cShYCLZ?yls*Z@C zh+kP89Tu@dLPxV1#RfVTx=^sXRQihzp4Lq>q`G#o@fl+xCkPqV zt(J730$kZEfI(MMsGsuuq_&C8a0|=~;e2$nunLe+2uOAYdCa-88rxctb2{j|KVZtK z3MgI8G5(kDf?#VBPX?M4fsi318?T<)=o*aXK~DdD5puC&0+Wz;^ZM}2`MTaxjDLTjo-am4f>=*lnjg6?J}20}RUmX*O}2Pg+Q@ng zlbchGz#%sn-yzzV?stIFzc1YaX4qVbZ@%stKZ zT^PX_LjSLmzzY|((uqag=eBV%?xrq$S-sieoa1~SGq?ICZ%_NYX$FrU)Rx6sv0P7n z;;YeK2_-i(#%ek~Ed(gTWvUeG94{@{JcHh0>^c4@x-yb{aHA zA7P$MN};N9BJy1bA>&8MM#ntFFdV7Ow6rE8T@RpJges?%Hc$8BkJjj?k~N+W?Md>} zHXUUK^+zWe?bw;6V&nQG&fKAux(hHuG@Eq|5|cS()PYNu9X;1IMVz1mUG(n7z%7?a zA{z6W;Q8S8TepKmZ-E$S%#!R?*gh}t=Hv#!`ev+6p#Qk{(WpB9i2rpwS(MuyR-2fX zC^_;un4H6F!|uI=5Tdg3n6riqrwyGA>E?I@ZPXI?t5UW}z*7(u_z@DmLjA=)ktwP-7Jeg#OlkPk4?VaC?TIgRF;i~%d)xEE>I{XnwW709}>WwS$qqmt5wVMO)jj@zvU+zWeDyFmqo7+um7KX zwjkcp!MgSqoP0|WbUt7+?{F^a6GyyAjQU1_`4a=Xz#G4zItfYXoj z;L?}$aUYacbhp^D@1X>JL$bgaOe}pv!ZPT*l-59->#gIueSTKB7dKQGZfC`ABITTS zFABG1in2A5OrJr9OT4w*1wl^1iXYHb;rDuv1b=s4-+O@c5~Z?}Ukq{MgP}?dy|ptC z=N5troVW<4G|ljcxC*||w$#)%Fig7>e+T&sj3{l{UlRgt?Ip$P3A8VrNlo=w;VBH0 ze|@4T2X%teU6|NMoHlnxTTvC=fA4fse;;a*(5d_$xr@&4!AU5t(=mAv> zZ)N|9{47(+r5Qr|^FucOs1wv>=A1CCfv4X#&QZ%mG@InrLhLqmzFwQ1^B z@w80tEJV(U_q5?3e;>K&1XfTH|6^kc=A*3PmI`=o@a!28j8J_q+Y?T`ev35e(`@o@ zCe3Ug4N%CSO0k*gUViD;J}ilyMsI$^05k2-I22&vtxxIbT}YS!t|c^*pV*~@+c+59 zli|Z|#fQkYcO&z?cMRo29}#KQ^K)S8rJ31Mtvr7tZ*Sk=P+NQEKd3vbrM%Iud1S5r zowUs&9~jRJ&%8=$;aldOX@&=kBbG1!d$>#67VYURkXS?|s&QgikzyO7Q1lcQK{KQ_>7AdS zsZVPMjHkCyy-q62>m)2R=i(A;fnL&MGl3!8AlPViZ912VWpFX(sL0P&(`=3^GytS? zf}8&U1%7|onh)%q$V{DbE|42gDeyvmuG-Sif0I(+78Dz=cm^z&(*lZo`~U(#0000E;C+^-AOH_Y zibqoev8Ka700VEKaR3y4F*L|iFp>z>oihT%*Jt(;w8~LqLP%;Vx}56F51K3WHmK9~yS`G(v0@rdZ*L19~#nIoW?PS_ygN0WS3-Wl!=bF~orz?W1mN zeS4tR>2KV?#`F_qcO5)$kzvXig~4e>zxonrd>%NK#|dsuJe7-GemFP<4%h!%l;<9{ zZy{^rHC#VQJep*zP`#M{{O{Z}+Rg}RX~ibhk8WUaMG9}BmErIFZ5(j9T3VlE$@-Rv z{3NAexjCc^U>E7y7NVCVl!W-zlu>#5)lvvN3dADn=#;$kbH;`nEN%yOp?^7gN|a)E zn|d_J)j?-Xu|q6ul8=lhU~Xt^j0Eu`k*Tt9c-Uo@q%g^zEx zKmMqnQrR4vnJa_jA#~n(SY3uwn};H1a~Y2wK@g=umd7|PVNyK*hedTV7+UH zyA-k8MW;^@)DPYU8_yvIJLr<(-X&eyVT7L3(VA99b7kiUPqbQgiT+Uf`4dFwInW9h zrjm++78bako(bzLf6u}j&n8G7D&j{~Or@Mid{9Y@4H*O*N$aq*uP%7BfE$C^wjKKa zoW?T~<`WKv#&l;Y=Z;Zwmyb;Y>^Eayq|aLoJalH)cQ?EX8&$&F*(0=o+6Fbn#27bf zBm8%!kdmswmt5uV)Ki`0h;+qXqq$JYR?d?7mlTBA-j8GLYkG7FspY|crWWXyXTB*@tvOMZ+3;D*q>G;izGdYFk(6{qwgQYv-`1&aM zuRvju{-!Z{eqeB~?7(A`JCF;L@QsE|Z*c33Yqw|x4O91XD4uO;GoGlXa@2BWU@7}& z(;8S0DM637BH_(LivmUs=J0zc8$u3H&glv)S1g#cq1y?qvKA*k8tsU??`uRAEOOJ@ z(t_te=(OryGkM)WQO5YL{TX~}kyZg>E$ICqa^$Sh{rxcLaU(#T{Iq|Vh$k6R?XdR_ z47cnI;Hbcx>X`i&8RcH-lt@l!M5TDRBH5I+kOU}Qowa)x}-)l_}JI;G(wB&!)^7&=W#KiaF;pAt5eg#vXtG48Q`IAo_e( z8h{&k=WjuXoXl6~Pja)R60ms{zyNI_21tVp@_Zst%1$lwHSheE`ttAO+L{UCaZIS4 zEC(l1gIk@Zg%QSGc;`9IQA->_{5&kePit#F`$%JJpI_n?0D^-^{Cgir2 z>z~#K6-LfarLWu2qv+f3GvP*GqImDSp*T+I6X(Jh)n72TY$6>?4%(^Qgc8rPGO1(R z|G+{~8tYq`XX`y(tSYc`B6*CkYd8U*?B%_(2gW|CsUOJpiU_a%F&&VgL)H^KoW#{V zF<>eAd){$7-Q3q!LD?hz(l=ePBC2`fAZjq7SD@>Z6hE+`GI0VyLl$3fE-=99TtXdH zm}2y!JLp^H>Qv7b4nk&Lx0syMx<%E0%=d_es72sH#$>FTrof)AnzN9jWqE3mEeDggB4$$lP>SQeEehEfy~}#Vr?84*%>%WkuTz& z^FDp^$odmLhDCmxg~zSk)u%z74Wv*-)|!S-0~PQRky!tQw+BH!_^&(F^}z#MMAY>( zFCE9j-Mz3pxm~^8sS&Nb`A1Ov{1YT=k{Kt;$n26ha1e$O>I0gp*e|{QG5a9*z6xy5*opdaG&d(>+M#%c4#1$PPyhqm z0kk0ezzacuzFiT?(=`y4uYq7sOX?C_2T4%Y$q$1K-`nt~9#=pB8sWNcDI8F0AT4#b zYF_OmPVjLrQgo|R%)1UrrgQ@#%TwJnluJmt%#06px?7tH>5{HY`3vtDsyR>H*OvG| z?80I3m(yU$?nfrWf*4^@jyNzX`)U9VdU-3?0Q@5e#Y*MygU!)P4=cyXNW?uY`@dVZ z4h%!n1`*C)cQSNM|2Xn-eH3=O{mS7bQ|nT8im2%2M%RTen1o;hkvZ*QMwpAo=@(jX+`)FqruL% z@^yXmlPW^B^N~86iS#aQor6GwA1lhpJ6)|)Z{H3xt$~Nr$DewZpIXGs)h5jLO;+A` z@iB^a%z=?Q3v{DyN>Wm}A3^EXoUZ)NO!Xw7(1XS6O*__Vfks=~W{6%{Jy0*Af^Bna ziW>-Jo0|0Q-9u8*rjd4_M;CDhNLR;-+q-4x$m)j@&N+O8X24^wd}v5`fHhPR(f~>v z>cR!taHE6NtX88b%WbBqN0*4Pd#ZdoY!A*z#-l`nc@sNNg2My?L2W}T+lICoJ}|E0 z3-y}FGAt-{+>itL^Gx8uY`Md0xb*hQ-Gb`81-C6BSqquf&8w-^is6;OUxzQT0vykb z6dI~r!{~b#@oi^8E~ILRu9!4c`#tacQ?aVZzYA#6W%DMIYi==Yif_O#dks;68J_9p z8ai{<2~{T!}f`hb&JSC zz=+#tE~B-1L!i-&=Goi4n~BM=TvCq})RV|Zm~P5tS@?p zhiAbbBkeYuezeh^#%F&+P`?cWW48JXE(R%OR!ScGVq}W&$k1vIs0tt(Z{GIXokytb z007qA)SN&8H9ug2^g^Zs;Q@kAKsB=fFEQ5IfB-N^|1F{1XaUR!cuF4tm0)(<_ff&u z@<%kk06h<5R4zJ5$$;IECkX>;1PpQiUV-DX0*h6lJ}l$R(8``(gkCjuFAqBMhVCwH z>qXrVVG}nT<=TP|zLz}Fwq(bEx0mEn)^8Z0D6!K(s6}yz;)<4NMu?LH^3t8BS%iA5 zo(ul{#>He(`*b=2Q+m04MTt5sa0H&$oPC1H!B<}~k^$P3j)SMgs9YB?ad73Nz$-$f z1}r6y=qPBuCq%XpnTS=%gk&+yVwE~+SbL8InX+l(gaaRlF&Si+ADol7->yO4E9kMeK=M-IDUXqb4eatg+;{+4!?E)8Y{hnW zuI%y1<5fu;TGF&C_A=i;lJ;kt@I&B@5*rm%LX|(~14$W&Qo8!gKW{8-9ODyl=%R7( z8J8IQ0?zg%c^dM7w*dkbtr@QsACaYgT$S`97gsl)N3JgsWheWwxve(Ti^52aH9pi3 zJcyFl%ccjo1}kJoc<>wg;R<(oUlqsy%XcK+4-qg*5s1HRkJ>rKNer^yWUh?2HjnOi zXl3_T{?V*x?&`B*W+(sJZ=c@lgQe!A>q=U zS!#~B$kLi^U@WUIUOridM))ujxPTh(dPJYAWb^*fGGI1x@}7!29_QVc{SS?;rd<7< zC6#XNwQjW4{~qp)h>x0z3>%;uerIelEeQD$ZH{48t@%*_uAjL_iALl=RMl{z#f!ZK znt%OvDM3RhwW-h4Xp3#`c+9)PLXY~%sO*;IcBv*l^8cr3_&{bg-liKKD_t2W7u0S7 zo3>fKnLmA!R_%}HWoenPYQ{qjNj*dQ7!f0=5TmSRl6qh3zns3Tz{plW+EeuKf7P>_ z;)F7TXzQb=`BDOA@CeCT#oI(u#b6>@^8_AqKNDddfVs>FU!Yc`OkE7*!2tuFX9cN? zjMerlM?fW4+net}md{;1byRwK136q0F_-U#FZTdQ2`%Fsqr8%n~#U5};$lhV%4~O1}{ka>GWG&ZS zdOyfK_!`?To+RB%;#hi$3S(HzeIaYU5h?Z!>YIz(7YO5#SXw`U(ri=PTVl680$5X@0cAG>Qf6*&6C-c(FO`CNTfYPVP$cJl&Cm)JO~9&+$D{dGXd(-008)g z7l1NaIk&aLkBk?}KX3p6oSF4xpK!UxX4iY}KEvp`CDKmAw*#;bP5J-pB{fgZGX zW%S@!sr+A%M~K4Wpo`?t14SErvOpT+_=L=F6bpg#0stKK<3s;~#~816>6Sf{e-on- zyoStzo9w$l{YdvtA~qE8ekl3E!^XVb^!gzch7KF{*zYspmLVFH2>=68Vfe_Acg(QT z`hMGB(>n&N%S~25v=Q0oTw|gNCzIV4aAV|$kqwy#I|K4Pr+GE5S!E|SG4A* zg$KC138?&UpjTexs`@uF36BeQ;~r~l%tMnpffy>qTiD~12B7#jupciXz zZ50$2?np=&+Y#oSej)#!qWlq1xT9ixpQ*g50Ov(Hk6l%>2$`WA8}_jts8VGWLqT*X zdyON=L_5mZ4~nL~8uj+$H|-(Gmp?Eua~q3&%7dDnTt|PEJH-(a4CE}l&Rv8`SR5f- zap$;vPj&~^rNl)-&l1*n3$tJhbrPyTH}_L2ZcUrwo}R2xzRSvSJR8wQjuW&ioHncU zrDtlz{1PbqP%_MKAovo$KSQmD_?le9DyKljTil9l?VPhWM0Vg8YKN|BIK<%VpiE-O zbpxOjeX~h?<D`beaU6mb_gBg1F{1jC&|Yj%a`8VrvP|LdS7% zq=6-b@Ux`X%H6N@IV)9c`Tq=ac!Ws1G~h>+QFfh^45Mo)o2bWxNX9rB_-L02+7&g; zGjvC+8Yx>q_2pBlWe~#;wPt2+hvp2Hm5MeWHMg1%k`Kh_WwP=HxTTcf2{*EVQJ=n^ zSu6LZC^*0HHcZMA#iJJVcGerrLlb3B;r0cimiVJ5X6FU?kh;9wF*fi#K}`L#07qJ9 zG4Z1y$_|CFF5PZ`}xCrzAc<#Hb8gS<9Fk$aWU3JC0R3+=)n4^A+|vQ z!qzTdVnP}ih!+w&eXJg6I9Pi!?$c;Fj#-C$X8ez^bC32D=&s|jPcKe7Xvz@Mp1&=m z#ZWiUr@W67s}mvKo-)x%#fVS(Xl_Rq?FsF9Z3GayPzysQNi{OKU>sF;VuBcpIzydE z9Y^xC46L}8H+N)s4yfp}4r31YK4!U%D;R8ze{SY7!1)TJtBwa_;;EoR6q;digJ~_s ze57m$P|ic-RXh}uA^OQSmavpHC&g0nw!FXE80A49J%~;siuklYNAhWjxMC%ZQ;8}; z&ECcCHzGf%s=TIZ%Jeb~MdN=Y$S%aZx{t8TKv#aytAOJ5AIF4eR%sG2YOA!USGv&* z3(>>KoC~ZRmEsmJQ^JWH&6N+KOBe*(lK>c*?|hXDINepCyW0J~xBWxlyn3xmvc>nHQKjwEL!PhW=>&}N~m&;=DqXhrK)Qpg1ZjA1mKY<9U+G84Or_a`e4d?T?85`W9GhjGu#;J2ROl zR(9q`2BcXSwGdt6_^w4cCZ0^X?d7BRKk%b8iA3h zIs2)C0IB0_BuLs2L}5_ycPm0MWIvikI3HnNA;K1-W_kFORQMpW9^Ef80U7h~F~@{? zClDdz-zVZ?%8AQlJ;j@i>F{f)k18}WzmN?*#AhukCRv|<8#CFWrDh6`>*Uj45|1ssx92yh z6`K_sgGg|{4mZ-s&o0U%jF$uH@OGAZ$;^GWOYi?gt8{Fv4;deD#It-KW^fKVMlNC~ zqhUJ-7|Vwf1r^(1V?tAKm~E5uI~S9(20wNiU2K{9LTq!8$40-HzQ(GHF@{xU%_7TA;kfq3n6W(F4=iW&VQbUdu9W5Ft`+}1oGK&F zbaL#;X-b61y7ke|*}F_Gq=i2DB2hi}E70LKl;Rgdc5Rn{8+gt%mi6Fkqvq!im}+_jmX&_KgZ95mz(Zom z7PYtG)3V8gLrhxQ>?_;IG!cqcno{X+ZpZ=TvRMg-&A}`D#*%e{9y{5vI5Zh!XQB{9 zlx;=t+k+A$EL-lgUtptKGI?;4E72=&dW?|;;n3((<&W6^0E5?m6!hS-gT@Vwta0`t zn}at48}HQ0i(PY^)aq*AaeLVU$ty+~;PGw;#u1;n;FSs^sp^V*?A|DK=j>qmqkD7*HPD|@Uhf}dLjEuo+WmrJD#3n}JnqdvJr9CG- zHJF$0xu+}^YPfy>cWQ;w+|_0aBz>9}=RgmB=n7~YQSdixqOK$uIl1_4;M}p1hxyeZ z@xH=0a324;yNuqSZEpo2ZcTmCzGaly$d8Fmt=*wrcPxRqS6gR93DO^LOlKed7D8Xa z3L2)$Q465pzpA)X{>-AAoI7O(NZHX;=?#g!iRZfvGw8AhmFrWgZxc5Y1Q(^fq?+&2 zPN-M_9w+T)?|3Q;+$eVuYf`++f9TL)Hkj-_ev?}{i&L=HP-_vdohc?q=1Wd2ZRn8k zue?1|y6}(Z{S}O>pjE)aw6VLHZcDG#NpmB?VQc=}ff&@J)xyzSywjzWorg-gbB#-a zjsdNy=GUxwl@Fd^du81%SmeX76+#ne>i###RL`-Mso%CPTt za?*MrR*Q;i>Hp0mhb`S>oro9u!ElT!IrAG68zCPWU`K9UsEcfnn%#q8tqL9u5kV58 z#3w}w%X|Ga2TtqLZQw3Nw<2D-{rKzjLNne=71N8`O zP4YSTv)XPsJX#}-H>!kzxk=^rqR2!LN6$V0i4te>N?8tmb0Ji>Nqo4|K5W{uCD9j* zH=c^{wpM?O*NVYSjoPbWpz}#iuI$W>sLT?kwV{0&^p;)RL@$ds_hR9SQ1MPKz3}H# zYZ!d<2Gl1)@{Km7ksN1(lI z7lsdoRI-~d7lxiK%Co-=EuC|+ctXsE_fUJy` z%;taq(`Ip+7qj+Wm(jGCQdeZ3pKyPV!++<-b3aZE_sYVYKSj1Sgb=22rSvk7Pr#A; zI4AN7u634Q2H?EZQxiIWiDgwK8TbRcv*71&%FiI~eW>dm5~#y?-aBJ|r|OQV=-l!C zr%J!1{r#GEdQ$__3$r&;KUMYN?w*QmFd4>2tk_G@JW0=&=@$*%_x}t=9l<*muZS0q z7tMM;`Hgp+LSI=F80Jmy!68}avqwEy+8X2k{5^j{^P+{?JmNh0gBRAzPW@zvJeO`E zKqY1n`E-bQ*nOkYBpJq5Qo=9@S*lD~Vt#J=DzzGE^8&^~`g)vWBe8c?cYT|cjQGttT+)$c zs|T9NLeye8-)Y9sQ|f-01xj<>7YyZ2^K3I^n-;-j)yxK4jg5KIt-Do(hy<#c6v|tQ z&~4d}we{%S(OgoY+FAbo330Z4G-3sGP4}w?pcp0$Hc_D}v1NZ)$)M^~+%;74yH0`B4Em?;{DaI6pj2z+1jry= z%*#O?&7ouq)HPJ1HO@z@(}ljT7yEjth7m}ejMgtJoyG1rQ|n(gHY^>6*2nC+=O$h> zcCo;O5B1=mRv8Bbq6WF|2Vi`kF+1Sa=HnQM;sL3)`JZmm>EVR;h7fc=HG-F3>HV0$ zIb_sPwh;S^CX85gjWe!sW*qLdV+Y@ZB3B{%5?w?k4rSZ3Dy;VCgsU3y{^T4cn7WYlagFAoDIp9 z^9Tj*Jw2xV97?>}U~=uV8BJ0}e8`1(M^Fv&L!Z0|FrB50FzS^N49;nQ36tJTQzqXK zmut6o4bv#bgEM-4a~6a;KKY5lJrV|^(TK#~1sk^X6QvQUYB&Y~!Bc#OXD2e(Fd#Hw z$nXRqzyKcpoQo2m;#|~%@;7nm2mMGrkn;>$xs4u7TjNci=k5x$(Ws1W z2akznEAP-He3+IcXBK1k77^4}HKcGEsX>cwi;@~mG`R}sa7hG(t_%cGBOU1ys;){I z*JMOT4Er@8(a=BI)9lUSRbEhyZ-0!O*Di+E{)c%rLFMvl_v|;5*}ruRk&=@`Z399jZPK(V*#_7BH?k~J&;hn$M4~ZAA_?IAkWwt$JhEenOuGEq_>FB z;2_>~rh?xd!(4cr@2r zzXZ^96nK6oQ6}L@#jerZFDD@B(Ca6DGT4`BmDVU=c_XY&q~nOR2@PE)hAkv4FqKpih9Vme-a0t z^1mYDjDoD|IEz$7vi+Z;_0qA1XI0=VR50y}P2owlRSQ%+~;X>WM3{xH`{Qy2cO8Q|3Mn*8tnGIHce4Po>& z?f3J~r3*j_$^X54$%f`4iF2r;w2sP+1B&z5{cdtDS1jS!V2$jh72Azs_C&?TCdXJ9 z_eD7ol+PR=h~;E!2!FPj$vJhLt#QzcYVN3X8Gzy*MWwA~pTrOck(!iB(}Iyyqx!SG zP3ORvFSsu~UUaKd$;{|3E*W}X%Xs>Ml?_`nPe}}}eEQ5%!a`6nKJ?UJ7gh-HwEZY)k#LXZw&(9E& z^`jF}Z~;6^JsPa>{3e%AU!H=&ve7~ts~K=RzG58CuK+8CSp_x-j%VP#v6~?{#B8CQ zRc*)~QA+z?&Otn>Bs3&x91m?I#y3GMc;qLuURJGT?IkdM?_PmqbZ3pNsoI)lm&yW? zNb(8`u!F1sOM1^Nw@09jZNU;f^eKUnpa2Or;JtO+HsMygVMqekQJi*!#WEkR;UfKE zd^8pPG5$DI#gyS~V|#7Tu2xk`x?B&F9SQSomimAZ!oaX7GX8#_Xpw)W_JW!DX~O_~ zih~dKb(BLjKnFuz9E9?bQ4h5Nmg4A%FW9P~4pXK!#x5&ZRY_sB2oL9_1=# z_~O22J43n~37Ix*Cr#nKR346_!*sEOqJeKa#Ze(0HRYp{Lna?vj9CXd%OuMrh8k&j zDX|4d)q`deaL%&1GlUQqxha1aP3M}3x0y-S;h&QHtXnvs-|TQ%4T9sR@xTW?-7k9} z6fzD(Gh;VHShkNpk1!kk31d|CSA^UA3^00-dfve>l~kz(F@Hz=VZh=-uxlsA16NDo3>8mNi9jsdPaqwVC_s zibI4*V;+K)?;*}N(dW(%r%QrypW(gi38gB?zHp#M{x1Ky6x%Ppjq(<{KVEIC`|N=Y z_Kk-T95)5Da)Ybheg2Ym8psg=0)IIkPKu0LP4-`yxxxUFY+~4EL+Cm%AJw5hwvXwT z3{lcXt<1U+NSf0vA!Z(^b^)8i#itxCe_t58+!99plq0ZztmG^Be5! z|IL?rq`0O3YIBz8w%|o_iwG3KA9Y8u&lp`B( zPU4P$@~ut;P)l(}_o>G8jnyu?ec*y{-3H-=+&J-N5%X#hM zjKfPKBQ(h#{@VH8f^1P$DHp8M#YB}IsBF_V!_(|+Ox_i{Er$)wV2~5l)!|;(oD*m&1W-4 zSxy=z#e{aZLx$>NiLps{<*mYEQ_VFkq|xqF1jQ};khf{(#?@-W%mw^TY|fSjsS3i93+e_$Bl5)W+j6g9nKU-XeBK7MiVW~YeX$0{*Kc^ldEecQ2<3!9v zw(KC$yU1<|?#CG+TQ#LqPF$LUtadv4(41>dSH^`1*_;8HqUw|b>^rzU0mqv4C8}2~ zoPFSj0Hgn}3Fw#uFZ`t>S_@5(k?>7HohGuI+}_jBHfrK&qy@$v>0aRHy${BDw%x_u zOB-Npa%8*%g$1pK@XlBQ%B@e~btI3uxGP?nn3~EUer*tEFMJoxllhZt+D)u}3IPb2BY}BRKmS-IwBYLT5<-ekA^@xy zNbf^>68d2)`Od#8yNbk;@>72R$&WFC!{S1;5{Um z3DhPUz@IbCoQ5H6t8!NRd!Br;SAIx^xEYQn{o57C1}^Fb8~$zrO95A_27Q^y%C(7zG zEkP$J8LmW9rsv6*G@xy3>{-QkTP7Y@awRy4HN;Ke0i0U!{0-=Hst;n?iJsCa9BL%HPJT!`>56#EQs7+%12Yc!*-_4WTR7Ug!xKS4<=sgXl@lgi#RoGt~Dd4LX2ws@G@db%>my?Q}o9~BZ8 zibbNTkb(G{%ill4EB4XycV!o6%#Oa3hq_=G@e{AL7;UX0OkYQ>GZNlG!K`0uG)D5q zI^5R5wFeas!2}FFlj27)`oje%wi;su8?xq?Tx$_68i5DH5gL;Cgje1G`9LNm;tg53 z_VnEtCQpiA2R%g@0r&Bcg>of7{9l>$!OXLvyzMW8T@1l~fie+c&yjlv_#& zs!6KU)y!yU+r4RWg024u=iLxr!F7K$CcTDg#+FFZb*P{v3ap2hmhZ1yjU<>YNb04!%}DoZry5)2-6U3q~mxkI||F+_S^Ct;}lEY2hSLG}RK+Z&18U z@ph+tU-uCU*aapn-KGMm^Vro6iw+;G&y-YsG|A1tOygG*2 z-7I~vWmR>yxo5H=U8r&J+8~3ih6=NpkzS zq3|fQVRH&rMKPE&c|cDW@r04|*lyf2yWTTWNR;opa03Tf#pG4Oi7LY03buv!473rR zU7crR0LmD$No7RarAvGI4fpT&ax15B0thcly-i0r%t~TgG+&T z!Z#tobip7G9&jiZ%bMBHV%ZqtWgiF;Qa}gat6WsawJ=^!2(>HyK0?2=?o?GMXE=QO zE4rMpQ>Q9gfz!G{n3 z*wH+E6%S99KT>)_jo2H3DIaJ~*l5=R(Oc>qkZ#07-k`7`h76j9ac@7uIjpP}DzuNm z`z)=^{jVO47jHtZM@8Rdharc#zuTJ2q*^_y6@UC&g{HGB2>Mw)Ab7b`56z#}35x1r zKK?*>s=M_v>(mw=IzDv~hAE8|t(||jH&7nqog3M7SUUhu$+2KuRu28p_PPonRl%a< z6W<^p9jv?r7fC$41K`E0`35=hv32cw)0%jW=MOt|$G;wq)r8Xk(KeiLr1jG1O`YKa z8=9ZeOtY~L5;elMd3ycTpL@pW23i1&b;_=65vCfWVgQTSTt(INb8>T%@#n#c(VIr- z0-Gzqo%4zV&E$F%{Z09P8I`Tvw*M7v7{2Q@FjjXuO3_NE}C7C4t z#llYwbrx)C?0n(G85P(Uv1yxIswajT!P4V(*ttI<0!y61hZxb4&SGN<%DmVtyj{4m zs3;>Y*EDeTQy8No7bpsKJBO4L?mmQf-r>*PP|o;{Y~f zLJY>Dh#arqJc-U#MdDu;#8iu!o?t3e!8Vox{-+uV-6hW_!~+5{JcUR+xHWOJZa?9- z%HCucs$Rus;X)ERP~sad$rS{DIR&933O@=h{LqI^y&C7V8&Fq4tTA~NTq5;?+}T-s z0@CICTgdv|KS245kHa&amG7gGHXZ5E9MQxf!Qr(q^b-WkR~>tz_!D?qh=3kUU-qjm znwyq(wQ(7ycng1W@!AWLulKj~(kLnOyrl-R-H{8bjd=RFk@P`?2>K*<@N!osYXBDg z`Lw`CKc0E8pgGjOak?L39m^abk zeZ7ySLLdBld%WNsJ*#Gy(2<9wmcraE862s06uHq8T4FW!Zaf5Did> z@hT&%{B{j0`X>%`>A-|D&pC99)%4fHe{I_pTa?;65?ZAdRIQN*ba~1d+P3WRP!;{R zgeAhOIH0`Bk!NL({frQGTuE64AY$qIXEWs)5_!azNiAc)QHc&W6qTlW{JFc5%OBaP#D`I)oUe$6M+DN!C8g zaIp|5y01otU`z}K5b&px+eujVy2B9YXMH`pC23@Gg(sr~QHO~=s1WisumoYB*YxV1 z0G)G3y&QsLUA;>#VNVN@l0B~$bbUkaTAL`!Cu2pTytKTld5i49qg~OB3Wu2mjk}HK zbOod-a+})?IP*(_(wj`A7NaxOWA=7TzE3WwSqyOoFYdlK$*sO;HF{hTIu#q|j{`@u z08@y2nYuyC!>>Y6eBy5*rk?t_g5jjOfu{1>eBv?6vB(t|QX1rBXAbAsq|Z6h#7O zsiw&ZA&Vz6_VV}9ST;EzsW{kL2Xhlf+-`a=c4K!n$oE5hzN3K%FloW)5jC3kXF59Q z&D%XuTjGJyYR@x?n}VDkI~^M^1A6Qz|$uEpc3ZCw13f8g#;B<@{2keR%`Yr*kp(KPPF9$Q1FBE54u! z%D(tpD@k|6^oI_mQRA$HatB6v+Z(B7 z%8dJ8R*|3jgNIl;#UM^2J9<_t&{`Fq<-qk?G|-)t*>Z@K({o!>Dggk$oC5gqnYwEa z#dB?4J=Z`n785sO?Ac3Dav}Pac4lQHdPA|VPDllU`U-G3e6kih*hYctGNGK2;`lF{ zd)$P-H{|@@qiURR!ajQ2Xfto76)Xn`rMI*vEX7L#V^(tz%UR2PIH=?SgkGzXRv-^q zJXJAb3`IuOu4xWxJMswv9bm2ErJU4A6)8Sa=32V0wMmCj&mo}yygMQu#Ev{`#~N_Q zM26%~dN=AE6%Qdx)?2HEYZoo%FqT#jAJ` zF|QlcP<+ULmTU&x6KdDBY+I$pDGT$0I+sZ-?F^Vx)|+5inCwrC-0`Nx!{VT=yU>~Y zMo68_2)`SS3ySG0GAa`Ki0T$w%~ZC9uB`*V3mP!ASOW@nM$29rMMUjdNVF5|g+;qR ze7aI%>Y#s=!T(7UTgB&)2H(rK7;h93LGt+LoGR~W68(aY8M2$;uWFGyBrh4wIR7mY z|Bt;5&#d2@vK^s>%7)@kkAQYjeT=KcplhlgOK=tRii%C^zsZCca#mXLv&j`@XrLZ{ z-3cd(3(nPF@2tzI7@gu1l(dl<>RJ}%)&Lhbp@vqE&qDdS!tWK`CIibUxgb&HIQ^h^ z&fFG`tM-Y!a6xOkuVLwx%&Im?0naQ@DP`V}-yCpXL02K!^KNS9EJdIP1{0!e0xu0%qXxP>5F0Gh^oB!4U1~mCIO~X{& zH;(<~shYeKFdH;agdZH;Z%3RELkkn~?1nt^B-+G3j$ywORFASa^T07!Ua_al8=W#z zf#^GHP0Oi=nwZqaVy9r0tc$w!FNTmLJ}ul zrcn75PNa=9Y9z6DBjHa(BMO(Z@S~i=yOP2+JDM4T38cq!B!cNC+74&g|J>k2V3}9_ z)@!}w1+l17a&ti)q!8s6Wa7^Z<>J)C-Qseaa4spZyHS55Yyygqf8ltax{$c9*1$#N zE>X0!<^p7O(N2fPNSRR^P|;tbZG>`6+_r%3z{ipd7J- zF&-^^e6=MwLNCeEz;fn-LJ@DbNziBoQDmC~HzD`}+XU9go;VNlV}{z)`*Ib*viV-A zpwK3f9i!7&1$RcnYvHf$VZJ`UCN}e~7z-a-s$nr7sLnHrqfPUQVlj{ILo8|kG42e1 z)5jR}-aO=4n>LHWA%Ft_3?~Fu(6iy%XZjS839!f8WAz4H4EkkZfzsx^O%d0tlz0-1 zH3HmSA28}@*;{x4n)cuUB{CMEzSa}m17X}3opL9vC+)AW9zk?uuNkFl@_eHLYf@@Y4Omo<#oTU6BX8B~J)od7Jy3mT zNF1K`sk3e^C_Zd(4|jNQdV$!ik?{90)R9xV32;MNt%%aK7WGb}@suaJr%z>sfhpd^ z3p(a#a{ydA8qOfNq6a>S9iAwsz(y8dm;({QPCrjzTAfrqu0tLWgu_eb7NL>t#*@N= z)OTIO7p<=izfP_(+N1(93FZinr0et{8d@6+@thOKREtbGG<^}u(Aiy2f7D^j{-MnX% z?XCdXN~C&dS&oV+g`d+h5-{1Y|#?sHx@h|%7iWn#y%BihGJ{Y|F`epL{Wn`y(iV1#3wph7n zjJ4TE#dMJ9U+|ejS>Jx!*>oFw=77Xm{cffX7PHh8B<$#}#7)}>zyCfJ`5UEQz<90|7v+B`nsG9w6crJCpo zg~$J@65V^q9Ucti0mXWz`Fl1DrA)0~@BcOU0~=?R#*7`=PARUx5L3x0L;m2k_u>#2_b3SH@D^y}4xW?^!IG*|^qCx$nTt7JP$iZUoxkt2LvwJI;)WKXUCVEs?BZCRVlP6{qzA&jN|fuDoA;NZ7lauAz1&{!cw}@cT~ZUR9cu^{2)qgB5UZ zo$7PbI+3+nTN5i(B2_an?%8~K{U3hUgg*uMH3V-G9%tIy69oilQzFn5T-)~dy;Z9o z|4UEnyq-7jIFy?vPP1upqe(WrBm||NNcj&=-%!?5J(J;hgUM0K4dhBmytD{+7dgDv zoc!-?t+34E|L|B_`Sd4TH!f-O1NbEYn`}7pTgB>8>$7#RiEGs3|0?hzDwGLJHTrIq zP}t6>EAZu{{e{cwr?eJ!tl40Lc5I5(%$mb9!}gRY`@+7Ed-Uo=WpoYEXYxxZ+P1SI z4C9RV#dCpQvU5~wv2e+2F_%eeWH&f(GA^GTX#U(6FjFqKSM$oJ0ALwqdz;4Y?pE*X z01@xvO?hW0r~Iluu}@F#MvPj*{&Uh?jDyzWlO8o*@?Og9w51TRp(56O{Z7sWwigFSk5dS$cV%lE}?2jZZqIPv% zWOunr!3yntIH8i8E~^@2ohOWzRu*Z0Gynhq003~*BJQ1gpum~fHApczH#%-#IS*8P z%Cs(ku8%$6Z!hMkDMw$eXd?t}ZFN%(RJJ`Xvp$_jK6Ktedu9*;1dg}S2$&3b+6B$n zSY?q7YVVA{rEXx8na_3Ub^VnLjeb`!3CuvE1ldwkk}={&wmc|cfS+U@_bzqR9=*Sn zbVdW(n|Jj9o2?R|d)`hIUz3!O;zz{Ufu{xH9-HYqlqRv5b`5FZJ9m#BjvDqKQ*w^l zdKOuGUCr0uqr!{_+b*XVeu`qj&#Z?frs6wog$Rvp=hEfq)U>h+P-WY<1TI`Z>GNcr zZ|;8U+g@Z6SS!~7>i~W1MAxy%uyoL7b7fN7o3)LcK-k_PhVcZYC{P1zq7^gTrj*+8 z`P6v$&*=YlYLZ+iQHmqvkV}-LRWJN!S4H*wLu3pDAD2W8-Ym(6n*U)#@MW<(MplfK z+UPbh9Kx3-`q&L+k#vl_+TH1&NOoNvI&z^bWGq^)#9ypItdS4>b~X3=`*P+0Sxrfj>$-GUk7C^eh_S@Q-ziSv$0aKp3>24=A@W z8#`t9b!A3;^xDS{B)r=6Tx6m3Hs1{A!h!NPHI47K9(nuAfvwoUY>(^L^Nk!z&9TTt z$+bPHkE23zK5wQ*BVMh7Y=E}$zy8<3{S?9#ckiSNZ6^{A2{aBs~zy;fk=tg z-`X01x#+3O`{TYNRK)$Fjw;Zc+;Xm&MNmLMbIM3z3fZk3Z)&O2o^jkkbfk)ntH(dU zmVOz1Fe$=(V>(?=uM#+#0nNVcj_34<#O&Z^sINS{1V09?N zce2)sF!vc>CmzKoH9axHQPAs!ox>uQ<(&E84LKSO?`?z;gLfs@Mg9hXou!h_MW>GV zmyowGjC(Za7C%vY^e$qpKWPb|;w+yL!kCQFvvv%oRkq&J^5Uv;QBYA^#d z=lxyIKR()NS`k6-c&eoSJCNrNi-U;Qe4a?PS1`%=Urj&{DA14F1{m4Z5N0?5x)|5i zOl`tFi{oBE8eqk=Ead|c@}Wuipb1yzyU4P9LsvbFA>i_7=!SM+mCkOnB)LC!QJ&vq z(i2JMqwM38swJRo>;RJEA@JZ=n&;Aq@*BJ~<%2n1N2_}+Cl9+5mal#s!FC{`{_{7} zd=sar6stS=3np%%MaG=yQx>)0Kc0)XSorJ8$XNSxyKizgc@5oiwVH6Vmb*zc182W< z!(F=-@oM;aRWDfk0$9+q<5vi;1-)v@wqT!h9qQa{>6aR2D00|2F~|bCiAMc?hi`zdG-puuAW;U2d^MLq zn?8)V)0$Nkv{hi#Sqx2A+ns@Ek%86IVJQ9+2%CRj<^#tL_FSI8#p>8C`pLJfo#N0* zwVT~ZwP4`~XHEw!A?I|7p0Ap;eJ0HG8gOVQU1!F65z8t3?8aYX9Q#D9b7?X4!O-HTBa&8RMj8DNI1 zYoTpXM2lFUJLx$H9s~mE`ynxwdpX<{-r`UBhU16q#l@QOI2e(}qQWeAC~@x5!7igL=oLrM7V*T9n!YuRhCht2f!bIk%IQd1jURH9;|p9Q>lpB zj(eCOmva+{zkk$6W|Nm176!GcSnL68r`)A zUAQ2t3mV}KFf)ff_>nhv6^Rk{wX=C59Da}v$o?j081M4-qoaweT#`&sFinMz$dKiS z3c+_K>h(Uyw|D!W$z#U`NqI&;OX(dyM>(e?d2=Ue?V=-l%n*ieKWrpJJ!{7Pi#%( z$di3wr6kkSxOdP2M^Z+Ty{J4bdG}Ub4I^24OZ^9I?m?^S4*_r?QUxRWGsO%>&?smW zJwf&c&APyo%I43A{g|m)>4oD29hN$?Kh%oz=h^E7;aeq6 z2nh;Jc-ob5o}L5G(N(hJ zsHs0pf7P*Qd#v%t6K_Q0Jg?5ff$YYcFG>r&$+H}MUh@YgIFZtufQ~0Qsy7&}J*MB~ zRUxF?A6*H6iKb5r(sCxE{#gm zxVOK-LqmdXZjjP8bZU1bC}$d>df#MSf|@ooT7=471x|B+0WxTcn`50ivCsuBeI@39 zB-%lV+t^ct2ho<`f5Z_qwk>m>JL>fp&mxk-fAO1+Ey+wdM~|8#2fiZ`1Zr>51^;#D z>{tijMYO6n$a$dSabu#UsSu;&>S3mf7cB4L2J~ySZHKNxRUj((5F_`>p1G9HA1VkC z>_!X*^{{`zi{G?qm}i9H5~oXMXOj#&0P_d0iE3eNA5;iVv&@%EfTRiq?ooKxaM6J* z!Ynf8$kDj~e^VUD7$wrH;uf*4OP}?zI@vzAbx&X%Y}t%DA;{yq-oP^TS}T3%e-XNs z!;6+}ET6_aTy*IQcJ%wVe&Dntm7a7I^xn3I#HLO2O?G&SX&4UryB`t`6x#y0cSCGO z@H_p~2ELvjVx13l5_<(E;Zw+%s0cX2+1*Fk)SH*+yg&D8E^n<4c`GZDm?L5o#{@@w z|C5?=3*KDXMoW}U<9Wf-{S+4$31OV>SCtT_eeHW)_S z-%jn3?S^*U(PSpDgY+J@D}_g~du^5aGk1KgkossIzlK*M$FuCQ$Yt>YAab7K&b%Jh zisjOD7IvKw)XO9#okbxlf;<~~2qz7mGw!cv&Fxjsa7ri+n0E}wpCpxvfoGK{t&&tp z`P?=RFBX6HXs8v3G6Pp0Y+~{Y#$=vh0vDRjjw8sE&31nXMl@b>=pZu6vPM=2M&ps+gT=qiLei7{#~~ydoWrelJ>Ca1 zvfMQ84oUDNrwXgJ9kaoU1N!Y?-Wa71`bO(-(jI0llx315533qpxbfS?QzFC+ z947nUt3D^~wEFX>uN!HdZdn8z5E@CZhp4(a(zP}9VD=B&?if8xdUTx`!H*oyLNvVS zWN2{M|EFLkj!94~3u~xnVRz>&JX8+*DvOKDc}LrLY2wz1 zZ}b)8?<(3)b7vLw+g|{wx92jf?ymGSE*0lmCz2NlOVt?a+GgCj4ClDlc@&snj{D7{ zag?aVh3Lt1p))VWtPz;QJf+x{v&vLXjA#;*<;~6U)S}kw26tf-W=j74t0K z4&)j9zYNQx(Jq-(kJC6)lMW_kQnq`A41VVpKIQJ?e2qi7d`&R@J8Pk0D!`#YedRwu zZ!_%gCzBeBG5CUjUI@*V1a1aqm@4s+YRBixplzwdI}6i%$G|zdl9-`F`#ldK*S4xU z^Pb+|^#z!}ImpNxJSqa=ge;z63!SwBc@W|5-s0Neh*IPKaA)T}`DypO6PJ|XCdVa< z!O;+L3QPp>D}XWYj|%sxOAf_t(NXra>nF2n_6K=j&w6hl)C?w~s1hAShI?u0ghPdN z1LTqj$cyKIB-Ts8ee3nt{+(u`D!Pp;^SQ^5#f!n|{UgdGxO8uF6~`jz2m#V6o;j5Z z%)r+XaIr8sJ&W_JO?TirdKb*U^$6$86x9e%6Z-+5IOeBO$nIa331f&Vn!?dWTuL`t zgVJ2g<_+?t+}DUlx-m}+?at7?^LIseI#CVLfbXjgMR&M-={mE1belIQytS9`p-|;f z66NGZ>5>rljsiCy_q3*fh{>dM<2as+;|m~S8oXbBxV#hWGwmX{8F{j_ae8cNx`hu7 zxAx&?f$HgLa)c-y8rh5qLZ+_GvoEKIAi7RY@Oca#zl;lIs2tzHxc2w)DuN8_WgWFO z!2;-D&UdHkHzem5Jwy8SM(f1A<0430uFo0YkJST>5iQc@N-AF{&)^VRll;h&gvlR? zX`0gtZan;b2LRtS!g6EG5uJ(!x~(LpBYv`@Ga0muQa_JXN;I}aIM>Yw|D6vce2A4* zQ6p6OQ-iD4Y9yeD!njsx==~Z;UM^nT-D>11UM+PDt9#~p`vKh!Kwbl6nuskv;%D7dzvRBzcR zG#Z43t^_TF&Eki2iku2>4oD{go2LiW$p+MUQE!HMC6R=)+8*z24spm{GupVBv!b4z z&~tdRoUqz0sa=EY{0GZ2I;@%E+wq0I91WqDOV*DG zHXOLb=8*}Oky;UPzpN?H`H^5&FrDpN$z%X9rd!)tx`GFr@)h!YTQwU_foOR!`i}Pa zT11wXVs|FBiD0UX1<&x4$Kjj3W(6Xj=C)Lpe_B*UxMDnBPi`C*b-_X{P5I3j!Y4AegA$;uS6Xc{xxCzRiD%3_fxnZy zt^m17|M2_28D!}MvC8IAkOH^D8ANP`dW6AcNUZ|gscSrT;IIG83|a(1E`Hy<@s9%S zy#|Z|ap9-z8c%RrP55M7wx^MEtJ@ z-b{4|o)gQt~;_PX{aZ;~b@FOf>~xtvb`oivkt19kk1ND7mrQGDg`4*mt}fV`2f zs29ABg&`=iKd*_Fs% z@@V-`x5;UH?XS-(djv%tW1c#kAW+F%9S3uX&nVJzExfdzm-3h?r;ZwFB9X-90hG2u za3b5iGEvWax?;CZ&j5%NyrPRE!GfxE9OM5jei)Rx+#pk~$_z-Pa>r}B1do}>xTdn$ zzNN=(%%b{9sP^rS+n1?oD!Y0{Hn%e*3 zeA3ToZs(xhL$(C1e3|Nf3#g);UYheF!G|)>8YqG!3PAg1v6hg%9@jgzc*SVZWbf9( zmK0+P25mmpz)o1S*tsbTe^50%WNR*cYk?ogT4JQ6-Iw3~!G;5DTnw{XYeLyBgS9#$s%c5G=x7Q7hAhx3F zLi__@tLZeMR--Mul0pt~bO{@T0suwQ+^W(3SolzvrN%#EbD#DDt~2V^{)vblEg>#- z2A}c3x~1wc39EuAxh0I~$_!}*@9eul2c}G+@$DOJ_7qk|@}e<*7-ldT7vrO!P((}3 z-71h`vz$BEkIC3=ek_>41BH1Zk*F8pYcH?j@M0Bi*G+gygzo}{IbuxG8Oz9DN)&q- z-t6w%%(#?=q=wO#6cq~fGRBzgSDcfETPY$jJ|b{))0zyBYlu=!I&gJ9I%R3)bzqERd<3y zP**qvG}$;8{>haNT?X_^WR2-VCgeNc(v$ssbBTi?g?PlMg#z~Q;)&hOcM~fKdUko| zn)}uiY2E!Texc-PDD+Lkui(#Oz*rg~w_#vo?P(P^3;WSRwdRN@fOHU~3(0>w*!aUf zSaOmqYR1~G3bD8<8MgmPwq!`au1EDC=gIQtSm*#|@jv0Y=}FXM+XJnbm;Hd+zX<)> zxN?rs(%OC+HDT0-ss~$=Z=f8tLAOy2kZoxylJ`BmVCEWYHhBycek7Z^8YQt4@Yspg zPIdJX)k5yU?y-bOXP!-h_MG7>MlZz={_6^pAceY9U|I|ucoTm{DoQwrB^Ifji1^Mb zC#s9if8|d(Yr0{Wzrrxx2>=+44_?kVupRqjF~1Av$Y10%_=UOq1|61J9KPv{6Bne_yGhgHhuUeQq7I(99^~(4ay{$ zuHB+qWb|8!!O6W3a+R{9H_VIb8hq9~j~_M9NtIMWJoR$aXWSYD;{V6H^WewWAZmFb zWHv4+OaKYD`Rn zEfM%UXH(oYK2k}Eh0W`+=2^Ox0;_47517|6Fw;j|Z~pcL6mZQ!8UO&)EC2y^8C+*% zb>fz|uGVN3H`=b}m$(^Sqw>Y_-2>Nhi&K^1_rl}MwBtf|jwCSiFLvC~QYa^lr32z- zbCGhp9&+g1*Dqyms~G!27AO)2Xy3T&1QKqv&u%DMb?aMAi6fha_5#1JGZN^Xpm-v< z1HRDgY5Bi$kj6Nd4gt>bO~7wqd)Xn61>!r9^%V9p)`MkmL`{4sknSR!EcoHa+{?a> zw!Mz+|+@5CvUgKP!6=L5=aNQHV}5 zLoxcw{cBlB&HI@>tqnNo3+Wk$V%#_8PP~>qTZ&Ui!h~Vaa*(;7=uPRbO!}c&EthY#0 za3(H-WtNzWdlXaLM-eV9Dk3edJ8&ZpD&j*uHpV!1o+< zdbb&)?`&|fl#h!VJ=>ekuHLvTaHFw=8H`dt6W3rD;*o*hN~l2LpdEa(F60%882B`8dSllh4HtYt?mHUDCJR zDj7Wu8Y^s zMcxH*dxK7eK3`h)$7^fCGku>z5*Yge^DbF9Nm>8ddR9x0X-)C?sQ8N`f>;W$fGk%h zN7Z?#xN>+S;t{m6Lz7(wmb4>_f+0Edh3;NnnFSXw$;5@hUj zFDzEewjj?-pIL_|>p)7|uqWkty8uK{Ti} z#OGIfZM$))Vu5Q^vDANe3Q>`_tqQ(_ejf)loBr)Z{5=WJ^v5 zi`M)nI3i>e8IN#!=1b%E@o3|&!fnrz=yJawC?D_gd_-v^H8#i;WX=ReP1c;~>e5Ze zY{?x=3q8617H=d}rB52Xrwuy?3EsiLusX!tF5&QxjG=yuu`oRC0qLq zHN{ppr8d#U$YmpHl0|M|K#zGG12IU#K4S(w_Qi&mlGTO7;hksVW?Zr}zU_@!r6OQN z{eK-t?h`;+j%|vGwaTh|K=!rm6*o_T9T64qmsh!~CSa5Cn!TA-RxZF)ZmNKm6eBBM z^1^}?7)R^TrvdHD!5mftvMh*NeKv%Dv6WT2xa9>?xqdYs1|;r3#xK#uocNDaUd+IK z#~5F=N3ST}aB@X-BeamS7CJH;fH}HfTl8Qo_ia-r8^DqYhlpCXi?H1h)gIPtYqZg_7h4~)>mS-tvgcX z-i9fr?agq6VBmaqF(|_A>tSLP>@nCN(zbAbt2~3Lh1v-p1}!*QTC~*LXxj8P;8ZLX zA(Q~Xxv<1Ki^^4;F%f8GHW`k2S{M>!$$l>IxdE@`1@t>ohQ!w3Vpmc=D5IYBHwG{Q zGpJa1AzcYj2Zr(l%(K&RqSLlOr6-?FCF(k?indKabQF^y#)11SqPDx}GN~z(yl&J? z6WgwqXEOmpkf+APDg)@cMp~O6BkP@3)9(_1>L~nwXaQLKYlr)qT=th8AxrqvkyE!g zmhKM()b&P+6$4?2tnLNd`*GA;RLV#;>B^l~ZH*iA!nT|E;=019tHx~SBAK1xC^G=GAOpWOKDKOXa*$9n?Hf6frq_^5PuL;R%uD65y8kou8W zg^BDrLhNXj_7eNLWs54&Nk?Hk>oqy%Qg&>-fF%8ld2PwIS!sUCph zBXuXu9UM6QPn~?_*PG1v`8A9&A)!|A+<+-kgh!s#M0V-7p1R!UX#J z#3!kY0zx=1$U4^g;d|^Fp%S!Za|-e`m9rLtig9YBj7!xxl_A^pa?BAQwf3WJphD}Y zS8{OJS+I@%<}>v#_j^^@*d`l}k9B&XF7X7B`}G80LWhY-UH<-jWvAeA$NT(lmshM= z#_03$)>v-k_DL|#=&Q@zNyJBk@D4#+^un&d=Jm?%)&EB`y zy|qJ#Z=B0(#!4{N)9H*lWF}Xchurlg!RwqFV`qf!o2#dac^j_m;avd17tGhN3IxI# z>;K-R6zH1uN-)*ui?JziwO8ny^~tiz@izf9CrpuJ9w~CLq@rd1hTWci0-iRdkNoH5 zVJ`>a&$k;;^RoFKI7gvn0JNXF1&#UQGj)EsU$U(lZNVt#hkr`tRmd}lFJAm>-|xXU zMUVK(X0FCL$jmj_EL);1=&_&Uf*O(+69H^O0?^=Fl#;Cz^r0MiFC`Ws!L5bg4{>Gd zzg`III_FrlF6`0(yzxsEz%XE%aNQXgjgTSpEjBv;Gv~Vifxw^n9MBt`pAk<;^=nCj z;5C8gW}E1J(Tw!*RYgkMCGd*EBA@0lhf#e^H{&<(iY;uUn!dz)>@56A4z%1qKEVwT z^pv>m6jdD-hwkBs=>DWPdEI@^bKiF^UOKOH4%;EVu&Ri1xvR60TO~8oa|@TBf;6w4 zHSi_A<+?|O>1wxfSSUBXlJ1s_-MBKWis*L1Fm!7mtT7-ZMm;X_SN3DHB@pV2N9D-f z&6^k(4k8pD*6GtWIq*0G1l#g0{F@bMKRi2SikL0<9+964HibWMbb7BN=?pMCvkDic*ws*-)t$hYjrX8uElj6of;79!D2hY0(Ss2Z&p z&qp3t1V*m=URS)ibGe`zo#((7J6lLVi+_^X9kaZ z?@qDTbrF==@HJQO$_N#ewN^#4i;7tN1fJXKYWYHJ@O~*-|Bl`O9GV%}C2BGtKc00| zEIS)%sLEYLrK-Z!Bb?^uWhDC+dKbJ|b0tITeB+K9u(#Ah!6Rc{G;_J6m}!?VroR6 zXek2(=P8>Ba{tt}osnYnI|E1nz+dac8A<`F^ookr?>U&?G&BS~Nqz#tdQ6vN=%gpn zgkz9)Ux)a}939V=AzY5FXFlj6R()|8Y8vp<5BPfw6FqM#OMqu-Q%b8B`29*rbK*Ee zE>qa$W9Na!Qn8l9s;%Toq&+sb^qrDzOxQJTl@w{niejw0sRe^#=Nwbyz>toTa;!DV zvb^MgyLQ?xL8=+Yqx|y9X?$Mea2ZEfZIa`$%d6MlL zGMf&S9r6@WS*wEwI8`nNNTa%{QXQ&Lq44YxP8XyJPf{4mA2rJ;~Kh?h3L^W9T z_Cqem^MTWQ`Hnlgt35u*w$d(aJY7NHdn_zzzIY*bArSp0j`}e*Fq^lex{Xyb1JP76nQ{eQlsNL{sI^jmmG`tft(v`cf|n9fH^ zuZ8=6>0p~|Lm$o!Ln6*;rCblGBBt`o@-cW{)=mH1t9rJ}udhf3Q;+yh%`S~m^To%E zeIT2Ec+s;AE);SVdwZo$Yo&`fTEiqj$v}Q}!Vz7CZ9;FuFvx@}qC8Nwd3FlH5%<~6O*P7>8a$u(FIcK)g?i#6wX{xaVP~`cx zuaTFBxyx;^0&8m`O~X@eFQIp9K3m3OCFqYM_ej)>WT$gte|PE9A(FN(LQX7Xp#J&G9z8IlpyPI8kt-mV@XD^&ljOCG_SXg)Wc^5lLPa}%YrP!pS zPV?J(lLaG*x3Zy9xY4ds{v8D9mN?sJT+oBnFYF!Bw+n;In#my{HR{mnEIl8uMT)rq zwn68aSSOdgn0R$(Cu*L8O>Fb-L@l0kCi34zXk&+(lXO6yuN2qUbXYcInzn$;3&xd z4RZmmFb5(ZPXXO4CNibkZ{RJK@zTYGwU)~cFYPjJDN~`XdoMKiJVw6>@MClR)06fZ zo9>*Dm1;nP_x|GZdkS7XE;aPi+Dx6}!>Q|`JnoxZP`gWy#9mNFN2_@vIbwLot@ipO zl@tqvW;2XaDx-wgz|ga5ODHX3KzwHkYx^RH*$n*PvF7y<$DM+gou@OpO-mF~7SYs9 zM6b`D8PzJraP9_`&pnNzkIp$Vt`aD%sNg$o0DxjY000004{@aCjGA;#RiFTe;+rHR z3ER9WwN_!1elGi%xo@45qV_GwEcJb#l^zT82!UqN+~%U!1I?HTdKIjbSHDvoACvfpR}p`RbvJp5f8zyr z^5i4M%k)sd!E3GcR2%b~;!eqE4|rz|(4qlQVDat@G}r>!nko=# zw$26YD@sTT5X>_dN#~*`x4_4*!seJZrmyogreB}LQ1&94+|;-Txk z=Pg&CJNzH01vTUx*2ITA-`PDxPOzQ6!15MV+2QRi-00usv|=H5VL)Z!LD`JAfEGKU zjMb-$GZV^~+$}bn8oHRT| zbt=*8BUh`uqa?2cd!(u|Nj?gWUMj*4mVCqe2lKJl1q0R-=^%2dbjA&*Ex=Q|ISH(S z*2H3%0hz)=wVD=n=ZA_HOW%7%9bjuEY>!gv2n=L2#Y$?!pSgYGF2(O8_Okpdf?NUG z1CGhegdqYFCaJWKsGlNRw)W|X|6*JQw+6UYTNyA{Q?lv}mvM?$l!?9TmRH|VUc{@( ztU3(JJvAd<{T~Z9zf|kiw6qjnWel?{o*p@dyiCMOsf*HdJ2R&}OD$IrscC0pauIuB?6Y7|viW76So#dgj%0AN()2^#IWEQsR%T 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 VI*382T*#JbY}Y86#I5zf0046o4d(y= literal 0 HcmV?d00001 diff --git a/media/lekiwi/mobile_calib_rotated.webp b/media/lekiwi/mobile_calib_rotated.webp new file mode 100644 index 0000000000000000000000000000000000000000..dab8ed07503450321874db293a641f1e7bd925b7 GIT binary patch literal 278740 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

iwMQq|G^1`1B4`fU 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

$ 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 z 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%0DjU1a#96i)i5 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ℑ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 Gv;Y7ET~a0h literal 0 HcmV?d00001 diff --git a/media/lekiwi/mobile_calib_zero.webp b/media/lekiwi/mobile_calib_zero.webp new file mode 100644 index 0000000000000000000000000000000000000000..a067fb2ab244d4b57aec44cf243503e8941baafa GIT binary patch literal 190444 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

#9!LwCwf2*^ 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�`YE_`$0;OjYghgLNU36Eg}m% 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[IG{ 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�UO8SH~0$3O()^T3=F?zGcKcPmTLzU5ZQSnA=y0E2dAd#!Syt&38bop1&hixRLtUl)q3{A&b1 zT7?Tdt`wNAo;8J4@6rJ=ju`IwWfm6i?ZwGT&3G`U!Lv-g^~r%b$x%1P>|jBrbE-JeNQ$Qn$5Z9WLVDCiV04LdZIzzm(1U6{E5@ zk^`^qs_MKJ1Qj$XWyt6#Ss8iyGO|@RmBf%UAaf%q?_Do9D!qG(h#!w=oPw1HeUNgW zH*7cH;;|Iosy!JOOKy$MG;S6f(GWNdx&D(t+Rf$H<92%n={^$jzv4^7$N>}>7iB>9KUiMbrVRe%25Wp5psOgXHjz%T zTUjxa2j+|5W}e%VGrz0RzQC^`b7Yk5CB*8bu$YfNa%Iok7k^N#cC9bD8c$y?TdB?z zY;cULgq5|4Gl|xeR!56&N>RB%IhNXfsCG86_Y9eCHH6nZOp}49LA&pY7VBl zf818@NiYl;(_3o+Tucj);CjIw_{p4!EA^~PtrJ@LtZ=-~)_eYIC>lrXqT`x58u`&+6EXi*@&evJ=TT|Y4E4aRlig!~<3La|DC=dWGyNE( z4Hz!M%5{=0;9T!HVbXXWQjn|h;Pt-}ElnO>UQ5*am51A};l3MfYEY3?_LjKlSxcx( z|G(w+b_7C_qV-+2YijGtWNdf}n%E-P^_9Y*!g-FG5AeAxK7K6ikp8<36y|1Yny7n2 z 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

tkXI}|c}Gw14U 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 literal 0 HcmV?d00001 diff --git a/media/lekiwi/motor_ids.webp b/media/lekiwi/motor_ids.webp new file mode 100644 index 0000000000000000000000000000000000000000..98099c89fc4178ef647277321048ff6429967c36 GIT binary patch literal 189342 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

$d2o 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 6e7e0575..21c3fc78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "einops>=0.8.0", "flask>=3.0.3", "gdown>=5.1.0", - "gymnasium==0.29.1", # TODO(rcadene, aliberts): Make gym 1.0.0 work + "gymnasium==0.29.1", # TODO(rcadene, aliberts): Make gym 1.0.0 work "h5py>=3.10.0", "huggingface-hub[hf-transfer,cli]>=0.27.1 ; python_version < '4.0'", "hydra-core>=1.3.2", @@ -49,12 +49,14 @@ dependencies = [ "opencv-python>=4.9.0", "pyav>=12.0.5", "pymunk>=6.6.0", + "pynput>=1.7.7", + "pyzmq>=26.2.1", "rerun-sdk>=0.21.0", "termcolor>=2.4.0", "torch>=2.2.1", "torchvision>=0.21.0", "wandb>=0.16.3", - "zarr>=2.17.0" + "zarr>=2.17.0", ] [project.optional-dependencies] From 3354d919fc71130fe5b6b1d9997fdfc68fd6b42f Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Tue, 25 Feb 2025 15:27:29 +0100 Subject: [PATCH 02/70] LeRobotDataset v2.1 (#711) Co-authored-by: Remi Co-authored-by: Remi Cadene --- README.md | 2 +- examples/10_use_so100.md | 6 +- examples/11_use_lekiwi.md | 6 +- examples/11_use_moss.md | 6 +- examples/7_get_started_with_real_robot.md | 6 +- examples/port_datasets/pusht_zarr.py | 41 +- lerobot/common/constants.py | 15 + .../common/datasets/backward_compatibility.py | 54 ++ lerobot/common/datasets/compute_stats.py | 316 ++++++------ lerobot/common/datasets/factory.py | 4 +- lerobot/common/datasets/image_writer.py | 28 +- lerobot/common/datasets/lerobot_dataset.py | 472 ++++++++++-------- .../push_dataset_to_hub/CODEBASE_VERSION.md | 56 --- lerobot/common/datasets/utils.py | 439 +++++++++++----- .../datasets/v2/convert_dataset_v1_to_v2.py | 4 +- .../v21/_remove_language_instruction.py | 73 +++ .../v21/batch_convert_dataset_v20_to_v21.py | 54 ++ .../v21/convert_dataset_v20_to_v21.py | 100 ++++ lerobot/common/datasets/v21/convert_stats.py | 85 ++++ lerobot/common/datasets/video_utils.py | 4 +- lerobot/common/policies/normalize.py | 34 +- .../common/robot_devices/control_configs.py | 8 - lerobot/common/robot_devices/control_utils.py | 8 +- lerobot/common/utils/utils.py | 16 +- lerobot/configs/default.py | 2 +- lerobot/scripts/control_robot.py | 16 +- lerobot/scripts/visualize_dataset.py | 9 +- lerobot/scripts/visualize_dataset_html.py | 15 +- lerobot/scripts/visualize_image_transforms.py | 2 +- pyproject.toml | 1 + tests/fixtures/constants.py | 6 +- tests/fixtures/dataset_factories.py | 89 +++- tests/fixtures/files.py | 26 +- tests/fixtures/hub.py | 21 +- tests/test_cameras.py | 4 +- tests/test_compute_stats.py | 311 ++++++++++++ tests/test_control_robot.py | 63 +-- tests/test_datasets.py | 359 +++++++++---- tests/test_delta_timestamps.py | 155 +++--- tests/test_examples.py | 2 +- tests/test_image_writer.py | 50 +- tests/test_push_dataset_to_hub.py | 370 -------------- tests/test_robots.py | 7 +- 43 files changed, 2023 insertions(+), 1322 deletions(-) create mode 100644 lerobot/common/datasets/backward_compatibility.py delete mode 100644 lerobot/common/datasets/push_dataset_to_hub/CODEBASE_VERSION.md create mode 100644 lerobot/common/datasets/v21/_remove_language_instruction.py create mode 100644 lerobot/common/datasets/v21/batch_convert_dataset_v20_to_v21.py create mode 100644 lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py create mode 100644 lerobot/common/datasets/v21/convert_stats.py create mode 100644 tests/test_compute_stats.py delete mode 100644 tests/test_push_dataset_to_hub.py diff --git a/README.md b/README.md index 5125ace5..59929341 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,7 @@ A `LeRobotDataset` is serialised using several widespread file formats for each - videos are stored in mp4 format to save space - metadata are stored in plain json/jsonl files -Dataset can be uploaded/downloaded from the HuggingFace hub seamlessly. To work on a local dataset, you can use the `local_files_only` argument and specify its location with the `root` argument if it's not in the default `~/.cache/huggingface/lerobot` location. +Dataset can be uploaded/downloaded from the HuggingFace hub seamlessly. To work on a local dataset, you can specify its location with the `root` argument if it's not in the default `~/.cache/huggingface/lerobot` location. ### Evaluate a pretrained policy diff --git a/examples/10_use_so100.md b/examples/10_use_so100.md index f7efcb45..b39a0239 100644 --- a/examples/10_use_so100.md +++ b/examples/10_use_so100.md @@ -335,7 +335,7 @@ python lerobot/scripts/control_robot.py \ --control.push_to_hub=true ``` -Note: You can resume recording by adding `--control.resume=true`. Also if you didn't push your dataset yet, add `--control.local_files_only=true`. +Note: You can resume recording by adding `--control.resume=true`. ## H. Visualize a dataset @@ -363,8 +363,6 @@ python lerobot/scripts/control_robot.py \ --control.episode=0 ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - ## J. Train a policy To train a policy to control your robot, use the [`python lerobot/scripts/train.py`](../lerobot/scripts/train.py) script. A few arguments are required. Here is an example command: @@ -378,8 +376,6 @@ python lerobot/scripts/train.py \ --wandb.enable=true ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - Let's explain it: 1. We provided the dataset as argument with `--dataset.repo_id=${HF_USER}/so100_test`. 2. We provided the policy with `policy.type=act`. This loads configurations from [`configuration_act.py`](../lerobot/common/policies/act/configuration_act.py). Importantly, this policy will automatically adapt to the number of motor sates, motor actions and cameras of your robot (e.g. `laptop` and `phone`) which have been saved in your dataset. diff --git a/examples/11_use_lekiwi.md b/examples/11_use_lekiwi.md index f10a9396..a7024cc6 100644 --- a/examples/11_use_lekiwi.md +++ b/examples/11_use_lekiwi.md @@ -391,7 +391,7 @@ python lerobot/scripts/control_robot.py \ --control.push_to_hub=true ``` -Note: You can resume recording by adding `--control.resume=true`. Also if you didn't push your dataset yet, add `--control.local_files_only=true`. +Note: You can resume recording by adding `--control.resume=true`. # H. Visualize a dataset @@ -418,8 +418,6 @@ python lerobot/scripts/control_robot.py \ --control.episode=0 ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - ## J. Train a policy To train a policy to control your robot, use the [`python lerobot/scripts/train.py`](../lerobot/scripts/train.py) script. A few arguments are required. Here is an example command: @@ -433,8 +431,6 @@ python lerobot/scripts/train.py \ --wandb.enable=true ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - Let's explain it: 1. We provided the dataset as argument with `--dataset.repo_id=${HF_USER}/lekiwi_test`. 2. We provided the policy with `policy.type=act`. This loads configurations from [`configuration_act.py`](../lerobot/common/policies/act/configuration_act.py). Importantly, this policy will automatically adapt to the number of motor sates, motor actions and cameras of your robot (e.g. `laptop` and `phone`) which have been saved in your dataset. diff --git a/examples/11_use_moss.md b/examples/11_use_moss.md index e35ba9b2..2bbfbb18 100644 --- a/examples/11_use_moss.md +++ b/examples/11_use_moss.md @@ -256,7 +256,7 @@ python lerobot/scripts/control_robot.py \ --control.push_to_hub=true ``` -Note: You can resume recording by adding `--control.resume=true`. Also if you didn't push your dataset yet, add `--control.local_files_only=true`. +Note: You can resume recording by adding `--control.resume=true`. ## Visualize a dataset @@ -284,8 +284,6 @@ python lerobot/scripts/control_robot.py \ --control.episode=0 ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - ## Train a policy To train a policy to control your robot, use the [`python lerobot/scripts/train.py`](../lerobot/scripts/train.py) script. A few arguments are required. Here is an example command: @@ -299,8 +297,6 @@ python lerobot/scripts/train.py \ --wandb.enable=true ``` -Note: If you didn't push your dataset yet, add `--control.local_files_only=true`. - Let's explain it: 1. We provided the dataset as argument with `--dataset.repo_id=${HF_USER}/moss_test`. 2. We provided the policy with `policy.type=act`. This loads configurations from [`configuration_act.py`](../lerobot/common/policies/act/configuration_act.py). Importantly, this policy will automatically adapt to the number of motor sates, motor actions and cameras of your robot (e.g. `laptop` and `phone`) which have been saved in your dataset. diff --git a/examples/7_get_started_with_real_robot.md b/examples/7_get_started_with_real_robot.md index e57d783a..638b54d3 100644 --- a/examples/7_get_started_with_real_robot.md +++ b/examples/7_get_started_with_real_robot.md @@ -768,7 +768,7 @@ You can use the `record` function from [`lerobot/scripts/control_robot.py`](../l 1. Frames from cameras are saved on disk in threads, and encoded into videos at the end of each episode recording. 2. Video streams from cameras are displayed in window so that you can verify them. 3. Data is stored with [`LeRobotDataset`](../lerobot/common/datasets/lerobot_dataset.py) format which is pushed to your Hugging Face page (unless `--control.push_to_hub=false` is provided). -4. Checkpoints are done during recording, so if any issue occurs, you can resume recording by re-running the same command again with `--control.resume=true`. You might need to add `--control.local_files_only=true` if your dataset was not uploaded to hugging face hub. Also you will need to manually delete the dataset directory to start recording from scratch. +4. Checkpoints are done during recording, so if any issue occurs, you can resume recording by re-running the same command again with `--control.resume=true`. You will need to manually delete the dataset directory if you want to start recording from scratch. 5. Set the flow of data recording using command line arguments: - `--control.warmup_time_s=10` defines the number of seconds before starting data collection. It allows the robot devices to warmup and synchronize (10 seconds by default). - `--control.episode_time_s=60` defines the number of seconds for data recording for each episode (60 seconds by default). @@ -883,8 +883,6 @@ python lerobot/scripts/control_robot.py \ --control.episode=0 ``` -Note: You might need to add `--control.local_files_only=true` if your dataset was not uploaded to hugging face hub. - Your robot should replicate movements similar to those you recorded. For example, check out [this video](https://x.com/RemiCadene/status/1793654950905680090) where we use `replay` on a Aloha robot from [Trossen Robotics](https://www.trossenrobotics.com). ## 4. Train a policy on your data @@ -902,8 +900,6 @@ python lerobot/scripts/train.py \ --wandb.enable=true ``` -Note: You might need to add `--dataset.local_files_only=true` if your dataset was not uploaded to hugging face hub. - Let's explain it: 1. We provided the dataset as argument with `--dataset.repo_id=${HF_USER}/koch_test`. 2. We provided the policy with `policy.type=act`. This loads configurations from [`configuration_act.py`](../lerobot/common/policies/act/configuration_act.py). Importantly, this policy will automatically adapt to the number of motor sates, motor actions and cameras of your robot (e.g. `laptop` and `phone`) which have been saved in your dataset. diff --git a/examples/port_datasets/pusht_zarr.py b/examples/port_datasets/pusht_zarr.py index 1506f427..eac6f63d 100644 --- a/examples/port_datasets/pusht_zarr.py +++ b/examples/port_datasets/pusht_zarr.py @@ -2,9 +2,10 @@ import shutil from pathlib import Path import numpy as np -import torch +from huggingface_hub import HfApi -from lerobot.common.datasets.lerobot_dataset import LEROBOT_HOME, LeRobotDataset +from lerobot.common.constants import HF_LEROBOT_HOME +from lerobot.common.datasets.lerobot_dataset import CODEBASE_VERSION, LeRobotDataset from lerobot.common.datasets.push_dataset_to_hub._download_raw import download_raw PUSHT_TASK = "Push the T-shaped blue block onto the T-shaped green target surface." @@ -89,9 +90,9 @@ def calculate_coverage(zarr_data): num_frames = len(block_pos) - coverage = np.zeros((num_frames,)) + coverage = np.zeros((num_frames,), dtype=np.float32) # 8 keypoints with 2 coords each - keypoints = np.zeros((num_frames, 16)) + keypoints = np.zeros((num_frames, 16), dtype=np.float32) # Set x, y, theta (in radians) goal_pos_angle = np.array([256, 256, np.pi / 4]) @@ -117,7 +118,7 @@ def calculate_coverage(zarr_data): intersection_area = goal_geom.intersection(block_geom).area goal_area = goal_geom.area coverage[i] = intersection_area / goal_area - keypoints[i] = torch.from_numpy(PushTEnv.get_keypoints(block_shapes).flatten()) + keypoints[i] = PushTEnv.get_keypoints(block_shapes).flatten() return coverage, keypoints @@ -134,8 +135,8 @@ def main(raw_dir: Path, repo_id: str, mode: str = "video", push_to_hub: bool = T if mode not in ["video", "image", "keypoints"]: raise ValueError(mode) - if (LEROBOT_HOME / repo_id).exists(): - shutil.rmtree(LEROBOT_HOME / repo_id) + if (HF_LEROBOT_HOME / repo_id).exists(): + shutil.rmtree(HF_LEROBOT_HOME / repo_id) if not raw_dir.exists(): download_raw(raw_dir, repo_id="lerobot-raw/pusht_raw") @@ -148,6 +149,10 @@ def main(raw_dir: Path, repo_id: str, mode: str = "video", push_to_hub: bool = T action = zarr_data["action"][:] image = zarr_data["img"] # (b, h, w, c) + if image.dtype == np.float32 and image.max() == np.float32(255): + # HACK: images are loaded as float32 but they actually encode uint8 data + image = image.astype(np.uint8) + episode_data_index = { "from": np.concatenate(([0], zarr_data.meta["episode_ends"][:-1])), "to": zarr_data.meta["episode_ends"], @@ -175,28 +180,30 @@ def main(raw_dir: Path, repo_id: str, mode: str = "video", push_to_hub: bool = T for frame_idx in range(num_frames): i = from_idx + frame_idx + idx = i + (frame_idx < num_frames - 1) frame = { - "action": torch.from_numpy(action[i]), + "action": action[i], # Shift reward and success by +1 until the last item of the episode - "next.reward": reward[i + (frame_idx < num_frames - 1)], - "next.success": success[i + (frame_idx < num_frames - 1)], + "next.reward": reward[idx : idx + 1], + "next.success": success[idx : idx + 1], + "task": PUSHT_TASK, } - frame["observation.state"] = torch.from_numpy(agent_pos[i]) + frame["observation.state"] = agent_pos[i] if mode == "keypoints": - frame["observation.environment_state"] = torch.from_numpy(keypoints[i]) + frame["observation.environment_state"] = keypoints[i] else: - frame["observation.image"] = torch.from_numpy(image[i]) + frame["observation.image"] = image[i] dataset.add_frame(frame) - dataset.save_episode(task=PUSHT_TASK) - - dataset.consolidate() + dataset.save_episode() if push_to_hub: dataset.push_to_hub() + hub_api = HfApi() + hub_api.create_tag(repo_id, tag=CODEBASE_VERSION, repo_type="dataset") if __name__ == "__main__": @@ -218,5 +225,5 @@ if __name__ == "__main__": main(raw_dir, repo_id=repo_id, mode=mode) # Uncomment if you want to load the local dataset and explore it - # dataset = LeRobotDataset(repo_id=repo_id, local_files_only=True) + # dataset = LeRobotDataset(repo_id=repo_id) # breakpoint() diff --git a/lerobot/common/constants.py b/lerobot/common/constants.py index 34da4ac0..d0c9845a 100644 --- a/lerobot/common/constants.py +++ b/lerobot/common/constants.py @@ -1,4 +1,9 @@ # keys +import os +from pathlib import Path + +from huggingface_hub.constants import HF_HOME + OBS_ENV = "observation.environment_state" OBS_ROBOT = "observation.state" OBS_IMAGE = "observation.image" @@ -15,3 +20,13 @@ TRAINING_STEP = "training_step.json" OPTIMIZER_STATE = "optimizer_state.safetensors" OPTIMIZER_PARAM_GROUPS = "optimizer_param_groups.json" SCHEDULER_STATE = "scheduler_state.json" + +# cache dir +default_cache_path = Path(HF_HOME) / "lerobot" +HF_LEROBOT_HOME = Path(os.getenv("HF_LEROBOT_HOME", default_cache_path)).expanduser() + +if "LEROBOT_HOME" in os.environ: + raise ValueError( + f"You have a 'LEROBOT_HOME' environment variable set to '{os.getenv('LEROBOT_HOME')}'.\n" + "'LEROBOT_HOME' is deprecated, please use 'HF_LEROBOT_HOME' instead." + ) diff --git a/lerobot/common/datasets/backward_compatibility.py b/lerobot/common/datasets/backward_compatibility.py new file mode 100644 index 00000000..d1b8926a --- /dev/null +++ b/lerobot/common/datasets/backward_compatibility.py @@ -0,0 +1,54 @@ +import packaging.version + +V2_MESSAGE = """ +The dataset you requested ({repo_id}) is in {version} format. + +We introduced a new format since v2.0 which is not backward compatible with v1.x. +Please, use our conversion script. Modify the following command with your own task description: +``` +python lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py \\ + --repo-id {repo_id} \\ + --single-task "TASK DESCRIPTION." # <---- /!\\ Replace TASK DESCRIPTION /!\\ +``` + +A few examples to replace TASK DESCRIPTION: "Pick up the blue cube and place it into the bin.", "Insert the +peg into the socket.", "Slide open the ziploc bag.", "Take the elevator to the 1st floor.", "Open the top +cabinet, store the pot inside it then close the cabinet.", "Push the T-shaped block onto the T-shaped +target.", "Grab the spray paint on the shelf and place it in the bin on top of the robot dog.", "Fold the +sweatshirt.", ... + +If you encounter a problem, contact LeRobot maintainers on [Discord](https://discord.com/invite/s3KuuzsPFb) +or open an [issue on GitHub](https://github.com/huggingface/lerobot/issues/new/choose). +""" + +V21_MESSAGE = """ +The dataset you requested ({repo_id}) is in {version} format. +While current version of LeRobot is backward-compatible with it, the version of your dataset still uses global +stats instead of per-episode stats. Update your dataset stats to the new format using this command: +``` +python lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py --repo-id={repo_id} +``` + +If you encounter a problem, contact LeRobot maintainers on [Discord](https://discord.com/invite/s3KuuzsPFb) +or open an [issue on GitHub](https://github.com/huggingface/lerobot/issues/new/choose). +""" + +FUTURE_MESSAGE = """ +The dataset you requested ({repo_id}) is only available in {version} format. +As we cannot ensure forward compatibility with it, please update your current version of lerobot. +""" + + +class CompatibilityError(Exception): ... + + +class BackwardCompatibilityError(CompatibilityError): + def __init__(self, repo_id: str, version: packaging.version.Version): + message = V2_MESSAGE.format(repo_id=repo_id, version=version) + super().__init__(message) + + +class ForwardCompatibilityError(CompatibilityError): + def __init__(self, repo_id: str, version: packaging.version.Version): + message = FUTURE_MESSAGE.format(repo_id=repo_id, version=version) + super().__init__(message) diff --git a/lerobot/common/datasets/compute_stats.py b/lerobot/common/datasets/compute_stats.py index c6211699..a029f892 100644 --- a/lerobot/common/datasets/compute_stats.py +++ b/lerobot/common/datasets/compute_stats.py @@ -13,202 +13,164 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from copy import deepcopy -from math import ceil +import numpy as np -import einops -import torch -import tqdm +from lerobot.common.datasets.utils import load_image_as_numpy -def get_stats_einops_patterns(dataset, num_workers=0): - """These einops patterns will be used to aggregate batches and compute statistics. +def estimate_num_samples( + dataset_len: int, min_num_samples: int = 100, max_num_samples: int = 10_000, power: float = 0.75 +) -> int: + """Heuristic to estimate the number of samples based on dataset size. + The power controls the sample growth relative to dataset size. + Lower the power for less number of samples. - Note: We assume the images are in channel first format + For default arguments, we have: + - from 1 to ~500, num_samples=100 + - at 1000, num_samples=177 + - at 2000, num_samples=299 + - at 5000, num_samples=594 + - at 10000, num_samples=1000 + - at 20000, num_samples=1681 """ + if dataset_len < min_num_samples: + min_num_samples = dataset_len + return max(min_num_samples, min(int(dataset_len**power), max_num_samples)) - dataloader = torch.utils.data.DataLoader( - dataset, - num_workers=num_workers, - batch_size=2, - shuffle=False, - ) - batch = next(iter(dataloader)) - stats_patterns = {} +def sample_indices(data_len: int) -> list[int]: + num_samples = estimate_num_samples(data_len) + return np.round(np.linspace(0, data_len - 1, num_samples)).astype(int).tolist() - for key in dataset.features: - # sanity check that tensors are not float64 - assert batch[key].dtype != torch.float64 - # if isinstance(feats_type, (VideoFrame, Image)): - if key in dataset.meta.camera_keys: - # sanity check that images are channel first - _, c, h, w = batch[key].shape - assert c < h and c < w, f"expect channel first images, but instead {batch[key].shape}" +def auto_downsample_height_width(img: np.ndarray, target_size: int = 150, max_size_threshold: int = 300): + _, height, width = img.shape - # sanity check that images are float32 in range [0,1] - assert batch[key].dtype == torch.float32, f"expect torch.float32, but instead {batch[key].dtype=}" - assert batch[key].max() <= 1, f"expect pixels lower than 1, but instead {batch[key].max()=}" - assert batch[key].min() >= 0, f"expect pixels greater than 1, but instead {batch[key].min()=}" + if max(width, height) < max_size_threshold: + # no downsampling needed + return img - stats_patterns[key] = "b c h w -> c 1 1" - elif batch[key].ndim == 2: - stats_patterns[key] = "b c -> c " - elif batch[key].ndim == 1: - stats_patterns[key] = "b -> 1" + downsample_factor = int(width / target_size) if width > height else int(height / target_size) + return img[:, ::downsample_factor, ::downsample_factor] + + +def sample_images(image_paths: list[str]) -> np.ndarray: + sampled_indices = sample_indices(len(image_paths)) + + images = None + for i, idx in enumerate(sampled_indices): + path = image_paths[idx] + # we load as uint8 to reduce memory usage + img = load_image_as_numpy(path, dtype=np.uint8, channel_first=True) + img = auto_downsample_height_width(img) + + if images is None: + images = np.empty((len(sampled_indices), *img.shape), dtype=np.uint8) + + images[i] = img + + return images + + +def get_feature_stats(array: np.ndarray, axis: tuple, keepdims: bool) -> dict[str, np.ndarray]: + return { + "min": np.min(array, axis=axis, keepdims=keepdims), + "max": np.max(array, axis=axis, keepdims=keepdims), + "mean": np.mean(array, axis=axis, keepdims=keepdims), + "std": np.std(array, axis=axis, keepdims=keepdims), + "count": np.array([len(array)]), + } + + +def compute_episode_stats(episode_data: dict[str, list[str] | np.ndarray], features: dict) -> dict: + ep_stats = {} + for key, data in episode_data.items(): + if features[key]["dtype"] == "string": + continue # HACK: we should receive np.arrays of strings + elif features[key]["dtype"] in ["image", "video"]: + ep_ft_array = sample_images(data) # data is a list of image paths + axes_to_reduce = (0, 2, 3) # keep channel dim + keepdims = True else: - raise ValueError(f"{key}, {batch[key].shape}") + ep_ft_array = data # data is alreay a np.ndarray + axes_to_reduce = 0 # compute stats over the first axis + keepdims = data.ndim == 1 # keep as np.array - return stats_patterns + ep_stats[key] = get_feature_stats(ep_ft_array, axis=axes_to_reduce, keepdims=keepdims) + + # finally, we normalize and remove batch dim for images + if features[key]["dtype"] in ["image", "video"]: + ep_stats[key] = { + k: v if k == "count" else np.squeeze(v / 255.0, axis=0) for k, v in ep_stats[key].items() + } + + return ep_stats -def compute_stats(dataset, batch_size=8, num_workers=8, max_num_samples=None): - """Compute mean/std and min/max statistics of all data keys in a LeRobotDataset.""" - if max_num_samples is None: - max_num_samples = len(dataset) - - # for more info on why we need to set the same number of workers, see `load_from_videos` - stats_patterns = get_stats_einops_patterns(dataset, num_workers) - - # mean and std will be computed incrementally while max and min will track the running value. - mean, std, max, min = {}, {}, {}, {} - for key in stats_patterns: - mean[key] = torch.tensor(0.0).float() - std[key] = torch.tensor(0.0).float() - max[key] = torch.tensor(-float("inf")).float() - min[key] = torch.tensor(float("inf")).float() - - def create_seeded_dataloader(dataset, batch_size, seed): - generator = torch.Generator() - generator.manual_seed(seed) - dataloader = torch.utils.data.DataLoader( - dataset, - num_workers=num_workers, - batch_size=batch_size, - shuffle=True, - drop_last=False, - generator=generator, - ) - return dataloader - - # Note: Due to be refactored soon. The point of storing `first_batch` is to make sure we don't get - # surprises when rerunning the sampler. - first_batch = None - running_item_count = 0 # for online mean computation - dataloader = create_seeded_dataloader(dataset, batch_size, seed=1337) - for i, batch in enumerate( - tqdm.tqdm(dataloader, total=ceil(max_num_samples / batch_size), desc="Compute mean, min, max") - ): - this_batch_size = len(batch["index"]) - running_item_count += this_batch_size - if first_batch is None: - first_batch = deepcopy(batch) - for key, pattern in stats_patterns.items(): - batch[key] = batch[key].float() - # Numerically stable update step for mean computation. - batch_mean = einops.reduce(batch[key], pattern, "mean") - # Hint: to update the mean we need x̄ₙ = (Nₙ₋₁x̄ₙ₋₁ + Bₙxₙ) / Nₙ, where the subscript represents - # the update step, N is the running item count, B is this batch size, x̄ is the running mean, - # and x is the current batch mean. Some rearrangement is then required to avoid risking - # numerical overflow. Another hint: Nₙ₋₁ = Nₙ - Bₙ. Rearrangement yields - # x̄ₙ = x̄ₙ₋₁ + Bₙ * (xₙ - x̄ₙ₋₁) / Nₙ - mean[key] = mean[key] + this_batch_size * (batch_mean - mean[key]) / running_item_count - max[key] = torch.maximum(max[key], einops.reduce(batch[key], pattern, "max")) - min[key] = torch.minimum(min[key], einops.reduce(batch[key], pattern, "min")) - - if i == ceil(max_num_samples / batch_size) - 1: - break - - first_batch_ = None - running_item_count = 0 # for online std computation - dataloader = create_seeded_dataloader(dataset, batch_size, seed=1337) - for i, batch in enumerate( - tqdm.tqdm(dataloader, total=ceil(max_num_samples / batch_size), desc="Compute std") - ): - this_batch_size = len(batch["index"]) - running_item_count += this_batch_size - # Sanity check to make sure the batches are still in the same order as before. - if first_batch_ is None: - first_batch_ = deepcopy(batch) - for key in stats_patterns: - assert torch.equal(first_batch_[key], first_batch[key]) - for key, pattern in stats_patterns.items(): - batch[key] = batch[key].float() - # Numerically stable update step for mean computation (where the mean is over squared - # residuals).See notes in the mean computation loop above. - batch_std = einops.reduce((batch[key] - mean[key]) ** 2, pattern, "mean") - std[key] = std[key] + this_batch_size * (batch_std - std[key]) / running_item_count - - if i == ceil(max_num_samples / batch_size) - 1: - break - - for key in stats_patterns: - std[key] = torch.sqrt(std[key]) - - stats = {} - for key in stats_patterns: - stats[key] = { - "mean": mean[key], - "std": std[key], - "max": max[key], - "min": min[key], - } - return stats +def _assert_type_and_shape(stats_list: list[dict[str, dict]]): + for i in range(len(stats_list)): + for fkey in stats_list[i]: + for k, v in stats_list[i][fkey].items(): + if not isinstance(v, np.ndarray): + raise ValueError( + f"Stats must be composed of numpy array, but key '{k}' of feature '{fkey}' is of type '{type(v)}' instead." + ) + if v.ndim == 0: + raise ValueError("Number of dimensions must be at least 1, and is 0 instead.") + if k == "count" and v.shape != (1,): + raise ValueError(f"Shape of 'count' must be (1), but is {v.shape} instead.") + if "image" in fkey and k != "count" and v.shape != (3, 1, 1): + raise ValueError(f"Shape of '{k}' must be (3,1,1), but is {v.shape} instead.") -def aggregate_stats(ls_datasets) -> dict[str, torch.Tensor]: - """Aggregate stats of multiple LeRobot datasets into one set of stats without recomputing from scratch. +def aggregate_feature_stats(stats_ft_list: list[dict[str, dict]]) -> dict[str, dict[str, np.ndarray]]: + """Aggregates stats for a single feature.""" + means = np.stack([s["mean"] for s in stats_ft_list]) + variances = np.stack([s["std"] ** 2 for s in stats_ft_list]) + counts = np.stack([s["count"] for s in stats_ft_list]) + total_count = counts.sum(axis=0) - The final stats will have the union of all data keys from each of the datasets. + # Prepare weighted mean by matching number of dimensions + while counts.ndim < means.ndim: + counts = np.expand_dims(counts, axis=-1) - The final stats will have the union of all data keys from each of the datasets. For instance: - - new_max = max(max_dataset_0, max_dataset_1, ...) + # Compute the weighted mean + weighted_means = means * counts + total_mean = weighted_means.sum(axis=0) / total_count + + # Compute the variance using the parallel algorithm + delta_means = means - total_mean + weighted_variances = (variances + delta_means**2) * counts + total_variance = weighted_variances.sum(axis=0) / total_count + + return { + "min": np.min(np.stack([s["min"] for s in stats_ft_list]), axis=0), + "max": np.max(np.stack([s["max"] for s in stats_ft_list]), axis=0), + "mean": total_mean, + "std": np.sqrt(total_variance), + "count": total_count, + } + + +def aggregate_stats(stats_list: list[dict[str, dict]]) -> dict[str, dict[str, np.ndarray]]: + """Aggregate stats from multiple compute_stats outputs into a single set of stats. + + The final stats will have the union of all data keys from each of the stats dicts. + + For instance: - new_min = min(min_dataset_0, min_dataset_1, ...) - - new_mean = (mean of all data) + - new_max = max(max_dataset_0, max_dataset_1, ...) + - new_mean = (mean of all data, weighted by counts) - new_std = (std of all data) """ - data_keys = set() - for dataset in ls_datasets: - data_keys.update(dataset.meta.stats.keys()) - stats = {k: {} for k in data_keys} - for data_key in data_keys: - for stat_key in ["min", "max"]: - # compute `max(dataset_0["max"], dataset_1["max"], ...)` - stats[data_key][stat_key] = einops.reduce( - torch.stack( - [ds.meta.stats[data_key][stat_key] for ds in ls_datasets if data_key in ds.meta.stats], - dim=0, - ), - "n ... -> ...", - stat_key, - ) - total_samples = sum(d.num_frames for d in ls_datasets if data_key in d.meta.stats) - # Compute the "sum" statistic by multiplying each mean by the number of samples in the respective - # dataset, then divide by total_samples to get the overall "mean". - # NOTE: the brackets around (d.num_frames / total_samples) are needed tor minimize the risk of - # numerical overflow! - stats[data_key]["mean"] = sum( - d.meta.stats[data_key]["mean"] * (d.num_frames / total_samples) - for d in ls_datasets - if data_key in d.meta.stats - ) - # The derivation for standard deviation is a little more involved but is much in the same spirit as - # the computation of the mean. - # Given two sets of data where the statistics are known: - # σ_combined = sqrt[ (n1 * (σ1^2 + d1^2) + n2 * (σ2^2 + d2^2)) / (n1 + n2) ] - # where d1 = μ1 - μ_combined, d2 = μ2 - μ_combined - # NOTE: the brackets around (d.num_frames / total_samples) are needed tor minimize the risk of - # numerical overflow! - stats[data_key]["std"] = torch.sqrt( - sum( - ( - d.meta.stats[data_key]["std"] ** 2 - + (d.meta.stats[data_key]["mean"] - stats[data_key]["mean"]) ** 2 - ) - * (d.num_frames / total_samples) - for d in ls_datasets - if data_key in d.meta.stats - ) - ) - return stats + + _assert_type_and_shape(stats_list) + + data_keys = {key for stats in stats_list for key in stats} + aggregated_stats = {key: {} for key in data_keys} + + for key in data_keys: + stats_with_key = [stats[key] for stats in stats_list if key in stats] + aggregated_stats[key] = aggregate_feature_stats(stats_with_key) + + return aggregated_stats diff --git a/lerobot/common/datasets/factory.py b/lerobot/common/datasets/factory.py index 95ba76b8..fb1fe6d6 100644 --- a/lerobot/common/datasets/factory.py +++ b/lerobot/common/datasets/factory.py @@ -83,15 +83,15 @@ def make_dataset(cfg: TrainPipelineConfig) -> LeRobotDataset | MultiLeRobotDatas ) if isinstance(cfg.dataset.repo_id, str): - ds_meta = LeRobotDatasetMetadata(cfg.dataset.repo_id, local_files_only=cfg.dataset.local_files_only) + ds_meta = LeRobotDatasetMetadata(cfg.dataset.repo_id, revision=cfg.dataset.revision) delta_timestamps = resolve_delta_timestamps(cfg.policy, ds_meta) dataset = LeRobotDataset( cfg.dataset.repo_id, episodes=cfg.dataset.episodes, delta_timestamps=delta_timestamps, image_transforms=image_transforms, + revision=cfg.dataset.revision, video_backend=cfg.dataset.video_backend, - local_files_only=cfg.dataset.local_files_only, ) else: raise NotImplementedError("The MultiLeRobotDataset isn't supported for now.") diff --git a/lerobot/common/datasets/image_writer.py b/lerobot/common/datasets/image_writer.py index 85dd6830..6fc0ee2f 100644 --- a/lerobot/common/datasets/image_writer.py +++ b/lerobot/common/datasets/image_writer.py @@ -38,22 +38,40 @@ def safe_stop_image_writer(func): return wrapper -def image_array_to_image(image_array: np.ndarray) -> PIL.Image.Image: +def image_array_to_pil_image(image_array: np.ndarray, range_check: bool = True) -> PIL.Image.Image: # TODO(aliberts): handle 1 channel and 4 for depth images - if image_array.ndim == 3 and image_array.shape[0] in [1, 3]: + if image_array.ndim != 3: + raise ValueError(f"The array has {image_array.ndim} dimensions, but 3 is expected for an image.") + + if image_array.shape[0] == 3: # Transpose from pytorch convention (C, H, W) to (H, W, C) image_array = image_array.transpose(1, 2, 0) + + elif image_array.shape[-1] != 3: + raise NotImplementedError( + f"The image has {image_array.shape[-1]} channels, but 3 is required for now." + ) + if image_array.dtype != np.uint8: - # Assume the image is in [0, 1] range for floating-point data - image_array = np.clip(image_array, 0, 1) + if range_check: + max_ = image_array.max().item() + min_ = image_array.min().item() + if max_ > 1.0 or min_ < 0.0: + raise ValueError( + "The image data type is float, which requires values in the range [0.0, 1.0]. " + f"However, the provided range is [{min_}, {max_}]. Please adjust the range or " + "provide a uint8 image with values in the range [0, 255]." + ) + image_array = (image_array * 255).astype(np.uint8) + return PIL.Image.fromarray(image_array) def write_image(image: np.ndarray | PIL.Image.Image, fpath: Path): try: if isinstance(image, np.ndarray): - img = image_array_to_image(image) + img = image_array_to_pil_image(image) elif isinstance(image, PIL.Image.Image): img = image else: diff --git a/lerobot/common/datasets/lerobot_dataset.py b/lerobot/common/datasets/lerobot_dataset.py index 9483bf0a..f1eb11a0 100644 --- a/lerobot/common/datasets/lerobot_dataset.py +++ b/lerobot/common/datasets/lerobot_dataset.py @@ -14,49 +14,54 @@ # See the License for the specific language governing permissions and # limitations under the License. import logging -import os import shutil -from functools import cached_property from pathlib import Path from typing import Callable import datasets import numpy as np +import packaging.version import PIL.Image import torch import torch.utils -from datasets import load_dataset -from huggingface_hub import create_repo, snapshot_download, upload_folder +from datasets import concatenate_datasets, load_dataset +from huggingface_hub import HfApi, snapshot_download +from huggingface_hub.constants import REPOCARD_NAME -from lerobot.common.datasets.compute_stats import aggregate_stats, compute_stats +from lerobot.common.constants import HF_LEROBOT_HOME +from lerobot.common.datasets.compute_stats import aggregate_stats, compute_episode_stats from lerobot.common.datasets.image_writer import AsyncImageWriter, write_image from lerobot.common.datasets.utils import ( DEFAULT_FEATURES, DEFAULT_IMAGE_PATH, - EPISODES_PATH, INFO_PATH, - STATS_PATH, TASKS_PATH, append_jsonlines, + backward_compatible_episodes_stats, check_delta_timestamps, check_timestamps_sync, check_version_compatibility, - create_branch, create_empty_dataset_info, create_lerobot_dataset_card, + embed_images, get_delta_indices, get_episode_data_index, get_features_from_robot, get_hf_features_from_features, - get_hub_safe_version, + get_safe_version, hf_transform_to_torch, + is_valid_version, load_episodes, + load_episodes_stats, load_info, load_stats, load_tasks, - serialize_dict, + validate_episode_buffer, + validate_frame, + write_episode, + write_episode_stats, + write_info, write_json, - write_parquet, ) from lerobot.common.datasets.video_utils import ( VideoFrame, @@ -66,9 +71,7 @@ from lerobot.common.datasets.video_utils import ( ) from lerobot.common.robot_devices.robots.utils import Robot -# For maintainers, see lerobot/common/datasets/push_dataset_to_hub/CODEBASE_VERSION.md -CODEBASE_VERSION = "v2.0" -LEROBOT_HOME = Path(os.getenv("LEROBOT_HOME", "~/.cache/huggingface/lerobot")).expanduser() +CODEBASE_VERSION = "v2.1" class LeRobotDatasetMetadata: @@ -76,19 +79,36 @@ class LeRobotDatasetMetadata: self, repo_id: str, root: str | Path | None = None, - local_files_only: bool = False, + revision: str | None = None, + force_cache_sync: bool = False, ): self.repo_id = repo_id - self.root = Path(root) if root is not None else LEROBOT_HOME / repo_id - self.local_files_only = local_files_only + self.revision = revision if revision else CODEBASE_VERSION + self.root = Path(root) if root is not None else HF_LEROBOT_HOME / repo_id - # Load metadata - (self.root / "meta").mkdir(exist_ok=True, parents=True) - self.pull_from_repo(allow_patterns="meta/") + try: + if force_cache_sync: + raise FileNotFoundError + self.load_metadata() + except (FileNotFoundError, NotADirectoryError): + if is_valid_version(self.revision): + self.revision = get_safe_version(self.repo_id, self.revision) + + (self.root / "meta").mkdir(exist_ok=True, parents=True) + self.pull_from_repo(allow_patterns="meta/") + self.load_metadata() + + def load_metadata(self): self.info = load_info(self.root) - self.stats = load_stats(self.root) - self.tasks = load_tasks(self.root) + check_version_compatibility(self.repo_id, self._version, CODEBASE_VERSION) + self.tasks, self.task_to_task_index = load_tasks(self.root) self.episodes = load_episodes(self.root) + if self._version < packaging.version.parse("v2.1"): + self.stats = load_stats(self.root) + self.episodes_stats = backward_compatible_episodes_stats(self.stats, self.episodes) + else: + self.episodes_stats = load_episodes_stats(self.root) + self.stats = aggregate_stats(list(self.episodes_stats.values())) def pull_from_repo( self, @@ -98,21 +118,16 @@ class LeRobotDatasetMetadata: snapshot_download( self.repo_id, repo_type="dataset", - revision=self._hub_version, + revision=self.revision, local_dir=self.root, allow_patterns=allow_patterns, ignore_patterns=ignore_patterns, - local_files_only=self.local_files_only, ) - @cached_property - def _hub_version(self) -> str | None: - return None if self.local_files_only else get_hub_safe_version(self.repo_id, CODEBASE_VERSION) - @property - def _version(self) -> str: + def _version(self) -> packaging.version.Version: """Codebase version used to create this dataset.""" - return self.info["codebase_version"] + return packaging.version.parse(self.info["codebase_version"]) def get_data_file_path(self, ep_index: int) -> Path: ep_chunk = self.get_episode_chunk(ep_index) @@ -202,54 +217,65 @@ class LeRobotDatasetMetadata: """Max number of episodes per chunk.""" return self.info["chunks_size"] - @property - def task_to_task_index(self) -> dict: - return {task: task_idx for task_idx, task in self.tasks.items()} - - def get_task_index(self, task: str) -> int: + def get_task_index(self, task: str) -> int | None: """ Given a task in natural language, returns its task_index if the task already exists in the dataset, - otherwise creates a new task_index. + otherwise return None. """ - task_index = self.task_to_task_index.get(task, None) - return task_index if task_index is not None else self.total_tasks + return self.task_to_task_index.get(task, None) - def save_episode(self, episode_index: int, episode_length: int, task: str, task_index: int) -> None: + def add_task(self, task: str): + """ + Given a task in natural language, add it to the dictionnary of tasks. + """ + if task in self.task_to_task_index: + raise ValueError(f"The task '{task}' already exists and can't be added twice.") + + task_index = self.info["total_tasks"] + self.task_to_task_index[task] = task_index + self.tasks[task_index] = task + self.info["total_tasks"] += 1 + + task_dict = { + "task_index": task_index, + "task": task, + } + append_jsonlines(task_dict, self.root / TASKS_PATH) + + def save_episode( + self, + episode_index: int, + episode_length: int, + episode_tasks: list[str], + episode_stats: dict[str, dict], + ) -> None: self.info["total_episodes"] += 1 self.info["total_frames"] += episode_length - if task_index not in self.tasks: - self.info["total_tasks"] += 1 - self.tasks[task_index] = task - task_dict = { - "task_index": task_index, - "task": task, - } - append_jsonlines(task_dict, self.root / TASKS_PATH) - chunk = self.get_episode_chunk(episode_index) if chunk >= self.total_chunks: self.info["total_chunks"] += 1 self.info["splits"] = {"train": f"0:{self.info['total_episodes']}"} self.info["total_videos"] += len(self.video_keys) - write_json(self.info, self.root / INFO_PATH) + if len(self.video_keys) > 0: + self.update_video_info() + + write_info(self.info, self.root) episode_dict = { "episode_index": episode_index, - "tasks": [task], + "tasks": episode_tasks, "length": episode_length, } - self.episodes.append(episode_dict) - append_jsonlines(episode_dict, self.root / EPISODES_PATH) + self.episodes[episode_index] = episode_dict + write_episode(episode_dict, self.root) - # TODO(aliberts): refactor stats in save_episodes - # image_sampling = int(self.fps / 2) # sample 2 img/s for the stats - # ep_stats = compute_episode_stats(episode_buffer, self.features, episode_length, image_sampling=image_sampling) - # ep_stats = serialize_dict(ep_stats) - # append_jsonlines(ep_stats, self.root / STATS_PATH) + self.episodes_stats[episode_index] = episode_stats + self.stats = aggregate_stats([self.stats, episode_stats]) if self.stats else episode_stats + write_episode_stats(episode_index, episode_stats, self.root) - def write_video_info(self) -> None: + def update_video_info(self) -> None: """ Warning: this function writes info from first episode videos, implicitly assuming that all videos have been encoded the same way. Also, this means it assumes the first episode exists. @@ -259,8 +285,6 @@ class LeRobotDatasetMetadata: video_path = self.root / self.get_video_file_path(ep_index=0, vid_key=key) self.info["features"][key]["info"] = get_video_info(video_path) - write_json(self.info, self.root / INFO_PATH) - def __repr__(self): feature_keys = list(self.features) return ( @@ -286,7 +310,7 @@ class LeRobotDatasetMetadata: """Creates metadata for a LeRobotDataset.""" obj = cls.__new__(cls) obj.repo_id = repo_id - obj.root = Path(root) if root is not None else LEROBOT_HOME / repo_id + obj.root = Path(root) if root is not None else HF_LEROBOT_HOME / repo_id obj.root.mkdir(parents=True, exist_ok=False) @@ -304,6 +328,7 @@ class LeRobotDatasetMetadata: ) else: # TODO(aliberts, rcadene): implement sanity check for features + features = {**features, **DEFAULT_FEATURES} # check if none of the features contains a "/" in their names, # as this would break the dict flattening in the stats computation, which uses '/' as separator @@ -313,12 +338,13 @@ class LeRobotDatasetMetadata: features = {**features, **DEFAULT_FEATURES} - obj.tasks, obj.stats, obj.episodes = {}, {}, [] + obj.tasks, obj.task_to_task_index = {}, {} + obj.episodes_stats, obj.stats, obj.episodes = {}, {}, {} obj.info = create_empty_dataset_info(CODEBASE_VERSION, fps, robot_type, features, use_videos) if len(obj.video_keys) > 0 and not use_videos: raise ValueError() write_json(obj.info, obj.root / INFO_PATH) - obj.local_files_only = True + obj.revision = None return obj @@ -331,8 +357,9 @@ class LeRobotDataset(torch.utils.data.Dataset): image_transforms: Callable | None = None, delta_timestamps: dict[list[float]] | None = None, tolerance_s: float = 1e-4, + revision: str | None = None, + force_cache_sync: bool = False, download_videos: bool = True, - local_files_only: bool = False, video_backend: str | None = None, ): """ @@ -342,7 +369,7 @@ class LeRobotDataset(torch.utils.data.Dataset): - On your local disk in the 'root' folder. This is typically the case when you recorded your dataset locally and you may or may not have pushed it to the hub yet. Instantiating this class with 'root' will load your dataset directly from disk. This can happen while you're offline (no - internet connection), in that case, use local_files_only=True. + internet connection). - On the Hugging Face Hub at the address https://huggingface.co/datasets/{repo_id} and not on your local disk in the 'root' folder. Instantiating this class with this 'repo_id' will download @@ -424,24 +451,28 @@ class LeRobotDataset(torch.utils.data.Dataset): timestamps is separated to the next by 1/fps +/- tolerance_s. This also applies to frames decoded from video files. It is also used to check that `delta_timestamps` (when provided) are multiples of 1/fps. Defaults to 1e-4. + revision (str, optional): An optional Git revision id which can be a branch name, a tag, or a + commit hash. Defaults to current codebase version tag. + sync_cache_first (bool, optional): Flag to sync and refresh local files first. If True and files + are already present in the local cache, this will be faster. However, files loaded might not + be in sync with the version on the hub, especially if you specified 'revision'. Defaults to + False. download_videos (bool, optional): Flag to download the videos. Note that when set to True but the video files are already present on local disk, they won't be downloaded again. Defaults to True. - local_files_only (bool, optional): Flag to use local files only. If True, no requests to the hub - will be made. Defaults to False. video_backend (str | None, optional): Video backend to use for decoding videos. There is currently a single option which is the pyav decoder used by Torchvision. Defaults to pyav. """ super().__init__() self.repo_id = repo_id - self.root = Path(root) if root else LEROBOT_HOME / repo_id + self.root = Path(root) if root else HF_LEROBOT_HOME / repo_id self.image_transforms = image_transforms self.delta_timestamps = delta_timestamps self.episodes = episodes self.tolerance_s = tolerance_s + self.revision = revision if revision else CODEBASE_VERSION self.video_backend = video_backend if video_backend else "pyav" self.delta_indices = None - self.local_files_only = local_files_only # Unused attributes self.image_writer = None @@ -450,64 +481,86 @@ class LeRobotDataset(torch.utils.data.Dataset): self.root.mkdir(exist_ok=True, parents=True) # Load metadata - self.meta = LeRobotDatasetMetadata(self.repo_id, self.root, self.local_files_only) - - # Check version - check_version_compatibility(self.repo_id, self.meta._version, CODEBASE_VERSION) + self.meta = LeRobotDatasetMetadata( + self.repo_id, self.root, self.revision, force_cache_sync=force_cache_sync + ) + if self.episodes is not None and self.meta._version >= packaging.version.parse("v2.1"): + episodes_stats = [self.meta.episodes_stats[ep_idx] for ep_idx in self.episodes] + self.stats = aggregate_stats(episodes_stats) # Load actual data - self.download_episodes(download_videos) - self.hf_dataset = self.load_hf_dataset() + try: + if force_cache_sync: + raise FileNotFoundError + assert all((self.root / fpath).is_file() for fpath in self.get_episodes_file_paths()) + self.hf_dataset = self.load_hf_dataset() + except (AssertionError, FileNotFoundError, NotADirectoryError): + self.revision = get_safe_version(self.repo_id, self.revision) + self.download_episodes(download_videos) + self.hf_dataset = self.load_hf_dataset() + self.episode_data_index = get_episode_data_index(self.meta.episodes, self.episodes) # Check timestamps - check_timestamps_sync(self.hf_dataset, self.episode_data_index, self.fps, self.tolerance_s) + timestamps = torch.stack(self.hf_dataset["timestamp"]).numpy() + episode_indices = torch.stack(self.hf_dataset["episode_index"]).numpy() + ep_data_index_np = {k: t.numpy() for k, t in self.episode_data_index.items()} + check_timestamps_sync(timestamps, episode_indices, ep_data_index_np, self.fps, self.tolerance_s) # Setup delta_indices if self.delta_timestamps is not None: check_delta_timestamps(self.delta_timestamps, self.fps, self.tolerance_s) self.delta_indices = get_delta_indices(self.delta_timestamps, self.fps) - # Available stats implies all videos have been encoded and dataset is iterable - self.consolidated = self.meta.stats is not None - def push_to_hub( self, + branch: str | None = None, tags: list | None = None, license: str | None = "apache-2.0", push_videos: bool = True, private: bool = False, + allow_patterns: list[str] | str | None = None, + upload_large_folder: bool = False, **card_kwargs, ) -> None: - if not self.consolidated: - logging.warning( - "You are trying to upload to the hub a LeRobotDataset that has not been consolidated yet. " - "Consolidating first." - ) - self.consolidate() - ignore_patterns = ["images/"] if not push_videos: ignore_patterns.append("videos/") - create_repo( + hub_api = HfApi() + hub_api.create_repo( repo_id=self.repo_id, private=private, repo_type="dataset", exist_ok=True, ) + if branch: + hub_api.create_branch( + repo_id=self.repo_id, + branch=branch, + revision=self.revision, + repo_type="dataset", + exist_ok=True, + ) - upload_folder( - repo_id=self.repo_id, - folder_path=self.root, - repo_type="dataset", - ignore_patterns=ignore_patterns, - ) - card = create_lerobot_dataset_card( - tags=tags, dataset_info=self.meta.info, license=license, **card_kwargs - ) - card.push_to_hub(repo_id=self.repo_id, repo_type="dataset") - create_branch(repo_id=self.repo_id, branch=CODEBASE_VERSION, repo_type="dataset") + upload_kwargs = { + "repo_id": self.repo_id, + "folder_path": self.root, + "repo_type": "dataset", + "revision": branch, + "allow_patterns": allow_patterns, + "ignore_patterns": ignore_patterns, + } + if upload_large_folder: + hub_api.upload_large_folder(**upload_kwargs) + else: + hub_api.upload_folder(**upload_kwargs) + + if not hub_api.file_exists(self.repo_id, REPOCARD_NAME, repo_type="dataset", revision=branch): + card = create_lerobot_dataset_card( + tags=tags, dataset_info=self.meta.info, license=license, **card_kwargs + ) + card.push_to_hub(repo_id=self.repo_id, repo_type="dataset", revision=branch) def pull_from_repo( self, @@ -517,11 +570,10 @@ class LeRobotDataset(torch.utils.data.Dataset): snapshot_download( self.repo_id, repo_type="dataset", - revision=self.meta._hub_version, + revision=self.revision, local_dir=self.root, allow_patterns=allow_patterns, ignore_patterns=ignore_patterns, - local_files_only=self.local_files_only, ) def download_episodes(self, download_videos: bool = True) -> None: @@ -535,17 +587,23 @@ class LeRobotDataset(torch.utils.data.Dataset): files = None ignore_patterns = None if download_videos else "videos/" if self.episodes is not None: - files = [str(self.meta.get_data_file_path(ep_idx)) for ep_idx in self.episodes] - if len(self.meta.video_keys) > 0 and download_videos: - video_files = [ - str(self.meta.get_video_file_path(ep_idx, vid_key)) - for vid_key in self.meta.video_keys - for ep_idx in self.episodes - ] - files += video_files + files = self.get_episodes_file_paths() self.pull_from_repo(allow_patterns=files, ignore_patterns=ignore_patterns) + def get_episodes_file_paths(self) -> list[Path]: + episodes = self.episodes if self.episodes is not None else list(range(self.meta.total_episodes)) + fpaths = [str(self.meta.get_data_file_path(ep_idx)) for ep_idx in episodes] + if len(self.meta.video_keys) > 0: + video_files = [ + str(self.meta.get_video_file_path(ep_idx, vid_key)) + for vid_key in self.meta.video_keys + for ep_idx in episodes + ] + fpaths += video_files + + return fpaths + def load_hf_dataset(self) -> datasets.Dataset: """hf_dataset contains all the observations, states, actions, rewards, etc.""" if self.episodes is None: @@ -557,7 +615,15 @@ class LeRobotDataset(torch.utils.data.Dataset): # TODO(aliberts): hf_dataset.set_format("torch") hf_dataset.set_transform(hf_transform_to_torch) + return hf_dataset + def create_hf_dataset(self) -> datasets.Dataset: + features = get_hf_features_from_features(self.features) + ft_dict = {col: [] for col in features} + hf_dataset = datasets.Dataset.from_dict(ft_dict, features=features, split="train") + + # TODO(aliberts): hf_dataset.set_format("torch") + hf_dataset.set_transform(hf_transform_to_torch) return hf_dataset @property @@ -624,7 +690,7 @@ class LeRobotDataset(torch.utils.data.Dataset): if key not in self.meta.video_keys } - def _query_videos(self, query_timestamps: dict[str, list[float]], ep_idx: int) -> dict: + def _query_videos(self, query_timestamps: dict[str, list[float]], ep_idx: int) -> dict[str, torch.Tensor]: """Note: When using data workers (e.g. DataLoader with num_workers>0), do not call this function in the main process (e.g. by using a second Dataloader with num_workers=0). It will result in a Segmentation Fault. This probably happens because a memory reference to the video loader is created in @@ -654,8 +720,7 @@ class LeRobotDataset(torch.utils.data.Dataset): query_indices = None if self.delta_indices is not None: - current_ep_idx = self.episodes.index(ep_idx) if self.episodes is not None else ep_idx - query_indices, padding = self._get_query_indices(idx, current_ep_idx) + query_indices, padding = self._get_query_indices(idx, ep_idx) query_result = self._query_hf_dataset(query_indices) item = {**item, **padding} for key, val in query_result.items(): @@ -691,10 +756,13 @@ class LeRobotDataset(torch.utils.data.Dataset): def create_episode_buffer(self, episode_index: int | None = None) -> dict: current_ep_idx = self.meta.total_episodes if episode_index is None else episode_index - return { - "size": 0, - **{key: current_ep_idx if key == "episode_index" else [] for key in self.features}, - } + ep_buffer = {} + # size and task are special cases that are not in self.features + ep_buffer["size"] = 0 + ep_buffer["task"] = [] + for key in self.features: + ep_buffer[key] = current_ep_idx if key == "episode_index" else [] + return ep_buffer def _get_image_file_path(self, episode_index: int, image_key: str, frame_index: int) -> Path: fpath = DEFAULT_IMAGE_PATH.format( @@ -716,25 +784,35 @@ class LeRobotDataset(torch.utils.data.Dataset): temporary directory — nothing is written to disk. To save those frames, the 'save_episode()' method then needs to be called. """ - # TODO(aliberts, rcadene): Add sanity check for the input, check it's numpy or torch, - # check the dtype and shape matches, etc. + # Convert torch to numpy if needed + for name in frame: + if isinstance(frame[name], torch.Tensor): + frame[name] = frame[name].numpy() + + validate_frame(frame, self.features) if self.episode_buffer is None: self.episode_buffer = self.create_episode_buffer() + # Automatically add frame_index and timestamp to episode buffer frame_index = self.episode_buffer["size"] timestamp = frame.pop("timestamp") if "timestamp" in frame else frame_index / self.fps self.episode_buffer["frame_index"].append(frame_index) self.episode_buffer["timestamp"].append(timestamp) + # Add frame features to episode_buffer for key in frame: - if key not in self.features: - raise ValueError(key) + if key == "task": + # Note: we associate the task in natural language to its task index during `save_episode` + self.episode_buffer["task"].append(frame["task"]) + continue - if self.features[key]["dtype"] not in ["image", "video"]: - item = frame[key].numpy() if isinstance(frame[key], torch.Tensor) else frame[key] - self.episode_buffer[key].append(item) - elif self.features[key]["dtype"] in ["image", "video"]: + if key not in self.features: + raise ValueError( + f"An element of the frame is not in the features. '{key}' not in '{self.features.keys()}'." + ) + + if self.features[key]["dtype"] in ["image", "video"]: img_path = self._get_image_file_path( episode_index=self.episode_buffer["episode_index"], image_key=key, frame_index=frame_index ) @@ -742,80 +820,95 @@ class LeRobotDataset(torch.utils.data.Dataset): img_path.parent.mkdir(parents=True, exist_ok=True) self._save_image(frame[key], img_path) self.episode_buffer[key].append(str(img_path)) + else: + self.episode_buffer[key].append(frame[key]) self.episode_buffer["size"] += 1 - def save_episode(self, task: str, encode_videos: bool = True, episode_data: dict | None = None) -> None: + def save_episode(self, episode_data: dict | None = None) -> None: """ - This will save to disk the current episode in self.episode_buffer. Note that since it affects files on - disk, it sets self.consolidated to False to ensure proper consolidation later on before uploading to - the hub. + This will save to disk the current episode in self.episode_buffer. - Use 'encode_videos' if you want to encode videos during the saving of this episode. Otherwise, - you can do it later with dataset.consolidate(). This is to give more flexibility on when to spend - time for video encoding. + Args: + episode_data (dict | None, optional): Dict containing the episode data to save. If None, this will + save the current episode in self.episode_buffer, which is filled with 'add_frame'. Defaults to + None. """ if not episode_data: episode_buffer = self.episode_buffer + validate_episode_buffer(episode_buffer, self.meta.total_episodes, self.features) + + # size and task are special cases that won't be added to hf_dataset episode_length = episode_buffer.pop("size") + tasks = episode_buffer.pop("task") + episode_tasks = list(set(tasks)) episode_index = episode_buffer["episode_index"] - if episode_index != self.meta.total_episodes: - # TODO(aliberts): Add option to use existing episode_index - raise NotImplementedError( - "You might have manually provided the episode_buffer with an episode_index that doesn't " - "match the total number of episodes in the dataset. This is not supported for now." - ) - if episode_length == 0: - raise ValueError( - "You must add one or several frames with `add_frame` before calling `add_episode`." - ) + episode_buffer["index"] = np.arange(self.meta.total_frames, self.meta.total_frames + episode_length) + episode_buffer["episode_index"] = np.full((episode_length,), episode_index) - task_index = self.meta.get_task_index(task) + # Add new tasks to the tasks dictionnary + for task in episode_tasks: + task_index = self.meta.get_task_index(task) + if task_index is None: + self.meta.add_task(task) - if not set(episode_buffer.keys()) == set(self.features): - raise ValueError() + # Given tasks in natural language, find their corresponding task indices + episode_buffer["task_index"] = np.array([self.meta.get_task_index(task) for task in tasks]) for key, ft in self.features.items(): - if key == "index": - episode_buffer[key] = np.arange( - self.meta.total_frames, self.meta.total_frames + episode_length - ) - elif key == "episode_index": - episode_buffer[key] = np.full((episode_length,), episode_index) - elif key == "task_index": - episode_buffer[key] = np.full((episode_length,), task_index) - elif ft["dtype"] in ["image", "video"]: + # index, episode_index, task_index are already processed above, and image and video + # are processed separately by storing image path and frame info as meta data + if key in ["index", "episode_index", "task_index"] or ft["dtype"] in ["image", "video"]: continue - elif len(ft["shape"]) == 1 and ft["shape"][0] == 1: - episode_buffer[key] = np.array(episode_buffer[key], dtype=ft["dtype"]) - elif len(ft["shape"]) == 1 and ft["shape"][0] > 1: - episode_buffer[key] = np.stack(episode_buffer[key]) - else: - raise ValueError(key) + episode_buffer[key] = np.stack(episode_buffer[key]) self._wait_image_writer() self._save_episode_table(episode_buffer, episode_index) + ep_stats = compute_episode_stats(episode_buffer, self.features) - self.meta.save_episode(episode_index, episode_length, task, task_index) - - if encode_videos and len(self.meta.video_keys) > 0: + if len(self.meta.video_keys) > 0: video_paths = self.encode_episode_videos(episode_index) for key in self.meta.video_keys: episode_buffer[key] = video_paths[key] + # `meta.save_episode` be executed after encoding the videos + self.meta.save_episode(episode_index, episode_length, episode_tasks, ep_stats) + + ep_data_index = get_episode_data_index(self.meta.episodes, [episode_index]) + ep_data_index_np = {k: t.numpy() for k, t in ep_data_index.items()} + check_timestamps_sync( + episode_buffer["timestamp"], + episode_buffer["episode_index"], + ep_data_index_np, + self.fps, + self.tolerance_s, + ) + + video_files = list(self.root.rglob("*.mp4")) + assert len(video_files) == self.num_episodes * len(self.meta.video_keys) + + parquet_files = list(self.root.rglob("*.parquet")) + assert len(parquet_files) == self.num_episodes + + # delete images + img_dir = self.root / "images" + if img_dir.is_dir(): + shutil.rmtree(self.root / "images") + if not episode_data: # Reset the buffer self.episode_buffer = self.create_episode_buffer() - self.consolidated = False - def _save_episode_table(self, episode_buffer: dict, episode_index: int) -> None: episode_dict = {key: episode_buffer[key] for key in self.hf_features} ep_dataset = datasets.Dataset.from_dict(episode_dict, features=self.hf_features, split="train") + ep_dataset = embed_images(ep_dataset) + self.hf_dataset = concatenate_datasets([self.hf_dataset, ep_dataset]) + self.hf_dataset.set_transform(hf_transform_to_torch) ep_data_path = self.root / self.meta.get_data_file_path(ep_index=episode_index) ep_data_path.parent.mkdir(parents=True, exist_ok=True) - write_parquet(ep_dataset, ep_data_path) + ep_dataset.to_parquet(ep_data_path) def clear_episode_buffer(self) -> None: episode_index = self.episode_buffer["episode_index"] @@ -884,38 +977,6 @@ class LeRobotDataset(torch.utils.data.Dataset): return video_paths - def consolidate(self, run_compute_stats: bool = True, keep_image_files: bool = False) -> None: - self.hf_dataset = self.load_hf_dataset() - self.episode_data_index = get_episode_data_index(self.meta.episodes, self.episodes) - check_timestamps_sync(self.hf_dataset, self.episode_data_index, self.fps, self.tolerance_s) - - if len(self.meta.video_keys) > 0: - self.encode_videos() - self.meta.write_video_info() - - if not keep_image_files: - img_dir = self.root / "images" - if img_dir.is_dir(): - shutil.rmtree(self.root / "images") - - video_files = list(self.root.rglob("*.mp4")) - assert len(video_files) == self.num_episodes * len(self.meta.video_keys) - - parquet_files = list(self.root.rglob("*.parquet")) - assert len(parquet_files) == self.num_episodes - - if run_compute_stats: - self.stop_image_writer() - # TODO(aliberts): refactor stats in save_episodes - self.meta.stats = compute_stats(self) - serialized_stats = serialize_dict(self.meta.stats) - write_json(serialized_stats, self.root / STATS_PATH) - self.consolidated = True - else: - logging.warning( - "Skipping computation of the dataset statistics, dataset is not fully consolidated." - ) - @classmethod def create( cls, @@ -944,7 +1005,7 @@ class LeRobotDataset(torch.utils.data.Dataset): ) obj.repo_id = obj.meta.repo_id obj.root = obj.meta.root - obj.local_files_only = obj.meta.local_files_only + obj.revision = None obj.tolerance_s = tolerance_s obj.image_writer = None @@ -954,14 +1015,8 @@ class LeRobotDataset(torch.utils.data.Dataset): # TODO(aliberts, rcadene, alexander-soare): Merge this with OnlineBuffer/DataBuffer obj.episode_buffer = obj.create_episode_buffer() - # This bool indicates that the current LeRobotDataset instance is in sync with the files on disk. It - # is used to know when certain operations are need (for instance, computing dataset statistics). In - # order to be able to push the dataset to the hub, it needs to be consolidated first by calling - # self.consolidate(). - obj.consolidated = True - obj.episodes = None - obj.hf_dataset = None + obj.hf_dataset = obj.create_hf_dataset() obj.image_transforms = None obj.delta_timestamps = None obj.delta_indices = None @@ -986,12 +1041,11 @@ class MultiLeRobotDataset(torch.utils.data.Dataset): delta_timestamps: dict[list[float]] | None = None, tolerances_s: dict | None = None, download_videos: bool = True, - local_files_only: bool = False, video_backend: str | None = None, ): super().__init__() self.repo_ids = repo_ids - self.root = Path(root) if root else LEROBOT_HOME + self.root = Path(root) if root else HF_LEROBOT_HOME self.tolerances_s = tolerances_s if tolerances_s else {repo_id: 1e-4 for repo_id in repo_ids} # Construct the underlying datasets passing everything but `transform` and `delta_timestamps` which # are handled by this class. @@ -1004,7 +1058,6 @@ class MultiLeRobotDataset(torch.utils.data.Dataset): delta_timestamps=delta_timestamps, tolerance_s=self.tolerances_s[repo_id], download_videos=download_videos, - local_files_only=local_files_only, video_backend=video_backend, ) for repo_id in repo_ids @@ -1032,7 +1085,10 @@ class MultiLeRobotDataset(torch.utils.data.Dataset): self.image_transforms = image_transforms self.delta_timestamps = delta_timestamps - self.stats = aggregate_stats(self._datasets) + # TODO(rcadene, aliberts): We should not perform this aggregation for datasets + # with multiple robots of different ranges. Instead we should have one normalization + # per robot. + self.stats = aggregate_stats([dataset.meta.stats for dataset in self._datasets]) @property def repo_id_to_index(self): diff --git a/lerobot/common/datasets/push_dataset_to_hub/CODEBASE_VERSION.md b/lerobot/common/datasets/push_dataset_to_hub/CODEBASE_VERSION.md deleted file mode 100644 index 8fcc8bbe..00000000 --- a/lerobot/common/datasets/push_dataset_to_hub/CODEBASE_VERSION.md +++ /dev/null @@ -1,56 +0,0 @@ -## Using / Updating `CODEBASE_VERSION` (for maintainers) - -Since our dataset pushed to the hub are decoupled with the evolution of this repo, we ensure compatibility of -the datasets with our code, we use a `CODEBASE_VERSION` (defined in -lerobot/common/datasets/lerobot_dataset.py) variable. - -For instance, [`lerobot/pusht`](https://huggingface.co/datasets/lerobot/pusht) has many versions to maintain backward compatibility between LeRobot codebase versions: -- [v1.0](https://huggingface.co/datasets/lerobot/pusht/tree/v1.0) -- [v1.1](https://huggingface.co/datasets/lerobot/pusht/tree/v1.1) -- [v1.2](https://huggingface.co/datasets/lerobot/pusht/tree/v1.2) -- [v1.3](https://huggingface.co/datasets/lerobot/pusht/tree/v1.3) -- [v1.4](https://huggingface.co/datasets/lerobot/pusht/tree/v1.4) -- [v1.5](https://huggingface.co/datasets/lerobot/pusht/tree/v1.5) -- [v1.6](https://huggingface.co/datasets/lerobot/pusht/tree/v1.6) <-- last version -- [main](https://huggingface.co/datasets/lerobot/pusht/tree/main) <-- points to the last version - -Starting with v1.6, every dataset pushed to the hub or saved locally also have this version number in their -`info.json` metadata. - -### Uploading a new dataset -If you are pushing a new dataset, you don't need to worry about any of the instructions below, nor to be -compatible with previous codebase versions. The `push_dataset_to_hub.py` script will automatically tag your -dataset with the current `CODEBASE_VERSION`. - -### Updating an existing dataset -If you want to update an existing dataset, you need to change the `CODEBASE_VERSION` from `lerobot_dataset.py` -before running `push_dataset_to_hub.py`. This is especially useful if you introduce a breaking change -intentionally or not (i.e. something not backward compatible such as modifying the reward functions used, -deleting some frames at the end of an episode, etc.). That way, people running a previous version of the -codebase won't be affected by your change and backward compatibility is maintained. - -However, you will need to update the version of ALL the other datasets so that they have the new -`CODEBASE_VERSION` as a branch in their hugging face dataset repository. Don't worry, there is an easy way -that doesn't require to run `push_dataset_to_hub.py`. You can just "branch-out" from the `main` branch on HF -dataset repo by running this script which corresponds to a `git checkout -b` (so no copy or upload needed): - -```python -from huggingface_hub import HfApi - -from lerobot import available_datasets -from lerobot.common.datasets.lerobot_dataset import CODEBASE_VERSION - -api = HfApi() - -for repo_id in available_datasets: - dataset_info = api.list_repo_refs(repo_id, repo_type="dataset") - branches = [b.name for b in dataset_info.branches] - if CODEBASE_VERSION in branches: - print(f"{repo_id} already @{CODEBASE_VERSION}, skipping.") - continue - else: - # Now create a branch named after the new version by branching out from "main" - # which is expected to be the preceding version - api.create_branch(repo_id, repo_type="dataset", branch=CODEBASE_VERSION, revision="main") - print(f"{repo_id} successfully updated @{CODEBASE_VERSION}") -``` diff --git a/lerobot/common/datasets/utils.py b/lerobot/common/datasets/utils.py index 612bac39..2d90798f 100644 --- a/lerobot/common/datasets/utils.py +++ b/lerobot/common/datasets/utils.py @@ -13,10 +13,10 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import contextlib import importlib.resources import json import logging -import textwrap from collections.abc import Iterator from itertools import accumulate from pathlib import Path @@ -27,14 +27,20 @@ from typing import Any import datasets import jsonlines import numpy as np -import pyarrow.compute as pc +import packaging.version import torch from datasets.table import embed_table_storage from huggingface_hub import DatasetCard, DatasetCardData, HfApi from PIL import Image as PILImage from torchvision import transforms +from lerobot.common.datasets.backward_compatibility import ( + V21_MESSAGE, + BackwardCompatibilityError, + ForwardCompatibilityError, +) from lerobot.common.robot_devices.robots.utils import Robot +from lerobot.common.utils.utils import is_valid_numpy_dtype_string from lerobot.configs.types import DictLike, FeatureType, PolicyFeature DEFAULT_CHUNK_SIZE = 1000 # Max number of episodes per chunk @@ -42,6 +48,7 @@ DEFAULT_CHUNK_SIZE = 1000 # Max number of episodes per chunk INFO_PATH = "meta/info.json" EPISODES_PATH = "meta/episodes.jsonl" STATS_PATH = "meta/stats.json" +EPISODES_STATS_PATH = "meta/episodes_stats.jsonl" TASKS_PATH = "meta/tasks.jsonl" DEFAULT_VIDEO_PATH = "videos/chunk-{episode_chunk:03d}/{video_key}/episode_{episode_index:06d}.mp4" @@ -112,17 +119,26 @@ def get_nested_item(obj: DictLike, flattened_key: str, sep: str = "/") -> Any: def serialize_dict(stats: dict[str, torch.Tensor | np.ndarray | dict]) -> dict: - serialized_dict = {key: value.tolist() for key, value in flatten_dict(stats).items()} + serialized_dict = {} + for key, value in flatten_dict(stats).items(): + if isinstance(value, (torch.Tensor, np.ndarray)): + serialized_dict[key] = value.tolist() + elif isinstance(value, np.generic): + serialized_dict[key] = value.item() + elif isinstance(value, (int, float)): + serialized_dict[key] = value + else: + raise NotImplementedError(f"The value '{value}' of type '{type(value)}' is not supported.") return unflatten_dict(serialized_dict) -def write_parquet(dataset: datasets.Dataset, fpath: Path) -> None: +def embed_images(dataset: datasets.Dataset) -> datasets.Dataset: # Embed image bytes into the table before saving to parquet format = dataset.format dataset = dataset.with_format("arrow") dataset = dataset.map(embed_table_storage, batched=False) dataset = dataset.with_format(**format) - dataset.to_parquet(fpath) + return dataset def load_json(fpath: Path) -> Any: @@ -153,6 +169,10 @@ def append_jsonlines(data: dict, fpath: Path) -> None: writer.write(data) +def write_info(info: dict, local_dir: Path): + write_json(info, local_dir / INFO_PATH) + + def load_info(local_dir: Path) -> dict: info = load_json(local_dir / INFO_PATH) for ft in info["features"].values(): @@ -160,29 +180,76 @@ def load_info(local_dir: Path) -> dict: return info -def load_stats(local_dir: Path) -> dict: - if not (local_dir / STATS_PATH).exists(): - return None - stats = load_json(local_dir / STATS_PATH) - stats = {key: torch.tensor(value) for key, value in flatten_dict(stats).items()} +def write_stats(stats: dict, local_dir: Path): + serialized_stats = serialize_dict(stats) + write_json(serialized_stats, local_dir / STATS_PATH) + + +def cast_stats_to_numpy(stats) -> dict[str, dict[str, np.ndarray]]: + stats = {key: np.array(value) for key, value in flatten_dict(stats).items()} return unflatten_dict(stats) -def load_tasks(local_dir: Path) -> dict: +def load_stats(local_dir: Path) -> dict[str, dict[str, np.ndarray]]: + if not (local_dir / STATS_PATH).exists(): + return None + stats = load_json(local_dir / STATS_PATH) + return cast_stats_to_numpy(stats) + + +def write_task(task_index: int, task: dict, local_dir: Path): + task_dict = { + "task_index": task_index, + "task": task, + } + append_jsonlines(task_dict, local_dir / TASKS_PATH) + + +def load_tasks(local_dir: Path) -> tuple[dict, dict]: tasks = load_jsonlines(local_dir / TASKS_PATH) - return {item["task_index"]: item["task"] for item in sorted(tasks, key=lambda x: x["task_index"])} + tasks = {item["task_index"]: item["task"] for item in sorted(tasks, key=lambda x: x["task_index"])} + task_to_task_index = {task: task_index for task_index, task in tasks.items()} + return tasks, task_to_task_index + + +def write_episode(episode: dict, local_dir: Path): + append_jsonlines(episode, local_dir / EPISODES_PATH) def load_episodes(local_dir: Path) -> dict: - return load_jsonlines(local_dir / EPISODES_PATH) + episodes = load_jsonlines(local_dir / EPISODES_PATH) + return {item["episode_index"]: item for item in sorted(episodes, key=lambda x: x["episode_index"])} -def load_image_as_numpy(fpath: str | Path, dtype="float32", channel_first: bool = True) -> np.ndarray: +def write_episode_stats(episode_index: int, episode_stats: dict, local_dir: Path): + # We wrap episode_stats in a dictionnary since `episode_stats["episode_index"]` + # is a dictionary of stats and not an integer. + episode_stats = {"episode_index": episode_index, "stats": serialize_dict(episode_stats)} + append_jsonlines(episode_stats, local_dir / EPISODES_STATS_PATH) + + +def load_episodes_stats(local_dir: Path) -> dict: + episodes_stats = load_jsonlines(local_dir / EPISODES_STATS_PATH) + return { + item["episode_index"]: cast_stats_to_numpy(item["stats"]) + for item in sorted(episodes_stats, key=lambda x: x["episode_index"]) + } + + +def backward_compatible_episodes_stats( + stats: dict[str, dict[str, np.ndarray]], episodes: list[int] +) -> dict[str, dict[str, np.ndarray]]: + return {ep_idx: stats for ep_idx in episodes} + + +def load_image_as_numpy( + fpath: str | Path, dtype: np.dtype = np.float32, channel_first: bool = True +) -> np.ndarray: img = PILImage.open(fpath).convert("RGB") img_array = np.array(img, dtype=dtype) if channel_first: # (H, W, C) -> (C, H, W) img_array = np.transpose(img_array, (2, 0, 1)) - if "float" in dtype: + if np.issubdtype(dtype, np.floating): img_array /= 255.0 return img_array @@ -201,77 +268,82 @@ def hf_transform_to_torch(items_dict: dict[torch.Tensor | None]): elif first_item is None: pass else: - items_dict[key] = [torch.tensor(x) for x in items_dict[key]] + items_dict[key] = [x if isinstance(x, str) else torch.tensor(x) for x in items_dict[key]] return items_dict -def _get_major_minor(version: str) -> tuple[int]: - split = version.strip("v").split(".") - return int(split[0]), int(split[1]) - - -class BackwardCompatibilityError(Exception): - def __init__(self, repo_id, version): - message = textwrap.dedent(f""" - BackwardCompatibilityError: The dataset you requested ({repo_id}) is in {version} format. - - We introduced a new format since v2.0 which is not backward compatible with v1.x. - Please, use our conversion script. Modify the following command with your own task description: - ``` - python lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py \\ - --repo-id {repo_id} \\ - --single-task "TASK DESCRIPTION." # <---- /!\\ Replace TASK DESCRIPTION /!\\ - ``` - - A few examples to replace TASK DESCRIPTION: "Pick up the blue cube and place it into the bin.", - "Insert the peg into the socket.", "Slide open the ziploc bag.", "Take the elevator to the 1st floor.", - "Open the top cabinet, store the pot inside it then close the cabinet.", "Push the T-shaped block onto the T-shaped target.", - "Grab the spray paint on the shelf and place it in the bin on top of the robot dog.", "Fold the sweatshirt.", ... - - If you encounter a problem, contact LeRobot maintainers on [Discord](https://discord.com/invite/s3KuuzsPFb) - or open an [issue on GitHub](https://github.com/huggingface/lerobot/issues/new/choose). - """) - super().__init__(message) +def is_valid_version(version: str) -> bool: + try: + packaging.version.parse(version) + return True + except packaging.version.InvalidVersion: + return False def check_version_compatibility( - repo_id: str, version_to_check: str, current_version: str, enforce_breaking_major: bool = True + repo_id: str, + version_to_check: str | packaging.version.Version, + current_version: str | packaging.version.Version, + enforce_breaking_major: bool = True, ) -> None: - current_major, _ = _get_major_minor(current_version) - major_to_check, _ = _get_major_minor(version_to_check) - if major_to_check < current_major and enforce_breaking_major: - raise BackwardCompatibilityError(repo_id, version_to_check) - elif float(version_to_check.strip("v")) < float(current_version.strip("v")): - logging.warning( - f"""The dataset you requested ({repo_id}) was created with a previous version ({version_to_check}) of the - codebase. The current codebase version is {current_version}. You should be fine since - backward compatibility is maintained. If you encounter a problem, contact LeRobot maintainers on - Discord ('https://discord.com/invite/s3KuuzsPFb') or open an issue on github.""", - ) + v_check = ( + packaging.version.parse(version_to_check) + if not isinstance(version_to_check, packaging.version.Version) + else version_to_check + ) + v_current = ( + packaging.version.parse(current_version) + if not isinstance(current_version, packaging.version.Version) + else current_version + ) + if v_check.major < v_current.major and enforce_breaking_major: + raise BackwardCompatibilityError(repo_id, v_check) + elif v_check.minor < v_current.minor: + logging.warning(V21_MESSAGE.format(repo_id=repo_id, version=v_check)) -def get_hub_safe_version(repo_id: str, version: str) -> str: +def get_repo_versions(repo_id: str) -> list[packaging.version.Version]: + """Returns available valid versions (branches and tags) on given repo.""" api = HfApi() - dataset_info = api.list_repo_refs(repo_id, repo_type="dataset") - branches = [b.name for b in dataset_info.branches] - if version not in branches: - num_version = float(version.strip("v")) - hub_num_versions = [float(v.strip("v")) for v in branches if v.startswith("v")] - if num_version >= 2.0 and all(v < 2.0 for v in hub_num_versions): - raise BackwardCompatibilityError(repo_id, version) + repo_refs = api.list_repo_refs(repo_id, repo_type="dataset") + repo_refs = [b.name for b in repo_refs.branches + repo_refs.tags] + repo_versions = [] + for ref in repo_refs: + with contextlib.suppress(packaging.version.InvalidVersion): + repo_versions.append(packaging.version.parse(ref)) - logging.warning( - f"""You are trying to load a dataset from {repo_id} created with a previous version of the - codebase. The following versions are available: {branches}. - The requested version ('{version}') is not found. You should be fine since - backward compatibility is maintained. If you encounter a problem, contact LeRobot maintainers on - Discord ('https://discord.com/invite/s3KuuzsPFb') or open an issue on github.""", - ) - if "main" not in branches: - raise ValueError(f"Version 'main' not found on {repo_id}") - return "main" - else: - return version + return repo_versions + + +def get_safe_version(repo_id: str, version: str | packaging.version.Version) -> str: + """ + Returns the version if available on repo or the latest compatible one. + Otherwise, will throw a `CompatibilityError`. + """ + target_version = ( + packaging.version.parse(version) if not isinstance(version, packaging.version.Version) else version + ) + hub_versions = get_repo_versions(repo_id) + + if target_version in hub_versions: + return f"v{target_version}" + + compatibles = [ + v for v in hub_versions if v.major == target_version.major and v.minor <= target_version.minor + ] + if compatibles: + return_version = max(compatibles) + if return_version < target_version: + logging.warning(f"Revision {version} for {repo_id} not found, using version v{return_version}") + return f"v{return_version}" + + lower_major = [v for v in hub_versions if v.major < target_version.major] + if lower_major: + raise BackwardCompatibilityError(repo_id, max(lower_major)) + + upper_versions = [v for v in hub_versions if v > target_version] + assert len(upper_versions) > 0 + raise ForwardCompatibilityError(repo_id, min(upper_versions)) def get_hf_features_from_features(features: dict) -> datasets.Features: @@ -283,11 +355,20 @@ def get_hf_features_from_features(features: dict) -> datasets.Features: hf_features[key] = datasets.Image() elif ft["shape"] == (1,): hf_features[key] = datasets.Value(dtype=ft["dtype"]) - else: - assert len(ft["shape"]) == 1 + elif len(ft["shape"]) == 1: hf_features[key] = datasets.Sequence( length=ft["shape"][0], feature=datasets.Value(dtype=ft["dtype"]) ) + elif len(ft["shape"]) == 2: + hf_features[key] = datasets.Array2D(shape=ft["shape"], dtype=ft["dtype"]) + elif len(ft["shape"]) == 3: + hf_features[key] = datasets.Array3D(shape=ft["shape"], dtype=ft["dtype"]) + elif len(ft["shape"]) == 4: + hf_features[key] = datasets.Array4D(shape=ft["shape"], dtype=ft["dtype"]) + elif len(ft["shape"]) == 5: + hf_features[key] = datasets.Array5D(shape=ft["shape"], dtype=ft["dtype"]) + else: + raise ValueError(f"Corresponding feature is not valid: {ft}") return datasets.Features(hf_features) @@ -358,9 +439,9 @@ def create_empty_dataset_info( def get_episode_data_index( - episode_dicts: list[dict], episodes: list[int] | None = None + episode_dicts: dict[dict], episodes: list[int] | None = None ) -> dict[str, torch.Tensor]: - episode_lengths = {ep_idx: ep_dict["length"] for ep_idx, ep_dict in enumerate(episode_dicts)} + episode_lengths = {ep_idx: ep_dict["length"] for ep_idx, ep_dict in episode_dicts.items()} if episodes is not None: episode_lengths = {ep_idx: episode_lengths[ep_idx] for ep_idx in episodes} @@ -371,75 +452,72 @@ def get_episode_data_index( } -def calculate_total_episode( - hf_dataset: datasets.Dataset, raise_if_not_contiguous: bool = True -) -> dict[str, torch.Tensor]: - episode_indices = sorted(hf_dataset.unique("episode_index")) - total_episodes = len(episode_indices) - if raise_if_not_contiguous and episode_indices != list(range(total_episodes)): - raise ValueError("episode_index values are not sorted and contiguous.") - return total_episodes - - -def calculate_episode_data_index(hf_dataset: datasets.Dataset) -> dict[str, torch.Tensor]: - episode_lengths = [] - table = hf_dataset.data.table - total_episodes = calculate_total_episode(hf_dataset) - for ep_idx in range(total_episodes): - ep_table = table.filter(pc.equal(table["episode_index"], ep_idx)) - episode_lengths.insert(ep_idx, len(ep_table)) - - cumulative_lenghts = list(accumulate(episode_lengths)) - return { - "from": torch.LongTensor([0] + cumulative_lenghts[:-1]), - "to": torch.LongTensor(cumulative_lenghts), - } - - def check_timestamps_sync( - hf_dataset: datasets.Dataset, - episode_data_index: dict[str, torch.Tensor], + timestamps: np.ndarray, + episode_indices: np.ndarray, + episode_data_index: dict[str, np.ndarray], fps: int, tolerance_s: float, raise_value_error: bool = True, ) -> bool: """ - This check is to make sure that each timestamps is separated to the next by 1/fps +/- tolerance to - account for possible numerical error. - """ - timestamps = torch.stack(hf_dataset["timestamp"]) - diffs = torch.diff(timestamps) - within_tolerance = torch.abs(diffs - 1 / fps) <= tolerance_s + This check is to make sure that each timestamp is separated from the next by (1/fps) +/- tolerance + to account for possible numerical error. - # We mask differences between the timestamp at the end of an episode - # and the one at the start of the next episode since these are expected - # to be outside tolerance. - mask = torch.ones(len(diffs), dtype=torch.bool) - ignored_diffs = episode_data_index["to"][:-1] - 1 + Args: + timestamps (np.ndarray): Array of timestamps in seconds. + episode_indices (np.ndarray): Array indicating the episode index for each timestamp. + episode_data_index (dict[str, np.ndarray]): A dictionary that includes 'to', + which identifies indices for the end of each episode. + fps (int): Frames per second. Used to check the expected difference between consecutive timestamps. + tolerance_s (float): Allowed deviation from the expected (1/fps) difference. + raise_value_error (bool): Whether to raise a ValueError if the check fails. + + Returns: + bool: True if all checked timestamp differences lie within tolerance, False otherwise. + + Raises: + ValueError: If the check fails and `raise_value_error` is True. + """ + if timestamps.shape != episode_indices.shape: + raise ValueError( + "timestamps and episode_indices should have the same shape. " + f"Found {timestamps.shape=} and {episode_indices.shape=}." + ) + + # Consecutive differences + diffs = np.diff(timestamps) + within_tolerance = np.abs(diffs - (1.0 / fps)) <= tolerance_s + + # Mask to ignore differences at the boundaries between episodes + mask = np.ones(len(diffs), dtype=bool) + ignored_diffs = episode_data_index["to"][:-1] - 1 # indices at the end of each episode mask[ignored_diffs] = False filtered_within_tolerance = within_tolerance[mask] - if not torch.all(filtered_within_tolerance): + # Check if all remaining diffs are within tolerance + if not np.all(filtered_within_tolerance): # Track original indices before masking - original_indices = torch.arange(len(diffs)) + original_indices = np.arange(len(diffs)) filtered_indices = original_indices[mask] - outside_tolerance_filtered_indices = torch.nonzero(~filtered_within_tolerance) # .squeeze() + outside_tolerance_filtered_indices = np.nonzero(~filtered_within_tolerance)[0] outside_tolerance_indices = filtered_indices[outside_tolerance_filtered_indices] - episode_indices = torch.stack(hf_dataset["episode_index"]) outside_tolerances = [] for idx in outside_tolerance_indices: entry = { "timestamps": [timestamps[idx], timestamps[idx + 1]], "diff": diffs[idx], - "episode_index": episode_indices[idx].item(), + "episode_index": episode_indices[idx].item() + if hasattr(episode_indices[idx], "item") + else episode_indices[idx], } outside_tolerances.append(entry) if raise_value_error: raise ValueError( f"""One or several timestamps unexpectedly violate the tolerance inside episode range. - This might be due to synchronization issues with timestamps during data collection. + This might be due to synchronization issues during data collection. \n{pformat(outside_tolerances)}""" ) return False @@ -604,3 +682,118 @@ class IterableNamespace(SimpleNamespace): def keys(self): return vars(self).keys() + + +def validate_frame(frame: dict, features: dict): + optional_features = {"timestamp"} + expected_features = (set(features) - set(DEFAULT_FEATURES.keys())) | {"task"} + actual_features = set(frame.keys()) + + error_message = validate_features_presence(actual_features, expected_features, optional_features) + + if "task" in frame: + error_message += validate_feature_string("task", frame["task"]) + + common_features = actual_features & (expected_features | optional_features) + for name in common_features - {"task"}: + error_message += validate_feature_dtype_and_shape(name, features[name], frame[name]) + + if error_message: + raise ValueError(error_message) + + +def validate_features_presence( + actual_features: set[str], expected_features: set[str], optional_features: set[str] +): + error_message = "" + missing_features = expected_features - actual_features + extra_features = actual_features - (expected_features | optional_features) + + if missing_features or extra_features: + error_message += "Feature mismatch in `frame` dictionary:\n" + if missing_features: + error_message += f"Missing features: {missing_features}\n" + if extra_features: + error_message += f"Extra features: {extra_features}\n" + + return error_message + + +def validate_feature_dtype_and_shape(name: str, feature: dict, value: np.ndarray | PILImage.Image | str): + expected_dtype = feature["dtype"] + expected_shape = feature["shape"] + if is_valid_numpy_dtype_string(expected_dtype): + return validate_feature_numpy_array(name, expected_dtype, expected_shape, value) + elif expected_dtype in ["image", "video"]: + return validate_feature_image_or_video(name, expected_shape, value) + elif expected_dtype == "string": + return validate_feature_string(name, value) + else: + raise NotImplementedError(f"The feature dtype '{expected_dtype}' is not implemented yet.") + + +def validate_feature_numpy_array( + name: str, expected_dtype: str, expected_shape: list[int], value: np.ndarray +): + error_message = "" + if isinstance(value, np.ndarray): + actual_dtype = value.dtype + actual_shape = value.shape + + if actual_dtype != np.dtype(expected_dtype): + error_message += f"The feature '{name}' of dtype '{actual_dtype}' is not of the expected dtype '{expected_dtype}'.\n" + + if actual_shape != expected_shape: + error_message += f"The feature '{name}' of shape '{actual_shape}' does not have the expected shape '{expected_shape}'.\n" + else: + error_message += f"The feature '{name}' is not a 'np.ndarray'. Expected type is '{expected_dtype}', but type '{type(value)}' provided instead.\n" + + return error_message + + +def validate_feature_image_or_video(name: str, expected_shape: list[str], value: np.ndarray | PILImage.Image): + # Note: The check of pixels range ([0,1] for float and [0,255] for uint8) is done by the image writer threads. + error_message = "" + if isinstance(value, np.ndarray): + actual_shape = value.shape + c, h, w = expected_shape + if len(actual_shape) != 3 or (actual_shape != (c, h, w) and actual_shape != (h, w, c)): + error_message += f"The feature '{name}' of shape '{actual_shape}' does not have the expected shape '{(c, h, w)}' or '{(h, w, c)}'.\n" + elif isinstance(value, PILImage.Image): + pass + else: + error_message += f"The feature '{name}' is expected to be of type 'PIL.Image' or 'np.ndarray' channel first or channel last, but type '{type(value)}' provided instead.\n" + + return error_message + + +def validate_feature_string(name: str, value: str): + if not isinstance(value, str): + return f"The feature '{name}' is expected to be of type 'str', but type '{type(value)}' provided instead.\n" + return "" + + +def validate_episode_buffer(episode_buffer: dict, total_episodes: int, features: dict): + if "size" not in episode_buffer: + raise ValueError("size key not found in episode_buffer") + + if "task" not in episode_buffer: + raise ValueError("task key not found in episode_buffer") + + if episode_buffer["episode_index"] != total_episodes: + # TODO(aliberts): Add option to use existing episode_index + raise NotImplementedError( + "You might have manually provided the episode_buffer with an episode_index that doesn't " + "match the total number of episodes already in the dataset. This is not supported for now." + ) + + if episode_buffer["size"] == 0: + raise ValueError("You must add one or several frames with `add_frame` before calling `add_episode`.") + + buffer_keys = set(episode_buffer.keys()) - {"task", "size"} + if not buffer_keys == set(features): + raise ValueError( + f"Features from `episode_buffer` don't match the ones in `features`." + f"In episode_buffer not in features: {buffer_keys - set(features)}" + f"In features not in episode_buffer: {set(features) - buffer_keys}" + ) diff --git a/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py b/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py index 62ca9932..99864e3b 100644 --- a/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py +++ b/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py @@ -130,7 +130,7 @@ from lerobot.common.datasets.utils import ( create_branch, create_lerobot_dataset_card, flatten_dict, - get_hub_safe_version, + get_safe_version, load_json, unflatten_dict, write_json, @@ -443,7 +443,7 @@ def convert_dataset( test_branch: str | None = None, **card_kwargs, ): - v1 = get_hub_safe_version(repo_id, V16) + v1 = get_safe_version(repo_id, V16) v1x_dir = local_dir / V16 / repo_id v20_dir = local_dir / V20 / repo_id v1x_dir.mkdir(parents=True, exist_ok=True) diff --git a/lerobot/common/datasets/v21/_remove_language_instruction.py b/lerobot/common/datasets/v21/_remove_language_instruction.py new file mode 100644 index 00000000..dd4604cf --- /dev/null +++ b/lerobot/common/datasets/v21/_remove_language_instruction.py @@ -0,0 +1,73 @@ +import logging +import traceback +from pathlib import Path + +from datasets import get_dataset_config_info +from huggingface_hub import HfApi + +from lerobot import available_datasets +from lerobot.common.datasets.lerobot_dataset import LeRobotDatasetMetadata +from lerobot.common.datasets.utils import INFO_PATH, write_info +from lerobot.common.datasets.v21.convert_dataset_v20_to_v21 import V20, SuppressWarnings + +LOCAL_DIR = Path("data/") + +hub_api = HfApi() + + +def fix_dataset(repo_id: str) -> str: + if not hub_api.revision_exists(repo_id, V20, repo_type="dataset"): + return f"{repo_id}: skipped (not in {V20})." + + dataset_info = get_dataset_config_info(repo_id, "default") + with SuppressWarnings(): + lerobot_metadata = LeRobotDatasetMetadata(repo_id, revision=V20, force_cache_sync=True) + + meta_features = {key for key, ft in lerobot_metadata.features.items() if ft["dtype"] != "video"} + parquet_features = set(dataset_info.features) + + diff_parquet_meta = parquet_features - meta_features + diff_meta_parquet = meta_features - parquet_features + + if diff_parquet_meta: + raise ValueError(f"In parquet not in info.json: {parquet_features - meta_features}") + + if not diff_meta_parquet: + return f"{repo_id}: skipped (no diff)" + + if diff_meta_parquet: + logging.warning(f"In info.json not in parquet: {meta_features - parquet_features}") + assert diff_meta_parquet == {"language_instruction"} + lerobot_metadata.features.pop("language_instruction") + write_info(lerobot_metadata.info, lerobot_metadata.root) + commit_info = hub_api.upload_file( + path_or_fileobj=lerobot_metadata.root / INFO_PATH, + path_in_repo=INFO_PATH, + repo_id=repo_id, + repo_type="dataset", + revision=V20, + commit_message="Remove 'language_instruction'", + create_pr=True, + ) + return f"{repo_id}: success - PR: {commit_info.pr_url}" + + +def batch_fix(): + status = {} + LOCAL_DIR.mkdir(parents=True, exist_ok=True) + logfile = LOCAL_DIR / "fix_features_v20.txt" + for num, repo_id in enumerate(available_datasets): + print(f"\nConverting {repo_id} ({num}/{len(available_datasets)})") + print("---------------------------------------------------------") + try: + status = fix_dataset(repo_id) + except Exception: + status = f"{repo_id}: failed\n {traceback.format_exc()}" + + logging.info(status) + with open(logfile, "a") as file: + file.write(status + "\n") + + +if __name__ == "__main__": + batch_fix() diff --git a/lerobot/common/datasets/v21/batch_convert_dataset_v20_to_v21.py b/lerobot/common/datasets/v21/batch_convert_dataset_v20_to_v21.py new file mode 100644 index 00000000..cc9272a8 --- /dev/null +++ b/lerobot/common/datasets/v21/batch_convert_dataset_v20_to_v21.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +# Copyright 2024 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +This script is for internal use to convert all datasets under the 'lerobot' hub user account to v2.1. +""" + +import traceback +from pathlib import Path + +from huggingface_hub import HfApi + +from lerobot import available_datasets +from lerobot.common.datasets.v21.convert_dataset_v20_to_v21 import V21, convert_dataset + +LOCAL_DIR = Path("data/") + + +def batch_convert(): + status = {} + LOCAL_DIR.mkdir(parents=True, exist_ok=True) + logfile = LOCAL_DIR / "conversion_log_v21.txt" + hub_api = HfApi() + for num, repo_id in enumerate(available_datasets): + print(f"\nConverting {repo_id} ({num}/{len(available_datasets)})") + print("---------------------------------------------------------") + try: + if hub_api.revision_exists(repo_id, V21, repo_type="dataset"): + status = f"{repo_id}: success (already in {V21})." + else: + convert_dataset(repo_id) + status = f"{repo_id}: success." + except Exception: + status = f"{repo_id}: failed\n {traceback.format_exc()}" + + with open(logfile, "a") as file: + file.write(status + "\n") + + +if __name__ == "__main__": + batch_convert() diff --git a/lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py b/lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py new file mode 100644 index 00000000..20bda75b --- /dev/null +++ b/lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py @@ -0,0 +1,100 @@ +""" +This script will help you convert any LeRobot dataset already pushed to the hub from codebase version 2.0 to +2.1. It will: + +- Generate per-episodes stats and writes them in `episodes_stats.jsonl` +- Check consistency between these new stats and the old ones. +- Remove the deprecated `stats.json`. +- Update codebase_version in `info.json`. +- Push this new version to the hub on the 'main' branch and tags it with "v2.1". + +Usage: + +```bash +python lerobot/common/datasets/v21/convert_dataset_v20_to_v21.py \ + --repo-id=aliberts/koch_tutorial +``` + +""" + +import argparse +import logging + +from huggingface_hub import HfApi + +from lerobot.common.datasets.lerobot_dataset import CODEBASE_VERSION, LeRobotDataset +from lerobot.common.datasets.utils import EPISODES_STATS_PATH, STATS_PATH, load_stats, write_info +from lerobot.common.datasets.v21.convert_stats import check_aggregate_stats, convert_stats + +V20 = "v2.0" +V21 = "v2.1" + + +class SuppressWarnings: + def __enter__(self): + self.previous_level = logging.getLogger().getEffectiveLevel() + logging.getLogger().setLevel(logging.ERROR) + + def __exit__(self, exc_type, exc_val, exc_tb): + logging.getLogger().setLevel(self.previous_level) + + +def convert_dataset( + repo_id: str, + branch: str | None = None, + num_workers: int = 4, +): + with SuppressWarnings(): + dataset = LeRobotDataset(repo_id, revision=V20, force_cache_sync=True) + + if (dataset.root / EPISODES_STATS_PATH).is_file(): + (dataset.root / EPISODES_STATS_PATH).unlink() + + convert_stats(dataset, num_workers=num_workers) + ref_stats = load_stats(dataset.root) + check_aggregate_stats(dataset, ref_stats) + + dataset.meta.info["codebase_version"] = CODEBASE_VERSION + write_info(dataset.meta.info, dataset.root) + + dataset.push_to_hub(branch=branch, allow_patterns="meta/") + + # delete old stats.json file + if (dataset.root / STATS_PATH).is_file: + (dataset.root / STATS_PATH).unlink() + + hub_api = HfApi() + if hub_api.file_exists( + repo_id=dataset.repo_id, filename=STATS_PATH, revision=branch, repo_type="dataset" + ): + hub_api.delete_file( + path_in_repo=STATS_PATH, repo_id=dataset.repo_id, revision=branch, repo_type="dataset" + ) + + hub_api.create_tag(repo_id, tag=CODEBASE_VERSION, revision=branch, repo_type="dataset") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "--repo-id", + type=str, + required=True, + help="Repository identifier on Hugging Face: a community or a user name `/` the name of the dataset " + "(e.g. `lerobot/pusht`, `cadene/aloha_sim_insertion_human`).", + ) + parser.add_argument( + "--branch", + type=str, + default=None, + help="Repo branch to push your dataset. Defaults to the main branch.", + ) + parser.add_argument( + "--num-workers", + type=int, + default=4, + help="Number of workers for parallelizing stats compute. Defaults to 4.", + ) + + args = parser.parse_args() + convert_dataset(**vars(args)) diff --git a/lerobot/common/datasets/v21/convert_stats.py b/lerobot/common/datasets/v21/convert_stats.py new file mode 100644 index 00000000..cbf584b7 --- /dev/null +++ b/lerobot/common/datasets/v21/convert_stats.py @@ -0,0 +1,85 @@ +from concurrent.futures import ThreadPoolExecutor, as_completed + +import numpy as np +from tqdm import tqdm + +from lerobot.common.datasets.compute_stats import aggregate_stats, get_feature_stats, sample_indices +from lerobot.common.datasets.lerobot_dataset import LeRobotDataset +from lerobot.common.datasets.utils import write_episode_stats + + +def sample_episode_video_frames(dataset: LeRobotDataset, episode_index: int, ft_key: str) -> np.ndarray: + ep_len = dataset.meta.episodes[episode_index]["length"] + sampled_indices = sample_indices(ep_len) + query_timestamps = dataset._get_query_timestamps(0.0, {ft_key: sampled_indices}) + video_frames = dataset._query_videos(query_timestamps, episode_index) + return video_frames[ft_key].numpy() + + +def convert_episode_stats(dataset: LeRobotDataset, ep_idx: int): + ep_start_idx = dataset.episode_data_index["from"][ep_idx] + ep_end_idx = dataset.episode_data_index["to"][ep_idx] + ep_data = dataset.hf_dataset.select(range(ep_start_idx, ep_end_idx)) + + ep_stats = {} + for key, ft in dataset.features.items(): + if ft["dtype"] == "video": + # We sample only for videos + ep_ft_data = sample_episode_video_frames(dataset, ep_idx, key) + else: + ep_ft_data = np.array(ep_data[key]) + + axes_to_reduce = (0, 2, 3) if ft["dtype"] in ["image", "video"] else 0 + keepdims = True if ft["dtype"] in ["image", "video"] else ep_ft_data.ndim == 1 + ep_stats[key] = get_feature_stats(ep_ft_data, axis=axes_to_reduce, keepdims=keepdims) + + if ft["dtype"] in ["image", "video"]: # remove batch dim + ep_stats[key] = { + k: v if k == "count" else np.squeeze(v, axis=0) for k, v in ep_stats[key].items() + } + + dataset.meta.episodes_stats[ep_idx] = ep_stats + + +def convert_stats(dataset: LeRobotDataset, num_workers: int = 0): + assert dataset.episodes is None + print("Computing episodes stats") + total_episodes = dataset.meta.total_episodes + if num_workers > 0: + with ThreadPoolExecutor(max_workers=num_workers) as executor: + futures = { + executor.submit(convert_episode_stats, dataset, ep_idx): ep_idx + for ep_idx in range(total_episodes) + } + for future in tqdm(as_completed(futures), total=total_episodes): + future.result() + else: + for ep_idx in tqdm(range(total_episodes)): + convert_episode_stats(dataset, ep_idx) + + for ep_idx in tqdm(range(total_episodes)): + write_episode_stats(ep_idx, dataset.meta.episodes_stats[ep_idx], dataset.root) + + +def check_aggregate_stats( + dataset: LeRobotDataset, + reference_stats: dict[str, dict[str, np.ndarray]], + video_rtol_atol: tuple[float] = (1e-2, 1e-2), + default_rtol_atol: tuple[float] = (5e-6, 6e-5), +): + """Verifies that the aggregated stats from episodes_stats are close to reference stats.""" + agg_stats = aggregate_stats(list(dataset.meta.episodes_stats.values())) + for key, ft in dataset.features.items(): + # These values might need some fine-tuning + if ft["dtype"] == "video": + # to account for image sub-sampling + rtol, atol = video_rtol_atol + else: + rtol, atol = default_rtol_atol + + for stat, val in agg_stats[key].items(): + if key in reference_stats and stat in reference_stats[key]: + err_msg = f"feature='{key}' stats='{stat}'" + np.testing.assert_allclose( + val, reference_stats[key][stat], rtol=rtol, atol=atol, err_msg=err_msg + ) diff --git a/lerobot/common/datasets/video_utils.py b/lerobot/common/datasets/video_utils.py index 8ed3318d..8be53483 100644 --- a/lerobot/common/datasets/video_utils.py +++ b/lerobot/common/datasets/video_utils.py @@ -69,8 +69,8 @@ def decode_video_frames_torchvision( # set the first and last requested timestamps # Note: previous timestamps are usually loaded, since we need to access the previous key frame - first_ts = timestamps[0] - last_ts = timestamps[-1] + first_ts = min(timestamps) + last_ts = max(timestamps) # access closest key frame of the first requested frame # Note: closest key frame timestamp is usally smaller than `first_ts` (e.g. key frame can be the first frame of the video) diff --git a/lerobot/common/policies/normalize.py b/lerobot/common/policies/normalize.py index 95219273..b3255ec1 100644 --- a/lerobot/common/policies/normalize.py +++ b/lerobot/common/policies/normalize.py @@ -13,6 +13,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import numpy as np import torch from torch import Tensor, nn @@ -77,17 +78,29 @@ def create_stats_buffers( } ) + # TODO(aliberts, rcadene): harmonize this to only use one framework (np or torch) if stats: - # Note: The clone is needed to make sure that the logic in save_pretrained doesn't see duplicated - # tensors anywhere (for example, when we use the same stats for normalization and - # unnormalization). See the logic here - # https://github.com/huggingface/safetensors/blob/079781fd0dc455ba0fe851e2b4507c33d0c0d407/bindings/python/py_src/safetensors/torch.py#L97. - if norm_mode is NormalizationMode.MEAN_STD: - buffer["mean"].data = stats[key]["mean"].clone() - buffer["std"].data = stats[key]["std"].clone() - elif norm_mode is NormalizationMode.MIN_MAX: - buffer["min"].data = stats[key]["min"].clone() - buffer["max"].data = stats[key]["max"].clone() + if isinstance(stats[key]["mean"], np.ndarray): + if norm_mode is NormalizationMode.MEAN_STD: + buffer["mean"].data = torch.from_numpy(stats[key]["mean"]).to(dtype=torch.float32) + buffer["std"].data = torch.from_numpy(stats[key]["std"]).to(dtype=torch.float32) + elif norm_mode is NormalizationMode.MIN_MAX: + buffer["min"].data = torch.from_numpy(stats[key]["min"]).to(dtype=torch.float32) + buffer["max"].data = torch.from_numpy(stats[key]["max"]).to(dtype=torch.float32) + elif isinstance(stats[key]["mean"], torch.Tensor): + # Note: The clone is needed to make sure that the logic in save_pretrained doesn't see duplicated + # tensors anywhere (for example, when we use the same stats for normalization and + # unnormalization). See the logic here + # https://github.com/huggingface/safetensors/blob/079781fd0dc455ba0fe851e2b4507c33d0c0d407/bindings/python/py_src/safetensors/torch.py#L97. + if norm_mode is NormalizationMode.MEAN_STD: + buffer["mean"].data = stats[key]["mean"].clone().to(dtype=torch.float32) + buffer["std"].data = stats[key]["std"].clone().to(dtype=torch.float32) + elif norm_mode is NormalizationMode.MIN_MAX: + buffer["min"].data = stats[key]["min"].clone().to(dtype=torch.float32) + buffer["max"].data = stats[key]["max"].clone().to(dtype=torch.float32) + else: + type_ = type(stats[key]["mean"]) + raise ValueError(f"np.ndarray or torch.Tensor expected, but type is '{type_}' instead.") stats_buffers[key] = buffer return stats_buffers @@ -141,6 +154,7 @@ class Normalize(nn.Module): batch = dict(batch) # shallow copy avoids mutating the input batch for key, ft in self.features.items(): if key not in batch: + # FIXME(aliberts, rcadene): This might lead to silent fail! continue norm_mode = self.norm_map.get(ft.type, NormalizationMode.IDENTITY) diff --git a/lerobot/common/robot_devices/control_configs.py b/lerobot/common/robot_devices/control_configs.py index 6dae8cb6..c3e920b1 100644 --- a/lerobot/common/robot_devices/control_configs.py +++ b/lerobot/common/robot_devices/control_configs.py @@ -60,8 +60,6 @@ class RecordControlConfig(ControlConfig): num_episodes: int = 50 # Encode frames in the dataset into video video: bool = True - # By default, run the computation of the data statistics at the end of data collection. Compute intensive and not required to just replay an episode. - run_compute_stats: bool = True # Upload dataset to Hugging Face hub. push_to_hub: bool = True # Upload on private repository on the Hugging Face hub. @@ -83,9 +81,6 @@ class RecordControlConfig(ControlConfig): play_sounds: bool = True # Resume recording on an existing dataset. resume: bool = False - # TODO(rcadene, aliberts): remove local_files_only when refactor with dataset as argument - # Use local files only. By default, this script will try to fetch the dataset from the hub if it exists. - local_files_only: bool = False def __post_init__(self): # HACK: We parse again the cli args here to get the pretrained path if there was one. @@ -130,9 +125,6 @@ class ReplayControlConfig(ControlConfig): fps: int | None = None # Use vocal synthesis to read events. play_sounds: bool = True - # TODO(rcadene, aliberts): remove local_files_only when refactor with dataset as argument - # Use local files only. By default, this script will try to fetch the dataset from the hub if it exists. - local_files_only: bool = False @ControlConfig.register_subclass("remote_robot") diff --git a/lerobot/common/robot_devices/control_utils.py b/lerobot/common/robot_devices/control_utils.py index 7264f078..6c97d0cb 100644 --- a/lerobot/common/robot_devices/control_utils.py +++ b/lerobot/common/robot_devices/control_utils.py @@ -183,6 +183,7 @@ def record_episode( device, use_amp, fps, + single_task, ): control_loop( robot=robot, @@ -195,6 +196,7 @@ def record_episode( use_amp=use_amp, fps=fps, teleoperate=policy is None, + single_task=single_task, ) @@ -210,6 +212,7 @@ def control_loop( device: torch.device | str | None = None, use_amp: bool | None = None, fps: int | None = None, + single_task: str | None = None, ): # TODO(rcadene): Add option to record logs if not robot.is_connected: @@ -224,6 +227,9 @@ def control_loop( if teleoperate and policy is not None: raise ValueError("When `teleoperate` is True, `policy` should be None.") + if dataset is not None and single_task is None: + raise ValueError("You need to provide a task as argument in `single_task`.") + if dataset is not None and fps is not None and dataset.fps != fps: raise ValueError(f"The dataset fps should be equal to requested fps ({dataset['fps']} != {fps}).") @@ -248,7 +254,7 @@ def control_loop( action = {"action": action} if dataset is not None: - frame = {**observation, **action} + frame = {**observation, **action, "task": single_task} dataset.add_frame(frame) if display_cameras and not is_headless(): diff --git a/lerobot/common/utils/utils.py b/lerobot/common/utils/utils.py index 015d1ede..d0c12b30 100644 --- a/lerobot/common/utils/utils.py +++ b/lerobot/common/utils/utils.py @@ -21,6 +21,7 @@ from copy import copy from datetime import datetime, timezone from pathlib import Path +import numpy as np import torch @@ -200,5 +201,18 @@ def get_channel_first_image_shape(image_shape: tuple) -> tuple: return shape -def has_method(cls: object, method_name: str): +def has_method(cls: object, method_name: str) -> bool: return hasattr(cls, method_name) and callable(getattr(cls, method_name)) + + +def is_valid_numpy_dtype_string(dtype_str: str) -> bool: + """ + Return True if a given string can be converted to a numpy dtype. + """ + try: + # Attempt to convert the string to a numpy dtype + np.dtype(dtype_str) + return True + except TypeError: + # If a TypeError is raised, the string is not a valid dtype + return False diff --git a/lerobot/configs/default.py b/lerobot/configs/default.py index 5dd2f898..a5013431 100644 --- a/lerobot/configs/default.py +++ b/lerobot/configs/default.py @@ -31,7 +31,7 @@ class DatasetConfig: repo_id: str episodes: list[int] | None = None image_transforms: ImageTransformsConfig = field(default_factory=ImageTransformsConfig) - local_files_only: bool = False + revision: str | None = None use_imagenet_stats: bool = True video_backend: str = "pyav" diff --git a/lerobot/scripts/control_robot.py b/lerobot/scripts/control_robot.py index 9129c9e3..32f3b181 100644 --- a/lerobot/scripts/control_robot.py +++ b/lerobot/scripts/control_robot.py @@ -92,7 +92,6 @@ python lerobot/scripts/control_robot.py \ This might require a sudo permission to allow your terminal to monitor keyboard events. **NOTE**: You can resume/continue data recording by running the same data recording command and adding `--control.resume=true`. -If the dataset you want to extend is not on the hub, you also need to add `--control.local_files_only=true`. - Train on this dataset with the ACT policy: ```bash @@ -234,7 +233,6 @@ def record( dataset = LeRobotDataset( cfg.repo_id, root=cfg.root, - local_files_only=cfg.local_files_only, ) if len(robot.cameras) > 0: dataset.start_image_writer( @@ -281,8 +279,8 @@ def record( log_say(f"Recording episode {dataset.num_episodes}", cfg.play_sounds) record_episode( - dataset=dataset, robot=robot, + dataset=dataset, events=events, episode_time_s=cfg.episode_time_s, display_cameras=cfg.display_cameras, @@ -290,6 +288,7 @@ def record( device=cfg.device, use_amp=cfg.use_amp, fps=cfg.fps, + single_task=cfg.single_task, ) # Execute a few seconds without recording to give time to manually reset the environment @@ -309,7 +308,7 @@ def record( dataset.clear_episode_buffer() continue - dataset.save_episode(cfg.single_task) + dataset.save_episode() recorded_episodes += 1 if events["stop_recording"]: @@ -318,11 +317,6 @@ def record( log_say("Stop recording", cfg.play_sounds, blocking=True) stop_recording(robot, listener, cfg.display_cameras) - if cfg.run_compute_stats: - logging.info("Computing dataset statistics") - - dataset.consolidate(cfg.run_compute_stats) - if cfg.push_to_hub: dataset.push_to_hub(tags=cfg.tags, private=cfg.private) @@ -338,9 +332,7 @@ def replay( # TODO(rcadene, aliberts): refactor with control_loop, once `dataset` is an instance of LeRobotDataset # TODO(rcadene): Add option to record logs - dataset = LeRobotDataset( - cfg.repo_id, root=cfg.root, episodes=[cfg.episode], local_files_only=cfg.local_files_only - ) + dataset = LeRobotDataset(cfg.repo_id, root=cfg.root, episodes=[cfg.episode]) actions = dataset.hf_dataset.select_columns("action") if not robot.is_connected: diff --git a/lerobot/scripts/visualize_dataset.py b/lerobot/scripts/visualize_dataset.py index 626b0bde..11feb1af 100644 --- a/lerobot/scripts/visualize_dataset.py +++ b/lerobot/scripts/visualize_dataset.py @@ -207,12 +207,6 @@ def main(): required=True, help="Episode to visualize.", ) - parser.add_argument( - "--local-files-only", - type=int, - default=0, - help="Use local files only. By default, this script will try to fetch the dataset from the hub if it exists.", - ) parser.add_argument( "--root", type=Path, @@ -275,10 +269,9 @@ def main(): kwargs = vars(args) repo_id = kwargs.pop("repo_id") root = kwargs.pop("root") - local_files_only = kwargs.pop("local_files_only") logging.info("Loading dataset") - dataset = LeRobotDataset(repo_id, root=root, local_files_only=local_files_only) + dataset = LeRobotDataset(repo_id, root=root) visualize_dataset(dataset, **vars(args)) diff --git a/lerobot/scripts/visualize_dataset_html.py b/lerobot/scripts/visualize_dataset_html.py index cc3f3930..ed748c9a 100644 --- a/lerobot/scripts/visualize_dataset_html.py +++ b/lerobot/scripts/visualize_dataset_html.py @@ -150,7 +150,7 @@ def run_server( 400, ) dataset_version = ( - dataset.meta._version if isinstance(dataset, LeRobotDataset) else dataset.codebase_version + str(dataset.meta._version) if isinstance(dataset, LeRobotDataset) else dataset.codebase_version ) match = re.search(r"v(\d+)\.", dataset_version) if match: @@ -384,12 +384,6 @@ def main(): default=None, help="Name of hugging face repositery containing a LeRobotDataset dataset (e.g. `lerobot/pusht` for https://huggingface.co/datasets/lerobot/pusht).", ) - parser.add_argument( - "--local-files-only", - type=int, - default=0, - help="Use local files only. By default, this script will try to fetch the dataset from the hub if it exists.", - ) parser.add_argument( "--root", type=Path, @@ -445,15 +439,10 @@ def main(): repo_id = kwargs.pop("repo_id") load_from_hf_hub = kwargs.pop("load_from_hf_hub") root = kwargs.pop("root") - local_files_only = kwargs.pop("local_files_only") dataset = None if repo_id: - dataset = ( - LeRobotDataset(repo_id, root=root, local_files_only=local_files_only) - if not load_from_hf_hub - else get_dataset_info(repo_id) - ) + dataset = LeRobotDataset(repo_id, root=root) if not load_from_hf_hub else get_dataset_info(repo_id) visualize_dataset_html(dataset, **vars(args)) diff --git a/lerobot/scripts/visualize_image_transforms.py b/lerobot/scripts/visualize_image_transforms.py index 727fe178..80935d32 100644 --- a/lerobot/scripts/visualize_image_transforms.py +++ b/lerobot/scripts/visualize_image_transforms.py @@ -109,7 +109,7 @@ def visualize_image_transforms(cfg: DatasetConfig, output_dir: Path = OUTPUT_DIR dataset = LeRobotDataset( repo_id=cfg.repo_id, episodes=cfg.episodes, - local_files_only=cfg.local_files_only, + revision=cfg.revision, video_backend=cfg.video_backend, ) diff --git a/pyproject.toml b/pyproject.toml index 21c3fc78..25cadb3e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,6 +47,7 @@ dependencies = [ "numba>=0.59.0", "omegaconf>=2.3.0", "opencv-python>=4.9.0", + "packaging>=24.2", "pyav>=12.0.5", "pymunk>=6.6.0", "pynput>=1.7.7", diff --git a/tests/fixtures/constants.py b/tests/fixtures/constants.py index bfe6c339..3201dcf2 100644 --- a/tests/fixtures/constants.py +++ b/tests/fixtures/constants.py @@ -1,6 +1,6 @@ -from lerobot.common.datasets.lerobot_dataset import LEROBOT_HOME +from lerobot.common.constants import HF_LEROBOT_HOME -LEROBOT_TEST_DIR = LEROBOT_HOME / "_testing" +LEROBOT_TEST_DIR = HF_LEROBOT_HOME / "_testing" DUMMY_REPO_ID = "dummy/repo" DUMMY_ROBOT_TYPE = "dummy_robot" DUMMY_MOTOR_FEATURES = { @@ -27,3 +27,5 @@ DUMMY_VIDEO_INFO = { "video.is_depth_map": False, "has_audio": False, } +DUMMY_CHW = (3, 96, 128) +DUMMY_HWC = (96, 128, 3) diff --git a/tests/fixtures/dataset_factories.py b/tests/fixtures/dataset_factories.py index c28a1165..2259e0e6 100644 --- a/tests/fixtures/dataset_factories.py +++ b/tests/fixtures/dataset_factories.py @@ -1,5 +1,7 @@ import random +from functools import partial from pathlib import Path +from typing import Protocol from unittest.mock import patch import datasets @@ -27,8 +29,12 @@ from tests.fixtures.constants import ( ) +class LeRobotDatasetFactory(Protocol): + def __call__(self, *args, **kwargs) -> LeRobotDataset: ... + + def get_task_index(task_dicts: dict, task: str) -> int: - tasks = {d["task_index"]: d["task"] for d in task_dicts} + tasks = {d["task_index"]: d["task"] for d in task_dicts.values()} task_to_task_index = {task: task_idx for task_idx, task in tasks.items()} return task_to_task_index[task] @@ -141,6 +147,7 @@ def stats_factory(): "mean": np.full((3, 1, 1), 0.5, dtype=np.float32).tolist(), "min": np.full((3, 1, 1), 0, dtype=np.float32).tolist(), "std": np.full((3, 1, 1), 0.25, dtype=np.float32).tolist(), + "count": [10], } else: stats[key] = { @@ -148,20 +155,38 @@ def stats_factory(): "mean": np.full(shape, 0.5, dtype=dtype).tolist(), "min": np.full(shape, 0, dtype=dtype).tolist(), "std": np.full(shape, 0.25, dtype=dtype).tolist(), + "count": [10], } return stats return _create_stats +@pytest.fixture(scope="session") +def episodes_stats_factory(stats_factory): + def _create_episodes_stats( + features: dict[str], + total_episodes: int = 3, + ) -> dict: + episodes_stats = {} + for episode_index in range(total_episodes): + episodes_stats[episode_index] = { + "episode_index": episode_index, + "stats": stats_factory(features), + } + return episodes_stats + + return _create_episodes_stats + + @pytest.fixture(scope="session") def tasks_factory(): def _create_tasks(total_tasks: int = 3) -> int: - tasks_list = [] - for i in range(total_tasks): - task_dict = {"task_index": i, "task": f"Perform action {i}."} - tasks_list.append(task_dict) - return tasks_list + tasks = {} + for task_index in range(total_tasks): + task_dict = {"task_index": task_index, "task": f"Perform action {task_index}."} + tasks[task_index] = task_dict + return tasks return _create_tasks @@ -190,10 +215,10 @@ def episodes_factory(tasks_factory): # Generate random lengths that sum up to total_length lengths = np.random.multinomial(total_frames, [1 / total_episodes] * total_episodes).tolist() - tasks_list = [task_dict["task"] for task_dict in tasks] + tasks_list = [task_dict["task"] for task_dict in tasks.values()] num_tasks_available = len(tasks_list) - episodes_list = [] + episodes = {} remaining_tasks = tasks_list.copy() for ep_idx in range(total_episodes): num_tasks_in_episode = random.randint(1, min(3, num_tasks_available)) if multi_task else 1 @@ -203,15 +228,13 @@ def episodes_factory(tasks_factory): for task in episode_tasks: remaining_tasks.remove(task) - episodes_list.append( - { - "episode_index": ep_idx, - "tasks": episode_tasks, - "length": lengths[ep_idx], - } - ) + episodes[ep_idx] = { + "episode_index": ep_idx, + "tasks": episode_tasks, + "length": lengths[ep_idx], + } - return episodes_list + return episodes return _create_episodes @@ -235,7 +258,7 @@ def hf_dataset_factory(features_factory, tasks_factory, episodes_factory, img_ar frame_index_col = np.array([], dtype=np.int64) episode_index_col = np.array([], dtype=np.int64) task_index = np.array([], dtype=np.int64) - for ep_dict in episodes: + for ep_dict in episodes.values(): timestamp_col = np.concatenate((timestamp_col, np.arange(ep_dict["length"]) / fps)) frame_index_col = np.concatenate((frame_index_col, np.arange(ep_dict["length"], dtype=int))) episode_index_col = np.concatenate( @@ -278,6 +301,7 @@ def hf_dataset_factory(features_factory, tasks_factory, episodes_factory, img_ar def lerobot_dataset_metadata_factory( info_factory, stats_factory, + episodes_stats_factory, tasks_factory, episodes_factory, mock_snapshot_download_factory, @@ -287,14 +311,18 @@ def lerobot_dataset_metadata_factory( repo_id: str = DUMMY_REPO_ID, info: dict | None = None, stats: dict | None = None, + episodes_stats: list[dict] | None = None, tasks: list[dict] | None = None, episodes: list[dict] | None = None, - local_files_only: bool = False, ) -> LeRobotDatasetMetadata: if not info: info = info_factory() if not stats: stats = stats_factory(features=info["features"]) + if not episodes_stats: + episodes_stats = episodes_stats_factory( + features=info["features"], total_episodes=info["total_episodes"] + ) if not tasks: tasks = tasks_factory(total_tasks=info["total_tasks"]) if not episodes: @@ -305,21 +333,20 @@ def lerobot_dataset_metadata_factory( mock_snapshot_download = mock_snapshot_download_factory( info=info, stats=stats, + episodes_stats=episodes_stats, tasks=tasks, episodes=episodes, ) with ( - patch( - "lerobot.common.datasets.lerobot_dataset.get_hub_safe_version" - ) as mock_get_hub_safe_version_patch, + patch("lerobot.common.datasets.lerobot_dataset.get_safe_version") as mock_get_safe_version_patch, patch( "lerobot.common.datasets.lerobot_dataset.snapshot_download" ) as mock_snapshot_download_patch, ): - mock_get_hub_safe_version_patch.side_effect = lambda repo_id, version: version + mock_get_safe_version_patch.side_effect = lambda repo_id, version: version mock_snapshot_download_patch.side_effect = mock_snapshot_download - return LeRobotDatasetMetadata(repo_id=repo_id, root=root, local_files_only=local_files_only) + return LeRobotDatasetMetadata(repo_id=repo_id, root=root) return _create_lerobot_dataset_metadata @@ -328,12 +355,13 @@ def lerobot_dataset_metadata_factory( def lerobot_dataset_factory( info_factory, stats_factory, + episodes_stats_factory, tasks_factory, episodes_factory, hf_dataset_factory, mock_snapshot_download_factory, lerobot_dataset_metadata_factory, -): +) -> LeRobotDatasetFactory: def _create_lerobot_dataset( root: Path, repo_id: str = DUMMY_REPO_ID, @@ -343,6 +371,7 @@ def lerobot_dataset_factory( multi_task: bool = False, info: dict | None = None, stats: dict | None = None, + episodes_stats: list[dict] | None = None, tasks: list[dict] | None = None, episode_dicts: list[dict] | None = None, hf_dataset: datasets.Dataset | None = None, @@ -354,6 +383,8 @@ def lerobot_dataset_factory( ) if not stats: stats = stats_factory(features=info["features"]) + if not episodes_stats: + episodes_stats = episodes_stats_factory(features=info["features"], total_episodes=total_episodes) if not tasks: tasks = tasks_factory(total_tasks=info["total_tasks"]) if not episode_dicts: @@ -369,6 +400,7 @@ def lerobot_dataset_factory( mock_snapshot_download = mock_snapshot_download_factory( info=info, stats=stats, + episodes_stats=episodes_stats, tasks=tasks, episodes=episode_dicts, hf_dataset=hf_dataset, @@ -378,19 +410,26 @@ def lerobot_dataset_factory( repo_id=repo_id, info=info, stats=stats, + episodes_stats=episodes_stats, tasks=tasks, episodes=episode_dicts, - local_files_only=kwargs.get("local_files_only", False), ) with ( patch("lerobot.common.datasets.lerobot_dataset.LeRobotDatasetMetadata") as mock_metadata_patch, + patch("lerobot.common.datasets.lerobot_dataset.get_safe_version") as mock_get_safe_version_patch, patch( "lerobot.common.datasets.lerobot_dataset.snapshot_download" ) as mock_snapshot_download_patch, ): mock_metadata_patch.return_value = mock_metadata + mock_get_safe_version_patch.side_effect = lambda repo_id, version: version mock_snapshot_download_patch.side_effect = mock_snapshot_download return LeRobotDataset(repo_id=repo_id, root=root, **kwargs) return _create_lerobot_dataset + + +@pytest.fixture(scope="session") +def empty_lerobot_dataset_factory() -> LeRobotDatasetFactory: + return partial(LeRobotDataset.create, repo_id=DUMMY_REPO_ID, fps=DEFAULT_FPS) diff --git a/tests/fixtures/files.py b/tests/fixtures/files.py index 5fe8a314..4ef12e49 100644 --- a/tests/fixtures/files.py +++ b/tests/fixtures/files.py @@ -7,7 +7,13 @@ import pyarrow.compute as pc import pyarrow.parquet as pq import pytest -from lerobot.common.datasets.utils import EPISODES_PATH, INFO_PATH, STATS_PATH, TASKS_PATH +from lerobot.common.datasets.utils import ( + EPISODES_PATH, + EPISODES_STATS_PATH, + INFO_PATH, + STATS_PATH, + TASKS_PATH, +) @pytest.fixture(scope="session") @@ -38,6 +44,20 @@ def stats_path(stats_factory): return _create_stats_json_file +@pytest.fixture(scope="session") +def episodes_stats_path(episodes_stats_factory): + def _create_episodes_stats_jsonl_file(dir: Path, episodes_stats: list[dict] | None = None) -> Path: + if not episodes_stats: + episodes_stats = episodes_stats_factory() + fpath = dir / EPISODES_STATS_PATH + fpath.parent.mkdir(parents=True, exist_ok=True) + with jsonlines.open(fpath, "w") as writer: + writer.write_all(episodes_stats.values()) + return fpath + + return _create_episodes_stats_jsonl_file + + @pytest.fixture(scope="session") def tasks_path(tasks_factory): def _create_tasks_jsonl_file(dir: Path, tasks: list | None = None) -> Path: @@ -46,7 +66,7 @@ def tasks_path(tasks_factory): fpath = dir / TASKS_PATH fpath.parent.mkdir(parents=True, exist_ok=True) with jsonlines.open(fpath, "w") as writer: - writer.write_all(tasks) + writer.write_all(tasks.values()) return fpath return _create_tasks_jsonl_file @@ -60,7 +80,7 @@ def episode_path(episodes_factory): fpath = dir / EPISODES_PATH fpath.parent.mkdir(parents=True, exist_ok=True) with jsonlines.open(fpath, "w") as writer: - writer.write_all(episodes) + writer.write_all(episodes.values()) return fpath return _create_episodes_jsonl_file diff --git a/tests/fixtures/hub.py b/tests/fixtures/hub.py index 351768c0..ae309cb4 100644 --- a/tests/fixtures/hub.py +++ b/tests/fixtures/hub.py @@ -4,7 +4,13 @@ import datasets import pytest from huggingface_hub.utils import filter_repo_objects -from lerobot.common.datasets.utils import EPISODES_PATH, INFO_PATH, STATS_PATH, TASKS_PATH +from lerobot.common.datasets.utils import ( + EPISODES_PATH, + EPISODES_STATS_PATH, + INFO_PATH, + STATS_PATH, + TASKS_PATH, +) from tests.fixtures.constants import LEROBOT_TEST_DIR @@ -14,6 +20,8 @@ def mock_snapshot_download_factory( info_path, stats_factory, stats_path, + episodes_stats_factory, + episodes_stats_path, tasks_factory, tasks_path, episodes_factory, @@ -29,6 +37,7 @@ def mock_snapshot_download_factory( def _mock_snapshot_download_func( info: dict | None = None, stats: dict | None = None, + episodes_stats: list[dict] | None = None, tasks: list[dict] | None = None, episodes: list[dict] | None = None, hf_dataset: datasets.Dataset | None = None, @@ -37,6 +46,10 @@ def mock_snapshot_download_factory( info = info_factory() if not stats: stats = stats_factory(features=info["features"]) + if not episodes_stats: + episodes_stats = episodes_stats_factory( + features=info["features"], total_episodes=info["total_episodes"] + ) if not tasks: tasks = tasks_factory(total_tasks=info["total_tasks"]) if not episodes: @@ -67,11 +80,11 @@ def mock_snapshot_download_factory( # List all possible files all_files = [] - meta_files = [INFO_PATH, STATS_PATH, TASKS_PATH, EPISODES_PATH] + meta_files = [INFO_PATH, STATS_PATH, EPISODES_STATS_PATH, TASKS_PATH, EPISODES_PATH] all_files.extend(meta_files) data_files = [] - for episode_dict in episodes: + for episode_dict in episodes.values(): ep_idx = episode_dict["episode_index"] ep_chunk = ep_idx // info["chunks_size"] data_path = info["data_path"].format(episode_chunk=ep_chunk, episode_index=ep_idx) @@ -92,6 +105,8 @@ def mock_snapshot_download_factory( _ = info_path(local_dir, info) elif rel_path == STATS_PATH: _ = stats_path(local_dir, stats) + elif rel_path == EPISODES_STATS_PATH: + _ = episodes_stats_path(local_dir, episodes_stats) elif rel_path == TASKS_PATH: _ = tasks_path(local_dir, tasks) elif rel_path == EPISODES_PATH: diff --git a/tests/test_cameras.py b/tests/test_cameras.py index 1a1812f7..7c043c25 100644 --- a/tests/test_cameras.py +++ b/tests/test_cameras.py @@ -182,7 +182,7 @@ def test_camera(request, camera_type, mock): @pytest.mark.parametrize("camera_type, mock", TEST_CAMERA_TYPES) @require_camera -def test_save_images_from_cameras(tmpdir, request, camera_type, mock): +def test_save_images_from_cameras(tmp_path, request, camera_type, mock): # TODO(rcadene): refactor if camera_type == "opencv": from lerobot.common.robot_devices.cameras.opencv import save_images_from_cameras @@ -190,4 +190,4 @@ def test_save_images_from_cameras(tmpdir, request, camera_type, mock): from lerobot.common.robot_devices.cameras.intelrealsense import save_images_from_cameras # Small `record_time_s` to speedup unit tests - save_images_from_cameras(tmpdir, record_time_s=0.02, mock=mock) + save_images_from_cameras(tmp_path, record_time_s=0.02, mock=mock) diff --git a/tests/test_compute_stats.py b/tests/test_compute_stats.py new file mode 100644 index 00000000..d9032c8a --- /dev/null +++ b/tests/test_compute_stats.py @@ -0,0 +1,311 @@ +#!/usr/bin/env python + +# Copyright 2024 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from unittest.mock import patch + +import numpy as np +import pytest + +from lerobot.common.datasets.compute_stats import ( + _assert_type_and_shape, + aggregate_feature_stats, + aggregate_stats, + compute_episode_stats, + estimate_num_samples, + get_feature_stats, + sample_images, + sample_indices, +) + + +def mock_load_image_as_numpy(path, dtype, channel_first): + return np.ones((3, 32, 32), dtype=dtype) if channel_first else np.ones((32, 32, 3), dtype=dtype) + + +@pytest.fixture +def sample_array(): + return np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + + +def test_estimate_num_samples(): + assert estimate_num_samples(1) == 1 + assert estimate_num_samples(10) == 10 + assert estimate_num_samples(100) == 100 + assert estimate_num_samples(200) == 100 + assert estimate_num_samples(1000) == 177 + assert estimate_num_samples(2000) == 299 + assert estimate_num_samples(5000) == 594 + assert estimate_num_samples(10_000) == 1000 + assert estimate_num_samples(20_000) == 1681 + assert estimate_num_samples(50_000) == 3343 + assert estimate_num_samples(500_000) == 10_000 + + +def test_sample_indices(): + indices = sample_indices(10) + assert len(indices) > 0 + assert indices[0] == 0 + assert indices[-1] == 9 + assert len(indices) == estimate_num_samples(10) + + +@patch("lerobot.common.datasets.compute_stats.load_image_as_numpy", side_effect=mock_load_image_as_numpy) +def test_sample_images(mock_load): + image_paths = [f"image_{i}.jpg" for i in range(100)] + images = sample_images(image_paths) + assert isinstance(images, np.ndarray) + assert images.shape[1:] == (3, 32, 32) + assert images.dtype == np.uint8 + assert len(images) == estimate_num_samples(100) + + +def test_get_feature_stats_images(): + data = np.random.rand(100, 3, 32, 32) + stats = get_feature_stats(data, axis=(0, 2, 3), keepdims=True) + assert "min" in stats and "max" in stats and "mean" in stats and "std" in stats and "count" in stats + np.testing.assert_equal(stats["count"], np.array([100])) + assert stats["min"].shape == stats["max"].shape == stats["mean"].shape == stats["std"].shape + + +def test_get_feature_stats_axis_0_keepdims(sample_array): + expected = { + "min": np.array([[1, 2, 3]]), + "max": np.array([[7, 8, 9]]), + "mean": np.array([[4.0, 5.0, 6.0]]), + "std": np.array([[2.44948974, 2.44948974, 2.44948974]]), + "count": np.array([3]), + } + result = get_feature_stats(sample_array, axis=(0,), keepdims=True) + for key in expected: + np.testing.assert_allclose(result[key], expected[key]) + + +def test_get_feature_stats_axis_1(sample_array): + expected = { + "min": np.array([1, 4, 7]), + "max": np.array([3, 6, 9]), + "mean": np.array([2.0, 5.0, 8.0]), + "std": np.array([0.81649658, 0.81649658, 0.81649658]), + "count": np.array([3]), + } + result = get_feature_stats(sample_array, axis=(1,), keepdims=False) + for key in expected: + np.testing.assert_allclose(result[key], expected[key]) + + +def test_get_feature_stats_no_axis(sample_array): + expected = { + "min": np.array(1), + "max": np.array(9), + "mean": np.array(5.0), + "std": np.array(2.5819889), + "count": np.array([3]), + } + result = get_feature_stats(sample_array, axis=None, keepdims=False) + for key in expected: + np.testing.assert_allclose(result[key], expected[key]) + + +def test_get_feature_stats_empty_array(): + array = np.array([]) + with pytest.raises(ValueError): + get_feature_stats(array, axis=(0,), keepdims=True) + + +def test_get_feature_stats_single_value(): + array = np.array([[1337]]) + result = get_feature_stats(array, axis=None, keepdims=True) + np.testing.assert_equal(result["min"], np.array(1337)) + np.testing.assert_equal(result["max"], np.array(1337)) + np.testing.assert_equal(result["mean"], np.array(1337.0)) + np.testing.assert_equal(result["std"], np.array(0.0)) + np.testing.assert_equal(result["count"], np.array([1])) + + +def test_compute_episode_stats(): + episode_data = { + "observation.image": [f"image_{i}.jpg" for i in range(100)], + "observation.state": np.random.rand(100, 10), + } + features = { + "observation.image": {"dtype": "image"}, + "observation.state": {"dtype": "numeric"}, + } + + with patch( + "lerobot.common.datasets.compute_stats.load_image_as_numpy", side_effect=mock_load_image_as_numpy + ): + stats = compute_episode_stats(episode_data, features) + + assert "observation.image" in stats and "observation.state" in stats + assert stats["observation.image"]["count"].item() == 100 + assert stats["observation.state"]["count"].item() == 100 + assert stats["observation.image"]["mean"].shape == (3, 1, 1) + + +def test_assert_type_and_shape_valid(): + valid_stats = [ + { + "feature1": { + "min": np.array([1.0]), + "max": np.array([10.0]), + "mean": np.array([5.0]), + "std": np.array([2.0]), + "count": np.array([1]), + } + } + ] + _assert_type_and_shape(valid_stats) + + +def test_assert_type_and_shape_invalid_type(): + invalid_stats = [ + { + "feature1": { + "min": [1.0], # Not a numpy array + "max": np.array([10.0]), + "mean": np.array([5.0]), + "std": np.array([2.0]), + "count": np.array([1]), + } + } + ] + with pytest.raises(ValueError, match="Stats must be composed of numpy array"): + _assert_type_and_shape(invalid_stats) + + +def test_assert_type_and_shape_invalid_shape(): + invalid_stats = [ + { + "feature1": { + "count": np.array([1, 2]), # Wrong shape + } + } + ] + with pytest.raises(ValueError, match=r"Shape of 'count' must be \(1\)"): + _assert_type_and_shape(invalid_stats) + + +def test_aggregate_feature_stats(): + stats_ft_list = [ + { + "min": np.array([1.0]), + "max": np.array([10.0]), + "mean": np.array([5.0]), + "std": np.array([2.0]), + "count": np.array([1]), + }, + { + "min": np.array([2.0]), + "max": np.array([12.0]), + "mean": np.array([6.0]), + "std": np.array([2.5]), + "count": np.array([1]), + }, + ] + result = aggregate_feature_stats(stats_ft_list) + np.testing.assert_allclose(result["min"], np.array([1.0])) + np.testing.assert_allclose(result["max"], np.array([12.0])) + np.testing.assert_allclose(result["mean"], np.array([5.5])) + np.testing.assert_allclose(result["std"], np.array([2.318405]), atol=1e-6) + np.testing.assert_allclose(result["count"], np.array([2])) + + +def test_aggregate_stats(): + all_stats = [ + { + "observation.image": { + "min": [1, 2, 3], + "max": [10, 20, 30], + "mean": [5.5, 10.5, 15.5], + "std": [2.87, 5.87, 8.87], + "count": 10, + }, + "observation.state": {"min": 1, "max": 10, "mean": 5.5, "std": 2.87, "count": 10}, + "extra_key_0": {"min": 5, "max": 25, "mean": 15, "std": 6, "count": 6}, + }, + { + "observation.image": { + "min": [2, 1, 0], + "max": [15, 10, 5], + "mean": [8.5, 5.5, 2.5], + "std": [3.42, 2.42, 1.42], + "count": 15, + }, + "observation.state": {"min": 2, "max": 15, "mean": 8.5, "std": 3.42, "count": 15}, + "extra_key_1": {"min": 0, "max": 20, "mean": 10, "std": 5, "count": 5}, + }, + ] + + expected_agg_stats = { + "observation.image": { + "min": [1, 1, 0], + "max": [15, 20, 30], + "mean": [7.3, 7.5, 7.7], + "std": [3.5317, 4.8267, 8.5581], + "count": 25, + }, + "observation.state": { + "min": 1, + "max": 15, + "mean": 7.3, + "std": 3.5317, + "count": 25, + }, + "extra_key_0": { + "min": 5, + "max": 25, + "mean": 15.0, + "std": 6.0, + "count": 6, + }, + "extra_key_1": { + "min": 0, + "max": 20, + "mean": 10.0, + "std": 5.0, + "count": 5, + }, + } + + # cast to numpy + for ep_stats in all_stats: + for fkey, stats in ep_stats.items(): + for k in stats: + stats[k] = np.array(stats[k], dtype=np.int64 if k == "count" else np.float32) + if fkey == "observation.image" and k != "count": + stats[k] = stats[k].reshape(3, 1, 1) # for normalization on image channels + else: + stats[k] = stats[k].reshape(1) + + # cast to numpy + for fkey, stats in expected_agg_stats.items(): + for k in stats: + stats[k] = np.array(stats[k], dtype=np.int64 if k == "count" else np.float32) + if fkey == "observation.image" and k != "count": + stats[k] = stats[k].reshape(3, 1, 1) # for normalization on image channels + else: + stats[k] = stats[k].reshape(1) + + results = aggregate_stats(all_stats) + + for fkey in expected_agg_stats: + np.testing.assert_allclose(results[fkey]["min"], expected_agg_stats[fkey]["min"]) + np.testing.assert_allclose(results[fkey]["max"], expected_agg_stats[fkey]["max"]) + np.testing.assert_allclose(results[fkey]["mean"], expected_agg_stats[fkey]["mean"]) + np.testing.assert_allclose( + results[fkey]["std"], expected_agg_stats[fkey]["std"], atol=1e-04, rtol=1e-04 + ) + np.testing.assert_allclose(results[fkey]["count"], expected_agg_stats[fkey]["count"]) diff --git a/tests/test_control_robot.py b/tests/test_control_robot.py index 36ee096f..12b68641 100644 --- a/tests/test_control_robot.py +++ b/tests/test_control_robot.py @@ -24,7 +24,6 @@ pytest -sx 'tests/test_control_robot.py::test_teleoperate[aloha-True]' """ import multiprocessing -from pathlib import Path from unittest.mock import patch import pytest @@ -45,7 +44,7 @@ from tests.utils import DEVICE, TEST_ROBOT_TYPES, mock_calibration_dir, require_ @pytest.mark.parametrize("robot_type, mock", TEST_ROBOT_TYPES) @require_robot -def test_teleoperate(tmpdir, request, robot_type, mock): +def test_teleoperate(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock and robot_type != "aloha": @@ -53,8 +52,7 @@ def test_teleoperate(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - tmpdir = Path(tmpdir) - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -70,15 +68,14 @@ def test_teleoperate(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", TEST_ROBOT_TYPES) @require_robot -def test_calibrate(tmpdir, request, robot_type, mock): +def test_calibrate(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock: request.getfixturevalue("patch_builtins_input") # Create an empty calibration directory to trigger manual calibration - tmpdir = Path(tmpdir) - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type robot_kwargs["calibration_dir"] = calibration_dir robot = make_robot(**robot_kwargs) @@ -89,7 +86,7 @@ def test_calibrate(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", TEST_ROBOT_TYPES) @require_robot -def test_record_without_cameras(tmpdir, request, robot_type, mock): +def test_record_without_cameras(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} # Avoid using cameras @@ -100,7 +97,7 @@ def test_record_without_cameras(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = Path(tmpdir) / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -108,7 +105,7 @@ def test_record_without_cameras(tmpdir, request, robot_type, mock): pass repo_id = "lerobot/debug" - root = Path(tmpdir) / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." robot = make_robot(**robot_kwargs) @@ -121,7 +118,6 @@ def test_record_without_cameras(tmpdir, request, robot_type, mock): episode_time_s=1, reset_time_s=0.1, num_episodes=2, - run_compute_stats=False, push_to_hub=False, video=False, play_sounds=False, @@ -131,8 +127,7 @@ def test_record_without_cameras(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", TEST_ROBOT_TYPES) @require_robot -def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): - tmpdir = Path(tmpdir) +def test_record_and_replay_and_policy(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock and robot_type != "aloha": @@ -140,7 +135,7 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -148,7 +143,7 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): pass repo_id = "lerobot_test/debug" - root = tmpdir / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." robot = make_robot(**robot_kwargs) @@ -172,15 +167,13 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): assert dataset.meta.total_episodes == 2 assert len(dataset) == 2 - replay_cfg = ReplayControlConfig( - episode=0, fps=1, root=root, repo_id=repo_id, play_sounds=False, local_files_only=True - ) + replay_cfg = ReplayControlConfig(episode=0, fps=1, root=root, repo_id=repo_id, play_sounds=False) replay(robot, replay_cfg) policy_cfg = ACTConfig() policy = make_policy(policy_cfg, ds_meta=dataset.meta, device=DEVICE) - out_dir = tmpdir / "logger" + out_dir = tmp_path / "logger" pretrained_policy_path = out_dir / "checkpoints/last/pretrained_model" policy.save_pretrained(pretrained_policy_path) @@ -207,7 +200,7 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): num_image_writer_processes = 0 eval_repo_id = "lerobot/eval_debug" - eval_root = tmpdir / "data" / eval_repo_id + eval_root = tmp_path / "data" / eval_repo_id rec_eval_cfg = RecordControlConfig( repo_id=eval_repo_id, @@ -218,7 +211,6 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): episode_time_s=1, reset_time_s=0.1, num_episodes=2, - run_compute_stats=False, push_to_hub=False, video=False, display_cameras=False, @@ -240,7 +232,7 @@ def test_record_and_replay_and_policy(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", [("koch", True)]) @require_robot -def test_resume_record(tmpdir, request, robot_type, mock): +def test_resume_record(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock and robot_type != "aloha": @@ -248,7 +240,7 @@ def test_resume_record(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -258,7 +250,7 @@ def test_resume_record(tmpdir, request, robot_type, mock): robot = make_robot(**robot_kwargs) repo_id = "lerobot/debug" - root = Path(tmpdir) / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." rec_cfg = RecordControlConfig( @@ -272,8 +264,6 @@ def test_resume_record(tmpdir, request, robot_type, mock): video=False, display_cameras=False, play_sounds=False, - run_compute_stats=False, - local_files_only=True, num_episodes=1, ) @@ -291,7 +281,7 @@ def test_resume_record(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", [("koch", True)]) @require_robot -def test_record_with_event_rerecord_episode(tmpdir, request, robot_type, mock): +def test_record_with_event_rerecord_episode(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock and robot_type != "aloha": @@ -299,7 +289,7 @@ def test_record_with_event_rerecord_episode(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -316,7 +306,7 @@ def test_record_with_event_rerecord_episode(tmpdir, request, robot_type, mock): mock_listener.return_value = (None, mock_events) repo_id = "lerobot/debug" - root = Path(tmpdir) / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." rec_cfg = RecordControlConfig( @@ -331,7 +321,6 @@ def test_record_with_event_rerecord_episode(tmpdir, request, robot_type, mock): video=False, display_cameras=False, play_sounds=False, - run_compute_stats=False, ) dataset = record(robot, rec_cfg) @@ -342,7 +331,7 @@ def test_record_with_event_rerecord_episode(tmpdir, request, robot_type, mock): @pytest.mark.parametrize("robot_type, mock", [("koch", True)]) @require_robot -def test_record_with_event_exit_early(tmpdir, request, robot_type, mock): +def test_record_with_event_exit_early(tmp_path, request, robot_type, mock): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock: @@ -350,7 +339,7 @@ def test_record_with_event_exit_early(tmpdir, request, robot_type, mock): # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -367,7 +356,7 @@ def test_record_with_event_exit_early(tmpdir, request, robot_type, mock): mock_listener.return_value = (None, mock_events) repo_id = "lerobot/debug" - root = Path(tmpdir) / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." rec_cfg = RecordControlConfig( @@ -382,7 +371,6 @@ def test_record_with_event_exit_early(tmpdir, request, robot_type, mock): video=False, display_cameras=False, play_sounds=False, - run_compute_stats=False, ) dataset = record(robot, rec_cfg) @@ -395,7 +383,7 @@ def test_record_with_event_exit_early(tmpdir, request, robot_type, mock): "robot_type, mock, num_image_writer_processes", [("koch", True, 0), ("koch", True, 1)] ) @require_robot -def test_record_with_event_stop_recording(tmpdir, request, robot_type, mock, num_image_writer_processes): +def test_record_with_event_stop_recording(tmp_path, request, robot_type, mock, num_image_writer_processes): robot_kwargs = {"robot_type": robot_type, "mock": mock} if mock: @@ -403,7 +391,7 @@ def test_record_with_event_stop_recording(tmpdir, request, robot_type, mock, num # Create an empty calibration directory to trigger manual calibration # and avoid writing calibration files in user .cache/calibration folder - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir else: @@ -420,7 +408,7 @@ def test_record_with_event_stop_recording(tmpdir, request, robot_type, mock, num mock_listener.return_value = (None, mock_events) repo_id = "lerobot/debug" - root = Path(tmpdir) / "data" / repo_id + root = tmp_path / "data" / repo_id single_task = "Do something." rec_cfg = RecordControlConfig( @@ -436,7 +424,6 @@ def test_record_with_event_stop_recording(tmpdir, request, robot_type, mock, num video=False, display_cameras=False, play_sounds=False, - run_compute_stats=False, num_image_writer_processes=num_image_writer_processes, ) diff --git a/tests/test_datasets.py b/tests/test_datasets.py index 8664d33e..61b68aa8 100644 --- a/tests/test_datasets.py +++ b/tests/test_datasets.py @@ -15,24 +15,21 @@ # limitations under the License. import json import logging +import re from copy import deepcopy from itertools import chain from pathlib import Path -import einops +import numpy as np import pytest import torch -from datasets import Dataset from huggingface_hub import HfApi +from PIL import Image from safetensors.torch import load_file import lerobot -from lerobot.common.datasets.compute_stats import ( - aggregate_stats, - compute_stats, - get_stats_einops_patterns, -) from lerobot.common.datasets.factory import make_dataset +from lerobot.common.datasets.image_writer import image_array_to_pil_image from lerobot.common.datasets.lerobot_dataset import ( LeRobotDataset, MultiLeRobotDataset, @@ -40,20 +37,34 @@ from lerobot.common.datasets.lerobot_dataset import ( from lerobot.common.datasets.utils import ( create_branch, flatten_dict, - hf_transform_to_torch, unflatten_dict, ) from lerobot.common.envs.factory import make_env_config from lerobot.common.policies.factory import make_policy_config from lerobot.common.robot_devices.robots.utils import make_robot -from lerobot.common.utils.random_utils import seeded_context from lerobot.configs.default import DatasetConfig from lerobot.configs.train import TrainPipelineConfig -from tests.fixtures.constants import DUMMY_REPO_ID +from tests.fixtures.constants import DUMMY_CHW, DUMMY_HWC, DUMMY_REPO_ID from tests.utils import DEVICE, require_x86_64_kernel -def test_same_attributes_defined(lerobot_dataset_factory, tmp_path): +@pytest.fixture +def image_dataset(tmp_path, empty_lerobot_dataset_factory): + features = { + "image": { + "dtype": "image", + "shape": DUMMY_CHW, + "names": [ + "channels", + "height", + "width", + ], + } + } + return empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + + +def test_same_attributes_defined(tmp_path, lerobot_dataset_factory): """ Instantiate a LeRobotDataset both ways with '__init__()' and 'create()' and verify that instantiated objects have the same sets of attributes defined. @@ -66,24 +77,20 @@ def test_same_attributes_defined(lerobot_dataset_factory, tmp_path): root_init = tmp_path / "init" dataset_init = lerobot_dataset_factory(root=root_init) - # Access the '_hub_version' cached_property in both instances to force its creation - _ = dataset_init.meta._hub_version - _ = dataset_create.meta._hub_version - init_attr = set(vars(dataset_init).keys()) create_attr = set(vars(dataset_create).keys()) assert init_attr == create_attr -def test_dataset_initialization(lerobot_dataset_factory, tmp_path): +def test_dataset_initialization(tmp_path, lerobot_dataset_factory): kwargs = { "repo_id": DUMMY_REPO_ID, "total_episodes": 10, "total_frames": 400, "episodes": [2, 5, 6], } - dataset = lerobot_dataset_factory(root=tmp_path, **kwargs) + dataset = lerobot_dataset_factory(root=tmp_path / "test", **kwargs) assert dataset.repo_id == kwargs["repo_id"] assert dataset.meta.total_episodes == kwargs["total_episodes"] @@ -93,12 +100,232 @@ def test_dataset_initialization(lerobot_dataset_factory, tmp_path): assert dataset.num_frames == len(dataset) +def test_add_frame_missing_task(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, match="Feature mismatch in `frame` dictionary:\nMissing features: {'task'}\n" + ): + dataset.add_frame({"state": torch.randn(1)}) + + +def test_add_frame_missing_feature(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, match="Feature mismatch in `frame` dictionary:\nMissing features: {'state'}\n" + ): + dataset.add_frame({"task": "Dummy task"}) + + +def test_add_frame_extra_feature(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, match="Feature mismatch in `frame` dictionary:\nExtra features: {'extra'}\n" + ): + dataset.add_frame({"state": torch.randn(1), "task": "Dummy task", "extra": "dummy_extra"}) + + +def test_add_frame_wrong_type(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, match="The feature 'state' of dtype 'float16' is not of the expected dtype 'float32'.\n" + ): + dataset.add_frame({"state": torch.randn(1, dtype=torch.float16), "task": "Dummy task"}) + + +def test_add_frame_wrong_shape(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, + match=re.escape("The feature 'state' of shape '(1,)' does not have the expected shape '(2,)'.\n"), + ): + dataset.add_frame({"state": torch.randn(1), "task": "Dummy task"}) + + +def test_add_frame_wrong_shape_python_float(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, + match=re.escape( + "The feature 'state' is not a 'np.ndarray'. Expected type is 'float32', but type '' provided instead.\n" + ), + ): + dataset.add_frame({"state": 1.0, "task": "Dummy task"}) + + +def test_add_frame_wrong_shape_torch_ndim_0(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, + match=re.escape("The feature 'state' of shape '()' does not have the expected shape '(1,)'.\n"), + ): + dataset.add_frame({"state": torch.tensor(1.0), "task": "Dummy task"}) + + +def test_add_frame_wrong_shape_numpy_ndim_0(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + with pytest.raises( + ValueError, + match=re.escape( + "The feature 'state' is not a 'np.ndarray'. Expected type is 'float32', but type '' provided instead.\n" + ), + ): + dataset.add_frame({"state": np.float32(1.0), "task": "Dummy task"}) + + +def test_add_frame(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(1), "task": "Dummy task"}) + dataset.save_episode() + + assert len(dataset) == 1 + assert dataset[0]["task"] == "Dummy task" + assert dataset[0]["task_index"] == 0 + assert dataset[0]["state"].ndim == 0 + + +def test_add_frame_state_1d(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(2), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].shape == torch.Size([2]) + + +def test_add_frame_state_2d(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2, 4), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(2, 4), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].shape == torch.Size([2, 4]) + + +def test_add_frame_state_3d(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2, 4, 3), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(2, 4, 3), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].shape == torch.Size([2, 4, 3]) + + +def test_add_frame_state_4d(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2, 4, 3, 5), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(2, 4, 3, 5), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].shape == torch.Size([2, 4, 3, 5]) + + +def test_add_frame_state_5d(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (2, 4, 3, 5, 1), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": torch.randn(2, 4, 3, 5, 1), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].shape == torch.Size([2, 4, 3, 5, 1]) + + +def test_add_frame_state_numpy(tmp_path, empty_lerobot_dataset_factory): + features = {"state": {"dtype": "float32", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"state": np.array([1], dtype=np.float32), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["state"].ndim == 0 + + +def test_add_frame_string(tmp_path, empty_lerobot_dataset_factory): + features = {"caption": {"dtype": "string", "shape": (1,), "names": None}} + dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features) + dataset.add_frame({"caption": "Dummy caption", "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["caption"] == "Dummy caption" + + +def test_add_frame_image_wrong_shape(image_dataset): + dataset = image_dataset + with pytest.raises( + ValueError, + match=re.escape( + "The feature 'image' of shape '(3, 128, 96)' does not have the expected shape '(3, 96, 128)' or '(96, 128, 3)'.\n" + ), + ): + c, h, w = DUMMY_CHW + dataset.add_frame({"image": torch.randn(c, w, h), "task": "Dummy task"}) + + +def test_add_frame_image_wrong_range(image_dataset): + """This test will display the following error message from a thread: + ``` + Error writing image ...test_add_frame_image_wrong_ran0/test/images/image/episode_000000/frame_000000.png: + The image data type is float, which requires values in the range [0.0, 1.0]. However, the provided range is [0.009678772038470007, 254.9776492089887]. + Please adjust the range or provide a uint8 image with values in the range [0, 255] + ``` + Hence the image won't be saved on disk and save_episode will raise `FileNotFoundError`. + """ + dataset = image_dataset + dataset.add_frame({"image": np.random.rand(*DUMMY_CHW) * 255, "task": "Dummy task"}) + with pytest.raises(FileNotFoundError): + dataset.save_episode() + + +def test_add_frame_image(image_dataset): + dataset = image_dataset + dataset.add_frame({"image": np.random.rand(*DUMMY_CHW), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["image"].shape == torch.Size(DUMMY_CHW) + + +def test_add_frame_image_h_w_c(image_dataset): + dataset = image_dataset + dataset.add_frame({"image": np.random.rand(*DUMMY_HWC), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["image"].shape == torch.Size(DUMMY_CHW) + + +def test_add_frame_image_uint8(image_dataset): + dataset = image_dataset + image = np.random.randint(0, 256, DUMMY_HWC, dtype=np.uint8) + dataset.add_frame({"image": image, "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["image"].shape == torch.Size(DUMMY_CHW) + + +def test_add_frame_image_pil(image_dataset): + dataset = image_dataset + image = np.random.randint(0, 256, DUMMY_HWC, dtype=np.uint8) + dataset.add_frame({"image": Image.fromarray(image), "task": "Dummy task"}) + dataset.save_episode() + + assert dataset[0]["image"].shape == torch.Size(DUMMY_CHW) + + +def test_image_array_to_pil_image_wrong_range_float_0_255(): + image = np.random.rand(*DUMMY_HWC) * 255 + with pytest.raises(ValueError): + image_array_to_pil_image(image) + + # TODO(aliberts): # - [ ] test various attributes & state from init and create # - [ ] test init with episodes and check num_frames -# - [ ] test add_frame # - [ ] test add_episode -# - [ ] test consolidate # - [ ] test push_to_hub # - [ ] test smaller methods @@ -210,67 +437,6 @@ def test_multidataset_frames(): assert torch.equal(sub_dataset_item[k], dataset_item[k]) -# TODO(aliberts, rcadene): Refactor and move this to a tests/test_compute_stats.py -def test_compute_stats_on_xarm(): - """Check that the statistics are computed correctly according to the stats_patterns property. - - We compare with taking a straight min, mean, max, std of all the data in one pass (which we can do - because we are working with a small dataset). - """ - # TODO(rcadene, aliberts): remove dataset download - dataset = LeRobotDataset("lerobot/xarm_lift_medium", episodes=[0]) - - # reduce size of dataset sample on which stats compute is tested to 10 frames - dataset.hf_dataset = dataset.hf_dataset.select(range(10)) - - # Note: we set the batch size to be smaller than the whole dataset to make sure we are testing batched - # computation of the statistics. While doing this, we also make sure it works when we don't divide the - # dataset into even batches. - computed_stats = compute_stats(dataset, batch_size=int(len(dataset) * 0.25), num_workers=0) - - # get einops patterns to aggregate batches and compute statistics - stats_patterns = get_stats_einops_patterns(dataset) - - # get all frames from the dataset in the same dtype and range as during compute_stats - dataloader = torch.utils.data.DataLoader( - dataset, - num_workers=0, - batch_size=len(dataset), - shuffle=False, - ) - full_batch = next(iter(dataloader)) - - # compute stats based on all frames from the dataset without any batching - expected_stats = {} - for k, pattern in stats_patterns.items(): - full_batch[k] = full_batch[k].float() - expected_stats[k] = {} - expected_stats[k]["mean"] = einops.reduce(full_batch[k], pattern, "mean") - expected_stats[k]["std"] = torch.sqrt( - einops.reduce((full_batch[k] - expected_stats[k]["mean"]) ** 2, pattern, "mean") - ) - expected_stats[k]["min"] = einops.reduce(full_batch[k], pattern, "min") - expected_stats[k]["max"] = einops.reduce(full_batch[k], pattern, "max") - - # test computed stats match expected stats - for k in stats_patterns: - assert torch.allclose(computed_stats[k]["mean"], expected_stats[k]["mean"]) - assert torch.allclose(computed_stats[k]["std"], expected_stats[k]["std"]) - assert torch.allclose(computed_stats[k]["min"], expected_stats[k]["min"]) - assert torch.allclose(computed_stats[k]["max"], expected_stats[k]["max"]) - - # load stats used during training which are expected to match the ones returned by computed_stats - loaded_stats = dataset.meta.stats # noqa: F841 - - # TODO(rcadene): we can't test this because expected_stats is computed on a subset - # # test loaded stats match expected stats - # for k in stats_patterns: - # assert torch.allclose(loaded_stats[k]["mean"], expected_stats[k]["mean"]) - # assert torch.allclose(loaded_stats[k]["std"], expected_stats[k]["std"]) - # assert torch.allclose(loaded_stats[k]["min"], expected_stats[k]["min"]) - # assert torch.allclose(loaded_stats[k]["max"], expected_stats[k]["max"]) - - # TODO(aliberts): Move to more appropriate location def test_flatten_unflatten_dict(): d = { @@ -374,35 +540,6 @@ def test_backward_compatibility(repo_id): # load_and_compare(i - 1) -@pytest.mark.skip("TODO after fix multidataset") -def test_multidataset_aggregate_stats(): - """Makes 3 basic datasets and checks that aggregate stats are computed correctly.""" - with seeded_context(0): - data_a = torch.rand(30, dtype=torch.float32) - data_b = torch.rand(20, dtype=torch.float32) - data_c = torch.rand(20, dtype=torch.float32) - - hf_dataset_1 = Dataset.from_dict( - {"a": data_a[:10], "b": data_b[:10], "c": data_c[:10], "index": torch.arange(10)} - ) - hf_dataset_1.set_transform(hf_transform_to_torch) - hf_dataset_2 = Dataset.from_dict({"a": data_a[10:20], "b": data_b[10:], "index": torch.arange(10)}) - hf_dataset_2.set_transform(hf_transform_to_torch) - hf_dataset_3 = Dataset.from_dict({"a": data_a[20:], "c": data_c[10:], "index": torch.arange(10)}) - hf_dataset_3.set_transform(hf_transform_to_torch) - dataset_1 = LeRobotDataset.from_preloaded("d1", hf_dataset=hf_dataset_1) - dataset_1.stats = compute_stats(dataset_1, batch_size=len(hf_dataset_1), num_workers=0) - dataset_2 = LeRobotDataset.from_preloaded("d2", hf_dataset=hf_dataset_2) - dataset_2.stats = compute_stats(dataset_2, batch_size=len(hf_dataset_2), num_workers=0) - dataset_3 = LeRobotDataset.from_preloaded("d3", hf_dataset=hf_dataset_3) - dataset_3.stats = compute_stats(dataset_3, batch_size=len(hf_dataset_3), num_workers=0) - stats = aggregate_stats([dataset_1, dataset_2, dataset_3]) - for data_key, data in zip(["a", "b", "c"], [data_a, data_b, data_c], strict=True): - for agg_fn in ["mean", "min", "max"]: - assert torch.allclose(stats[data_key][agg_fn], einops.reduce(data, "n -> 1", agg_fn)) - assert torch.allclose(stats[data_key]["std"], torch.std(data, correction=0)) - - @pytest.mark.skip("Requires internet access") def test_create_branch(): api = HfApi() @@ -431,9 +568,9 @@ def test_create_branch(): def test_dataset_feature_with_forward_slash_raises_error(): # make sure dir does not exist - from lerobot.common.datasets.lerobot_dataset import LEROBOT_HOME + from lerobot.common.constants import HF_LEROBOT_HOME - dataset_dir = LEROBOT_HOME / "lerobot/test/with/slash" + dataset_dir = HF_LEROBOT_HOME / "lerobot/test/with/slash" # make sure does not exist if dataset_dir.exists(): dataset_dir.rmdir() diff --git a/tests/test_delta_timestamps.py b/tests/test_delta_timestamps.py index 3516583d..3e3b83ac 100644 --- a/tests/test_delta_timestamps.py +++ b/tests/test_delta_timestamps.py @@ -1,55 +1,78 @@ +from itertools import accumulate + +import datasets +import numpy as np +import pyarrow.compute as pc import pytest import torch -from datasets import Dataset from lerobot.common.datasets.utils import ( - calculate_episode_data_index, check_delta_timestamps, check_timestamps_sync, get_delta_indices, - hf_transform_to_torch, ) from tests.fixtures.constants import DUMMY_MOTOR_FEATURES -@pytest.fixture(scope="module") -def synced_hf_dataset_factory(hf_dataset_factory): - def _create_synced_hf_dataset(fps: int = 30) -> Dataset: - return hf_dataset_factory(fps=fps) +def calculate_total_episode( + hf_dataset: datasets.Dataset, raise_if_not_contiguous: bool = True +) -> dict[str, torch.Tensor]: + episode_indices = sorted(hf_dataset.unique("episode_index")) + total_episodes = len(episode_indices) + if raise_if_not_contiguous and episode_indices != list(range(total_episodes)): + raise ValueError("episode_index values are not sorted and contiguous.") + return total_episodes - return _create_synced_hf_dataset + +def calculate_episode_data_index(hf_dataset: datasets.Dataset) -> dict[str, np.ndarray]: + episode_lengths = [] + table = hf_dataset.data.table + total_episodes = calculate_total_episode(hf_dataset) + for ep_idx in range(total_episodes): + ep_table = table.filter(pc.equal(table["episode_index"], ep_idx)) + episode_lengths.insert(ep_idx, len(ep_table)) + + cumulative_lenghts = list(accumulate(episode_lengths)) + return { + "from": np.array([0] + cumulative_lenghts[:-1], dtype=np.int64), + "to": np.array(cumulative_lenghts, dtype=np.int64), + } @pytest.fixture(scope="module") -def unsynced_hf_dataset_factory(synced_hf_dataset_factory): - def _create_unsynced_hf_dataset(fps: int = 30, tolerance_s: float = 1e-4) -> Dataset: - hf_dataset = synced_hf_dataset_factory(fps=fps) - features = hf_dataset.features - df = hf_dataset.to_pandas() - dtype = df["timestamp"].dtype # This is to avoid pandas type warning - # Modify a single timestamp just outside tolerance - df.at[30, "timestamp"] = dtype.type(df.at[30, "timestamp"] + (tolerance_s * 1.1)) - unsynced_hf_dataset = Dataset.from_pandas(df, features=features) - unsynced_hf_dataset.set_transform(hf_transform_to_torch) - return unsynced_hf_dataset +def synced_timestamps_factory(hf_dataset_factory): + def _create_synced_timestamps(fps: int = 30) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + hf_dataset = hf_dataset_factory(fps=fps) + timestamps = torch.stack(hf_dataset["timestamp"]).numpy() + episode_indices = torch.stack(hf_dataset["episode_index"]).numpy() + episode_data_index = calculate_episode_data_index(hf_dataset) + return timestamps, episode_indices, episode_data_index - return _create_unsynced_hf_dataset + return _create_synced_timestamps @pytest.fixture(scope="module") -def slightly_off_hf_dataset_factory(synced_hf_dataset_factory): - def _create_slightly_off_hf_dataset(fps: int = 30, tolerance_s: float = 1e-4) -> Dataset: - hf_dataset = synced_hf_dataset_factory(fps=fps) - features = hf_dataset.features - df = hf_dataset.to_pandas() - dtype = df["timestamp"].dtype # This is to avoid pandas type warning - # Modify a single timestamp just inside tolerance - df.at[30, "timestamp"] = dtype.type(df.at[30, "timestamp"] + (tolerance_s * 0.9)) - unsynced_hf_dataset = Dataset.from_pandas(df, features=features) - unsynced_hf_dataset.set_transform(hf_transform_to_torch) - return unsynced_hf_dataset +def unsynced_timestamps_factory(synced_timestamps_factory): + def _create_unsynced_timestamps( + fps: int = 30, tolerance_s: float = 1e-4 + ) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + timestamps, episode_indices, episode_data_index = synced_timestamps_factory(fps=fps) + timestamps[30] += tolerance_s * 1.1 # Modify a single timestamp just outside tolerance + return timestamps, episode_indices, episode_data_index - return _create_slightly_off_hf_dataset + return _create_unsynced_timestamps + + +@pytest.fixture(scope="module") +def slightly_off_timestamps_factory(synced_timestamps_factory): + def _create_slightly_off_timestamps( + fps: int = 30, tolerance_s: float = 1e-4 + ) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + timestamps, episode_indices, episode_data_index = synced_timestamps_factory(fps=fps) + timestamps[30] += tolerance_s * 0.9 # Modify a single timestamp just inside tolerance + return timestamps, episode_indices, episode_data_index + + return _create_slightly_off_timestamps @pytest.fixture(scope="module") @@ -100,42 +123,42 @@ def delta_indices_factory(): return _delta_indices -def test_check_timestamps_sync_synced(synced_hf_dataset_factory): +def test_check_timestamps_sync_synced(synced_timestamps_factory): fps = 30 tolerance_s = 1e-4 - synced_hf_dataset = synced_hf_dataset_factory(fps) - episode_data_index = calculate_episode_data_index(synced_hf_dataset) + timestamps, ep_idx, ep_data_index = synced_timestamps_factory(fps) result = check_timestamps_sync( - hf_dataset=synced_hf_dataset, - episode_data_index=episode_data_index, + timestamps=timestamps, + episode_indices=ep_idx, + episode_data_index=ep_data_index, fps=fps, tolerance_s=tolerance_s, ) assert result is True -def test_check_timestamps_sync_unsynced(unsynced_hf_dataset_factory): +def test_check_timestamps_sync_unsynced(unsynced_timestamps_factory): fps = 30 tolerance_s = 1e-4 - unsynced_hf_dataset = unsynced_hf_dataset_factory(fps, tolerance_s) - episode_data_index = calculate_episode_data_index(unsynced_hf_dataset) + timestamps, ep_idx, ep_data_index = unsynced_timestamps_factory(fps, tolerance_s) with pytest.raises(ValueError): check_timestamps_sync( - hf_dataset=unsynced_hf_dataset, - episode_data_index=episode_data_index, + timestamps=timestamps, + episode_indices=ep_idx, + episode_data_index=ep_data_index, fps=fps, tolerance_s=tolerance_s, ) -def test_check_timestamps_sync_unsynced_no_exception(unsynced_hf_dataset_factory): +def test_check_timestamps_sync_unsynced_no_exception(unsynced_timestamps_factory): fps = 30 tolerance_s = 1e-4 - unsynced_hf_dataset = unsynced_hf_dataset_factory(fps, tolerance_s) - episode_data_index = calculate_episode_data_index(unsynced_hf_dataset) + timestamps, ep_idx, ep_data_index = unsynced_timestamps_factory(fps, tolerance_s) result = check_timestamps_sync( - hf_dataset=unsynced_hf_dataset, - episode_data_index=episode_data_index, + timestamps=timestamps, + episode_indices=ep_idx, + episode_data_index=ep_data_index, fps=fps, tolerance_s=tolerance_s, raise_value_error=False, @@ -143,14 +166,14 @@ def test_check_timestamps_sync_unsynced_no_exception(unsynced_hf_dataset_factory assert result is False -def test_check_timestamps_sync_slightly_off(slightly_off_hf_dataset_factory): +def test_check_timestamps_sync_slightly_off(slightly_off_timestamps_factory): fps = 30 tolerance_s = 1e-4 - slightly_off_hf_dataset = slightly_off_hf_dataset_factory(fps, tolerance_s) - episode_data_index = calculate_episode_data_index(slightly_off_hf_dataset) + timestamps, ep_idx, ep_data_index = slightly_off_timestamps_factory(fps, tolerance_s) result = check_timestamps_sync( - hf_dataset=slightly_off_hf_dataset, - episode_data_index=episode_data_index, + timestamps=timestamps, + episode_indices=ep_idx, + episode_data_index=ep_data_index, fps=fps, tolerance_s=tolerance_s, ) @@ -158,33 +181,13 @@ def test_check_timestamps_sync_slightly_off(slightly_off_hf_dataset_factory): def test_check_timestamps_sync_single_timestamp(): - single_timestamp_hf_dataset = Dataset.from_dict({"timestamp": [0.0], "episode_index": [0]}) - single_timestamp_hf_dataset.set_transform(hf_transform_to_torch) - episode_data_index = {"to": torch.tensor([1]), "from": torch.tensor([0])} fps = 30 tolerance_s = 1e-4 + timestamps, ep_idx = np.array([0.0]), np.array([0]) + episode_data_index = {"to": np.array([1]), "from": np.array([0])} result = check_timestamps_sync( - hf_dataset=single_timestamp_hf_dataset, - episode_data_index=episode_data_index, - fps=fps, - tolerance_s=tolerance_s, - ) - assert result is True - - -# TODO(aliberts): Change behavior of hf_transform_to_torch so that it can work with empty dataset -@pytest.mark.skip("TODO: fix") -def test_check_timestamps_sync_empty_dataset(): - fps = 30 - tolerance_s = 1e-4 - empty_hf_dataset = Dataset.from_dict({"timestamp": [], "episode_index": []}) - empty_hf_dataset.set_transform(hf_transform_to_torch) - episode_data_index = { - "to": torch.tensor([], dtype=torch.int64), - "from": torch.tensor([], dtype=torch.int64), - } - result = check_timestamps_sync( - hf_dataset=empty_hf_dataset, + timestamps=timestamps, + episode_indices=ep_idx, episode_data_index=episode_data_index, fps=fps, tolerance_s=tolerance_s, diff --git a/tests/test_examples.py b/tests/test_examples.py index f3b7948c..aabec69a 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -53,7 +53,7 @@ def test_example_1(tmp_path, lerobot_dataset_factory): ('repo_id = "lerobot/pusht"', f'repo_id = "{DUMMY_REPO_ID}"'), ( "LeRobotDataset(repo_id", - f"LeRobotDataset(repo_id, root='{str(tmp_path)}', local_files_only=True", + f"LeRobotDataset(repo_id, root='{str(tmp_path)}'", ), ], ) diff --git a/tests/test_image_writer.py b/tests/test_image_writer.py index f51e86b4..c7fc11f2 100644 --- a/tests/test_image_writer.py +++ b/tests/test_image_writer.py @@ -9,10 +9,11 @@ from PIL import Image from lerobot.common.datasets.image_writer import ( AsyncImageWriter, - image_array_to_image, + image_array_to_pil_image, safe_stop_image_writer, write_image, ) +from tests.fixtures.constants import DUMMY_HWC DUMMY_IMAGE = "test_image.png" @@ -48,49 +49,62 @@ def test_zero_threads(): AsyncImageWriter(num_processes=0, num_threads=0) -def test_image_array_to_image_rgb(img_array_factory): +def test_image_array_to_pil_image_float_array_wrong_range_0_255(): + image = np.random.rand(*DUMMY_HWC) * 255 + with pytest.raises(ValueError): + image_array_to_pil_image(image) + + +def test_image_array_to_pil_image_float_array_wrong_range_neg_1_1(): + image = np.random.rand(*DUMMY_HWC) * 2 - 1 + with pytest.raises(ValueError): + image_array_to_pil_image(image) + + +def test_image_array_to_pil_image_rgb(img_array_factory): img_array = img_array_factory(100, 100) - result_image = image_array_to_image(img_array) + result_image = image_array_to_pil_image(img_array) assert isinstance(result_image, Image.Image) assert result_image.size == (100, 100) assert result_image.mode == "RGB" -def test_image_array_to_image_pytorch_format(img_array_factory): +def test_image_array_to_pil_image_pytorch_format(img_array_factory): img_array = img_array_factory(100, 100).transpose(2, 0, 1) - result_image = image_array_to_image(img_array) + result_image = image_array_to_pil_image(img_array) assert isinstance(result_image, Image.Image) assert result_image.size == (100, 100) assert result_image.mode == "RGB" -@pytest.mark.skip("TODO: implement") -def test_image_array_to_image_single_channel(img_array_factory): +def test_image_array_to_pil_image_single_channel(img_array_factory): img_array = img_array_factory(channels=1) - result_image = image_array_to_image(img_array) - assert isinstance(result_image, Image.Image) - assert result_image.size == (100, 100) - assert result_image.mode == "L" + with pytest.raises(NotImplementedError): + image_array_to_pil_image(img_array) -def test_image_array_to_image_float_array(img_array_factory): +def test_image_array_to_pil_image_4_channels(img_array_factory): + img_array = img_array_factory(channels=4) + with pytest.raises(NotImplementedError): + image_array_to_pil_image(img_array) + + +def test_image_array_to_pil_image_float_array(img_array_factory): img_array = img_array_factory(dtype=np.float32) - result_image = image_array_to_image(img_array) + result_image = image_array_to_pil_image(img_array) assert isinstance(result_image, Image.Image) assert result_image.size == (100, 100) assert result_image.mode == "RGB" assert np.array(result_image).dtype == np.uint8 -def test_image_array_to_image_out_of_bounds_float(): - # Float array with values out of [0, 1] - img_array = np.random.uniform(-1, 2, size=(100, 100, 3)).astype(np.float32) - result_image = image_array_to_image(img_array) +def test_image_array_to_pil_image_uint8_array(img_array_factory): + img_array = img_array_factory(dtype=np.float32) + result_image = image_array_to_pil_image(img_array) assert isinstance(result_image, Image.Image) assert result_image.size == (100, 100) assert result_image.mode == "RGB" assert np.array(result_image).dtype == np.uint8 - assert np.array(result_image).min() >= 0 and np.array(result_image).max() <= 255 def test_write_image_numpy(tmp_path, img_array_factory): diff --git a/tests/test_push_dataset_to_hub.py b/tests/test_push_dataset_to_hub.py deleted file mode 100644 index a0c8d908..00000000 --- a/tests/test_push_dataset_to_hub.py +++ /dev/null @@ -1,370 +0,0 @@ -""" -This file contains generic tests to ensure that nothing breaks if we modify the push_dataset_to_hub API. -Also, this file contains backward compatibility tests. Because they are slow and require to download the raw datasets, -we skip them for now in our CI. - -Example to run backward compatiblity tests locally: -``` -python -m pytest --run-skipped tests/test_push_dataset_to_hub.py::test_push_dataset_to_hub_pusht_backward_compatibility -``` -""" - -from pathlib import Path - -import numpy as np -import pytest -import torch - -from lerobot.common.datasets.lerobot_dataset import LeRobotDataset -from lerobot.common.datasets.push_dataset_to_hub.utils import save_images_concurrently -from lerobot.common.datasets.video_utils import encode_video_frames -from lerobot.scripts.push_dataset_to_hub import push_dataset_to_hub -from tests.utils import require_package_arg - - -def _mock_download_raw_pusht(raw_dir, num_frames=4, num_episodes=3): - import zarr - - raw_dir.mkdir(parents=True, exist_ok=True) - zarr_path = raw_dir / "pusht_cchi_v7_replay.zarr" - store = zarr.DirectoryStore(zarr_path) - zarr_data = zarr.group(store=store) - - zarr_data.create_dataset( - "data/action", shape=(num_frames, 1), chunks=(num_frames, 1), dtype=np.float32, overwrite=True - ) - zarr_data.create_dataset( - "data/img", - shape=(num_frames, 96, 96, 3), - chunks=(num_frames, 96, 96, 3), - dtype=np.uint8, - overwrite=True, - ) - zarr_data.create_dataset( - "data/n_contacts", shape=(num_frames, 2), chunks=(num_frames, 2), dtype=np.float32, overwrite=True - ) - zarr_data.create_dataset( - "data/state", shape=(num_frames, 5), chunks=(num_frames, 5), dtype=np.float32, overwrite=True - ) - zarr_data.create_dataset( - "data/keypoint", shape=(num_frames, 9, 2), chunks=(num_frames, 9, 2), dtype=np.float32, overwrite=True - ) - zarr_data.create_dataset( - "meta/episode_ends", shape=(num_episodes,), chunks=(num_episodes,), dtype=np.int32, overwrite=True - ) - - zarr_data["data/action"][:] = np.random.randn(num_frames, 1) - zarr_data["data/img"][:] = np.random.randint(0, 255, size=(num_frames, 96, 96, 3), dtype=np.uint8) - zarr_data["data/n_contacts"][:] = np.random.randn(num_frames, 2) - zarr_data["data/state"][:] = np.random.randn(num_frames, 5) - zarr_data["data/keypoint"][:] = np.random.randn(num_frames, 9, 2) - zarr_data["meta/episode_ends"][:] = np.array([1, 3, 4]) - - store.close() - - -def _mock_download_raw_umi(raw_dir, num_frames=4, num_episodes=3): - import zarr - - raw_dir.mkdir(parents=True, exist_ok=True) - zarr_path = raw_dir / "cup_in_the_wild.zarr" - store = zarr.DirectoryStore(zarr_path) - zarr_data = zarr.group(store=store) - - zarr_data.create_dataset( - "data/camera0_rgb", - shape=(num_frames, 96, 96, 3), - chunks=(num_frames, 96, 96, 3), - dtype=np.uint8, - overwrite=True, - ) - zarr_data.create_dataset( - "data/robot0_demo_end_pose", - shape=(num_frames, 5), - chunks=(num_frames, 5), - dtype=np.float32, - overwrite=True, - ) - zarr_data.create_dataset( - "data/robot0_demo_start_pose", - shape=(num_frames, 5), - chunks=(num_frames, 5), - dtype=np.float32, - overwrite=True, - ) - zarr_data.create_dataset( - "data/robot0_eef_pos", shape=(num_frames, 5), chunks=(num_frames, 5), dtype=np.float32, overwrite=True - ) - zarr_data.create_dataset( - "data/robot0_eef_rot_axis_angle", - shape=(num_frames, 5), - chunks=(num_frames, 5), - dtype=np.float32, - overwrite=True, - ) - zarr_data.create_dataset( - "data/robot0_gripper_width", - shape=(num_frames, 5), - chunks=(num_frames, 5), - dtype=np.float32, - overwrite=True, - ) - zarr_data.create_dataset( - "meta/episode_ends", shape=(num_episodes,), chunks=(num_episodes,), dtype=np.int32, overwrite=True - ) - - zarr_data["data/camera0_rgb"][:] = np.random.randint(0, 255, size=(num_frames, 96, 96, 3), dtype=np.uint8) - zarr_data["data/robot0_demo_end_pose"][:] = np.random.randn(num_frames, 5) - zarr_data["data/robot0_demo_start_pose"][:] = np.random.randn(num_frames, 5) - zarr_data["data/robot0_eef_pos"][:] = np.random.randn(num_frames, 5) - zarr_data["data/robot0_eef_rot_axis_angle"][:] = np.random.randn(num_frames, 5) - zarr_data["data/robot0_gripper_width"][:] = np.random.randn(num_frames, 5) - zarr_data["meta/episode_ends"][:] = np.array([1, 3, 4]) - - store.close() - - -def _mock_download_raw_xarm(raw_dir, num_frames=4): - import pickle - - dataset_dict = { - "observations": { - "rgb": np.random.randint(0, 255, size=(num_frames, 3, 84, 84), dtype=np.uint8), - "state": np.random.randn(num_frames, 4), - }, - "actions": np.random.randn(num_frames, 3), - "rewards": np.random.randn(num_frames), - "masks": np.random.randn(num_frames), - "dones": np.array([False, True, True, True]), - } - - raw_dir.mkdir(parents=True, exist_ok=True) - pkl_path = raw_dir / "buffer.pkl" - with open(pkl_path, "wb") as f: - pickle.dump(dataset_dict, f) - - -def _mock_download_raw_aloha(raw_dir, num_frames=6, num_episodes=3): - import h5py - - for ep_idx in range(num_episodes): - raw_dir.mkdir(parents=True, exist_ok=True) - path_h5 = raw_dir / f"episode_{ep_idx}.hdf5" - with h5py.File(str(path_h5), "w") as f: - f.create_dataset("action", data=np.random.randn(num_frames // num_episodes, 14)) - f.create_dataset("observations/qpos", data=np.random.randn(num_frames // num_episodes, 14)) - f.create_dataset("observations/qvel", data=np.random.randn(num_frames // num_episodes, 14)) - f.create_dataset( - "observations/images/top", - data=np.random.randint( - 0, 255, size=(num_frames // num_episodes, 480, 640, 3), dtype=np.uint8 - ), - ) - - -def _mock_download_raw_dora(raw_dir, num_frames=6, num_episodes=3, fps=30): - from datetime import datetime, timedelta, timezone - - import pandas - - def write_parquet(key, timestamps, values): - data = { - "timestamp_utc": timestamps, - key: values, - } - df = pandas.DataFrame(data) - raw_dir.mkdir(parents=True, exist_ok=True) - df.to_parquet(raw_dir / f"{key}.parquet", engine="pyarrow") - - episode_indices = [None, None, -1, None, None, -1, None, None, -1] - episode_indices_mapping = [0, 0, 0, 1, 1, 1, 2, 2, 2] - frame_indices = [0, 1, -1, 0, 1, -1, 0, 1, -1] - - cam_key = "observation.images.cam_high" - timestamps = [] - actions = [] - states = [] - frames = [] - # `+ num_episodes`` for buffer frames associated to episode_index=-1 - for i, frame_idx in enumerate(frame_indices): - t_utc = datetime.now(timezone.utc) + timedelta(seconds=i / fps) - action = np.random.randn(21).tolist() - state = np.random.randn(21).tolist() - ep_idx = episode_indices_mapping[i] - frame = [{"path": f"videos/{cam_key}_episode_{ep_idx:06d}.mp4", "timestamp": frame_idx / fps}] - timestamps.append(t_utc) - actions.append(action) - states.append(state) - frames.append(frame) - - write_parquet(cam_key, timestamps, frames) - write_parquet("observation.state", timestamps, states) - write_parquet("action", timestamps, actions) - write_parquet("episode_index", timestamps, episode_indices) - - # write fake mp4 file for each episode - for ep_idx in range(num_episodes): - imgs_array = np.random.randint(0, 255, size=(num_frames // num_episodes, 480, 640, 3), dtype=np.uint8) - - tmp_imgs_dir = raw_dir / "tmp_images" - save_images_concurrently(imgs_array, tmp_imgs_dir) - - fname = f"{cam_key}_episode_{ep_idx:06d}.mp4" - video_path = raw_dir / "videos" / fname - encode_video_frames(tmp_imgs_dir, video_path, fps, vcodec="libx264") - - -def _mock_download_raw(raw_dir, repo_id): - if "wrist_gripper" in repo_id: - _mock_download_raw_dora(raw_dir) - elif "aloha" in repo_id: - _mock_download_raw_aloha(raw_dir) - elif "pusht" in repo_id: - _mock_download_raw_pusht(raw_dir) - elif "xarm" in repo_id: - _mock_download_raw_xarm(raw_dir) - elif "umi" in repo_id: - _mock_download_raw_umi(raw_dir) - else: - raise ValueError(repo_id) - - -@pytest.mark.skip("push_dataset_to_hub is deprecated") -def test_push_dataset_to_hub_invalid_repo_id(tmpdir): - with pytest.raises(ValueError): - push_dataset_to_hub(Path(tmpdir), "raw_format", "invalid_repo_id") - - -@pytest.mark.skip("push_dataset_to_hub is deprecated") -def test_push_dataset_to_hub_out_dir_force_override_false(tmpdir): - tmpdir = Path(tmpdir) - out_dir = tmpdir / "out" - raw_dir = tmpdir / "raw" - # mkdir to skip download - raw_dir.mkdir(parents=True, exist_ok=True) - with pytest.raises(ValueError): - push_dataset_to_hub( - raw_dir=raw_dir, - raw_format="some_format", - repo_id="user/dataset", - local_dir=out_dir, - force_override=False, - ) - - -@pytest.mark.skip("push_dataset_to_hub is deprecated") -@pytest.mark.parametrize( - "required_packages, raw_format, repo_id, make_test_data", - [ - (["gym_pusht"], "pusht_zarr", "lerobot/pusht", False), - (["gym_pusht"], "pusht_zarr", "lerobot/pusht", True), - (None, "xarm_pkl", "lerobot/xarm_lift_medium", False), - (None, "aloha_hdf5", "lerobot/aloha_sim_insertion_scripted", False), - (["imagecodecs"], "umi_zarr", "lerobot/umi_cup_in_the_wild", False), - (None, "dora_parquet", "cadene/wrist_gripper", False), - ], -) -@require_package_arg -def test_push_dataset_to_hub_format(required_packages, tmpdir, raw_format, repo_id, make_test_data): - num_episodes = 3 - tmpdir = Path(tmpdir) - - raw_dir = tmpdir / f"{repo_id}_raw" - _mock_download_raw(raw_dir, repo_id) - - local_dir = tmpdir / repo_id - - lerobot_dataset = push_dataset_to_hub( - raw_dir=raw_dir, - raw_format=raw_format, - repo_id=repo_id, - push_to_hub=False, - local_dir=local_dir, - force_override=False, - cache_dir=tmpdir / "cache", - tests_data_dir=tmpdir / "tests/data" if make_test_data else None, - encoding={"vcodec": "libx264"}, - ) - - # minimal generic tests on the local directory containing LeRobotDataset - assert (local_dir / "meta_data" / "info.json").exists() - assert (local_dir / "meta_data" / "stats.safetensors").exists() - assert (local_dir / "meta_data" / "episode_data_index.safetensors").exists() - for i in range(num_episodes): - for cam_key in lerobot_dataset.camera_keys: - assert (local_dir / "videos" / f"{cam_key}_episode_{i:06d}.mp4").exists() - assert (local_dir / "train" / "dataset_info.json").exists() - assert (local_dir / "train" / "state.json").exists() - assert len(list((local_dir / "train").glob("*.arrow"))) > 0 - - # minimal generic tests on the item - item = lerobot_dataset[0] - assert "index" in item - assert "episode_index" in item - assert "timestamp" in item - for cam_key in lerobot_dataset.camera_keys: - assert cam_key in item - - if make_test_data: - # Check that only the first episode is selected. - test_dataset = LeRobotDataset(repo_id=repo_id, root=tmpdir / "tests/data") - num_frames = sum( - i == lerobot_dataset.hf_dataset["episode_index"][0] - for i in lerobot_dataset.hf_dataset["episode_index"] - ).item() - assert ( - test_dataset.hf_dataset["episode_index"] - == lerobot_dataset.hf_dataset["episode_index"][:num_frames] - ) - for k in ["from", "to"]: - assert torch.equal(test_dataset.episode_data_index[k], lerobot_dataset.episode_data_index[k][:1]) - - -@pytest.mark.skip("push_dataset_to_hub is deprecated") -@pytest.mark.parametrize( - "raw_format, repo_id", - [ - # TODO(rcadene): add raw dataset test artifacts - ("pusht_zarr", "lerobot/pusht"), - ("xarm_pkl", "lerobot/xarm_lift_medium"), - ("aloha_hdf5", "lerobot/aloha_sim_insertion_scripted"), - ("umi_zarr", "lerobot/umi_cup_in_the_wild"), - ("dora_parquet", "cadene/wrist_gripper"), - ], -) -def test_push_dataset_to_hub_pusht_backward_compatibility(tmpdir, raw_format, repo_id): - _, dataset_id = repo_id.split("/") - - tmpdir = Path(tmpdir) - raw_dir = tmpdir / f"{dataset_id}_raw" - local_dir = tmpdir / repo_id - - push_dataset_to_hub( - raw_dir=raw_dir, - raw_format=raw_format, - repo_id=repo_id, - push_to_hub=False, - local_dir=local_dir, - force_override=False, - cache_dir=tmpdir / "cache", - episodes=[0], - ) - - ds_actual = LeRobotDataset(repo_id, root=tmpdir) - ds_reference = LeRobotDataset(repo_id) - - assert len(ds_reference.hf_dataset) == len(ds_actual.hf_dataset) - - def check_same_items(item1, item2): - assert item1.keys() == item2.keys(), "Keys mismatch" - - for key in item1: - if isinstance(item1[key], torch.Tensor) and isinstance(item2[key], torch.Tensor): - assert torch.equal(item1[key], item2[key]), f"Mismatch found in key: {key}" - else: - assert item1[key] == item2[key], f"Mismatch found in key: {key}" - - for i in range(len(ds_reference.hf_dataset)): - item_reference = ds_reference.hf_dataset[i] - item_actual = ds_actual.hf_dataset[i] - check_same_items(item_reference, item_actual) diff --git a/tests/test_robots.py b/tests/test_robots.py index e03b5f78..6c300b71 100644 --- a/tests/test_robots.py +++ b/tests/test_robots.py @@ -23,8 +23,6 @@ pytest -sx 'tests/test_robots.py::test_robot[aloha-True]' ``` """ -from pathlib import Path - import pytest import torch @@ -35,7 +33,7 @@ from tests.utils import TEST_ROBOT_TYPES, mock_calibration_dir, require_robot @pytest.mark.parametrize("robot_type, mock", TEST_ROBOT_TYPES) @require_robot -def test_robot(tmpdir, request, robot_type, mock): +def test_robot(tmp_path, request, robot_type, mock): # TODO(rcadene): measure fps in nightly? # TODO(rcadene): test logs # TODO(rcadene): add compatibility with other robots @@ -50,8 +48,7 @@ def test_robot(tmpdir, request, robot_type, mock): request.getfixturevalue("patch_builtins_input") # Create an empty calibration directory to trigger manual calibration - tmpdir = Path(tmpdir) - calibration_dir = tmpdir / robot_type + calibration_dir = tmp_path / robot_type mock_calibration_dir(calibration_dir) robot_kwargs["calibration_dir"] = calibration_dir From eecf32e77a73c3e4ad243021719a41adaa3b0f82 Mon Sep 17 00:00:00 2001 From: Haskely Date: Wed, 26 Feb 2025 00:27:36 +0800 Subject: [PATCH 03/70] feat: Add root directory option for dataset configuration (#765) Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com> --- lerobot/common/datasets/factory.py | 5 ++++- lerobot/configs/default.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lerobot/common/datasets/factory.py b/lerobot/common/datasets/factory.py index fb1fe6d6..38c01b42 100644 --- a/lerobot/common/datasets/factory.py +++ b/lerobot/common/datasets/factory.py @@ -83,10 +83,13 @@ def make_dataset(cfg: TrainPipelineConfig) -> LeRobotDataset | MultiLeRobotDatas ) if isinstance(cfg.dataset.repo_id, str): - ds_meta = LeRobotDatasetMetadata(cfg.dataset.repo_id, revision=cfg.dataset.revision) + ds_meta = LeRobotDatasetMetadata( + cfg.dataset.repo_id, root=cfg.dataset.root, revision=cfg.dataset.revision + ) delta_timestamps = resolve_delta_timestamps(cfg.policy, ds_meta) dataset = LeRobotDataset( cfg.dataset.repo_id, + root=cfg.dataset.root, episodes=cfg.dataset.episodes, delta_timestamps=delta_timestamps, image_transforms=image_transforms, diff --git a/lerobot/configs/default.py b/lerobot/configs/default.py index a5013431..0dc7f4c7 100644 --- a/lerobot/configs/default.py +++ b/lerobot/configs/default.py @@ -29,6 +29,8 @@ class DatasetConfig: # "dataset_index" into the returned item. The index mapping is made according to the order in which the # datsets are provided. repo_id: str + # Root directory where the dataset will be stored (e.g. 'dataset/path'). + root: str | None = None episodes: list[int] | None = None image_transforms: ImageTransformsConfig = field(default_factory=ImageTransformsConfig) revision: str | None = None From e64fad2224ba01e21ed698b1a07a8ead81252177 Mon Sep 17 00:00:00 2001 From: Yongjin Cho Date: Wed, 26 Feb 2025 02:33:32 +0900 Subject: [PATCH 04/70] Fix the URL to setup hardware Aloha Stationary in the example document (#766) --- examples/9_use_aloha.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/9_use_aloha.md b/examples/9_use_aloha.md index d74c8b7a..5d2843fa 100644 --- a/examples/9_use_aloha.md +++ b/examples/9_use_aloha.md @@ -2,7 +2,7 @@ This tutorial explains how to use [Aloha and Aloha 2 stationary](https://www.tro ## Setup -Follow the [documentation from Trossen Robotics](https://docs.trossenrobotics.com/aloha_docs/getting_started/stationary/hardware_setup.html) for setting up the hardware and plugging the 4 arms and 4 cameras to your computer. +Follow the [documentation from Trossen Robotics](https://docs.trossenrobotics.com/aloha_docs/2.0/getting_started/stationary/hardware_setup.html) for setting up the hardware and plugging the 4 arms and 4 cameras to your computer. ## Install LeRobot From 75d5fa4604bb2e812a869a2d4f3dc805e56faec6 Mon Sep 17 00:00:00 2001 From: Youssef Bayouli <75679079+YoussefBayouli@users.noreply.github.com> Date: Tue, 25 Feb 2025 18:42:35 +0100 Subject: [PATCH 05/70] Optimizing Dockerfile (#751) --- docker/lerobot-gpu/Dockerfile | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/docker/lerobot-gpu/Dockerfile b/docker/lerobot-gpu/Dockerfile index 65ca4377..b2898b97 100644 --- a/docker/lerobot-gpu/Dockerfile +++ b/docker/lerobot-gpu/Dockerfile @@ -1,31 +1,25 @@ FROM nvidia/cuda:12.4.1-base-ubuntu22.04 -# Configure image +# Configure environment variables ARG PYTHON_VERSION=3.10 -ARG DEBIAN_FRONTEND=noninteractive +ENV DEBIAN_FRONTEND=noninteractive +ENV MUJOCO_GL="egl" +ENV PATH="/opt/venv/bin:$PATH" - -# Install apt dependencies +# Install dependencies and set up Python in a single layer RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git git-lfs \ libglib2.0-0 libgl1-mesa-glx libegl1-mesa ffmpeg \ speech-dispatcher libgeos-dev \ python${PYTHON_VERSION}-dev python${PYTHON_VERSION}-venv \ - && apt-get clean && rm -rf /var/lib/apt/lists/* + && ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python \ + && python -m venv /opt/venv \ + && apt-get clean && rm -rf /var/lib/apt/lists/* \ + && echo "source /opt/venv/bin/activate" >> /root/.bashrc - -# Create virtual environment -RUN ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python -RUN python -m venv /opt/venv -ENV PATH="/opt/venv/bin:$PATH" -RUN echo "source /opt/venv/bin/activate" >> /root/.bashrc - -# Install LeRobot -RUN git lfs install -RUN git clone https://github.com/huggingface/lerobot.git /lerobot +# Clone repository and install LeRobot in a single layer WORKDIR /lerobot -RUN pip install --upgrade --no-cache-dir pip -RUN pip install --no-cache-dir ".[test, aloha, xarm, pusht, dynamixel]" - -# Set EGL as the rendering backend for MuJoCo -ENV MUJOCO_GL="egl" +RUN git lfs install \ + && git clone https://github.com/huggingface/lerobot.git . \ + && /opt/venv/bin/pip install --upgrade --no-cache-dir pip \ + && /opt/venv/bin/pip install --no-cache-dir ".[test, aloha, xarm, pusht, dynamixel]" From 65db5afe1c4664ce27503fc982d65ee83b23db66 Mon Sep 17 00:00:00 2001 From: Raul Garreta Date: Tue, 25 Feb 2025 10:03:29 -0800 Subject: [PATCH 06/70] fixes in 7_get_started_with_real_robot.md (#677) --- examples/7_get_started_with_real_robot.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/examples/7_get_started_with_real_robot.md b/examples/7_get_started_with_real_robot.md index 638b54d3..be22d4a5 100644 --- a/examples/7_get_started_with_real_robot.md +++ b/examples/7_get_started_with_real_robot.md @@ -626,7 +626,7 @@ Finally, run this code to instantiate and connectyour camera: from lerobot.common.robot_devices.cameras.configs import OpenCVCameraConfig from lerobot.common.robot_devices.cameras.opencv import OpenCVCamera -camera_config = OpenCVCameraConfig(camera_index=0) +config = OpenCVCameraConfig(camera_index=0) camera = OpenCVCamera(config) camera.connect() color_image = camera.read() @@ -668,13 +668,15 @@ Additionaly, you can set up your robot to work with your cameras. Modify the following Python code with the appropriate camera names and configurations: ```python robot = ManipulatorRobot( - leader_arms={"main": leader_arm}, - follower_arms={"main": follower_arm}, - calibration_dir=".cache/calibration/koch", - cameras={ - "laptop": OpenCVCameraConfig(0, fps=30, width=640, height=480), - "phone": OpenCVCameraConfig(1, fps=30, width=640, height=480), - }, + KochRobotConfig( + leader_arms={"main": leader_arm}, + follower_arms={"main": follower_arm}, + calibration_dir=".cache/calibration/koch", + cameras={ + "laptop": OpenCVCameraConfig(0, fps=30, width=640, height=480), + "phone": OpenCVCameraConfig(1, fps=30, width=640, height=480), + }, + ) ) robot.connect() ``` @@ -711,7 +713,7 @@ python lerobot/scripts/control_robot.py \ You will see a lot of lines appearing like this one: ``` -INFO 2024-08-10 11:15:03 ol_robot.py:209 dt: 5.12 (195.1hz) dtRlead: 4.93 (203.0hz) dtRfoll: 0.19 (5239.0hz) +INFO 2024-08-10 11:15:03 ol_robot.py:209 dt: 5.12 (195.1hz) dtRlead: 4.93 (203.0hz) dtWfoll: 0.19 (5239.0hz) ``` It contains From 8699a28be0c0db33120c35ce85c9c72f5783f2a1 Mon Sep 17 00:00:00 2001 From: Jannik Grothusen <56967823+J4nn1K@users.noreply.github.com> Date: Tue, 25 Feb 2025 19:28:26 +0100 Subject: [PATCH 07/70] [QOL] Enable teleoperation during environment reset (#725) --- lerobot/common/robot_devices/control_utils.py | 23 +++++++------------ lerobot/scripts/control_robot.py | 2 +- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lerobot/common/robot_devices/control_utils.py b/lerobot/common/robot_devices/control_utils.py index 6c97d0cb..d2361a64 100644 --- a/lerobot/common/robot_devices/control_utils.py +++ b/lerobot/common/robot_devices/control_utils.py @@ -12,7 +12,6 @@ from functools import cache import cv2 import torch -import tqdm from deepdiff import DeepDiff from termcolor import colored @@ -276,24 +275,18 @@ def control_loop( break -def reset_environment(robot, events, reset_time_s): +def reset_environment(robot, events, reset_time_s, fps): # TODO(rcadene): refactor warmup_record and reset_environment - # TODO(alibets): allow for teleop during reset if has_method(robot, "teleop_safety_stop"): robot.teleop_safety_stop() - timestamp = 0 - start_vencod_t = time.perf_counter() - - # Wait if necessary - with tqdm.tqdm(total=reset_time_s, desc="Waiting") as pbar: - while timestamp < reset_time_s: - time.sleep(1) - timestamp = time.perf_counter() - start_vencod_t - pbar.update(1) - if events["exit_early"]: - events["exit_early"] = False - break + control_loop( + robot=robot, + control_time_s=reset_time_s, + events=events, + fps=fps, + teleoperate=True, + ) def stop_recording(robot, listener, display_cameras): diff --git a/lerobot/scripts/control_robot.py b/lerobot/scripts/control_robot.py index 32f3b181..ab5d0e8a 100644 --- a/lerobot/scripts/control_robot.py +++ b/lerobot/scripts/control_robot.py @@ -299,7 +299,7 @@ def record( (recorded_episodes < cfg.num_episodes - 1) or events["rerecord_episode"] ): log_say("Reset the environment", cfg.play_sounds) - reset_environment(robot, events, cfg.reset_time_s) + reset_environment(robot, events, cfg.reset_time_s, cfg.fps) if events["rerecord_episode"]: log_say("Re-record episode", cfg.play_sounds) From a1809ad3de96c6989acd33c0650849bf4f631929 Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Tue, 25 Feb 2025 23:51:15 +0100 Subject: [PATCH 08/70] Add typos checks (#770) --- .github/workflows/quality.yml | 12 ++++++++++++ .pre-commit-config.yaml | 5 +++++ CONTRIBUTING.md | 2 +- benchmarks/video/README.md | 2 +- examples/11_use_lekiwi.md | 4 ++-- examples/11_use_moss.md | 2 +- examples/7_get_started_with_real_robot.md | 10 +++++----- examples/8_use_stretch.md | 2 +- examples/9_use_aloha.md | 4 ++-- lerobot/common/datasets/compute_stats.py | 2 +- lerobot/common/datasets/lerobot_dataset.py | 6 +++--- .../datasets/push_dataset_to_hub/_download_raw.py | 2 +- .../push_dataset_to_hub/dora_parquet_format.py | 8 ++++---- .../push_dataset_to_hub/openx_rlds_format.py | 2 +- lerobot/common/datasets/utils.py | 8 ++++---- .../datasets/v2/batch_convert_dataset_v1_to_v2.py | 2 ++ .../common/datasets/v2/convert_dataset_v1_to_v2.py | 2 +- lerobot/common/datasets/video_utils.py | 2 +- lerobot/common/envs/factory.py | 4 ++-- lerobot/common/policies/act/configuration_act.py | 2 +- .../policies/diffusion/configuration_diffusion.py | 4 ++-- .../conversion_scripts/convert_pi0_to_hf_lerobot.py | 2 +- .../common/policies/tdmpc/configuration_tdmpc.py | 4 ++-- .../common/policies/vqbet/configuration_vqbet.py | 2 +- lerobot/common/policies/vqbet/modeling_vqbet.py | 4 ++-- lerobot/common/policies/vqbet/vqbet_utils.py | 10 +++++----- lerobot/common/robot_devices/control_configs.py | 2 +- lerobot/common/robot_devices/motors/dynamixel.py | 4 ++-- lerobot/common/robot_devices/motors/feetech.py | 6 +++--- .../robot_devices/robots/dynamixel_calibration.py | 4 ++-- .../robot_devices/robots/feetech_calibration.py | 2 +- lerobot/common/robot_devices/robots/manipulator.py | 12 ++++++------ lerobot/common/robot_devices/robots/stretch.py | 4 ++-- lerobot/configs/default.py | 2 +- lerobot/configs/train.py | 2 +- lerobot/scripts/control_sim_robot.py | 8 ++++---- lerobot/scripts/push_dataset_to_hub.py | 2 +- lerobot/scripts/train.py | 2 +- lerobot/scripts/visualize_dataset_html.py | 2 +- pyproject.toml | 13 +++++++++++++ tests/mock_cv2.py | 6 +++--- tests/test_cameras.py | 2 +- tests/test_control_robot.py | 2 +- tests/test_datasets.py | 2 +- tests/test_delta_timestamps.py | 6 +++--- tests/test_motors.py | 2 +- tests/test_robots.py | 2 +- 47 files changed, 114 insertions(+), 82 deletions(-) diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index b42539e6..4cf8e0df 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -42,3 +42,15 @@ jobs: - name: Ruff format run: ruff format --diff + + typos: + name: Typos + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: typos-action + uses: crate-ci/typos@v1.29.10 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 00b538e8..b921f4e1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,11 @@ repos: - id: check-toml - id: end-of-file-fixer - id: trailing-whitespace + - repo: https://github.com/crate-ci/typos + rev: v1.29.10 + hooks: + - id: typos + args: [--force-exclude] - repo: https://github.com/asottile/pyupgrade rev: v3.19.1 hooks: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 61fa2eb9..8aff26d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -228,7 +228,7 @@ Follow these steps to start contributing: git commit ``` - Note, if you already commited some changes that have a wrong formatting, you can use: + Note, if you already committed some changes that have a wrong formatting, you can use: ```bash pre-commit run --all-files ``` diff --git a/benchmarks/video/README.md b/benchmarks/video/README.md index 56cd1d1e..49e49811 100644 --- a/benchmarks/video/README.md +++ b/benchmarks/video/README.md @@ -114,7 +114,7 @@ We tried to measure the most impactful parameters for both encoding and decoding Additional encoding parameters exist that are not included in this benchmark. In particular: - `-preset` which allows for selecting encoding presets. This represents a collection of options that will provide a certain encoding speed to compression ratio. By leaving this parameter unspecified, it is considered to be `medium` for libx264 and libx265 and `8` for libsvtav1. -- `-tune` which allows to optimize the encoding for certains aspects (e.g. film quality, fast decoding, etc.). +- `-tune` which allows to optimize the encoding for certain aspects (e.g. film quality, fast decoding, etc.). See the documentation mentioned above for more detailed info on these settings and for a more comprehensive list of other parameters. diff --git a/examples/11_use_lekiwi.md b/examples/11_use_lekiwi.md index a7024cc6..224a1854 100644 --- a/examples/11_use_lekiwi.md +++ b/examples/11_use_lekiwi.md @@ -185,7 +185,7 @@ sudo chmod 666 /dev/ttyACM1 #### d. Update config file -IMPORTANTLY: Now that you have your ports of leader and follower arm and ip adress of the mobile-so100, update the **ip** in Network configuration, **port** in leader_arms and **port** in lekiwi. In the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py) file. Where you will find something like: +IMPORTANTLY: Now that you have your ports of leader and follower arm and ip address of the mobile-so100, update the **ip** in Network configuration, **port** in leader_arms and **port** in lekiwi. In the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py) file. Where you will find something like: ```python @RobotConfig.register_subclass("lekiwi") @dataclass @@ -324,7 +324,7 @@ You should see on your laptop something like this: ```[INFO] Connected to remote | F | Decrease speed | > [!TIP] -> If you use a different keyboard you can change the keys for each commmand in the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py). +> If you use a different keyboard you can change the keys for each command in the [`LeKiwiRobotConfig`](../lerobot/common/robot_devices/robots/configs.py). ## Troubleshoot communication diff --git a/examples/11_use_moss.md b/examples/11_use_moss.md index 2bbfbb18..67f8157e 100644 --- a/examples/11_use_moss.md +++ b/examples/11_use_moss.md @@ -2,7 +2,7 @@ This tutorial explains how to use [Moss v1](https://github.com/jess-moss/moss-ro ## Source the parts -Follow this [README](https://github.com/jess-moss/moss-robot-arms). It contains the bill of materials, with link to source the parts, as well as the instructions to 3D print the parts, and advices if it's your first time printing or if you don't own a 3D printer already. +Follow this [README](https://github.com/jess-moss/moss-robot-arms). It contains the bill of materials with link to source the parts, as well as the instructions to 3D print the parts and advice if it's your first time printing or if you don't own a 3D printer already. **Important**: Before assembling, you will first need to configure your motors. To this end, we provide a nice script, so let's first install LeRobot. After configuration, we will also guide you through assembly. diff --git a/examples/7_get_started_with_real_robot.md b/examples/7_get_started_with_real_robot.md index be22d4a5..f4bef69c 100644 --- a/examples/7_get_started_with_real_robot.md +++ b/examples/7_get_started_with_real_robot.md @@ -398,7 +398,7 @@ And here are the corresponding positions for the leader arm: You can watch a [video tutorial of the calibration procedure](https://youtu.be/8drnU9uRY24) for more details. -During calibration, we count the number of full 360-degree rotations your motors have made since they were first used. That's why we ask yo to move to this arbitrary "zero" position. We don't actually "set" the zero position, so you don't need to be accurate. After calculating these "offsets" to shift the motor values around 0, we need to assess the rotation direction of each motor, which might differ. That's why we ask you to rotate all motors to roughly 90 degrees, to mesure if the values changed negatively or positively. +During calibration, we count the number of full 360-degree rotations your motors have made since they were first used. That's why we ask yo to move to this arbitrary "zero" position. We don't actually "set" the zero position, so you don't need to be accurate. After calculating these "offsets" to shift the motor values around 0, we need to assess the rotation direction of each motor, which might differ. That's why we ask you to rotate all motors to roughly 90 degrees, to measure if the values changed negatively or positively. Finally, the rest position ensures that the follower and leader arms are roughly aligned after calibration, preventing sudden movements that could damage the motors when starting teleoperation. @@ -663,7 +663,7 @@ camera.disconnect() **Instantiate your robot with cameras** -Additionaly, you can set up your robot to work with your cameras. +Additionally, you can set up your robot to work with your cameras. Modify the following Python code with the appropriate camera names and configurations: ```python @@ -825,8 +825,8 @@ It contains: - `dtRlead: 5.06 (197.5hz)` which is the delta time of reading the present position of the leader arm. - `dtWfoll: 0.25 (3963.7hz)` which is the delta time of writing the goal position on the follower arm ; writing is asynchronous so it takes less time than reading. - `dtRfoll: 6.22 (160.7hz)` which is the delta time of reading the present position on the follower arm. -- `dtRlaptop:32.57 (30.7hz) ` which is the delta time of capturing an image from the laptop camera in the thread running asynchrously. -- `dtRphone:33.84 (29.5hz)` which is the delta time of capturing an image from the phone camera in the thread running asynchrously. +- `dtRlaptop:32.57 (30.7hz) ` which is the delta time of capturing an image from the laptop camera in the thread running asynchronously. +- `dtRphone:33.84 (29.5hz)` which is the delta time of capturing an image from the phone camera in the thread running asynchronously. Troubleshooting: - On Linux, if you encounter a hanging issue when using cameras, uninstall opencv and re-install it with conda: @@ -846,7 +846,7 @@ At the end of data recording, your dataset will be uploaded on your Hugging Face echo https://huggingface.co/datasets/${HF_USER}/koch_test ``` -### b. Advices for recording dataset +### b. Advice for recording dataset Once you're comfortable with data recording, it's time to create a larger dataset for training. A good starting task is grasping an object at different locations and placing it in a bin. We suggest recording at least 50 episodes, with 10 episodes per location. Keep the cameras fixed and maintain consistent grasping behavior throughout the recordings. diff --git a/examples/8_use_stretch.md b/examples/8_use_stretch.md index 2f8c0ffb..802ea718 100644 --- a/examples/8_use_stretch.md +++ b/examples/8_use_stretch.md @@ -98,7 +98,7 @@ python lerobot/scripts/control_robot.py \ ``` This is equivalent to running `stretch_robot_home.py` -> **Note:** If you run any of the LeRobot scripts below and Stretch is not poperly homed, it will automatically home/calibrate first. +> **Note:** If you run any of the LeRobot scripts below and Stretch is not properly homed, it will automatically home/calibrate first. **Teleoperate** Before trying teleoperation, you need activate the gamepad controller by pressing the middle button. For more info, see Stretch's [doc](https://docs.hello-robot.com/0.3/getting_started/hello_robot/#gamepad-teleoperation). diff --git a/examples/9_use_aloha.md b/examples/9_use_aloha.md index 5d2843fa..055551f0 100644 --- a/examples/9_use_aloha.md +++ b/examples/9_use_aloha.md @@ -172,10 +172,10 @@ python lerobot/scripts/control_robot.py \ As you can see, it's almost the same command as previously used to record your training dataset. Two things changed: 1. There is an additional `--control.policy.path` argument which indicates the path to your policy checkpoint with (e.g. `outputs/train/eval_act_aloha_test/checkpoints/last/pretrained_model`). You can also use the model repository if you uploaded a model checkpoint to the hub (e.g. `${HF_USER}/act_aloha_test`). 2. The name of dataset begins by `eval` to reflect that you are running inference (e.g. `${HF_USER}/eval_act_aloha_test`). -3. We use `--control.num_image_writer_processes=1` instead of the default value (`0`). On our computer, using a dedicated process to write images from the 4 cameras on disk allows to reach constent 30 fps during inference. Feel free to explore different values for `--control.num_image_writer_processes`. +3. We use `--control.num_image_writer_processes=1` instead of the default value (`0`). On our computer, using a dedicated process to write images from the 4 cameras on disk allows to reach constant 30 fps during inference. Feel free to explore different values for `--control.num_image_writer_processes`. ## More -Follow this [previous tutorial](https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md#4-train-a-policy-on-your-data) for a more in-depth explaination. +Follow this [previous tutorial](https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md#4-train-a-policy-on-your-data) for a more in-depth explanation. If you have any question or need help, please reach out on Discord in the channel `#aloha-arm`. diff --git a/lerobot/common/datasets/compute_stats.py b/lerobot/common/datasets/compute_stats.py index a029f892..1149ec83 100644 --- a/lerobot/common/datasets/compute_stats.py +++ b/lerobot/common/datasets/compute_stats.py @@ -92,7 +92,7 @@ def compute_episode_stats(episode_data: dict[str, list[str] | np.ndarray], featu axes_to_reduce = (0, 2, 3) # keep channel dim keepdims = True else: - ep_ft_array = data # data is alreay a np.ndarray + ep_ft_array = data # data is already a np.ndarray axes_to_reduce = 0 # compute stats over the first axis keepdims = data.ndim == 1 # keep as np.array diff --git a/lerobot/common/datasets/lerobot_dataset.py b/lerobot/common/datasets/lerobot_dataset.py index f1eb11a0..086411b4 100644 --- a/lerobot/common/datasets/lerobot_dataset.py +++ b/lerobot/common/datasets/lerobot_dataset.py @@ -226,7 +226,7 @@ class LeRobotDatasetMetadata: def add_task(self, task: str): """ - Given a task in natural language, add it to the dictionnary of tasks. + Given a task in natural language, add it to the dictionary of tasks. """ if task in self.task_to_task_index: raise ValueError(f"The task '{task}' already exists and can't be added twice.") @@ -389,7 +389,7 @@ class LeRobotDataset(torch.utils.data.Dataset): - info contains various information about the dataset like shapes, keys, fps etc. - stats stores the dataset statistics of the different modalities for normalization - tasks contains the prompts for each task of the dataset, which can be used for - task-conditionned training. + task-conditioned training. - hf_dataset (from datasets.Dataset), which will read any values from parquet files. - videos (optional) from which frames are loaded to be synchronous with data from parquet files. @@ -848,7 +848,7 @@ class LeRobotDataset(torch.utils.data.Dataset): episode_buffer["index"] = np.arange(self.meta.total_frames, self.meta.total_frames + episode_length) episode_buffer["episode_index"] = np.full((episode_length,), episode_index) - # Add new tasks to the tasks dictionnary + # Add new tasks to the tasks dictionary for task in episode_tasks: task_index = self.meta.get_task_index(task) if task_index is None: diff --git a/lerobot/common/datasets/push_dataset_to_hub/_download_raw.py b/lerobot/common/datasets/push_dataset_to_hub/_download_raw.py index edeaf093..cc291cea 100644 --- a/lerobot/common/datasets/push_dataset_to_hub/_download_raw.py +++ b/lerobot/common/datasets/push_dataset_to_hub/_download_raw.py @@ -152,7 +152,7 @@ def download_raw(raw_dir: Path, repo_id: str): stacklevel=1, ) - # Send warning if raw_dir isn't well formated + # Send warning if raw_dir isn't well formatted if raw_dir.parts[-2] != user_id or raw_dir.parts[-1] != dataset_id: warnings.warn( f"""`raw_dir` ({raw_dir}) doesn't contain a community or user id `/` the name of the dataset that diff --git a/lerobot/common/datasets/push_dataset_to_hub/dora_parquet_format.py b/lerobot/common/datasets/push_dataset_to_hub/dora_parquet_format.py index 4968e002..acf820bf 100644 --- a/lerobot/common/datasets/push_dataset_to_hub/dora_parquet_format.py +++ b/lerobot/common/datasets/push_dataset_to_hub/dora_parquet_format.py @@ -68,9 +68,9 @@ def load_from_raw(raw_dir: Path, videos_dir: Path, fps: int, video: bool, episod modality_df, on="timestamp_utc", # "nearest" is the best option over "backward", since the latter can desynchronizes camera timestamps by - # matching timestamps that are too far appart, in order to fit the backward constraints. It's not the case for "nearest". + # matching timestamps that are too far apart, in order to fit the backward constraints. It's not the case for "nearest". # However, note that "nearest" might synchronize the reference camera with other cameras on slightly future timestamps. - # are too far appart. + # are too far apart. direction="nearest", tolerance=pd.Timedelta(f"{1 / fps} seconds"), ) @@ -126,7 +126,7 @@ def load_from_raw(raw_dir: Path, videos_dir: Path, fps: int, video: bool, episod videos_dir.parent.mkdir(parents=True, exist_ok=True) videos_dir.symlink_to((raw_dir / "videos").absolute()) - # sanity check the video paths are well formated + # sanity check the video paths are well formatted for key in df: if "observation.images." not in key: continue @@ -143,7 +143,7 @@ def load_from_raw(raw_dir: Path, videos_dir: Path, fps: int, video: bool, episod # it is the case for video_frame dictionary = [{"path": ..., "timestamp": ...}] data_dict[key] = [video_frame[0] for video_frame in df[key].values] - # sanity check the video path is well formated + # sanity check the video path is well formatted video_path = videos_dir.parent / data_dict[key][0]["path"] if not video_path.exists(): raise ValueError(f"Video file not found in {video_path}") diff --git a/lerobot/common/datasets/push_dataset_to_hub/openx_rlds_format.py b/lerobot/common/datasets/push_dataset_to_hub/openx_rlds_format.py index 1f8a5d14..2ffb8369 100644 --- a/lerobot/common/datasets/push_dataset_to_hub/openx_rlds_format.py +++ b/lerobot/common/datasets/push_dataset_to_hub/openx_rlds_format.py @@ -17,7 +17,7 @@ For all datasets in the RLDS format. For https://github.com/google-deepmind/open_x_embodiment (OPENX) datasets. -NOTE: You need to install tensorflow and tensorflow_datsets before running this script. +NOTE: You need to install tensorflow and tensorflow_datasets before running this script. Example: python lerobot/scripts/push_dataset_to_hub.py \ diff --git a/lerobot/common/datasets/utils.py b/lerobot/common/datasets/utils.py index 2d90798f..89adb163 100644 --- a/lerobot/common/datasets/utils.py +++ b/lerobot/common/datasets/utils.py @@ -222,7 +222,7 @@ def load_episodes(local_dir: Path) -> dict: def write_episode_stats(episode_index: int, episode_stats: dict, local_dir: Path): - # We wrap episode_stats in a dictionnary since `episode_stats["episode_index"]` + # We wrap episode_stats in a dictionary since `episode_stats["episode_index"]` # is a dictionary of stats and not an integer. episode_stats = {"episode_index": episode_index, "stats": serialize_dict(episode_stats)} append_jsonlines(episode_stats, local_dir / EPISODES_STATS_PATH) @@ -445,10 +445,10 @@ def get_episode_data_index( if episodes is not None: episode_lengths = {ep_idx: episode_lengths[ep_idx] for ep_idx in episodes} - cumulative_lenghts = list(accumulate(episode_lengths.values())) + cumulative_lengths = list(accumulate(episode_lengths.values())) return { - "from": torch.LongTensor([0] + cumulative_lenghts[:-1]), - "to": torch.LongTensor(cumulative_lenghts), + "from": torch.LongTensor([0] + cumulative_lengths[:-1]), + "to": torch.LongTensor(cumulative_lengths), } diff --git a/lerobot/common/datasets/v2/batch_convert_dataset_v1_to_v2.py b/lerobot/common/datasets/v2/batch_convert_dataset_v1_to_v2.py index 4cd93a2d..99ab2cbf 100644 --- a/lerobot/common/datasets/v2/batch_convert_dataset_v1_to_v2.py +++ b/lerobot/common/datasets/v2/batch_convert_dataset_v1_to_v2.py @@ -31,6 +31,7 @@ from lerobot.common.robot_devices.robots.configs import AlohaRobotConfig LOCAL_DIR = Path("data/") +# spellchecker:off ALOHA_MOBILE_INFO = { "robot_config": AlohaRobotConfig(), "license": "mit", @@ -856,6 +857,7 @@ DATASETS = { }""").lstrip(), }, } +# spellchecker:on def batch_convert(): diff --git a/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py b/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py index 99864e3b..acf0282f 100644 --- a/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py +++ b/lerobot/common/datasets/v2/convert_dataset_v1_to_v2.py @@ -17,7 +17,7 @@ """ This script will help you convert any LeRobot dataset already pushed to the hub from codebase version 1.6 to 2.0. You will be required to provide the 'tasks', which is a short but accurate description in plain English -for each of the task performed in the dataset. This will allow to easily train models with task-conditionning. +for each of the task performed in the dataset. This will allow to easily train models with task-conditioning. We support 3 different scenarios for these tasks (see instructions below): 1. Single task dataset: all episodes of your dataset have the same single task. diff --git a/lerobot/common/datasets/video_utils.py b/lerobot/common/datasets/video_utils.py index 8be53483..9f043f96 100644 --- a/lerobot/common/datasets/video_utils.py +++ b/lerobot/common/datasets/video_utils.py @@ -73,7 +73,7 @@ def decode_video_frames_torchvision( last_ts = max(timestamps) # access closest key frame of the first requested frame - # Note: closest key frame timestamp is usally smaller than `first_ts` (e.g. key frame can be the first frame of the video) + # Note: closest key frame timestamp is usually smaller than `first_ts` (e.g. key frame can be the first frame of the video) # for details on what `seek` is doing see: https://pyav.basswood-io.com/docs/stable/api/container.html?highlight=inputcontainer#av.container.InputContainer.seek reader.seek(first_ts, keyframes_only=keyframes_only) diff --git a/lerobot/common/envs/factory.py b/lerobot/common/envs/factory.py index 49239363..8450f84b 100644 --- a/lerobot/common/envs/factory.py +++ b/lerobot/common/envs/factory.py @@ -37,12 +37,12 @@ def make_env(cfg: EnvConfig, n_envs: int = 1, use_async_envs: bool = False) -> g Args: cfg (EnvConfig): the config of the environment to instantiate. n_envs (int, optional): The number of parallelized env to return. Defaults to 1. - use_async_envs (bool, optional): Wether to return an AsyncVectorEnv or a SyncVectorEnv. Defaults to + use_async_envs (bool, optional): Whether to return an AsyncVectorEnv or a SyncVectorEnv. Defaults to False. Raises: ValueError: if n_envs < 1 - ModuleNotFoundError: If the requested env package is not intalled + ModuleNotFoundError: If the requested env package is not installed Returns: gym.vector.VectorEnv: The parallelized gym.env instance. diff --git a/lerobot/common/policies/act/configuration_act.py b/lerobot/common/policies/act/configuration_act.py index 4f724c12..7a5819b7 100644 --- a/lerobot/common/policies/act/configuration_act.py +++ b/lerobot/common/policies/act/configuration_act.py @@ -64,7 +64,7 @@ class ACTConfig(PreTrainedConfig): output_normalization_modes: Similar dictionary as `normalize_input_modes`, but to unnormalize to the original scale. Note that this is also used for normalizing the training targets. vision_backbone: Name of the torchvision resnet backbone to use for encoding images. - pretrained_backbone_weights: Pretrained weights from torchvision to initalize the backbone. + pretrained_backbone_weights: Pretrained weights from torchvision to initialize the backbone. `None` means no pretrained weights. replace_final_stride_with_dilation: Whether to replace the ResNet's final 2x2 stride with a dilated convolution. diff --git a/lerobot/common/policies/diffusion/configuration_diffusion.py b/lerobot/common/policies/diffusion/configuration_diffusion.py index d571e152..e73c65fe 100644 --- a/lerobot/common/policies/diffusion/configuration_diffusion.py +++ b/lerobot/common/policies/diffusion/configuration_diffusion.py @@ -68,7 +68,7 @@ class DiffusionConfig(PreTrainedConfig): within the image size. If None, no cropping is done. crop_is_random: Whether the crop should be random at training time (it's always a center crop in eval mode). - pretrained_backbone_weights: Pretrained weights from torchvision to initalize the backbone. + pretrained_backbone_weights: Pretrained weights from torchvision to initialize the backbone. `None` means no pretrained weights. use_group_norm: Whether to replace batch normalization with group normalization in the backbone. The group sizes are set to be about 16 (to be precise, feature_dim // 16). @@ -99,7 +99,7 @@ class DiffusionConfig(PreTrainedConfig): num_inference_steps: Number of reverse diffusion steps to use at inference time (steps are evenly spaced). If not provided, this defaults to be the same as `num_train_timesteps`. do_mask_loss_for_padding: Whether to mask the loss when there are copy-padded actions. See - `LeRobotDataset` and `load_previous_and_future_frames` for mor information. Note, this defaults + `LeRobotDataset` and `load_previous_and_future_frames` for more information. Note, this defaults to False as the original Diffusion Policy implementation does the same. """ diff --git a/lerobot/common/policies/pi0/conversion_scripts/convert_pi0_to_hf_lerobot.py b/lerobot/common/policies/pi0/conversion_scripts/convert_pi0_to_hf_lerobot.py index f85437a5..dd8622dd 100644 --- a/lerobot/common/policies/pi0/conversion_scripts/convert_pi0_to_hf_lerobot.py +++ b/lerobot/common/policies/pi0/conversion_scripts/convert_pi0_to_hf_lerobot.py @@ -2,7 +2,7 @@ Convert pi0 parameters from Jax to Pytorch Follow [README of openpi](https://github.com/Physical-Intelligence/openpi) to create a new environment -and install the required librairies. +and install the required libraries. ```bash cd ~/code/openpi diff --git a/lerobot/common/policies/tdmpc/configuration_tdmpc.py b/lerobot/common/policies/tdmpc/configuration_tdmpc.py index c3e8aee6..3fce01df 100644 --- a/lerobot/common/policies/tdmpc/configuration_tdmpc.py +++ b/lerobot/common/policies/tdmpc/configuration_tdmpc.py @@ -76,7 +76,7 @@ class TDMPCConfig(PreTrainedConfig): n_pi_samples: Number of samples to draw from the policy / world model rollout every CEM iteration. Can be zero. uncertainty_regularizer_coeff: Coefficient for the uncertainty regularization used when estimating - trajectory values (this is the λ coeffiecient in eqn 4 of FOWM). + trajectory values (this is the λ coefficient in eqn 4 of FOWM). n_elites: The number of elite samples to use for updating the gaussian parameters every CEM iteration. elite_weighting_temperature: The temperature to use for softmax weighting (by trajectory value) of the elites, when updating the gaussian parameters for CEM. @@ -165,7 +165,7 @@ class TDMPCConfig(PreTrainedConfig): """Input validation (not exhaustive).""" if self.n_gaussian_samples <= 0: raise ValueError( - f"The number of guassian samples for CEM should be non-zero. Got `{self.n_gaussian_samples=}`" + f"The number of gaussian samples for CEM should be non-zero. Got `{self.n_gaussian_samples=}`" ) if self.normalization_mapping["ACTION"] is not NormalizationMode.MIN_MAX: raise ValueError( diff --git a/lerobot/common/policies/vqbet/configuration_vqbet.py b/lerobot/common/policies/vqbet/configuration_vqbet.py index 59389d6e..28e9c433 100644 --- a/lerobot/common/policies/vqbet/configuration_vqbet.py +++ b/lerobot/common/policies/vqbet/configuration_vqbet.py @@ -66,7 +66,7 @@ class VQBeTConfig(PreTrainedConfig): within the image size. If None, no cropping is done. crop_is_random: Whether the crop should be random at training time (it's always a center crop in eval mode). - pretrained_backbone_weights: Pretrained weights from torchvision to initalize the backbone. + pretrained_backbone_weights: Pretrained weights from torchvision to initialize the backbone. `None` means no pretrained weights. use_group_norm: Whether to replace batch normalization with group normalization in the backbone. The group sizes are set to be about 16 (to be precise, feature_dim // 16). diff --git a/lerobot/common/policies/vqbet/modeling_vqbet.py b/lerobot/common/policies/vqbet/modeling_vqbet.py index 1f70b186..97a08e2f 100644 --- a/lerobot/common/policies/vqbet/modeling_vqbet.py +++ b/lerobot/common/policies/vqbet/modeling_vqbet.py @@ -485,7 +485,7 @@ class VQBeTHead(nn.Module): def forward(self, x, **kwargs) -> dict: # N is the batch size, and T is number of action query tokens, which are process through same GPT N, T, _ = x.shape - # we calculate N and T side parallely. Thus, the dimensions would be + # we calculate N and T side parallelly. Thus, the dimensions would be # (batch size * number of action query tokens, action chunk size, action dimension) x = einops.rearrange(x, "N T WA -> (N T) WA") @@ -772,7 +772,7 @@ class VqVae(nn.Module): Encoder and decoder are MLPs consisting of an input, output layer, and hidden layer, respectively. The vq_layer uses residual VQs. - This class contains functions for training the encoder and decoder along with the residual VQ layer (for trainign phase 1), + This class contains functions for training the encoder and decoder along with the residual VQ layer (for training phase 1), as well as functions to help BeT training part in training phase 2. """ diff --git a/lerobot/common/policies/vqbet/vqbet_utils.py b/lerobot/common/policies/vqbet/vqbet_utils.py index a2bd2df3..139d119e 100644 --- a/lerobot/common/policies/vqbet/vqbet_utils.py +++ b/lerobot/common/policies/vqbet/vqbet_utils.py @@ -38,7 +38,7 @@ from lerobot.common.policies.vqbet.configuration_vqbet import VQBeTConfig This file is part of a VQ-BeT that utilizes code from the following repositories: - Vector Quantize PyTorch code is licensed under the MIT License: - Origianl source: https://github.com/lucidrains/vector-quantize-pytorch + Original source: https://github.com/lucidrains/vector-quantize-pytorch - nanoGPT part is an adaptation of Andrej Karpathy's nanoGPT implementation in PyTorch. Original source: https://github.com/karpathy/nanoGPT @@ -289,7 +289,7 @@ class GPT(nn.Module): This file is a part for Residual Vector Quantization that utilizes code from the following repository: - Phil Wang's vector-quantize-pytorch implementation in PyTorch. - Origianl source: https://github.com/lucidrains/vector-quantize-pytorch + Original source: https://github.com/lucidrains/vector-quantize-pytorch - The vector-quantize-pytorch code is licensed under the MIT License: @@ -1349,9 +1349,9 @@ class EuclideanCodebook(nn.Module): # calculate distributed variance - variance_numer = reduce((data - batch_mean) ** 2, "h n d -> h 1 d", "sum") - distributed.all_reduce(variance_numer) - batch_variance = variance_numer / num_vectors + variance_number = reduce((data - batch_mean) ** 2, "h n d -> h 1 d", "sum") + distributed.all_reduce(variance_number) + batch_variance = variance_number / num_vectors self.update_with_decay("batch_variance", batch_variance, self.affine_param_batch_decay) diff --git a/lerobot/common/robot_devices/control_configs.py b/lerobot/common/robot_devices/control_configs.py index c3e920b1..2ef1b44b 100644 --- a/lerobot/common/robot_devices/control_configs.py +++ b/lerobot/common/robot_devices/control_configs.py @@ -66,7 +66,7 @@ class RecordControlConfig(ControlConfig): private: bool = False # Add tags to your dataset on the hub. tags: list[str] | None = None - # Number of subprocesses handling the saving of frames as PNGs. Set to 0 to use threads only; + # Number of subprocesses handling the saving of frames as PNG. Set to 0 to use threads only; # set to ≥1 to use subprocesses, each using threads to write images. The best number of processes # and threads depends on your system. We recommend 4 threads per camera with 0 processes. # If fps is unstable, adjust the thread count. If still unstable, try using 1 or more subprocesses. diff --git a/lerobot/common/robot_devices/motors/dynamixel.py b/lerobot/common/robot_devices/motors/dynamixel.py index 54836d8e..17ea933d 100644 --- a/lerobot/common/robot_devices/motors/dynamixel.py +++ b/lerobot/common/robot_devices/motors/dynamixel.py @@ -242,7 +242,7 @@ class DriveMode(enum.Enum): class CalibrationMode(enum.Enum): # Joints with rotational motions are expressed in degrees in nominal range of [-180, 180] DEGREE = 0 - # Joints with linear motions (like gripper of Aloha) are experessed in nominal range of [0, 100] + # Joints with linear motions (like gripper of Aloha) are expressed in nominal range of [0, 100] LINEAR = 1 @@ -610,7 +610,7 @@ class DynamixelMotorsBus: # 0-centered resolution range (e.g. [-2048, 2048] for resolution=4096) values[i] = values[i] / HALF_TURN_DEGREE * (resolution // 2) - # Substract the homing offsets to come back to actual motor range of values + # Subtract the homing offsets to come back to actual motor range of values # which can be arbitrary. values[i] -= homing_offset diff --git a/lerobot/common/robot_devices/motors/feetech.py b/lerobot/common/robot_devices/motors/feetech.py index a59db7df..cec36d37 100644 --- a/lerobot/common/robot_devices/motors/feetech.py +++ b/lerobot/common/robot_devices/motors/feetech.py @@ -221,7 +221,7 @@ class DriveMode(enum.Enum): class CalibrationMode(enum.Enum): # Joints with rotational motions are expressed in degrees in nominal range of [-180, 180] DEGREE = 0 - # Joints with linear motions (like gripper of Aloha) are experessed in nominal range of [0, 100] + # Joints with linear motions (like gripper of Aloha) are expressed in nominal range of [0, 100] LINEAR = 1 @@ -591,7 +591,7 @@ class FeetechMotorsBus: # 0-centered resolution range (e.g. [-2048, 2048] for resolution=4096) values[i] = values[i] / HALF_TURN_DEGREE * (resolution // 2) - # Substract the homing offsets to come back to actual motor range of values + # Subtract the homing offsets to come back to actual motor range of values # which can be arbitrary. values[i] -= homing_offset @@ -632,7 +632,7 @@ class FeetechMotorsBus: track["prev"][idx] = values[i] continue - # Detect a full rotation occured + # Detect a full rotation occurred if abs(track["prev"][idx] - values[i]) > 2048: # Position went below 0 and got reset to 4095 if track["prev"][idx] < values[i]: diff --git a/lerobot/common/robot_devices/robots/dynamixel_calibration.py b/lerobot/common/robot_devices/robots/dynamixel_calibration.py index 5c4932d2..142d5794 100644 --- a/lerobot/common/robot_devices/robots/dynamixel_calibration.py +++ b/lerobot/common/robot_devices/robots/dynamixel_calibration.py @@ -87,7 +87,7 @@ def run_arm_calibration(arm: MotorsBus, robot_type: str, arm_name: str, arm_type # For instance, if the motor rotates 90 degree, and its value is -90 after applying the homing offset, then we know its rotation direction # is inverted. However, for the calibration being successful, we need everyone to follow the same target position. # Sometimes, there is only one possible rotation direction. For instance, if the gripper is closed, there is only one direction which - # corresponds to opening the gripper. When the rotation direction is ambiguous, we arbitrarely rotate clockwise from the point of view + # corresponds to opening the gripper. When the rotation direction is ambiguous, we arbitrarily rotate clockwise from the point of view # of the previous motor in the kinetic chain. print("\nMove arm to rotated target position") print("See: " + URL_TEMPLATE.format(robot=robot_type, arm=arm_type, position="rotated")) @@ -115,7 +115,7 @@ def run_arm_calibration(arm: MotorsBus, robot_type: str, arm_name: str, arm_type # TODO(rcadene): make type of joints (DEGREE or LINEAR) configurable from yaml? if robot_type in ["aloha"] and "gripper" in arm.motor_names: - # Joints with linear motions (like gripper of Aloha) are experessed in nominal range of [0, 100] + # Joints with linear motions (like gripper of Aloha) are expressed in nominal range of [0, 100] calib_idx = arm.motor_names.index("gripper") calib_mode[calib_idx] = CalibrationMode.LINEAR.name diff --git a/lerobot/common/robot_devices/robots/feetech_calibration.py b/lerobot/common/robot_devices/robots/feetech_calibration.py index b015951a..d779cd44 100644 --- a/lerobot/common/robot_devices/robots/feetech_calibration.py +++ b/lerobot/common/robot_devices/robots/feetech_calibration.py @@ -443,7 +443,7 @@ def run_arm_manual_calibration(arm: MotorsBus, robot_type: str, arm_name: str, a # For instance, if the motor rotates 90 degree, and its value is -90 after applying the homing offset, then we know its rotation direction # is inverted. However, for the calibration being successful, we need everyone to follow the same target position. # Sometimes, there is only one possible rotation direction. For instance, if the gripper is closed, there is only one direction which - # corresponds to opening the gripper. When the rotation direction is ambiguous, we arbitrarely rotate clockwise from the point of view + # corresponds to opening the gripper. When the rotation direction is ambiguous, we arbitrarily rotate clockwise from the point of view # of the previous motor in the kinetic chain. print("\nMove arm to rotated target position") print("See: " + URL_TEMPLATE.format(robot=robot_type, arm=arm_type, position="rotated")) diff --git a/lerobot/common/robot_devices/robots/manipulator.py b/lerobot/common/robot_devices/robots/manipulator.py index 9c82d069..62e5416e 100644 --- a/lerobot/common/robot_devices/robots/manipulator.py +++ b/lerobot/common/robot_devices/robots/manipulator.py @@ -44,7 +44,7 @@ class ManipulatorRobot: # TODO(rcadene): Implement force feedback """This class allows to control any manipulator robot of various number of motors. - Non exaustive list of robots: + Non exhaustive list of robots: - [Koch v1.0](https://github.com/AlexanderKoch-Koch/low_cost_robot), with and without the wrist-to-elbow expansion, developed by Alexander Koch from [Tau Robotics](https://tau-robotics.com) - [Koch v1.1](https://github.com/jess-moss/koch-v1-1) developed by Jess Moss @@ -55,7 +55,7 @@ class ManipulatorRobot: robot = ManipulatorRobot(KochRobotConfig()) ``` - Example of overwritting motors during instantiation: + Example of overwriting motors during instantiation: ```python # Defines how to communicate with the motors of the leader and follower arms leader_arms = { @@ -90,7 +90,7 @@ class ManipulatorRobot: robot = ManipulatorRobot(robot_config) ``` - Example of overwritting cameras during instantiation: + Example of overwriting cameras during instantiation: ```python # Defines how to communicate with 2 cameras connected to the computer. # Here, the webcam of the laptop and the phone (connected in USB to the laptop) @@ -348,7 +348,7 @@ class ManipulatorRobot: set_operating_mode_(self.follower_arms[name]) # Set better PID values to close the gap between recorded states and actions - # TODO(rcadene): Implement an automatic procedure to set optimial PID values for each motor + # TODO(rcadene): Implement an automatic procedure to set optimal PID values for each motor self.follower_arms[name].write("Position_P_Gain", 1500, "elbow_flex") self.follower_arms[name].write("Position_I_Gain", 0, "elbow_flex") self.follower_arms[name].write("Position_D_Gain", 600, "elbow_flex") @@ -500,7 +500,7 @@ class ManipulatorRobot: self.logs[f"read_camera_{name}_dt_s"] = self.cameras[name].logs["delta_timestamp_s"] self.logs[f"async_read_camera_{name}_dt_s"] = time.perf_counter() - before_camread_t - # Populate output dictionnaries + # Populate output dictionaries obs_dict, action_dict = {}, {} obs_dict["observation.state"] = state action_dict["action"] = action @@ -540,7 +540,7 @@ class ManipulatorRobot: self.logs[f"read_camera_{name}_dt_s"] = self.cameras[name].logs["delta_timestamp_s"] self.logs[f"async_read_camera_{name}_dt_s"] = time.perf_counter() - before_camread_t - # Populate output dictionnaries and format to pytorch + # Populate output dictionaries and format to pytorch obs_dict = {} obs_dict["observation.state"] = state for name in self.cameras: diff --git a/lerobot/common/robot_devices/robots/stretch.py b/lerobot/common/robot_devices/robots/stretch.py index b63bf941..9cfe6e49 100644 --- a/lerobot/common/robot_devices/robots/stretch.py +++ b/lerobot/common/robot_devices/robots/stretch.py @@ -108,7 +108,7 @@ class StretchRobot(StretchAPI): self.logs[f"read_camera_{name}_dt_s"] = self.cameras[name].logs["delta_timestamp_s"] self.logs[f"async_read_camera_{name}_dt_s"] = time.perf_counter() - before_camread_t - # Populate output dictionnaries + # Populate output dictionaries obs_dict, action_dict = {}, {} obs_dict["observation.state"] = state action_dict["action"] = action @@ -153,7 +153,7 @@ class StretchRobot(StretchAPI): self.logs[f"read_camera_{name}_dt_s"] = self.cameras[name].logs["delta_timestamp_s"] self.logs[f"async_read_camera_{name}_dt_s"] = time.perf_counter() - before_camread_t - # Populate output dictionnaries + # Populate output dictionaries obs_dict = {} obs_dict["observation.state"] = state for name in self.cameras: diff --git a/lerobot/configs/default.py b/lerobot/configs/default.py index 0dc7f4c7..1e7f5819 100644 --- a/lerobot/configs/default.py +++ b/lerobot/configs/default.py @@ -27,7 +27,7 @@ class DatasetConfig: # You may provide a list of datasets here. `train.py` creates them all and concatenates them. Note: only data # keys common between the datasets are kept. Each dataset gets and additional transform that inserts the # "dataset_index" into the returned item. The index mapping is made according to the order in which the - # datsets are provided. + # datasets are provided. repo_id: str # Root directory where the dataset will be stored (e.g. 'dataset/path'). root: str | None = None diff --git a/lerobot/configs/train.py b/lerobot/configs/train.py index 93f6e2a4..464c11f9 100644 --- a/lerobot/configs/train.py +++ b/lerobot/configs/train.py @@ -102,7 +102,7 @@ class TrainPipelineConfig(HubMixin): if not self.resume and isinstance(self.output_dir, Path) and self.output_dir.is_dir(): raise FileExistsError( - f"Output directory {self.output_dir} alreay exists and resume is {self.resume}. " + f"Output directory {self.output_dir} already exists and resume is {self.resume}. " f"Please change your output directory so that {self.output_dir} is not overwritten." ) elif not self.output_dir: diff --git a/lerobot/scripts/control_sim_robot.py b/lerobot/scripts/control_sim_robot.py index 8d69bf31..49a88d14 100644 --- a/lerobot/scripts/control_sim_robot.py +++ b/lerobot/scripts/control_sim_robot.py @@ -59,8 +59,8 @@ python lerobot/scripts/control_sim_robot.py record \ ``` **NOTE**: You can use your keyboard to control data recording flow. -- Tap right arrow key '->' to early exit while recording an episode and go to reseting the environment. -- Tap right arrow key '->' to early exit while reseting the environment and got to recording the next episode. +- Tap right arrow key '->' to early exit while recording an episode and go to resetting the environment. +- Tap right arrow key '->' to early exit while resetting the environment and got to recording the next episode. - Tap left arrow key '<-' to early exit and re-record the current episode. - Tap escape key 'esc' to stop the data recording. This might require a sudo permission to allow your terminal to monitor keyboard events. @@ -131,7 +131,7 @@ def none_or_int(value): def init_sim_calibration(robot, cfg): # Constants necessary for transforming the joint pos of the real robot to the sim - # depending on the robot discription used in that sim. + # depending on the robot description used in that sim. start_pos = np.array(robot.leader_arms.main.calibration["start_pos"]) axis_directions = np.array(cfg.get("axis_directions", [1])) offsets = np.array(cfg.get("offsets", [0])) * np.pi @@ -445,7 +445,7 @@ if __name__ == "__main__": type=int, default=0, help=( - "Number of subprocesses handling the saving of frames as PNGs. Set to 0 to use threads only; " + "Number of subprocesses handling the saving of frames as PNG. Set to 0 to use threads only; " "set to ≥1 to use subprocesses, each using threads to write images. The best number of processes " "and threads depends on your system. We recommend 4 threads per camera with 0 processes. " "If fps is unstable, adjust the thread count. If still unstable, try using 1 or more subprocesses." diff --git a/lerobot/scripts/push_dataset_to_hub.py b/lerobot/scripts/push_dataset_to_hub.py index 0233ede6..3de2462b 100644 --- a/lerobot/scripts/push_dataset_to_hub.py +++ b/lerobot/scripts/push_dataset_to_hub.py @@ -175,7 +175,7 @@ def push_dataset_to_hub( # Robustify when `local_dir` is str instead of Path local_dir = Path(local_dir) - # Send warning if local_dir isn't well formated + # Send warning if local_dir isn't well formatted if local_dir.parts[-2] != user_id or local_dir.parts[-1] != dataset_id: warnings.warn( f"`local_dir` ({local_dir}) doesn't contain a community or user id `/` the name of the dataset that match the `repo_id` (e.g. 'data/lerobot/pusht'). Following this naming convention is advised, but not mandatory.", diff --git a/lerobot/scripts/train.py b/lerobot/scripts/train.py index f3c57fe2..e36c697a 100644 --- a/lerobot/scripts/train.py +++ b/lerobot/scripts/train.py @@ -72,7 +72,7 @@ def update_policy( # TODO(rcadene): policy.unnormalize_outputs(out_dict) grad_scaler.scale(loss).backward() - # Unscale the graident of the optimzer's assigned params in-place **prior to gradient clipping**. + # Unscale the gradient of the optimizer's assigned params in-place **prior to gradient clipping**. grad_scaler.unscale_(optimizer) grad_norm = torch.nn.utils.clip_grad_norm_( diff --git a/lerobot/scripts/visualize_dataset_html.py b/lerobot/scripts/visualize_dataset_html.py index ed748c9a..ac91f0c8 100644 --- a/lerobot/scripts/visualize_dataset_html.py +++ b/lerobot/scripts/visualize_dataset_html.py @@ -364,7 +364,7 @@ def visualize_dataset_html( template_folder=template_dir, ) else: - # Create a simlink from the dataset video folder containg mp4 files to the output directory + # Create a simlink from the dataset video folder containing mp4 files to the output directory # so that the http server can get access to the mp4 files. if isinstance(dataset, LeRobotDataset): ln_videos_dir = static_dir / "videos" diff --git a/pyproject.toml b/pyproject.toml index 25cadb3e..0bd3c029 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -116,6 +116,19 @@ exclude = [ select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"] +[tool.typos] +default.extend-ignore-re = [ + "(?Rm)^.*(#|//)\\s*spellchecker:disable-line$", # spellchecker:disable-line + "(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on" # spellchecker: +] +default.extend-ignore-identifiers-re = [ + # Add individual words here to ignore them + "2nd", + "pn", + "ser", + "ein", +] + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" diff --git a/tests/mock_cv2.py b/tests/mock_cv2.py index 3f3f9e34..806e35ed 100644 --- a/tests/mock_cv2.py +++ b/tests/mock_cv2.py @@ -18,11 +18,11 @@ def _generate_image(width: int, height: int): return np.random.randint(0, 256, size=(height, width, 3), dtype=np.uint8) -def cvtColor(color_image, color_convertion): # noqa: N802 - if color_convertion in [COLOR_RGB2BGR, COLOR_BGR2RGB]: +def cvtColor(color_image, color_conversion): # noqa: N802 + if color_conversion in [COLOR_RGB2BGR, COLOR_BGR2RGB]: return color_image[:, :, [2, 1, 0]] else: - raise NotImplementedError(color_convertion) + raise NotImplementedError(color_conversion) def rotate(color_image, rotation): diff --git a/tests/test_cameras.py b/tests/test_cameras.py index 7c043c25..cfefc215 100644 --- a/tests/test_cameras.py +++ b/tests/test_cameras.py @@ -27,7 +27,7 @@ import pytest from lerobot.common.robot_devices.utils import RobotDeviceAlreadyConnectedError, RobotDeviceNotConnectedError from tests.utils import TEST_CAMERA_TYPES, make_camera, require_camera -# Maximum absolute difference between two consecutive images recored by a camera. +# Maximum absolute difference between two consecutive images recorded by a camera. # This value differs with respect to the camera. MAX_PIXEL_DIFFERENCE = 25 diff --git a/tests/test_control_robot.py b/tests/test_control_robot.py index 12b68641..1796291f 100644 --- a/tests/test_control_robot.py +++ b/tests/test_control_robot.py @@ -179,7 +179,7 @@ def test_record_and_replay_and_policy(tmp_path, request, robot_type, mock): policy.save_pretrained(pretrained_policy_path) # In `examples/9_use_aloha.md`, we advise using `num_image_writer_processes=1` - # during inference, to reach constent fps, so we test this here. + # during inference, to reach constant fps, so we test this here. if robot_type == "aloha": num_image_writer_processes = 1 diff --git a/tests/test_datasets.py b/tests/test_datasets.py index 61b68aa8..003a60c9 100644 --- a/tests/test_datasets.py +++ b/tests/test_datasets.py @@ -486,7 +486,7 @@ def test_backward_compatibility(repo_id): old_frame = load_file(test_dir / f"frame_{i}.safetensors") # noqa: B023 # ignore language instructions (if exists) in language conditioned datasets - # TODO (michel-aractingi): transform language obs to langauge embeddings via tokenizer + # TODO (michel-aractingi): transform language obs to language embeddings via tokenizer new_frame.pop("language_instruction", None) old_frame.pop("language_instruction", None) new_frame.pop("task", None) diff --git a/tests/test_delta_timestamps.py b/tests/test_delta_timestamps.py index 3e3b83ac..b27cc1eb 100644 --- a/tests/test_delta_timestamps.py +++ b/tests/test_delta_timestamps.py @@ -32,10 +32,10 @@ def calculate_episode_data_index(hf_dataset: datasets.Dataset) -> dict[str, np.n ep_table = table.filter(pc.equal(table["episode_index"], ep_idx)) episode_lengths.insert(ep_idx, len(ep_table)) - cumulative_lenghts = list(accumulate(episode_lengths)) + cumulative_lengths = list(accumulate(episode_lengths)) return { - "from": np.array([0] + cumulative_lenghts[:-1], dtype=np.int64), - "to": np.array(cumulative_lenghts, dtype=np.int64), + "from": np.array([0] + cumulative_lengths[:-1], dtype=np.int64), + "to": np.array(cumulative_lengths, dtype=np.int64), } diff --git a/tests/test_motors.py b/tests/test_motors.py index 2f668926..75793636 100644 --- a/tests/test_motors.py +++ b/tests/test_motors.py @@ -88,7 +88,7 @@ def test_motors_bus(request, motor_type, mock): motors_bus = make_motors_bus(motor_type, mock=mock) - # Test reading and writting before connecting raises an error + # Test reading and writing before connecting raises an error with pytest.raises(RobotDeviceNotConnectedError): motors_bus.read("Torque_Enable") with pytest.raises(RobotDeviceNotConnectedError): diff --git a/tests/test_robots.py b/tests/test_robots.py index 6c300b71..fe440da8 100644 --- a/tests/test_robots.py +++ b/tests/test_robots.py @@ -86,7 +86,7 @@ def test_robot(tmp_path, request, robot_type, mock): robot.connect() robot.teleop_step() - # Test data recorded during teleop are well formated + # Test data recorded during teleop are well formatted observation, action = robot.teleop_step(record_data=True) # State assert "observation.state" in observation From da265ca92000cfc40a8baaadb481cd2375a85044 Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Tue, 25 Feb 2025 23:52:25 +0100 Subject: [PATCH 09/70] Add pr style bot (#772) --- .github/workflows/pr_style_bot.yml | 125 +++++++++++++++++++++++++++++ .github/workflows/quality.yml | 6 +- 2 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/pr_style_bot.yml diff --git a/.github/workflows/pr_style_bot.yml b/.github/workflows/pr_style_bot.yml new file mode 100644 index 00000000..a34042c4 --- /dev/null +++ b/.github/workflows/pr_style_bot.yml @@ -0,0 +1,125 @@ +# Adapted from https://github.com/huggingface/diffusers/blob/main/.github/workflows/pr_style_bot.yml +name: PR Style Bot + +on: + issue_comment: + types: [created] + +permissions: + contents: write + pull-requests: write + +jobs: + run-style-bot: + if: > + contains(github.event.comment.body, '@bot /style') && + github.event.issue.pull_request != null + runs-on: ubuntu-latest + + steps: + - name: Extract PR details + id: pr_info + uses: actions/github-script@v6 + with: + script: | + const prNumber = context.payload.issue.number; + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + // We capture both the branch ref and the "full_name" of the head repo + // so that we can check out the correct repository & branch (including forks). + core.setOutput("prNumber", prNumber); + core.setOutput("headRef", pr.head.ref); + core.setOutput("headRepoFullName", pr.head.repo.full_name); + + - name: Check out PR branch + uses: actions/checkout@v4 + env: + HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} + HEADREF: ${{ steps.pr_info.outputs.headRef }} + with: + persist-credentials: false + # Instead of checking out the base repo, use the contributor's repo name + repository: ${{ env.HEADREPOFULLNAME }} + ref: ${{ env.HEADREF }} + # You may need fetch-depth: 0 for being able to push + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Debug + env: + HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} + HEADREF: ${{ steps.pr_info.outputs.headRef }} + PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} + run: | + echo "PR number: $PRNUMBER" + echo "Head Ref: $HEADREF" + echo "Head Repo Full Name: $HEADREPOFULLNAME" + + - name: Set up Python + uses: actions/setup-python@v4 + + - name: Get Ruff Version from pre-commit-config.yaml + id: get-ruff-version + run: | + RUFF_VERSION=$(awk '/repo: https:\/\/github.com\/astral-sh\/ruff-pre-commit/{flag=1;next}/rev:/{if(flag){print $2;exit}}' .pre-commit-config.yaml) + echo "ruff_version=${RUFF_VERSION}" >> $GITHUB_OUTPUT + + - name: Install Ruff + env: + RUFF_VERSION: ${{ steps.get-ruff-version.outputs.ruff_version }} + run: python -m pip install "ruff==${RUFF_VERSION}" + + - name: Ruff check + run: ruff check --fix + + - name: Ruff format + run: ruff format + + - name: Commit and push changes + id: commit_and_push + env: + HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} + HEADREF: ${{ steps.pr_info.outputs.headRef }} + PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + echo "HEADREPOFULLNAME: $HEADREPOFULLNAME, HEADREF: $HEADREF" + # Configure git with the Actions bot user + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Make sure your 'origin' remote is set to the contributor's fork + git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/$HEADREPOFULLNAME.git" + + # If there are changes after running style/quality, commit them + if [ -n "$(git status --porcelain)" ]; then + git add . + git commit -m "Apply style fixes" + # Push to the original contributor's forked branch + git push origin HEAD:$HEADREF + echo "changes_pushed=true" >> $GITHUB_OUTPUT + else + echo "No changes to commit." + echo "changes_pushed=false" >> $GITHUB_OUTPUT + fi + + - name: Comment on PR with workflow run link + if: steps.commit_and_push.outputs.changes_pushed == 'true' + uses: actions/github-script@v6 + with: + script: | + const prNumber = parseInt(process.env.prNumber, 10); + const runUrl = `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}` + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: `Style fixes have been applied. [View the workflow run here](${runUrl}).` + }); + env: + prNumber: ${{ steps.pr_info.outputs.prNumber }} diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 4cf8e0df..f785d52f 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -32,10 +32,12 @@ jobs: id: get-ruff-version run: | RUFF_VERSION=$(awk '/repo: https:\/\/github.com\/astral-sh\/ruff-pre-commit/{flag=1;next}/rev:/{if(flag){print $2;exit}}' .pre-commit-config.yaml) - echo "RUFF_VERSION=${RUFF_VERSION}" >> $GITHUB_ENV + echo "ruff_version=${RUFF_VERSION}" >> $GITHUB_OUTPUT - name: Install Ruff - run: python -m pip install "ruff==${{ env.RUFF_VERSION }}" + env: + RUFF_VERSION: ${{ steps.get-ruff-version.outputs.ruff_version }} + run: python -m pip install "ruff==${RUFF_VERSION}" - name: Ruff check run: ruff check --output-format=github From 659ec4434d4aa9cf633477be3b1cbf1dd6f4c2bf Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Wed, 26 Feb 2025 16:36:03 +0100 Subject: [PATCH 10/70] Fix nightly (#775) --- .github/workflows/test-docker-build.yml | 2 +- docker/lerobot-cpu/Dockerfile | 38 +++++------ docker/lerobot-gpu/Dockerfile | 7 +- .../aloha_act/actions.safetensors | 3 - .../aloha_act/grad_stats.safetensors | 3 - .../aloha_act/output_dict.safetensors | 3 - .../aloha_act/param_stats.safetensors | 3 - .../aloha_act_1000_steps/actions.safetensors | 3 - .../grad_stats.safetensors | 3 - .../output_dict.safetensors | 3 - .../param_stats.safetensors | 3 - .../actions.safetensors | 3 + .../grad_stats.safetensors | 3 + .../output_dict.safetensors | 3 + .../param_stats.safetensors | 3 + .../actions.safetensors | 3 + .../grad_stats.safetensors | 3 + .../output_dict.safetensors | 3 + .../param_stats.safetensors | 3 + .../actions.safetensors | 3 - .../grad_stats.safetensors | 3 - .../output_dict.safetensors | 3 - .../param_stats.safetensors | 3 - .../pusht_diffusion/actions.safetensors | 3 - .../pusht_diffusion/grad_stats.safetensors | 3 - .../pusht_diffusion/output_dict.safetensors | 3 - .../pusht_diffusion/param_stats.safetensors | 3 - .../pusht_diffusion_/actions.safetensors | 3 + .../pusht_diffusion_/grad_stats.safetensors | 3 + .../pusht_diffusion_/output_dict.safetensors | 3 + .../pusht_diffusion_/param_stats.safetensors | 3 + .../actions.safetensors | 3 + .../grad_stats.safetensors | 3 + .../output_dict.safetensors | 3 + .../param_stats.safetensors | 3 + .../actions.safetensors | 3 + .../grad_stats.safetensors | 3 + .../output_dict.safetensors | 3 + .../param_stats.safetensors | 3 + .../xarm_tdmpcuse_mpc/actions.safetensors | 3 - .../xarm_tdmpcuse_mpc/grad_stats.safetensors | 3 - .../xarm_tdmpcuse_mpc/output_dict.safetensors | 3 - .../xarm_tdmpcuse_mpc/param_stats.safetensors | 3 - .../xarm_tdmpcuse_policy/actions.safetensors | 3 - .../grad_stats.safetensors | 3 - .../output_dict.safetensors | 3 - .../param_stats.safetensors | 3 - tests/scripts/save_policy_to_safetensors.py | 60 ++++++++--------- tests/test_online_buffer.py | 10 +-- tests/test_policies.py | 66 +++++++++---------- tests/test_robots.py | 2 +- 51 files changed, 145 insertions(+), 172 deletions(-) delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act/param_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act_1000_steps/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act_1000_steps/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act_1000_steps/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/aloha_act_1000_steps/param_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/actions.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/grad_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/output_dict.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/param_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/actions.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/grad_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/output_dict.safetensors create mode 100644 tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/param_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/param_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion/param_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion_/actions.safetensors create mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion_/grad_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion_/output_dict.safetensors create mode 100644 tests/data/save_policy_to_safetensors/pusht_diffusion_/param_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/actions.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/grad_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/output_dict.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/param_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/actions.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/grad_stats.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/output_dict.safetensors create mode 100644 tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/param_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/param_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/actions.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/grad_stats.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/output_dict.safetensors delete mode 100644 tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/param_stats.safetensors diff --git a/.github/workflows/test-docker-build.yml b/.github/workflows/test-docker-build.yml index 4d6e9ce5..3ee84a27 100644 --- a/.github/workflows/test-docker-build.yml +++ b/.github/workflows/test-docker-build.yml @@ -43,7 +43,7 @@ jobs: needs: get_changed_files runs-on: group: aws-general-8-plus - if: ${{ needs.get_changed_files.outputs.matrix }} != '' + if: needs.get_changed_files.outputs.matrix != '' strategy: fail-fast: false matrix: diff --git a/docker/lerobot-cpu/Dockerfile b/docker/lerobot-cpu/Dockerfile index 06673092..13a45d24 100644 --- a/docker/lerobot-cpu/Dockerfile +++ b/docker/lerobot-cpu/Dockerfile @@ -1,33 +1,29 @@ # Configure image ARG PYTHON_VERSION=3.10 - FROM python:${PYTHON_VERSION}-slim -ARG PYTHON_VERSION -ARG DEBIAN_FRONTEND=noninteractive -# Install apt dependencies +# Configure environment variables +ARG PYTHON_VERSION +ENV DEBIAN_FRONTEND=noninteractive +ENV MUJOCO_GL="egl" +ENV PATH="/opt/venv/bin:$PATH" + +# Install dependencies and set up Python in a single layer RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential cmake git git-lfs \ + build-essential cmake git \ libglib2.0-0 libgl1-mesa-glx libegl1-mesa ffmpeg \ speech-dispatcher libgeos-dev \ - && apt-get clean && rm -rf /var/lib/apt/lists/* + && ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python \ + && python -m venv /opt/venv \ + && apt-get clean && rm -rf /var/lib/apt/lists/* \ + && echo "source /opt/venv/bin/activate" >> /root/.bashrc -# Create virtual environment -RUN ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python -RUN python -m venv /opt/venv -ENV PATH="/opt/venv/bin:$PATH" -RUN echo "source /opt/venv/bin/activate" >> /root/.bashrc - -# Install LeRobot -RUN git lfs install -RUN git clone https://github.com/huggingface/lerobot.git /lerobot +# Clone repository and install LeRobot in a single layer +COPY . /lerobot WORKDIR /lerobot -RUN pip install --upgrade --no-cache-dir pip -RUN pip install --no-cache-dir ".[test, aloha, xarm, pusht, dynamixel]" \ - --extra-index-url https://download.pytorch.org/whl/cpu - -# Set EGL as the rendering backend for MuJoCo -ENV MUJOCO_GL="egl" +RUN /opt/venv/bin/pip install --upgrade --no-cache-dir pip \ + && /opt/venv/bin/pip install --no-cache-dir ".[test, aloha, xarm, pusht, dynamixel]" \ + --extra-index-url https://download.pytorch.org/whl/cpu # Execute in bash shell rather than python CMD ["/bin/bash"] diff --git a/docker/lerobot-gpu/Dockerfile b/docker/lerobot-gpu/Dockerfile index b2898b97..642a8ded 100644 --- a/docker/lerobot-gpu/Dockerfile +++ b/docker/lerobot-gpu/Dockerfile @@ -8,7 +8,7 @@ ENV PATH="/opt/venv/bin:$PATH" # Install dependencies and set up Python in a single layer RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential cmake git git-lfs \ + build-essential cmake git \ libglib2.0-0 libgl1-mesa-glx libegl1-mesa ffmpeg \ speech-dispatcher libgeos-dev \ python${PYTHON_VERSION}-dev python${PYTHON_VERSION}-venv \ @@ -18,8 +18,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && echo "source /opt/venv/bin/activate" >> /root/.bashrc # Clone repository and install LeRobot in a single layer +COPY . /lerobot WORKDIR /lerobot -RUN git lfs install \ - && git clone https://github.com/huggingface/lerobot.git . \ - && /opt/venv/bin/pip install --upgrade --no-cache-dir pip \ +RUN /opt/venv/bin/pip install --upgrade --no-cache-dir pip \ && /opt/venv/bin/pip install --no-cache-dir ".[test, aloha, xarm, pusht, dynamixel]" diff --git a/tests/data/save_policy_to_safetensors/aloha_act/actions.safetensors b/tests/data/save_policy_to_safetensors/aloha_act/actions.safetensors deleted file mode 100644 index 2dd4dda3..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb7b74f919adf8d4478585f65c54997e6f3bccab67eadb4048300108586a4163 -size 5104 diff --git a/tests/data/save_policy_to_safetensors/aloha_act/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_act/grad_stats.safetensors deleted file mode 100644 index cd966518..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfbc3b1ad5e3b94311edda0f04db002b26117b0719b73dfdb56dd483dc9c409d -size 31672 diff --git a/tests/data/save_policy_to_safetensors/aloha_act/output_dict.safetensors b/tests/data/save_policy_to_safetensors/aloha_act/output_dict.safetensors deleted file mode 100644 index e957acb8..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e39afdf1f3db8a72a1095a5a0ffdb7e67f478a28bd73e59cda197687da8d236c -size 68 diff --git a/tests/data/save_policy_to_safetensors/aloha_act/param_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_act/param_stats.safetensors deleted file mode 100644 index 35ba61bd..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5dd39a554c9c3db537e98c9ceade024d172c46c4fa7ce9e27601b94116445417 -size 33400 diff --git a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/actions.safetensors b/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/actions.safetensors deleted file mode 100644 index ababdedf..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5ec46abc5a3c85675a5ee4a1bb362eecb3ff4c546082ff309c89fc7821f38bd -size 515400 diff --git a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/grad_stats.safetensors deleted file mode 100644 index e0b2f54a..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:50303d05caea725c4a240f1389424d6c2361961f2cee729a0010e909ebffed81 -size 31672 diff --git a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/output_dict.safetensors b/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/output_dict.safetensors deleted file mode 100644 index 3c5d3b93..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9bb9b195d32e05550af0edd5df88fcc761c829ab8c4b129ba970a723f39b46ee -size 68 diff --git a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/param_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/param_stats.safetensors deleted file mode 100644 index 88d3106e..00000000 --- a/tests/data/save_policy_to_safetensors/aloha_act_1000_steps/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:683a2038185f3d070e7d7c0c31e4aa75067c11bf798daa41c9fab336f4183fda -size 33400 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/actions.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/actions.safetensors new file mode 100644 index 00000000..6fec6b22 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/actions.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc67af1d60f95d84c98d6c9ebd648990e0f0705368bd6b72d2b39533950b0179 +size 5104 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/grad_stats.safetensors new file mode 100644 index 00000000..7136a69f --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/grad_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64518cf652105d15f5fd2cfc13d0681f66a4ec4797dc5d5dc2f7b0d91fe5dfd6 +size 31672 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/output_dict.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/output_dict.safetensors new file mode 100644 index 00000000..864feebe --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/output_dict.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32b6d14fab4244b5140adb345e47f662b6739c04974e04b21c3127caa988abbb +size 68 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/param_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/param_stats.safetensors new file mode 100644 index 00000000..bbabade6 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_/param_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1904ef0338f7b6efdec70ec235ee931b5751008bf4eb433edb0b3fa0838a4f1 +size 33400 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/actions.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/actions.safetensors new file mode 100644 index 00000000..1093b45d --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/actions.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa544a97f00bf46393a09b006b44c2499bbf7d177782360a8c21cacbf200c07a +size 515400 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/grad_stats.safetensors new file mode 100644 index 00000000..092e0040 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/grad_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83c7a8ae912300b5cedba31904f7ba22542059fd60dd86548a95e415713f719e +size 31672 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/output_dict.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/output_dict.safetensors new file mode 100644 index 00000000..6561116c --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/output_dict.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a010633237b3a1141603c65174c551daa9e7b4c474af5a1376d73e5425bfb5d +size 68 diff --git a/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/param_stats.safetensors b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/param_stats.safetensors new file mode 100644 index 00000000..09772ea3 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/aloha_sim_insertion_human_act_1000_steps/param_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec8b5c440e9fcec190c9be48b28ebb79f82ae63626afe7c811e4bb0c3dd08842 +size 33400 diff --git a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/actions.safetensors b/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/actions.safetensors deleted file mode 100644 index 40434950..00000000 --- a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e56a5d30778395534a06ad1742843700424614168fc26d1098558012a5df90c6 -size 5104 diff --git a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/grad_stats.safetensors deleted file mode 100644 index a8c15716..00000000 --- a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9007dd51c748db4ecd6d75e70bdcabf8c312454ac97bf6710895a12e7288557 -size 31672 diff --git a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/output_dict.safetensors b/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/output_dict.safetensors deleted file mode 100644 index 95c598c7..00000000 --- a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:170bd8365dfd1e36e8f56814bf8bc2057aa0d035c41212b7ddd7e4b9feee1633 -size 68 diff --git a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/param_stats.safetensors b/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/param_stats.safetensors deleted file mode 100644 index 09a11d73..00000000 --- a/tests/data/save_policy_to_safetensors/dora_aloha_real_act_aloha_real/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11884346b41ca102c672bb0f361ea9699d2f8b33bb503038b53cc7e7fafd281b -size 34920 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion/actions.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion/actions.safetensors deleted file mode 100644 index b021f63c..00000000 --- a/tests/data/save_policy_to_safetensors/pusht_diffusion/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0c259ea9c40aab3841ca35b2a2e708d8829b0a9163b2f9e5efd28f1c65848293 -size 4600 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion/grad_stats.safetensors deleted file mode 100644 index ad0300ca..00000000 --- a/tests/data/save_policy_to_safetensors/pusht_diffusion/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77cd4127a45ded2f75d85ca9c17537808517614ef16fb3035cebb1b45547acbf -size 47424 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion/output_dict.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion/output_dict.safetensors deleted file mode 100644 index 9c7143e5..00000000 --- a/tests/data/save_policy_to_safetensors/pusht_diffusion/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fcff4b736e95d685d56830b501f4542b081f4334f72d28a7415809f4d9d15d0f -size 68 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion/param_stats.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion/param_stats.safetensors deleted file mode 100644 index 1efb0765..00000000 --- a/tests/data/save_policy_to_safetensors/pusht_diffusion/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60775e91ed550aae66cb0547ee4b0e38917f29172e942671e9361b3812364df6 -size 49120 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion_/actions.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion_/actions.safetensors new file mode 100644 index 00000000..84e14b97 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/pusht_diffusion_/actions.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a32376dde65a1562403afd1db3e56c7e6b987ebaf6c3c601336e77155b9e608c +size 992 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion_/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion_/grad_stats.safetensors new file mode 100644 index 00000000..54229791 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/pusht_diffusion_/grad_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ee532c53173d0361ebb979f087b229cc045aa3d9e6b94cfd4290af54fd1201 +size 47424 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion_/output_dict.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion_/output_dict.safetensors new file mode 100644 index 00000000..f2930399 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/pusht_diffusion_/output_dict.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:271b00cb2f0cd5fd26b1d53463638e3d1a6e92692ec625fcffb420ca190869e5 +size 68 diff --git a/tests/data/save_policy_to_safetensors/pusht_diffusion_/param_stats.safetensors b/tests/data/save_policy_to_safetensors/pusht_diffusion_/param_stats.safetensors new file mode 100644 index 00000000..e91cd08b --- /dev/null +++ b/tests/data/save_policy_to_safetensors/pusht_diffusion_/param_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:010c01181b95625051276d69cb4209423c21f2e30a3fa9464ae67064a2ba4c22 +size 49120 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/actions.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/actions.safetensors new file mode 100644 index 00000000..fa9bf06a --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/actions.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5edc5600d7206f027cb696a597bc99fcdd9073a15fa130b8031c52c0a7c134b +size 200 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/grad_stats.safetensors new file mode 100644 index 00000000..8d90a671 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/grad_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a70e29263afdbff3a49d7041ff2d5065df75472b7c030cc8a5d12ab20d24cc10 +size 16904 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/output_dict.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/output_dict.safetensors new file mode 100644 index 00000000..cde6c6dc --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/output_dict.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c49a5b4d4df92c9564009780f5e286ddfca84ca2b1753557024057b3b36afb8b +size 164 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/param_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/param_stats.safetensors new file mode 100644 index 00000000..692377d1 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_mpc/param_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f8d19a86065937cffdd3ca49caef87c59e67d419b28f40f2817bad892dc3170 +size 36312 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/actions.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/actions.safetensors new file mode 100644 index 00000000..7a0b165e --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/actions.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9c08753ddc43b6c02a176418b81eb784146e59f4fc914591cbd3582ade392bb +size 200 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/grad_stats.safetensors new file mode 100644 index 00000000..8d90a671 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/grad_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a70e29263afdbff3a49d7041ff2d5065df75472b7c030cc8a5d12ab20d24cc10 +size 16904 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/output_dict.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/output_dict.safetensors new file mode 100644 index 00000000..cde6c6dc --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/output_dict.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c49a5b4d4df92c9564009780f5e286ddfca84ca2b1753557024057b3b36afb8b +size 164 diff --git a/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/param_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/param_stats.safetensors new file mode 100644 index 00000000..692377d1 --- /dev/null +++ b/tests/data/save_policy_to_safetensors/xarm_lift_medium_tdmpc_use_policy/param_stats.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f8d19a86065937cffdd3ca49caef87c59e67d419b28f40f2817bad892dc3170 +size 36312 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/actions.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/actions.safetensors deleted file mode 100644 index e2fb68ac..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81457cfd193d9d46b6871071a3971c2901fefa544ab225576132772087b4cf3a -size 472 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/grad_stats.safetensors deleted file mode 100644 index cf756229..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d796577863740e8fd643a056e9eff891e51a858ff66019eba11f0a982cb9e9c0 -size 16904 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/output_dict.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/output_dict.safetensors deleted file mode 100644 index f8863cfb..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4636751d82103a268ac7cf36f1e69f6356f356b9c40561a9fe8557bb9255e2ee -size 240 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/param_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/param_stats.safetensors deleted file mode 100644 index 8ce3c4f3..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_mpc/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7d08c9518f1f15226e4efc6f2a8542d0f3e620c91421c7cacea07d9bd9025d6 -size 36312 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/actions.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/actions.safetensors deleted file mode 100644 index 1b3912ed..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/actions.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6cdb181ba6acc4aa1209a9ea5dd783f077ff87760257de1026c33f8e2fb2b2b1 -size 472 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/grad_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/grad_stats.safetensors deleted file mode 100644 index cf756229..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/grad_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d796577863740e8fd643a056e9eff891e51a858ff66019eba11f0a982cb9e9c0 -size 16904 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/output_dict.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/output_dict.safetensors deleted file mode 100644 index f8863cfb..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/output_dict.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4636751d82103a268ac7cf36f1e69f6356f356b9c40561a9fe8557bb9255e2ee -size 240 diff --git a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/param_stats.safetensors b/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/param_stats.safetensors deleted file mode 100644 index 8ce3c4f3..00000000 --- a/tests/data/save_policy_to_safetensors/xarm_tdmpcuse_policy/param_stats.safetensors +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7d08c9518f1f15226e4efc6f2a8542d0f3e620c91421c7cacea07d9bd9025d6 -size 36312 diff --git a/tests/scripts/save_policy_to_safetensors.py b/tests/scripts/save_policy_to_safetensors.py index de784db3..03726163 100644 --- a/tests/scripts/save_policy_to_safetensors.py +++ b/tests/scripts/save_policy_to_safetensors.py @@ -27,16 +27,13 @@ from lerobot.configs.default import DatasetConfig from lerobot.configs.train import TrainPipelineConfig -def get_policy_stats(ds_repo_id, env_name, policy_name, policy_kwargs, train_kwargs): - # TODO(rcadene, aliberts): env_name? +def get_policy_stats(ds_repo_id: str, policy_name: str, policy_kwargs: dict): set_seed(1337) - train_cfg = TrainPipelineConfig( # TODO(rcadene, aliberts): remove dataset download dataset=DatasetConfig(repo_id=ds_repo_id, episodes=[0]), policy=make_policy_config(policy_name, **policy_kwargs), device="cpu", - **train_kwargs, ) train_cfg.validate() # Needed for auto-setting some parameters @@ -54,8 +51,11 @@ def get_policy_stats(ds_repo_id, env_name, policy_name, policy_kwargs, train_kwa batch = next(iter(dataloader)) loss, output_dict = policy.forward(batch) - output_dict = {k: v for k, v in output_dict.items() if isinstance(v, torch.Tensor)} - output_dict["loss"] = loss + if output_dict is not None: + output_dict = {k: v for k, v in output_dict.items() if isinstance(v, torch.Tensor)} + output_dict["loss"] = loss + else: + output_dict = {"loss": loss} loss.backward() grad_stats = {} @@ -101,30 +101,27 @@ def get_policy_stats(ds_repo_id, env_name, policy_name, policy_kwargs, train_kwa return output_dict, grad_stats, param_stats, actions -def save_policy_to_safetensors(output_dir, env_name, policy_name, policy_kwargs, file_name_extra): - env_policy_dir = Path(output_dir) / f"{env_name}_{policy_name}{file_name_extra}" +def save_policy_to_safetensors(output_dir: Path, ds_repo_id: str, policy_name: str, policy_kwargs: dict): + if output_dir.exists(): + print(f"Overwrite existing safetensors in '{output_dir}':") + print(f" - Validate with: `git add {output_dir}`") + print(f" - Revert with: `git checkout -- {output_dir}`") + shutil.rmtree(output_dir) - if env_policy_dir.exists(): - print(f"Overwrite existing safetensors in '{env_policy_dir}':") - print(f" - Validate with: `git add {env_policy_dir}`") - print(f" - Revert with: `git checkout -- {env_policy_dir}`") - shutil.rmtree(env_policy_dir) - - env_policy_dir.mkdir(parents=True, exist_ok=True) - output_dict, grad_stats, param_stats, actions = get_policy_stats(env_name, policy_name, policy_kwargs) - save_file(output_dict, env_policy_dir / "output_dict.safetensors") - save_file(grad_stats, env_policy_dir / "grad_stats.safetensors") - save_file(param_stats, env_policy_dir / "param_stats.safetensors") - save_file(actions, env_policy_dir / "actions.safetensors") + output_dir.mkdir(parents=True, exist_ok=True) + output_dict, grad_stats, param_stats, actions = get_policy_stats(ds_repo_id, policy_name, policy_kwargs) + save_file(output_dict, output_dir / "output_dict.safetensors") + save_file(grad_stats, output_dir / "grad_stats.safetensors") + save_file(param_stats, output_dir / "param_stats.safetensors") + save_file(actions, output_dir / "actions.safetensors") if __name__ == "__main__": - env_policies = [ - ("lerobot/xarm_lift_medium", "xarm", "tdmpc", {"use_mpc": False}, "use_policy"), - ("lerobot/xarm_lift_medium", "xarm", "tdmpc", {"use_mpc": True}, "use_mpc"), + artifacts_cfg = [ + ("lerobot/xarm_lift_medium", "tdmpc", {"use_mpc": False}, "use_policy"), + ("lerobot/xarm_lift_medium", "tdmpc", {"use_mpc": True}, "use_mpc"), ( "lerobot/pusht", - "pusht", "diffusion", { "n_action_steps": 8, @@ -133,18 +130,17 @@ if __name__ == "__main__": }, "", ), - ("lerobot/aloha_sim_insertion_human", "aloha", "act", {"n_action_steps": 10}, ""), + ("lerobot/aloha_sim_insertion_human", "act", {"n_action_steps": 10}, ""), ( "lerobot/aloha_sim_insertion_human", - "aloha", "act", {"n_action_steps": 1000, "chunk_size": 1000}, - "_1000_steps", + "1000_steps", ), ] - if len(env_policies) == 0: + if len(artifacts_cfg) == 0: raise RuntimeError("No policies were provided!") - for ds_repo_id, env, policy, policy_kwargs, file_name_extra in env_policies: - save_policy_to_safetensors( - "tests/data/save_policy_to_safetensors", ds_repo_id, env, policy, policy_kwargs, file_name_extra - ) + for ds_repo_id, policy, policy_kwargs, file_name_extra in artifacts_cfg: + ds_name = ds_repo_id.split("/")[-1] + output_dir = Path("tests/data/save_policy_to_safetensors") / f"{ds_name}_{policy}_{file_name_extra}" + save_policy_to_safetensors(output_dir, ds_repo_id, policy, policy_kwargs) diff --git a/tests/test_online_buffer.py b/tests/test_online_buffer.py index db53808d..339f6848 100644 --- a/tests/test_online_buffer.py +++ b/tests/test_online_buffer.py @@ -166,7 +166,7 @@ def test_delta_timestamps_within_tolerance(): buffer.tolerance_s = 0.04 item = buffer[2] data, is_pad = item["index"], item[f"index{OnlineBuffer.IS_PAD_POSTFIX}"] - assert torch.allclose(data, torch.tensor([0, 2, 3])), "Data does not match expected values" + torch.testing.assert_close(data, torch.tensor([0, 2, 3]), msg="Data does not match expected values") assert not is_pad.any(), "Unexpected padding detected" @@ -236,7 +236,7 @@ def test_compute_sampler_weights_trivial( elif online_sampling_ratio == 1: expected_weights = torch.cat([torch.zeros(offline_dataset_size), torch.ones(online_dataset_size)]) expected_weights /= expected_weights.sum() - assert torch.allclose(weights, expected_weights) + torch.testing.assert_close(weights, expected_weights) def test_compute_sampler_weights_nontrivial_ratio(lerobot_dataset_factory, tmp_path): @@ -248,7 +248,7 @@ def test_compute_sampler_weights_nontrivial_ratio(lerobot_dataset_factory, tmp_p weights = compute_sampler_weights( offline_dataset, online_dataset=online_dataset, online_sampling_ratio=online_sampling_ratio ) - assert torch.allclose( + torch.testing.assert_close( weights, torch.tensor([0.05, 0.05, 0.05, 0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]) ) @@ -261,7 +261,7 @@ def test_compute_sampler_weights_nontrivial_ratio_and_drop_last_n(lerobot_datase weights = compute_sampler_weights( offline_dataset, online_dataset=online_dataset, online_sampling_ratio=0.8, online_drop_n_last_frames=1 ) - assert torch.allclose( + torch.testing.assert_close( weights, torch.tensor([0.05, 0.05, 0.05, 0.05, 0.2, 0.0, 0.2, 0.0, 0.2, 0.0, 0.2, 0.0]) ) @@ -279,4 +279,4 @@ def test_compute_sampler_weights_drop_n_last_frames(lerobot_dataset_factory, tmp online_sampling_ratio=0.5, online_drop_n_last_frames=1, ) - assert torch.allclose(weights, torch.tensor([0.5, 0, 0.125, 0, 0.125, 0, 0.125, 0, 0.125, 0])) + torch.testing.assert_close(weights, torch.tensor([0.5, 0, 0.125, 0, 0.125, 0, 0.125, 0, 0.125, 0])) diff --git a/tests/test_policies.py b/tests/test_policies.py index 27cf49f8..9dab6176 100644 --- a/tests/test_policies.py +++ b/tests/test_policies.py @@ -363,37 +363,33 @@ def test_normalize(insert_temporal_dim): @pytest.mark.parametrize( - "ds_repo_id, env_name, policy_name, policy_kwargs, train_kwargs, file_name_extra", + "ds_repo_id, policy_name, policy_kwargs, file_name_extra", [ # TODO(alexander-soare): `policy.use_mpc=false` was previously the default in the config yaml but it # was changed to true. For some reason, tests would pass locally, but not in CI. So here we override # to test with `policy.use_mpc=false`. - ("lerobot/xarm_lift_medium", "xarm", "tdmpc", {"use_mpc": False}, {"batch_size": 25}, "use_policy"), - # ("lerobot/xarm_lift_medium", "xarm", "tdmpc", {"use_mpc": True}, {}, "use_mpc"), + ("lerobot/xarm_lift_medium", "tdmpc", {"use_mpc": False}, "use_policy"), + ("lerobot/xarm_lift_medium", "tdmpc", {"use_mpc": True}, "use_mpc"), # TODO(rcadene): the diffusion model was normalizing the image in mean=0.5 std=0.5 which is a hack supposed to # to normalize the image at all. In our current codebase we dont normalize at all. But there is still a minor difference # that fails the test. However, by testing to normalize the image with 0.5 0.5 in the current codebase, the test pass. # Thus, we deactivate this test for now. - # ( - # "lerobot/pusht", - # "pusht", - # "diffusion", - # { - # "n_action_steps": 8, - # "num_inference_steps": 10, - # "down_dims": [128, 256, 512], - # }, - # {"batch_size": 64}, - # "", - # ), - ("lerobot/aloha_sim_insertion_human", "aloha", "act", {"n_action_steps": 10}, {}, ""), + ( + "lerobot/pusht", + "diffusion", + { + "n_action_steps": 8, + "num_inference_steps": 10, + "down_dims": [128, 256, 512], + }, + "", + ), + ("lerobot/aloha_sim_insertion_human", "act", {"n_action_steps": 10}, ""), ( "lerobot/aloha_sim_insertion_human", - "aloha", "act", {"n_action_steps": 1000, "chunk_size": 1000}, - {}, - "_1000_steps", + "1000_steps", ), ], ) @@ -401,9 +397,7 @@ def test_normalize(insert_temporal_dim): # pass if it's run on another platform due to floating point errors @require_x86_64_kernel @require_cpu -def test_backward_compatibility( - ds_repo_id, env_name, policy_name, policy_kwargs, train_kwargs, file_name_extra -): +def test_backward_compatibility(ds_repo_id: str, policy_name: str, policy_kwargs: dict, file_name_extra: str): """ NOTE: If this test does not pass, and you have intentionally changed something in the policy: 1. Inspect the differences in policy outputs and make sure you can account for them. Your PR should @@ -416,26 +410,26 @@ def test_backward_compatibility( 5. Remember to restore `tests/scripts/save_policy_to_safetensors.py` to its original state. 6. Remember to stage and commit the resulting changes to `tests/data`. """ - env_policy_dir = ( - Path("tests/data/save_policy_to_safetensors") / f"{env_name}_{policy_name}{file_name_extra}" + ds_name = ds_repo_id.split("/")[-1] + artifact_dir = ( + Path("tests/data/save_policy_to_safetensors") / f"{ds_name}_{policy_name}_{file_name_extra}" ) - saved_output_dict = load_file(env_policy_dir / "output_dict.safetensors") - saved_grad_stats = load_file(env_policy_dir / "grad_stats.safetensors") - saved_param_stats = load_file(env_policy_dir / "param_stats.safetensors") - saved_actions = load_file(env_policy_dir / "actions.safetensors") + saved_output_dict = load_file(artifact_dir / "output_dict.safetensors") + saved_grad_stats = load_file(artifact_dir / "grad_stats.safetensors") + saved_param_stats = load_file(artifact_dir / "param_stats.safetensors") + saved_actions = load_file(artifact_dir / "actions.safetensors") - output_dict, grad_stats, param_stats, actions = get_policy_stats( - ds_repo_id, env_name, policy_name, policy_kwargs, train_kwargs - ) + output_dict, grad_stats, param_stats, actions = get_policy_stats(ds_repo_id, policy_name, policy_kwargs) for key in saved_output_dict: - assert torch.allclose(output_dict[key], saved_output_dict[key], rtol=0.1, atol=1e-7) + torch.testing.assert_close(output_dict[key], saved_output_dict[key]) for key in saved_grad_stats: - assert torch.allclose(grad_stats[key], saved_grad_stats[key], rtol=0.1, atol=1e-7) + torch.testing.assert_close(grad_stats[key], saved_grad_stats[key]) for key in saved_param_stats: - assert torch.allclose(param_stats[key], saved_param_stats[key], rtol=0.1, atol=1e-7) + torch.testing.assert_close(param_stats[key], saved_param_stats[key]) for key in saved_actions: - assert torch.allclose(actions[key], saved_actions[key], rtol=0.1, atol=1e-7) + rtol, atol = (2e-3, 5e-6) if policy_name == "diffusion" else (None, None) # HACK + torch.testing.assert_close(actions[key], saved_actions[key], rtol=rtol, atol=atol) def test_act_temporal_ensembler(): @@ -490,4 +484,4 @@ def test_act_temporal_ensembler(): assert torch.all(einops.reduce(seq_slice, "b s 1 -> b 1", "min") <= offline_avg) assert torch.all(offline_avg <= einops.reduce(seq_slice, "b s 1 -> b 1", "max")) # Selected atol=1e-4 keeping in mind actions in [-1, 1] and excepting 0.01% error. - assert torch.allclose(online_avg, offline_avg, atol=1e-4) + torch.testing.assert_close(online_avg, offline_avg, rtol=1e-4, atol=1e-4) diff --git a/tests/test_robots.py b/tests/test_robots.py index fe440da8..c5734a4c 100644 --- a/tests/test_robots.py +++ b/tests/test_robots.py @@ -114,7 +114,7 @@ def test_robot(tmp_path, request, robot_type, mock): if "image" in name: # TODO(rcadene): skipping image for now as it's challenging to assess equality between two consecutive frames continue - assert torch.allclose(captured_observation[name], observation[name], atol=1) + torch.testing.assert_close(captured_observation[name], observation[name], rtol=1e-4, atol=1) assert captured_observation[name].shape == observation[name].shape # Test send_action can run From 8d60ac3ffcaa94b4e9aef77655fc7297a7ce47a2 Mon Sep 17 00:00:00 2001 From: Mishig Date: Wed, 26 Feb 2025 19:23:37 +0100 Subject: [PATCH 11/70] [vizualisation] Add pagination for many episodes (#776) --- .../templates/visualize_dataset_template.html | 144 ++++++++++++++---- 1 file changed, 111 insertions(+), 33 deletions(-) diff --git a/lerobot/templates/visualize_dataset_template.html b/lerobot/templates/visualize_dataset_template.html index 08de3e3d..e5a2f82c 100644 --- a/lerobot/templates/visualize_dataset_template.html +++ b/lerobot/templates/visualize_dataset_template.html @@ -14,21 +14,7 @@ - + - @@ -476,7 +476,7 @@ episodes: {{ episodes }}, pageSize: 100, page: 1, - + init() { // Find which page contains the current episode_id const currentEpisodeId = {{ episode_id }}; @@ -485,23 +485,23 @@ this.page = Math.floor(episodeIndex / this.pageSize) + 1; } }, - + get totalPages() { return Math.ceil(this.episodes.length / this.pageSize); }, - + get paginatedEpisodes() { const start = (this.page - 1) * this.pageSize; const end = start + this.pageSize; return this.episodes.slice(start, end); }, - + nextPage() { if (this.page < this.totalPages) { this.page++; } }, - + prevPage() { if (this.page > 1) { this.page--; @@ -515,7 +515,7 @@ window.addEventListener('keydown', (e) => { // Use the space bar to play and pause, instead of default action (e.g. scrolling) const { keyCode, key } = e; - + if (keyCode === 32 || key === ' ') { e.preventDefault(); const btnPause = document.querySelector('[x-ref="btnPause"]'); diff --git a/pyproject.toml b/pyproject.toml index 7684ce48..9a7c9730 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -111,10 +111,19 @@ exclude = [ "venv", ] - [tool.ruff.lint] select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"] +[tool.bandit] +exclude_dirs = [ + "tests", + "benchmarks", + "lerobot/common/datasets/push_dataset_to_hub", + "lerobot/common/datasets/v2/convert_dataset_v1_to_v2", + "lerobot/common/policies/pi0/conversion_scripts", + "lerobot/scripts/push_dataset_to_hub.py", +] +skips = ["B101", "B311", "B404", "B603"] [tool.typos] default.extend-ignore-re = [ From bf6f89a5b5a5526766a53ffa337d65ff13dcb5e8 Mon Sep 17 00:00:00 2001 From: Steven Palma Date: Mon, 3 Mar 2025 17:01:04 +0100 Subject: [PATCH 22/70] fix(examples): Add Tensor type check (#799) --- examples/3_train_policy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/3_train_policy.py b/examples/3_train_policy.py index cf5d4d3e..f6eabbfa 100644 --- a/examples/3_train_policy.py +++ b/examples/3_train_policy.py @@ -85,7 +85,7 @@ def main(): done = False while not done: for batch in dataloader: - batch = {k: v.to(device, non_blocking=True) for k, v in batch.items()} + batch = {k: (v.to(device) if isinstance(v, torch.Tensor) else v) for k, v in batch.items()} loss, _ = policy.forward(batch) loss.backward() optimizer.step() From b299cfea8a2356b033d0ed46207dce2e0924fc12 Mon Sep 17 00:00:00 2001 From: Pepijn <138571049+pkooij@users.noreply.github.com> Date: Tue, 4 Mar 2025 09:57:37 +0100 Subject: [PATCH 23/70] Add step assembly tutorial (#800) --- examples/10_use_so100.md | 227 ++++++++++++++++++++++++++++++++++++--- media/tutorial/img1.jpg | Bin 0 -> 67855 bytes media/tutorial/img10.jpg | Bin 0 -> 129990 bytes media/tutorial/img11.jpg | Bin 0 -> 111488 bytes media/tutorial/img12.jpg | Bin 0 -> 81939 bytes media/tutorial/img13.jpg | Bin 0 -> 90551 bytes media/tutorial/img14.jpg | Bin 0 -> 88316 bytes media/tutorial/img15.jpg | Bin 0 -> 98726 bytes media/tutorial/img16.jpg | Bin 0 -> 86507 bytes media/tutorial/img17.jpg | Bin 0 -> 73468 bytes media/tutorial/img18.jpg | Bin 0 -> 79960 bytes media/tutorial/img19.jpg | Bin 0 -> 99177 bytes media/tutorial/img2.jpg | Bin 0 -> 90672 bytes media/tutorial/img20.jpg | Bin 0 -> 43387 bytes media/tutorial/img21.jpg | Bin 0 -> 86694 bytes media/tutorial/img22.jpg | Bin 0 -> 63458 bytes media/tutorial/img23.jpg | Bin 0 -> 55148 bytes media/tutorial/img24.jpg | Bin 0 -> 62354 bytes media/tutorial/img25.jpg | Bin 0 -> 77381 bytes media/tutorial/img26.jpg | Bin 0 -> 81866 bytes media/tutorial/img27.jpg | Bin 0 -> 49286 bytes media/tutorial/img28.jpg | Bin 0 -> 93048 bytes media/tutorial/img29.jpg | Bin 0 -> 55617 bytes media/tutorial/img3.jpg | Bin 0 -> 87554 bytes media/tutorial/img30.jpg | Bin 0 -> 58339 bytes media/tutorial/img31.jpg | Bin 0 -> 85916 bytes media/tutorial/img32.jpg | Bin 0 -> 89561 bytes media/tutorial/img4.jpg | Bin 0 -> 71612 bytes media/tutorial/img5.jpg | Bin 0 -> 67065 bytes media/tutorial/img6.jpg | Bin 0 -> 65468 bytes media/tutorial/img7.jpg | Bin 0 -> 90926 bytes media/tutorial/img8.jpg | Bin 0 -> 76325 bytes media/tutorial/img9.jpg | Bin 0 -> 83830 bytes 33 files changed, 213 insertions(+), 14 deletions(-) create mode 100644 media/tutorial/img1.jpg create mode 100644 media/tutorial/img10.jpg create mode 100644 media/tutorial/img11.jpg create mode 100644 media/tutorial/img12.jpg create mode 100644 media/tutorial/img13.jpg create mode 100644 media/tutorial/img14.jpg create mode 100644 media/tutorial/img15.jpg create mode 100644 media/tutorial/img16.jpg create mode 100644 media/tutorial/img17.jpg create mode 100644 media/tutorial/img18.jpg create mode 100644 media/tutorial/img19.jpg create mode 100644 media/tutorial/img2.jpg create mode 100644 media/tutorial/img20.jpg create mode 100644 media/tutorial/img21.jpg create mode 100644 media/tutorial/img22.jpg create mode 100644 media/tutorial/img23.jpg create mode 100644 media/tutorial/img24.jpg create mode 100644 media/tutorial/img25.jpg create mode 100644 media/tutorial/img26.jpg create mode 100644 media/tutorial/img27.jpg create mode 100644 media/tutorial/img28.jpg create mode 100644 media/tutorial/img29.jpg create mode 100644 media/tutorial/img3.jpg create mode 100644 media/tutorial/img30.jpg create mode 100644 media/tutorial/img31.jpg create mode 100644 media/tutorial/img32.jpg create mode 100644 media/tutorial/img4.jpg create mode 100644 media/tutorial/img5.jpg create mode 100644 media/tutorial/img6.jpg create mode 100644 media/tutorial/img7.jpg create mode 100644 media/tutorial/img8.jpg create mode 100644 media/tutorial/img9.jpg diff --git a/examples/10_use_so100.md b/examples/10_use_so100.md index b39a0239..23da1eab 100644 --- a/examples/10_use_so100.md +++ b/examples/10_use_so100.md @@ -4,8 +4,8 @@ - [A. Source the parts](#a-source-the-parts) - [B. Install LeRobot](#b-install-lerobot) - - [C. Configure the motors](#c-configure-the-motors) - - [D. Assemble the arms](#d-assemble-the-arms) + - [C. Configure the Motors](#c-configure-the-motors) + - [D. Step-by-Step Assembly Instructions](#d-step-by-step-assembly-instructions) - [E. Calibrate](#e-calibrate) - [F. Teleoperate](#f-teleoperate) - [G. Record a dataset](#g-record-a-dataset) @@ -70,6 +70,7 @@ conda install -y -c conda-forge "opencv>=4.10.0" ``` Great :hugs:! You are now done installing LeRobot and we can begin assembling the SO100 arms :robot:. Every time you now want to use LeRobot you can go to the `~/lerobot` folder where we installed LeRobot and run one of the commands. + ## C. Configure the motors > [!NOTE] @@ -221,19 +222,13 @@ Redo the process for all your motors until ID 6. Do the same for the 6 motors of Follow the video for removing gears. You need to remove the gear for the motors of the leader arm. As a result, you will only use the position encoding of the motor and reduce friction to more easily operate the leader arm. -#### c. Add motor horn to all 12 motors +## D. Step-by-Step Assembly Instructions -
-Video adding motor horn +**Step 1: Clean Parts** +- Remove all support material from the 3D-printed parts. +--- - - -
- -Follow the video for adding the motor horn. For SO-100, you need to align the holes on the motor horn to the motor spline to be approximately 1:30, 4:30, 7:30 and 10:30. -Try to avoid rotating the motor while doing so to keep position 2048 set during configuration. It is especially tricky for the leader motors as it is more sensible without the gears, but it's ok if it's a bit rotated. - -## D. Assemble the arms +### Additional Guidance
Video assembling arms @@ -242,7 +237,211 @@ Try to avoid rotating the motor while doing so to keep position 2048 set during
-Follow the video for assembling the arms. It is important to insert the cables into the motor that is being assembled before you assemble the motor into the arm! Inserting the cables beforehand is much easier than doing this afterward. The first arm should take a bit more than 1 hour to assemble, but once you get used to it, you can do it under 1 hour for the second arm. +**Note:** +This video provides visual guidance for assembling the arms, but it doesn't specify when or how to do the wiring. Inserting the cables beforehand is much easier than doing it afterward. The first arm may take a bit more than 1 hour to assemble, but once you get used to it, you can assemble the second arm in under 1 hour. + +--- + +### First Motor + +**Step 2: Insert Wires** +- Insert two wires into the first motor. + + + +**Step 3: Install in Base** +- Place the first motor into the base. + + + +**Step 4: Secure Motor** +- Fasten the motor with 4 screws. Two from the bottom and two from top. + +**Step 5: Attach Motor Holder** +- Slide over the first motor holder and fasten it using two screws (one on each side). + + + +**Step 6: Attach Motor Horns** +- Install both motor horns, securing the top horn with a screw. Try not to move the motor position when attaching the motor horn, especially for the leader arms, where we removed the gears. + + +
+ Video adding motor horn + +
+ +**Step 7: Attach Shoulder Part** +- Route one wire to the back of the robot and the other to the left or in photo towards you (see photo). +- Attach the shoulder part. + + + +**Step 8: Secure Shoulder** +- Tighten the shoulder part with 4 screws on top and 4 on the bottom +*(access bottom holes by turning the shoulder).* + +--- + +### Second Motor Assembly + +**Step 9: Install Motor 2** +- Slide the second motor in from the top and link the wire from motor 1 to motor 2. + + + +**Step 10: Attach Shoulder Holder** +- Add the shoulder motor holder. +- Ensure the wire from motor 1 to motor 2 goes behind the holder while the other wire is routed upward (see photo). +- This part can be tight to assemble, you can use a workbench like the image or a similar setup to push the part around the motor. + +
+ + + +
+ +**Step 11: Secure Motor 2** +- Fasten the second motor with 4 screws. + +**Step 12: Attach Motor Horn** +- Attach both motor horns to motor 2, again use the horn screw. + +**Step 13: Attach Base** +- Install the base attachment using 2 screws. + + + +**Step 14: Attach Upper Arm** +- Attach the upper arm with 4 screws on each side. + + + +--- + +### Third Motor Assembly + +**Step 15: Install Motor 3** +- Route the motor cable from motor 2 through the cable holder to motor 3, then secure motor 3 with 4 screws. + +**Step 16: Attach Motor Horn** +- Attach both motor horns to motor 3 and secure one again with a horn screw. + + + +**Step 17: Attach Forearm** +- Connect the forearm to motor 3 using 4 screws on each side. + + + +--- + +### Fourth Motor Assembly + +**Step 18: Install Motor 4** +- Slide in motor 4, attach the cable from motor 3, and secure the cable in its holder with a screw. + +
+ + +
+ +**Step 19: Attach Motor Holder 4** +- Install the fourth motor holder (a tight fit). Ensure one wire is routed upward and the wire from motor 3 is routed downward (see photo). + + + +**Step 20: Secure Motor 4 & Attach Horn** +- Fasten motor 4 with 4 screws and attach its motor horns, use for one a horn screw. + + + +--- + +### Wrist Assembly + +**Step 21: Install Motor 5** +- Insert motor 5 into the wrist holder and secure it with 2 front screws. + + + +**Step 22: Attach Wrist** +- Connect the wire from motor 4 to motor 5. And already insert the other wire for the gripper. +- Secure the wrist to motor 4 using 4 screws on both sides. + + + +**Step 23: Attach Wrist Horn** +- Install only one motor horn on the wrist motor and secure it with a horn screw. + + + +--- + +### Follower Configuration + +**Step 24: Attach Gripper** +- Attach the gripper to motor 5. + + + +**Step 25: Install Gripper Motor** +- Insert the gripper motor, connect the motor wire from motor 5 to motor 6, and secure it with 3 screws on each side. + + + +**Step 26: Attach Gripper Horn & Claw** +- Attach the motor horns and again use a horn screw. +- Install the gripper claw and secure it with 4 screws on both sides. + + + +**Step 27: Mount Controller** +- Attach the motor controller on the back. + +
+ + +
+ +*Assembly complete – proceed to Leader arm assembly.* + +--- + +### Leader Configuration + +For the leader configuration, perform **Steps 1–23**. Make sure that you removed the motor gears from the motors. + +**Step 24: Attach Leader Holder** +- Mount the leader holder onto the wrist and secure it with a screw. + + + +**Step 25: Attach Handle** +- Attach the handle to motor 5 using 4 screws. + + + +**Step 26: Install Gripper Motor** +- Insert the gripper motor, secure it with 3 screws on each side, attach a motor horn using a horn screw, and connect the motor wire. + + + +**Step 27: Attach Trigger** +- Attach the follower trigger with 4 screws. + + + +**Step 28: Mount Controller** +- Attach the motor controller on the back. + +
+ + +
+ +*Assembly complete – proceed to calibration.* + ## E. Calibrate diff --git a/media/tutorial/img1.jpg b/media/tutorial/img1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c16fbf5e9204d8a00d44434b86a289fd25344d01 GIT binary patch literal 67855 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 MGvIq5rvE1YAI4fsod5s; literal 0 HcmV?d00001 diff --git a/media/tutorial/img10.jpg b/media/tutorial/img10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..925ed918200790bb590009f9eee752e77b7193cb GIT binary patch literal 129990 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�N#9(Q*_Q&z;b!nao0& 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 DMM>^s literal 0 HcmV?d00001 diff --git a/media/tutorial/img12.jpg b/media/tutorial/img12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd500afba01474a84ce6229ba2e2e21583ef8c64 GIT binary patch literal 81939 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

=T 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

- + + -
- {% for episode in episodes %} -

- - {{ episode }} - -

- {% endfor %} +
+ +
+ +
+
@@ -452,6 +468,68 @@ } }; } + + document.addEventListener('alpine:init', () => { + // Episode pagination component + Alpine.data('episodePagination', () => ({ + episodes: {{ episodes }}, + pageSize: 100, + page: 1, + + init() { + // Find which page contains the current episode_id + const currentEpisodeId = {{ episode_id }}; + const episodeIndex = this.episodes.indexOf(currentEpisodeId); + if (episodeIndex !== -1) { + this.page = Math.floor(episodeIndex / this.pageSize) + 1; + } + }, + + get totalPages() { + return Math.ceil(this.episodes.length / this.pageSize); + }, + + get paginatedEpisodes() { + const start = (this.page - 1) * this.pageSize; + const end = start + this.pageSize; + return this.episodes.slice(start, end); + }, + + nextPage() { + if (this.page < this.totalPages) { + this.page++; + } + }, + + prevPage() { + if (this.page > 1) { + this.page--; + } + } + })); + }); + + + From 68b369e321b2124050f04212b99c236845682d81 Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:13:36 +0100 Subject: [PATCH 12/70] Fix pr_style_bot (#781) --- .github/workflows/pr_style_bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_style_bot.yml b/.github/workflows/pr_style_bot.yml index a34042c4..e0a5c774 100644 --- a/.github/workflows/pr_style_bot.yml +++ b/.github/workflows/pr_style_bot.yml @@ -41,7 +41,7 @@ jobs: HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} HEADREF: ${{ steps.pr_info.outputs.headRef }} with: - persist-credentials: false + persist-credentials: true # Instead of checking out the base repo, use the contributor's repo name repository: ${{ env.HEADREPOFULLNAME }} ref: ${{ env.HEADREF }} From bba8c4c0d436a85193e9f0e402c13c71b7ed2dc0 Mon Sep 17 00:00:00 2001 From: Simon Alibert <75076266+aliberts@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:09:12 +0100 Subject: [PATCH 13/70] Fix pr_style bot (#782) --- .github/workflows/pr_style_bot.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr_style_bot.yml b/.github/workflows/pr_style_bot.yml index e0a5c774..f62f10c8 100644 --- a/.github/workflows/pr_style_bot.yml +++ b/.github/workflows/pr_style_bot.yml @@ -55,9 +55,9 @@ jobs: HEADREF: ${{ steps.pr_info.outputs.headRef }} PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} run: | - echo "PR number: $PRNUMBER" - echo "Head Ref: $HEADREF" - echo "Head Repo Full Name: $HEADREPOFULLNAME" + echo "PR number: ${PRNUMBER}" + echo "Head Ref: ${HEADREF}" + echo "Head Repo Full Name: ${HEADREPOFULLNAME}" - name: Set up Python uses: actions/setup-python@v4 @@ -87,20 +87,20 @@ jobs: PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - echo "HEADREPOFULLNAME: $HEADREPOFULLNAME, HEADREF: $HEADREF" + echo "HEADREPOFULLNAME: ${HEADREPOFULLNAME}, HEADREF: ${HEADREF}" # Configure git with the Actions bot user git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" # Make sure your 'origin' remote is set to the contributor's fork - git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/$HEADREPOFULLNAME.git" + git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${HEADREPOFULLNAME}.git" # If there are changes after running style/quality, commit them if [ -n "$(git status --porcelain)" ]; then git add . git commit -m "Apply style fixes" # Push to the original contributor's forked branch - git push origin HEAD:$HEADREF + git push origin HEAD:${HEADREF} echo "changes_pushed=true" >> $GITHUB_OUTPUT else echo "No changes to commit." From 800c4a847f1b4055624d19995e5917193e157123 Mon Sep 17 00:00:00 2001 From: Mishig Date: Thu, 27 Feb 2025 14:47:18 +0100 Subject: [PATCH 14/70] [Vizualisation] independent column names (#783) --- lerobot/scripts/visualize_dataset_html.py | 5 +++-- lerobot/templates/visualize_dataset_template.html | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lerobot/scripts/visualize_dataset_html.py b/lerobot/scripts/visualize_dataset_html.py index ac91f0c8..a0da0869 100644 --- a/lerobot/scripts/visualize_dataset_html.py +++ b/lerobot/scripts/visualize_dataset_html.py @@ -245,16 +245,17 @@ def get_episode_data(dataset: LeRobotDataset | IterableNamespace, episode_index) if isinstance(dataset, LeRobotDataset) else dataset.features[column_name].shape[0] ) - header += [f"{column_name}_{i}" for i in range(dim_state)] if "names" in dataset.features[column_name] and dataset.features[column_name]["names"]: column_names = dataset.features[column_name]["names"] while not isinstance(column_names, list): column_names = list(column_names.values())[0] else: - column_names = [f"motor_{i}" for i in range(dim_state)] + column_names = [f"{column_name}_{i}" for i in range(dim_state)] columns.append({"key": column_name, "value": column_names}) + header += column_names + selected_columns.insert(0, "timestamp") if isinstance(dataset, LeRobotDataset): diff --git a/lerobot/templates/visualize_dataset_template.html b/lerobot/templates/visualize_dataset_template.html index e5a2f82c..d81ce630 100644 --- a/lerobot/templates/visualize_dataset_template.html +++ b/lerobot/templates/visualize_dataset_template.html @@ -246,14 +246,16 @@
-