From b27e58cc6384d13468174f57fe9da1fd54547a36 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Wed, 14 Jun 2023 14:28:23 +0200 Subject: [PATCH 1/5] Cloud-Backup --- packages/helpermodules/setdata.py | 3 ++- packages/helpermodules/system.py | 33 ++++++++++++++++++++++--- packages/helpermodules/update_config.py | 2 ++ packages/main.py | 1 + 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index 3daf0fcfea..57fdd1dc68 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -910,7 +910,8 @@ def process_system_topic(self, msg: mqtt.MQTTMessage): enthält Topic und Payload """ try: - if "openWB/set/system/lastlivevaluesJson" in msg.topic: + if ("openWB/set/system/lastlivevaluesJson" in msg.topic or + "openWB/set/system/cloud_backup" in msg.topic): self._validate_value(msg, "json") elif ("openWB/set/system/perform_update" in msg.topic or "openWB/set/system/wizard_done" in msg.topic or diff --git a/packages/helpermodules/system.py b/packages/helpermodules/system.py index d5cab21add..60e9738f21 100644 --- a/packages/helpermodules/system.py +++ b/packages/helpermodules/system.py @@ -9,6 +9,7 @@ from helpermodules import pub from control import data +from modules.common import req log = logging.getLogger(__name__) @@ -17,9 +18,9 @@ class System: def __init__(self): """ """ - self.data = {} - self.data["update_in_progress"] = False - self.data["perform_update"] = False + self.data = {"cloud_backup": {"ip_address": None, "password": None, "user": None}, + "update_in_progress": False, + "perform_update": False} def perform_update(self): """ markiert ein aktives Update, triggert das Update auf dem Master und den externen WBs. @@ -72,3 +73,29 @@ def update_ip_address(self) -> None: if new_ip != self.data["ip_address"] and new_ip != "": self.data["ip_address"] = new_ip pub.Pub().pub("openWB/set/system/ip_address", new_ip) + + def create_backup_and_send_to_cloud(self): + cloud_backup = self.data["cloud_backup"] + if cloud_backup["ip_address"] is not None: + backup_filename = self.create_backup() + with open(self._get_parent_file()/'data'/'backup'/backup_filename, 'rb') as f: + data = f.read() + req.get_http_session().put( + f'{cloud_backup["ip_address"]}/public.php/webdav/{backup_filename}', + headers={'X-Requested-With': 'XMLHttpRequest', }, + data=data, + auth=(cloud_backup["user"], '' if cloud_backup["password"] is None else cloud_backup["password"]), + ) + log.debug(f'Sicherung erstellt und unter {cloud_backup["ip_address"]}/public.php/webdav/' + f'{backup_filename} hochgeladen.') + + def create_backup(self) -> str: + result = subprocess.run([str(self._get_parent_file() / "runs" / "backup.sh"), "1"], stdout=subprocess.PIPE) + if result.returncode == 0: + file_name = result.stdout.decode("utf-8").rstrip('\n') + return file_name + else: + raise Exception(f'Backup-Status: {result.returncode}, Meldung: {result.stdout.decode("utf-8")}') + + def _get_parent_file(self) -> Path: + return Path(__file__).resolve().parents[2] diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 75736b0769..915df9c264 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -318,6 +318,7 @@ class UpdateConfig: "^openWB/LegacySmartHome/Devices/[1-2]+/TemperatureSensor[0-2]$", "^openWB/system/boot_done$", + "^openWB/system/cloud_backup$", "^openWB/system/dataprotection_acknowledged$", "^openWB/system/debug_level$", "^openWB/system/lastlivevaluesJson$", @@ -407,6 +408,7 @@ class UpdateConfig: ("openWB/optional/int_display/theme", dataclass_utils.asdict(CardsDisplayTheme())), ("openWB/optional/led/active", False), ("openWB/optional/rfid/active", False), + ("openWB/system/cloud_backup", {"ip_address": None, "password": None, "user": None}), ("openWB/system/dataprotection_acknowledged", False), ("openWB/system/debug_level", 30), ("openWB/system/device/module_update_completed", True), diff --git a/packages/main.py b/packages/main.py index 2041c8f2d9..bf113a54eb 100755 --- a/packages/main.py +++ b/packages/main.py @@ -123,6 +123,7 @@ def handler5Min(self): def handler_midnight(self): try: measurement_log.save_log("monthly") + data.data.system_data["system"].create_backup_and_send_to_cloud() except KeyboardInterrupt: log.critical("Ausführung durch exit_after gestoppt: "+traceback.format_exc()) except Exception: From 011c41978c906176e50c367f7f5e12dc6e64c92b Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 15 Jun 2023 11:29:41 +0200 Subject: [PATCH 2/5] configurable --- docs/samples/sample_backup_cloud/__init__.py | 0 .../sample_backup_cloud/backup_cloud.py | 23 +++++++++++ docs/samples/sample_backup_cloud/config.py | 17 ++++++++ packages/helpermodules/command.py | 9 +++++ packages/helpermodules/setdata.py | 2 +- packages/helpermodules/subdata.py | 9 +++++ packages/helpermodules/system.py | 29 +++++++------- packages/helpermodules/update_config.py | 4 +- .../backup_clouds/nextcloud/__init__.py | 0 .../backup_clouds/nextcloud/backup_cloud.py | 39 +++++++++++++++++++ .../modules/backup_clouds/nextcloud/config.py | 18 +++++++++ .../common/configurable_backup_cloud.py | 15 +++++++ packages/modules/configuration.py | 39 ++++++++++++++++++- 13 files changed, 183 insertions(+), 21 deletions(-) create mode 100644 docs/samples/sample_backup_cloud/__init__.py create mode 100644 docs/samples/sample_backup_cloud/backup_cloud.py create mode 100644 docs/samples/sample_backup_cloud/config.py create mode 100644 packages/modules/backup_clouds/nextcloud/__init__.py create mode 100644 packages/modules/backup_clouds/nextcloud/backup_cloud.py create mode 100644 packages/modules/backup_clouds/nextcloud/config.py create mode 100644 packages/modules/common/configurable_backup_cloud.py diff --git a/docs/samples/sample_backup_cloud/__init__.py b/docs/samples/sample_backup_cloud/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/samples/sample_backup_cloud/backup_cloud.py b/docs/samples/sample_backup_cloud/backup_cloud.py new file mode 100644 index 0000000000..7e2434a4cc --- /dev/null +++ b/docs/samples/sample_backup_cloud/backup_cloud.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +import logging + +from docs.samples.sample_backup_cloud.config import SampleBackupCloud, SampleBackupCloudConfiguration +from modules.common import req +from modules.common.abstract_device import DeviceDescriptor +from modules.common.configurable_backup_cloud import ConfigurableBackupCloud + +log = logging.getLogger(__name__) + + +def upload_backup(config: SampleBackupCloudConfiguration, backup_filename: str, backup_file: bytes) -> None: + # upload backup + req.get_http_session().put() + + +def create_backup_cloud(config: SampleBackupCloud): + def updater(backup_filename: str, backup_file: bytes): + upload_backup(config.configuration, backup_filename, backup_file) + return ConfigurableBackupCloud(config=config, component_updater=updater) + + +device_descriptor = DeviceDescriptor(configuration_factory=SampleBackupCloud) diff --git a/docs/samples/sample_backup_cloud/config.py b/docs/samples/sample_backup_cloud/config.py new file mode 100644 index 0000000000..afc3eca9fd --- /dev/null +++ b/docs/samples/sample_backup_cloud/config.py @@ -0,0 +1,17 @@ +from typing import Optional + + +class SampleBackupCloudConfiguration: + def __init__(self, ip_address: Optional[str] = None, password: Optional[str] = None): + self.ip_address = ip_address + self.password = password + + +class SampleBackupCloud: + def __init__(self, + name: str = "Sample", + type: str = "sample", + configuration: SampleBackupCloudConfiguration = None) -> None: + self.name = name + self.type = type + self.configuration = configuration or SampleBackupCloudConfiguration() diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index 9d4f04471e..a6d8b838c4 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -661,6 +661,15 @@ def createBackup(self, connection_id: str, payload: dict) -> None: f'Backup-Status: {result.returncode}
Meldung: {result.stdout.decode("utf-8")}', MessageType.ERROR) + def createCloudBackup(self, connection_id: str, payload: dict) -> None: + if SubData.system_data["system"].backup_cloud is not None: + pub_user_message(payload, connection_id, "Backup wird erstellt...", MessageType.INFO) + SubData.system_data["system"].create_backup_and_send_to_cloud() + pub_user_message(payload, connection_id, "Backup erfolgreich erstellt.
", MessageType.SUCCESS) + else: + pub_user_message(payload, connection_id, + "Es ist keine Backup-Cloud konfiguriert.
", MessageType.WARNING) + def restoreBackup(self, connection_id: str, payload: dict) -> None: parent_file = Path(__file__).resolve().parents[2] result = subprocess.run( diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index 57fdd1dc68..1575d0f6d3 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -911,7 +911,7 @@ def process_system_topic(self, msg: mqtt.MQTTMessage): """ try: if ("openWB/set/system/lastlivevaluesJson" in msg.topic or - "openWB/set/system/cloud_backup" in msg.topic): + "openWB/set/system/backup_cloud/config" in msg.topic): self._validate_value(msg, "json") elif ("openWB/set/system/perform_update" in msg.topic or "openWB/set/system/wizard_done" in msg.topic or diff --git a/packages/helpermodules/subdata.py b/packages/helpermodules/subdata.py index ea78ceb11d..a01d28f787 100644 --- a/packages/helpermodules/subdata.py +++ b/packages/helpermodules/subdata.py @@ -115,6 +115,7 @@ def on_connect(self, client: mqtt.Client, userdata, flags: dict, rc: int): ("openWB/internal_chargepoint/#", 2), # Nicht mit hash # abonnieren, damit nicht die Komponenten vor den Devices empfangen werden! ("openWB/system/+", 2), + ("openWB/system/backup_cloud/#", 2), ("openWB/system/device/module_update_completed", 2), ("openWB/system/mqtt/bridge/+", 2), ("openWB/system/device/+/config", 2), @@ -698,6 +699,14 @@ def process_system_topic(self, client: mqtt.Client, var: dict, msg: mqtt.MQTTMes user = splitted[2] if len(splitted) > 2 else "getsupport" subprocess.run([str(Path(__file__).resolve().parents[2] / "runs" / "start_remote_support.sh"), token, port, user]) + elif "openWB/system/backup_cloud/config" in msg.topic: + config_dict = decode_payload(msg.payload) + if config_dict["type"] is None: + var["system"].backup_cloud = None + else: + mod = importlib.import_module(".backup_clouds."+config_dict["type"]+".backup_cloud", "modules") + config = dataclass_from_dict(mod.device_descriptor.configuration_factory, config_dict) + var["system"].backup_cloud = mod.create_backup_cloud(config) else: if "module_update_completed" in msg.topic: self.event_module_update_completed.set() diff --git a/packages/helpermodules/system.py b/packages/helpermodules/system.py index 60e9738f21..47aa8e43ea 100644 --- a/packages/helpermodules/system.py +++ b/packages/helpermodules/system.py @@ -5,11 +5,12 @@ import subprocess import time from pathlib import Path +from typing import Optional from helpermodules import pub from control import data -from modules.common import req +from modules.common.configurable_backup_cloud import ConfigurableBackupCloud log = logging.getLogger(__name__) @@ -18,9 +19,9 @@ class System: def __init__(self): """ """ - self.data = {"cloud_backup": {"ip_address": None, "password": None, "user": None}, - "update_in_progress": False, + self.data = {"update_in_progress": False, "perform_update": False} + self.backup_cloud: Optional[ConfigurableBackupCloud] = None def perform_update(self): """ markiert ein aktives Update, triggert das Update auf dem Master und den externen WBs. @@ -75,19 +76,15 @@ def update_ip_address(self) -> None: pub.Pub().pub("openWB/set/system/ip_address", new_ip) def create_backup_and_send_to_cloud(self): - cloud_backup = self.data["cloud_backup"] - if cloud_backup["ip_address"] is not None: - backup_filename = self.create_backup() - with open(self._get_parent_file()/'data'/'backup'/backup_filename, 'rb') as f: - data = f.read() - req.get_http_session().put( - f'{cloud_backup["ip_address"]}/public.php/webdav/{backup_filename}', - headers={'X-Requested-With': 'XMLHttpRequest', }, - data=data, - auth=(cloud_backup["user"], '' if cloud_backup["password"] is None else cloud_backup["password"]), - ) - log.debug(f'Sicherung erstellt und unter {cloud_backup["ip_address"]}/public.php/webdav/' - f'{backup_filename} hochgeladen.') + try: + if self.backup_cloud is not None: + backup_filename = self.create_backup() + with open(self._get_parent_file()/'data'/'backup'/backup_filename, 'rb') as f: + data = f.read() + self.backup_cloud.update(backup_filename, data) + log.debug('Nächtliche Sicherung erstellt und hochgeladen.') + except Exception as e: + raise e def create_backup(self) -> str: result = subprocess.run([str(self._get_parent_file() / "runs" / "backup.sh"), "1"], stdout=subprocess.PIPE) diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 915df9c264..21b9287df7 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -318,7 +318,7 @@ class UpdateConfig: "^openWB/LegacySmartHome/Devices/[1-2]+/TemperatureSensor[0-2]$", "^openWB/system/boot_done$", - "^openWB/system/cloud_backup$", + "^openWB/system/backup_cloud/config$", "^openWB/system/dataprotection_acknowledged$", "^openWB/system/debug_level$", "^openWB/system/lastlivevaluesJson$", @@ -408,7 +408,7 @@ class UpdateConfig: ("openWB/optional/int_display/theme", dataclass_utils.asdict(CardsDisplayTheme())), ("openWB/optional/led/active", False), ("openWB/optional/rfid/active", False), - ("openWB/system/cloud_backup", {"ip_address": None, "password": None, "user": None}), + ("openWB/system/backup_cloud/config", {"type": None, "configuration": {}}), ("openWB/system/dataprotection_acknowledged", False), ("openWB/system/debug_level", 30), ("openWB/system/device/module_update_completed", True), diff --git a/packages/modules/backup_clouds/nextcloud/__init__.py b/packages/modules/backup_clouds/nextcloud/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/modules/backup_clouds/nextcloud/backup_cloud.py b/packages/modules/backup_clouds/nextcloud/backup_cloud.py new file mode 100644 index 0000000000..e3526f9c0e --- /dev/null +++ b/packages/modules/backup_clouds/nextcloud/backup_cloud.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import logging + +from modules.backup_clouds.nextcloud.config import NextcloudBackupCloud, NextcloudBackupCloudConfiguration +from modules.common import req +from modules.common.abstract_device import DeviceDescriptor +from modules.common.configurable_backup_cloud import ConfigurableBackupCloud + +log = logging.getLogger(__name__) + + +def upload_backup(config: NextcloudBackupCloudConfiguration, backup_filename: str, backup_file: bytes) -> None: + if config.user is None: + if "/index.php/s/" not in config.ip_address: + raise ValueError("Benutzername weder im Link noch im Konfigurationsfeld angegeben.") + try: + upload_url, user = config.ip_address.split("/index.php/s/") + except ValueError: + raise ValueError( + f"URL {config.ip_address} hat nicht die erwartete Form https://nextcloud-url/index.php/s/user_token") + else: + upload_url = config.ip_address + user = config.user + + req.get_http_session().put( + f'{upload_url}/public.php/webdav/{backup_filename}', + headers={'X-Requested-With': 'XMLHttpRequest', }, + data=backup_file, + auth=(user, '' if config.password is None else config.password), + ) + + +def create_backup_cloud(config: NextcloudBackupCloud): + def updater(backup_filename: str, backup_file: bytes): + upload_backup(config.configuration, backup_filename, backup_file) + return ConfigurableBackupCloud(config=config, component_updater=updater) + + +device_descriptor = DeviceDescriptor(configuration_factory=NextcloudBackupCloud) diff --git a/packages/modules/backup_clouds/nextcloud/config.py b/packages/modules/backup_clouds/nextcloud/config.py new file mode 100644 index 0000000000..bc94784a7b --- /dev/null +++ b/packages/modules/backup_clouds/nextcloud/config.py @@ -0,0 +1,18 @@ +from typing import Optional + + +class NextcloudBackupCloudConfiguration: + def __init__(self, ip_address: Optional[str] = None, user: Optional[str] = None, password: Optional[str] = None): + self.ip_address = ip_address + self.user = user + self.password = password + + +class NextcloudBackupCloud: + def __init__(self, + name: str = "Nextcloud", + type: str = "nextcloud", + configuration: NextcloudBackupCloudConfiguration = None) -> None: + self.name = name + self.type = type + self.configuration = configuration or NextcloudBackupCloudConfiguration() diff --git a/packages/modules/common/configurable_backup_cloud.py b/packages/modules/common/configurable_backup_cloud.py new file mode 100644 index 0000000000..1514d85f2b --- /dev/null +++ b/packages/modules/common/configurable_backup_cloud.py @@ -0,0 +1,15 @@ +from typing import TypeVar, Generic, Callable + + +T_BACKUP_CLOUD_CONFIG = TypeVar("T_BACKUP_CLOUD_CONFIG") + + +class ConfigurableBackupCloud(Generic[T_BACKUP_CLOUD_CONFIG]): + def __init__(self, + config: T_BACKUP_CLOUD_CONFIG, + component_updater: Callable[[str, bytes], None]) -> None: + self.__component_updater = component_updater + self.config = config + + def update(self, backup_filename: str, backup_file: bytes): + self.__component_updater(backup_filename, backup_file) diff --git a/packages/modules/configuration.py b/packages/modules/configuration.py index d127019d00..3a4373a126 100644 --- a/packages/modules/configuration.py +++ b/packages/modules/configuration.py @@ -1,6 +1,7 @@ import importlib import logging from pathlib import Path +from typing import Dict, List import dataclass_utils from helpermodules.pub import Pub @@ -10,12 +11,46 @@ def pub_configurable(): """ published eine Liste mit allen konfigurierbaren SoC-Modulen sowie allen Devices mit den möglichen Komponenten. """ + _pub_configurable_backup_clouds() _pub_configurable_display_themes() _pub_configurable_soc_modules() _pub_configurable_devices_components() _pub_configurable_chargepoints() +def _pub_configurable_backup_clouds() -> None: + try: + backup_clouds: List[Dict] = [ + { + "value": None, + "text": "keine Backup-Cloud", + "defaults": { + "type": None, + "configuration": {} + } + }] + path_list = Path(_get_packages_path()/"modules"/"backup_clouds").glob('**/backup_cloud.py') + for path in path_list: + try: + if path.name.endswith("_test.py"): + # Tests überspringen + continue + dev_defaults = importlib.import_module( + f".backup_clouds.{path.parts[-2]}.backup_cloud", + "modules").device_descriptor.configuration_factory() + backup_clouds.append({ + "value": dev_defaults.type, + "text": dev_defaults.name, + "defaults": dataclass_utils.asdict(dev_defaults) + }) + except Exception: + log.exception("Fehler im configuration-Modul") + backup_clouds = sorted(backup_clouds, key=lambda d: d['text'].upper()) + Pub().pub("openWB/set/system/configurable/backup_clouds", backup_clouds) + except Exception: + log.exception("Fehler im configuration-Modul") + + def _pub_configurable_display_themes() -> None: try: themes_modules = [] @@ -42,7 +77,7 @@ def _pub_configurable_display_themes() -> None: def _pub_configurable_soc_modules() -> None: try: - soc_modules = [ + soc_modules: List[Dict] = [ { "value": None, "text": "kein Modul", @@ -93,7 +128,7 @@ def add_components(device: str, pattern: str) -> None: for path in path_list: try: device = path.parts[-2] - component = [] + component: List = [] add_components(device, "*bat*") add_components(device, "*counter*") add_components(device, "*inverter*") From 15bc75745401759abfbb763cc7e004c830a4d419 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 15 Jun 2023 11:57:48 +0200 Subject: [PATCH 3/5] Wiki --- docs/CloudBackup.md | 10 ++++++++++ docs/Nextcloud.png | Bin 0 -> 119863 bytes 2 files changed, 10 insertions(+) create mode 100644 docs/CloudBackup.md create mode 100644 docs/Nextcloud.png diff --git a/docs/CloudBackup.md b/docs/CloudBackup.md new file mode 100644 index 0000000000..c77217e686 --- /dev/null +++ b/docs/CloudBackup.md @@ -0,0 +1,10 @@ +_Einstellungen -> System -> System -> Sicherung/Wiederherstellung_ +In den Sicherungseinstellungen kann ein Cloud-Dienst für automatische Sicherungen hinterlegt werden. Die Konfiguration des Cloud-Dienstes wird in diesem Wiki-Beitrag beschrieben. + +### Nextcloud +Zunächst einen neuen Ordner erstellen/auswählen, in den die Sicherungen hochgeladen werden sollen. +1. Freigabe erstellen +2. Hochladen erlauben (oder file drop only) +3. Link kopieren + + \ No newline at end of file diff --git a/docs/Nextcloud.png b/docs/Nextcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..74c4e178c6b67b55144a98abfda929da327dceae GIT binary patch literal 119863 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�}JVHR6t}1 z=?(*=29(ZGk&Xd|VWj`}i@JYXhJ8MqZ|7Y9{b66o#k}*pPu}-h>t0Xse$XARIWDfU zXY`}b<{DweO4T{bG191aJVgt?pgLBlmWE1Yp}wu;a628^s;N?^@?hX%N@Uh{SSJbqI+Q>(5(qovw9KbS>O~Qy6rt@>sBZ*5K$ooil0DKYJyx z@uK4|YnwxLavVzQ<4s^tGT6Ng1RMdX?qtCk2br z%Ki+ng~!ofpciP+^x-Q%M)Dse>mD`#@?4H8?MlyBVh^{UN)Lk5K2gy5`DfyYfC7@U zDp-qbK;iIW; zcNb$Br ze~nYSnI6;vLU1igsHNX0@IP~nKb?n`qyMz%>XYC*ZW^MQE|T3cPAf4LD(-_tG`m!!#h8C<=)(EPA7cNs6<~1*g zP>a$P{hg!|^OGt5`I;&1olHf@^17jmXbC*aEos+$0)2~K8M4)uUuGs3LZSDDT=g;g z*8JI@e?FFl_U@j$c5Tnv_WtfLkZe#!z8rOVtG#wh|2<_`k08{{52Nc>|LWrZ^|-V> zQr(a?_|cqfslbcCQ_zq1KzIB5KD@Y&eslGqpV?s66~-{6{C0c!)B1lV;eSrAKh3xh zDy?GA9oq7Tu4;DuX7|Sn;GZ{_KDO-#M#o6&8H3hrCR>PdQYo8YPZOQam<_OP{>7H9 ztNVoVMr427;D6$G2mE>oXwqXRbhpAmOTy!WT%$>N_dPVv59olwjE-I8EJPe1e9MtL z!a!+tyva*R_!}iuSzCms^&g@9?=9@{CiRop%hC(hDGY^r$^k$EoV=el_x%BP>yqfD~mtUZa;kkG+C69@ADfUO2483Y0{S% z>e02kGiwcHu7c}Ox-`n%Dn(-8s{Fw_=`BOHIkhHfgz~14_WWev)vV?k@{1dyj(0KF zKIcIH<$KY^$jB%N7R@@~m=SMOV|QbqE?f{2;!Iub2@8-C|Cr6b@$so$gL*S1z#)#L zYAlw=eE;B!Yp^5ikrEGCt5IKNy1M;COBQ2vWa^)#=YBA8W4NYruEa~DFTg_A0C-!i z*^!zZCVTTm40iq0iG%vaRuDjEu;lf+rZ^0L`53(bh6Ce}L-A&ISAi?ms)GhN(({kq zF&@A3TM}(tQmosSs+CnaZdM(@)*q3S{|xH<1}CzhD*d~counMtjqFaK^)X&sWwVQh z;-tTScKTj~UAo_@hamR)DQaw1_p-e#vYv27$Lz8*)=CZ zz!vSzZiUs|dzU3o38UuPt>x}r4!>Zt>T%HswqrjtBT5d79BgxW6rx;qefiWD>I)Il z;Nlkz<^I=06YkoBYm6Iql&gBb4MtL)zx0^Vy+N*OTeAVK>h|xIdz?y-S(se0r&g9Z zDjGwdvX&Qy6-yVHmz^C?DiW;^3ES`Zyvx9|l{nguep0XVfcZQJg+J>g*d26&Lf8Tf z7!;Q65VbDiBVoC+M9Mpj6@IU_^+>wf!42T1!QLSkd?=gT+n&+xJ?4q{ zK5PKz)m7hzPDE6^I90LbV~>GR&IBlnyO6s9L0ua;%mTX3x2Q%J7YRV9d8m09TFhE& z8O+{tL&0RbN9oww_!k|0#E;l?q-%ciTJ8MY7N?aUYf~L!AhzR##kWLiS?P*acT$fK z7jhfr`&quXYz)Wr4XI z$j*~h0Jzx%3Q7bL8J14`?CQre95TN_m7F6peo29s>ds)a)2jRmcYo!?#B$9v3z)`^ zLt(l#zAzW68hG4XKrxvM4su0H!wKFs85*h@KM}R#H(m|A+s{jepYSU7#ONLf?9fEHZE=w{4obcH6LYq zf-CB(fEEmV@+m3?0KwPmLCkJQ$)3G;PUA^Z>D&gT-RCxSM5v-ieV7U6(JMVc$=xqL zuE^EB_P#Xa?kh5|Ur2ipD^9qg>TYJNf9Q7k##vCuw*$>J#vd0PzEsT-dkp~6RIsk> z<<_0-+;%2Kbr8A04XRu$miOc1@)uIJUjj9o0-FqYeGb(aA@{dW*agokON(=I)*1`A zq1Xq4J3h0NE>6p*KWo^JESUSW!Q5mE<}?U&remyJZUyyQUlx+Tk~zW=Yb3yv-%XLD z;#6su&p|;&IntJnH$TKMRJSkVI}9h?-}SVKrK3P7=Tu=%6%3b|E2(M_&|6rBD9Yd9#GNK|#YSGgoUVDj zlI~OJRFW6+6{R0b(&}DP-+CduCQ`^o(AbzWP%FHtCP+gyPK&$w{qdXCss)@V5KKo0&Q3wK|${?xg5iInZHOo|KCJ!f3vg zDTT#u(tWS=EOuCxjbClw`Ghk;R;h_f#`{xzvgNFUa`rlTre5s$dh+lKhu4TWaIV56 zxWn&ZB~sWQ-6mDR%U6g0!J0_9JZ~U<#p+2t*^wcwzIBM|E>9y9^|kumHl0pp+FiHO zYPOV@oK*N4g~HkrgNby-U{%$1xAGh{RSKGLI$*z}iuo+nZjq9M# z7T!%^M7$VY{-z8Qx@m;X11@{B=iM}ui58GSEd$dr(eGB6UZeMV9|5T)0RXOb7sC&A zKb@S{u==mHB^eSx$$t|l@7rvgx~7cFum<(bcBRT2pIQa5#T+e{qt)1dfWMP1FKe?r zMgNP=`p#|KxrjsC_+ahC+GY3J9-XSn;z)Y!GS#B7l)dfbl1DcrKU*J!V5m#=2a5^4 zNulxGaIF=zqFl`(49Fh~V6%(B!}_@A)^sldV8aUir<>J$T>#FW>u8+2PuTg#)e_v0 z3K>R*V^)#cQ^gA>oiSfiNBBrUuC_Q&G$#l4z%DnJa6)a+1+JUShD(f9+22Nt@TF*E z-K)?K$(}E9A8xnkEdehBx4x%EE5NG`Qhe)tqzh_FoOibmEnwriOuDR8mrf7sH=U!2~iOd z+J_tBj#+GFR&8D)7G*k)Yishn;$xtCPo#SXXZ}OQdJ^muSt6Scozz)dstcB%nfpBY zt%Hlq?px)L&D^kw6rAypw{CmeZoB=l#75vy8uPivAJ8ivuQlH5s&G5;_I3JD!8mOo z?A|5T;57w_SW7tL9WcQyx@z*5FP~a!{Ldm<=>+PVJoAMr1IAz4>6Occ>F!m&<*4=9 z^_U5SofoiKhHPtkR{a2nO@Sec2yh&l&nHdfReZ-`6jU6;<*5r;G7>)n$&_ zN8h=G_#4VTF5!NA^gmLc4d^!r3fuC%duCqemtP&)lu%*rj0Or&T>Ev(&c|A+`q zA%eN}dihV<@kSfsX!U0(ssCss>t;m7^!2>4{F;vV^G|7Y#1+uob^;21|NQQ+pFYGv z61l!^{nwg(ZH{0e+}NeHOZazwhW^h(<OjL&5I zkGG6_18=FBBTOO#l7A1y4Fo9ME~%DFt|6sX3z7zH(?x}k;_yv<$Tux+%#tAgrZ{m5 zv~-+!D2f|2UjEQ2!mjO>d;g5}KgsB>B+$;a|$nSpGRR+!JBXwk<$eXh|1LEExpxb^n`v00h|KDf=Yw|mj8;}bBuM_|I zY3puh@RdfK3Li#s7cRiIk&&iXv`^x37By=|6AU|k=2AHY`6toszY}5O&LOxTh(<8< zvd^ACzfE-5KH)y^(-=_g0Iw@g zf@t_)(T@OmOSk~)R0;mK38QwuTOAgg3yQUl5b$1)C#7LrIPLvyB^hDvtWX&)kk58$ z%(hprUgdN5I`=(KjNQpB+72!>s}?^?i-d-^rAsGq1|XN)v7fJ8a(?LL))FV$;DyhW*?@B*Qsnx>6a4rd z^)Nwfl8eMSKt6XYqWimDn*Yw-PF zU=nxEFw>{<6HsLQvQ>Mu|KZkKDbWtCTDjNXZw^hyaG8Q*nrBU&hN|N<%ur7^60^0I zI*!(P2Qy{R&iEhkvb-;-WqHqs`UD+jWxW{T&rW?od+2pgqs4Im=eNgGDxaf2@#4jc z<8oK|9`D&W%r7N1I#?=#5^);9Mu(&D5`?rt5!7slacT}ug4Xkn$y85S8tDmdmQt0P`1-$5^)ZETDgI_SxyR%l*30K3 zht}X>AM>M5&h=}_J`8%Iw|X(ab?PmOA_xUh23~M4Q`pGUMZj*dtGH+&>u1lLe4go z-EiH8ri4&RtSZ5!@3~M~ysgIG^um!hY!!n~In%B+T$Wwv!F%MTEh{)j_Z_s%IIBk$ zH7V4VWLc>q&#k^Z`ADj{rGdsJ>zxSi$tb9fv@r8ASp3e=AMMneywN%3{JkM45l<_I zdS?eGigxx}SfAMCnIvNXPSPEcBS$k|h^C;cT3SKN8l!q6z;C|pbiIzc1IV+mrR^IP1J@roq9uR2;PS zJNPzI(C{~@d_TgS;!7XL{zE~Y@o6&+cH1WUT%PR4b8NitVTajJbF%x$=b?pTrl+7l(-U;@UZ69svWZGwaIEb|mb%k|9j z1cCGa8t6YG-pA%=cm{1_V9ZAMbAZiJ3v2*Cn7N!Vpcmvgu2AibQBm9<{gnipH8-4t zE<5}HQLNW?JW328RF4c68}d1XgF<(((^T%lt00-I0AZY#M6`OzBWA~I%%_bx_}g@2 z4^%7EE~?x!g0Zr4d_EPuw+SxQG~@2^AJ3-jIh4A5?r`L zy8{_c=ba{J$%j*x0stNZW)b28srk>oA&3`n)Sc;Si7Xf7DrV4_8fdZ(CfwC>kBq3J zxlF$S4?AqXP}!V92|MpR;`%v~BhU5r!jj_M=-Z-b;?+yc>LfPHQqZl9I?CC+O6Zn3 z*8+QMSz4i@bY!VY;2a!JZw9j$j$XGN2#6CS1}BA^MA(5Go`l(F?WB;!yU}e#)ilRp z_>1Tzx5CIzA3iwt_%o0n)B=)>>;EfU$hX)08O#7K^CDz{BZ zkqR1GTt6RLXs@bCk|ZYE!HFAMeCKVlK~EYEqtfQ(b2r0fNPOGr!)q2e^{y~VijrFS z8I~iwZx9i*c}DmoIBO1a!F<-?j`p`uJtSg$26on;0Str21~n$g)zCQ~K7iA)+NMs* zWUbW54WjYWNm5J0qG}@?91pNhyLCfntCc)5H`mY<>S!J^^?uMn6Gd-lItBv!bOc-@ z7CMsnyDYPa4>FOFi^hSLa^&gPR=WK;_w_wr{iuR4;;N<|#}6cLuSE{q%4;Q6V+~BF zaY1xXj5M501qiV3X;|=8i6%(d*_cMz%It_Z{S`tCy}=kdwxnoB?bJR58*5`=A8;P{ zoQ7j+^71NwT*k9-Na9T5jeY;y;gE?RcbWnS1-sZ4F;`O)!#x!Am*Vs=f$sGjFVA$< zJH2ac?yGkib(~FLzm3OZu8ixoIk9Fnn0K_cyz6VKdY~&N+4rN@07QiR0Q>k}P0G*l zr7YL#5qrP=boN9VgcD1SbA;FxUAkq(TeXB5&y>o%^q`DSH3OwJhGz)#6|^48x!`FV z(9)f35Y52gGhP}ws$EtkQ02_7Hc>J!%&X_EuA!D^F)Y+@nA9sagq?FIcBSzyh;kYl zqfASl%dDN=VO&%yye^jgjFn#eP%7}2Ip$VX<_qDJh^p54t+FVEb1l6UBkl7Cy52s( z^c_5tR2H<6QTAY)d)_EY7v*g#S)y}q^6kTK!$K8K2C3RpX~_J`-mVieVKa#xJ-Ie|5I+SEG=isJS(x-2T^@g08*@8GCjAWv3PQ#BOPP z2=sDQ#P~o_j=jvNBYv8(9{)sL<|RpdiCsEwfiiKZRLAbp-=p>CZ5z!tUPmQ;e17TA zFaABX(L8&02|9f{?;yYKhljH7W)w7iuRQwi&-^*~q#3qSM;1-S7qYE=+tsttUR%1o z+sw8P*mLr4j@w4{pkD8%au3~~r~P%FigL4BPGsj#{n>8+YFy((igyD%cV1gR`Rg-( z{x*6aypeXd^IxC&(}baO&>0MpYIzsP+jMsWT5%f;AGfvm`Y#j@ow4oE8=WJ6p7!rI zlTLy+iry#0vhE8NDnn;Hq;26|zc-rTjTE09^j-Ib^o~Pkyn8ef^5+fzdb9sKy#MN! zp>ycu!pWF!@>x~Bi$0%#6{}@->OK{x^_)p069dfYroz^Xl+^Z$FgPL>N6E&9T?b8B z52@(%-H8<_2-_=2D~r8IDask=EwkQ!!pbL0fjHF6_49gadBCmnv|qNf-)TqkFJ1f3 z7wLPirn9iCmz8+UH8vP5jcE1*z|8A8S8E_?U+43U1ENchhB|K=vgoq%JnPv3_7}N+B#m+69qt2DeJ&-)*2>bu_i*Ste|y;ffnJFVG~-|H7TGxQ z(!a!^uN*&2I#tD_+6#w;hu$*qQEh{bIKo0pav*yI9D6UWjyxute}>1mMgjlY57!BB zffKv62&6@|U}>tH7-d(J33x9_Oxyzk*&1-!*PVc(ptB_(!J8{H%`(O+w_~%oFPvbf z=9woSRQA2w!r~k!`KV3b%}PAY&OC{-*>WN%+xB0h_j@^QzW5c`KOUgPEayT!=R)~! ze0VJS2rTu}EHkUwSL4MU(K;N0V4faB&?YWIhlyJmf#{E0XNg z6U+5jXu9NyHDk_`8YB%ywMu45_*uA;zLCnQDi^ziCOvd7lkWqDvRlQ$x62p=$cK(f z>x0itE%c2;#tk7=qHuj8cww)gdt4niujVvz_PC`H`O=EtTn-~~|}VXhUexw+e$Tf5jNVqXJ{sR zZyU{7sq#i0DY~JYp+sK@B9kC_o`P4e z>}5w(2V?kGyu%A-9C%Zg5(&Wlr+U!MC(6vgwU9dCCN*gXR$)G;97njTj-ili9Y%#| zg1d4ae5A>tZ>^IGRdC+rtu+UD3@ag0*Wn=jHCb}?>zJs{eXtPw9fuN>(Gfc^~NHo10oe1QDQe1Q=jtz3ON;rO{FSOny-fFga0G;w$~QPbUaSx182u z?8(7I5z(oDLSd77R`goSUb z$1P1b8JErtSU4`ke1L%B@^*|HSs;UsKg0>onOizy~5!E9ZMgV)izlu0NyNAUF6{f9UH4`uzl( zx(lNk>xH?S4Ol@E7EsW8o{ ztg0kXv_On57mIhEzco%+z^!;R5Jf^5cukC*HLfQ0AKKLUus#)~6z-3aZ8$l_?!3|z zyR0^9B$Oa%Zn_-y0~tp}%MIk?SV8yc**M+FqzOBUPsNiw=n2@e^yt_J`|rT4(A!~3 z2q+JFD=YH&(9+PQez3XYK@Jo5!(RdM(S@Srn1FyCfJxud6Nnns);ZVgod*YV%WXFR z(2m2QVto1XqoC|hay>z=vVN|g4nJyEFTyPj2wD6rY*vwPNuvw#7?wA9Q$=`J5;XUz zR6(%gmBVYvJo*UJ7@DW5{Kv{r2C2N`7EZjW%qHEG1XxHO)de)AO_~!30BtUjgX^+Y zpz(h&nj9W2N%&IP%Fm`y@T|EQD+17=z5C|W`^T~s<)4o?yJ4SBHT(Iv41~D5l)5<5 z%tM+u+gfX-bOS((W1Cwg$inUNuUmf@-*K73L737=Uzqse9pt+`S)C$PnGr%c(W;!n zyb%Wl%+)RzJkJg)YKL>A1}f6EHx0qTm1Rn_LpiyG_aJGrO63vGWYzg2#5lr{a`;6q z_Hc@~DoJ=8*#Sr2^myBXD_gU>h$kGc$?^6Y_{3$qG{i|$-#0I$=T>ec-u0cqityA2 zdW*-U5InVJh@7>&M;s`=Ln;j&xYksK9Hi+AUzvRCI5{7o^t4ePgdW{cyorPDXsM+T zuX)|ltIa5iLCmCLT#Uyw|HphbS;dTK&ttOfvC^fC91dw&=3-TZFCXuiwm8jWbyX#g za!>qKe(ML}g6 z(=8-YWfwy?wG`40qsG;$35J3~7O`9g}<_%|*; zx-BI-syr`6TIa>O6z0&1p`V8&l*(v!4N0O;6yig=cazQL)rkE6rqch~|Nd_({qITg z|3jq25Q2SqEOQFmnq~7Xxy(LFdL!_CFPZL4R`i2Yf>oEMr&A1AbN53+HI5%*#J2oYanU93ANckdFUjWsn+{A*8JMZoA;{r2V~UDAtZ zspNQIEz0~!pgt!Rw`rIoe*R~!V;@&WIfXH_$hu3thyZAFXXbEXWC-Y;m(RClig&o)`Y^x5qv!tjr6V}#jznu z?jx$k!1M4(Ep#-D%;6S#Nj0YMbD?`BqiM7BY+l)tRl{2#IdixG4k1RtB5rtied&lnZ!%6uT$YZ3T< z?o>V`qpsK$1S1-p0)~hi-Qpoid;rMt{Nl!NGR!fqi2{hn<8$_^AlDwQ0Yaue;6V8!7S~(D z%>0A;2pbhpE=&v}xI<_cg!mnJCCn*aL*{6~Dlo=|o&W|y-(xy3HV6dRS+8OUU@4)g zp=BIw2lF@N!JF|;m?75&APnFKjeM&l-Bx6P&4^j=wsJN{REr=U!lA9K`8j2XJ`sz5 z6{vU;?satC@daT=5$LGRO;$NZX@Uc7rMmL-AnvD3v;oD>W)pn~%`Kkz1Nk5C7;7j> zifr}X{R|l+;v(h_BL9#_EkmfL+R#v7W*XySGA^}q${7;06ear3qVF@JqYAf^a51rRHd~;apJpC~;ICuXZwDq>AP;K+% zfH)Gw&S{(|!uRsl5Yakd?49TGJQwmZzsPa6oJSzB>Omdcyhe#5Fv|{}8Z0*1pJf~n z6L=mZT}?%aBMGTHjXr|K9Y}0t=JvGA|K`P(5>Ee4(Ea8DV*H9E$g4m_L+_1e+%?ck z+L>~~DNzgNS_M%p@6DhC-Kw|tQC2{_soRqWOm#58m~Yb(75&^{gK7!>0A%15i5Od$ zt!dLBs&B@PFSkQr0zLH)6^_G*TU*g|XPJwlNr2^O&?Y3Jx-;b#URE2Qg>3mW)3eu#&YcN(8^-N z3W!}r5<+g@V&*aCR&jFvxL0$mLjs(vTKQ>3S~ZJc3mA!iP^uu`@gzHFEDXG)BYNCD zq##UY<9yJji>g0`y&V1ovlIJl+63;ZJ>?@H6`?Fr7OAq2raZD0a|^q546wGhK7kub z%v=T#2#1h0P7)o(G-XMpB((vORCupoxJcyZGlRt!vz~wQ_zpb;kqreRt!$9QgsS^Y zf5vo>1JITOex?p{S5DVAqhg+aV*?OYzoFKW41^8566e$?UcLFi2Os*NM3&ncU5RHd z$jP4Ju9#O-RUpRG9qE8f7%z}SoGbZsHJ7;rBGvwJw8CzW!zKDNtApAqnBx>PBDcL9L! zmigL_&{>cpwRU2&AP-)_o$`?i)iMcpmC?txQ4XKbnu1l*s=}yM5FIC!;+-X0V3r&k zRoHqW^mCfTWcenes92YTm6^6qI(`n}rkmodr3gQ4KAl z`kJXCinbaN=h)s0kwq<%hc+mEMeYo44&7;zV_#{}7U3d<6X77;?l2B*IZ(HS>9+Ka z8p8BDD1&-=v){23p^)(+*C)-AqBZ0##{l>z_CFBm?KJR6O8D^!;iZ9@D42fh>y9bi za2tXgOjQISQoRQ`#q|>0fjDnokUilKTCJ9aI;#3P;`g$p&$?ZAJipV&zK(ZzH@m9D znMfV%Vu_$Qx;&rG`SQ^~bKTRw35qKR&Fd**Z_C;G|J-}&rS;7Y~V_Ntf) zA^B|E9lA^tG2FNu+xDBY$SEiSu+J7dvv5C)EoZ(O@X9@T*6nG|oM$n0nRyWN!^(>0 zNmja(%ac}=b{@`kG&MlIUg1-Ok&DJ0z8PTnR@V_{n_qkUfX5m27a>d?^OqbhB z&lT5B`7ka@l{Vq{DQRsvKKnxAPJcJw*vV|YyPcXDT?_LAPDRS175E36>xZR)j4opo z>+?=cv`6WWk^s=`m`7o{hCT0KZQ8WXjW1Jnji=?L697lTMjrJ4yZ=D1(?N5LkHx#u zIrDzZC!wfDG2R_Bp7*cZZ08wQWPHx!o?-p$uaC^{gOJ(g;3cn6>6$$=*3h$dm=5dG z$V|#;o|m89Vm#PRcTa1d z4d{4YIBMn_K5ZvEYWntssd4%}Z0~#JM6r>=lYW=rLJC=k@(T;0=Yp>?JjcB5tKPkv z(Scj{EkVs<2q8Bm{m9yh_Zwn)P`|vB{F!QKN8U|QYP>8L6z@utKi*HIadxWz@U&&r%@Dx&{gA zNVnsbY=us)`{IRiFg4VDo9f9Q0>3f54Sd1MJT>wm>0Ouzdp+t)edkfC_5 z524oBq4v$ePQTI)Y@gV`mpntpbzY09)_>qf$adxJsN*`+Lr7!UNInp^y<(DYM}HV z!v4X@@-p&2IuahTr42WlS%f<6d~TG-q$? zdu!i~Pn>djaZoB0fy%ofJ8@SOuCi0aGAlxUtj~$41YN*A%&RH8KDhh>ta+s~a?E6c z1Zr=2!!D~lAaCsCW6>!3GlNl4Vy8MGv8(~mp*uGPk&anH25aT}9FIj#9EfyJ^+UlV z6HY!_DUK5+xZc$M9?FfIIb-6$FmCShg|lm?yP-2Rq_qYo5S(`8O@A+ERAih8X9P+S z8@(TKuk8oX<*hFDS&{>0oXU}owGjbBln!k9_g499TCnGqLq?)y4Wtw;6}II5KvW=V zOBUNJ7M;lEs?)RimHWFEnU4Oaf@QzV>aIGJWyK&YBoLAH!X@M00K&E-m;w)ir693f z4H7~j7>oAo%djzZ%c4*M`!~gb%5%={+LnA zUHiAfc*jrfsY8>EcR0<=&Zx*QjQ97Rd9(sbV;+QHPAw{ivhv`gKEf}qz+?L@3>LIO z0J5wSt9JK$g;fib?NtP_iQ#ZYvTk(^tpxqhQTpvG^KE5mRj6@* zQuGBoZ@mm4>;utJ6?*S22zZn-jDJE#CG8Y4xx0mgAyfOP+ON@}h)@Y5bDNT!(yV!U9; z=F+@sw028CVMwd8aNAhnXj;F#!Muv#=*SQzzysXn%rlB73P(c_NC z6azCjVCs-CakK%%ewf1!saX4*KRpi z5-Cb7&OADt5~-?a#HT4_%Ayb#Io=;?AZgGK%x(%U(x%j9Zo;WdXHy>rs}I$P7Rla> zCSmc&Jq^UD*3m2pVDdr`ZknZ5ZUDaarLN}^ku4<*_-x_<6;pMGCOQ+Lv#43NTZ%>S znNg?ZTN-CL78SL2JTF(?r7UA~T$~C;w$ogZp@1p>pmy$+K8jwLly+bIu(%c)iL$fD zk1U{ya}*?q%@R`dd-8JOuCM$>lIMz3YC_b8dB5{JPaM7E!}QWyW|XLU<&?={$QLF6 zOl({LAgmE5)Tv5BnwIBikmqIqXcoSC2{|6kB$Kz4fJ!C=IF|YIZCx<9lo(4EE|)&C zyq*0#+VLz(gF1=rwzd8q;ZvHz=^5{~<|x{YoJxWs_e{FEDye1L4xqs!_4*bS4`tQy z%X0_%t1zDMeEWW)uKm196Qto_9Z!yqObcORtHO>$ed2<};X$UyYOaU1UOZf>d7`q*8hD}xW+ zJkb5*^E7`c2!WHm;gax>blKr24@x0Ke=2;~+EYh^KM89mX9nbC*$L2!D3#bhVGG%B z%Amy--BL&M8r8Ez!Wn=dK0PLscDCiLxp)IKpV$qHBB#|;5|UF3z7@dOW*owoC`EZ7 z{1YzNNVc~JrkBGut)uevg;Qhq<1=U!wz`1+B{xXg`{5pyG|m88v9XN8%%6ySIVUI` zFuqKLC%rD?z5i6D(`dVb*)t>)OXE?LUEKgI(h3rp9Gb5h1--vDZ|1c0gd^q};t@Mf zS5Yi`8z2)5F+9>D0^e$p6)+D8JST{MbVNXRJW@+@2mz)6+YCZDNhr{v+^lZ+VW=$k zY&5#!?}kf1qCz$*et@nWoz>p&4*N+lej|F!LXz<<1nsIGhx?hPdkUl7Y0kRA9q6DQ zdXrq3L}y`s&h#RbvM=F6A4xIEVZeS9ButqtzY@B3b8Nhf{`~Tilbx^;#7o}Lg7-hag^RA=f~U}e z*WxsUbs7&X-~+8HZQmo)k@Z_}5;_cwgjnm3kHl@ZK(^BgjxVr)VyL?gcLfSdQd;bT% CSwaf{ literal 0 HcmV?d00001 From f2002a276d6316d7802b820beda2a886e254c5da Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 15 Jun 2023 12:04:32 +0200 Subject: [PATCH 4/5] create backup not exactly at midnight --- packages/main.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/main.py b/packages/main.py index bf113a54eb..6279564b85 100755 --- a/packages/main.py +++ b/packages/main.py @@ -2,6 +2,7 @@ """Starten der benötigten Prozesse """ import logging +from random import randrange import schedule import time import threading @@ -123,6 +124,14 @@ def handler5Min(self): def handler_midnight(self): try: measurement_log.save_log("monthly") + except KeyboardInterrupt: + log.critical("Ausführung durch exit_after gestoppt: "+traceback.format_exc()) + except Exception: + log.exception("Fehler im Main-Modul") + + @exit_after(10) + def handler_random_nightly(self): + try: data.data.system_data["system"].create_backup_and_send_to_cloud() except KeyboardInterrupt: log.critical("Ausführung durch exit_after gestoppt: "+traceback.format_exc()) @@ -137,6 +146,8 @@ def schedule_jobs(): [schedule.every().hour.at(f":{i:02d}").do(handler.handler5Min) for i in range(0, 60, 5)] [schedule.every().hour.at(f":{i:02d}").do(handler.handler5MinAlgorithm).tag("algorithm") for i in range(1, 60, 5)] schedule.every().day.at("00:00:00").do(handler.handler_midnight).tag("algorithm") + schedule.every().day.at(f"0{randrange(0, 5)}:{randrange(0, 60):02d}:{randrange(0, 60):02d}").do( + handler.handler_random_nightly) try: From 79e36d1db43c0b36a96b3fc3a5a641986713e837 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 15 Jun 2023 12:07:23 +0200 Subject: [PATCH 5/5] fix --- packages/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/main.py b/packages/main.py index 6279564b85..b92ec4a48c 100755 --- a/packages/main.py +++ b/packages/main.py @@ -146,7 +146,7 @@ def schedule_jobs(): [schedule.every().hour.at(f":{i:02d}").do(handler.handler5Min) for i in range(0, 60, 5)] [schedule.every().hour.at(f":{i:02d}").do(handler.handler5MinAlgorithm).tag("algorithm") for i in range(1, 60, 5)] schedule.every().day.at("00:00:00").do(handler.handler_midnight).tag("algorithm") - schedule.every().day.at(f"0{randrange(0, 5)}:{randrange(0, 60):02d}:{randrange(0, 60):02d}").do( + schedule.every().day.at(f"0{randrange(0, 5)}:{randrange(0, 59):02d}:{randrange(0, 59):02d}").do( handler.handler_random_nightly)