From 73e5080a37bbc35a3ebc6ca492a7242fe23002d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:02:01 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20bluerobo?= =?UTF-8?q?tics/BlueOS-Extensions-Repository@32590a732f65f1621be4c24e3ef44?= =?UTF-8?q?b14425c30a7=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 98 +++++++-------- manifest.json.gz | Bin 4137191 -> 4137067 bytes manifest.log | 304 +++++++++++++++++++++++------------------------ 3 files changed, 201 insertions(+), 201 deletions(-) diff --git a/manifest.json b/manifest.json index fea2c0f..9c2e047 100644 --- a/manifest.json +++ b/manifest.json @@ -158,7 +158,7 @@ } }, "repo_info": { - "downloads": 2814, + "downloads": 2819, "last_updated": "2024-02-02T17:20:22.289289Z", "date_registered": "2023-10-04T23:07:17.135228Z" } @@ -389,7 +389,7 @@ } }, "repo_info": { - "downloads": 495, + "downloads": 501, "last_updated": "2024-08-14T23:11:15.514761Z", "date_registered": "2024-08-07T21:20:39.693471Z" } @@ -1768,7 +1768,7 @@ } }, "repo_info": { - "downloads": 29836, + "downloads": 29864, "last_updated": "2024-09-27T22:24:21.202458Z", "date_registered": "2023-02-09T18:16:56.606258Z" } @@ -2126,7 +2126,7 @@ } }, "repo_info": { - "downloads": 14343, + "downloads": 14351, "last_updated": "2023-05-17T18:58:43.418901Z", "date_registered": "2023-01-17T21:41:45.289578Z" } @@ -2245,7 +2245,7 @@ } }, "repo_info": { - "downloads": 4357, + "downloads": 4360, "last_updated": "2023-03-15T20:41:07.344116Z", "date_registered": "2023-03-02T18:19:41.09439Z" } @@ -2491,7 +2491,7 @@ } }, "repo_info": { - "downloads": 3644, + "downloads": 3650, "last_updated": "2024-08-09T13:31:34.160689Z", "date_registered": "2023-04-18T13:14:56.444696Z" } @@ -2564,7 +2564,7 @@ } }, "repo_info": { - "downloads": 1560, + "downloads": 1561, "last_updated": "2023-09-01T21:07:26.318216Z", "date_registered": "2023-09-01T20:11:40.559943Z" } @@ -2636,7 +2636,7 @@ "extra_links": {}, "tag": "v1.2.2", "docs": null, - "readme": "
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
\n
An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
\n\n\n\nSee our documentation \ud83d\udcd6
\nCockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
\nTo start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
\ngit clone --recurse-submodules git@github.com:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
\nbun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
\nIf you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
\nIf that's not your case and you want to install the necessary backends, follow the instructions below:
\nmavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with --server 0.0.0.0:6040
.Follow the instructions provided here to connect Cockpit to your vehicle.
\nIf you're running a BlueOS instance, just put the IP address of it in \"Global vehicle address\" and click the \"apply\" button.
\nIf you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for \"Mavlink2Rest connection\" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for \"WebRTC connection\" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.
QbIE@g z058nI_hEG}7AFew<$yPs*|9GOcVskgbv~#Rh;+ESe~mZTMuZ9t;hYteX9@@XbpJEg zo7sQ=)C405&BwLu%dzPDFi^!URF!RHxNNd^stkiHsCL}vSh-+J7|-VqusdP9$dzxZ ze>mNHaJSj^E=-zKiZ0Hl%i3tl9;n;I-dey;9sGtx3?B?f8=Wd-w2WA!7bS#+nVX~N z)HD$P0Gd@{LA{Kc{z-XItw(8)aN0cWNtgH=&P zImA+vl184cbJ#eHgb)k`IR5m4HJP$5MP`o)mHxhjChf|pJzKJ@Zao@$p9VPr^&F`h z!cbQ2i6|}qtvJ(ddEqeUbZC_v&a4{6%pcd+-Ne4U2bUJFrWB2mnl)vfMNe1J{S2;f zRC>ZM1toa2-4X_WlzU}P%EHf(CJ!?3IZXmp6MFVHGA%kdi*mU-UdML#jI6B=ud6E%g8O-X61MBkHNUW-hy4qfqoOVxq7_l)m#|qKuJi?gn@I zqNtsSZZfnizq@gK%#tOJ`3gG-xhub1gMXtvj}~}2h(+P5Hq+fP*Ip`~rcWtbMJ(rt zD@~po{q9sP`PN&p(b^7cTLo3cqhuHZ*|gSv@9ZYBfTItDyVoGMFU@(-chezB_htTgcs5-*}|T z32*w$J1t1vU0)B`>gl%$2uc7qQ9-lvQr7pa@&g~x-;blQr4<)dNrn0$bDJkqz-dz# zDsS$zAzK3Mc_&X6Dyn)F{cxW6k*ZmB`hy}4 8P`X-V}U z+CO@T$*O8rqn`sl)T-kR{_Tj@JKMxreKa-pP!W^B?o$WT5TpCtkzD;_X^|}gjo&iU zk#3*93PV*5&m=iGF9+N738Xw#v`spAT}~mRwoINygnf7w1d8SC_7Mh7Rtq#u ?t5q|i!V-*`#l#ZI&b}PM$!_G*}vK4uERWt(S#uiNKD${GiuT=RzzTv1(fAiRd zLZ}3RHRp*Ttf%*YBT#MkT<7B4M487gjo{p)@`0uU?wbicLv4cGET4HSuf$?La})2= zp||efzOwyp!;fzRb{+iww8@;AX 5RIQDj|^TtJxi{Wb`Cbf5Q$zLJ}gkA z1aytMc6uxP*yRO?^7|?-ylsVMu8eG}R-FDdW?sLv;w_~fPBf|7NXbS9s_Ry;J`vRP ztNdssF@9Fgh)@l(Rn_rsFRy@VvPCR~1U`YMnVPmZa-RO1FRWh=Nnm`I23=LZ9>Kpg zqI^R)-oy2VMaT6wK$wdHr(F{X{CHMRPD$^zIfJyaxod_bKGQ#TF7xetf4A(cS`3_j ztzGXQ{_8Vwrv}z($1$(z24S RFu>RPEQ#l4x5EKC%D3;KTaXJEE?R@z2BCB;7arANroFBhcg zl&iitr(4qs|CP+fYxi2jQ>3a3ebDwi;a785EW2RN+F(}{h_uZf<&1T}-(YXG;g7X> zA%{?5v2iMME;zYGG#9LFc3&h_0&E$Ik3Z}&Aq-|TS^mh2lDOjiRm rktwshKT} z){G^cTJfYSDwLobl$u*phjm!`DuWgBp^szho;RGke13B)z| ^ zi2htYmD6af6DQSUQ7ppkEmm@9TXk&MGVK~k?i|^&AO>Pgt;^ zwNNXQX`wS4bFXx7uVqb;fY61*#(7pu3`6?Cp_dvyrpXMJM#?PQc`JK=_EHvu2vHtI z%^!{Xt@!yhrX{D)TFAyfbgbA>l72p;{H=f1tUQ4W;UMRA4MY6FBk?NI++aw%RD(;c z7V|u`@qcn}zu;xMP(PM2T2M=F{Qz585k5-ltsPyCRA{0E46suQ;4Huf^X;_Yxs^f` z Q6fh4r?b63B{k}YFivQ?KZ zB`UO9t;TS|-PSEsAPd@?_Z0OC0xBspZTVeBA>`Fh%hKF*Ml4y5*kr%^7qg1) B!tRH!IQqN7Wv{@JN2?N@^92eG-x3yFIaH<1?~o$!~a3u zeqpuj&b-W}P5PQ8Z_m6YZdl4>PE4R}Na57Eq~DeF%zk!&P4ja6(x-Ql4e+@diVk;- zXqJ>GOR%d{JXVfkQSfe8dNgOZ!~edmTMNgg#aTt&RXmV|H9Yh48dE!oqV*h_&g9Py zZmJlWWq6WZXvy8|g!NFVuNZFN2y;|*vZ~ *0f zl$r2FIQY6r&anz=&_#x>syA{#;&{L7jMW8>?vx$E*!RM51J^uWQHCy;tKbr1t3ai& zeGN(54$3owl?%46{3#|)FWL#)6MU1XpYn>3f|xwAyp)w$6kK Xw>fo&T{gAco12P-Q$f#1iG;>d%8Ue&&xy zswXh!>URwEXAN8$Q+oJ&d5IApHyCay6W&s=n&zfZa0mL(r%8jI
bVGLaT1O;jdE_yFbv4GdBUSQYbg&}m+hD) zj8j45QF4C9LUG0Qp~nh#PDWJAvfuvYk+rF&QhhxRNnpV>;h3^T^Ik$jA1}E!NRtVL zg2zU*uEuBjPhN_WhD|K-@@TD~dhgXRfdhMC+cnfMrr34iaJZVIbONluqcupPP W)7XzK4DnU zwCC@5wZdxq|6cD>@hHBOT%#7(@ztMlW$J)^;cqS+fru~G%@60QN|tq9u}bvT0OODZ z1oWaDa%rDcrMpcHxE@@l@y?d4G;@;s{pE?x!+yABH3O yE`=Hd9_N3{^4`~Gh}{`c?X zBO8;n)Z1xhmbQ9KP0>4x_gkZ#!&p49Y+@hr69j4;KIGyM HBrDi?H@$v@LUrmO^#4AzKVFW?Au< z8_=t=!aWdihQGnbK`(F2C TSmhU0iQ_JIOu z{nw!e|3m5)*t P zN#9r&fmo3h3#EIkU;nEXw_Xe`rfAdO1F`={&M3uIlO;b^zpkse(n)8T9XdEKW#}!W z8<*02N6cU``Dhn9$Kl^@%S1R1>be^0rd05r-5GHgx Wew3PcdBI4%8P>Ox1{h7(toptFIpUQJL;+{8i`hr z{*`6df>cipuKoWNl0MG CL#xrcTwHS!q#-rCR$TIg$E1Nq%zfbPbbHm=j>L0ooV2U63d z*U mc7i0jMgLx|*~??#Xd rCe4J{mJp?#)vh2E?hn{yld2L)P9M71Yx~#F??N@+XcJb1PesBbiIlJy)EVp} zl9JL*l(WLqxddbJ^jJ=dr8WHcsY9@f-;UI$;?pRtsJK^T=*{TBV4X4B+LG$oY)uaK zzSBym4V(XDZQJ-WxBJ)iswSmU0RJfLOHBk2vOnGV+gAwE0{bLk>Jthu9j`+j0y(|B zjw@lVmsiohogZCzKNg$4|MP#>854IrgV6#B`fE6D2RvRYTwa`3A;L)`--g_$i!(_Z zq6V}Ys=c?7U|yBmW!Ke?kr-_c|GnK>_5&Ni@r!%{UqDdEr<87P{W^RfbM6BH+gkw1 z{{8c8_Pdo7=y)mQ^W~1`4F&Y3gt7yI;|%z#6ma9Izx|VP?7fb6zlxD0K+7E! l^$jvq-# zt`~=%11P)Pg(Sb)^R)}U#UtFP$~Kljj{U{5=$iIP5q>s<`nU>_a-}7y$RYC*6|&;N z_)Y(vEa@A<-`h<+7=4kJ>`t?rJ&V6#q#`c0JsZZq(-sPb-FbPUiI_Qx*;0Wf5#wT+ zC^mH|D;EZnaZOu~L)P#L4=#fXkw4Uu^c2>tY?h1b_EwQRi8%uxq2H5AF{QwAb2!Ad zL|*_N(TfwKqwh-_(?yj_x#0x?V{bbN*EI{Mhtpr7@BM@i5i|xffBQWEVhdq?X=J)) z?N@n^??ZNUc6OZ@__pB|-4K9tbgV$MvgZJJdEd3MfTerbS?_c+;Pg2RB=sR=@oabd zJ)XCvw<(z| y_GrZ$;XY^ot^-!QukjrJ>G0@BjI?b zBe}}kIJ*!o#40Q+a^=NoMm?SFuW#oY8r@ZfU!MzoAgU}`o$~&^O@A6hW 0txcer%nJxY$c98UV2~UdJ76Z7oJbSLq#hx;;6VozxTVqEWw9q=Roh<;Kf32`H#x z3rNoSSkw7w=N(ud^P7YYKgH*8jm&s{v(t^#V>Kh<8IP*fhf$XORYBbx%)_H2xePab zAN6Ju#A9<#sFA8PnJsfC@7?r>9WFF6VeM$3i_+_PqS9sZ11MGdrXQs&Q 2X<7RlpS0R8Z?sC)(7)ytuE@qbTBoS_ zjB)x|o|=~51OR@G+%>vwpoKLC{684m<%4PdPTq?20SI}^^=@yvZTW1j{|V$Zaf SnvN2d7WuCc5#dhm5y?wJEv4&u%n%QuA3PvW$v zT3aq{7F;JhByCBsz%Doct{w#g|EShT)luSRF%3*`H~AJBE6$YKRd!_jvx#DX?@BQ& zD_q7(sGH%D9p84A hGXa3SZHh-fmHfD$?L0xSE`BzyG zY(PfH>?gow$-}nl)&yuQtr(?te!n(v>LB&}2IbVd=e^Oy_TA|lAcGf+R4Q4TC_!VP zyZeVl+*E ~BX$maFW3`P*Qm=`yK#O<|NWUO6+{A9TeE%L;cz7u$wk( ?BV_-b3SgZ;YB{`JdK@d*)re`}HrG0P>A^7(#F=9MT-!VMS|U z<6>wWZVK<^e1wGC_~Cmf!cXLP^ijMd(Jxe{fm R82t5kgM(?P+iDLU`LaoaRHBj7N$+`)e~)Q z7~?79sZb4kwUG5869ySf-CNBdMopH^jq7Gu$;MSa@XG54wGI28qrdFU;u(UdlSdj1 z&IEl2D+YRYx!CF5!KpOs8nC=yf9Ai m2#QoeP#T%lp zl|2;i8wx}0K{S22Xtiz|(n2&UjCsZXXQOv$!0lze1-_3j2H8(KT;S89GBI>5EEB(G zK}4(^unqQ=GVl&K?vzlh6e$2t@iE$2=i$c DE)@-M);G~N_w|l2iE`;6MQvi?n%q^GW zO+g!MsNBI`D>?R=Z{z(j Q4{Mp%? z`u4rg1cAj2Hhx{5-_@=u?IpOr^pg9a(ao!|7qM*2*n}NA6s(jK**Ni|lSl?NLu6$f ze#gO$K`4M_qdOtTu%Xg_y;=Shvty)5qlriMaQTtd{h)Bgg!D13Eqw^`=k&+-K#fgn z05b$q;YtDS@%v_CE=R#NG3=1o^}hykA~rG+PqT*E;Ft;F2Mz3~tuILIsZk`K8-nJ) z0#1ZNRWV|Q(BlWjt5G6+Dkm$ot{D^@89UdMVBJkP5+X`4!VgghH(G7aC;@%Pc$+%C z%pE@h(_jQ~so1CsI%eJ^rl#F<4=ge+fyFV5dU*O77^>I5g$>~W;u0kR^Wac5M1tP; zg<>2jN2y;eNyq|%dBWae_P&CVA9Q9Co#!V%P{O=#sajrX3c_RdJtev3()kLIh-e_Y za0xxO+|#-poy&AdV{=^+lyB=KZ`ul+U-}_V)sY8F%T9(zwSAR6_8*Q5TE{U1fsod1 zZIk58Tj)dwH5O^Xm+Fo14aVpW5_HBViGuf@Iqi+^qmTKYoENb%e^v_&q$H8@Zx|TP z^XAD}&lfo3Pue-FU0znN+mK8MhCTh!N0w&_ZW#F?{2{}v%U>|PP9oaG#%h8L@mKM2 zVN$WP8nydF0^TIWa7+Sy4jy6m0b`ut(r$m9ly&IDXBU@&-iudakB~x|5Wybgd%a+P ziU=uBb@3AtBh0r8?= f)Ip9aqoyV&>$0X0wI zax;_0CIbdz^kt$qUv*k#W6601X2QH 6FfQGrr!S?G z-PtY;5mHcu)y4y>k&_{QO#-L%i1vxm*a4r1k@?U~Gn+L}l$Qj0fFJ@R*g !{t9SrK$b}fJzf@vSgh)dl!Lk1`GSx3TewtU*e+s7&H=8wlDuZ0-J4HA&P78eS zPcVVzozyb~BmB2#KTR$coglsYV8C9U;;c|k9VM&+$3DHv?y@3C%utAwjBES36N8 z#boa;ngb!(+&g%WKv#9enfunaYP^;e|9=zS>V(6cM;NGW^r8E;><=G{L&KJWf4+Z? zm%KL)0Np>suD{7oG2rH0*cm?WxXi6^`_sPEfgwIO%i^`r6A0U*5H78Lb%Q~$DzXXK zgc$cAYroGp@7xo*JFDS2JxIb8OC_&9Mj(-D9i%Jyz{Enj0I=`Lc5j_9SAyELIymnw zgZXoN&!|4lNk6+j!@afU zUR52ai@t1kxAEeG>4bj3_yCBM&~H2(Fcb8nLhnB8ll$sA?CT={8QgDC?)?AeGs5pV z_urFqMe3r5j6?e3)6j1RPBn^--6Y$*uoPW9S9y1uNQ}bPIO`xnR&D>Pg))GYGyARC z{ ~%9WsK;<;|#lq7*_*gR~@yVm4dLBBMy(KS#M7 zH}{9Z&y;@(9#%BX`RYP5$!rfq3$(7bmA*Xi${ovDL!ZCXKMHmx`IjE0d0fgI>EG^) z%||jjuO{dBr*cBo#$?@qoO|W(F9ST(g=rPYcor;5iHR|5?;qcL_?@ (g- z?>g^26#SdPRuY-wlbwds3t-9cD?v=K-sU0YTk~Faj|C@t +k`jqg{OLS_VQe9LQ%H=5b>`ePk^ocnbJOaU7&9A4 z4QP7NAA7vOcdFD1^%$PmZa5QUw4fS`41DUAUDm-wm4|HH NeVJgK@K_9=PPriFq$&m3C5j;}0})TfF4{PZ>q42<}8s{3zZOO~szdbiDLuBv*b zds5AtbZZKWy}TXxDr%NJ$ItiHzqW0#A2~g%T4q#}cF#waecV7PHGOiPJ7{ysv7Y7B zXOb(Ii9Yvl_BEgepH#{dn^yXZ+=qb2MhRV@ealHRiK}zRbc=}A 8tuCz<8XD zy;)V~tQgn-qn|Uvo}@;d;Nte#n$O0-{KjJg&51BEq$b(E1?Os6Q&~Zua&6?EenWau zkwXrDE$-9T;nB3uMO{NLR_k%HbST8!zfNybD``b){QB6{H8CdN%_XV(py!-QD1IAo zu)wjjxcJv!eKWcdE2)Y`;3QbfrR!v9u~gmX>+<5^X?AioairU;(&x88wD@{Fr1BGJ znyWTo$UQ&zX}Pmys(8o7IWVkH?-XBI{!eCT>(sf>C%WIh*xIVeeHy4V)EcMcg3%%= z#7kZ9S5M#A$WBd-ubLZ&lhZVAU0wl_9Osscll`im7?qxca-3GGCQnZG%@(Lwcm-sa zwRSR6t&iZf-bwIDn4B)!oQm_WU3Ny&c)VM(*$o|fx3<>nuKENglK9W|#RvfH>6O~c z@tI?d3wOSv&zk6?(GA gf91 zLVsYoMPS*$_GWTAmV->XZ+R+NcHt7%^DjpL)^(l8nFt@FVj6)=aoVN2=X%Y=+Xz%u z?OOEc+JH_{?{#&X&Ks5QqleTd(UL}^+p@s{eW1#2N93_xb_h$_+60;?z;#|lf8|Hd zt57SbuA}L&nDFwqU34<`%Mjq_(W*;oc}v>ZFaYTpUM{9{adQ1tZR?p})C%~qJnc~w zE~fGC#*Fc?>+5Z#@-Q8zMcz-{YUvG&50hlwx}|mA*xc#j6#a3A6Gdoo<%u)-Nw(q3 zU9;vx$PU!Nz|+`*U|J_?#}>yNsL9SbT_7PG4GXr6Vf_Q*?JP1^M+2a~(BJ-|CQMnH z=@Hnqtx;;{;}<>}`fJZoJ$2Pts?E1U6;>38pJ?>p#_}e_5k!gwBV!IJ*vB3_()In1 zH;eIkbC<|B+gR9#{F4ntzMkIQoJeZE3GNqzWH|}zj*qRe%h@NPhldt2NfYF4WRYaG z+GaZ6Y_wqa@mHO}Clf%MIam4FR;w~7u}Y-Xwv9>Dq~_}ErZsW 5t`2GSx?$cAJJ7*TIuMy+Rw!iIQSoEw!fxV6Y6xZ^4XJR_ zZ33RbTex?cc}^-J=5uaYoqiBueBXufHmh1e?kFU&e1X;5p#z`bU*CxCN40o)K5N>s zUvAPTedn)BI6$I{^6`)ozaJ{OQ>lEInfF83J76+<^TwWLm&pJo>qWn-nHL`jL-l)r zW!Z9(H6;V6hx?3G;4PNptym %$~uVDxVq3ka9Uo<73N9JwK5 zE^OY%#ZO*u=Kf72Y^EI!j7A+c4LKj;`~-B9k6-54feI48o`-eH9njXXRm^ah#r?cO zNoJ5e;#(M@o?!buA58iZtNW-Xg6xk-)&8P12`fG|rcA}~Yanxy`WRLc!UczQ`#6XQ zhKrR;R6Nlb {kAT`I05idLpH z3-hfK*dQ|dZD5At`WZ0ue8MxUtXq9h2I=JXA?b(mR=gxk!QxAqJ!^zwOjc5BPq~5z z8r@T?2M+RSVI6Dev*yNO>V{4|s2FSc+P=iYc!?Oy8u4RG@St)GwtDriU+j?023|9V z!i_v?0z)R!c?`~QS>di2P_hdP?WO6s&umD5&M`{F)vfp3ed>QM`GGI7`H5XJW`Fvl zVj$UH{qiPrxX7P-+|BJNvN7-aZZ~H$5D<9>U9ww>BICXdw=qnEAC|DPq_b0gVMt(j zei6BXrivH-xK#LY!*<25fF_D(l?2DUj8qo?e!i}5-cGLeQR{1wVk3!0GaK>8ric~+ zq&w4GKB@0q+ZLSyUxQsk-$hnc;?=PUSyH93TWVw@Gy@l-aQt1~9?0a@RkkDiZYl2h zjJ9!szN`;FlriL9Hqea~l~I>JdMSGRFX+2wQ>L;M+c#!W8A&LC_Q|+?A%$_FeLC3s z8?Yp-S4ZL<0oo6vSy+3imo3IR!<_}dpEw4N2y(y+pA!))!j6UdtJ!90{%U-qGTb%2 z4Kz~`UcKs?^e}4U@d+w_LdBz{YHRzWzKa_MA+6!U5Pq4w>GRKX6*P>9DBukeTT6-Q z*?TTQ&&quYGIt}SDccR1;zW$61EnC-#oF(M@`cv&2@mrL#ohIi znd;D2jYAh1F_LF^f0$)_5d$cO{@KQfwd1yi`KJ=8fRLFn&?X`@o*ibCrsXyEyR#_N z|A;ldG<7dQ>Ro%f|B1VDKU@Ubso$S|N~qz^nSF?TaD~;g;zKp+d&`Y@l=C3u%P`Mc zl3COu!)UsAYwG9NNdgH6CE>VK)-P|fwf77$yaoftd5GSZKvpd16aYVaP%UOh2+gk> z;h@0i*Ko3QDu}1 CpAkyI7Q_XlI yf!uIBr-Cl zwD8^bURme|32|mC@~qqBHQN`PQD45%eQ~NzWX~1)8MBxK8e6bVfa*IQ2mK|*J4x=$ z*P&3k8zs^lz0+~ S#N36;8`G;CDw}CS5GDNkL71#nnv$351XYnrejG~%3R05ce L5ONJKz7UjIN-N9qg#(8Ag_fgQc_Rj7Wy$0-g`aUJ;jOcBPchgw-PE97 zn@NhoN!a^pcuhMxR@qpsLFXF&)gsN}n631VLCjJvHQ)t5f&3+Th1Li)E5!4C{(S&- zXcsGr887@KREmVtHLu|^8f|Fa{Z>82tXN=Z_^JBP_>*O1@=vV0hox;+5D??bI|0MY znvECznLyV1L)VIN3?t7xEV^r~?OAe4&Uh#X5GW4RZc|I`OZ69+5CRnk){ALeaNH zxv3s`!@luFH%*;Bj14j4PPxr)N?PK@8qhN{c{%c$ArKRF-ljR=-dD)9v3Be4G(F~C zhyKNwqv;s+z+^5p<7JKiFrX#-z>O2yYc4IjSHII`4vAsv$gW7F|8kdlJs={8GlV_V zqtoTYNSI(A^VuJtE7}oc !pJ4J6pc#4w;ytF$u?JMmP2 z7rsM{cd3kIK{HyUv5%v0S K!^DsoM=@^dQ&a2esZ zSfASl6W~Y*Up6augejhNM^`O%pW?_-Ml@!rbBC@~5ANf(w+5Gi0zs)tq-gWqvgqd| z$P>if>?^lEJ$5vNQW|XWi!5_7ITZ0~4SgmtIH6HzXv_xp!9z2KHIT;aPb19}|4J$I z_%FQ6m%YWsy%}wzG?t1{p=Gr^-akBbOHDcsVL+t= =>3#wR7%As15v6EL$B$16YX!+U+qK2iTw`Mf@QWZ5E-7J+UWKe1HgkaXgoGY=f z3Ty21ryLAV(u|C-VI{; 9&y({1B%2-%}KvsG;Z zOCUI?*~oCja#f{;3Wk|38SP6OD7QPCq;o}P6Y^6RM8B8ngOBP*u0mxpq`h -hH?)l6t$6HW~EwrWIQTB_($%2}^tPk_)WT<|a-%+ofoCkPNlZ%CmRX21b!h`n84k+T7ghi;28-O{!X*#FJ`f)IB8_ zmP>Z*D2+msb>nG}&LY!*eT>~Oig8>xhu3*z;7DRJ5-<}xlarFDv?vRD9?&lSGKg3n zm N|Zj2hgQzGtl9w$j5uS?kSO5s``=D%SmnI! z;>1(`diQ4zt2tab;1jYhO&+)bUU77+QC(-Dy^dQSJ@8|qjxp9wLTYiaFNJ0CF{;ny zTB~)~-f&DcC*c{AfRbR+_|W0R8#JJr< H;+PGc{CdJ{}{O?;VCBwmw;fn9aKHO6*%Mjud2x3>w{Ov-(O7oDWYruXx zPs%cOUV`D~sB+d$z~w-Z28$5(aJ~8n8r{b0katQlFs|3~w!e2FsK)HdrK?;>`bgtg zA`PoY`vQH4H6~J9IkRFr%Z$EffQo@XKn*DcXG?sCs~P`VtSND?)$_>rLD|Et#yGKt z$$^80w`~ExyZ4k*zi wEhor5?cj2`7eMgz4#LIGDd}cqswt@q()Ok0oiAU4-WWgLnc^K{H zk>wzmuVd-JLsJytO-6g?2*blS81Lls=j4QebMWb2D#=ZdrbP^}CJdbe-?D(YhS-z; zddW>3$nPsF`({)A_f-@>`h|fOF_v_@0Nc1+qUDZLYE;BBh?}?_I!p;)Dz%g~XNm59 zGWHUUe_u?EJ*QCIlZ55qC-oiQn%G9;m3slwS887vr^R)j&7)QyPfPWRuC%gVA-BQF zHOUsscCG8j;0X-Cm)Pm%uFL!JjC `yM{$c_Up?S 7*4~TwlDp=R(w^RLk4QaL7plQw0TUNzJ+h4pow9ewAq$p-S+*9yU`U UA1PCqA- Muh(1M^X&%%oU`gZsSoh60>Le$d zXGMlP<&qx8E0@^aA*@mf(8*=?5@4;j;|*V@+Gy_PNiKkN?60lbe2(E2vwC8~d$G|# z Guj$8veB>aBqi$II9-6$-PS=ZyO}+ehPE&_ar999cyOiW z?qT(!32_YpZ}$~jiWsad)<$4xbl|1D-fL~vgpo@ytD+&y(w{#bG71N~I4{;#>TJDq zWp8G{sm~q|Hya=O9*Gr%Ce{2~?mOT$`Mr2_v>-<8g%s9=urm)o`py_(BGn*Nczhz` z<^H~_Fq?60S|`a#Sd-%EQawV7@b)-*D<0XW
vT^PkA_#8}~an~>TN_Y;JnE4c3NPh0p^a9JeLj+vjC9=|XS zB5 pT^wWynehoR}( z=}WD8!8on0c^Hz=gPJA_{%s{zsf&a2;7ayUj4nam-q+vA1S@Ol9OeOXe+=M>38!5f zrpZ7{)Us$f)0y~pBS1Y+OPh55=-VgPMuW<9D)WS`ogSKmOG `EY7U6@B x86OKnSJnYg LDTnZuY@QX48^r=RmM{X;MY>9Plj10MySc8vEz$NM9K4`pCN z@9i+fKa|TfP)jH#e_S+M8liVz1dE^k6_jEd>{5mDeARxP{SaWh+coN&G5oIJX+Hl> z@a2+oWhLagPXfs*nbuFl;? RkHB^ z!$Aysr94~ut|uV0SoU>=2p z(Z|?UyX*_mzx9tm_YR%0rMFVMFTibp&0)ggjnZMg4lB6`mQpJCtayV3rsGHE7qGHU zc#y 1DVftkC_Qo-eeI?dgiMTS0x#{HdYPt=X68=hHjgO z2l}2LMnZVL`up7e<+G=fX8)3vB+_8E=)}#z Zq*A&D|hi~HKWCv$y z@89JMX0(O!_G_`&+Ia>Og3@R~yNPbUz8*e|c$1E!`Fk4N&4|tsTR?)IfOA|7yN= Ky3!!CNatNZwb+OepU+jT3QC>q#GyHErZs9y{r3` zZrHm8@u1I>k1ZjqwnL)Oj0!b6Y}0mXn4$2P8$QoSeKKta7EL(0|8($KlmI5I+4`Mc zOhw_}1~Xq5I&U{_qllD%=$@UFuxrYn^+QI(Cq*MQUS;V_@T2Pg1vfy*zv1@w#qT}5 z7W9L+Q;w1R>p$l_R}~(rRd`f8^w=J5mk(}vtan3g=>K}|XyBM9c7 S`DW``Abvk6+^R5UK#@M>aO7dTg`0Gp#|HD^|$A6|+1is0D zsYtidFATwg5*TW;ROw4!viT~U#AF1{V-c0yI1PJ8f1S5FNB8&qV-RffP+U)h?7SrI zu=TG6J*g@EiqQwy82+rsydQs`A=Da{V8r?fRh>AD!#RZfPrR3!*IzNwRQj*7p3)j^AoIV6(X`n9h2 z;YFX 198@n zDh*7rzW@SlWqY#>HxhZ*p!~ma^zU(db)_#mu>mC?-dcWF`^22GF;x>CI5L%uOmko5 zj&upZpdRgeDj)UmE04C}m29 + zE&elSLwUID!4OakJPGjoOcy6GFZ80Nntz~x!<=$oEybGy-&mq#X)0_p {nu(P14*9{|g(+@iD9}3i<{hvwz5fmDSw*%rtqnp=8BgZ9YN; zp>a$Ds4Ba=o^;~SGrwJrdO6z?v;QsQ _hxF@8pb*g!JoBAYGR2?8TnH_W3eL7i?B5GKJ52Q(9~` zA9=1R_kYoxG&tgjVG{kum5DJZ-ZH~n{oPoGG~@i{>%!vfmXFr~{Sxsw;r%rB+Bld| z6-q6E-P(sf_f=bd&Rit;qoY3mdOu?R{Ef4U$Jrui?2>Y7$j`dmY?K^h#7$>gmmPwu zadr3}XF0F-_ov2>K0NN6b-2EnI!d^Hy#1TW>wl5aVOTouo2BQ9##!XLq0F*I=FvhT zc5H}4PX9V1zx*>kCS$;sesXd)%JujW7*hAO-x$b@%sCfobNVLIss`Vn3EFo}7Ap zzc{3k8!^63(`%bdHuWnUM?uVAGk4{lEkl~?yF$7+$AjniS?Vw3R}L`Fzs@)RGZt3E z*ndq-sU-q|C-Q6UUKdc#c2?4s2~A^>!6DonZlOZ!U5gGMx7_1VCsQ5HGz)KPQy@Em z9nOg{98nKdC!?O&2U_J9AV| #K3|#^&@S$$v1PDFSgbR6m>Ffvt! `U zdMU0VHtF<)%k}GDydgw?VUQRfdh+T^CA{C?ro=u>k~!cn{s`?z>JXw~rV%o}U1<82 zW`~F{2G=NPcJuOS{&hsjk2lXac19H5VJJsZXSOrJq#=YMu@C!S*r)$pFNfK-X@59x zkqz17>TOE>jrVNHeVPOV!@?DMaRj{4roppeNLLp@tg`l1cgYN_Uc{!9g}quj)$tQ+ zsP`$qN< TL|W>XTLi1mQkD@Yk3ei*2renSVVpi|hYb z|3Bw{#^hacD<^PGj6r_IY@^Z%spUM(iJeaqQg(ToU{W+cM?cWi(&?TzP%tC2jE%C} zv_D$9)Wh3kfhu#_u2du34X`m&xH55!7?0modh_m2dql-_hALw)Q!GETfOF;J0{+xr zi}aryQ4uj2S!8U58*(<4dw;lZ{Fovn;P -`;hz0hv &?z$MAYpp|T3W48jwapd;jXY51Hm$l6DzUD~rG{c6A zz4<_?#u{Rj$ic`3w@jn}A6L6oH~lXyNBxuc0t54cG`xvdRTl8Kn16E=qp*v&q2Or2 zOE- `VkoB_;S^mK@d ;A#YzO!`##SG|I%cnck;*Q@wSf)`L*}M)+%F+<5UD0X@4bz ze!qRIu)n(~`eCYn7VsH$l4e8m$&heuKx+!w;2k~P9s)K_Mt_|tZRBYsAx{+@--~S^ z7{+BUkaqYf?ma-~s|W97f*rmzLmU$LQ?LJD@BES8(UjSve=Uajt q0%utWlll-HsMZb*|Gik%x3#8kc>5hut4{L)?l1c2RUeZ2 zl4ru6f9d?mB!5Qusq75&ydz$!?=Ul(z>A%)g^UDAfYbi_U7eT7{`hBziGR W|wkadxw-q z6D!@!sOV*WjZ&hnmTAfZVsgcPrx)}wZ5+_XSN4V2#DANtpS6xZ+a>+l7#c^r`wQ1S zhVkIuv~y^9Jq(YwmFTS<&5vz80Hs98wi<%aYotJ^e}u!i?6g`&%miWk(_so%xS`P8 zmM`B!r!bzEvYB-9{5-yS*5-VphYN!Hq=I!bGaTq&nW ZRIpnw9yA%nKEWLH`7D><2p3IXQ!6VPBI107c)v|)Se2(HP;dslzX z?Xq6`&BKuSd@20+0=?e>uPXEK>^@CKZd7?84=8L#4dTPr@@Zd&FuCSMrbBrz^TX^j zg3jxrpCl&<%vQ(MpLt`n q~6yw{&q*v%ru&9#A=GgQ8$;u9M(6iVBCZ0$Qv4DxVPC^ABTS6 z@Hwy*6r}? GZW zZbRXh25wmX@3u>fJZgJDB+cHGa_q*2Y9B@XL^$(aG|1Hai0$iBWE)?4(@GNPDkGz# z#ydtgym+j-eLKuQXW`7n^S5eXE!GKt-8=h1U^7FP `;h(ar^uO)fm;dQons2Pwrwn6q^#8VR5&As01wv{2`?;0$Kb7tNDck&~ zZ1!`v$FI3|k_5cY<*wL7p)OG@9sK;!H)va5|J;jmw?AhV^i$)T9e1uz;W`O_(?sD! z6sD)y>$@?`pW8Mx(>4Bg@kCI`Pdv%@XcKJos}8#Mqkrl+exHjtUOeg{kd9;a=dvEF zaOms(lsy!D{vXO#&7u4*tNxE=PyX++uYZ+QfBMP3 9`a$r-8+{V&P`1`goe~p&K0kLNVM_7eZTRo9mHkgy@P8_MGJlsOu5=5c?2mwiR^ANLFy zkDJ#SQa&6qJzwKw)_vGqoLLAIRpe)5A63hYhLL>+lq%gx{mGZ#+ -?AhQz-5;#J}E^|6lG1^Y!q@L-ao1A)n07Nux9bL@#SW z{x@HAKl%L-gU7a5)X98*Br^9oM%A4z`1Xo0O#XeJ4BHdzdIoUg3JFdPMd!Aq@}G4+ zkREXb;!KMz&|dp>x7^Pjb{ReTj~)IwKlGnFckIWYv8#H-HW7cdpZ6Y(@#^cha72vo zAAbVekGc|mUEw+AK!KE;nN$R1t9aCmf6rg`&zvC5U-PH&Kj*T47_TAStt&6&PP8x= zKEL9VfAaqyO#FSn4fB%sfgU+;#PT0}`#8{F9K~Ajf9|U}f8#AzkvJH$46(_J^H4;a zF*R!b9OVya|G(}$`f2y}v^z0ZO#fWGx!A<-7zO^!seiXa+J^nX{h?nO=Qn0q!2Azp z-M{vte`56K8xdH49tA44(Dchu$6t5s$i( 2HWd8om&;S1VR>l9n-wK=j zjJ7cRbt^0l;c)f*oB8|ZS7f{CjI3HWSaKF5fSPZH$c$h-*@&E;bQ-Po JKbsce=}TF0x%lx=vPQKQ0(nIN$sH;XGy(Xk|dPNXS7=o8CZArkzytY8Mebr*9s zkaG4LA+wz)GS3(yG{NwB9?sI^8VwqnUG{m;(8ajNe0x#q)NcaGwA;EJJB5gDK0mrh zo&9qfJk!lKq;n7hG?)<0M&d--aeYmtxxg#Er%T_*>HF >u;^3;Eg8Hsw34XP0Uxqt5O1TNKa$P=3qBgNx5|^VdYMZ!P!aeUP?XI^V~Lj zhW0r`CTmp{>f@SOoeMF+ZP|AgNS}2jND@(EQShZ!Ib6&Paj5YK`QZS_j;ruhGm@#_ z?aOA?CV3J5H=<(v4Dw~J)W&0Y<=dV@#F+wr#);nB3v7i`yJ5?fnw^?seWcXc>af!| zf-p`O{G#Y97D96-h5^`OXE7-JWobvxhI{F!;9LVexang^%vL{%O9SHtu0~+?1-~ z^m$y+bL^qYlX}q|UY3$=AS0TCH@+LT8)Y@qspSS+wrEnIrpMt+f-P}-FINqTDiWAy zaM)0Miyx{vxra3z`wV(F@}-%Ub@U#8gfB)nT*-2jrekjupn&H&uqAuvoAtx+3|`a6 zlv|}e-}U<9%0$}``G6V#)ZY Os)E$MzxARiCPd~>?7ky%K%Hso=S1DWcPI*<^byA6oJ-SxS2il= zSW9EtRdgkC@0EE7nbgP-f8N;>bi0ik<9&>^nk&)vTKUe79vC*av|WNHt-n_!jw594 z!t-lC1x)dn4Qql0{^u4rNS}sqE5mzLgcsG_Vvc}y20MaOqZ%|vq%D5BrSlPE(B^H5 ziRJ6#5oEWpYGkR88)9@DB@^3!;_@~d7kRz=?fvPu#dD3Q>)Q-ABdK`lisqM>^~E~u z;v%W<`PZZ&k@)u0hs_fuuFGa(9Yd5Dabmw@Xq?h!z-Qn`t2)=09#A% ~ f_U zlfQy8mS4*rE+WU_qEYI9)_26F(WBzDKzwb242Rr9`Noe164 _o)xSo}5;0cc)x07*H5mRO+av+n~nnaH3CKu*mJehHR)yil?Yo?yiAfK`$ z8z0s8?SOUpE0Y8PZeO^iDp(~=4#p+gJQK4LDmN=BrefQk@G)M0cNI7_dBf~u_yy `%5*4HATZ^2^|4WyO}kg#hn!VD+S-_$qE-Kh5 8 zXSLvUG2+WLE6+44i}Oh7`85tg3N^-SMGCLOlv3?WCC=1HPz z1 zuyS3B-Y9VM;S#~p*Ef^X3Fk@*+kED@b9v60^xXhO(nWHA9h(&0l5;EOC5Z(%7HgC0 zdj}P02f=i3sjWgOLIKu_LOuhzhEkUCct#edHdvc;S^o`@pj|iiFy@)7 f-&py;^}67&KNP5C zNra5ew>lZq(dq~X`=PXH{pV(%-D>I@r_C=Zk50JUm;74sqFxH{v-bmdc_69EU~j6_UbOqc6G4VVxei#Wf%vo_?OrLiWaqhb)9*fHQRN}gXz0BuYxh^C>fT% zsc8TT_ALg;MmM)3nt3k$%AX+L2?zi;4qUyaDTa@;7Mp|tcn=O#w434XN)SM|)Ozy- zfKB|Kq-jP5@TE=b_NFD*gT18&Kp2MyxQFeQ01fob(owX3?09R8B>~4TA8AOnhy#Rp z57*Xzj)(scOnR|jops*0%`-{+35i o!CYSI2X?B{TXv;9eLT}#kmFg 4v~}o z7?;g-6&!!w1;K=}gMC!6U2Ds;*1zv+VH_yIP)t7tkVa+8D(oYq->-w+xo5_Mpvcfb z^eF(yy&_Q;!~#7QBatC-mUx}t>jzSl%jSW*z6dx(m!v9ipsef;jK5i$`k(yEYcR^E zIk0YE>;;mAZVtnt`vwnaV4{KSnaIf2@qzYNj#q!^`bgoFUWsVp2h>7(l9QXLCIE1{ zzhDzQ!(*A_+x{})L3THOcQjt!$%o!jGx&b+`-d~z#71;Id&4)dI}^Eppi<5Ls7Ujo zRRrlSmbHKN?jq<*vM;Y|rOnM7^~xaI#CzE&3@o-jC^USIT{%t7mYVwl>FJKw!l-xK zfMI_tDDr>~^8`c>ROAcQZL&$ji@n5OLwp=`zk>l?Q=I_CGK@N@bs2NK0QkJU3Ufsb z>BXSy@V!9o@^u GL4Y5bV{Q+E90KTWGx|8L_B3pxAIrA~nxaU^1#9wiN2z zKm7t8uxMDI!`U=2QSR~9&>h{fg93rHv%r7aD%Ksyc}$w;snXTkfhiCSyxhC7AV5gI zf6{EvFLVWNbi+UplQ&uG^y)FddWM7GUffp-Qt30J0C^K62oUH{z$ise5RqZ~0u$i< z(m=?yz^JjP2(v5##eWvs@8{_>2}L!Y?krg3dxFwrMFH^#$LJDod^Dj}b_u@5A`gET zLws(D+_3Ecq=)L{67tg=D`fexGM5Wy7&W#-Zjw=S))o!Z+3N)Wj8wr5AKsUesHWoj z3N3_OrrgSFmy(_cn?_Z3|MCXLl|wuMXZI^L>SMNOo<|Dj=DA@OM+51i%~!fytxnr1 zyJnsm7;@4uq-M1=*u&j +tlv zIeSYbK=bim6-?=tMO_6L7+|-8@H?TjBj7hs?qB1^$lw>VMg^|3>)6p`;b`=>K&on~ zWuPsK W~1#am?WvWe^M+DrCohTrQttdr$H;LnB0f9CoF*JWkbv6AM z?=STDuuE=%ks!x_@vTQGaqQZ67;x_oay>bOHudG^c$yp1qP6XE2bN9|g-HP-aN)Md z1eRrezdP7hJjsDOSj^)vz*SOnz~gNfL_zO4QWm@*-i+`4_)N_r>IZHW$y)K?fXb+n z@%WQbw9LNzeVxL08_pcgnaF=Z6Is3zpBZnv*G^b!fIqnoT8{yyyk6#S9HMXFb|@ Ni8DCzpXk}e`0=?3YGzKJHFv0c>5<4c ==t!yJ~6?01jvV-Kp&f7r=92r@%QB?Cx7%qF?w0UN3aE3eeaK zrzpS-1%nf(DE@y hx4bq z!?^S*8)d9dSj&qDO(q4+OeRU!Pn1-FmUMwekSke`Ux=?5?xDf`*htC<@*IdfE-tdC zO48_W)69RdeD`ODp=g@r!6!E`85Cd=gy&+{y#a9h2me^+0FUXL }t_|RR6*vllqXX7NoEJs+I8_WSXyNB888d(Cg?2e*5D$;P9+=w!4kRP~VZsI7 zv&XW360qy{Z6o(_eS)fwNwCj%3X&hvWxE>zc#`Z5@1`)pponh 4AwGWZxDN<=}d z3#h=jY$3^0iAN&ND)MJQ3~>jX1fWll7*kL+Jv&ZP!gy;Lc9B|*EP-}QiS~&s=d7QQ zStfrSq8*fFO_ejEnBEhFOGOXo2ObL>HL~vcQK$Hjk-8AAG1RJG2Ae1M*x3`RH|8eP zz@J&?tGitZYaOZR*AdBYN*L#Qm)^moBnc>e ><5hT%n4>$8euMYNxk>KHz1IS= z4=!6^&(Rb>@AwvhWS)>W2;u`^dfqeb-VVMUYw=M$0KwG;kNE`gmqO8Cvj9ht0oqfV zBSFR_!LbHNd>6a?t9|G@e|!#x-zHGt*ee6dGv6OzFuo$>gaJS_a8u1E3C06CohX0s z1|IIi;SD6SHHUW;K-Z@&U{4kRxKnlkLM+Hs__71t4w~tsjZX(8VvtfYlAy=405Pb* z;|#>-M+-L~mL*Ta5|DW?9wo_xD#4;G!5iK|GDy>?ECl )fMZN#$=@Y&h>dWR=w zF1H49l0jb1GRss7Aa5LOs|b`oOTK@}JWC4fj%`YF;!(+Rz7%zClB8S#&ID+ABnOM3 zh$Q}aGat6}zu{MfjezV#lJ5u)*hQSQjm)#s{G^$?LdE(7jEBkb*lh=8498tI>fxP# z9hxXKIMWbNd6i%u_K%r+xC<<8xsj!U6%O6zC4{3t?`Y|%W9#A=?J^MDXjFd#W0>SK z5V#A95H*mR!ExWgb*1pF9{|+=@d6aJ6ZZ?fM~fpXKqd#vBm*AAd>R93p!Q$@N&=6; zBS^Ht#<0L@2L#iE{9Yva9lj4rl7-AsU~x!r{EX$Y >c 8dfF&iAU2)CQW~y&Cd%e+KTT*yOIby;I{|f0eHWkye7d;Yxo4st@{Mf zAtNsEBGH@Pz}mFHPY0R?Nb@j-d5@NEL6GFZk_7LJ1Y!UH2y#LVnz{?ne}@14#Fz!j zGI&4G*@2Q2>fQn8AXuXm)fg7F*N+6M-RgWK^7Q_a+jXSC2z}r^8SsB+g4|m>NFGw? z#Lf7nQDyj;3Cgy&d)2|@{gBv==HA1W5tP;U8*bG-uKi}_NraBRkMA3TqrnD!EG0FE zrgM%90Eo6WpZ(2)?i!#)b)356dS_;5kZsI-n+eh%)#`@^{PMuCeqhCNhY#F 3$MfNKE?XqUoj_yLG4 zFdvEw07>u-Dk4eV{wMMJt%vXt-t&>&fi2weV|&O-2CnY$O0;KKD|pHQI4@uDc0f{* z0r{a5;n5Bu4g&lRe^PV`%w2)af-HaC1={ORfRcpk;WTK^T&kICuIs`61X1G%0lDml z>Gc7>M`%aK7Bd0>y$H?YUvL%3FBkj>m w7{bRBs{R~Gmz4a5D&~SOv3B<*jSZX z%hyabdI5wdm$HEs5`Ppe^I>@AB5#IV@wFZf+qk19H&O9?Z~+8%usT7k4?s>~!5 AyJ2&qWTHuE8w)^lq0AwIf7CRMC zwGM)sNf9Yrq-vJW7H6QKV}K9wK^^$y3#wX_@#x8G*yLwyD}ONA{n&}3J3${|2tJe9 z&>)O7*%hN2GX)waoj5rdI*EW+Pyoo@29!B%Ks?RDd_lfHtcmwDLfz1zZT&Rj$KvKc zHqygd76tRIV4sn|W*&SOB<+#Aa>LChR(SH|`y1^v5n0+}hLD~tBiYAGc!FmIe2FZ} zpUzsApzSQqmR#QKW=7bNl6I`=@m0#h;L(Pp>q($K-VnX}kBc*R1>%SBFeVW6z8<`M z3nU(4uE@WU&jm#uavfZH)8xmZ6HOmG+Ma#^#QHH;)aLY_f_vnWM{lAoqOhi{K#7-% zge}5 _X-*9XuCBbKVPOnV7`FuE1AY~&2!UCEpV`96dqaWb{4G7>b@ ze5s6Ddau_>HE&5r &Eut0u73P z8!Ar}{H@$qYG~O -Zfdwl54I=k|c*uiI=h4#-LF%~HfalAz$A%;q7ait@ z@L3Oh)GLLybd4bQgvtOGE^maqFCR=lumN)_RsbRZ%D0e!28kB#6UH`3X*Slg(5-Qg z9{Ik(>WK% cXo8h~-~&7x#8g4eWzb&=*WT5w$fU@=Oi zMNSDml?I%K5;zhEp#|uS=3# ^Z?BY?5rMdozviCu(_GBz6GQVbN>t{3js2nFcZ=1G!(jb5<_uldX z2f-suRfBZouR&mKmJ{pnbE+S&BXIq}7wJ)X#Jc(_{8$ll`uT>UO{G_y&-9>}tQnb8 zl@1;I1l`9U2ZITd2$UK{`JmT-HKk8IH_p@YwnNT1jZW_j0j*;$GByZS4T2~&_j ^)$Wr&0O;L6$qewl_aW#^L7igbI8M#>;F1$mVkyvnopvB!P->rd zKp694{gSy!^73P?vPu8Jsu~2{0<6#(SaG-cKK}ajq`{Pu9SD-#l&=WvACEN_)LVaI zP{<1^TY$^}v6QwGdl_VuNImraIsrLWAm+&6jx8j`(dUX`-`=7gc|=$MAAm&XJ)v%a zZ@`d$E>sL-2pZJt2BF7)-`+desr#;z;5mapE?Ly2gVYFMAAlEih@$TR3LgI@%frmX zWLAVjHXOzVV!`ti6v-U`v4iVLqr5>Rmn=6~B@VNf<=NADW8Z=5l>?UT{p?*)IN+s3 z`&BWwlr(X&@Rv`mHohZM1{bC62Qfe;UM`>~V^jR2AXDK?@_gEV1K&$gn7F93C&_r) z`T0eXDO~zU0OmO>D%IqO9Xd=*L^!RT#}t*#yQ3W4o5}t6jhheRiN4?ykF0|Z#3p&< zm5$`-K)6%o)mo6#tH@oqv$U@tH|LYN>9kHIs>Y^_mVT^Ttr7raWqiR#z4KE-3OjG7 z@kQT#{^mL)frSTuoIxb-Wh$|f);I1=(X+(*T+Syl?UiD)WrPT@nF2z|f_pzdTo4(` zSQn2#xuYGN(OY~!|6%x#h$hQ~59uP`KV%A!-S}yOuT_ZyI2IWw;g-uNUmCy9J->%4 z)+by?3^Z}zt<$7}qEPVU$&LnyPmslg0ojiw7SQ5yK;WQ%X@=|-q1FeC5PmfD&w0WO z!>6A$` M>qu za&r-Bkj VDm8gEQ0;EgP+2m;sU`=25v^_I1s5k< rA=>@INC>@a-thra{>1DZcS4CYh8k)UwJcxnrr9bn zzwVU2ZxYCXdbhMwz`%FRdo^vg_ahj-pji$U*sBYkp*#3}AZ$g*)VG>%Do+Sm6l*YQ zHu_0_l@%=jzleA*#tcOp@cw4=`_V}SLHnD2lG{#L?Sm2a8fZ86fZ72TQx^ Jp@}mUhU09B>B@w@N@B3V@Jb>H5g+SNxLE`qC82 zNZ0 ?;vXGE z1AzYU)u@}VW>x|E6Abb 6Z*a!WE2pJ`-*_4$y4uXpEZGYuz?{b?pew%SR%-*;+RuR)@?>mIX8UEXQ3O zakuddTnk%$5?*pyum?2CM|m^WD;sU*(mF9h(R^U*TO2v5Ny 8$SFH1@ z^$BgeoikzJ>}r%CPk8$^6^u}SsR<)HYp+~gFl#3O7&~7a%TVw4>eQ+H9k{e;cn&y{ zSwFk7eF1TyppDS;EpuQV12O&kP5j)R16*^;p(!oC;FR4sS=K2S=LwMU(|u$;Y5u|= zV#^&+mY-ZbSHnLUm1>T8+Hr;eV|q(JtFkLE`phh{nGXd1`QkfbI`_eUAGZRlgNK9y z%^Ej~UK(Pv(LwgUloXn5yi__T!);vjS_U>)Dpo+&=mnjT;3n6sNWNmbYrdcN!^+d0 zW>%(n9O%6t4l>~n2+WWe(&7l_t5bS7Y=Gch`rp_&A@-A&!AHYr+Swr}AXzGIcKl02 zH<7~+sEfH_qXqan9w&i+WYc>hn(yoUED5@6rD$bxw+8`iqS0+ueKn3>*(2xSvBCQ$ z&)J@za(3+%v I5xKnPj?MWXO+j4nqI_qCg$1a8Uvgy8-19NW+R{FH zTXM3#z*NZKU%iEvt{SRA6xPAnMCU=E%KO3c)OcZ^e617w`hqe!DJ3dR8e!3LCeM+n zp7A-0MP$CZ9_S@TQ3pL#;4&d0-*;YGdf{pu$q!w;#C#@rJO92(j_K=|fXn8?=~{nW z9D>STbNcT G9#H8-%#N1ou2cW hvjpfXgSW4{pOm_Ay={9(J$7 z%bhCWq-t!v^mq@^rP|peWLFPxCeqXb>nJ%wuhdE;`UoFuocx+Y6z|+f-*5v@->|xq zyo>1IrBWaI;-`KKY`lK_cjPxGa>J7|5h2ZZuN43;vhqv$$%zq3fV1BYW(;xa|VmIlxILFX`T*?oE3ivDsxlE58f?6 zQMCb4$o)lYB6?)y>VqGJ&H`XaA-7|vj4BoUhA1F^V>>C5Xm(^@p8;fuG(RCdBbYHC zRAo;B^wg Lp4TUQGg^(>6RNq=l)yMxOHO#l!OpboeSF=wWX|K%Of5wSnnw>)fYk~ zgB&V 9bRnNtkJ02NDF+5TS=nOS1?btkIrG^$VFLCurcy8BlWYSzhjn8 zq?&()ri`ziqjNVzN>oAUBkTH^k0x)u8y!u5OLTnYuQ{qdYp5+3yypGb7G2_Dos(IZ zV4D6(kW$ &Bbg(}%S0XWoqSRdPZ8C~9>ZaINn(=jMGZqhBrcreN>tvtm75AGJ4#_rx z6fEdd*l&-ShqQB3kh>;oPej%`9jeZMY%3EI^wNx-ed^@M;618cCnOopx53+5bp~JX zMKyGZhCAbsk5a0YF@3vTk$)Q3Bc<>3C@)KUa*xR6=E@K=bBh4vub(d|UOBjKr^4 eDYF(7pSWBsdi0m4wMduV$lG)Ycf24Sycy_ z&oVaGRl*@TzlSh%(bclCSuqut1;sSh5HU;IniiizaX1pZC6@Q_q^eH^%GYN^c=F{p zX1u$vf4#1XZ-`!xzbX)Or7&8=>#L2PkBu>QYoS=%05&6ja!RA0$L1XF7uD8=Q$(#L z=L$uztKqzPAA;(-QUoWP(4xYBKiJh0S9_gk6`!rgTCXX@Aa{LW;(hz?$c@`OLF)HA z2GQPX0S|{Hz6NSIbHl};i$`<9#R+^yqJ~jAf3#b (P)n9)N;lF z)~}G+xZCcwQkj$Jwmu$qzSY3;Qj8^ -cUgX$L zH+AeR4DH-p_f#CH*bd(wQMD9|&Z#OSNh0~2|8C&&YZ+|kbru>N7tJWFXCrR?wf*SP zmoeg1m3u!m!ri;~wuh1m7ojJG<&5ag5U#&0wsVY&I48tueON+&TdN5^&SSRdvkr(^ z2d4U71RhyN8-nbNcf_t6kqGg5@zi-b%5l=Kl_Nwoi@U33+7R|^H-kBr_g8|N*Xkaa zn~9BY^9f@r`7|wd?@*q*s(3a0oQqlN$JB{_NI GA^f4i`?^pYuM@ zBrKNt^}d6DM8BT2S$k(A+8rN)#10^Q_lV4uFf&kCXZU<|e|O#&@iMR1AYI#BCwzvM zOgGLuMbC#yI%~rd&`yuUL8t3m7@DNwZe6}}PAk(F8cz#Xd=@QOmJe`h?H4A4ItzMj zzQ_8@-;>*X#_R*l-|^_^)V6spV%#tvt6V;n)jNED(Kervbn`KLL&eldl@J=4U5A*R z7&$|o)vC%je7d#KoOs{%>H8(w1|*%GZ%6~PmB>r6J#n>9mc5QX((!}LaPpDdW}J@d zE)9;I^2~&! nnp!$ bF*%>>=ic@*=?198a9WSatQT zdVbY^-xMW$D)2L1_l`^Ds>SoM8Z3myNiyIT4P>OD ?dJ=d7IfgIhOxj2BiUsN zMxjQtM;KmBgMskt`-fkSSpakWZXddp!=Qt8Xg>?Y`v!>Kg=}9B>n&}^le!~`RTgNB zhPt#ohXb~!0A?)Z^p}Be(eRKp_;wI$@9(MO>KD<^vA{3Q$4MF*>1``gbv^A?ixSX( zXg-CtM6|wqO}u^YL50=Mu#Hap#uX*6t0uUrm2}f~yE-GJxG!j @L(;6 z=a`Sg3-e_QAb;LjmU7#26h>@N55&7?o$BxYm1!n%3EBfd^~Ulw`skPdDy5Fwp`toX z)(dQ+*Sf4kPTu*l2Fj4N^Mahx;lI;=OqLwvg}O~qKt+e{9F+4`gcVK`XsSDRzbPoW zS)?n*GjWP_Mc2~XnS3gRj)8?Ldttfez-;Rk?X9EPFj}Svdjyeg79VhGmhDI#`#rxm z?rbcUYzFC}VxFBW$wuH6APhB4POYnX$>U9fWY2q6lQS+wPQ?y4{m=+mC&%%Bx;Oay zL|c@83@{yz*o7mHFt?L|cBVty?8C-daR)G58peZpRu0+NZUl2$Pd>@RFRSobjo4t9 zhqfX33gY$|Wpi^*S|#gwC;SLYTZ)b{hi``k;^A7qNvO8b^YKY(J?2aI>3PLF2Wj5* zQz{&|u_V}IT6MF0Ns;X8T?k8mHanVww6P5du`H$nB0w=Z)NCu^Zn6+UHi+#prN=`j z#D~kym)h>`*rZaT;a^_J2i;i*apM_Pqnb)2!9b)c)Vb! jbv=%1R05dVO?%&7rL{#QBOt zixxKAL-LkK)gWY{2R+UNOF2PE0f*`U!+jB}Q6-bxk^9Z6)B}zHy?s<6N2(sBZS3WQ zk3s!Rsw`bMr$Zg}ktap+0r9fqAy-uO$#Xxqr`DlL+VOankWU~@eCBo_pGdivyejEX z-ebws$>+KkMk1W|vO(;Bn^Vz!F~qRSIVY_F)<>5Iw*upq#VS6`;IQ{#=}biX*!(Wh zhp?@C{d#W_ew>^le@@F4x8~~Yd~^kR!R3xZwb;^?SkHDL62gL6*#}Cd51eFm&X%4Z zj@U^Hn6S>h9V@&u3gY-=e;2=F#<|>KdWN)}XC-7ADpUYBn&KlBQM=F0E+Q6)(-An` zblQ?e_JP%ZRF^`V6(@g>diUF&29dl*MKqLM4=f!af2r4gps#b<;TeBe07YIO{bauc z1k>efz4= ((1LS3J=%g!-v59v2}&k5K8|C4dDZkj^*0 zIMjk8(!oY%&zFuJCLGx7jMmv7dxv6TL+buBLGHy9PJE4XGx~q~8)`avBH~OX1EiNu z<% Idy+BzNm;t$;&HGTIgP(BjbHR}1_w-v z%Cm!|sE@2Q(vv!9X?wO8g^I24Wus4O4c`8_ysr=T8`wo$ceZNV`cw4nDjBD?0Km}? zB03qpxg;==#&>^v^R%a|6v_VFhAVy{Mml|r5l}0K9Zxby4h_EicMsju*kkoBq63*; zWMr~wvyQqM_yrvLs6WAvKI!N5k^1&KnqOGKYV=EcvFveI5;cJj74QMZuTm@VGA6uC zZ0pfTb9N+YfpM2q^ltsqeM4?kreS3;NNc{w`o;Jzww{0H`}rt?@|Kihm)61gNjo!R z>NA$4pVXE=m2`aG=d7exGqmIPQR4CW7-3(kv?Y{d0T&0ZVC%XU)BGiipC=DK%Pj#E zktv^% vza3Ok82kMQd-v~vzmC;Oj z053q$zxjC`&czzC0kC0P8Jk*6W_~jUlBvsM>3_~=pkIQynu;bwpp3jkQHf|u!K$h? zIfC<*mCD`2=*L 9>8M`vf(ugf6k%c{7oQiNxv})U|(7K)?p!FUZE;ekY{V? z(F2YJQqG_PwHF$9SF30oNJ7Pi?^A4j?}}eL*y=zC50{Qn*LK1?{yk6=$73kn-#6kz znHpxe^+ ## 8A*KAf6w-94_wnr_!i&xB1wcX z3#woXEnOdt*}X=bQeH^-#=a9qPNTv5zE0JE;seC-^4AF1=?KZ>BDDCvrbz$^UOs%P z=R=5pvvnZD 3kZP-(uX56CGYLZv6d0UxNP4_8J4f*5YF6PINa>A zCufIie#X_*2+;wTzL)atz456wJeoil01 c#k!UG;%Ga&Hqrj@`x1)c2oC8kIn>scVG;R*3EAxJ& zapSWhSmb3?G-;1$Kl}Je6GV84S%jbT2nnvT@qn{Xck7yFOz#OrG3#dDb`E((GTAAA zl`KGYMtvBS(W|@*l5a5~d^osnro`9O(FeQL;c&j)E}!ae4Mr^(iX3viqEAkM=4x-T znZlE3w x_@3_OLXqn&Ky|=jMez zo+m#y+Mvs_w}EMrS#80pGUVuIprqp-(@u){cazcTffcry&}5Dqs?OyfA*H`$pi`2e zneI9rRs9zF`SrRP__Px-EZKQJa-Mg;$)Y1ptAC=%ApvZYKsv7%LyPU@MJ6zRJ*WXs zA))aS>R? c4O5U+4a_)en>kQdi(wz0K|UP;L- zWi!1R1Hjn3s~9fI2A#$++br3ajHE3je@OaM5`?m=mX$Kx_eT-!tCBxz&JrIzGT#%X zP_qsb?DIt7o?=IH+e7Kb%vaE|ASLidOszRxGxO^$$s5OF@a15{lf2*VZCQ9uVQG^p z{s|z;icl`auR1Fjy`gAJWEGhvT6OOtP?918efY=CNSyPIXnnYDj&`6@84c)2e=S0O z^6C0HNwSYHkM7lsKx-@@bp-l|!GilM-t`c_cukcj?VctXmHoC8v%du>>yT;-5A3!u zAU72;Icqd^a!C4sdcxb4Te{MB9r;FA5YN)~3{R+A{2 vrV<3g;hQ Agzcc|r+&EsxR=dL>-Yp4dDrJqRryN`$+pfzt5 z9j~Bww7RP1rufl~_Dr#SOM&&Hj*|ji>% %HP&)5vX8`o>k@ UUY`03Zv z0PQ|&$7yU33diE_wKxr-rEid9v(^u5CO oa58MHPQsF0ed>yvZ{J2 zG@t^J6DcukHXsD~=91k3%#uRxG%QvxQKEvA1DwE dIGHD2A4C%h*inOvC5)F!FMQAxlwz7-e%k&WehP@5sx&X%a46( zIUH_@%i95;nS6CbK@g_xw-E8y%A3Iw_<}iMI~MCw_KD^fMn5MvUa^0t&5FfX@df>! zpRnbre>
3ZiP=hJ zl3;5H3v2C)H}#%wn`XoND@ZOpaxH@dPM8!ms3hY@0EP|qe`|);cddkJ2BpdONc!_` z7KO>Kn2OlXf5eZQ8NIH-p`Qj&UBJR<1 1Y^;LG9nN!oN#)e)I_Yuu6sfz$_Npvca@x)iR+> z3`#z__o!HJ7Y+pjk}rkt^Ue%e9Lvf58e-9eUkk3 U zMG__pe^o6^%2hLjsUC>0K)32_kZ{RX-LKC)?IXhOrzwK1K9tX>ORG)*)NQify9mK@ zGEyBO&hQB!gUE5(knyX^Te>OSL~GN(fXAG7`e4Mc%nV|0z91~Y5H=!V`j^8Mw)N1x zvujTNX&YJsu2(wmM=yr!c)p+HLZCdg2?8V9e;fq>pJ1d+a=#jwcd}+A#&I|)4gBKL zYc-q?Z~g8?;#M;f0kN2vZUq qKQPc-|P2sX67!G-%ZZbKi?VGZ}mBaFoM!C ze{z1_9jAb?9_0f3;EbH?D5Q;14Pj3j-sNa6#^(2zJnjPQw+iUIB8>Ul&Z{l~gWwqb z#EZ ?gWtx7673#~U#Q(te6;ua|DtmO}uTe>h<75A(UwD2;0kTd!@B6@D-F*|g$lgcx$; zx7rra5$9}za>Ba=vAMBXiu;W}hBat}|Kk|fTDPSU4Nf`MeF&e=p`6&D`_Dp1^ $tJlSpDBB|pM|45w=bxAd|Lxs&Q2r`32d312KFG6P%n0#H?{kw&`e+HZ` z)a!G=W!raRj$He|s;RH~y@Prbm|aTk-5RCiV$L4W%+I(ONdr*a-8X6OQy>C3R_|Xq zD&{jlS|OFf+nOFB6{2 Tgu6eJ zgo6c55_}C0{oN=TJ@uIy()U>F+OF;3`q_;JZ)XI>!m2zgNsH5+jiU&zNT(BN@G>6* z9%9(yxZI9g5(!7#j!ruOpMW@PGopN@2(j}jMFtp`F6L~BTKzAWu6Mc0e=lKn9^*~; zoBzdTKhse!V92_Q_?e+}oj&%eIc=(<2nR*bnDLz!FAyBdv4qMe{&L%wWplhdc0FWC zSnuaF(k6CgXcCiM IjVqDN?(B@U^#4=(-m^y%9TQdo;8c!f8yubT*^$|k208* zq`pPhJv{DG90haV9TF5(PTYDm?K%T%!XW>Myy7@cO)h!dKUk{()~CT2RMbMW$O@y5 z2zGPKUT= ;aS~}NusfzfAZ)fp3%|H= z2hzS{-yq;|%l#3TAS7 2P?M|m;V-^Rm?Oys;6k@MNr3L}w&~9@mI1QH z^DurqJ=b#M1Pr8my02mUJ+|PBsLQ70m)=;VFZN}c4Ppp9f3fpPy9}aEEH6A%C@@;M z1g#0>HNzV_w$rj0rIGwl2W314|8ViRl@V*~YW^WaGRfJqn>%hA{IrM-e*@wPH$Ezp zqwSLHN64LVzCc{~?H*aVv_;#+wjodCF*6iJB~@rNBrgWh#J?8x^2Y^pImKMI9doHu zJa5hFya){je`}Z0M;4bX@q$#?dbl$fL)-Fp{#ZbX7O{&*5BcEeVAtchO!wMN-C~eK zyE4nLMu45`ziN5-MwRv3%K$aE&@;63V_ARM*gfMWkd`e3!=mz6XBFVXR}BHmsf|2G ze(mlkxj>dcUTBwl=34FZ6~zucs8KL%h{`j9mau&2e|5vg(5!SW`P%_zXq(6n)TTJ? z@}yNe0MeZagcAiqMfj`Z2L22tX8S^a!|Xt$o);&S$l>$@1yIEvu9Mx+CZt&q3@&%F zIUyPXD8E0Fy+5&bwFa|yP0`t14}9dZt-5;RM7cSy?=9-0?*<&aWD_TyzdM^!_CsZG z@nPJ;e+b)jljM50Q=Y&q96S{eaj-Kt{TV57pCAirtLUkf?W9%A@T9|7VFH+T`$bRr zUKM|$X*jtCWxcgv1g4?MQri+KCvU>?OIVDLU&8G-^oy#z&r*`fGCoQrZMAicCG-2^ zsb#yQ)QJ#_4dp^m3Bw`E(yl+QMD7WsB+3Vwe=}YspdbL-Fe0O>qAIhS{afboZms@4 zNb~$`^pDQA?S9;zYcsO_s%+K#ap at08@IOi$eleIrk>pftCe9SG`#K7{MqXg zmCdj_AH6$iV*)nox&rZYr!*4XHJUH7!L!IqeR$L3>meW0vx657$1U(g`TS60fAi2j zHoD#OQ7|70?7Uq&>qz&n$Bvy4W7uvGc1O(hCusaWIARL0V^<76l)1Pm@1crnb;3zX zql|`lm$D{DY^7E`0s=O3^u|BKS6qLHdLKfga3hW)ENds!s$bRC{F6qPS26kM<<$MV zzOZs4RQ}TB14#b9cM)rjAuZ{if20;tiY(~>B)|Trz+b8n6JK&IwN0aT7c*Jm-H$W8 zNTN;ZW_BNXA*Q+44}TFFBZdqY<6Jgm>* gy_;xj^f4?gQ#Rm!gUM^d{nqN8Z@eb=O*g>to)2s;T5c`VHd^N1& zA**6=xe@Gzp#*U_T{X1Xy*tp_h5ybu{=E&vhnz8;X(XJs0MzaXsP|}es(u_Y^C^KR zT=`!bW(O)`Y#0{7*{Tm*m^OEb61N@Pytd3Z-&|*e26OWY$0$}Ke*x^4>W=?~mna|T zU}d5N148G6;cyZC8gSWSBSnl}-|F4e&dCjB!DX%AtxEfB&GvWPAQT%i 52iBjcUU|CPHf7>5b zc-{}CRP2FZYyI%8?cX7x!*3_6eO*NRq*hrxv`?rE+rx=ELf6POwa~{g-SeknK|ccY z2dRw@UKSIyQQbE$!WP`c;Kq5-->hQj>~(MN>w}fk=1JJ2fAY9`{t)GxxCL@Qge{{` zl}8IBi?(x#aAv}nwgb5PCGw{@@>A=JaQJkje {a#`%ekH673UM~8>@CF=3xDBtB%*CJtgt(xIW$U?OzIL16+ z7L+(dSIA?Ce+&M8j!nV=;3t~(g?Z@@1rnmv%4XPS>^=u72$J-pui5mxOxH=n319MN z4ia{$fkSE7B6kDx8k7DKh&I~a&M~=drAPORM? F`bbIS#f;2aZMlCE=%-t%g iKiO(LPtQOonNtk#SeJl;K$`>%8igt3Ob0NPK0)JZw5cKUtvEndu; zwYGr0e+QvfV!@)Ah!Oi>B`Wh4KCQie8@@t_F^n^ -O02Jlt4n7Jv*fDW z`V%4pe1qKVhv6;Z;P7{gB&1e8X_h0agy(zvV}21*&vzaG%u2+b;(EQXqQC9~whsb( z)=GmhZjSSramo2ot9_Knw{gz00DQy^ $?9CQWP&-wL zf8uC>eC>^c$i|k1i(FT8r+A?CF}&n9UlWkj=Ae{5O84<@;8WMLrkSAbPj<3vz69TAD#Hp nE%H<<0kvF;GN(l@+n7W`ug6@^Jci;+dM z{aBmi>oJaTs+U~Yam6t-nzs0=M`<8WvP}Ahm9h+XU7@gSX=g97Nv2d^tO2EgfAVW& ze)rkIkk)+ZXves3F4a_(A$;-MJo#}^l>{j(7jqg_&EO`{B&zgXkxJ1px<9zGKU4r@ zKW#_L>GAN^=_dq6IUl-)F5~+cJyQLlp|PVV(2<(YNemvn%x*M^aj1r`K8|WbBOu zcEwr(_`IaL5%t0I#ydQ5Q~Pn_fBj%O 5Q|@y0h5IPW?;Da90YwxnE~5TB$mzKU(6%Zq3YI3>bcNTbRYZt|rige?X(b zz_`QA+E`F8cQp8H#c8cBT h<8@|JxG+JHn}D@a3Fg@CL&$y|L7alH*? zmKgr~Fq@)tG#cu+f7tot4By<2uEwy3t2 bi4I^)` VsXCsDFbD|#y-3AijFQ24Xy@*^0`l^^Si Y?| zc?{uL7Ppkc`uMU#?I@Wo^ht8|&-+i+{W!A{tm5Su>UaD|QfiLBxd}%p%<`$j3VGOa zerZgJRD|i#zVS}Ljmt97!f%N9Zdjn{_D!F?bH4NaiBV(I@S3WHsAbu_C8FC2_$hhC zI0zn0e=K%D&kRv+ 2tr9IP!z^ 3 zn2)@SBg}LUeQGCjGIc?GrNZk*)7SfwVgp-!f09oTDSvXdpgw*nx|LCLH)(M%)zIbq z)N~=5PLGHy+x6p$bD=R#4;=c!erh=FZ*j+G(5vnm$f#@Kg)sY54i(ejOhkgB@F^!= z7tbIiL~+S{0R)#$EG+>$qXK=nFNfZKeEyD6cRUDH2`ytXo4zU?8}uw{LZNc_fUG`_ ze_Te&>Mzs7#mYqd+xKhiH-qv4J`qGNL&b}|0H@Yl`eEHFz$Lj{nnbN|*P(p~-Ooe# ztW?2?QEoSLNRi4xT;lQ2(dC!mwevR%T5Ly8h@+Q5Hi%}VzOJWwtGQ6p;!(*EU51qS z*?i5E(l;H4e;n5C!u;0zwe*hM*jh{Pe-5o1KCJk}-;G{W`@#B6^3%&004K!1RfV%+ z#Tx}}K5D6{Ev-xD?Je%4y%}-eQG6sVF$O+@4xlgO?}Y!J@LN`JEO)&}gs@oh{6ge~sJqt&|-4nr$6J61v531hH@e;Q*u$*o>n zRrZEO1&*fyx9s$JJ$iNOH(c~`rgkV~>bV>@_Fa3~vu$$(kePt>`tLr{@3s)_cOX(R zm9rxNNjqMKDZyLNMILefC4#3&!zda-FqQN g*G*D)-_quxLIK@9`Hx&n*=?b)J)06C>PUe=Hdzhb?+j*V4w< zQxMG#)`{D;`*U!%Dmw9-0nMXoddkHe G%KyP=Qs^K{lYUN8=gnpt+IFuvZ~T9!cbNJ$ZTYP*MvWgU 3Zuf7?xArlOEU;!ZI(<6UKLX_t|@aIW0pNo^(Sbx;yzb4$nldtRBx z#$ og(}*>3V$u6=M9 z^8!?S(*#;bjGn2_#>Ut@IR?dr?e4skga3#sWk0d*fBPZ8XuH$};nQ=FW;V(<3#Qe= z*(hduCP)M5V ZB!Bj3>tol%KKSaSETL;wzqF2IRRb@`r2#FDTIo;+kNUBE(X #@B%P&x!!(lZ;HZW$iCCK5L=j_+*E z@N|0b-8Z+HPH{RYQ;5?Qg3pRflA54st;T~se})^&TzwF#3(5|I@9j1#*M9C@sV|$J zk r!33wID`ZpS_dM3HNP+(DF>+!7BaDO|V)Ea+QhCw_ zb~G2Xmc6Tck!%H4fmfFo9zW>67mVEWcry$?>bHcD+SFiEjYEzT1NM=8CzUo}b(?t? zf3o 4ujC)V%>IYRqX bd&%*^A}(~T(YW@9rnC+I{Svs-5bV?ADzk7mf26(u zm+fn-J6q32d!7LfNW>w !(0v|3dSwUe}Jjz!RPi_xR*7$W#%wH>9ffAbCZUL?{(8qs`iH@ z1&*IdnsbQkmMX)h5?6gis(PXPD1M=m+xI8Jqk*?@-O*>D3tA51sqZHk0681dEF{a& zv21u$q#Q!V8D5rzIB>Y6b8N2{qWM^~$e|`Q(qwFGp+JW?P0~Qt-*FeAfBCLO^2$?q zrrv017o>dbCw{kk$LcW%v|k&sg@V3Lz0_+*2(%MFDq>7#Zpw4t3RGW0&}X!_saRUs zoSP27Q8iK-7w)XwLyO&R89Al9-CecE*Z>ysy_>_maNdpSz%$$eeD)Rg_QqB8 eaJJYy;)Lf3eL#`iV5rHgM2c&lN`945-5F1#R5yGH;TadMwz^;&5rz z9?$SGd3!n|J+s>e8$JVrB?++eqRW=Sx24se>Bh;#b;cdJ+LAOTGR4=I(Uyj$0e4Dr z>-*>zWHhh`+i3sjjR%hwLPuUaS&&^Nqd*TfCyhw3#|e@IeJax1e>-+{@%K6Im($vY z@se!P;A(?+R=tRXqjka$e-dcOW3YL^?Dmc3+9&kpCZ%%5L)PfFdTIAk5f5!O+s(P3 zY7oi~Bs4*V5j5X9@7s+(E7c34^Y1Q|0B^~;&)#rK0K8$=%`K?C;(#gE_C}-AWUlWh zG3VW34C#i&{oU} *FQ(>RN~G#4)a zQvJg-9?WlK`#C)hGZM{e0`L73JwZ;2P4f(zBfU0ylA(pU^aJo5?qL2VGOPsbNl z5_EfH)$IxokN3Rgs74MLKHLK25sr6Ry$vx(?eTJ12qO*ce=sI2S(;YgYYn_TB|CmQ z^tw&nXIU`e7juc=5~~&EO!3H^)+GCgRQDeIoNyWA4!J1%?)g+5SoWFt+Ws2Iv3nV} zMMh+_=0S+HWJVQPEEnalaB)3BEh7^Rd8XLJM-+N`^|S7Qa}11UAs(g43n`A=J2aX- zm<}LA3h{YGe@ E^4Y}x{k{7xWr}gMypOy(SO4d5Y*h W%K-=$GW?;F#n=>_e>mgW`9n(xqwe~3>Gsz q zlZ)9bFU)3rMybk}z`5Wz0G)(!0-@?%*KVVWE-w5!I&%5WQ*GI%@J71MP+xqklg3tU z9_w&d_3f;PedfHH%i((DJx$Rf{XMpIfiTZm;Lyy-Q1ncVO;W-1)_a}uMO#=pt~*Ma z#8?td(gBY)uNBHzo^6!s9pJhl763Gat0R;S7*4P>ma&L1p z8@Nj5HN=l%-DTO(A|g*;^Pi-vI~7e-?6hoze|3}?d)KC^#W!s~iIxYa&fxQXk2cuC zbNkqSyKsuut7hG3(y|e$kYIDM++8CtVe1iVN}Q_R*I^|?r3dwDY6EH)N~wL5P<)Ib zzQY;Rll3P7)2RVKWoxhm2Esm2Di@W(f_C9We)hiWv$*8$Fu(Z1+sxoMF!u;q92I`X ze`&@{J4gpjnr|foJ#}Vyhf 7lN!j2j0Qdne5PUK6g4Xp7+78Z;}z z$dF4v!)!Nz9MVs4YYX`xw3spb&xp(be;C^BjJl5DkTk8JYKIef?LK$Z%ci7Pk(;LQ zG{9A^Ea6-|YV_4EP3`_3!)mte7qfv;){7w$Ch9^sOfcHs#hhB;cP;+8*C$Wxvr~l& z^LLG8jCYQI`9FY6Q&PW#$2vG9d3M9H4WMsk;ln(BoMEirH@9c7cP~trfW3|5f5UZa zeXp3Gdv920ncyBi@R@68lJ>HtvtY~5fXM^)kjOUbnlKN~rkx|oh>K+z&j*xO7m$w9 zeyy_G>RgUR+o-33)gr!goc^kanDRb)e%M-)uyh~06PG@bXLs%|3WyBvR?a*%9oKV@ ziRp8hU$73ixc1qY#=%w%j-k?gf0s3`l%W@EY|XqPSce#myzS+8{N{=)d3zPsNcPaBIS>@jZ^Q~CZGk$*~0Xg+A zM*KJ+_jP;6c=siVIM%JFjq&2d)cg4kkUHoeNU;k8(VS@1^$qQ(9@zD)e^($pg%X2= z(2CAjb982dMP;h=&!f4fQ)+uY1oQ2FY^|Mbj|BYqyUhY2sYCqY+Bi*ttCF1ER>jc) z8{KGu(&PCs9&Ggl-lP5)`g4@K$_fc?#EI|9evf8U7RiF9FI8Gvh`JuFyL! 447JnC)>BE3$|BI|<`KkRAo3D^`&+istU9Y0fAi?^o6Nu}h`@_` zBP8a#6) $m+v}8y^f78tZ&HlG(BZ&2+Ci>Rh zYNl9rum53>VqAJ8e?R?(=+di!!Wv8h!M(MQGx{XIXpp!#??XLH8A5Og?$iAk4)VQV z9)v(DiDeG?sjbEipS)T2x|SR0m5?PP;3ne(3tg|CLWHAzB@FZdxn5YfYz@=ZV}>cI z;5oF+!~EQ*G49uQFG?3`*ad1;_$Ia|9zJ7yP{WqQl@JAbe_KJ>Z#)z{xXh*K;@G9f z7#Zvi%hmk@rpmWdaDk`WP9Pt`Sd=^sCKP(xGYHJUHd|Kd1c-rzHi6Pkv|Ku|@te@R zP0y@x%o^q{I;xlRD@`ZPc0&b)=?m!Qtg?N?hsDAxD!!t5Im`J6Ie-Mz3JvBPEq&3E zNu1o3<2z*Jf54l6>TfPvl&g% EfS<-?)l-H$uk0wImO>2!bv$hbCDlming8MpxOb6ED4SKH&v5+m&(x} z3NK9gC`Jg2`Z%;Oh-2}ELc;OmsSI@@j~)FK X z8WrL;f3e-rX6GDrm#RF@NWDMg-?ntL(J^f^%}M>GY^LS2U)mrEg1oGu=_Dy&T3B8j ze%QP{ssO#N2^YnNYuNTz=X{<+;H~|3{q=h%7^z{M9%x}fn@L=gihV&qLq@y%)mO{- z+4J^#4F%u*UW=t1C=}8ERL?e%Yg2 (M79nv!gs0uLkEb z@-}3H;z*ZyF6PZfLC-ZzH3T>4tKQOs-#>-MGQ*Am<~fi1yeqn2H<%PEHSLcf`jPR$ z-TXQ0cf*5_#tUOSDwc`=u>*(j-c{1Xe12)j2_m_1rJaGCQI$T*>e7M&;9XOFZyB&F ze;2XQu~;BltW?`=IadXM)JFs1+ea{X^j5$dwRodfhZ!hQ93HlTL#ci#hxvw;0c`WR z@al0(ulqJ#jw3$=LW&t(rGxu>$#ZP@0Prjc1xAXI-N&}ZMlRQn_pIO8rVU& e>3Fy zthe@zdY>`FuzLJ(1LGSOn Pzx0sX>*f#Yey1~8uSr@L`ZD$Bu%vOhRVv_Y)ax- 8K8a>F?{e^iBurI*oijeGr4a^a7g;Gg*kLn&z_m9=33h`{UY zB8E#&JGk0JL_D6C+vqo2th|_l6vb@<#NWe%X&CLOX%7=^up%$@efF~g*@d~ @31)^^Z8L z=?iYP^o@+fT1uc&FT&sRz;kh%u+R`HPV%P@1kRh=YA=b`I#CXz1OCBg(SI{NH+@Ev zIro8jv5U>HstfMP-WZy|e~z@nfe_zOA;b~Z5i9sG-*!sSX2Vx>82w#%PtcDV*?g1F zj^%Je_+Ym@8p-&y99qypUK II asX{#GTke-$~XZM|wl-hqac zZ`a!wdMw)iw(O!lS%BreJ&(C~ECD% R6oQ#%`7slHFMDwMvQ1gBq#>+ECQH$`@Qo4|FMO= zx;swjP{e*E87Nbje-=wE0^CN&og;^3y_&Z^ fw{)xf**Oxg(yux2GH}ghw Vby*k} zv*O*D*5&ivd`>?)(|cT0@l(-jr=Tq`BF|q{f0a*Fw4vW+0nn=Cmx2xPXrdA?uxJ&1 zKjqqx+;5ofy!90O=%6;lzzabrU6I)*U35=3f8rn7xXJvDTo9DhI$Unb$5%>DD1b3O zij7G4J4@|!e^?pXXT2^O0emXN-_F9)-?QNl)G>QRb`DGH3*cSQ1+~lHTw(Tx777P_ z1TG9F=XBj^5^JzEFF?^ Mj*+nnvLL{yeoO7A1tt(CJ48N9%O1e{h3|DypRP82nvw_ 7_bAhuE}35g*vUwqXW3#g>9A)z?-Dy zIv6lfY0WO!d6-vv7^7a4IyQbb74yJR<@Z#2r0{h6rsm&&tUE1xSLrp( 9X$ z }sWXY3)xVdw0j#G;)P(q~tMt~=Xu}jh;r{tT<4S)ARzceS z^T^-0?BC-p^wG%B{ch5FDSoJ;OB+2cHEY*2e>_C??VQXS1pNBrDW;zJX NgJ_=T(x^u6~nU|0>&NL!WzW(txif$mZWTnx?R zf20t?NZUFO $6Fu z=up;w6A@SLV^JJ@y02J+00BJ8I8|XpQ3a&C+OJ%A?n%Oh=-6Sgg4`MWmMk7sy~)5x zlX(g#u>J>}e0e?STY>nK3aJ8b9(M`Me VIz}rbxPdPn&cj{Gr#Rq|9@0xEk}Ld*o;T#zHy|?-&ikvqm*Q+5}dU zM|UXz=Q@Bm4H^M~u|p>~9^Mk76tAHN#U8v6LuXC)j+bm60|P}tAt0bbc9>y0f5-8O zM7{&RjjpOaCf5-qOkkyqf4cOCElYuSJwCE%94uc3Cto3rECOCLZ{lZ+*kP7mwa&6- zY5?mj4DNvR6-;!7A8^#T%*n48Ri&tW^^?yYlNXrVT}9?8g;t=834v$ 7wc7GV@PO#V@Me^diDbE$hw%HWY1D3rh%d+?l^M$+`aysv6b8;KQx z>kDQF!+FWy(sbAxJuzlT%1?qfQ;bxaA;g u&`99x4q0WHb)`h7fKV&j~A(k z1lPIw+5WEfrmzUZYnb%%e+)w5)c#1XOL)$~x|SY-aGwHs`U9|+$q0}ti@D60$~2$q z>yscdmDuyy!=gZ08r1p}-Dtta;2>O?bK+4@` eP2gxLz;?p1-1_Y z;TZX8x!$pplRoKh(oAxTYrruxsW@2oub$o(+;>dp+P%$E1RW5jQqQLv6;Wpg}1+Ueaj z*i{dJydFnDN6V6bmzMSXy_Agjg;*=Y>~c0m7e1eCpkD0!Y9-BWQ1NC>>WZB`eAS&F z9vmWbl+Ixg0O$u>Z&WSr^Haqz#v))=6B8|rUzl-i=um3BjG+7GxdS#PxUllXeTJ{E zR<0L+f9qZFA6(J2Rir$~!>(VaznL%=GPUi=iF~6?HJ&qItm&?CeElHI&Jd3(ntTVI zf(E8FD6pb;O+3`HPpi9EXx~POh %yb9@Hdvj zto@}z4 k=7}5El|3(c4Vk(Z0+C0>6H8OEptU-ij>0>N{c5QL{ z;Ft**_Z)Po&6%E;yOF?b3IDDS^d=p+MoH_+^pXAka-u>;b7pXdcylzPL3BgkeI~R@ ze|pG#c+f7*=bTNoC0Sn&2T(Tb*5e05_$ONpJM#@g+J}9h(runYxOvD%^*JfU3Fx>) zq=zWmwLK+gIsOO3WB$T+?!VDgu6zvZ9V9Q|QVgv&r`Qp=ctJmh4yv!cqO@ps@Js$v z4j3ypz4OWW)`Ty>t8mPGG5@`#gd7?zf8j>?dG2RnaO3LUnmjH5>J&xLso@+vyF{M5 z%!^yWs3z4Z{-)Nuf`kewHm`FQZfoaX5XSxu=F{ )y=Q95>^uNfZKn?`{?)P0VPbLzRn z#a_VOzlU;>teV3$j6dIWe!huRf7AK!Bd*>0?GLiij;! ~?=x7P-&D7u_9S(H zxScOLeh2-~Ic%4S`ZvWDWv?Gxa2v|1b!l)AxE1m~dz5c01PE>@+Ov`P$K PM!d33$V|64XsdVGCJo+@K$!P;D$ z+&&4l053q$zkie92ij09ginX(CI7fKkn^NAwvK}(?;dP^#k>&+hU&sqI%dH2CKm!A zb{y^do8)(fd}Z+19*EO8<5MJal7Duhae}*PC~o1*Whb5yMCY?amsW-{&=-oVCV_|| zRyn7HQ7%Phj5Cv6F5QWp(Y*b&FQ2y{%$qqiR*JJxqc}lauLm5btj`>5$?NWQr+2Jr z(yP=NCvyJ0x<)d(6wIO*{P0_13l2YxbO>uQux>jh@{WXSrcopYHW3aMv41aTA$O%@ zYMeh3jy*Hgk_FO(=){Z+0KNi1js;y|S#fBLJEEO}-{x#5H>f{6Jvvp3qYqo!yXD$N zHX=>8G_KY6hW6b_3i rf#ZBVAFOWpl!d@>gq%n81x?U#qC3nk zZWWpkCD4JW*=-tmEYO|nyTD0h-C^H#(QH?vcfd8`U=M_hp-@QdC`r!4U!ALc*IBuE zcq#=ZbNv=7QH$_16O7_J3r(OgEP^UucMm=*5y|-iLFP0V`-U 2BU_Q~acI;F z1S4{T`4r;*C&+`AwdxoC8cE_oX)nX}S*F9c0x~rCqR3mCb9bdt_`u)8htA~_X-r3d z?v2XD#Z}Pl**=)==YMvtGl{H74u2cb(jCy`X-x7x%sx}8FtF(cg28x@aNRE!T1`Ks z+A#*&+hpGDa~G}-1%G=a`KCL3x`a=YNy7xH$sP5?2yxB%PyHIu^{DGcdf$tW_VZ#0 z%dQJrY{J(>k@ImuIjwklo>WCMA`~cB0}L}# PQ_Y;D8=LH1l;hm6fp7>`n?9>lcar3 U5ALE3-Vw#TAZdqhwoPG~b!kyNUk1E$5hUk#^sU(X z-B6-rwkBJ-8Grh2muv~<{=C`GX@T0RLCH@t+cgBlrnUh476jLqfDaM`ZLlLjdN=LK z7$cV}yR(9cK~n&Q44`#25yyChhWj@0^;iWt^<`w&dz7El@pj||AFF~HyEZoSyp2s9 zqdV=uAml*ZI9hT^;r$ClD3%2P3Uf00ihoiZR~xgTB7dBSa{P4iDn9t*JRbE>Wyf3< zTEPuDK>