From 0cfc3950fd0e2faa348f8c2d3e9c90255016d59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20F=C3=A9lix?= Date: Sun, 1 Sep 2024 19:50:32 +0100 Subject: [PATCH] chore: Remove unused files and configurations --- .devcontainer/configuration.yaml | 210 ----------- .devcontainer/devcontainer.json | 42 --- .devcontainer/ui-lovelace.yaml | 5 - config/.HA_VERSION | 1 - config/.storage/assist_pipeline.pipelines | 22 -- config/.storage/auth | 122 ------- config/.storage/auth_provider.homeassistant | 13 - config/.storage/core.analytics | 10 - config/.storage/core.area_registry | 27 -- config/.storage/core.config | 18 - config/.storage/core.config_entries | 50 --- config/.storage/core.device_registry | 57 --- config/.storage/core.entity_registry | 325 ------------------ config/.storage/core.restore_state | 29 -- config/.storage/core.uuid | 8 - .../.storage/homeassistant.exposed_entities | 24 -- config/.storage/http | 14 - config/.storage/http.auth | 8 - config/.storage/lovelace | 14 - config/.storage/onboarding | 13 - config/.storage/person | 15 - config/.storage/repairs.issue_registry | 8 - config/automations.yaml | 1 - .../homeassistant/motion_light.yaml | 55 --- .../homeassistant/notify_leaving_zone.yaml | 47 --- .../confirmable_notification.yaml | 85 ----- config/configuration.yaml | 11 - config/home-assistant.log | 295 ---------------- config/home-assistant.log.1 | 0 config/home-assistant.log.fault | 0 config/home-assistant_v2.db | Bin 4096 -> 0 bytes config/home-assistant_v2.db-shm | Bin 32768 -> 0 bytes config/home-assistant_v2.db-wal | Bin 510912 -> 0 bytes config/scenes.yaml | 0 config/scripts.yaml | 0 config/secrets.yaml | 4 - package.json | 1 - scripts/develop | 20 -- scripts/lint | 7 - scripts/setup | 7 - 40 files changed, 1568 deletions(-) delete mode 100644 .devcontainer/configuration.yaml delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .devcontainer/ui-lovelace.yaml delete mode 100644 config/.HA_VERSION delete mode 100644 config/.storage/assist_pipeline.pipelines delete mode 100644 config/.storage/auth delete mode 100644 config/.storage/auth_provider.homeassistant delete mode 100644 config/.storage/core.analytics delete mode 100644 config/.storage/core.area_registry delete mode 100644 config/.storage/core.config delete mode 100644 config/.storage/core.config_entries delete mode 100644 config/.storage/core.device_registry delete mode 100644 config/.storage/core.entity_registry delete mode 100644 config/.storage/core.restore_state delete mode 100644 config/.storage/core.uuid delete mode 100644 config/.storage/homeassistant.exposed_entities delete mode 100644 config/.storage/http delete mode 100644 config/.storage/http.auth delete mode 100644 config/.storage/lovelace delete mode 100644 config/.storage/onboarding delete mode 100644 config/.storage/person delete mode 100644 config/.storage/repairs.issue_registry delete mode 100644 config/automations.yaml delete mode 100644 config/blueprints/automation/homeassistant/motion_light.yaml delete mode 100644 config/blueprints/automation/homeassistant/notify_leaving_zone.yaml delete mode 100644 config/blueprints/script/homeassistant/confirmable_notification.yaml delete mode 100644 config/configuration.yaml delete mode 100644 config/home-assistant.log delete mode 100644 config/home-assistant.log.1 delete mode 100644 config/home-assistant.log.fault delete mode 100644 config/home-assistant_v2.db delete mode 100644 config/home-assistant_v2.db-shm delete mode 100644 config/home-assistant_v2.db-wal delete mode 100644 config/scenes.yaml delete mode 100644 config/scripts.yaml delete mode 100644 config/secrets.yaml delete mode 100644 scripts/develop delete mode 100644 scripts/lint delete mode 100644 scripts/setup diff --git a/.devcontainer/configuration.yaml b/.devcontainer/configuration.yaml deleted file mode 100644 index 00636e8..0000000 --- a/.devcontainer/configuration.yaml +++ /dev/null @@ -1,210 +0,0 @@ -default_config: -lovelace: - mode: yaml - resources: - - url: http://127.0.0.1:5000/power-flow-card-plus.js - type: module -demo: - -input_number: - solar_power: - name: Solar Power - min: 0 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - solar_secondary: - name: Solar Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - home_power: - name: Home Power - min: 0 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - home_secondary: - name: Home Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - battery_power: - name: Battery Power - min: -5000 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - battery_secondary: - name: Battery Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - grid_power: - name: Grid Power - min: -5000 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - grid_secondary: - name: Grid Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - fossil_fuel_percentage: - name: Fossil Fuel Percentage - min: 0 - max: 100 - step: 0.01 - mode: box - unit_of_measurement: "%" - fossil_fuel_power: - name: Fossil Fuel Power - min: 0 - max: 5000 - step: 0.01 - mode: box - unit_of_measurement: "W" - individual1_power: - name: Individual 1 Power - min: 0 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - individual1_secondary: - name: Individual 1 Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - individual2_power: - name: Individual 2 Power - min: 0 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - individual2_secondary: - name: Individual 2 Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - individual3_power: - name: Individual 3 Power - min: 0 - max: 5000 - step: 1 - mode: box - unit_of_measurement: "W" - individual3_secondary: - name: Individual 3 Secondary - min: 0 - max: 100 - step: 1 - mode: box - unit_of_measurement: "%" - -homeassistant: - customize: - switch.skylight: - device_class: switch - -switch: - - platform: template - switches: - skylight: - value_template: "{{ states('input_number.test') | int == 255 }}" - turn_on: - service: input_number.set_value - data: - entity_id: input_number.test - value: "255" - turn_off: - service: input_number.set_value - data: - entity_id: input_number.test - value: "0" - -sensor: - - platform: template - sensors: - sensor1: - value_template: "{{ states('input_number.test') }}" - unit_of_measurement: Kb/s - raspi_cpu: - value_template: "{{ ((states('input_number.test') | int) / 255 * 100) | int }}" - unit_of_measurement: "%" - raspi_ram: - value_template: "{{ ((states('input_number.test') | int) / 255 * 100) | int }}" - unit_of_measurement: "%" - raspi_sd: - value_template: "{{ ((states('input_number.test') | int) / 255 * 100) | int }}" - unit_of_measurement: "%" - raspi_temp: - value_template: "{{ ((states('input_number.test') | int) / 255 * 100) | int }}" - unit_of_measurement: "°C" - -binary_sensor: - - platform: template - sensors: - bsensor1: - friendly_name: Binary 1 - value_template: "{{ states('switch.skylight') == 'on' }}" - device_class: door - -light: - - platform: template - lights: - test_light: - friendly_name: "Test Light" - level_template: "{{ states.sensor.sensor1.state | int }}" - value_template: "{{ states.sensor.sensor1.state | int > 0 }}" - turn_on: - service: input_number.set_value - data: - entity_id: input_number.test - value: "255" - turn_off: - service: input_number.set_value - data: - entity_id: input_number.test - value: "0" - set_level: - service: input_number.set_value - data_template: - value: "{{ brightness }}" - -alarm_control_panel: - - platform: manual - name: Home Alarm - code: 1234 - # pending_time: 30 - delay_time: 20 - trigger_time: 4 - disarmed: - trigger_time: 0 - armed_home: - # pending_time: 0 - delay_time: 0 - -timer: - laundry: - duration: "01:00:10" - -stream: diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 127e6ac..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "flixlix/power-flow-card-plus", - "image": "nikolaik/python-nodejs", - "postCreateCommand": "scripts/setup", - "forwardPorts": [ - 8123 - ], - "portsAttributes": { - "8123": { - "label": "Home Assistant", - "onAutoForward": "notify" - } - }, - "customizations": { - "vscode": { - "extensions": [ - "ms-python.python", - "github.vscode-pull-request-github", - "ryanluker.vscode-coverage-gutters", - "ms-python.vscode-pylance" - ], - "settings": { - "files.eol": "\n", - "editor.tabSize": 4, - "python.pythonPath": "/usr/bin/python3", - "python.analysis.autoSearchPaths": false, - "python.linting.pylintEnabled": true, - "python.linting.enabled": true, - "python.formatting.provider": "black", - "python.formatting.blackPath": "/usr/local/py-utils/bin/black", - "editor.formatOnPaste": false, - "editor.formatOnSave": true, - "editor.formatOnType": true, - "files.trimTrailingWhitespace": true - } - } - }, - "remoteUser": "vscode", - "features": { - "ghcr.io/devcontainers/features/rust:1": {} - } -} \ No newline at end of file diff --git a/.devcontainer/ui-lovelace.yaml b/.devcontainer/ui-lovelace.yaml deleted file mode 100644 index ca89e32..0000000 --- a/.devcontainer/ui-lovelace.yaml +++ /dev/null @@ -1,5 +0,0 @@ -views: - - title: Main - cards: - - type: button - entity: switch.skylight \ No newline at end of file diff --git a/config/.HA_VERSION b/config/.HA_VERSION deleted file mode 100644 index a4fb2c1..0000000 --- a/config/.HA_VERSION +++ /dev/null @@ -1 +0,0 @@ -2023.8.0 \ No newline at end of file diff --git a/config/.storage/assist_pipeline.pipelines b/config/.storage/assist_pipeline.pipelines deleted file mode 100644 index 2f3e144..0000000 --- a/config/.storage/assist_pipeline.pipelines +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "assist_pipeline.pipelines", - "data": { - "items": [ - { - "conversation_engine": "homeassistant", - "conversation_language": "de", - "id": "01hk9y6t5qnrs2dkdd7b8y6h0q", - "language": "de", - "name": "Home Assistant", - "stt_engine": null, - "stt_language": null, - "tts_engine": null, - "tts_language": null, - "tts_voice": null - } - ], - "preferred_item": "01hk9y6t5qnrs2dkdd7b8y6h0q" - } -} \ No newline at end of file diff --git a/config/.storage/auth b/config/.storage/auth deleted file mode 100644 index 7f385b3..0000000 --- a/config/.storage/auth +++ /dev/null @@ -1,122 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "auth", - "data": { - "users": [ - { - "id": "24cab0d31ffd4cff8ed6995e6a12ae10", - "group_ids": [ - "system-read-only" - ], - "is_owner": false, - "is_active": true, - "name": "Home Assistant Content", - "system_generated": true, - "local_only": false - }, - { - "id": "4332014890bc4a0695f82506bf9dfac2", - "group_ids": [ - "system-admin" - ], - "is_owner": true, - "is_active": true, - "name": "test", - "system_generated": false, - "local_only": false - } - ], - "groups": [ - { - "id": "system-admin", - "name": "Administrators" - }, - { - "id": "system-users", - "name": "Users" - }, - { - "id": "system-read-only", - "name": "Read Only" - } - ], - "credentials": [ - { - "id": "5f9f859d87af41aa806d40bcbb211541", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "auth_provider_type": "homeassistant", - "auth_provider_id": null, - "data": { - "username": "test" - } - } - ], - "refresh_tokens": [ - { - "id": "d052d99a0f684ad39d1ed345f26d7499", - "user_id": "24cab0d31ffd4cff8ed6995e6a12ae10", - "client_id": null, - "client_name": null, - "client_icon": null, - "token_type": "system", - "created_at": "2024-01-04T09:49:54.562090+00:00", - "access_token_expiration": 1800.0, - "token": "e31a536dae98988d3276ec678287103f5262de162896f1a708a50647b042518d7a89e82e6ed36ee915092f31ef9202a1bf8fdd92e4f865ff390e7407e2bfdce1", - "jwt_key": "268d8a4672764a219c7bbc5c0015b7f07f128c5f0252fa5aa29e6fbf6b29f52780ab2baa59f78b00754a77ec3c69263c3bda6c469c2af061b9d4d8df41ff8cc7", - "last_used_at": null, - "last_used_ip": null, - "credential_id": null, - "version": "2023.8.0" - }, - { - "id": "37f2286e29ee4ad1befb0249921c13a5", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "client_id": "http://localhost:8123/", - "client_name": null, - "client_icon": null, - "token_type": "normal", - "created_at": "2024-01-04T09:50:54.669577+00:00", - "access_token_expiration": 1800.0, - "token": "3d28c0e53a5543e65b522b6f9364c89b4471439adbd126679c3810a8a589f4c21ef6e3f83cb97324a3de01256ee57ce07ce885be3dd437f1558dfa5171fb5cb9", - "jwt_key": "07d08b02602242fd3c1d6af1a39865028f44112eaf6d8870e3fc36569e7762116e5fdda7dae8c2776a58a15e89c20c004489f9ee0795da459e6779e4d0f350bf", - "last_used_at": "2024-01-04T09:50:54.670126+00:00", - "last_used_ip": "127.0.0.1", - "credential_id": "5f9f859d87af41aa806d40bcbb211541", - "version": "2023.8.0" - }, - { - "id": "12767b361ea94c4caecfb2e6155b55dc", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "client_id": "http://localhost:8123/", - "client_name": null, - "client_icon": null, - "token_type": "normal", - "created_at": "2024-01-04T09:51:16.891109+00:00", - "access_token_expiration": 1800.0, - "token": "06feefa3d4dbcf63964405a6374d02cf0b76a42741c2a5933cf559f75a2b76be5cb130536d45d69367b96ba1e94df8adde699cf12db47e67037065be1e2ea273", - "jwt_key": "60b6aa3f49c77cded0081aa4a53106c5b3d07b0cc01c5573705238056458d09651e0c4a0369189f08181c4ba86a5ca6c09225e4351de9a228d895e7eecaef63a", - "last_used_at": "2024-01-04T09:51:16.891691+00:00", - "last_used_ip": "127.0.0.1", - "credential_id": "5f9f859d87af41aa806d40bcbb211541", - "version": "2023.8.0" - }, - { - "id": "2024d07915ca4fb1a0fc26cf7f9d9c6f", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "client_id": "http://localhost:8123/", - "client_name": null, - "client_icon": null, - "token_type": "normal", - "created_at": "2024-01-04T09:52:26.816463+00:00", - "access_token_expiration": 1800.0, - "token": "68cddfde5e5ca75090a636bec396b484fb70faf1d476236ed6a42003b522a1db538d9ac6a479e947d9aece82677d3af218d353284fd53f4c50c8071b4d02b448", - "jwt_key": "0e1812da44035cd15cd62b802f1dfdbd66193d7942ab09aabe250b05c63d06bad9669766031eea294560c366c2ad7183f1846bf325fea16df981893a245956ef", - "last_used_at": "2024-01-04T09:52:26.818466+00:00", - "last_used_ip": "127.0.0.1", - "credential_id": "5f9f859d87af41aa806d40bcbb211541", - "version": "2023.8.0" - } - ] - } -} \ No newline at end of file diff --git a/config/.storage/auth_provider.homeassistant b/config/.storage/auth_provider.homeassistant deleted file mode 100644 index 4493ca8..0000000 --- a/config/.storage/auth_provider.homeassistant +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "auth_provider.homeassistant", - "data": { - "users": [ - { - "username": "test", - "password": "JDJiJDEyJHBtUVM0OS5HclVkd004MG9QZ0o4ZWVQLkJLQ3BGbmFmVFhhOEVoOGhmVDZsV3BMN29sN1RT" - } - ] - } -} \ No newline at end of file diff --git a/config/.storage/core.analytics b/config/.storage/core.analytics deleted file mode 100644 index 300a035..0000000 --- a/config/.storage/core.analytics +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "core.analytics", - "data": { - "onboarded": true, - "preferences": {}, - "uuid": null - } -} \ No newline at end of file diff --git a/config/.storage/core.area_registry b/config/.storage/core.area_registry deleted file mode 100644 index 5ade4a8..0000000 --- a/config/.storage/core.area_registry +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": 1, - "minor_version": 3, - "key": "core.area_registry", - "data": { - "areas": [ - { - "aliases": [], - "name": "Wohnzimmer", - "id": "wohnzimmer", - "picture": null - }, - { - "aliases": [], - "name": "Küche", - "id": "kuche", - "picture": null - }, - { - "aliases": [], - "name": "Schlafzimmer", - "id": "schlafzimmer", - "picture": null - } - ] - } -} \ No newline at end of file diff --git a/config/.storage/core.config b/config/.storage/core.config deleted file mode 100644 index 9b2add1..0000000 --- a/config/.storage/core.config +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": 1, - "minor_version": 3, - "key": "core.config", - "data": { - "latitude": 52.3769091109999, - "longitude": 4.896898119902229, - "elevation": 0, - "unit_system_v2": "metric", - "location_name": "Home", - "time_zone": "Europe/Berlin", - "external_url": null, - "internal_url": null, - "currency": "EUR", - "country": "DE", - "language": "de" - } -} \ No newline at end of file diff --git a/config/.storage/core.config_entries b/config/.storage/core.config_entries deleted file mode 100644 index 1b63e00..0000000 --- a/config/.storage/core.config_entries +++ /dev/null @@ -1,50 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "core.config_entries", - "data": { - "entries": [ - { - "entry_id": "adad8618444249dc30da8bcab2ab2e1d", - "version": 1, - "domain": "radio_browser", - "title": "Radio Browser", - "data": {}, - "options": {}, - "pref_disable_new_entities": false, - "pref_disable_polling": false, - "source": "onboarding", - "unique_id": null, - "disabled_by": null - }, - { - "entry_id": "68b9654fad0b8c7ab1451271a3e5ec33", - "version": 1, - "domain": "met", - "title": "Home", - "data": { - "track_home": true - }, - "options": {}, - "pref_disable_new_entities": false, - "pref_disable_polling": false, - "source": "onboarding", - "unique_id": null, - "disabled_by": null - }, - { - "entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "version": 1, - "domain": "sun", - "title": "Sun", - "data": {}, - "options": {}, - "pref_disable_new_entities": false, - "pref_disable_polling": false, - "source": "import", - "unique_id": null, - "disabled_by": null - } - ] - } -} \ No newline at end of file diff --git a/config/.storage/core.device_registry b/config/.storage/core.device_registry deleted file mode 100644 index f949b6f..0000000 --- a/config/.storage/core.device_registry +++ /dev/null @@ -1,57 +0,0 @@ -{ - "version": 1, - "minor_version": 3, - "key": "core.device_registry", - "data": { - "devices": [ - { - "area_id": null, - "config_entries": [ - "68b9654fad0b8c7ab1451271a3e5ec33" - ], - "configuration_url": "https://www.met.no/en", - "connections": [], - "disabled_by": null, - "entry_type": "service", - "hw_version": null, - "id": "a81fdade5e278d57f71ef20fba76ef93", - "identifiers": [ - [ - "met" - ] - ], - "manufacturer": "Met.no", - "model": "Forecast", - "name_by_user": null, - "name": "Forecast", - "sw_version": null, - "via_device_id": null - }, - { - "area_id": null, - "config_entries": [ - "6d4b1a78cd50589fc2fdd3113437be9d" - ], - "configuration_url": null, - "connections": [], - "disabled_by": null, - "entry_type": "service", - "hw_version": null, - "id": "2597bc884eff2c0b868d056a84738bb0", - "identifiers": [ - [ - "sun", - "6d4b1a78cd50589fc2fdd3113437be9d" - ] - ], - "manufacturer": null, - "model": null, - "name_by_user": null, - "name": "Sun", - "sw_version": null, - "via_device_id": null - } - ], - "deleted_devices": [] - } -} \ No newline at end of file diff --git a/config/.storage/core.entity_registry b/config/.storage/core.entity_registry deleted file mode 100644 index a6d6f64..0000000 --- a/config/.storage/core.entity_registry +++ /dev/null @@ -1,325 +0,0 @@ -{ - "version": 1, - "minor_version": 11, - "key": "core.entity_registry", - "data": { - "entities": [ - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": null, - "device_class": null, - "device_id": null, - "disabled_by": null, - "entity_category": null, - "entity_id": "person.test", - "hidden_by": null, - "icon": null, - "id": "7d7a5b17f5c37bcc3a4fde84d3de54a3", - "has_entity_name": false, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": null, - "original_icon": null, - "original_name": "test", - "platform": "person", - "supported_features": 0, - "translation_key": null, - "unique_id": "test", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "68b9654fad0b8c7ab1451271a3e5ec33", - "device_class": null, - "device_id": "a81fdade5e278d57f71ef20fba76ef93", - "disabled_by": null, - "entity_category": null, - "entity_id": "weather.forecast_home", - "hidden_by": null, - "icon": null, - "id": "d6a34c6b6b757b3d00cbe562fbd0ca13", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": null, - "original_icon": null, - "original_name": "Home", - "platform": "met", - "supported_features": 0, - "translation_key": null, - "unique_id": "home", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "68b9654fad0b8c7ab1451271a3e5ec33", - "device_class": null, - "device_id": "a81fdade5e278d57f71ef20fba76ef93", - "disabled_by": "integration", - "entity_category": null, - "entity_id": "weather.forecast_home_hourly", - "hidden_by": null, - "icon": null, - "id": "29361ce95d4152999d33c55dd29d42af", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": null, - "original_icon": null, - "original_name": "Home hourly", - "platform": "met", - "supported_features": 0, - "translation_key": null, - "unique_id": "home-hourly", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_dawn", - "hidden_by": null, - "icon": null, - "id": "87b4ff0da8014fdda689cdb6609c11db", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächste Morgendämmerung", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_dawn", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_dawn", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_dusk", - "hidden_by": null, - "icon": null, - "id": "c76b5c1ee7955dfc5ab8aa98e1710c98", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächste Abenddämmerung", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_dusk", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_dusk", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_midnight", - "hidden_by": null, - "icon": null, - "id": "c6fab570bbdf8c29cb47ac2d3f9902fd", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächste Mitternacht", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_midnight", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_midnight", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_noon", - "hidden_by": null, - "icon": null, - "id": "560ca465c6d87c5d7f0d38e6d4a2bd7f", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächsten Mittag", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_noon", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_noon", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_rising", - "hidden_by": null, - "icon": null, - "id": "f3e07c523038aadc40738785dbf24294", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächster Sonnenaufgang", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_rising", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_rising", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": null, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": null, - "entity_category": "diagnostic", - "entity_id": "sensor.sun_next_setting", - "hidden_by": null, - "icon": null, - "id": "fe5d65c999dfe6f471abd63112607ab3", - "has_entity_name": true, - "name": null, - "options": { - "conversation": { - "should_expose": false - } - }, - "original_device_class": "timestamp", - "original_icon": "mdi:sun-clock", - "original_name": "Nächster Sonnenuntergang", - "platform": "sun", - "supported_features": 0, - "translation_key": "next_setting", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-next_setting", - "unit_of_measurement": null - }, - { - "aliases": [], - "area_id": null, - "capabilities": { - "state_class": "measurement" - }, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": "integration", - "entity_category": "diagnostic", - "entity_id": "sensor.sun_solar_elevation", - "hidden_by": null, - "icon": null, - "id": "375fdc1e084b232e172191738f0833e2", - "has_entity_name": true, - "name": null, - "options": {}, - "original_device_class": null, - "original_icon": "mdi:theme-light-dark", - "original_name": "Sonnenhöhe", - "platform": "sun", - "supported_features": 0, - "translation_key": "solar_elevation", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-solar_elevation", - "unit_of_measurement": "°" - }, - { - "aliases": [], - "area_id": null, - "capabilities": { - "state_class": "measurement" - }, - "config_entry_id": "6d4b1a78cd50589fc2fdd3113437be9d", - "device_class": null, - "device_id": "2597bc884eff2c0b868d056a84738bb0", - "disabled_by": "integration", - "entity_category": "diagnostic", - "entity_id": "sensor.sun_solar_azimuth", - "hidden_by": null, - "icon": null, - "id": "71812c2d7a31ec1a366eb1ec1632ae2d", - "has_entity_name": true, - "name": null, - "options": {}, - "original_device_class": null, - "original_icon": "mdi:sun-angle", - "original_name": "Azimut", - "platform": "sun", - "supported_features": 0, - "translation_key": "solar_azimuth", - "unique_id": "6d4b1a78cd50589fc2fdd3113437be9d-solar_azimuth", - "unit_of_measurement": "°" - } - ], - "deleted_entities": [] - } -} \ No newline at end of file diff --git a/config/.storage/core.restore_state b/config/.storage/core.restore_state deleted file mode 100644 index cd1e91a..0000000 --- a/config/.storage/core.restore_state +++ /dev/null @@ -1,29 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "core.restore_state", - "data": [ - { - "state": { - "entity_id": "person.test", - "state": "unknown", - "attributes": { - "editable": true, - "id": "test", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "device_trackers": [], - "friendly_name": "test" - }, - "last_changed": "2024-01-04T09:50:54.519129+00:00", - "last_updated": "2024-01-04T09:50:54.519129+00:00", - "context": { - "id": "01HK9Y41HQJH1TFGKW53GSZ11N", - "parent_id": null, - "user_id": null - } - }, - "extra_data": null, - "last_seen": "2024-01-04T09:52:40.019607+00:00" - } - ] -} \ No newline at end of file diff --git a/config/.storage/core.uuid b/config/.storage/core.uuid deleted file mode 100644 index a58dd83..0000000 --- a/config/.storage/core.uuid +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "core.uuid", - "data": { - "uuid": "f651f0fb558a4765a9bb36ed96bffe52" - } -} \ No newline at end of file diff --git a/config/.storage/homeassistant.exposed_entities b/config/.storage/homeassistant.exposed_entities deleted file mode 100644 index 3efd43b..0000000 --- a/config/.storage/homeassistant.exposed_entities +++ /dev/null @@ -1,24 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "homeassistant.exposed_entities", - "data": { - "assistants": {}, - "exposed_entities": { - "zone.home": { - "assistants": { - "conversation": { - "should_expose": false - } - } - }, - "sun.sun": { - "assistants": { - "conversation": { - "should_expose": false - } - } - } - } - } -} \ No newline at end of file diff --git a/config/.storage/http b/config/.storage/http deleted file mode 100644 index 50bed72..0000000 --- a/config/.storage/http +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "http", - "data": { - "server_port": 8123, - "ssl_profile": "modern", - "cors_allowed_origins": [ - "https://cast.home-assistant.io" - ], - "login_attempts_threshold": -1, - "ip_ban_enabled": true - } -} \ No newline at end of file diff --git a/config/.storage/http.auth b/config/.storage/http.auth deleted file mode 100644 index a3c50fd..0000000 --- a/config/.storage/http.auth +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "http.auth", - "data": { - "content_user": "24cab0d31ffd4cff8ed6995e6a12ae10" - } -} \ No newline at end of file diff --git a/config/.storage/lovelace b/config/.storage/lovelace deleted file mode 100644 index 7464a72..0000000 --- a/config/.storage/lovelace +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": 1, - "minor_version": 1, - "key": "lovelace", - "data": { - "config": { - "views": [ - { - "title": "Home" - } - ] - } - } -} \ No newline at end of file diff --git a/config/.storage/onboarding b/config/.storage/onboarding deleted file mode 100644 index 663b719..0000000 --- a/config/.storage/onboarding +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": 4, - "minor_version": 1, - "key": "onboarding", - "data": { - "done": [ - "user", - "core_config", - "analytics", - "integration" - ] - } -} \ No newline at end of file diff --git a/config/.storage/person b/config/.storage/person deleted file mode 100644 index 44cb78c..0000000 --- a/config/.storage/person +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": 2, - "minor_version": 1, - "key": "person", - "data": { - "items": [ - { - "id": "test", - "name": "test", - "user_id": "4332014890bc4a0695f82506bf9dfac2", - "device_trackers": [] - } - ] - } -} \ No newline at end of file diff --git a/config/.storage/repairs.issue_registry b/config/.storage/repairs.issue_registry deleted file mode 100644 index 3a93366..0000000 --- a/config/.storage/repairs.issue_registry +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 1, - "minor_version": 2, - "key": "repairs.issue_registry", - "data": { - "issues": [] - } -} \ No newline at end of file diff --git a/config/automations.yaml b/config/automations.yaml deleted file mode 100644 index 0637a08..0000000 --- a/config/automations.yaml +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/config/blueprints/automation/homeassistant/motion_light.yaml b/config/blueprints/automation/homeassistant/motion_light.yaml deleted file mode 100644 index 5b389a3..0000000 --- a/config/blueprints/automation/homeassistant/motion_light.yaml +++ /dev/null @@ -1,55 +0,0 @@ -blueprint: - name: Motion-activated Light - description: Turn on a light when motion is detected. - domain: automation - source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml - author: Home Assistant - input: - motion_entity: - name: Motion Sensor - selector: - entity: - domain: binary_sensor - device_class: motion - light_target: - name: Light - selector: - target: - entity: - domain: light - no_motion_wait: - name: Wait time - description: Time to leave the light on after last motion is detected. - default: 120 - selector: - number: - min: 0 - max: 3600 - unit_of_measurement: seconds - -# If motion is detected within the delay, -# we restart the script. -mode: restart -max_exceeded: silent - -trigger: - platform: state - entity_id: !input motion_entity - from: "off" - to: "on" - -action: - - alias: "Turn on the light" - service: light.turn_on - target: !input light_target - - alias: "Wait until there is no motion from device" - wait_for_trigger: - platform: state - entity_id: !input motion_entity - from: "on" - to: "off" - - alias: "Wait the number of seconds that has been set" - delay: !input no_motion_wait - - alias: "Turn off the light" - service: light.turn_off - target: !input light_target diff --git a/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml b/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml deleted file mode 100644 index 0798a05..0000000 --- a/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml +++ /dev/null @@ -1,47 +0,0 @@ -blueprint: - name: Zone Notification - description: Send a notification to a device when a person leaves a specific zone. - domain: automation - source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml - author: Home Assistant - input: - person_entity: - name: Person - selector: - entity: - domain: person - zone_entity: - name: Zone - selector: - entity: - domain: zone - notify_device: - name: Device to notify - description: Device needs to run the official Home Assistant app to receive notifications. - selector: - device: - integration: mobile_app - -trigger: - platform: state - entity_id: !input person_entity - -variables: - zone_entity: !input zone_entity - # This is the state of the person when it's in this zone. - zone_state: "{{ states[zone_entity].name }}" - person_entity: !input person_entity - person_name: "{{ states[person_entity].name }}" - -condition: - condition: template - # The first case handles leaving the Home zone which has a special state when zoning called 'home'. - # The second case handles leaving all other zones. - value_template: "{{ zone_entity == 'zone.home' and trigger.from_state.state == 'home' and trigger.to_state.state != 'home' or trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}" - -action: - - alias: "Notify that a person has left the zone" - domain: mobile_app - type: notify - device_id: !input notify_device - message: "{{ person_name }} has left {{ zone_state }}" diff --git a/config/blueprints/script/homeassistant/confirmable_notification.yaml b/config/blueprints/script/homeassistant/confirmable_notification.yaml deleted file mode 100644 index 37e0435..0000000 --- a/config/blueprints/script/homeassistant/confirmable_notification.yaml +++ /dev/null @@ -1,85 +0,0 @@ -blueprint: - name: Confirmable Notification - description: >- - A script that sends an actionable notification with a confirmation before - running the specified action. - domain: script - source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml - author: Home Assistant - input: - notify_device: - name: Device to notify - description: Device needs to run the official Home Assistant app to receive notifications. - selector: - device: - integration: mobile_app - title: - name: "Title" - description: "The title of the button shown in the notification." - default: "" - selector: - text: - message: - name: "Message" - description: "The message body" - selector: - text: - confirm_text: - name: "Confirmation Text" - description: "Text to show on the confirmation button" - default: "Confirm" - selector: - text: - confirm_action: - name: "Confirmation Action" - description: "Action to run when notification is confirmed" - default: [] - selector: - action: - dismiss_text: - name: "Dismiss Text" - description: "Text to show on the dismiss button" - default: "Dismiss" - selector: - text: - dismiss_action: - name: "Dismiss Action" - description: "Action to run when notification is dismissed" - default: [] - selector: - action: - -mode: restart - -sequence: - - alias: "Set up variables" - variables: - action_confirm: "{{ 'CONFIRM_' ~ context.id }}" - action_dismiss: "{{ 'DISMISS_' ~ context.id }}" - - alias: "Send notification" - domain: mobile_app - type: notify - device_id: !input notify_device - title: !input title - message: !input message - data: - actions: - - action: "{{ action_confirm }}" - title: !input confirm_text - - action: "{{ action_dismiss }}" - title: !input dismiss_text - - alias: "Awaiting response" - wait_for_trigger: - - platform: event - event_type: mobile_app_notification_action - event_data: - action: "{{ action_confirm }}" - - platform: event - event_type: mobile_app_notification_action - event_data: - action: "{{ action_dismiss }}" - - choose: - - conditions: "{{ wait.trigger.event.data.action == action_confirm }}" - sequence: !input confirm_action - - conditions: "{{ wait.trigger.event.data.action == action_dismiss }}" - sequence: !input dismiss_action diff --git a/config/configuration.yaml b/config/configuration.yaml deleted file mode 100644 index 2bf923b..0000000 --- a/config/configuration.yaml +++ /dev/null @@ -1,11 +0,0 @@ - -# Loads default set of integrations. Do not remove. -default_config: - -# Load frontend themes from the themes folder -frontend: - themes: !include_dir_merge_named themes - -automation: !include automations.yaml -script: !include scripts.yaml -scene: !include scenes.yaml diff --git a/config/home-assistant.log b/config/home-assistant.log deleted file mode 100644 index 7b312a5..0000000 --- a/config/home-assistant.log +++ /dev/null @@ -1,295 +0,0 @@ -2024-01-04 09:50:08.187 WARNING (MainThread) [asyncio] Executing wait_for= cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.713 seconds -2024-01-04 09:50:38.780 WARNING (MainThread) [asyncio] Executing cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.109 seconds -2024-01-04 09:51:27.167 WARNING (MainThread) [asyncio] Executing wait_for= cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.151 seconds -2024-01-04 09:51:55.391 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration google_translate: No module named 'mutagen' -2024-01-04 09:51:55.395 ERROR (MainThread) [aiohttp.server] Error handling request -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/config_entries.py", line 2037, in _load_integration - integration.get_platform("config_flow") - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 833, in get_platform - cache[full_name] = self._import_platform(platform_name) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 850, in _import_platform - return importlib.import_module(f"{self.pkg_path}.{platform_name}") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1147, in _find_and_load_unlocked - File "", line 690, in _load_unlocked - File "", line 940, in exec_module - File "", line 241, in _call_with_frames_removed - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/google_translate/config_flow.py", line 9, in - from homeassistant.components.tts import CONF_LANG - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/tts/__init__.py", line 19, in - import mutagen -ModuleNotFoundError: No module named 'mutagen' - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request - resp = await request_handler(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle - resp = await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/request_context.py", line 28, in request_context_middleware - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/ban.py", line 80, in ban_middleware - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/auth.py", line 236, in auth_middleware - return await handler(request) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/http/view.py", line 148, in handle - result = await handler(request, **request.match_info) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/onboarding/views.py", line 208, in post - await asyncio.gather( - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/config_entries.py", line 847, in async_init - flow, result = await task - ^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/config_entries.py", line 865, in _async_init - flow = await self.async_create_flow(handler, context=context, data=data) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/config_entries.py", line 967, in async_create_flow - await _load_integration(self.hass, handler_key, self._hass_config) - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/config_entries.py", line 2044, in _load_integration - raise data_entry_flow.UnknownHandler -homeassistant.data_entry_flow.UnknownHandler -2024-01-04 09:52:24.320 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing component homeassistant.components.cloud -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 813, in get_component - ComponentProtocol, importlib.import_module(self.pkg_path) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1147, in _find_and_load_unlocked - File "", line 690, in _load_unlocked - File "", line 940, in exec_module - File "", line 241, in _call_with_frames_removed - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/cloud/__init__.py", line 9, in - from hass_nabucasa import Cloud - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/__init__.py", line 15, in - from .auth import CloudError, CognitoAuth - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/auth.py", line 11, in - import boto3 - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/__init__.py", line 17, in - from boto3.session import Session - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/session.py", line 17, in - import botocore.session - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/session.py", line 26, in - import botocore.client - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/client.py", line 15, in - from botocore import waiter, xform_name - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/waiter.py", line 18, in - from botocore.docs.docstring import WaiterDocstring - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/__init__.py", line 15, in - from botocore.docs.service import ServiceDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/service.py", line 14, in - from botocore.docs.client import ( - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/client.py", line 18, in - from botocore.docs.example import ResponseExampleDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/example.py", line 13, in - from botocore.docs.shape import ShapeDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/shape.py", line 19, in - from botocore.utils import is_json_value_header - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/utils.py", line 39, in - import botocore.httpsession - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/httpsession.py", line 45, in - from urllib3.contrib.pyopenssl import ( - File "/home/vscode/.local/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 97, in - util.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, - ^^^^^^^^^^^^^^^^^ -AttributeError: module 'urllib3.util' has no attribute 'PROTOCOL_TLS' -2024-01-04 09:52:24.328 ERROR (MainThread) [homeassistant.setup] Setup failed for cloud: Unable to import component: Exception importing homeassistant.components.cloud -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 813, in get_component - ComponentProtocol, importlib.import_module(self.pkg_path) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1147, in _find_and_load_unlocked - File "", line 690, in _load_unlocked - File "", line 940, in exec_module - File "", line 241, in _call_with_frames_removed - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/cloud/__init__.py", line 9, in - from hass_nabucasa import Cloud - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/__init__.py", line 15, in - from .auth import CloudError, CognitoAuth - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/auth.py", line 11, in - import boto3 - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/__init__.py", line 17, in - from boto3.session import Session - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/session.py", line 17, in - import botocore.session - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/session.py", line 26, in - import botocore.client - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/client.py", line 15, in - from botocore import waiter, xform_name - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/waiter.py", line 18, in - from botocore.docs.docstring import WaiterDocstring - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/__init__.py", line 15, in - from botocore.docs.service import ServiceDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/service.py", line 14, in - from botocore.docs.client import ( - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/client.py", line 18, in - from botocore.docs.example import ResponseExampleDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/example.py", line 13, in - from botocore.docs.shape import ShapeDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/shape.py", line 19, in - from botocore.utils import is_json_value_header - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/utils.py", line 39, in - import botocore.httpsession - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/httpsession.py", line 45, in - from urllib3.contrib.pyopenssl import ( - File "/home/vscode/.local/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 97, in - util.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, - ^^^^^^^^^^^^^^^^^ -AttributeError: module 'urllib3.util' has no attribute 'PROTOCOL_TLS' - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/setup.py", line 215, in _async_setup_component - component = integration.get_component() - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 821, in get_component - raise ImportError(f"Exception importing {self.pkg_path}") from err -ImportError: Exception importing homeassistant.components.cloud -2024-01-04 09:52:24.464 WARNING (MainThread) [asyncio] Executing cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.111 seconds -2024-01-04 09:52:24.738 WARNING (MainThread) [asyncio] Executing wait_for=._call_check_cancel() at /usr/local/lib/python3.11/asyncio/futures.py:387, <1 more>, Task.task_wakeup()] created at /usr/local/lib/python3.11/asyncio/base_events.py:427> cb=[set.remove(), Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.125 seconds -2024-01-04 09:52:24.866 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: zone, scene, hardware, tag, timer, schedule, input_button, input_boolean, tts, counter, input_text, input_datetime, sun, input_select, input_number -2024-01-04 09:52:37.411 WARNING (MainThread) [asyncio] Executing cb=[set.remove(), <1 more>, Task.task_wakeup()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:558> took 0.369 seconds -2024-01-04 09:52:39.992 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing component homeassistant.components.mobile_app -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 813, in get_component - ComponentProtocol, importlib.import_module(self.pkg_path) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1147, in _find_and_load_unlocked - File "", line 690, in _load_unlocked - File "", line 940, in exec_module - File "", line 241, in _call_with_frames_removed - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/mobile_app/__init__.py", line 5, in - from homeassistant.components import cloud, notify as hass_notify - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/cloud/__init__.py", line 9, in - from hass_nabucasa import Cloud - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/__init__.py", line 15, in - from .auth import CloudError, CognitoAuth - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/auth.py", line 11, in - import boto3 - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/__init__.py", line 17, in - from boto3.session import Session - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/session.py", line 17, in - import botocore.session - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/session.py", line 26, in - import botocore.client - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/client.py", line 15, in - from botocore import waiter, xform_name - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/waiter.py", line 18, in - from botocore.docs.docstring import WaiterDocstring - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/__init__.py", line 15, in - from botocore.docs.service import ServiceDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/service.py", line 14, in - from botocore.docs.client import ( - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/client.py", line 18, in - from botocore.docs.example import ResponseExampleDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/example.py", line 13, in - from botocore.docs.shape import ShapeDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/shape.py", line 19, in - from botocore.utils import is_json_value_header - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/utils.py", line 39, in - import botocore.httpsession - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/httpsession.py", line 45, in - from urllib3.contrib.pyopenssl import ( - File "/home/vscode/.local/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 97, in - util.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, - ^^^^^^^^^^^^^^^^^ -AttributeError: module 'urllib3.util' has no attribute 'PROTOCOL_TLS' -2024-01-04 09:52:39.997 ERROR (MainThread) [homeassistant.setup] Setup failed for mobile_app: Unable to import component: Exception importing homeassistant.components.mobile_app -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 813, in get_component - ComponentProtocol, importlib.import_module(self.pkg_path) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1147, in _find_and_load_unlocked - File "", line 690, in _load_unlocked - File "", line 940, in exec_module - File "", line 241, in _call_with_frames_removed - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/mobile_app/__init__.py", line 5, in - from homeassistant.components import cloud, notify as hass_notify - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/cloud/__init__.py", line 9, in - from hass_nabucasa import Cloud - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/__init__.py", line 15, in - from .auth import CloudError, CognitoAuth - File "/home/vscode/.local/lib/python3.11/site-packages/hass_nabucasa/auth.py", line 11, in - import boto3 - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/__init__.py", line 17, in - from boto3.session import Session - File "/home/vscode/.local/lib/python3.11/site-packages/boto3/session.py", line 17, in - import botocore.session - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/session.py", line 26, in - import botocore.client - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/client.py", line 15, in - from botocore import waiter, xform_name - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/waiter.py", line 18, in - from botocore.docs.docstring import WaiterDocstring - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/__init__.py", line 15, in - from botocore.docs.service import ServiceDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/service.py", line 14, in - from botocore.docs.client import ( - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/client.py", line 18, in - from botocore.docs.example import ResponseExampleDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/example.py", line 13, in - from botocore.docs.shape import ShapeDocumenter - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/docs/shape.py", line 19, in - from botocore.utils import is_json_value_header - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/utils.py", line 39, in - import botocore.httpsession - File "/home/vscode/.local/lib/python3.11/site-packages/botocore/httpsession.py", line 45, in - from urllib3.contrib.pyopenssl import ( - File "/home/vscode/.local/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 97, in - util.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, - ^^^^^^^^^^^^^^^^^ -AttributeError: module 'urllib3.util' has no attribute 'PROTOCOL_TLS' - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/setup.py", line 215, in _async_setup_component - component = integration.get_component() - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/home/vscode/.local/lib/python3.11/site-packages/homeassistant/loader.py", line 821, in get_component - raise ImportError(f"Exception importing {self.pkg_path}") from err -ImportError: Exception importing homeassistant.components.mobile_app -2024-01-04 09:52:40.004 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of default_config. Setup failed for dependencies: cloud, mobile_app -2024-01-04 09:52:40.005 ERROR (MainThread) [homeassistant.setup] Setup failed for default_config: (DependencyError(...), 'Could not setup dependencies: cloud, mobile_app') -2024-01-04 09:52:40.371 WARNING (MainThread) [asyncio] Executing .initial_refresh() running at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/components/homeassistant_alerts/__init__.py:104> wait_for= cb=[set.remove()] created at /home/vscode/.local/lib/python3.11/site-packages/homeassistant/core.py:522> took 0.124 seconds diff --git a/config/home-assistant.log.1 b/config/home-assistant.log.1 deleted file mode 100644 index e69de29..0000000 diff --git a/config/home-assistant.log.fault b/config/home-assistant.log.fault deleted file mode 100644 index e69de29..0000000 diff --git a/config/home-assistant_v2.db b/config/home-assistant_v2.db deleted file mode 100644 index 0c7d3a91558e953239be15617f344a7779f7c20e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYF`T$P3agK(-m98b?E5 nGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nC=3ArG@J(Q diff --git a/config/home-assistant_v2.db-shm b/config/home-assistant_v2.db-shm deleted file mode 100644 index 29ffac42b785d484c313b0819ad84adddf432225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI**-{fh6b9fQ1cU@3ib4z+R>2MTHMrsi;;y*wyD09cs4v02kKk+g3RZdRm3LmL zm)gfVu^OtVsZcYMnVx^DhSOnsy3hYrt~=Rp{gA8I+!a9PgQ0fr`6QcUkqpwi^enyhn0vXo z<@+Ju3wzy}YsfsAQ|zg@|IB$ZhZhAXKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP{4J8Rk-PTM4$3inDY#(&DjWbNSo6W8qLWFP3AO&7IP9pt2zCk9i8YlryulTCHk=* zo3Ir-uoHVQh=Uly2+sJ_2bb|rV6}fsIlfXQ&N`kjdGXd@EjC~?wxNJs*o*x*gkc;_ z9)xG&DvaWh=PXW$lfXLMic`B~?6n5x@EEVl*a5fpTVNw@`@N*2>($~s#_`6{bjggh z1$UAeyyVm=TqyY+z7TDJ?YJB51|!p5JuXJ37dGOLzyR*~vyk(vG~kl+8Iu-pchUmS zId2A+=lm{TjHbZ8Xtou>uH+nUUTz5-a4SxLY2>7PUTz5-b}LSRX_|2=z}2~QIRuWB zW7AmfnZ@Z?_RXee7dSTiBR-iXki+q5pZOvF0{7z|A*2LtIDuCo?Zs`v5qN+X;cOK9 zUGg{y`RzSk?g%_|CrZFcI&dZ69k_hh0%Ldy`IS;$UIJaXiYIvMHI2_H;GjScuHh*r j9ZbeZ6z~%0#dSQxJFjVcP5}o6R^SGnplp!;e^QNnNc~{$h)=loD7mS_ASO2dKL*HAu+tg%4?jo%2_OL^ zfCP{L5!_uC{$q)5sC(v*IHI>x6iaYy%w9*Yn6_IvWs)GN^(sl zSwjkPO_JUerPYv<7KhE0S6GreEVtNHSX5#vEG;OAHfc3gR!@~_NZv5WBci9u>bBds zwoN6u<2l`^;=GYr#S={Vxf4uL{E_i=P z00|%gB!C2v01`j~NB{{S0VIF~{>=nr_5#WGP3~KkR2tfXy?~MeM&=bR*nWBOphULfqg<15Ni z&S89kf5mqZZxRV00VIF~kN^@u0!RP}AOR$R1dxDyKZ4cmgUpZRI=i7Ee(0)A;>-ssX?2#POrtPiXx`Pcgw`K6Z3XfNZ@k0cAf$OR#M;N2G z{0HL;{6$|yJPi^+0!RP}AOR$R1dsp{Kmter2_S+0Edg14fnhnjKL5Xyv$wTiFAz#y zGMQJn3UD&ujMt%AqpP`M_M_J}=d6&V9b=?dnNAPt*I=%bEm7dbAhF&z)e3lB^j1 z&G7}u7(Z077uf6E`;g&-FZOU72jYGNmtlW|my86E01`j~NB{{S0VIF~kN^@u0!ZMZ z2*~UOc1*UWtzYq#y#;##6?FzOuW-rs0-^f&YCs;~huiUxz=G#|Ja&uu~LHFJQs=0yFJSuf=Bd zTE)kOH%1^T;X!GmP=!TAC>s7|@dd~jUnSTJ?CSr)(TZp0K85iGF1;hdnn(Z%AOR$R z1dsp{Kmter2_OL^fCMfh0y2Anx;<+PeN%jiE!YdFsrw`I3YTmzpwcJF>;*u?4-!BE zNB{{S0VIF~kN^@u0+#`ShIT4`2YP_^X+AujZ!EVsDout8}1 zlH6gr#iqid5>sJmK>^ui9u{96-a6u5FKj=bkeu9j|9PqzaGFPZ0gNvoJU`s>J+WdC zAE1<^#?KGN7cfJ2L&o@O!CoL@+Qa=8D;ganI)VgN_>;*u9A0&VTkN^@u0!RP} zAOR$R1TK`oEH(Jk!zT2dW&ZU1qP#_1ai^B>HO=fnPZg2si5~UBD!`r_EwM2ZLfjlbVe?)LMX`{ z&pjlv{=*;J13D4tY{?j3E7%MC_l4;@Qdih)7+>K0KSP*{1dsp{Kmter2_OL^fCP{L z59Rm_0lyh*bC^WdnfY>muxSf)pl#bUI3K%K>|ns2_OL^fCP{L z68IYtXlSKXh2{5CG^El#?9`gOgv=<;_e4St~@P3z(C%V2m-l#^AGTaq_2SGK!*q}^$Y6tjp!X?eBF0}DhBCtL@d#4C8K%c_;T?N+bd zCRUVX%G^)+%L4CHv=@NC&e*Kt?BQ9(QG%yG#usR(Qib(^oe*4NhzGkA-obyUmOc5z z?r-#ZQPmd%v*Lg}M#0MxPi3jis(7e0Eg;+3J@Ph)(6%iuKxFA)hK0VIF~kN^@u0!RP}AOR$R z1dzc0KLMG&K$~Mf&A;N__e)x^7vQE1{HG@K3YTmzpjSWLjJ*J4;0FmH0VIF~kN^@u z0vAGHu3iUA7ocR{h*w*p1yLQyT);d1Sd#C9>Wn%i^5e-QH*uw^naPdjWs^ ze~d2>h5Hdmwg8k_0NM-iMhb!U38Au;@W5QM98UHX@EbTZV@pI9uT4YphJl?C6@DJ~ zBQO=>egxD5ae?s#$Qa)s*bCI8X8kgI%fcXxFK{6*Ay@_pAOR$R1dsp{Kmter2_OL^ zfCP}hWlun6FR(APL35j&4>_yR&uipx2^02$*O1$%+PeaDQe7~Jy?j4$vPzJ%eakN^@u z0!RP}AOR$R1dsp{Kmter3HFIB`*wQQ z0*(%~{{hAq!2JlQjTlG_0Lj=ONcPh&>B+A?w=F_5_DxL(oVdXF0%VNO3ibjY_y)ab zt>~}4a*3b8}U@y>$ zYKY7$T(Z3Y8+z)z_5zTNA0&VTkN^@u0)H9-FAJMo!vd&mlWV_6GFgx3*NmxEQKD?+ zpT?K%aownru*Wr(;SXbPMtcDb#uvy9+~VL;EkC$D5llH4UqEhpL+lr*FD?-=zJQHd z&DZ$5vC_i4(WSW%;v*+_ya{~7sUon0hd+vd(3|-!0WiLRiNi##{9}9pj4vR3g`}l@ z3%7O;``Jh;;X!GmP=!TAC>mUUFM9zp#&0Fq3+!4I`quj^j(vdp5&UVdpx7`HKmter z2_OL^fCP{L5sy0NAB00#E=y zNB{{SfeR+Eq<)|G9J*^wNYH`ll{4{Peep-B{x31Q1${wCo92I9K z(Y~pfUrOt8J1QMcx*V^8h|RN2V@75b6!^Cn_Bv|pmI{a4ZleoJT8r0X8d^}4#qC90 z?s9tVv%Mq^HgzsR>+{&%&1BVD-LTdZkQv~U#)U2yPhcs7%O6ruG=x_B&(LI^cnVpr z#EhIA?m2f@ZZT<6=Fl!+=YS3^D$dOtR!E$gqx_d>HWlX%%`MI?%+4Jnn`#&GNsDwn z*=d`oP5y}R2bUMqn$cb$z=Is)3t)VKz%MJt7Z7$XAYB^nM*x-=XfJ^F0$`wI3bZwm zeqTKn>6jRsNRsSl*xZ2e1*Df%3wgcaNs*)fNqhk^#&0dy3;c2<@C>~w58f1^9q-2FVIH$%LUjAKq34f0VMDj5SZQuBD056k=gyr^TNt8 zzo5)3+XhamH(8cm(U-SkMtcE_FTh1V!1x04AnL>%fh|aQ(eG34=!;n1%KNf58w8Pk{uG01`j~NB{{S z0VIF~kN^@u0!ZM0Pe5iba3EsHxSZEtc%X&&0_~{FCi4oHY%kDOdEEus3qUdaAc21^ zfvUEuuuNFR*93Ut%fi?5tM%=goV4^Hv64)-l%0Y}^VAh)F z>Q!M`eH0Cyg^to~FLyPu^eJWtam7pWM&`;go3SQorB#LH_fs^a3Y5i_bdRM`aDae3o&VkgLzo8?Bh2(mvA#97dqXQ{#9uLt!FARztA`xsxqF`Ij^>=vun>voj+2pO`J%R!=) z7++vEppt&X>1_olZAdd;W~vC)i1^lNX|yd6?nltz`g`q1K*sp(1bYGI!=tZjdiXqO zFYvD&g5r%M0VIF~kN^@u0!RP}AOR$R1dzbLi-62tVC1onKfiXt?O`q03$&*Yk$Htn zwijp@bYbxYl-EH){2+lpoj^m|cB-&(ur!}7tc7rMpY(hwEP%>a-}w^l16Q3|t|(5R z%Jy=F_M=VmReZD;fThG7K5(@ks}NLQ*b^7`BcQh&5CS=fi}`e>fG)3)vyI@E7F|xS zeYTf8+GP%>X-GlQ5L%7<5#W9VR$&JM`JMx~AAuL`1;oXDv=_)K&K{ms9F>^B#Z2)z z9bSv80<0*k9-rG@V|RKRt@*=xHOYrwmpA7i9WT*&d^NNR?F9gy!&^t}&&K*GCnP6x zm}O=Y#A3z&69@JazEH5Ah@k=|1)2t+y#UxuaHb}6f>mLIz|^F>?A4cF+^3fPxfd{A zi}nJZDjvr_F1`R6biv*AW5|9ySNHM6w%x1-+KKxDztjEIeGXva`6cqTR#4+;?c=g`d3Z^HIK|4C_g^F9ZkmNA+wftI4>bF1Mr7;e=Dnmfg3|+#eP@ zw25&Vxl7sDLiqb~f4ZSX#kqOI3d!qr6wSzND$X66Tbx^%ojb$s!g@%qXgjdJh46qdq|RQ_>v=Uzp^WqJ;dwZ@lcZ zvhTc<6By(hf>U}~c@W9rc03*@7QI zC+ez5%mMTxpn%{Z51 z)!-)l2tbJ+B!C2v01`j~NT5jq)58Lyclk~G1-nc>G#sz&)QoMvyew_pFV8Wf9|6W4 zB=NW8kA-PSLD3Leeet%yR75`7<{0A++ALm2jonh=AOYXK{*ZR<1HZ?-9lS*fcm}rd z@``lOJXtaHBS1d_Ix?#C)&3*=kkF4n_GQDkgThV>ZXbze3q0VZhOGT}68s3}^nYf+ zs(wA6LqCEhU-wXn1dsp{Kmter2_OL^fCP{L5@{PfrUWd1iQg1o{KVmM!I^>{7iRaR%EUDhzI2kURs(1Id1@gvZOW;f$U02%l}0!RP}AOR%MG=YY;;i|B4V6vYbV6sm|Ik(Uj z++eBAo9cII#)AJm6={Qhs#vrs-~?v$BgoAv$pzc@oZRsyu-x@KN5~D}iwaG=-V`Ov zFfX0jUKJJ|u2|XGYb~p`^M&}dga40Kk~O3tSFDbH1i8h3ydAL1?WlB+$kDT9{u6>* z0>9Y>?nf{ois}l?rsCY8xy8AK*|}ri+%(Rh5*=tyFi&rz3L5~OiP&@bZTsbY z4zFw**qbz2mUJh42Ko_DyQWCkY1aTrE874?qE8nVwCG15_Bz~yCOQbveTS3-`{YOh z`Vr)f6gzWzKLWD$-&OD<*b(ylD~FDs*@k`um&eOKUL_Jh0!RP}AOR$R1dsp{Kmter z2_S+0PXaPO0@s8W-{}`RaZd|=1l_1}l6?-*kAMP#he!YkAOR$R1dsp{Kmter2_OL^ zfCMfN0*(C$qRerR^c|^4Bz^?O;QaIW5kMw>kN^@u0_P{NIHa>GEFwa&v{Z~??(ldW zh{ugIYmHCt5b>xT;rex>uf29GoN?cJ$6}pl2+CzXF4m@_4sNeVN@|? z(A9)pE_Ex7%yM~L{`lHZmzZwm3&7Ba0l~LIzzDd1#R~5tm3FR&g@>$UaTE3?nmHul=-}NFbI|r zZ{*8xzCP3L!TkuFUO*@_T}MBHCSEoqt8@C>%WFw&e_G3bHydl9Ly+$tB4MWsOIlfn zBlHx1O#gxV5lDYg^dq2NJ83@xvi9Fi@FRG7{0cT`^|{_;UVv$J{uh4CMFL0w2_OL^ zfCP{L5z(p)fq&B+~af1;a+pw43AO=@J;`npbmXzkU-)OQ4B2 zI8N}T0v^MFa_C2ZegszZBQOmqC>p}KW4WAO`)seJ*6Ox9y`*z51CJ>om+H`IrwEzH z6Zfqn#<+od0nok{jU1nd3qZ3q<-P%QOmV)7l#hM{^duIxPbXRLAmlaOcgQUDo9#XLQcd(8{@;07$H5mSIi@HfKd{%4owkYE z-nv@S_sENB&0ZFE;pj*0!a;f(|JySd*L(Q4<^W}@z;9YWK3_@xmTV!daebfLYi1rgY3%_nwp^)z)>!}90-bIBEowEq6M%qP=5-5Af!}OSR!MG2-pE{8maH?U{Rqg~ ze|N!;VCLa@k#oP_^EK{A@OK#O;WZ!uB!C2v01`j~NB{{S0VIF~kN^_+(+SA@2o^2w zcE87b>gN{x2u##fk$n!)kAMP#he!YkAOR$R1dsp{Kmter2_OL^fCMfN0*(C$mXFw! z6V+9dPW%X3DTlV;M*s!zg9MO3GXxx6RblC1+aJ=jZNJ+KF=r)fA=7!xk~l*k5~0>_ zFD;nv3wkg~LO%lBj{xk^Oi{QWf!FFcGmJK&9|4Km4tCz8pRs$wo9bgAUoy>xqCzLr zINtlxsqIx^;o*vvokhb(JJ*BRJsldEIg;w!)*oIwX|$3c_9gY0`#|^0*-zJaz6+12>-!;1SS~Nm;^t9M~3K3 zU$1`dS@a`lW~hg1B!C2v01`j~NB{{S0VIF~kN^@u0{<)mGCzW+AKWoCd{6pYE%*^c zPzcCAhv-K@0l`BgfCP{L5t#drcE`}5ka&DfjM7T4r! zMr{KSkY#RY8?Fi)2Pe!9I3d+RG<|a1kARr`TLdd}e~@?zwLHgM)gi#h*#DQ6S+(;z z^ds>57s!4i=tr0SiK6wg3g}0WRXl;%{GVr60h*C4FgX7to~NelxoupPa(co22yj0F zYG(z(_#FKRM8_p@vjDnZ^K+s-pyWR(;*KPO8uue0!xz$XQJWO}v-cw)YyS~~AHgR* zahNLh-Pn0 zA@%}onEe;xN3j3$xL58f8?w8r!W^lJ1`lo9+Q{DCA{vZ9EKMQ=M2@#e_WF^2gWJ-= zywRn(V40JXJKp4&Ew$jG3QJnLUBMW)(PfyTD3jZ0lW-ko^dsYGH{9Lpk#bI&lm&NPZBF8e;vVa55U9{mXXepuWi4E+cHD3hS~Kr`Cpr9A|2KLYC2 zng?bPjN#Fbz;dzsnF#3oTg1pWO!F`+@;}9 z*pGm${YMIZ1QBbWb-xnyrXKerxQu2y@KTWg5B|VI|9|8O+(2t-vm;3_A{N2F6K^6jD_$4LY5wZ;P z(y8rLVd3G5m7T?%aO@u5F1&;P*IN2*A=R}SE*C7L1yfQ}VNr>xu(Y6nSg+chUWd1i zM{tpSCOq~0k2l@1YGE6db^+U{aL<^> z!ar($JAaGJ%%3mOKJb0D<%;B+#+O1rg4y7G>nG+nBIl(x&0rOb;VFcI@j32Cfcp^; zZyecs68AJ&$oDtUX~(QJds*=N>lfhn=YPd_`<&nm{;%7QfUN!Z5c~+b>#kYaBb0!RP}AOR$R1dsp{Kmter2_OL^fCMg20^JqCj3UdN5SNe?6Bi#7mt=}d&q$8T zNJxy0PfJWmO@rHF$*l?V0#Rwbj-LDG>JWZj;8TYE^zyuMylNzX1dsp{Kmter2_OL^ zfCP{L5Ayrk6{1i`+hD~y{;vG1Pb;D1OMR% z2_OL^fCP{L5^5E8P;E+t`&oYRELs(akj$8+Yk{&<`|zY`n$LmJK${WjpGRvkUbv8(-2*H8T1s z#u@DOhCVuneun-T{Sl*vwHjCJu3@8%U+Oy;&ax-<$@)ihXAOG{PaAGy4eVfjF+0up zGyAgcWdHGrXcdXM9pW%rH^EQD-)Ms@tJUGTv?M zty8mO*?eO>8^I>)m+HH-w;PIdgY-J%V%-Q`H{A*Sn_Tb(0ti1y00|%gB!C2v01`j~ zmn{LEG6dGbwr+XxCZ<873=Zn%nD!pCP^%09OV=&W+;z-fX7y7$fB4wK&N(yH z%3#IF6IbYbj~;T+Z*AM@ZgOB6@n)MDt0&>t;xY3Zf|`+Q^g|@0x8via{W)Qj3U{V!b97N$iV>RTvH)Ah@X~Z9?6$_FD_wO0e`q>Ysv9^lAU%< z+369yZuj2setASU{+o^O4(D}mg={}PjOcoPoqAv>uUk3l=F(jL@bs3O&*kukAMBd- zb~b+VVUn91~Ke={vRgFoEYf6b5Sq~wCnKKnY290dJm*}hah^TSj3Y)Ih`-~M*%)?|`B zt53JSN#vmTicvo$k^`Iar&|;FQV%W|-9Mh_dSqvm$ML#P4clh+=MRtVD0w!PKioZw z86LwQz8n2QT{Ni_J!tez{dnC*<>P(&@`n$3s-0$%J$6mM*-_-6U)K7AefZ3?Th_na zo9L#U*s`n_IY|9|bxuz{^OLUzhxPEcciZq|k^JHN`L-<)q-4I)IK@N`;t~e#?#^ef z-=>V~#x?Wc;sagD!Hjj`C%cdX&2{rDJM*QMx1XTtM0DwyyWa}ub&CyK(>oH~71z67 z3gdMrey$JdKy=ejF1e#UuRB>XXlpxvl@GeFYRexUb9^|z4S)EB?&Wt|lS#pk5cO%Om-Z!t;w?>jZp!0Vl4CKHtYWS0Saxi|-*26l!)M-bo%U*v#aC;yLNhR#z+~F&Gaco2 zi`!la=YSgiya<(&$#dIltq!-x;_!HUjf->$g{vrcx$PGJDg9MDhQM`O-F9oEMmq(= z3E{#V-nvG42BngT@OkWRi`8bc+u8;xnV51{O|8ob6)e>*D=6E;eueQ+gt}sKYw#x| zE(4;yz%5tq>$SFz=^A1$pf?_1*z4H$SS>r7O=ll8es4U$_GU}jui4i~9sD2xB!C2v z01`j~NB{{S0VIF~kN^_+yAlXjrYf2k{o8H&FlAy>Il9iuOhq&E0@^l8vqC;EpdrPZ znHNw;D)SWQpBGS(t7u|gAe3Bplk);0Xu5ZNnDBApJXfhdx-h29)?g0!RP}AOR$R z1dsp{Kmz|#0#0oR6Vfn-VcslvRL+g`j|j@EVLdW3Bhu@rvBP>~O>Ja!qyq*QpsKMs zGCV$KOnJ4dd^)Hr+zz|bR$XUtT5If(KgQ=Y6~4T_yvpOXyG>(UPFUOXIpMg{>a2{c zpQZ_6f*XqF?wtSgpLI5?uYx~Uxtg3SE6cIE-yeN0r)i|a>$SoSRjSBI@`gScvEz?E z33m>=+i5MY@)cLvx2Q$H$V>jRb%-p7)sL1*Tvl6aoQ69rwcUOAnxslaYSYh_r;E794h)qmQ zNsmj9kB>`-PjqCp%US8qOo~lQPf3Fv?c&qZ;}Q}QAlGfRIehSN$H&D*N7j;c_nFX2 zg|*sa2iflSxSWtXX-agY-RAIG%c>#Q>-Iq=^$j3H^Clkt;Y3}(sBI8j>yoYvv;Vy| zt>;F1?KRM@)$4OZQz@~D(X__mb2_~6z1guf8yc+g)i~g+b&(lqY0;7J9rM{>F_wp9MxnU-+zhIYd{SrFL%@e7_Y2f(cL*Rh{ff-=< z;B-`0dBY&&K%-hVpJ#d)#2jdxVV&jFLdb#6a9!lu^blg8`y2=;5KBxnIzohj)LC|` zx61C0t?=6;SV)c$!VL7_tvzCi#Q^*nAp)T^FYu~m$;J~s?#$!u1-dcpckFt0CF_K! z0vT*K_Ia=!c;nyjr^kCl0!RP}AOR$R1dsp{Kmter2_OL^z%az8KX4rHpBK<}Ql>Y` zFK!Tw6J`tbjdL;N5CB!C2v01`j~NB{{S z0VIF~kN^@u0{%27KY7cJF)FyM}iRJM*T1P zllm|9pXv{?zd^KtQ?M_=QTAi@0Q(Na9e9m>5h4*h&TfWC1nby4!0X^<*vnuEJ0JEk zaI@8H1v{0U2!05K>~MAfo65$s{b0|-?ksEkKjY8F)5ep=FO8oX4;tSy?lHb$eA)QC z@hRgY#)ph|8*ek-Xk2YvZd_!XXPjxQHBK|yj8_`R8;gwv#-YZ+#tdVUG1eGmj5KyJ zb}+UwYK_5$-wi(*zBimOd|~*+@S$O!;Vr{X!w$o9h9?bM4G$XD8}2f!F0i)4 z1!(Yt1dsp{Kmter2_OL^fCP}h|Av4{85G1cFxPPZE@W1PDiuKsn3d$8`OMYipL%8m z`DY%p9L%qSn5(#S8J8~Q(j_E&F0+^u77<|%(?I^IV-|)e6^hvlNIGjiNoUrR)Hjc$ z-nk_8%ps|}j-)eYleBggNnJBZ>hzJc#!J#_4@sxHNjhx?NgcH$t#XmH(n->a8j{+p zNot!;((-8}Epw36T1C>Sl_a%Pkn~DBNvGIII=P&rlgdas(Mr+@Q%O4BLeg-4C`kwAl5{{0Nw3HzY32};W@M2xeK1MW z29Y#%AW2gOkTm%UFql_llEb77k|w5;G$DnR;@_NvLrPcNop{VRIewgPDfI$mZTaDN!4nSs#GKm4JBzv2uXv3Nvc$m zG$=@^)DRznw&bfU%nN8o>`Up9cGoCwULd%PVIKz1ffMWwb`852ya^_-Ic$HJDF`v1 zf-(GSFmk`jc!$w#oMIeqOf+^gY79RZ4jXnEo-o{PSZSDPuo?;ssfI{{LI0EfGyPlo z_4=pv*Xrl!?fOyrOnqy8Z{2UYFLlrB-qGE!o3C@|ZqNYqaCF+1glbxaLF6x7uLMtD3Ev+cnEHGc=Pm37TOVwWh234fV(B)9T07Yt>h) z^VKQpscN4(LbY41SDjTIQQfOrt=gulQ`uBSsti>xRjbf1LVpc?F7*1)y`lGo)`wPw zjtLzYY7T7|@_!*;hrAc^V#q@wH-{_?nHEwKGB6}6q)qT|!CwTw9sEr2`ry^UWx=xv zHT)m}Byed2+AE`j6sz9-Y+Yr^kDu=9xaY{T&p*vvBWY)Cdisg3V^=+SVn4G=)K+}? z>5!fsw&=U1<}xcqtzE70MVt(~_r&|>n5#vt&F3BHy8ZoIZ_2-uSs`l6b=jGTHD9Q% zN*m8C7q#P_-{0}GyBmJrKJgdkDp6aSdGx0~xAgtlt8_EVL~X&BgQLt3z7sxr)JbNk zsLkKEq4(=mow^UiH)cnFMY^RJ?5N1`6JI~w@X5DmR|6OGZMCGH; zs!o2cUG#j;n5*VX%IkM@pW9BEqRA<)7nP5^bbH^R8}_H~d86+Fe@WeSi$Nc`H;atWIvqj}Y zoxAIX>qF+0uUnl!CIrW}llb>5LXnoSNOpU0V z_*j}k_q6V8em_mMsGRU-`I9T3n_*e~e(UL?a(tKK&RIvkd~n{x)zd`fxT)WcZO|US zu6yfJhosa*ZJ+SWyKmdJ_No$}y<~T=P z-)`0ehsOMB7nSXpK85NW^@cf5++>rKANBm8{NyjIAOEszxuksR>B9AWI_x}HY%P)3wn7^7f+Ftr#`tiJ7uWbJMyNTTRXlnm=t#`E5>aVb=L|YG`FMEt znrXc z`nh&mY}#vgweb~+%2P!)?^VyA{h>pMp-@zQQ`V!p)2(MZe-!oRNKtw0lV6t%kD289 zVDrubQF-)=jj0nBSC7+od@Em4dhdPGw?dHHK}s+;fJ@#+vsnbz>y zH$C&OUH@@rmZU7|bfnXqoP@mlz8fqmx4*ciN6+}z_CFi@;2=@?{DFN>-m`e^!W$k^ z4HT76f1UP*#oF<$vhCjtkd!Anm#ta%=!(j{H(Vhqx7d?CQH4&$29qySRBpO4`N3sH zr(W)^S)3s$Hx}O-(Qazw{arsv7nKi1f4igOFZ;)B^*YleWyhW0g%2I@R>$o_Qzhj` zed}I&O>x7s&mT__m3PO@J+5m%@QK^QeoPjXYjvTDc_SX*+c2wblB8_2_{i;7?fv1| zag!1yW$^wFZXNyLvIB#%5=7-)53iq*^H@pBOIe%aC1v(KD}qmsPg+`07$+%j>UUG! zo)gP%d^)|qsJv}pplKTiMhn~y#m zEh*K`JugoDU9&Xt{(hp;b4P32eAkG9UtJg1S5!_lWqhYJck^vH7H*c5hwggncyL}hHB5uZ%?e0yE)cisDl%CK8sIdU@EJ#W{#GrdJ+t4(XzYp)#;JTB;XFHx!A zcr5w0L!B)N>u>2PD%CrFEUCEmn!DoaCiM`Ns_$ohdM4KU+RI;LMM_H7f$zWj{N>W+ zsdW*8vf?*mn|s%!rQLn}xtS(GY2P)lGWf~s_uM$6?p$|C*=61${hqRQo}P|wqVkP3 z>sR!;LH+2GeT%zF%Iw=__1$&o;|CmfbP<(1?>qNR@y9o>d+F6(odspiubC%SeKUX6 zxBuO9OD9qJ)4Q9#h_gNZ(aPsehKtHG{qKDAIz};a$bBDn6qP?NshIrKo11#8TWt;# zl^<_@>ye`MimUeDd2a_nnRe|p%Bj|o&kfnI>g)D`vN!YkQ;8L$oEc?T^=ao<9{Ku- ztk>4QSD2P?N9Rp#1?An#=A^$fV$$Jpd+yh?k(9SDyK_zEyRE~I_iHUEZ(r2y<{PfM zW%9@)b^Tfi%B6=2?t3f3VDP@awU!l>p;zkNzdoKk`%qZ8)hH^b9F43}y#DHlu7{p7 zh|0;UtKYQ^9P{+LU&rc2WlHZhoi|L*D+#OqMkgp0*ME7}dvDJ#wcUUF5UpSN>CPA4 z+ZL0ypj(eg#V0j_^49S)56mACyZPxJx7MpgWl8=QUw*vcdUNifdX=DDrRlcW`s%4; z2NQR#3>B0sPyEWfQ_|n{!`ClA8X_u9T_)df%L93@=9R<+OUkb|Z_K)?!;r(9!(gXE z?!E5Qm8OT*jqiW^+GoZ*ml)Jm8Lff0N>FZ^J7?q*v3F@5kH9;9JMvyH%nN)wqrmq_ z@_V7&ynuQa!~Vd2$$rT025W%F*p2M1>?(EvtpD5D@oYXj5LW$rvSF;&cn;-5=%6oc8&#lRYZ^grsq(jSC*gqQS>>+jRwroTqNQ18)K=qKn4^n>&X`d<2u zdY$ff-FLd9y8XIcFte~#cdzbd-3r}2ol94yE7c9xW$I#e5xRCdmG&3yN$n@vceSr+ zpN5%+wc6{oOSQAL)3sM>M{9GmsoK8UuG&^wrRI$0nC6gXk7kGF3C;a5@3304P~+Cv zG-EZxH5r;{O*c&|O_2Hr^%v>`fCfKE00|%gB!C2vz~7dDL8%JL`oO;Sm!Q@2nQJ6z zv5Q$HNuC;Jr6g4vnX4sfN-t)GBn|$RSuRS7xf_|QB*_}aEE6T>T@$lZl3q$=mI%_% z6X$GU77Nmu;`9<`ktmJ+`7qNUNq0TSEYvGi3UUu;Mkhutkc3vN=1YRQx?U7Uo$EGF z5>CB2R}wy+GDi}2ZK{)m$9K+_gj+tEB?+tUpD79jb070b!i@X9qL6=Pk4F+tKIN8# z6I*6T!dItjCE<(lE=f3=0&%kZcbfm-n`Xw+xYldv|0}LWjYkkmaozBncB|43vZ($^nwl zsnZprFu1-;rX=K*Wk|x%B*AdW|Abq^+cj1I71R7 zp}JqZBsk8+Ny5~-`b$FJ?_wpP^)oS|FraEdv?N$R?`Z0sr z3Bosnk92D*2*(;`Hnfq1T6=3z=s)DKR)X;5o3|9Qf^hiW7pE8{;n9u;Nm!Sr7lnIb zmgq#Gw8tc^ARK(ud`2S(2OgL+LM;hd166{sf6uI6Lq%ctU6moC@Zu^>uq3Q}M@b1c z1nHD24f&PX|Kds#TcADpNf+h?hShyNVXEi!2yR|L^%cXOWJhfOVah$b<}CKziGdL zarryiSF}%R@7La@U8S9`t<{!kOSD6^Y1+Op4u4#;QL{#KwPqgpB0L0M2-krBK~J{5 z@hjslXs%T6RBuz?uU^i&*r~=l!6Ts-W-E#{gEjG*NKIQ!u=+<~7Q4K;qCo~<5lJZs#fDKhpkY&UFyd5lH+wdytMD)sQc?TZjz z7!p7NNB{{Sfffm{!3tGSurzL_WioQ6WiocAWiooEWio!IWio>1WIfkDH-_fqP+lgZ zXinB~GB=K<@)q-_Y+2!mr7 zYEu%7wJ8Y(+mr;OZAyaSHYLG$n>qyr5+zG*43 zf|6kPElFhjO-V2Srz9AGQxXipDGA2llmvrtN`g^1CBZP9l3*N8NiYznBp8WP5)8#@ zsbD-Ubs9%WFdC;M7>-jCjK?Vn2IQ0kBXSBM8I#i@jLIpIjLT^eM&`5#V{=-B(YbUU zGCZdw7@t!T4A3bFM(C6TLv%`lF*$C_1c3OlXJ1xSXofEl1%o#Flml_@n<914dfjcF^$eog4=uSy6cBjrkM(SVs@{~x%@>D})G*9Jb!g!t% z$%vjROvd!I2%~yhgmFD3l94?v!q}b`VRX-l{NEuN#`n@4kO4j|b??R%<-6Vp7~|6- zjPhv_#`&Dcb&%XhU&{SK1!H|$gwZ}Ha-HiBDj4rmb;*cd61g!yCvrbP+^Ap5<;MM- zs3QF|H}aPXA8UZIzf|}b8U0HlH~#0u5K@<$0iZ>g1E58i1>i)E#$hrKz==w(E}047 zMDF&vxd2JzW&>yu<^v>=n-QQyGAAJZ5%!Zw0ZM{d0b05tNDn_d^t?a^^70_e3*7k3 z_QU$g*R|sIDKxkl_P-D(z|KY)4;ybbLMLQ+7L@ow0!RP}AOR$R1dsp{Kmter2_S+0 z4+6uqV7NVqYe2;);9qq#gnmzmOGt`|i;sy*Dv3|dNQ%pdOY0X0X&g7lIGUNE<@^dC zxmS0eBYdCll<$4*FwJ=zN-l{@%}9nO5~+qp{n(wDl7CjUb>#3bM}PM8>A{^J(F{|c zw;{Nq_>82ajN~M`p`%x;xrVkZm^Jw9!zr1kzI{hMOw~d|35gj=$r*{sbVGY9Ra`@x zSAMr^>(E^@#_Zgr8W!3@L-8pY32;%VbVJX@g>nr&TtD`)6?eUGZKs~yLWhN%w;_&E zTv|qA9No~mH6dI>58XOpZt5<>jxqYZA(_F@P@llRnzhU|(+>OpxgD?-0QZ;5Eq^qa zRIdE(M2Ed+8WeGPcMl2fuY}5MU}gSKJNUCXO0L2a?O)ru`Kymu{jwNkVh~ga3#{O_ zI-GUnEI+93o5}g+=A4Zk_uwZRi$3iiwJ<1A0hK!YE0MqfQK#WSNIkOC)iu@BFTf^Z0&$j5pl0S-8ki*9&^gfHMk ze{e?#Od!S`B=H8|`nr;96y^nN`8_`Ebi?z({Jg+|Cif|%?+K5Q01`j~NB{{S0VIF~ zkN^@u0!RP}Ac0FJAnYG_hD;QQ0+}X|1ehd{1ehX_1ehR@1ehKW1u{7x3S??P5V(ki z!ajxmd4Znf>V*bo zGt4!NH6+1KfuXuDbkFPV(2dmTwJ&McYe#F&Xl~R@(e%=&)yLFNtN){}R_CkDs-IQ= zRc%qtR~4#Eq2GpX54|ST8JZCq9I`Lu?vUz`ks;9`y5Qr%&j+svo*JAH9IE_G`H*s^ za)449v@_`1pxU6~pzexuiuV+o6|)tC6e_s53;A487|aCw1}Nv6=0@6FH4wTnG9%LA zto3; z^IlxSvPLz%_SxP>=bUM+_Sqxrlk%aWm0|X5EjiwDMd5V4M!;nbOS`7*^xVjDS52+U zX?J?X`z&+0s_j;1WPR^EXgrr;cJB@E*JMGT*Xx3Ers2@sfbrjKd{#D3I7n+_86{j=I2fJpyePI=S zZl}dnQ4v|6HUz4|#Mz4_-xpj&Rp6JJ#b52tr#^0VK{bWHW8z?7RGxXTVshhZ{NIMY z$6B}D18hi+;%H zOEoP%2lUkl&Gx(k?jg71#QCe`jn>$04y(oE^10!AR^KNRS{}wQ_oRHx$jf=^JYIW^ zrOIxt_Ey0qWcV-Pn`zn9C6K3rK6^Pl;ciR06`s(@`sj41Gn!%c^}&aj*qwHFWnE-__f*Kw4EoQqee(Qrm(S_7yP-e|oGz7NK0I~L26++E zyFh`i$xr|u?zg|)x;3DHwGwVI2~J?0)u$WHSZG~#lP+h4qtfSwTTDnKb&9VT^%Hf2 zP1Pa&nZIv|O@KNRY|5W*ZJ`c4S9UM-Me%Ui&=)6n(c0imSTJJmwI-~`j@HlLYF{S0Ui8S^n%t0Ogpg!e&^_)o+_)`Hp@yL)$To^L}u#m zt8)TMI6PjL8!oU%4>%=6;{N2T!C~?uW$>F=>voXGs&^z5g5R!;b9g=+2_UCTEDzTsOb+lFo3Rrbl-QVL}=p#`W^{ z6ErO~UJHLumowID_mCH*=B~DLIQiS8XYPJW{oQuR& zKPU{&Gxv(?T`yfyJCXGxJCJLEJ;6`>Tp!d_8#X(6`{e(0*0lHvo7HAdwkM>f*^*N$ zQseCv32_x=*3=YxMS3E9q1wasWKKW1@xo7ETPO&z#}|LleU-c|kH-cb@1!>5!egN4b$mFVx^U?0A>cavX~d^j_T_>M zhsWdd-w^k!RcgdP-V)T6}zZdR#(60_57O?KAma zAtNq2(&uz|E&R&`G!D;*+ffe9lOGWa*BfR;=K9>OT6_N?c6T)l6X3z~x!rbWc^#C` zEiEPr@{!42M_(59_H&uu3faq^hP(!=$2D|cTL^pZ9)9#(+a>L7AXB9M%sQqRb+$H_<tSf!iwv)Yd4X23U3y+y{G*S|3nT`wV%WFYJ6Q*t&MJ+s8?S~r0i$8J z;X1=aLwEfb`iJy$^ac8^y0g07x`%a3byIW$bfMa}wYO@^wK1AsHScL2*Vr|^)Ss*G zR!>!TQyo-YugX`MLw^rF9Qu5yH8dn-Lr7lm2{;XYkN^@u0!Uk@0qdc5#bRRg2J zIZy(?efY)azsuhU;JJycH`hUSKEr(c#Qz*u)HV? zXSs=z+*#yKVdtrzemZ%Ux>NBTjDDY@o?efu8m79e@J{9!z5>9ea{*wki{??M)cn+e^#wNFRYnxGY$1|)lg~z!#r@$ZTqRW zNWKmF9oNfEp~KfDX*$$^3B-fnw}PRn_+m^oN>>wRN0O!iJ$v}ukM?Z24u2{#Tc7NJ zbCom9OKZQSS9+Q`mvo6${3UL0eE?=9TDnAGRUx^OKiO}e?jC&swcL)%N^ZDa0e6-@ z*E>E*PMQC5!yK0#nuR&8-(%*L$xHAHR!(0{8EL1tjW2iBT?dn_^st66=Yel^In04{ zD<|i3KehKec_~l1+ffVoQDx9h9>bi{^jIe^5wJj3-_r^u;R#v0#Q1hoCAlT7`k1M3 zzHzhXMD3)YG=4t(JyU(O1&Ws@?(Np;yv50i63i0zzY;D1CV>w)U54|P7oMZ^DNq5H zewJRj6lSx;KdlTU{rpjL*r}7@%BGL4i_g4}iqu4Q`Xv6G_beX>oLW97H9Ma)5zc9! zSbsCDA+%gkxXH{3a6%WuY&+Zl!~TGJ{^x+cNpeDA%CCOVc&I#!VZJ^79z88Bdx+$f z$#Z3ab*GsQmk$P(1I9rE9)?-B?KR7Votz>wKqqFLgbsFu*+Q+oZwUf1R+F;EA%_hx4O{u1@ z`gira>igC8>SA?o)vv0zRU1@uR7I+up+AN04qX>IE3_aqBIHcSu8_Mz+#y3lItQN$ zekFKKa7}Pla0lga<%`Ojl+%=hlx>5)40;x<2+D&}gY=3|6;CQwDyAxu6X~8oc4otxJv$*tBh? zd0aC^JB{Lt4w`iA?kRUHp1NSGd2G`~*WX>l7xf%m>HF}@veVK1&81Bjy*jdxD{Aa@ zeA7omSN3@~t&6#&>7vVbjO2^^9j$+{?ep22iq9$C^`#qYMPli< zy;?ChdY)dt&5u{Q=}XsrAAzM;!x!~wbYMbh>x({)t}jW|S3;NWEyJ<&;?n9jvafC_ z8sDqENr`?*Ta~T)5uLF1!r*V-@H%zC8JE)4(d8wndf3kI?eB=CXM5DV>gPW)H(`BU zlcTe~_MIhRSo_81)nA@DYFqr~;iD!c>Lsmu37yv-?x1Qz%a8rowD*E_m&26EKakdL zuS)xSUGtg{-KOW;4;&FMN!6>3D$EMS(vJ@=ZPK*$vC0nvHklmZ`q~kB?XdQv3txWl z*0fbq7Hzhf9G&#FP0S%!yZ49C&*Bq3PbYo+qsh@xU+d)+tZMJpOIo^S$DFh;7MYYV zO3R?PMfG|k%j#q4HfL}_%YNBz>l+oZN(V|x-a#XKCbh-dEw2S{n%V#Uk%sIvrMt?*sT>-=I;+PNMD+>%U_k&n09UXtS=sYIBcZSMqirk?x#vEm0v9z zxM}8vh$yACzBJR<7fV;ZyDl&K{g{wLQCpQjeQCyXhbryz)*Q>d*tRoL`zfvTr3ot) zRrm_II&U|fedq==a(yDAZ9<;>LH^O}uOV=Jqcg97T6#tjBRoSY(uLagFyV?Ih z@6&;c#kwsOKV503^vTV!bn=eD*VYXaj-1@_uHs8c$t$)~;tf@4&pvZ-#P95kppC5J z(3N&vt-fFjR#Z=!l+!Ex`-Oq5L!qSb;#QwmSkA0w_^=6$Iy^8d-bL$g*EK0EDJ{8z zu#C4<>7|vs?*w#r1g-L8l@_|v(1=_t4QSEpYTS*FOS(R2$U2%+QgQ_$dq+3L+B(ZV zxpvPlf8vQXk4=td`r4SVCRkf-%Tjs4f=-rUraLA_Q+=&R3m>c%Hrx(=<5Io&HtUv{ z98Gk!!N*TE##;N~Ut&@hys|Q|WTeUAqpv-f-w11MKNo-dIH2&@k(*H_M`L~MuH6k) zZO(=2L00N>T7pD@Wk5R&TY9Fn6mSmdHe5K9G?2x*FEZB?c-K& z?pVmU_3ixj*A_<|eeLYkwXyb>>8Yc3pWM>iUTv%0QCnAQ6(7{X+RIx{zt?}A+pNkr z*P0x)^t2B{C+jiE}!bXc+spSqxxPe@ijSQJ?*WNOZv&6 zopGtp+ov0gV&SLTb4?COPkUwU!8i%D*3m-#)1ATNFV(4==~@eiHs-DKpTdnSinPkZ5= z3BBx~T^3t>VN$Pvt$Uj+D>FH4`r4>)8`j43zIp5N#6Q?x_{D6|DEx z#H06bUko}i&*X5|)t*|J<__93OtgOrT=cm(DwDR;52|-4HdacIPWw>nNr_kS;Q*(#>mPTPAdi(9}y*Sx^?HA{x(rHVCRUZAb5E`vM=H_4Ob7&I^N zyL3+4D3wWrq!!{c@e6T-I6>?u`UsDO6T(WNK+Bx3f{ka}uvYt5_IK^&_919x!86+#+ZtPutvfoA@h~!AWWdOPkpUwE|IQik zEvG+dnOrsF6Vv=jOgZ}N`rVqem|wm<;d$oThac^=_?FWjwJ7zp9A=8D9=B!ht_DLZ zKDb+Hag^(R*m`0r$eN7BskgrE+_d&K!Mj~oB-Z`3^~97WO~PWQoh@p7ug==Le}9g| zx*xZmnBtn1VR1@PVR+8+zb|{e_nSzp`+4h$De~z=EKcUTgau{Yw9N{QwJ7EE2QIC0 zd*W8Q0c(eSRO$KM>hj+|9`Qs_%IObWlr|C9A!~+&UH`4c630IZ&G}ZPoc_Q?w9GkN zXs+pVE3&1s>1^GB1McxkIsJi)(jLMSPiuOAxxV?Q>0aI!p7ypn%3uD(g$uoZjF_;k z6fSsavqk(5I|9GBcwt;mlTuE9=F$%Qcu@No(58P9eKBgxrXSZ&Ja?OOl+z!&NGU(? zA6F(|@j?GfKOcHHB@b=CC+Q^|kj;7Gmx8sEJ2Kf1z?!!fK0Sg1+{0TmjZ@ zyVc#Y{PQ)V68BHBI7;-jC${8c?bf{?j}QK(OP9Ti`&%62^|d>X=V9%;BPKK*{QE)i zd51+7$2fiMl5g;QP5S0~4f!5|`-J5At1OOUeQm|Y9DLkO*#m!@zGBbw@iQme9Ywm@ zKBezxW9`@z7gyx|$Gln3Wi-=UsISf2n1!`tmd^FN`&;XwbDD;jl!BME>I_@&$7eFJ zHmURd+Pw~pzj&(rEhS%HdT;kwRr-N*{my%}GpA0|2dFySbk`_w#qbHOced*2EbSzDrneuE_&hAC&=8u(Zed+a(G*xCUeDBHpowph&N&3>CnvPVZyZ826*P{0Ei-QuC zM1ASq_z|i!qP4yL-Zw+G{PdZUpf5e?F&s;4d_I20XN??3@6PX~#Oq5xog0g#)sIiV zllf_r_rsQ&l+pUq!+nOS(lz@p&3>)!&x026N}Rs*z@wq6^vbkfH>`X5x8!Mqlu`Q9 z{i#D#>HVu~yM%PhFYNoeGE!fy;hH>@TTPtc=i??!Gh_AGKOY(y_+o zrXSCm5sp5Bnc-uYYhEBUYh=d6bAA4JnoTnY+Xf5hn283d_X>qLcr-P$^CqbES@AeKAn} zO0>l96n6 z2#Z6q)FG?@$yA51v|}vn59>9?s2nW8$WVu{tRh_ZNjE($y0<@ZsvAa$vXB9XPPj z>ZWqwnAKGsf;(2UIt0I~F6t2ct2(PgFrgHk9Az$&Sox)CgqLewFc9|gl^Fgj`r18^@2f&o|( zwNX{zHPjk7Fc1nJY4D8iNvCV;aE#{9ziZ8^H_4 z8y^PQyEK3S__frB0obb4Q&nJs;sqSIm(*1`Fe>o`4xC2ns2muE)CLaRK5D5PxO#Y0 z?SgzeYN|tU=%}F%!A_$(>;zU6)l?1~CuDU9z7i5_2CE1W24DgqzyO>bcvS^n4IFS_ zzQC#+_$=6g13v|u%7J%+RULvyg1b5dD+CKD!Qj9Q1Mn>{v1WJV$O1M5=m}{UYu^Q4j7H5T(P6d|UofJ}SQ>FObKfy9Pq#W-=>1kSft8<6&gL$bgXnBLhYT zj0_kVFfw3dz{r4+0V4xO2L25)P*XHB{+Y-gGZPue#;aCTDV~CvY4?IhW<0j~b*9wj z%}kKa7B9}sgsFC!;N*w=Gm&**GCC~sRIkpO86`I{+nHJ5IsuwYV8W_wVe*}6$mAC7 zQFZdhHZ#*R-tEW4|Wklu$_=sbJQnog$ z3-=3%(h){ph*lDC@_6JtxJmk1x*#2qn$%U}V6^fROXcbCBK^zMeVE?GNS!xEf}~?ZtTk z7UX|0FJSjE_jLQ`^8z-w3Y~cYD_pnkyns8L@DJt%ERwmg8<`g{Lq=Yn7ckW_w`O(c z1!}-=&~?AS=h2JW)LGcrTC(tFZobg%y#(reOuX|^;~ znkW@ZxzZRZMH(%|q7@8%q;68A)In-11xPI=AE~}nTdF2;l12Po{7w8>yer-muZmxb zUy7&2d*G3>Djm zeqwX6k?19Qh>~a%8R4PurEp3(CL9oU3)@g~jE9i{BLhYTj0_kVFfw3dz{r4+0V4zd zlNqp?O(te4GavsfXI{ZSr!W;(vzuu$GY@`DV&=k+GG-3^n8?gVU%i@`SvbzbaR!dl zVRI=n4TGrwCNSmjqlB5_Zgz7UKN;e&_Vkqa?B2Vz<_#MCT^&P<3YV<9GwftZv5F)^%r#uYnMI4uIIBKg90+Aa?5uv1=cQ(Y+yd=>@TKPl!=HAVzkF7|{)4 zcvpy>q9Jzd0x_&J#12sq+ebnSjeyuL9AZc(h`}AvcjazjFl^faVo-aCZ9*ZoZU-?i z1Y)aThyiUO`UgSuYXi}@HAF`sM5PtPmH`l3_(N>&2Z#5C-~ilAfniGsEdV!d4zWoy zh(1jrHf{p3kq^X%jX~H5hTaV!Ht>d6zX8O0^&xuIgIL!KqGw%*b>fK&(|8 zqDL)=)jc5AtO>D34a`)BSgjgFS%xS{5JeH9AVB1Kh#UuzWg*(_5N$SyRx3nzcZe1X zM6(&9$z(ROXf*+Y8io}xSl_mmS<|h9t>IS1>f!#M z?mxJncR%R9*?qD56!$UiG4A2+E!}Hao>^{MKDX?%th3CwBw5Cz@Q z{lFRZyW1D`ZCLT_Z|`rZJbRs)?_z16Hs%$=5#jG3Xal(!i(-Nn)-X3R7fOWTz(Q#F?IC1c7p zmNFn?rg)hB+^|CoWi>WgBPma@NrWWkVPzUgxr9yBNXiZjxs6qwi1PiKpplfpSBXYa zPF~|RlCta?r;(I5SFuJ?CR{}tNx5wmY9wW=RX|8$pp{QZVwIIgNMeeWtC5ubRSqGE z(N(raQkGU(8cBIqWojg4QZ-g1DL1My8cEqsWe}41OQmZhWh9kGNMae4N=RZ3<P#32}vxNMiY{lEyWS?zGka5ijc%WX{1I{ zR!Ji?lIkWjoRFk%P%I%yhoE7EB)x!!Y9!V5X9yulf1enQq&oQwCM4r#zYa4w1WI>o zkfirX5FtsIlQtSj^)qQrNYc3^kdUNDNh^({x{(BEB-M7rUn8joBYuP=y+nL9lIj}b z&`7F1h(bux2&AP(QY}APXe8C!qq#;>O+1=uB-O2>sYX(5IhtrB)qlf>kfhN@V;4!c z)M(@)>E0O)2}!zScxxop52FDgN#l$98cB7ysOKW-Ru*0wN%gF#tC3W53Qvusx=_^7 zNUGgLZ5K)Rm8j(+=>`%WRpbkuB5Jxwx+O#nLXzGO)mrkyOV8-bK=_6}T$$g&qp5i=>++*fo;siePh*bo&FVi=_J;xN9WU(7-}S z(z*cMF@QhUq1FSWNr9=R*$?-6c&Q(O2Yj%1-7iqnyy(=z0Uy=J^8)t$jQmKxC4ViS zLU#kaFK>{S$rY$OLB8yiW98m*IQrJVsa!|qP!GfV(s$C|(Kr43rESt0>2>t|eyNl# zB}y?;cl3?Eztl*oDOtsTpzrXnh-by4;vR7``qutGkVD`&af}#;zNhaZhKLIC3Y0~Y z@Qd)ha1qTT91?a4Zwqe-uLx66$AeU1xX?$45ZVaM1W$qIf9D_Y*ZE5R1e#gc&adSc z^K zWWdOPkpUwEMh1)w{M%$eG}}zj9{2axS%sPJLbzkZD+HmA5ETR!WHIvyN|Ttm1jRLD z<`5M5l$os|)OCTGMNncLW~PQv=LBX3L5G5v=`IA_5145#1nmu&sTx8J4486)R&HXZ z2xgn=xIQq*XEFiRDkc$N&n(jbY7;P#fcqy)3Ah|Lfq)ZRN(k6_d^`b5z8ObA#l~U{ zAUFLY0`fK%Y5@7+7Z7l7cRm4kx8)J={li=WZpP*ia6KfOfWIxyBA_rJlYpTKV+rUz za0~&FDH#NWHb^I+&B8Pa1f>$-d)27{f!dK8Kplc32pEwUPCyfLCjz{@ zI%)uQ=?x>GXHo|Ox&^lVAp5fHXBL<6YfZ7>1(Oj`nSb_EfT?cRofOyAZ7 zWIPWfAYo-I0vrzl2&lf#UjwMas~-W0H+(gKy0khpfcmg11Z2F`QUj=!Y6}gZW~t2y zhzV;(fJcj_8bJL_n-Fj?--m!*yBiZA?r5X|)Ks(~1sZx2kQUW|fVlYj1Pn{4=K|2X z(~E%J59$)|x(9L>P~S%%*=Db*$wPcb}l;+twq?3Rw2BC)*m#LYf0Zr zC!`Oh$&x3!6XA(?N4zASLU$qzLmdzn3gtq+kSv4>iXias@Ne+*(40UPKbot@3G8$B zNA?Q)Ih)0fwja0ev2V1`mUH9;=}ojEAs5Y73}PeM)~pX(leO4?L3MtmJ=EUP?rFE% zezScq50pF0L9$i)%0Av6EBz{MVf&-rj30~J&^*ReVU>NUJ>A{|CC7Le889+nWWdOP zk%9k5G9X*rY$lOZ%@|t%t93Jtp>n1%)Xp@9>Y2t+Khqd0Xp9AXd|X3gY*jH-(HQd> z<2st!&OjxNF|P8}S{h>x^lCLtwm-)8G>xI6meBKc!}~vmni@m=bRQ2yRW%J!T}?r# ztZ9g9YZ{{Jnue&prXi}ZX^3iU4DI-`2cRk&L-nel&ZZ%%v_%VBH4OlzHib~FO(9fl zQwUYt6hh@Tg;2dsodR`p%c3EwxoL>1ZW^Mxn}(?JrXi}msq>)Xn?^yY6hh@UK~R5F z2o>NILKQfLPzg>URD)9p72y;@RXBxE8BQTohf@d@;uJ!aIE7FtPNP1tH1ZloAykc1 z2$ka$LiIR>P(e;1RFP9Dgqoa&s4Ax*)a5ipl{pPjZB9c}os;uGc}^izpHm1G=oCT~ zI)zY)P9apIQ>W;Hs&r~2D$}WrP^i-omFh&>8P)1EsvSv5pokFN~r_KS@JJ}e4%6AH(`kg|kfTs|u;3W!UA4B{Gi7S1w^^pzL`ZPq< zK8Eu^^>i*?#Ivu@6)*QC*s@XsP-q~+fe-zi0gk0-CHXzmHV7q#wBz9>{IqUs`s62Gy4tuYIIk> zx9y_sRa6QV?0-%r3~u z4=5lycP7T`m0CJ z&nWm82cHbr?yGjd`m0CJ&Oy)fk1u@mBsg{u!$3=|zk2MfjFjw*wDiJ%a{LixRo4!E zy8i0%Q;G`4{{gI8}sPG(|$eBy+RtRnPZp{#o`90r*LL!Yz1 zd>Ch@vp5m|w<(J%LjThyLzA?>aFiGRE0skSqC=EHd$qrMh^qfDW#I+r2qn;$?XMmI z|DP!9k`Mo7aX+`edI0T(UlyJR7Xhu{{^~LCi@Pj57xsq^a({V$cmbF7&4FJj`fdg~ z&*>ea%D@W0ueAwo-!3URG_1%~m~zA9{by zFV0AIBBrn?KRX`1L6x-~i}pxl7-)(|?Li%s-Ywq=PS|L#F(`XZ=%4qm_fb!kn(9*) zoPo}j%rMYw@6YZBmzb_zA~fdv6T9W4rDdXo1*fSegC2f=Vz2y+v@~bFPnmZrdS>mR z-`|T_R{u2llr?vv!**pDXao47A|pGus4zaeC@Tq$(>z7hL61N^T><)Eos8aLyp!R4 z&_M7-RY7uoMlRakG6@~0C&NHr!50+Eyh0L@61_s8?Vz5r5dB5o(o|v1PS>jXHYBaipVGIM!4gaa$^*U-Fhjtjt zFf&jKL~4f@Qc1u5Qk>|*vhZ7TyHV)M#zM=)KeJ;-wzgyYk?J|2#p0jY6@3VaFHX!X zLMd)L0-e(dEgApJj;<#eHXNNWhhd<9UBUrNjRbFLrz&lEZTV-!$8N!Kescy zuHtj^oy8eBMFl=(ora+U6fg|*iTn!(P%przENrNH@z7iHFYFF~bI{I1)SaOl#nvwPSIHXeBaSnXfg-?f+9hu9U{ zGus*48e5UAyR9xdmGLk#U}V6^fRO*d^!<}DUS||Qf{NfjCRfF?f|T%oI3=i+^Vlltb?_b zpNCZ`ch}XTy9%(Da{1tua*Mw9P!QHq-XB&+xtY>xIflCtNuYx&&%;{E4aMRZr>|Y|O)l0_CMgz2vA(uqV-D6*-YIrR zk**fqA(D-?l%GuyaR4K7=QF8R9H)GSWlrnZvvh}6cL()_!v3qf3y(Cpv*`PaN zQn8dWfiXEU^|gfoPOPQ8VN8y(`r4rhDOgKc#+V#q^tHVQCSxt-Bx7=9=xZZWlCYLC zm@zrh^|hf55>+knoiQnCFKMe@32hc8U@c`wqon?UG$>w`5|bLmsW0`tI$D(y>l!6R zSBmZjio;UM&_+qtmp-^LN|h3u8zo6!`cu=9s+5@DD2e*gyYVAbDY3*+67;1fJ%(c` zWt5}D>q|eK8;hlseU36(UwXLDFjY!Sb(A=L>48T>RVlIBQAX)Y_oog~rNn?o8L2Pb z7pVS?s!nWqlo9&U-IoUAqf%x)=#!8PABtS_0t*YyWxe;wl>0C*V3H3r^0z1$4X~cE7-lmNzW#-rn;R`~^(%5k|g-g7GjiU}V6^fROX|z0 zMvhuD0PYu%q~(l!TmDi$D!(HykjJ6b1fg;>nUx+$mC|9f(RdgcFfw3dz{r4+0V4xO z28;|C889+nWWdOPk%9ld3^bF>%)oqSa!!7VGe15!DmGMZ)`I& zJ@cKpiO9boKBJ(Z$Ql2#q_!1Z1$t)A_^MO7uG<}5cOo(*`Y(HUSWOnhQW3d#t&gTP;NTZ#vl7iUT>bl*VhD$kgzgTqrpzdmGTMCJwhS5#WxX+9$! z?iY}x6^y(PISg>}c;q~|N%~p3ARUpLODp6d@(=Pc*w1(v889+nWWdOPkpUwEMh1)w z7#T1!U}V6^fRTa!t_(Cc4|Mz2^8%8G+28Huc>%Gmxt*I%_3um(>X?J{w(#}LVQzmg zFTm9>D{e2&3$P&ngLwhFkGUth@P9ThV1ujBnHR9ab?eRxxWftmU|zr?nH#&2c>yzI zY2K@e9_X{jp`Szg!znzJJd4UDOTa4UA_L6I%nE`icgYZPSC)^Ug z6)p;I$9mVvz%4AE}!ZDRq$AN&!+!$w#U$)t0JBsLzA= zyZD>X>#G;81 z3risuOn{hQ0x@qq#N2TZbBZBm7eUM_gqT?Xacn-sF?kR(av`SYKupVqn3@IAnF%pv zEX3q75R)<>CZB78KvCm+Ly$3<;H4tLY0T6rihuFOz#BO~dcI^W( zx;Mlwy&!h(2{Eb%#K`UtBf3Eh?+UR~G{lZwAcl2@*dYpH`$&kP5fIyjLk#HzF}Nf8 zuG}pQhHX1Q3~CRtO(?|H?H~q*Kx`EZF`z9({~(BdZ6Nx#hUf@{sI-FEG5}%=e~8Wf z;PAc>9DtiCFl-5-1>mO5AvS3S(WfcI#!VnL@`2c}F$f#M(7PeT2Hp_sH-K2LK18p2 z5bJtD^sEc9jwi(0bs*NN4bh_(#OfXpYu1EVqXuTGL#$Q}qAWv{B#5F2Q4k>VJVcIz z$g&Xac8E3`M5`5|yE{aS1)|vu(PT24Sr+|Ys|o+#T=N1aclT0GoPW3$&kI;W82Mef zQobu6mY2%YcIr{6>BfpTRHUBlsBJ z!83d*&EwV*#+CLwrjSvw)wU_wh~*4t-q~lfCyt!379>tJiRRk3=w|EK#8?&sYPx^H%0>^{YPjC+iGxO+?Y8kT34o0iWl`z-4$ z^DRl1@s>U)J;uYxfRO<$1GUV4Cgf~-<8DENUawX%+giPnTAx`^#eR4D!oCeFp8f6p zEtO}lGxJ?6?cdJ4LRjL{&QxeDWysFV(^$%Rotdk#l*KwTM`I~3b!N84Qm*ODERCi7 z(V3YVOF5x4Gc=a+JZGl6SlZm2ndV|?8*^r=#!`OeOu5EV#^lTt53`>ec8;Yi$R}$g z>NT81MF;#q^z#9G?MbP&eTZCyn3ug zQZChFG?KET&LAZ5ole(C%3wN;ki<$lm5{_V+NqJ0J#-2oi4k-%A&KR45+RAXbD~C4 zHqHqeNf|cB6Ovdnk0vBBVU8o@{i|!cgmlXw_;kt++m36dYyN9uG*VoXZF)ZHPTejidkrS!$LyZrmwQxfd9-Sfi%k2i zBx&Tm+g>-W1pY8kBY#aVT6TUx(8BGQE~PuJ=vLlYKSv_SL7;d-#vc`D*L&J{ozwnMab`VrL{iaV)LNbSv@uKyGKXsUu^q)_NL-q2>M991Kl9sO7F(>Vd zMIAMAn=`neWxs5<^^Jo(;&*Km3cI$N7^W$#q2>FepCU*Q0F7LBv;TqKrvn#@ zbzAyt&Xk-~=C!Eaou7vE;xlBODIKm1Ef>Vj8R29}I$qLH?ri@$vwP>^X2Nj26k4Gmp=XMb@c7wJ3^o@V*r)ibZ)ZM5uRS&Lm+7ga zcAwnR++J;K9gV!a_4IrF*SXEAd~~yj-~FA}SNu@RMK)(X-5r!VAiG1- ztQH>B ze5&{2MYEQS>U*ukx0;KbajDPSryGl6;iubkWfy53E#yDl89e?{ow|wW<^uf5>Y6p~ zx=*^>r$>7=xU^f;$Wik%&!vP9-n-`MP(dR@n%AheepJtxI+;K6F4FDQTPx3hK50nG z#^s&4D)QUo2hQ*D51s7YWaOZGtczS0TYOz8G|3p4COpyZe+m8`CQ1(GN#PxIS(jW(}|ZMA&WzQOy0Of}7ZEc#T5$StK4`tAx?$z{BUKGJ)@$9mVi zz`#of3g5|FxChS**tatBBl(v6wR{TQ3-G?YL0%?Tpst1avQv(gd&}YIJO8F~9hsA! zqj`ewq`#x@`S(lPq&3p(=-d5LDO*aEVx;cq`+R??kyKN%ivK|0;9n8Xibusg;%4-n z{eOtl#c|>oF%Er8-$e`&6|uf3izeY0;d^vf!fD}FSMn#&%))klEx(wb!%yUM_#}P^--8e11Ng?g2XEt^aQC>Y+&S(T zw-?Pctm0nfW^m)VvD|2GAQ#QG;~ZQAt{P`%AG5dFOY9l;FuRN0h~^#Uvs2i7HiaF^ z_Fy}(eylfJjWyXH*>Bn}*iYE^qx2XLBLhYTj0_kVFfw3d;D0RxqS zm<3g6749@S--U1|$yW$Mogym;D#&8y5tJq|a|w!T#>^oo@+mW0L#P`gGmD_aI?PNB zp^l2o41x{?G1FZLx*{^uTnO48GE+5#8XGd@1g+e}OcBgBwG-RGAfL$uRI8XofIYKJ z1E_uAL;~)gEG6J_+ynwnY$+jN=kf6bEcs>}0TmmIHGsP86%mlPu}}l3PhJ55_jczK zaCciC0pCB&CE#Xk4guFgvI+Rx;w%CR12PF1nlP4t-UG)F5SfxeKxl(>0@^H0qd-t9 z0lrtA8bJNkQV4i(Bbk7onkEr&H$IVolO72Kd^$ItfWv)86L8>B90B`NM-i|ua3le{ zFO48zeg1F?^ogZ_*DwOstsY9iT%REX%sw1Lz@$rq37F_PNCRCRmj)8xnK(cL(WmzG zCtyWdKLSc8_9ei-W*-f7xp<~G0bg5t5m0%%CjsY2^dMkkt?mS@`@S0i-CK4gpngQO z20FjDzY78HEa^t4`eZ)>5^wlwpyTSc4h@9m%u)!*c&nubLL+ipXdq0mBmNxxgda^)6ln?0!&}fY&{c zyMX#W`p7nWbsY^@#Rs)r;9HJJCw()3tV_-LN7Z3QQs|im1{}gODCicrOA>fx)b4vct^Y>od1y``iyzI^;{^6O`y+dW{hZBWN869v_t-buXUjQqg7hX@kC2OID+aNV zY-`qst;t&Kzo0t5(jIDWY4^0-ZNJ&Rmj}w7vc=72l1R;rv50V0)r_$Puv$0M7%FEP zL+wmssGeyI^)rp3g2q_D$Hz4^##R+W6^${EF|MPj?F>}X7(>m!O0A_a<^ZeJG}-TVjM%A1C$_NLB*if4*!5LM7zRG?D`Rp=B#B|3#rjZU4S3#!toji^kgHbS9J zLsY60ZD&-g)2MbNC53XGhNxhtAu8Evh>CU$aS`(v%64+#NL05|2o>%WLX|s(Q0Yz~ zRJ&8>fa;xWj6mf(g;4!YAymLq2vzVDLM1$fPz_I?0#)(UMpVWV1a&<16g#0xo`O)z zQwM@-p4u9Q>Uj!6MNf&Lrl%pQ>S>7TdI~~iPeWAO(-2kn7^=UAU{v3eX8;90jT(Am zsruI27}fYRL{&ZwQJs$=euKo7KH2)nhH8BpqG}&Q{N{@5eQIB*_zA={KZf`Z5U%>k zR$TXEXoL4@T=^66?Q&H66Y*`R{t3kOKZfqGFP;IQA({iAA({oi5NG2G%mZL(#{0rd z0EYPK5-MR*fI?_ifJTc<0{XK<&kM9bA852bg`JN+ z{*SDmeq90m2tup}800#*3Ed$OBP-JH(m83PREAddw-BF+Ux*vfy8M2kkMJ1H4Xi}p z=Jya9@IUjP@+R&hB9=*m!i$zt#Sg{at&xeTZGLJ+qy$ zt+5r^y4&hn@1T?x5uZywxmJ9l7RC7;J)nvVl#Zk^vYB$%FJTVny zO~zts84VJ1`rs#3F|~Zi zNx(t3}f%MOaI%OtLsi z^|kj;7Gf>6V9DZ`ps&3gSAezDIwp&wL|=PiOFq_8%bP5Y@%q}G$Mdk3TJ>acjMLXH z`6d@@sl`whN3p)PVq*^0Qfs8_jv`$xnhDCrT59Q($x*1U&D)rTwbY6#lTz@KRxQlX zBvK~UQVXq=e0}M?-D6cLS$?JD=}Yf!8>33eqAVp>U;6#S3{^^&YAHGT(wnjASV}G6 zQnK}>*F(}&DOuL#$a+bt-c5sMyi&20TI^+VWa?`R1Dse(tpPJR#_DT_CZu33wKUA+ z7^AQ4Jun$-sTE@;M~1#OG9?LXsfA=FN4mZ?v_Yb(CF{#fO4>`>s#ijrg$YxG_qVlI3hllD_n(rXy7; zS>&c9>Pzp&k5Hv#>6?/custom_components/integration_blueprint -## while at the same time have Home Assistant configuration inside /config -## without resulting to symlinks. -export PYTHONPATH="${PYTHONPATH}:${PWD}/custom_components" - -# Start Home Assistant -hass --config "${PWD}/config" --debug \ No newline at end of file diff --git a/scripts/lint b/scripts/lint deleted file mode 100644 index 752d23a..0000000 --- a/scripts/lint +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -ruff check . --fix \ No newline at end of file diff --git a/scripts/setup b/scripts/setup deleted file mode 100644 index abe537a..0000000 --- a/scripts/setup +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -python3 -m pip install --requirement requirements.txt \ No newline at end of file